VxLAN gyár. 1. rész

Üdvözlöm, Habr. Jelenleg az OTUS "Hálózati mérnök" kurzusának vezetője vagyok.
Az új kurzus indítása előtt "Hálózati mérnök", elkészítettem egy cikksorozatot a VxLAN EVPN technológiáról.

Rengeteg anyag áll rendelkezésre a VxLAN EVPN használatáról, ezért szeretném összegyűjteni a különböző feladatokat és azok megoldásait a modern adatközpontban.

VxLAN gyár. 1. rész

A VxLAN EVPN technológiáról szóló cikksorozat első részében az L2 kapcsolat létrehozásának módját vizsgálom a hosztok között a hálózati gyár felett.

Minden példát Cisco Nexus 9000v eszközökön hajtunk végre, amelyeket Spine-Leaf topológiába állítunk. E cikk keretein belül nem fogunk foglalkozni az Underlay hálózat beállításával.

  1. Underlay hálózat
  2. BGP peering az address-family l2vpn evpn-hez
  3. NVE beállítása
  4. Supress-arp

Underlay hálózat

A használt topológia a következőképpen néz ki:

VxLAN gyár. 1. rész

Állítsuk be a címzést az összes eszközön:

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

Ellenőrizzük, hogy van-e IP kapcsolat az összes eszköz között:

Leaf21# sh ip route

10.255.1.11/32, ubest/mbest: 2/0                      ! A Leaf-11 elérhető két Spine-on keresztül
    *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                      ! A Leaf-12 elérhető két Spine-on keresztül
    *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

Ellenőrizzük, hogy a VPC domain létrejött-e, és hogy mindkét switch átesett-e a konzisztencia-ellenőrzésen, és hogy a beállítások azonosak-e mindkét noden:

Leaf11# show vpc 

vPC domain id                     : 1
Peer status                       : a peer kapcsolata rendben van
vPC keep-alive status             : a peer él
Configuration consistency status  : siker
Per-vlan consistency status       : siker
Type-2 consistency status         : siker
vPC role                          : elsődleges
Number of vPCs configured         : 0
Peer Gateway                      : Kikapcsolva
Dual-active excluded VLANs        : -
Graceful Consistency Check        : Engedélyezve
Auto-recovery status              : Kikapcsolva
Delay-restore status              : Az időzítő ki van kapcsolva. (timeout = 30s)
Delay-restore SVI status          : Az időzítő ki van kapcsolva. (timeout = 10s)
Operational Layer3 Peer-router    : Kikapcsolva

vPC állapot
----------------------------------------------------------------------------
Id    Port          Status Consistency Reason                Active vlans
--    ------------  ------ ----------- ------                ---------------
5     Po5           fenn     siker     siker               1

BGP peering

Végre áttérhetünk az Overlay hálózat beállítására.

A cikk keretein belül hálózatot kell szerveznünk a hosztok között, ahogy az alábbi ábrán látható:

VxLAN gyár. 1. rész

Az Overlay hálózat konfigurálásához a Spine és Leaf switch-eken BGP-t kell engedélyezni az l2vpn evpn családdal:

feature bgp
nv overlay evpn

Ezután BGP peeringet kell konfigurálni a Leaf és Spine között. A beállítás egyszerűsítése és a routing információk terjesztésének optimalizálása érdekében a Spine-t Route-Reflector server-ként állítjuk be. Minden Leaf-et sablonokon keresztül írunk be a konfigurációba, hogy optimalizáljuk a beállítást.

Így a beállítás a Spine-en így néz ki:

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

A Leaf switch beállítása hasonlóképpen néz ki:

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

A Spine-en ellenőrizzük a peeringet az összes Leaf switch-el:

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

Ahogy látjuk, a BGP-vel nem voltak problémák. Most áttérünk a VxLAN beállítására. A további beállításokat kizárólag a Leaf switch-ek oldalán végezzük. A Spine csak a hálózat magjaként működik, és csak a forgalom átadásával foglalkozik. Az összes kapszulázás és útvonalmeghatározás kizárólag a Leaf switch-eken történik.

NVE beállítása

NVE — hálózati virtuális interfész

A beállítás előtt néhány terminológiát kell bevezetnünk:

VTEP — Virtual Tunnel End Point, az a készülék, ahol a VxLAN alagút kezdődik vagy végződik. A VTEP nem feltétlenül valamely hálózati eszköz. Szolgáltató szerver is lehet VxLAN technológia támogatásával. A topológiánkban minden Leaf switch VTEP-ként működik.

VNI — Virtual Network Index — a hálózat azonosítója a VxLAN keretein belül. Analógiát vonhatunk a VLAN-nal. Azonban vannak eltérések. A gyár használatával a VLAN-ok csak egy Leaf switchen belül válnak egyedivé, és nem terjednek el a hálózaton. De minden VLAN-hoz hozzárendelhető egy VNI szám, ami már átmegy a hálózaton. Az, hogy ez hogyan néz ki és hogyan használható, a későbbiekben lesz bemutatva.

Bekapcsoljuk a VxLAN technológia működéséhez szükséges funkciót, és lehetővé tesszük a VLAN számok VNI számokkal való társítását:

funkció nv overlay
funkció vn-szakasz-vlan-alapú

Beállítjuk az NVE interfészt, amely a VxLAN működéséért felelős. Ez az interfész éppen a keretek VxLAN fejlécekkel való encapsulálásáért felel. Analógiát vonhatunk a GRE alagút interfészéhez:

interfész nve1
  no shutdown
  host-reachability protokoll bgp ! BGP-t használunk az útvonal-információk továbbítására
  source-interface loopback0    ! az interfész, ahonnan a loopback0 csomagokat küldjük

A Leaf-21 switch-en minden problémamentesen létrejön. Ha azonban ellenőrizzük a következő parancs kimenetét: show nve peers, az üresen marad. Vissza kell térni a VPC beállításához. Látjuk, hogy a Leaf-11 és Leaf-12 egy párban működik, és egy VPC domainba kapcsolódik. Így a következő helyzet áll elő:

A Host-2 egy keretet küld a Leaf-21 felé, hogy az továbbítja a hálózaton a Host-1 felé. A Leaf-21 azonban látja, hogy a Host-1 MAC címe két VTEP-en keresztül is elérhető. Hogyan kell eljárni a Leaf-21-nek? Ez azt jelenti, hogy a hálózaton hurok keletkezhetett.

A helyzet megoldásához szükség van arra, hogy a Leaf-11 és Leaf-12 a gyár keretein belül egyetlen eszközként működjön. Ezt viszonylag egyszerűen megoldhatjuk. Az alagút építéséhez használt Loopback interfészen másodlagos címet adunk hozzá. A másodlagos címnek mindkét VTEP-en azonosnak kell lennie.

interfész loopback0
 ip add 10.255.1.10/32 secondary

Így a többi VTEP szempontjából a következő topológiát kapjuk:

VxLAN gyár. 1. rész

Tehát most az alagút a Leaf-21 IP címe és a két Leaf-11 és Leaf-12 közötti virtuális IP cím között fog felépülni. Mostantól nem lesz probléma a MAC címek tanulmányozásával a két eszköz között, és a forgalom átmehet az egyik VTEP-ről a másikra. Hogy melyik VTEP kezeli a forgalmat, azt a Spine útvonal-táblája döntése alapján állapítjuk meg:

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

Amint látható, a 10.255.1.10 cím azonnal két Next-hop-on keresztül elérhető.

Ezen a szinten a alapvető összekapcsoltságot tisztáztuk. Térjünk át az NVE interfész beállítására:
Azonnal aktiváljuk a 10-es VLAN-t, és társítjuk a 10000-es VNI-hez minden Leaf esetében a hostok számára. Létrehozunk egy L2 alagutat a hosztok között.

vlan 10                 ! Engedélyezzük a VLAN-t minden VTEP-hez csatlakoztatott szükséges hoszton
  vn-segment 10000      ! A VLAN-t a VNI számával társítjuk 

interface nve1
  member vni 10000      ! 10000-es VNI hozzáadása a NVE interfészen keresztüli működéshez, VxLAN-bekapcsolódás érdekében
    ingress-replication protocol bgp    ! Megadjuk, hogy a hosztinformációk terjesztéséhez BGP-t használunk

Most ellenőrizzük az nve peers-t és a BGP EVPN táblázatot:

