VxLAN tehas. Osa 1

Tere, habr. Olen praegu OTUSes kursuse "Võrgutehnik" juht.
Uue kursuse alguse eelõhtul "Võrgutehnik", olen valmistanud ette artiklite seeria VxLAN EVPN tehnoloogia kohta.

VxLAN EVPNi töötamise kohta on tohutult palju materjale, seega tahan koguda erinevaid ülesandeid ja praktika lahendusi kaasaegses andmekeskuses.

VxLAN tehas. Osa 1

VxLAN EVPNi tehnoloogia esimeses osas tahan vaadata, kuidas korraldada L2 ühenduvust hostide vahel võrgufabriku kohal.

Kõiki näiteid teeme Cisco Nexus 9000v seadmetel, mis on kokku pandud Spine-Leaf topoloogiasse. Artiklis ei peatume aluste võrgu seadistamisel.

  1. Alusvõrk
  2. BGP peerimine address-family l2vpn evpn jaoks
  3. NVE seadistamine
  4. Supress-arp

Alusvõrk

Kasutatav topoloogia näeb välja järgnev:

VxLAN tehas. Osa 1

Seame aadressid kõigile seadmetele:

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

Kontrollime, kas kõikide seadmete vahel on IP-ühenduvus:

Leaf21# sh ip route

10.255.1.11/32, ubest/mbest: 2/0                      ! Leaf-11 on saadaval kahe Spine'i kaudu
    *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 on saadaval kahe Spine'i kaudu
    *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

Kontrollime, et VPC domeen on loodud ja mõlema lülituse seadistused on mõlemas sõlmes võrdsed:

Leaf11# näita vpc 

vPC domeeni ID                      : 1
Peer staatust                       : peer naabrus loodud ok
vPC keep-alive staatust             : peer on elus
Konfiguratsiooni ühtsuse staatus   : edu
Per-vlan ühtsuse staatus           : edu
Tüüp-2 ühtsuse staatus              : edu
vPC roll                            : põhiosa
Konfigureeritud vPC-de arv         : 0
Peer Gateway                        : keelatud
Kaks aktiivset VLAN-i välistatud     : -
Jõhkruse ühtsuse kontroll          : lubatud
Automaatne taastumise staatus       : keelatud
Viivituse taastumise staatus         : Taimer on välja. (aegumine = 30s)
Viivituse taastumise SVI staatus     : Taimer on välja. (aegumine = 10s)
Töötav Layer3 Peer-router          : keelatud

vPC staatus
----------------------------------------------------------------------------
Id    Port          Staatus Ühtsus Põhjus                   Aktiivsed VLAN-id
--    ------------  ------ ----------- ------                   ---------------
5     Po5           üles   edu        edu                      1

BGP peerimine

Lõpuks saab minna Overlay võrgu seadistamise juurde.

Käesolevas artiklis tuleb korraldada võrk hostide vahel, nagu on näidatud allolevas skeemis:

VxLAN tehas. Osa 1

Overlay võrgu seadistamiseks tuleb Spine'i ja Leaf'i lülitites lubada BGP l2vpn evpn perede toetusega:

feature bgp
nv overlay evpn

Seejärel tuleb seadistada BGP peerimine Leaf'i ja Spine'i vahel. Seadistamise lihtsustamiseks ja marsruudi teabe levitamise optimeerimiseks seadistame Spine'i Route-Reflector serverina. Kõik Leaf'id lisame konfiguratsiooni läbi šabloonide, et optimeerida seadistamist.

Nii näevad Spine'i seadistused välja:

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

Leaf-i lüliti seadistus näeb välja sarnane:

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

Kontrollime Spine'is kõikide Leaf lülitite vahel olekut:

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

Nagu näeme, ei tekkinud BGP-ga mingeid probleeme. Liigume edasi VxLAN seadistamise juurde. Edasine seadistamine toimub ainult Leaf lülitite küljel. Spine toimib ainult võrgu tuumana ja tegeleb ainult liikluse edastamisega. Kõik kapseldamise ja marsruudi määramise tööd toimuvad ainult Leaf lülitites.

NVE seadistamine

NVE — võrgu virtuaalne liides.

Enne seadistamise alustamist tutvume mõne terminoloogiaga:

VTEP — Virtuaalne Tunnelite Lõpp-punkt, seade, kust algab või lõpeb VxLAN tunnel. VTEP ei pea tingimata olema mingisugune võrguseade. Samuti võib selleks olla ka server, mis toetab VxLAN tehnoloogiat. Meie topoloogias on kõik Leaf lülitid VTEP-d.

VNI — Virtuaalne Võrgumärkeruut — võrguharu identifikaator VxLAN raames. Seda saab võrrelda VLAN-iga. Kuid on ka teatud erinevused. Kasutades tehast, saavad VLAN-id unikaalseks ainult ühes Leaf lülitises ja ei edastata võrgus. Kuid igale VLAN-ile võib olla määratud VNI number, mis edastatakse võrgus. Kuidas see välja näeb ja kuidas seda kasutada, käsitletakse edasi.

Lükkame sisse VxLAN tehnoloogia funktsiooni ja võimaluse seostada VLAN numbrid VNI numbriga:

feature nv overlay
feature vn-segment-vlan-based

Konfigureerime NVE liidese, mis vastutab VxLAN töö eest. See liides vastutabki kaadrite kapseldamise eest VxLAN peadele. Seda võib võrrelda Tunnel liidesega GRE tööks:

interface nve1
  no shutdown
  host-reachability protocol bgp ! kasutame BGP-d marsruutide teabe edastamiseks
  source-interface loopback0    ! liides, millest saadame pakette loopback0

Leaf-21 lülitil ei teki probleeme seadistamisega. Kui aga vaatame käsku show nve peers, siis see on tühi. Siin tuleb naasta VPC seadistusse. Näeme, et Leaf-11 ja Leaf-12 töötavad koos ja on ühendatud VPC domeeniga. Seega on olukord järgmine:

Host-2 saadab ühe paketi Leaf-21 suunas, et see edastaks selle võrku Host-1 suunas. Kuid Leaf-21 näeb, et MAC-aadress Host-1 on kergesti ligipääsetav kahe VTEP kaudu. Kuidas peaks Leaf-21 sellises olukorras käituma? See tähendab, et võrgus võib tekkida silmus.

Selle olukorra lahendamiseks peame tagama, et Leaf-11 ja Leaf-12 toimiksid tehases ühe seadmena. See lahendatakse üsna lihtsalt. Loopback liidesel, millelt tunnelit loome, lisame sekundaarse aadressi. Sekundaarne aadress peab olema mõlemal VTEP-l sama.

interface loopback0
 ip add 10.255.1.10/32 secondary

Nii saame teiste VTEP-de vaatenurgast järgmise topoloogia:

VxLAN tehas. Osa 1

Seega hakatakse tunnelit ehitama Leaf-21 IP-aadressi ja kahe Leaf-11 ja Leaf-12 vahelise virtuaalse IP vahel. Nüüd ei esine probleeme MAC-aadressi õppimisega kahe seadme vahel ning liiklus saab suunduda ühelt VTEP-ilt teisele. Milline kahest VTEP-ist liiklust käsitleb, otsustatakse Spine'i marsruutimistabeli abil:

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

Nagu ülal näha, on aadress 10.255.1.10 kergesti ligipääsetav läbi kahe Next-hop-i.

Selles etapis oleme saanud aru baasühenduvusest. Liigume edasi NVE liidese seadistamise juurde:
Kohe aktiveerime VLAN 10 ja seome selle VNI 10000-ga igas Leafis, mis on seotud hostidega. Seadistame L2 tunneli hostide vahel.

vlan 10                 ! Lülitame VLAN-i sisse kõigil VTEP-del, mis on vajalikud hostide jaoks
  vn-segment 10000      ! Seome VLAN-i VNI numbriga

interface nve1
  member vni 10000      ! Lisame VNI 10000, et töötada läbi NVE liidese ja kapseldada VxLAN-i
    ingress-replication protocol bgp    ! Näitame, et hosti teabe levitamiseks kasutame BGP

Nüüd kontrollime nve peers ja tabelit BGP EVPN jaoks:

Leaf21# sh nve peers
Interface Peer-IP          State LearnType Uptime   Router-Mac
--------- ---------------  ----- --------- -------- -----------------
nve1      10.255.1.10      Up    CP        00:00:41 n/a                 ! Näeme, et peer on kergesti kätte saadav sekundaarse aadressi kaudu

Leaf11# sh bgp l2vpn evpn

   Network            Next Hop            Metric     LocPrf     Weight Path
Route Distinguisher: 10.255.1.11:32777    (L2VNI 10000)        ! Kust see l2VNI täpselt tuli
*>l[3]:[0]:[32]:[10.255.1.10]/88                                   ! EVPN marsruut-tüüp 3 - näitab meie naabrit, kes teab samuti l2VNI10000-st
                      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

Ülal näeme ainult EVPN marsruute, mille tüüp on 3. See marsruudi tüüp räägib peerist (Leaf), aga kus on meie hostid?
Põhjus on selles, et MAC aadressi info edastatakse EVPN marsruudi tüübiga 2

Kuna meie hostide nägemiseks peab olema seadistatud EVPN marsruudi tüüp 2:

evpn
  vni 10000 l2
    route-target import auto   ! Käesolevas artiklis kasutame automaatset numbrit route-target jaoks
    route-target export auto

Teeme ping'i Host-2-st Host-1-ile:

Firewall2# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1): 56 andmeebaidi
36 baiti 192.168.10.2-st: sihtkoht ei ole kätte saadav
Päring 0 aegus
64 baiti 192.168.10.1-st: icmp_seq=1 ttl=254 aeg=215.555 ms
64 baiti 192.168.10.1-st: icmp_seq=2 ttl=254 aeg=38.756 ms
64 baiti 192.168.10.1-st: icmp_seq=3 ttl=254 aeg=42.484 ms
64 baiti 192.168.10.1-st: icmp_seq=4 ttl=254 aeg=40.983 ms

Ja allpool saame näha, et BGP tabelis on ilmunud route-type 2 koos hostide MAC-aadressidega — 5001.0007.0007 ja 5001.0008.0007

Leaf11# sh bgp l2vpn evpn


   Võrk            Järgmine Hüppe            Meetri     LocPrf     Kaal Tee
Reisi eristaja: 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 ja hosti mac-aadress 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 ja hosti mac-aadress 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
Reisi eristaja: 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

Edasi liikudes saab vaadata üksikasjalikku teavet värskenduse kohta, milles saime teavet MAC hosti kohta. Allpool ei ole esitatud kogu käsu väljundit.

Leaf21# sh bgp l2vpn evpn 5001.0007.0007

BGP marsruutimise tabeli info VRF default, aadressi perekonda L2VPN EVPN
Marsruudi eristaja: 10.255.1.11:32777        ! saatis värskenduse MAC Hostiga. Mitte VPC virtuaalne aadress, vaid Leafi aadress
BGP marsruutimise tabeli kanne [2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]/216,
 versioon 1507
Teed: (2 saadaval, parim #2)
Lipud: (0x000202) (high32 00000000) xmit-listis, ei ole l2rib/evpn-is, ei ole HW-s

  Tee tüüp: sisemine, tee on kehtiv, mitte parim põhjus: Naabri aadress, puudub silte saanud järgmine hüppamine
  AS-Path: PUUDUB, tee on seespool AS-i
    10.255.1.10 (mõõdik 81) aadressilt 10.255.1.102 (10.255.1.102)    ! kellega täpselt ehitame VxLAN tunneli
      Origin IGP, MED pole seadistatud, kohalik eelis 100, kaal 0
      Vastuvõetud silt 10000         ! VNI number, mis on seotud VLANiga, kus Host asub
      Extcommunity: RT:65001:10000 SOO:10.255.1.10:0 ENCAP:8        ! Siit on näha, et RT on automaatselt loodud AS-ide ja VNI numbrite põhjal
      Originator: 10.255.1.11 Klasteriluettelo: 10.255.1.102

Vaadakem, kuidas kaadrid välja näevad, kui need edastatakse läbi tehase:

VxLAN tehas. Osa 1

Suppress-ARP

Suurepärane, L2 ühendus hostide vahel on meil olemas ja sellega võiksime lõpetada. Kuid asi pole nii lihtne. Seni, kuni meil on vähe hoste, probleeme ei teki. Kuid kujutage ette olukordi, kus hoste on sadu ja tuhandeid. Millise probleemiga võime silmitsi seista?

See probleem on BUM (Broadcast, Unknown Unicast, Multicast) liiklus. Selles artiklis vaatleme, kuidas võidelda broadcast liiklusega.
Etherneti võrkudes on peamine Broadcast generaator ise hostid, kasutades ARP protokolli.

Nexusel on rakendatud järgmine mehhanism ARP päringute vastu — suppress-arp.
Selle funktsiooni töö näeb välja järgmine:

  1. Host-1 saadab APR päringu oma võrgu Broadcast aadressile.
  2. Päring jõuab Leaf lülitisse ja selle asemel, et edastada päring edasiseks töödlemiseks tehasesse suunas Host-2 — Leaf vastab ise ja määrab vajaliku IP ja MAC aadressi.

Seega ei läinud Broadcast päring tehasesse. Aga kuidas see võib toimida, kui Leaf teab ainult MAC aadressi?

Kõik on üsna lihtne, EVPN route-type 2 saab edastada lisaks MAC aadressile ka MAC/IP paari. Selleks peab Leafil olema VLAN-is konfigureeritud IP aadress. Tekib küsimus, millise IP-d määrata? Nexusel on võimalus luua jaotatud (ühesugune) aadress kõigil lülititel:

funktsioon interface-vlan

fabric forwarding anycast-gateway-mac 0001.0001.0001    ! määrame virtuaalse maci, et luua jaotatud lüüsi kõikide lülitite vahel

interface Vlan10
  no shutdown
  ip address 192.168.10.254/24          ! määrame kõigil Leaf'e sama IP
  fabric forwarding mode anycast-gateway    ! ütleme, et kasutada Virtuaalset maci

Seega näeb võrgu vaatepunktist hostide jaoks võrk välja järgmine:

VxLAN tehas. Osa 1

Kontrollime 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

Käsku käivitades on selgelt näha, et EVPN route-type 2 näitab lisaks MAC-ile nüüd ka hosti IP-aadressi.

Naasume suppress-arp seadistuse juurde. See seade aktiveeritakse iga VNI puhul eraldi:

interface nve1
  member vni 10000   
    suppress-arp

Edasi tuleb teatud keerukus:

  • Selle funktsiooni tööks on vajalik ruum TCAM mälus. Toon näite suppress-arp seadistusest:

hardware access-list tcam region arp-ether 256

Selle seadistuse jaoks on vajalik double-wide. See tähendab, et kui määrate 256, tuleb TCAM-is vabastada 512. TCAM-i seadistamine ületab selle artikli piire, kuna TCAM-i seadistus sõltub ainult teile seatud ülesandest ja võib varieeruda ühe võrgu ja teise vahel.

  • Suppress-arp rakendamine on vajalik kõigil Leaf lülititel. Siiski võib ilmnenud raskusi seoses seadistamisega VPC domeenis asuvate Leaf paaride vahel. TCAM-i muutmisel rikutakse paaride vahel konsistentsi ja üks sõlme võib väljuda tööst. Lisaks võib seadistuse muutmiseks TCAM-is vajada seadme taaskäivitamist.

Seetõttu tuleb hoolikalt mõelda, kas teie olukorras on mõistlik rakendada seda seadistust töötavas tehases.

Lõpetame selle tsükli esimese osa. Järgmisel korral vaatame VxLAN tehase kaudu suunamist, jagades võrgud erinevatesse VRF-idesse.

Ja nüüd kutsun kõiki tasuta veebinarile, mille raames räägin ma kursusest põhjalikumalt. Esimesed 20 osalejat, kes registreeruvad sellele veebinarile, saavad 1–2 päeva jooksul pärast edastamist e-posti teel soodustuse sertifikaadi.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster