VxLAN fabriky. Část 1

Ahoj, Habr. V současné době jsem vedoucí kurzu "Síťový inženýr" na OTUS.
V předvečer zahájení nového zápisu do kurzu "Síťový inženýr", připravil jsem cyklus článků o technologii VxLAN EVPN.

Existuje obrovské množství materiálů o práci s VxLAN EVPN, takže chci shromáždit různé úkoly a praktiky řešení problémů v moderním datovém centru.

VxLAN fabriky. Část 1

V první části cyklu o technologii VxLAN EVPN chci prozkoumat způsob organizace L2 konektivity mezi hostiteli nad síťovou infrastrukturou.

Všechny příklady budeme provádět na Cisco Nexus 9000v, uspořádaných do topologie Spine-Leaf. Na nastavení Underlay sítě se v rámci tohoto článku nezaměříme.

  1. Underlay síť
  2. BGP párování pro address-family l2vpn evpn
  3. Nastavení NVE
  4. Supress-arp

Underlay síť

Používaná topologie vypadá takto:

VxLAN fabriky. Část 1

Nastavíme adresaci na všech zařízeních:

Spine-1 - 10.255.1.101
Spine-2 - 10.255.1.102

Leaf-11 - 10.255.1.11
Leaf-12 - 10.255.1.12
Leaf-21 - 10.255.1.21

Host-1 - 192.168.10.10
Host-2 - 192.168.10.20

Ověříme, že existuje IP konektivita mezi všemi zařízeními:

Leaf21# sh ip route

10.255.1.11/32, ubest/mbest: 2/0                      ! Leaf-11 je dostupný přes dva Spine
    *via 10.255.1.101, Eth1/4, [110/81], 00:00:03, ospf-UNDERLAY, intra
    *via 10.255.1.102, Eth1/3, [110/81], 00:00:03, ospf-UNDERLAY, intra
10.255.1.12/32, ubest/mbest: 2/0                      ! Leaf-12 je dostupný přes dva Spine
    *via 10.255.1.101, Eth1/4, [110/81], 00:00:03, ospf-UNDERLAY, intra
    *via 10.255.1.102, Eth1/3, [110/81], 00:00:03, ospf-UNDERLAY, intra
10.255.1.21/32, ubest/mbest: 2/0, attached
    *via 10.255.1.22, Lo0, [0/0], 00:02:20, local
    *via 10.255.1.22, Lo0, [0/0], 00:02:20, direct
10.255.1.101/32, ubest/mbest: 1/0
    *via 10.255.1.101, Eth1/4, [110/41], 00:00:06, ospf-UNDERLAY, intra
10.255.1.102/32, ubest/mbest: 1/0
    *via 10.255.1.102, Eth1/3, [110/41], 00:00:03, ospf-UNDERLAY, intra

Ověříme, že VPC doména byla vytvořena a oba switche prošly kontrolou konzistence a nastavení na obou uzlech jsou shodná:

Leaf11# show vpc 

vPC domain id                     : 1
Peer status                       : peer adjacency formed ok
vPC keep-alive status             : peer is alive
Configuration consistency status  : success
Per-vlan consistency status       : success
Type-2 consistency status         : success
vPC role                          : primary
Number of vPCs configured         : 0
Peer Gateway                      : Disabled
Dual-active excluded VLANs        : -
Graceful Consistency Check        : Enabled
Auto-recovery status              : Disabled
Delay-restore status              : Timer is off.(timeout = 30s)
Delay-restore SVI status          : Timer is off.(timeout = 10s)
Operational Layer3 Peer-router    : Disabled

vPC status
----------------------------------------------------------------------------
Id    Port          Status Consistency Reason                Active vlans
--    ------------  ------ ----------- ------                ---------------
5     Po5           up     success     success               1

BGP párování

Nakonec se můžeme přejít k nastavení Overlay sítě.

V rámci článku je třeba organizovat síť mezi hostiteli, jak je znázorněno na schématu níže:

VxLAN fabriky. Část 1

