VxLAN Fabrika. Dio 1

Pozdrav, Habr. Trenutno sam voditelj tečaja "Mrežni inženjer" u OTUS-u.
Uoči početka novog upisa na tečaj "Mrežni inženjer", pripremio sam ciklus članaka o tehnologiji VxLAN EVPN.

Postoji ogromna količina materijala o radu s VxLAN EVPN, stoga želim prikupiti različite zadatke i prakse rješavanja problema u modernom podatkovnom centru.

VxLAN Fabrika. Dio 1

U prvom dijelu ciklusa o tehnologiji VxLAN EVPN želim razmotriti način organizacije L2 povezanosti između hostova na mrežnoj fabrici.

Sve primjere ćemo izvoditi na Cisco Nexus 9000v, sastavljenima u topologiju Spine-Leaf. Nećemo se zadržavati na postavkama Underlay mreže u okviru ovog članka.

  1. Underlay mreža
  2. BGP peering za address-family l2vpn evpn
  3. Postavke NVE
  4. Supress-arp

Underlay mreža

Upotrebljena topologija izgleda ovako:

VxLAN Fabrika. Dio 1

Zadamo adresiranje na svim uređajima:

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

Provjeravamo da li postoji IP povezanost između svih uređaja:

Leaf21# sh ip route

10.255.1.11/32, ubest/mbest: 2/0                      ! Leaf-11 je dostupan preko 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 dostupan preko 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

Provjeravamo da li je VPC domen stvoren i jesu li oba preklopnika prošla provjeru dosljednosti, te da su postavke na obje nodove jednake:

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 peering

Naposljetku možemo prijeći na postavku Overlay mreže.

U okviru članka potrebno je organizirati mrežu između hostova, kao što je prikazano na dijagramu ispod:

VxLAN Fabrika. Dio 1

Za konfiguriranje Overlay mreže potrebno je omogućiti BGP na Spine i Leaf preklopnicima s podrškom za l2vpn evpn obitelj:

feature bgp
nv overlay evpn

Nakon toga potrebno je postaviti BGP peering između Leaf i Spine. Za pojednostavljenje konfiguracije i optimizaciju širenja informacijskih ruta, Spine podešavamo kao Route-Reflector server. Sve Leaf uređaje ćemo definirati u konfiguraciji putem šablona, kako bismo optimizirali postavke.

Tako postavke na Spine izgledaju ovako:

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

Konfiguracija na Leaf preklopniku izgleda slično:

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 provjeravamo peering sa svim Leaf preklopnicima:

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

Kao što vidimo, s BGP nemamo problema. Prelazimo na konfiguraciju VxLAN. Daljnja konfiguracija će se odvijati samo na strani Leaf preklopnika. Spine djeluje samo kao jezgra mreže i bavi se isključivo prijenosom prometa. Sav rad na enkapsulaciji i određivanju putanje odvija se samo na Leaf preklopnicima.

Postavke NVE

NVE — virtualno mrežno sučelje

Prije početka konfiguracije unijet ćemo malo terminologije:

VTEP — Virtual Tunnel End Point, uređaj na kojem započinje ili završava VxLAN tunel. VTEP nije nužno neko mrežno uređaj. Također može biti i poslužitelj koji podržava tehnologiju VxLAN. U našoj topologiji svi Leaf preklopnici su VTEP.

VNI — Virtual Network Index — identifikator mreže u okviru VxLAN. Može se napraviti analogija s VLAN-om. Međutim, postoje određene razlike. Kada se koristi tvornica, VLAN-ovi postaju jedinstveni samo unutar jednog Leaf preklopnika i ne prenose se preko mreže. Ali s svakim VLAN-om može biti povezan broj VNI, koji se već prenosi preko mreže. Kako to izgleda i kako se može iskoristiti bit će razmotreno dalje.

Omogućit ćemo značajku za rad tehnologije VxLAN i mogućnost povezivanja brojeva VLAN s brojem VNI:

feature nv overlay
feature vn-segment-vlan-based

Postavit ćemo NVE sučelje koje je odgovorno za rad VxLAN-a. Ovo sučelje služi za enkapsulaciju okvira u VxLAN zaglavlja. Možemo povući paralelu s Tunnel sučeljem za GRE:

interface nve1
  no shutdown
  host-reachability protocol bgp ! koristimo BGP za prenos informacija o rutama
  source-interface loopback0    ! sučelje s kojeg šaljemo pakete loopback0

Na Leaf-21 prekidaču sve se stvara bez problema. Međutim, ako provjerimo ispis komande show nve peers, bit će prazan. Ovdje se treba vratiti na konfiguraciju VPC-a. Vidimo da Leaf-11 i Leaf-12 rade u paru i povezani su VPC domenom. Iz toga slijedi sljedeća situacija:

Host-2 šalje jedan okvir prema Leaf-21, kako bi ga ovaj prenio preko mreže prema Host-1. Međutim, Leaf-21 vidi da je MAC adresa Host-1 dostupna preko dva VTEP-a. Kako se u ovom slučaju ponaša Leaf-21? To znači da je u mreži mogla nastati petlja.

Za rješavanje ove situacije, potrebno je da Leaf-11 i Leaf-12 unutar fabrike također djeluju kao jedno uređaj. To se rješava vrlo jednostavno. Na Loopback sučelju s kojeg gradimo tunel, dodajemo sekundarnu adresu. Sekundarna adresa mora biti ista na oba VTEP-a.

interface loopback0
 ip add 10.255.1.10/32 secondary

Tako da s točke gledišta drugih VTEP-a, dobivamo sljedeću topologiju:

VxLAN Fabrika. Dio 1

Dakle, sada će se tunel graditi između IP adrese Leaf-21 i virtualne IP adrese između dva Leaf-a, Leaf-11 i Leaf-12. Sada neće biti problema s učenjem MAC adrese iz dva uređaja i promet može prelaziti s jednog VTEP-a na drugi. Tko će od ta dva VTEP-a obraditi promet odlučuje se putem tablice rutiranja na Spineu:

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

Kao što se može vidjeti iznad, adresa 10.255.1.10 dostupna je odmah preko dva Next-hop-a.

Na ovoj fazi razjasnili smo osnovnu povezanost. Pređimo na konfiguraciju NVE sučelja:
Odmah ćemo uključiti Vlan 10 i asocirati ga s VNI 10000 na svakom Leaf-u za hotele. Konfigurirat ćemo L2 tunel između hostova.

vlan 10                 ! Uključujemo VLAN na svim VTEP-ima povezanima s potrebnim hostovima
  vn-segment 10000      ! Povezujemo VLAN s brojem VNI 

interface nve1
  member vni 10000      ! Dodajemo VNI 10000 za rad preko NVE sučelja, za enkapsulaciju u VxLAN
    ingress-replication protocol bgp    ! označavamo da za širenje informacija o hostu koristimo BGP

Sada ćemo provjeriti nve peers i tablicu za 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                 ! Vidimo da je peer dostupan s sekundarne adrese

Leaf11# sh bgp l2vpn evpn

   Network            Next Hop            Metric     LocPrf     Weight Path
Route Distinguisher: 10.255.1.11:32777    (L2VNI 10000)        ! Od koga je došao ovaj l2VNI
*>l[3]:[0]:[32]:[10.255.1.10]\/88                                   ! EVPN route-type 3 - prikazuje našeg susjeda koji također zna za 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

Iz gornjeg pregleda vidimo rute samo za EVPN route-type 3. Ovaj tip ruta govori o peer (Leaf), ali gdje su naši hostovi?
Bitno je to što se informacije o MAC hostovima prenose putem EVPN route-type 2

Da bismo vidjeli naše hostove, potrebno je konfigurirati EVPN route-type 2:

evpn
  vni 10000 l2
    route-target import auto   ! U okviru ovog članka koristimo automatski broj za route-target
    route-target export auto

Izvršit ćemo ping s Host-2 na Host-1:

Firewall2# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1): 56 bytes podataka
36 bytes from 192.168.10.2: Odredišni host nedostupan
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

I niže možemo vidjeti da su u BGP tablici pojavili route-type 2 s MAC adresama hostova — 5001.0007.0007 i 5001.0008.0007

Leaf11# sh bgp l2vpn evpn


   Mreža            Sljedeći Skok            Metrički     LocPrf     Težina Put
Put Distinguish: 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 i 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 i 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
Put Distinguish: 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

Zatim možemo pogledati detaljne informacije o Update-ima u kojima smo dobili informacije o MAC Hostu. Ispod je prikazan ne cijeli izlaz naredbe

Leaf21# sh bgp l2vpn evpn 5001.0007.0007

BGP routing tabela informacija za VRF default, adresna obitelj L2VPN EVPN
Put Distinguish: 10.255.1.11:32777        !  poslao Update s MAC Hostom. Nije virtualna adresa VPC, već adresa Leaf
BGP routing tabela unos za [2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]\/216,
 verzija 1507
Putanje: (2 dostupne, najboljih #2)
Zastavice: (0x000202) (high32 00000000) na xmit-listi, nije u l2rib\/evpn, nije u HW

  Tip putanje: interna, putanja je valjana, nije najbolja razlog: Adresa susjeda, nema označenog sljedećeg skoka
  AS-Path: NEMA, putanja je izvorno interna za AS
    10.255.1.10 (metrički 81) iz 10.255.1.102 (10.255.1.102)    ! s kim točno gradimo VxLAN tunel
      Izvor IGP, MED nije postavljen, lokalpref 100, težina 0
      Primljeni label 10000         ! Broj VNI, koji je povezan s VLAN-om, u kojem se nalazi Host
      Extcommunity: RT:65001:10000 SOO:10.255.1.10:0 ENCAP:8        ! Ovdje se vidi da je RT automatski formiran na osnovu brojeva AS i VNI
      Originator: 10.255.1.11 Lista klastera: 10.255.1.102
<........>

Pogledajmo kako izgledaju paketi kada se prenose kroz fabriku:

VxLAN Fabrika. Dio 1

Suppress-ARP

Odlično, L2 veza između hostova je uspostavljena i tu bismo mogli završiti. Međutim, nije sve tako jednostavno. Dok imamo malo hostova nećemo imati problema. Ali zamislimo situaciju gdje imamo stotine ili tisuće hostova. S kojim problemima se možemo suočiti?

Ovaj problem je BUM (Broadcast, Unknown Unicast, Multicast) promet. U okviru ovog članka razmotrićemo opciju borbe protiv broadcast prometa.
Glavni generator broadcast-a u Ethernet mrežama su sami hostovi putem ARP protokola.

Na nexus-u je implementiran sljedeći mehanizam za borbu protiv ARP zahtjeva — suppress-arp.
Rad ove funkcije izgleda ovako:

  1. Host-1 šalje ARP zahtjev na Broadcast adresu svoje mreže.
  2. Zahtjev dolazi do Leaf preklopnika i umjesto da taj zahtjev prenese dalje u fabriku prema Host-2 — Leaf odgovara sam i navodi potrebnu IP i MAC.

Dakle, Broadcast zahtjev nije otišao u fabriku. Kako to može funkcionirati, ako Leaf zna samo MAC adresu?

Sve je prilično jednostavno, EVPN route-type 2 osim MAC adrese može prenositi i par MAC/IP. Za to je na Leaf-u potrebno konfigurirati IP adresu u VLAN-u. Postavlja se pitanje, koja IP adresa treba biti zadana? Na Nexus-u postoji mogućnost kreirati distribuiranu (istovjetnu) adresu na svim preklopnicima:

feature interface-vlan

fabric forwarding anycast-gateway-mac 0001.0001.0001    ! postavljamo virtualni mac za izradu distribuirane gateway između svih preklopnika

interface Vlan10
  no shutdown
  ip address 192.168.10.254/24          ! na svim Leaf-ima postavljamo istu IP
  fabric forwarding mode anycast-gateway    ! kažemo da koristimo Virtual mac

Dakle, s gledišta hostova, mreža će izgledati ovako:

VxLAN Fabrika. Dio 1

Provjerimo BGP l2route evpn

Leaf11# sh bgp l2vpn evpn


   Mreža            Sljedeći isko            Metrika     LocPrf     Težina Put
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

Iz ispisa komande vidimo da u EVPN route-type 2 osim MAC-a sada vidimo i IP adresu hosta.

Vraćamo se na konfiguraciju suppress-arp. Ova opcija se aktivira za svaki VNI posebno:

interface nve1
  member vni 10000   
    suppress-arp

Nakon toga dolazi do nekih poteškoća:

  • Za rad ove funkcije potrebno je prostora u TCAM memoriji. Dati ću primjer postavke za suppress-arp:

hardware access-list tcam region arp-ether 256

Za ovu postavku bit će potrebna double-wide. To jest, ako postavljate 256, u TCAM-u je potrebno osloboditi 512. Konfiguracija TCAM-a izlazi iz okvira ovog članka, jer ovisi isključivo o zadatku koji imate i može se razlikovati od jedne mreže do druge.

  • Implementacija suppress-arp mora se izvršiti na svim Leaf switchevima. Međutim, može doći do komplikacija prilikom konfiguracije na parovima Leaf unutar VPC domene. Kada dođe do promjene TCAM-a, dosljednost između parova bit će narušena i jedan čvor bi mogao prestati raditi. Osim toga, za primjenu postavki promjene TCAM-a može biti potrebna ponovna pokretanje uređaja.

Stoga je potrebno dobro razmisliti o tome da li je u vašoj situaciji isplativo implementirati ovu postavku na aktivnu fabriku.

Time završavamo prvi dio ciklusa. U sljedećem dijelu razmotrit ćemo usmjeravanje kroz VxLAN fabriku s razdvajanjem mreža prema različitim VRF-ovima.

A sada pozivam sve na besplatni webinar, u okviru kojeg ću detaljno govoriti o tečaju. Prvih 20 sudionika koji se registriraju za ovaj webinar dobit će certifikat za popust na e-mail unutar 1-2 dana nakon prijenosa.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster