Co to jest VXLAN i jak go skonfigurować?

Wstęp do VXLAN

Termin VXLAN z ang. Virtual eXtensible Local Area Network określa się jako protokół tunelu jaki odpowiada za tunelowanie sieci Ethernet w warstwie 2 przez sieć IP warstwy 3.

W standardowej sieci warstwy 2 te problemy występują najczęściej:

  1. Spanning tree – drzewo opinające. Spanning tree odpowiada za blokadę nadmiarowych łączy w celu zminimalizowania liczby pętli. Takie działanie, które blokuje łącze mające odpowiadać za stworzenie topologii z jak najmniejszą ilością pętli wykonuje zadania, natomiast istnieje opłata za łącza jakich się nie używa. Istniałaby szansa na przełączenie się na sieć warstwy 3, chociaż należy mieć świadomość, iż niektóre technologie wymagają sieci warstwy 2.
  2. Ograniczenia w ilości sieci VLAN – Kolejna rzecz dotyczy Identyfikatora VLAN, który jest 12-bitowy – z tego powodu ilość utworzonych sieci może wynieść 4094(0 i 4095 są zarezerwowane). Dla centrów danych dostępna liczba sieci VLAN 4094 może być utrudnieniem. Przykładowa sytuacja – dostawca usług posiada 500 klientów, natomiast przy wykorzystaniu 4094 dostępnych sieci VLAN jest w stanie zaproponować każdemu z klientów jedynie 8 sieci VLAN.
  3. Duża ilość MAC adresów – obecnie wirtualizacja serwerów występuje powszechnie i z tego powodu liczba adresów w tablicach MAC adresów na przełącznikach znacznie wzrosła. Kiedy nie było wirtualizacji – przełącznik miał za zadanie nauki jedynie jednego adresu MAC przydzielonego do fizycznego portu switcha. Używając wirtualizacji serwerów, liczba uruchamianych maszyn wirtualnych (Virtual Machine), bądź kontenerów na jednym serwerze jest spora.

Czym jest sieć overlay a czym sieć underlay

VXLAN korzysta z sieci overlay(sieć nakładkowa) i underlay(sieć podkładkowa):

Sieć overlay – określa się jako sieć wirtualna, która działa na górze fizycznej sieci bazowej. Dość powszechnym przykładem sieci overlay(sieci nakładkowej) jest tunel GRE. Właśnie tunel GREprzebiega nad fizyczną siecią underlay(podkładkowa). Mając na uwadze VXLAN overlay(sieć nakładkowa) odnosi się do sieci Ethernet warstwy 2. Natomiast underlay(sieć podkładkowa) odnosi się do sieci IP warstwy 3

Sieć underlay – jest nieskomplikowana, ma za zadanie ma pobrać pakiet z A do B. Nie używa się tutaj żadnej warstwy 2, natomiast wykorzystuje się warstwę 3. W trakcie używania warstwy 3 można wykorzystać protokoły OSPF lub EIGRP.

Korzyść sieci underlay i overlay dotyczy tego, iż obie są od siebie niezależne. Sieć nakładkowa(overlay) jest co prawda wirtualną i wymaga sieci podkładkowej(underlay) – jednak przy zmianach naniesionych w sieci nakładkowej(overlay) nie będą miały wpływu na sieć podkładkową(underlay). Istnieje zatem możliwość usuwania i dodawania łączy w sieci bazowej do tego momentu, w którym protokół routingu jest w stanie dotrzeć do miejsca docelowego, wówczas sieć nakładkowa(overlay)nie będzie zmieniona.

Rodzaje VTEP

VTEP z ang. VXLAN tunnel endpoint jest urządzeniem, które ma za zadanie hermetyzacji oraz dekapsulacji ruchu warstwy 2. Urządzenie odpowiada za połączenie sieci overlay z siecią underlay. VTEP jest przede wszystkim interfejsem(fizycznym bądź wirtualnym) na urządzeniu końcowym np. switch bądź hypervisor np. ESX. Występuje głównie jako dwie formy – oprogramowanie(bazujące na hoście), a także sprzęt t.j. hardware(brama domyślna).

1.     Mówiąc o hostach chodzi przede wszystkich o hypervisory, np. ESX producenta VMWare, bądź Hyper-V należącego do Microsoftu. Właśnie tego rodzaju hypervisory korzystają z wirtualnych przełączników, gdzie niektóre z nich mogą obsłużyć VXLAN.

Powyższy rysunek przedstawia tunele VXLAN, które znajdują się pomiędzy wirtualnymi przełącznikami hypervisorów – sieć podkładowa nie zna VXLAN.
2.     Sprzęt – sprzętowy VTEP określa się jako router, przełącznik bądź firewall mający za zadanie obsługę VXLAN. Sprzęt VTEP definiuje się także jako brama VXLAN z tego powodu, że łączy zwykłe segmenty VLAN i VXLAN w pojedynczą domenę warstwy 2. Natomiast niektóre przełączniki mogą obsługiwać VXLAN z układami ASIC zapewniając lepszą wydajność VXLAN niż sprzętowy VTEP.
Sieć podkładkowa