Pro konfiguraci Overlay sítě je nutné na Spine a Leaf přepínačích povolit BGP s podporou rodiny l2vpn evpn:

feature bgp
nv overlay evpn

Dále je třeba nastavit BGP peerování mezi Leaf a Spine. Pro zjednodušení konfigurace a optimalizaci šíření informací o směrování konfiguruje Spine jako Route-Reflector server. Všechny Leaf přidáme do konfigurace pomocí šablon, abychom optimalizovali nastavení.

Takto vypadá konfigurace na Spine:

router bgp 65001
  template peer LEAF 
    remote-as 65001
    update-source loopback0
    address-family l2vpn evpn
      send-community
      send-community extended
      route-reflector-client
  neighbor 10.255.1.11
    inherit peer LEAF
  neighbor 10.255.1.12
    inherit peer LEAF
  neighbor 10.255.1.21
    inherit peer LEAF

Konfigurace na Leaf přepínači vypadá obdobně:

router bgp 65001
  template peer SPINE
    remote-as 65001
    update-source loopback0
    address-family l2vpn evpn
      send-community
      send-community extended
  neighbor 10.255.1.101
    inherit peer SPINE
  neighbor 10.255.1.102
    inherit peer SPINE

Na Spine zkontrolujeme peerování se všemi Leaf přepínači:

Spine1# sh bgp l2vpn evpn summary

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.255.1.11     4 65001       7       8        6    0    0 00:01:45 0
10.255.1.12     4 65001       7       7        6    0    0 00:01:16 0
10.255.1.21     4 65001       7       7        6    0    0 00:01:01 0

Jak vidíme, s BGP nevznikly žádné problémy. Přecházíme k nastavení VxLAN. Další nastavení bude prováděno pouze na straně Leaf přepínačů. Spine působí pouze jako jádro sítě a zabývá se pouze přenosem provozu. Celá práce na inkapsulaci a určování cesty probíhá pouze na Leaf přepínačích.

Nastavení NVE

NVE — síťové virtuální rozhraní

Před zahájením nastavení si představíme několik termínů:

VTEP — Virtuální tunelový koncový bod, zařízení, na kterém začíná nebo končí VxLAN tunel. VTEP nemusí nutně být nějaké síťové zařízení. Může to být také server s podporou technologie VxLAN. V naší topologii jsou všechny Leaf přepínače VTEP.

VNI — Virtuální síťový index — identifikátor sítě v rámci VxLAN. Je možné provést analogii s VLAN. Existují však některé rozdíly. Při použití fabriky jsou VLAN unikátní pouze v rámci jednoho Leaf přepínače a nepřenášejí se po síti. Avšak každému VLAN může být přiřazen číslo VNI, které se již přenáší po síti. Jak to vypadá a jak to lze použít, bude podrobněji vysvětleno dále.

Povolíme funkci pro práci technologie VxLAN a možnost přiřazuje čísla VLAN k číslu VNI:

feature nv overlay
feature vn-segment-vlan-based

Nastavíme rozhraní NVE, které je zodpovědné za provoz VxLAN. Toto rozhraní právě zajišťuje enkapsulaci rámců do VxLAN hlaviček. Lze provést analogii s rozhraním Tunnel pro provoz GRE:

interface nve1
  no shutdown
  host-reachability protocol bgp ! používáme BGP pro přenos směrovacích informací
  source-interface loopback0    ! rozhraní, z kterého posíláme pakety loopback0

Na spínači Leaf-21 se všechno vytváří bez problémů. Pokud však zkontrolujeme výstup příkazu show nve peers, bude prázdný. Je třeba se vrátit k nastavení VPC. Vidíme, že Leaf-11 a Leaf-12 fungují v páru a jsou spojeny VPC doménou. Zde vzniká následující situace:

Host-2 posílá jeden rámec směrem k Leaf-21, aby ho doručil po síti směrem k Host-1. Leaf-21 však vidí, že MAC adresa Host-1 je dostupná ihned přes dvě VTEP. Jak se v tomto případě má Leaf-21 zachovat? To přece znamená, že v síti se mohla objevit smyčka.

