VXLAN
VXLAN، یا Virtual Extensible LAN، یک تکنولوژی مجازیسازی شبکه است که برای گسترش شبکههای Ethernet لایه 2 روی یک زیرساخت شبکه مبتنی بر IP استفاده میشود. این برای حل مسائل مقیاسپذیری که در محیطهای بزرگ cloud computing ایجاد میشود طراحی شده است.
ایده اصلی پشت VXLAN این است که frame های Ethernet را در بستههای UDP encapsulate کند، با یک header VXLAN اضافی که به بسته اضافه میشود. header VXLAN شامل یک VNI (VXLAN Network Identifier) است که برای شناسایی شبکه مجازی که بسته به آن تعلق دارد استفاده میشود.
VXLAN tunnel endpoint (VTEP) دستگاهی است که مسئول encapsulate و decapsulate کردن frame های Ethernet به بستههای VXLAN است. VTEP ها میتوانند در نرمافزار یا سختافزار پیادهسازی شوند و میتوانند روی hypervisor ها، switch ها، router ها یا server ها قرار گیرند.
VXLAN همچنین از forward کردن ترافیک multicast و unicast پشتیبانی میکند. ترافیک multicast با استفاده از آدرسهای گروه multicast forward میشود، در حالی که ترافیک unicast به یک آدرس VTEP خاص forward میشود.
VXLAN اجازه میدهد مجازیسازی شبکه در مقیاس بزرگ، با ارائه راهی برای ایجاد شبکههای مجازی که مرزهای فیزیکی data center را در بر میگیرند. این mobility بارکاری را امکانپذیر میکند و به ماشینهای مجازی اجازه میدهد بین data center ها migrate شوند بدون نیاز به پیکربندی مجدد دستی آدرس IP. علاوه بر این، VXLAN میتواند به غلبه بر محدودیتهای VLAN کمک کند، مانند حداکثر تعداد VLAN ID ها و مسائل مقیاسپذیری مرتبط با domain های بزرگ لایه 2.
پیکربندی VXLAN
- interface nve (0-100000000)
این دستور برای ایجاد و پیکربندی یک اینترفیس Network Virtualization Endpoint (NVE) استفاده میشود. NVE یک تکنولوژی برای مجازیسازی segment های شبکه روی یک زیرساخت لایه 3 است.
(0-100000000): شماره اینترفیس NVE را مشخص میکند. شماره اینترفیس میتواند هر عددی بین 0 تا 100000000 باشد.
مثال:
soodar(config)# interface nve 40
- source-ip <A.B.C.D|X:X::X:X>
این دستور برای مشخص کردن آدرس IP مبدا برای VXLAN tunnel endpoint (VTEP) که با اینترفیس NVE مرتبط است استفاده میشود.
<A.B.C.D|X:X::X:X>: آدرس IPv4 یا IPv6 است که به عنوان آدرس مبدا برای VTEP استفاده میشود.
soodar1(config-if)# source-ip 200.1.2.1
- ingress-replication A.B.C.D
دستور ingress-replication برای مشخص کردن آدرس IP برای ingress replication استفاده میشود. Ingress replication یک تکنولوژی VXLAN است که برای forward کردن ترافیک بین دو VTEP VXLAN زمانی که multicast در شبکه underlay در دسترس نیست استفاده میشود. در ingress replication، ترافیک توسط VTEP مبدا replicate میشود و مستقیماً به تمام VTEP های مقصد ارسال میشود. روش ingress replication همچنین به عنوان “head-end replication” شناخته میشود.
A.B.C.D: آدرس IP NVE است که ترافیک replicate شده را از VTEP مبدا دریافت خواهد کرد.
Note
در حال حاضر، فقط یک آدرس میتواند برای replication استفاده شود.
Note
SoodarOS از multicast برای VXLAN پشتیبانی نمیکند.
soodar1(config-if)# ingress-replication 200.2.3.3
- member vni (1-16777214)
این دستور در زمینه یک اینترفیس NVE (Network Virtualization Endpoint) برای پیکربندی یک VNI (VXLAN Network Identifier) به عنوان member اینترفیس استفاده میشود. یک VNI یک شناسه برای تفکیک چندین شبکه overlay VXLAN است که روی همان زیرساخت فیزیکی شبکه اجرا میشوند.
(1-16777214): شماره VNI که باید به اینترفیس NVE اضافه شود را مشخص میکند. محدوده از 1 تا 16777214 است.
Note
در حال حاضر، هر اینترفیس NVE میتواند با 1 VNI مرتبط شود.
soodar1(config-if)# member vni 30
- member vni (1-16777214) associate-vrf
NVE را با شماره VNI و VRF که از این شماره VNI استفاده میکند مرتبط میکند. حال tunnel مسیر ingress-replication خود را از VRF که همان VNI را با tunnel به اشتراک میگذارد lookup میکند.
Note
هر VRF میتواند با 1 VNI مرتبط شود.
مثال:
soodar(config)# interface nve 10
soodar(config-if)# source-ip 200.1.3.1
soodar(config-if)# ingress-replication 156.25.4.89
soodar(config-if)# member vni 40
soodar(config-if)# bridge-group 120
soodar(config-if)# int ge0
soodar(config-if)# no shutdown
soodar(config-if)# bridge-group 120
soodar(config)# vrf green
soodar(config-vrf)# vni 40
soodar(config)# int ge1
soodar(config-if)# ip vrf forwarding green
soodar(config-if)# ip address 200.1.3.1/24
soodar(config)# interface nve 10
soodar(config-if)# source-ip 200.1.2.1
soodar(config-if)# ingress-replication 200.1.3.3
soodar(config-if)# member vni 40 associate-vrf
soodar(config-if)# bridge-group 120
soodar(config-if)# int ge0
soodar(config-if)# no shutdown
soodar(config-if)# bridge-group 120
مثال پیکربندی کامل
فرض کنید در شکل زیر قصد داریم بین دو روتر soodar1 و soodar3 تونل vxlan بزنیم و user1 و user2 بتوانند از طریق این تونل با یکدیگر ارتباط داشته باشند:

پیکربندی soodar1
soodar1(config)# interface nve 10
soodar1(config-if)# source-ip 200.1.2.1
soodar1(config-if)# ingress-replication 200.2.3.3
soodar1(config-if)# member vni 30
soodar1(config)# interface ge1
soodar1(config-if)# bridge-group 200
soodar1(config-if)# no shutdown
soodar1(config)# interface nve10
soodar1(config-if)# bridge-group 200
soodar1(config-if)# do show bridge 200
|------------------------------------------------|
| Domain | Interface | Split-Horizon Group | BVI |
|--------+-----------+---------------------+-----|
| 200 | ge1 | 0 | - |
|--------+-----------+---------------------+-----|
| | nve10 | 0 | - |
|--------+-----------+---------------------+-----|
پیکربندی soodar3
soodar3(config)# interface nve 10
soodar3(config-if)# source-ip 200.2.3.3
soodar3(config-if)# ingress-replication 200.1.2.1
soodar3(config-if)# member vni 30
soodar3(config)# interface ge1
soodar3(config-if)# bridge-group 200
soodar3(config-if)# no shutdown
soodar3(config)# interface nve10
soodar3(config-if)# bridge-group 200
حال ارتباط بین user1 و user2 به صورت لایه 2 توسط تونل vxlan برقرار میباشد.
پیکربندی VXLAN با VRF
اگر میخواهید برای برقراری تونل vxlan و رسیدن به مقصد تونل از vrf خاصی استفاده کنید، میتوانید از دستور member vni associate-vrf استفاده کنید. همچنین باید در پیکربندی vrf مربوطه مقدار vni را تنظیم کنید تا تونل vxlan برای lookup کردن آدرس مقصد تونل از این vrf استفاده کند.
مثال:
soodar(config)# vrf green
soodar(config-vrf)# vni 40
soodar(config)# interface nve 10
soodar(config-if)# source-ip 200.1.2.1
soodar(config-if)# ingress-replication 200.1.3.3
soodar(config-if)# member vni 40 associate-vrf
soodar(config-if)# bridge-group 120
این تنظیم مشخص میکند که vxlan با vni شماره 40 باید از vrf green برای برقراری تونل استفاده کند.
Logging
- debug vxlan event
این دستور برای فعالسازی log های debugging مربوط به VXLAN استفاده میشود. این log های فرآیند نصب و نتایج data plane را ثبت میکند.
soodar1# debug vxlan event