VxLAN fabrika. Dio 1

Hello habr. Trenutno sam voditelj kursa za "Inženjer mreže" u OTUS-u.
U iščekivanju početka novog upisa za kurs "mrežni inženjer", pripremio sam seriju članaka o VxLAN EVPN tehnologiji.

Postoji ogromna količina materijala o radu VxLAN EVPN-a, pa želim prikupiti različite zadatke i prakse za rješavanje problema u modernom data centru.

VxLAN fabrika. Dio 1

U prvom delu ciklusa tehnologije VxLAN EVPN, želim da razmotrim način da se organizuje L2 konekcija između hostova na vrhu mrežne fabrike.

Svi primjeri će se izvoditi na Cisco Nexus 9000v, sastavljenom u Spine-Leaf topologiji. U ovom članku nećemo se zadržavati na postavljanju Underlay mreže.

  1. podložna mreža
  2. BGP peering za adresu-porodicu l2vpn evpn
  3. NVE setup
  4. Suppress-arp

podložna mreža

Topologija koja se koristi je sljedeća:

VxLAN fabrika. Dio 1

Postavimo 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

Provjerimo da li postoji IP konekcija između svih uređaja:

Leaf21# sh ip route
<........>
10.255.1.11/32, ubest/mbest: 2/0                      ! Leaf-11 доступен чеерз два 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 доступен чеерз два 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

Hajde da proverimo da li je VPC domen kreiran i da su oba prekidača prošla proveru doslednosti i da su podešavanja na oba čvora identična:

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

Konačno, možemo prijeći na konfiguriranje Overlay mreže.

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

VxLAN fabrika. Dio 1

Da biste konfigurirali Overlay mrežu, morate omogućiti BGP na prekidačima Spine i Leaf uz podršku za l2vpn evpn porodicu:

feature bgp
nv overlay evpn

Zatim morate konfigurirati BGP peering između Leaf i Spine. Da bismo pojednostavili konfiguraciju i optimizirali distribuciju informacija o rutiranju, mi konfiguriramo Spine kao Route-Reflector server. Sve Leaf ćemo upisati u konfiguraciju kroz šablone kako bismo optimizirali postavke.

Dakle, postavke na Spineu 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

Podešavanje na Leaf prekidaču 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 Spineu provjerite peering sa svim prekidačima Leaf:

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 vidite, nije bilo problema sa BGP-om. Idemo dalje na podešavanje VxLAN-a. Dalja konfiguracija će se izvršiti samo na strani prekidača Leaf. Spine djeluje samo kao jezgro mreže i uključeno je samo u prijenos saobraćaja. Sav rad na inkapsulaciji i definiciji staze odvija se samo na Leaf prekidačima.

NVE setup

NVE - mrežni virtuelni interfejs

Prije početka postavljanja, uvedemo terminologiju:

VTEP - Vitual Tunnel End Point, uređaj na kojem VxLAN tunel počinje ili se završava. VTEP nije nužno bilo koji mrežni uređaj. Server koji podržava VxLAN tehnologiju također može djelovati. U našoj topologiji, svi Leaf prekidači su VTEP.

VNI - Virtual Network Index - identifikator mreže unutar VxLAN-a. Možete napraviti analogiju sa VLAN-om. Međutim, postoje neke razlike. Kada se koristi tkanina, VLAN-ovi postaju jedinstveni samo unutar jednog Leaf prekidača i ne prenose se preko mreže. Ali svaki VLAN može biti povezan sa VNI brojem koji se već prenosi preko mreže. Kako to izgleda i kako se može koristiti bit će razmotreno u nastavku.

Omogućite funkciju za VxLAN tehnologiju da radi i mogućnost povezivanja VLAN brojeva sa VNI brojem:

feature nv overlay
feature vn-segment-vlan-based

Konfigurirajmo NVE interfejs, koji je odgovoran za rad VxLAN-a. Ovaj interfejs je odgovoran za inkapsuliranje okvira u VxLAN zaglavlja. Možete povući analogiju sa interfejsom tunela za GRE:

interface nve1
  no shutdown
  host-reachability protocol bgp ! используем BGP для передачи маршрутной информации
  source-interface loopback0    ! интерфейс  с которого отправляем пакеты loopback0

Na prekidaču Leaf-21 sve se kreira bez problema. Međutim, ako provjerimo izlaz naredbe show nve peers, tada će biti prazan. Ovdje se morate vratiti na VPC podešavanje. Vidimo da su Leaf-11 i Leaf-12 upareni i ujedinjeni VPC domenom. To rezultira sljedećom situacijom:

Host-2 šalje jedan okvir na Leaf-21 da se prenese preko mreže do Host-1. Međutim, Leaf-21 vidi da je MAC adresa Host-1 dostupna preko dva VTEP-a odjednom. Šta bi Leaf-21 trebao učiniti u ovom slučaju? Uostalom, to znači da bi se petlja mogla pojaviti u mreži.

Da bismo riješili ovu situaciju, potrebni su nam Leaf-11 i Leaf-12 da također djeluju kao jedan uređaj unutar tvornice. Rešava se prilično jednostavno. Na Loopback interfejsu iz kojeg gradimo tunel dodajte sekundarnu adresu. Sekundarna adresa mora biti ista na oba VTEP-a.

interface loopback0
 ip add 10.255.1.10/32 secondary

Dakle, sa stanovišta drugih VTEP-ova, dobijamo sljedeću topologiju:

VxLAN fabrika. Dio 1

Odnosno, sada će tunel biti izgrađen između IP adrese Leaf-21 i virtuelne IP adrese između dva Leaf-11 i Leaf-12. Sada neće biti problema sa učenjem MAC adrese sa dva uređaja, a promet se može prenijeti s jednog VTEP-a na drugi. Koji od dva VTEP-a će obraditi promet odlučuje se pomoću tablice rutiranja na Spine-u:

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 vidite gore, adresa 10.255.1.10 je odmah dostupna kroz dva Next-hop-a.

U ovoj fazi smo shvatili osnovnu povezanost. Pređimo na podešavanje NVE interfejsa:
Odmah ćemo omogućiti Vlan 10 i povezati ga sa VNI 10000 na svakom listu za hostove. Postavite L2 tunel između hostova

vlan 10                 ! Включаем VLAN на всех VTEP подключенных к необходимым хостам
  vn-segment 10000      ! Ассоциируем VLAN с номер VNI 

interface nve1
  member vni 10000      ! Добавляем VNI 10000 для работы через интерфейс NVE. для инкапсуляции в VxLAN
    ingress-replication protocol bgp    ! указываем, что для распространения информации о хосте используем BGP

Sada provjerimo nve peers i tabelu 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                 ! Видим что peer доступен с secondary адреса

Leaf11# sh bgp l2vpn evpn

   Network            Next Hop            Metric     LocPrf     Weight Path
Route Distinguisher: 10.255.1.11:32777    (L2VNI 10000)        ! От кого именно пришел этот l2VNI
*>l[3]:[0]:[32]:[10.255.1.10]/88                                   ! EVPN route-type 3 - показывает нашего соседа, который так же знает об 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

Iznad vidimo rute samo EVPN route-type 3. Ova vrsta ruta govori o peer-u (Leaf), ali gdje su naši domaćini?
A stvar je u tome što se informacije o MAC hostovima prenose putem EVPN rute tipa 2

Da biste vidjeli naše domaćine, potrebno je konfigurirati EVPN tip rute 2:

evpn
  vni 10000 l2
    route-target import auto   ! в рамках данной статьи используем автоматический номер для route-target
    route-target export auto

Hajde da pingujemo sa 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 ispod vidimo da se u BGP tabeli pojavio tip rute 2 sa MAC adresom domaćina - 5001.0007.0007 i 5001.0008.0007

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                      !  evpn route-type 2 и mac адрес хоста 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 и mac адрес хоста 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

Zatim možete vidjeti detaljne informacije o ažuriranju, u kojem ste dobili informacije o MAC hostu. Ispod nije cijeli izlaz naredbe

Leaf21# sh bgp l2vpn evpn 5001.0007.0007

BGP routing table information for VRF default, address family L2VPN EVPN
Route Distinguisher: 10.255.1.11:32777        !  отправил Update с MAC Host. Не виртуальный адрес VPC, а адрес Leaf
BGP routing table entry for [2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]/216,
 version 1507
Paths: (2 available, best #2)
Flags: (0x000202) (high32 00000000) on xmit-list, is not in l2rib/evpn, is not i
n HW

  Path type: internal, path is valid, not best reason: Neighbor Address, no labe
led nexthop
  AS-Path: NONE, path sourced internal to AS
    10.255.1.10 (metric 81) from 10.255.1.102 (10.255.1.102)    ! с кем именно строим VxLAN тоннель
      Origin IGP, MED not set, localpref 100, weight 0
      Received label 10000         ! Номер VNI, который ассоциирован с VLAN, в котором находится Host
      Extcommunity: RT:65001:10000 SOO:10.255.1.10:0 ENCAP:8        ! Тут видно, что RT сформировался автоматически на основе номеров AS и VNI
      Originator: 10.255.1.11 Cluster list: 10.255.1.102
<........>

Pogledajmo kako okviri izgledaju kada prođu kroz fabriku:

VxLAN fabrika. Dio 1

Suppress-ARP

Odlično, imamo L2 vezu između hostova i ovo bi mogao biti kraj. Međutim, nije sve tako jednostavno. Sve dok imamo malo domaćina, neće biti problema. Ali zamislimo situacije da imamo stotine i hiljade domaćina. Sa kojim problemom se možemo suočiti?

Ovaj problem je BUM(Broadcast, Unknown Unicast, Multicast) saobraćaj. U okviru ovog članka razmotrit ćemo opciju borbe protiv emitiranog prometa.
Glavni Broadcast generator u Ethernet mrežama su sami domaćini putem ARP protokola.

Nexus implementira sljedeći mehanizam za rješavanje ARP zahtjeva - suppress-arp.
Ova funkcija funkcionira ovako:

  1. Host-1 šalje APR zahtjev na Broadcast adresu svoje mreže.
  2. Zahtjev stiže do prekidača Leaf i umjesto da ovaj zahtjev proslijeđuje dalje u tvornicu prema Host-2, Leaf se sam javlja i ukazuje na željeni IP i MAC.

Dakle, zahtjev za emitiranje nije otišao u tvornicu. Ali kako ovo može funkcionirati ako Leaf zna samo MAC adresu?

Sve je prilično jednostavno, EVPN ruta tipa 2, osim MAC adrese, može prenositi MAC / IP paket. Da biste to učinili, Leaf mora biti konfigurisan sa IP adresom u VLAN-u. Postavlja se pitanje koji IP pitati? Na nexusu je moguće kreirati distribuiranu (istu) adresu na svim prekidačima:

feature interface-vlan

fabric forwarding anycast-gateway-mac 0001.0001.0001    ! задаем virtual mac для создания распределенного шлюза между всеми коммутаторами

interface Vlan10
  no shutdown
  ip address 192.168.10.254/24          ! на всех Leaf задаем одинаковый IP
  fabric forwarding mode anycast-gateway    ! говорим использовать Virtual mac

Dakle, sa stanovišta domaćina, mreža će izgledati ovako:

VxLAN fabrika. Dio 1

Provjerite 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

<......>

Iz izlaza naredbe može se vidjeti da u EVPN route-type 2, pored MAC-a, sada vidimo i IP adresu hosta.

Vratimo se na suppress-arp postavku. Ova postavka je omogućena za svaki VNI posebno:

interface nve1
  member vni 10000   
    suppress-arp

Tada dolazi do određenih poteškoća:

  • Ova funkcija zahtijeva prostor u TCAM memoriji. Navest ću primjer podešavanja za suppress-arp:

hardware access-list tcam region arp-ether 256

Ovo podešavanje će zahtijevati dvostruku širinu. Odnosno, ako postavite 256, tada se u TCAM-u mora osloboditi 512. Postavljanje TCAM-a je izvan okvira ovog članka, budući da postavljanje TCAM-a ovisi samo o zadatku koji vam je dodijeljen i može se razlikovati od mreže do mreže.

  • Implementacija supres-arp-a mora biti obavljena na svim Leaf prekidačima. Međutim, složenost može nastati kada se konfiguriše na parovima listova koji se nalaze u VPC domeni. Prilikom promjene TCAM-a, konzistentnost između parova će biti prekinuta i jedan čvor može biti isključen iz upotrebe. Osim toga, može biti potrebno ponovno pokretanje uređaja da bi se primijenila TCAM postavka promjene.

Kao rezultat toga, trebali biste pažljivo razmotriti da li je vrijedno implementirati ovu postavku na radnu tvornicu u vašoj situaciji.

Ovim se završava prvi dio ciklusa. U sljedećem dijelu ćemo razmotriti rutiranje kroz VxLAN fabriku sa mrežnim razdvajanjem preko različitih VRF-ova.

A sada pozivam sve besplatni webinar, u kojem ću detaljno govoriti o kursu. Prvih 20 učesnika koji se registruju za ovaj webinar dobiće sertifikat o popustu putem e-pošte u roku od 1-2 dana nakon emitovanja.

izvor: www.habr.com

Dodajte komentar