NSX-T EVPN

W poprzednim wpisie pokazałem jak skonfigurować DVS z NSX-t, dziś przedstawię bardzo ciekawą nową funkcjonalność w NSX-T 3.0 jest to EVPN.

W dokumentacji VMware na czas pisania tego wpisu nie znalazłem za dużo informacji o konfiguracji którą poczyniłem poniżej. Mam nadzieję że przyda się Wam ta wiedza.

Co to jest EVPN

W kilku prostych słowach. EVPN (Ethernet VPN) jest to standart IEEE który dostarcza nam VPN warstwy 2 i 3. W EVPNie mamy control i data plane. NSXie Multiprotokol BGP (MPBGP) jest odpowiedzialne za control plane a VXLAN data plane.

Testowa architektura

Poniżej przedstawiam ogólną architekturę rozwiązania gdzie widzimy na routerze zewnętrznym w tym przypadku jest to Juniper vMX mamy 2 Vrfy A i B które przekażemy w sesji MP BGP do routera T0 na którym zostaną rozszyte do odpowiednich VRF’ów o tej samej nazwie oraz RD. Na końcu do tych VRF’ów zostaną podłączone routery T1 które będą miały podłączone segmenty.

Wymagania i ograniczenia

Wymagania Ograniczenia
MTU min 1600 na uplinku do vMX na chwilę nie znalazłem
Urządzenia muszą wspierać MPBGP oraz EVPN type 5

Konfiguracja EVPN

Konfiguracja NSX-T EVPN

Przygotowanie

Konfiguracja VNI POOL

Logujemy się do NSX Managera przechodzimy do Networking –> Networking Settings następnie VNI Pool.  Poola ta będzie używana do tworzenia połączenia EVPN

Klikamy ADD VNI POOL i w nowym oknie definiujemy pulę id dla VNI.

Gdzie w Name nadajemy nazwę
Start – ID od którego rozpocznie poola
END – ID do którego będzie poola VNI

Konfiguracja Segmentu dla T0

Konfigurujemy Segment który będzie stanowił połączenie pomiędzy T0 i naszym vMXem przechodzimy do Networking następnie Segments.

Klikamy ADD Segment w nowym oknie konfigurujemy go

Nadajemy nazwę, wybieramy nasz transport zone typu Vlan, oraz nadjemy vlan id i zapisujemy.

Utworzenie i konfiguracja routera T0
  1. W tym środowisku stworzyłem jeden router T0 na dedykowany do tego jednym EDGE VM którą przypisałem dla klastra edge-cluster-02 Nowy router zostanie stworzony na dedykowanym klastrze edge. Dla środowiska testowego uruchamiam to na jednym EDGE VM.
    Przechodzimy do tworzenie routera T0,

    w nowym oknie nadajemy nazwę dla naszego Tier-0 Routera

    Klikamy save
  2. Po utworzeniu routera T0 konfigurujemy interfejs Uplink do vMX. Przechodzimy do Edycji utworzonego T0 przechodzimy do Interfejs

    klikamy set i w nowym oknie klikamy ADD Interface w pierwszej kolejności Uplink-vlan11. Tutaj mamy do skonfigurowania:
    – nadajemy nazwę dla interfejsu,
    – wybieramy Tym External,
    – nadajemy adres ip,
    – przypinamy do segmentu utworzonego na samym początku.
    – Przypinamy na której EDGE VM ma być przypięty interfejs. W tym przypadku to jest jedyny edge vm który mam dostępny do tego.
    – ustawiamy MTU ze względu że będzie tam VXALN enkapsulacja musimy ustawić min. 1600
  3. Konfiguracja Interfejsu loopback
    Teraz utworzymy interfejs loopback który będzie służył nam do zapinania sesji EVPN pomiędzy T0 a vMX’em
  4. Konfiguracja EVPN
    Przechodzimy do EVPN Settings gdzie w VNI Pool wybieramy nasz profil dla VNI który wcześniej utworzyliśmy.
  5. EVPN Tunel Endpoint
    W tym sam miejscu ustawiamy EVPN Tunel Endpoint który wskazuje nasz interfejs loopback
  6. BGPKonfigurujemy sąsiedztwo BGP na interfejsie Uplink. W ta sesja posłuży nam do rozgłoszenia adresu IP Loopback
    Przechodzimy do sekcji BGP gdzie konfigurujemy:
    -Local AS
    – BGP włączamy

    Przechodzimy do BGP Neigbors gdzie konfigurujemy sąsiedztwo dla Interfejsu loopback i uplink
  7. Konfiguracja sąsiedztwa
    Sąsiedztwo na interfejsie uplink poniżej schemat poglądowy:

    Konfiguracja od strony NSX-T

    schemat logiczny:

    Konfiguracja sąsiedztwa na interfejsie loopback

    gdzie dla tego połączenie ustawiamy dodatkowy filtr
  8. redystrybucja routingu
    W sekcji Route RE-DISTRBUTION konfigurujemy profil gdzie włączamy takie jak poniżej redystrybucje:

    w powyższych krokach mamy skonfigurowane połączenie oraz sesje BGP z vMX’em
Konfiguracja routera VRF A
  1. utworzenie routera VRF1
    przechodzimy do Networking Tier-0 Gateways wybieramy ADD Gateway i wybieramy VRF
  2. Konfiguracja VRF
    W nowym oknie konfigurujemy nazwę dla VRFu do którego T0 zostanie podłączony, Nadajemy unikalny RD(Route Distinguisher) oraz wybieramy ID VNI który będzie służył do tunelowania pomiędzy VRFem a vMXem
    Tutaj można zastosować metodę dla RD że jest w formacie AS:VNI
  3. Tworzenie Interfejsu loopback w VRFie A
    Przechodzimy do Edycji VRF-A

    Gdzie przechodzimy do sekcji Interface i dodajemy Interfejs
  4. włączamy redystrybucję sieci podłączonych typu loopback oraz sieci z T1

VRF B potarzamy powyższe korki tylko zmieniamy dane zgodnie z rysunkiem

 

Router T1

Do każdego VRF’u zostanie podłączony nie zależny router T1 a każdy router T1 będzie miał podłączony jeden segment.

  1. Tworzymy router T1
  2. włączamy rozgłaszanie podłączonych segmentów
  3. Tworzymy segment podłączony do T1

Powyższe kroki powtarzamy dla routera T1 podłączonego do VRFu B

Konfiguracja vMX’a

  1. Konfiguracja Interfejsu ge-0/0/0.11 do T0.
    Konfigurujemy połączenie pomiędzy T0 i vMX oraz na interfejsie włączamy MTU 9K.
  2. Konfiguracja interfejsu loopback 0.

    Konfigurujemy interfejsy które będą dodane do VRF’ów A i B.
  3. Konfiguracja sesji BGP
    W pierwszym kroku konfigurujemy sesję BGP na interfejsie uplink vlan 11 który łączy vMX i T0

    w drugim korku konfigurujemy BGO pomiędzy interfejsami loopback
  4. Konfiguracja polityki eksportującej wszystkich sieci direct
  5. VRFy
    Konfiguracja VRF-A

    Konfiguracja VRF-B
  6. Wykonujemy commit i przechodzimy do weryfikacji

Weryfikacja

Weryfikacja po stronie vMX
  1. Sprawdzenie BGP

    Jak widzimy sesje BGP unicast oraz evpn są zestawione
  2. Sprawdzamy tablicę routingu

    w tablicy routingu wygląda wszytko ok – jak widać tylko w tablicy inet.0 warto od strony T0 włączyć odpowiedni filtrowanie rozgłaszanych prfixów w BGP dla loopbacka, ale to jest kosmetyka.
  3. ulubiony test ping pomiędzy interfejsami loop back

     
Weryfikacja po stronie NSX-T

Po stronie NSX sprawdzamy z poziomu CLI. Logujemy się z na EDGE VM na którym jest uruchomione T0
1. sprawdzamy na którym id jest uruchomione SR dla T0

2. przechodzimy do VRF 4 i sprawdzamy stan BGP

3. sprawdzamy stan BGP EVPN – get bgp evpn

kilka innych pomocnych komend do weryfikacji z poziomy serwis routera T0

Wyświetla wszystkie dostępne VRFy z przypisanym VBNI get bgp evpn vni 
Wyświetla tablicę routingu w protokole BGP z podziałem na RD get bgp evpn overlay
Pokazuje skonfigurowane VRFy które są aktywne w EVPN get evpn vni