Powyższy rysunek przedstawia tunele VXLAN jakie znajdują się między fizycznymi przełącznikami. Wszystkie urządzenia jakie łączą się z fizycznymi switchami nie wiedzą o VXLAN.

Interfejsy – istnieją dwa typy interfejsów VTEP:
  • Interfejs VTEP IP jaki ma za zadanie łączyć VTEP z siecią pokładową underlay z unikatowym adresem IP. Właśnie ten interfejs hermetyzuje i dekapsuluje ramki Ethernet
  • Interfejs VNI jest nim wirtualny interfejs jaki oddziela ruch sieciowy na interfejsie fizycznym – dość podobny do interfejsu SVI
Czym jest VTEP

Powyższy rysunek przedstawia dwa ASA i Wirtualny serwer (Wirtualny Serwer 2) działający jako VTEP w sieci warstwie 3 – która ma za zadanie rozszerzenie sieci VNI 1,2,3 między lokacjami. Zadanie ASA dotyczy działania jako mostu bądź bramy domyślnej między sieciami VXLAN i innymi aniżeli VXLAN.

Czym jest VNI

Virtual Network Network Identificator (VXLAN VNI) odpowiada za identyfikację VXLANów i ma zbliżoną funkcję do VLAN ID dla standardowych sieci VLAN. Wykorzystuje się dla VNI 24bity – w przybliżeniu można stworzyć 16 milionów VXLAN. W odniesieniu do standardowego VLAN jest ich o wiele więcej.

Przykładowa konfiguracja topologii XVLAN dla VTEP

Poniższy rysunek topologii przedstawia konfigurację interfejsów Loopback i protokołu routingu. Ilustracja zawiera:

  • dwa hosty(HOSTA i HOSTB) w tej samej sieci VLAN
  • dwa urządzenia Nexus
  • dwa routery
Urządzenie NEXUS i konfiguracja VTEP

Nexus VTEP-A:

switch-vtep-A(config)# feature ospf
 switch-vtep-A(config)# feature pim
 switch-vtep-A(config)# router ospf 1
 switch-vtep-A(config-router)# router-id 100.100.100.1
 switch-vtep-A(config)# ip pim rp-address 5.1.1.1 group-list 224.0.0.0/4
 switch-vtep-A(config)# interface Loopback0
 switch-vtep-A(config-if)# ip address 100.100.100.1/32
 switch-vtep-A(config-if)# ip router ospf 1 area 0.0.0.0
 switch-vtep-A(config-if)# ip pim sparse-mode
 switch-vtep-A(config)# interface e2/1
 switch-vtep-A(config-if)# ip address 20.1.1.1/30
 switch-vtep-A(config-if)# ip router ospf 1 area 0.0.0.0
 switch-vtep-A(config-if)# ip pim sparse-mode
 switch-vtep-A(config)# feature nv overlay
 switch-vtep-A(config)# feature vn-segment-vlan-based
 switch-vtep-A(config)# interface e1/1
 switch-vtep-A(config-if)# switchport access vlan 5
 switch-vtep-A(config-if)# no shutdown
 switch-vtep-A(config)# interface nve1
 switch-vtep-A(config-if)# no shutdown
 switch-vtep-A(config-if)# source-interface loopback0
 switch-vtep-A(config-if)# member vni 10000 mcast-group 220.1.1.1
 switch-vtep-A(config)# vlan 5
 switch-vtep-A(config-vlan)# vn-segment 10000
 switch-vtep-A(config-vlan)# exit 

Nexus VTEP-A:

switch-vtep-2(config)# feature ospf
switch-vtep-2(config)# feature pim
switch-vtep-2(config)# router ospf 1
switch-vtep-2(config-router)# router-id 100.100.100.2
switch-vtep-2(config)# ip pim rp-address 5.1.1.1 group-list 224.0.0.0/4
switch-vtep-2(config)# interface loopback0
switch-vtep-2(config-if)# ip address 100.100.100.2/32
switch-vtep-2(config-if)# ip router ospf 1 area 0.0.0.0
switch-vtep-2(config-if)# ip pim sparse-mode
switch-vtep-2(config)# interface e2/1
switch-vtep-2(config-if)# ip address 30.1.1.1/30
switch-vtep-2(config-if)# ip router ospf 1 area 0.0.0.0
switch-vtep-2(config-if)# ip pim sparse-mode
switch-vtep-2(config)# feature nv overlay
switch-vtep-2(config)# feature vn-segment-vlan-based
switch-vtep-2(config)# interface e1/1
switch-vtep-2(config-if)# switchport access vlan 10
switch-vtep-2(config-if)# no shutdown
switch-vtep-2(config)# interface nve1
switch-vtep-2(config-if)# no shutdown
switch-vtep-2(config-if)# source-interface loopback0
switch-vtep-2(config-if)# member vni 10000 mcast-group 230.1.1.1
switch-vtep-2(config)# vlan 5
switch-vtep-2(config-vlan)# vn-segment 10000
switch-vtep-2(config-vlan)# exit