Leaf21# sh nve peers
Interface Peer-IP          State LearnType Uptime   Router-Mac
--------- ---------------  ----- --------- -------- -----------------
nve1      10.255.1.10      Up    CP        00:00:41 n/a                 ! Látjuk, hogy a peer elérhető a másodlagos címen

Leaf11# sh bgp l2vpn evpn

   Network            Next Hop            Metric     LocPrf     Weight Path
Route Distinguisher: 10.255.1.11:32777    (L2VNI 10000)        ! Kitől érkezett ez az l2VNI
*>l[3]:[0]:[32]:[10.255.1.10]\/88                                   ! EVPN route-type 3 - megmutatja a szomszédunkat, aki szintén ismeri az l2VNI10000-et
                      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

Fent csak az EVPN route-type 3 útvonalakat látjuk. Ez a típusa a peer (Leaf) információit tartalmazza, de hol vannak a hosztjaink?
A dolog lényege, hogy a hosztok MAC információja az EVPN route-type 2-n keresztül kerül átadásra.

Ahhoz, hogy láthassuk a hosztjainkat, be kell állítanunk az EVPN route-type 2-t:

evpn
  vni 10000 l2
    route-target import auto   ! A cikk keretein belül automatikus számot használunk a route-target számára
    route-target export auto

Pingelünk a Host-2-ről a Host-1-re:

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

Alul látható, hogy a BGP táblázatban megjelentek a route-type 2 MAC címmel rendelkező hosztok — 5001.0007.0007 és 5001.0008.0007

Leaf11# sh bgp l2vpn evpn


   Hálózat            Következő ugrás            Mérték     LocPrf     Súly Útvonal
Útválasztó megkülönböztető: 10.255.1.11:32777    (L2VNI 10000)
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]\/216                      !  evpn útvonal-típus 2 és a 1. hoszt MAC címe
                      10.255.1.10                       100      32768 i
*>i[2]:[0]:[0]:[48]:[5001.0008.0007]:[0]:[0.0.0.0]\/216                      ! evpn útvonal-típus 2 és a 2. hoszt MAC címe
* i                   10.255.1.20                       100          0 i
*>l[3]:[0]:[32]:[10.255.1.10]\/88
                      10.255.1.10                       100      32768 i
Útválasztó megkülönböztető: 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

Ezután megtekinthetjük a frissítés részletes információit, amelyben információt kaptunk a MAC hostról. Az alábbiakban nem az összes parancs kimenete látható

Leaf21# sh bgp l2vpn evpn 5001.0007.0007

A BGP útválasztási táblainformáció a VRF alapértelmezett, L2VPN EVPN címzési család számára
Útválasztó megkülönböztető: 10.255.1.11:32777        !  frissítést küldött a MAC hostról. Nem virtuális VPC cím, hanem Leaf cím
A BGP útválasztási táblabejegyzés a [2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]\/216,
 verzió 1507
Útvonalak: (2 elérhető, legjobb #2)
Jelek: (0x000202) (high32 00000000) xmit-listán, nem szerepel az l2rib\/evpn-ben, nem HW

  Útvonal típus: belső, az útvonal érvényes, nem legjobb ok: szomszédi cím, nincs címkézett következő ugrás
  AS-Útvonal: NINCS, az útvonal belső forrású az AS-en belül
    10.255.1.10 (meter 81) a 10.255.1.102-től (10.255.1.102)    ! kivel építjük fel a VxLAN alagutat
      Eredete IGP, MED nincs beállítva, helyi preferencia 100, súly 0
      Megkapott címke 10000         ! A VNI száma, amely a VLAN-nal van társítva, amelyben a hoszt található
      Extcommunity: RT:65001:10000 SOO:10.255.1.10:0 ENCAP:8        ! Itt látható, hogy a RT automatikusan a számok alapján alakult ki AS és VNI
      Eredet: 10.255.1.11 Kluster lista: 10.255.1.102
<........>

Nézzük meg, hogyan néznek ki a keretek, amikor ezek áthaladnak a gyár üzerinden:

VxLAN gyár. 1. rész

Suppress-ARP

Kiváló, az L2 kapcsolat a hostok között rendelkezésünkre áll, és itt befejezhetnénk. Azonban nem ilyen egyszerű. Amíg kevés hostunk van, nem adódik probléma. De képzeljük el a helyzetet, hogy több száz vagy ezer hostunk van. Mivel a problémával találkozhatunk?

Ez a probléma — BUM (Broadcast, Unknown Unicast, Multicast) forgalom. A cikk keretein belül a broadcast forgalom elleni küzdelem lehetőségét tárgyaljuk.
A fő Broadcast generátor az Ethernet hálózatokban maguk a hosztok az ARP protokollon keresztül.

A Nexus esetében a következő mechanizmus van implementálva az ARP kérések elleni küzdelemre — suppress-arp.
A funkció munkája a következőképpen néz ki:

  1. A Host-1 Broadcast címre küld ARP kérést az ő hálózatában.
  2. A kérés eljut a Leaf switch-hez, és ahelyett, hogy továbbítaná ezt a kérést a gyár felé a Host-2 irányába — a Leaf maga válaszol, és megadja a szükséges IP-t és MAC-t.

Így a Broadcast kérés nem került a gyárba. De hogyan működhet ez, ha a Leaf csak a MAC címet ismeri?

Minden meglehetősen egyszerű, az EVPN route-type 2 a MAC cím mellett el tudja küldeni a MAC/IP párost is. Ehhez a Leaf-en IP címet kell beállítani a VLAN-ban. Felmerül a kérdés, milyen IP-t adjunk meg? A Nexuson lehetőség van arra, hogy egy elosztott (azonos) címet hozzunk létre az összes kapcsolón:

feature interface-vlan

fabric forwarding anycast-gateway-mac 0001.0001.0001    ! beállítjuk a virtuális mac-et az elosztott átjáró létrehozásához az összes kapcsolón

interface Vlan10
  no shutdown
  ip address 192.168.10.254/24          ! az összes Leaf-en azonos IP-t állítunk be
  fabric forwarding mode anycast-gateway    ! mondjuk, hogy használjuk a virtuális mac-et

Így a hosztok szempontjából a hálózat a következőképpen fog kinézni:

VxLAN gyár. 1. rész

Ellenőrizzük a BGP l2route evpn-t

Leaf11# sh bgp l2vpn evpn


   Hálózat            Következő ugrás            Metrika     LocPrf     Súly Út
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

A parancs kimenetéből látható, hogy az EVPN route-type 2-ben a MAC mellett most már a hoszt IP címe is látható.

Visszatérve a suppress-arp beállításra. Ezt a beállítást minden VNI-nél külön kell engedélyezni:

interface nve1
  member vni 10000   
    suppress-arp

Ezután némi nehézség merül fel:

  • E funkció működéséhez szükség van helyre a TCAM memóriában. Példát mutatok a suppress-arp beállítására:

hardware access-list tcam region arp-ether 256

Ehhez a beállításhoz double-wide szükséges. Tehát ha 256-ot állít be, akkor a TCAM-ban 512-t kell felszabadítania. A TCAM beállítása túlnyúlik ezen a cikken, mivel a TCAM beállítása csak az Ön által felállított feladattól függ, és eltérhet egyik hálózatról a másikra.

  • A suppress-arp bevezetését minden Leaf switch-en el kell végezni. Azonban nehézségek merülhetnek fel a VPC tartományban lévő Leaf párok beállításánál. A TCAM módosítása esetén a párok közötti konzisztencia megszakadhat, és az egyik node működésképtelenné válhat. A TCAM beállításának alkalmazásához esetleg szükség lehet az eszköz újraindítására.

Ennek eredményeként érdemes jól átgondolni, hogy a jelen helyzetben érdemes-e ezt a beállítást egy működő gyárban bevezetni.

Ezzel befejezzük a ciklus első részét. A következő részben a VxLAN gyárakon keresztüli routolást fogjuk megvizsgálni, különböző VRF-ekkel elkülönített hálózatokkal.

Most pedig mindenkit meghívlak a ingyenes webináriumra, amely keretében részletesen beszámolok a tanfolyamról. Az első 20 résztvevő, akik regisztrálnak erre a webináriumra, elektronikus úton 1-2 napon belül kedvezményről szóló bizonyítványt kapnak.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster