VxLAN tvornica. 1. dio

Pozdrav, habr. Trenutno sam voditelj tečaja za mrežni inženjer na OTUS-u.
U iščekivanju početka novih upisa na tečaj "Mrežni inženjer", pripremio sam seriju članaka o VxLAN EVPN tehnologiji.

Postoji ogromna količina materijala o tome kako VxLAN EVPN radi, pa želim prikupiti razne zadatke i prakse za rješavanje problema u modernom podatkovnom centru.

VxLAN tvornica. 1. dio

U prvom dijelu serije o VxLAN EVPN tehnologiji, želim pogledati način organiziranja L2 povezivanja između hostova na vrhu mrežne strukture.

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

  1. Podložna mreža
  2. BGP peering za obitelj adresa l2vpn evpn
  3. Postavljanje NVE-a
  4. Potisnuti-arp

Podložna mreža

Topologija koja se koristi je sljedeća:

VxLAN tvornica. 1. dio

Postavimo adresiranje na sve uređaje:

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 postoji li IP povezivost 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

Provjerimo da je VPC domena kreirana i da su oba preklopnika prošla provjeru dosljednosti i da su postavke na oba čvora identične:

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žete prijeći na postavljanje Overlay mreže.

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

VxLAN tvornica. 1. dio

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

feature bgp
nv overlay evpn

Zatim trebate konfigurirati BGP peering između lista i kralježnice. Kako bismo pojednostavili postavljanje i optimizirali distribuciju informacija o usmjeravanju, konfiguriramo Spine kao Route-Reflector poslužitelj. Napisat ćemo sav Leaf u konfiguraciji pomoću predložaka za optimizaciju postavki.

Dakle, 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

Postavljanje 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, provjerimo peering sa svim Leaf prekidačima:

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 s BGP-om. Prijeđimo na postavljanje VxLAN-a. Daljnja konfiguracija izvršit će se samo na strani prekidača Leaf. Spine djeluje samo kao jezgra mreže i uključen je samo u prijenos prometa. Sav posao enkapsulacije i određivanja staze odvija se samo na Leaf prekidačima.

Postavljanje NVE-a

NVE - mrežno virtualno sučelje

Prije početka postavljanja, predstavimo terminologiju:

VTEP - Vitual Tunnel End Point, uređaj na kojem VxLAN tunel počinje ili završava. VTEP nije nužno mrežni uređaj. Poslužitelj koji podržava VxLAN tehnologiju također može djelovati kao poslužitelj. U našoj topologiji, sve Leaf sklopke su VTEP.

VNI - Virtual Network Index - identifikator mreže unutar VxLAN-a. Može se povući analogija s VLAN-om. Međutim, postoje neke razlike. Kada koristite tkaninu, VLAN-ovi postaju jedinstveni samo unutar jednog Leaf preklopnika i ne prenose se preko mreže. Ali svaki VLAN može imati povezan VNI broj, koji se već prenosi preko mreže. O tome kako izgleda i kako se može koristiti, raspravljat ćemo dalje.

Omogućimo rad značajke VxLAN tehnologije i mogućnosti povezivanja VLAN brojeva s VNI brojem:

feature nv overlay
feature vn-segment-vlan-based

Konfigurirajmo NVE sučelje, koje je odgovorno za rad VxLAN-a. Ovo sučelje je odgovorno za kapsuliranje okvira u VxLAN zaglavlja. Možete povući analogiju sa sučeljem Tunnel za GRE:

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

Na prekidaču Leaf-21 sve se stvara bez problema. Međutim, ako provjerimo izlaz naredbe show nve peers, onda će biti prazan. Ovdje se morate vratiti na postavljanje VPC-a. Vidimo da Leaf-11 i Leaf-12 rade u parovima i ujedinjeni su VPC domenom. To nam daje sljedeću situaciju:

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

Da bismo riješili ovu situaciju, potrebno nam je da Leaf-11 i Leaf-12 također djeluju kao jedan uređaj unutar tvornice. Rješenje je prilično jednostavno. Na Loopback sučelju 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 stajališta drugih VTEP-ova, dobivamo sljedeću topologiju:

VxLAN tvornica. 1. dio

Odnosno, sada će tunel biti izgrađen između IP adrese Leaf-21 i virtualne IP adrese između dva Leaf-11 i Leaf-12. Sada neće biti problema s učenjem MAC adrese s dva uređaja i promet se može kretati s jednog VTEP-a na drugi. Koji će od dva VTEP-a obraditi promet odlučuje se pomoću tablice usmjeravanja 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

Kao što možete vidjeti gore, adresa 10.255.1.10 dostupna je odmah putem dva Next-hopa.

U ovoj fazi bavili smo se osnovnim povezivanjem. Prijeđimo na postavljanje NVE sučelja:
Odmah omogućimo Vlan 10 i povežimo ga s VNI 10000 na svakom listu za hostove. Postavimo 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 peer-ove 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                 ! Видим что 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

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

Kako biste vidjeli naše hostove, trebate konfigurirati EVPN route-type 2:

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

Pingajmo od Host-2 do 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

I ispod možemo vidjeti da se route-type 2 s MAC adresom hosta pojavio u BGP tablici - 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 sav 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 tvornicu:

VxLAN tvornica. 1. dio

Potisnuti-ARP

Super, sada imamo L2 komunikaciju između domaćina i tu bismo mogli završiti. Međutim, nije sve tako jednostavno. Dok imamo malo domaćina neće biti problema. Ali zamislimo situaciju u kojoj imamo stotine i tisuće hostova. S kojim problemom bismo se mogli suočiti?

Ovaj problem je BUM (Broadcast, Unknown Unicast, Multicast) promet. U ovom ćemo članku razmotriti mogućnost rješavanja emitiranog prometa.
Glavni Broadcast generator u Ethernet mrežama su sami hostovi preko ARP protokola.

Nexus implementira sljedeći mehanizam za borbu protiv ARP zahtjeva - suppress-arp.
Ova značajka radi na sljedeći način:

  1. Host-1 šalje APR zahtjev na Broadcast adresu svoje mreže.
  2. Zahtjev dolazi do sklopke Leaf i umjesto da ovaj zahtjev proslijedi dalje u mrežu prema Host-2, Leaf sam odgovara i ukazuje na potrebni IP i MAC.

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

Sve je vrlo jednostavno, EVPN route-type 2 osim MAC adrese može prenijeti i MAC/IP kombinaciju. Da biste to učinili, trebate konfigurirati IP adresu u VLAN-u na Leafu. Postavlja se pitanje koji IP da postavim? Na nexusu je moguće kreirati distribuiranu (istu) adresu na svim preklopnicima:

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 gledišta domaćina, mreža će izgledati ovako:

VxLAN tvornica. 1. dio

Provjerimo 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žete vidjeti da u EVPN route-type 2, osim MAC-a, sada vidimo i IP adresu glavnog računala.

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

interface nve1
  member vni 10000   
    suppress-arp

Tada nastaje određena složenost:

  • Za rad ove značajke potreban je prostor u TCAM memoriji. Evo primjera postavki za suppress-arp:

hardware access-list tcam region arp-ether 256

Ova postavka će zahtijevati dvostruku širinu. Odnosno, ako postavite 256, tada trebate osloboditi 512 u TCAM-u. Postavljanje TCAM-a je izvan opsega 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 suppress-arp-a mora se izvršiti na svim prekidačima lista. Međutim, može doći do složenosti prilikom konfiguracije na parovima listova koji se nalaze u VPC domeni. Ako se TCAM promijeni, dosljednost između parova bit će prekinuta i jedan čvor može biti isključen iz rada. Osim toga, može biti potrebno ponovno pokretanje uređaja za primjenu postavke promjene TCAM-a.

Kao rezultat toga, trebate pažljivo razmotriti isplati li se, u vašoj situaciji, implementirati ovu postavku u tvornicu koja radi.

Ovim završava prvi dio serijala. U sljedećem ćemo dijelu pogledati usmjeravanje kroz VxLAN tkaninu s odvajanjem mreža u različite VRF-ove.

A sada pozivam sve na besplatni webinar, u okviru kojeg ću vam detaljno reći o tečaju. Prvih 20 sudionika koji se registriraju za ovaj webinar primit će potvrdu o popustu putem e-pošte unutar 1-2 dana nakon emitiranja.

Izvor: www.habr.com

Dodajte komentar