Abychom tuto situaci vyřešili, potřebujeme, aby Leaf-11 a Leaf-12 v rámci továrny také vystupovaly jako jedno zařízení. To se řeší poměrně jednoduše. Na rozhraní Loopback, z kterého budujeme tunel, přidáme sekundární adresu. Sekundární adresa by měla být stejná na obou VTEP.

interface loopback0
 ip add 10.255.1.10/32 secondary

Tímto pohledem z hlediska ostatních VTEP získáváme následující topologii:

VxLAN fabriky. Část 1

Takže nyní bude tunel postaven mezi IP adresou Leaf-21 a virtuální IP mezi dvěma Leaf-11 a Leaf-12. Nyní nebudou vznikat problémy s získáváním MAC adresy od dvou zařízení a provoz může přecházet z jednoho VTEP na druhý. Kdo konkrétně z těchto dvou VTEP zaregistruje provoz, se řeší pomocí směrovací tabulky na Spine:

Spine1# sh ip route

10.255.1.10/32, ubest/mbest: 2/0
    *via 10.255.1.11, Eth1/1, [110/41], 1d01h, ospf-UNDERLAY, intra
    *via 10.255.1.12, Eth1/2, [110/41], 1d01h, ospf-UNDERLAY, intra
10.255.1.11/32, ubest/mbest: 1/0
    *via 10.255.1.11, Eth1/1, [110/41], 1d22h, ospf-UNDERLAY, intra
10.255.1.12/32, ubest/mbest: 1/0
    *via 10.255.1.12, Eth1/2, [110/41], 1d01h, ospf-UNDERLAY, intra

Jak je vidět výše, adresa 10.255.1.10 je dostupná ihned přes dva Next-hop.

V této fázi jsme si vyjasnili základní propojení. Přejděme k nastavení rozhraní NVE:
Ihned aktivujeme VLAN 10 a asociujeme ji s VNI 10000 na každém Leaf pro hosty. Nastavíme L2 tunel mezi hosty.

vlan 10                 ! Aktivujeme VLAN na všech VTEP připojených k potřebným hostitelům
  vn-segment 10000      ! Asociujeme VLAN s číslem VNI 

interface nve1
  member vni 10000      ! Přidáváme VNI 10000 pro práci přes rozhraní NVE, pro enkapsulaci v VxLAN
    ingress-replication protocol bgp    ! Určujeme, že pro distribuci informací o hostiteli používáme BGP

Nyní zkontrolujeme nve peers a tabulku pro BGP EVPN:

Leaf21# sh nve peers
Interface Peer-IP          State LearnType Uptime   Router-Mac
--------- ---------------  ----- --------- -------- -----------------
nve1      10.255.1.10      Up    CP        00:00:41 n/a                 ! Vidíme, že peer je dostupný se sekundární adresy

Leaf11# sh bgp l2vpn evpn

   Network            Next Hop            Metric     LocPrf     Weight Path
Route Distinguisher: 10.255.1.11:32777    (L2VNI 10000)        ! Od koho konkrétně přišel tento l2VNI
*>l[3]:[0]:[32]:[10.255.1.10]\/88                                   ! EVPN route-type 3 - ukazuje našeho souseda, který také zná o l2VNI10000
                      10.255.1.10                       100      32768 i
*>i[3]:[0]:[32]:[10.255.1.20]\/88
                      10.255.1.20                       100          0 i
* i                   10.255.1.20                       100          0 i

Route Distinguisher: 10.255.1.21:32777
* i[3]:[0]:[32]:[10.255.1.20]\/88
                      10.255.1.20                       100          0 i
*>i                   10.255.1.20                       100          0 i

Nad námi vidíme trasy pouze EVPN route-type 3. Tento typ tras hovoří o peer (Leaf), ale kde jsou naše hosty?
Záležitost je v tom, že informace o MAC adresách hostitelů se přenášejí přes EVPN route-type 2

Abychom viděli naše hosty, je třeba nastavit EVPN route-type 2:

evpn
  vni 10000 l2
    route-target import auto   ! V rámci tohoto článku používáme automatické číslo pro route-target
    route-target export auto

Provedeme ping z Host-2 na Host-1:

Firewall2# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1): 56 data bytes
36 bytes from 192.168.10.2: Destination Host Unreachable
Request 0 timed out
64 bytes from 192.168.10.1: icmp_seq=1 ttl=254 time=215.555 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=254 time=38.756 ms
64 bytes from 192.168.10.1: icmp_seq=3 ttl=254 time=42.484 ms
64 bytes from 192.168.10.1: icmp_seq=4 ttl=254 time=40.983 ms

A níže vidíme, že v tabulce BGP se objevily route-type 2 s MAC adresami hostitelů — 5001.0007.0007 a 5001.0008.0007

Leaf11# sh bgp l2vpn evpn


   Síť            Další skok            Metrika     LocPrf     Váha Cesta
Route Distinguisher: 10.255.1.11:32777    (L2VNI 10000)
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]\/216                      !  evpn route-type 2 a mac adresa hosta 1
                      10.255.1.10                       100      32768 i
*>i[2]:[0]:[0]:[48]:[5001.0008.0007]:[0]:[0.0.0.0]\/216                      ! evpn route-type 2 a mac adresa hosta 2
* i                   10.255.1.20                       100          0 i
*>l[3]:[0]:[32]:[10.255.1.10]\/88
                      10.255.1.10                       100      32768 i
Route Distinguisher: 10.255.1.21:32777
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[0]:[0.0.0.0]\/216
                      10.255.1.20                       100          0 i
*>i                   10.255.1.20                       100          0 i

Dále se můžeme podívat na podrobnosti aktualizace, ve které jsme dostali informace o MAC Host. Níže je uvedený neúplný výstup příkazu

Leaf21# sh bgp l2vpn evpn 5001.0007.0007

Informace o směrovací tabulce BGP pro VRF default, rodina adres L2VPN EVPN
Route Distinguisher: 10.255.1.11:32777        !  odeslat aktualizaci s MAC Host. Ne virtuální adresa VPC, ale adresa Leaf
Záznam směrovací tabulky BGP pro [2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]\/216,
 verze 1507
Cesty: (2 k dispozici, nejlepší #2)
Příznaky: (0x000202) (high32 00000000) na xmit-list, není v l2rib\/evpn, není v HW

  Typ cesty: interní, cesta je platná, není nejlepší důvod: Adresa souseda, žádný označený následující skok
  AS-Cesta: ŽÁDNÁ, cesta pochází interně do AS
    10.255.1.10 (metrika 81) z 10.255.1.102 (10.255.1.102)    ! s kým konkrétně vytváříme VxLAN tunel
      Původ IGP, MED není nastaven, localpref 100, váha 0
      Přijatý štítek 10000         ! Číslo VNI, které je asociováno s VLAN, ve které se nachází Host
      Extcommunity: RT:65001:10000 SOO:10.255.1.10:0 ENCAP:8        ! Zde vidíme, že RT byl automaticky vytvořen na základě čísel AS a VNI
      Originátor: 10.255.1.11 Seznam clusterů: 10.255.1.102

Podívejme se, jak vypadají rámce, když procházejí fabrikou:

VxLAN fabriky. Část 1

Suppress-ARP

Skvěle, máme L2 spojení mezi hosty a na tom bychom mohli skončit. Nicméně, vše není tak jednoduché. Dokud máme málo hostů, problémy nevzniknou. Ale představme si situaci, kdy máme stovky a tisíce hostů. S jakým problémem se můžeme setkat?

Tento problém — BUM (Broadcast, Unknown Unicast, Multicast) provoz. V rámci tohoto článku se podíváme na možnosti, jak bojovat s broadcast provozem.
Hlavním generátorem Broadcast v Ethernet sítích jsou samotní hosté prostřednictvím protokolu ARP.

Na nexus je realizován následující mechanismus pro boj s ARP požadavky — suppress-arp.
Funkce této funkce vypadá následovně:

  1. Host-1 posílá ARP dotaz na Broadcast adresu své sítě.
  2. Dotaz dorazí k Leaf přepínači a místo toho, aby tento dotaz předal dále ve fabrice směrem k Host-2 — Leaf odpovídá sám a uvádí potřebný IP a MAC.

Tímto způsobem Broadcast dotaz neodešel do fabricu. Jak to však může fungovat, pokud Leaf zná pouze MAC adresu?

Vše je docela jednoduché, EVPN route-type 2 kromě MAC adresy může předávat i combo MAC/IP. K tomu je potřeba na Leaf nastavit IP adresu ve VLAN. Objevuje se otázka, jakou IP adresu zadat? Na Nexus je možnost vytvořit distribuovanou (stejnou) adresu na všech switchích:

feature interface-vlan

fabric forwarding anycast-gateway-mac 0001.0001.0001    ! nastavujeme virtual mac pro vytvoření distribuované brány mezi všemi switche

Tímto způsobem bude síť z pohledu hostitelů vypadat následovně:

VxLAN fabriky. Část 1

Zkontrolujeme BGP l2route evpn

Leaf11# sh bgp l2vpn evpn


   Network            Next Hop            Metric     LocPrf     Weight Path
Route Distinguisher: 10.255.1.11:32777    (L2VNI 10000)
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]\/216
                      10.255.1.21                       100      32768 i
*>i[2]:[0]:[0]:[48]:[5001.0008.0007]:[0]:[0.0.0.0]\/216
                      10.255.1.10                       100          0 i
* i                   10.255.1.10                       100          0 i
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.10.20]\/248
                      10.255.1.10                       100          0 i
*>i                   10.255.1.10                       100          0 i



Route Distinguisher: 10.255.1.21:32777
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[0]:[0.0.0.0]\/216
                      10.255.1.20                       100          0 i
*>i                   10.255.1.20                       100          0 i
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.10.20]\/248
*>i                   10.255.1.20                       100          0 i

Z výstupu příkazu je patrné, že v EVPN route-type 2 kromě MAC nyní vidíme také IP adresu hostitele.

Vracíme se k nastavení suppress-arp. Tato možnost se zapíná pro každý VNI zvlášť:

interface nve1
  member vni 10000   
    suppress-arp

Dále nastává jistá komplikace:

  • Pro fungování této funkce je potřeba místo v TCAM paměti. Uvedu příklad nastavení pro suppress-arp:

hardware access-list tcam region arp-ether 256

Pro toto nastavení bude potřeba double-wide. To znamená, že pokud nastavujete 256, musíte v TCAM uvolnit 512. Nastavení TCAM vychází za hranice tohoto článku, protože konkrétní nastavení TCAM závisí pouze na úkolu, který máte před sebou, a může se lišit od jedné sítě k druhé.

  • Implementace suppress-arp je nutné provést na všech Leaf přepínačích. Avšak složitosti mohou nastat při konfiguraci na párech Leaf, nacházejících se v doméně VPC. Při změnách TCAM bude narušena konzistence mezi páry a jeden uzel může být vyřazen z provozu. Navíc pro aplikaci nastavení změn TCAM může být zapotřebí restart zařízení.

Výsledkem je, že byste měli pečlivě zvážit, zda v vaší situaci implementovat toto nastavení na funkční továrnu.

Tímto zakončíme první část cyklu. V další části se budeme zabývat směrováním přes VxLAN továrnu s rozdělením sítí podle různých VRF.

A teď zvu všechny na bezplatný webinář, v rámci kterého podrobně představím kurz. Prvních 20 účastníků, kteří se registrovali na tento webinář, obdrží certifikát na slevu na elektronickou poštu během 1-2 dnů po přenosu.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster