VxLAN tehase. Osa 1

Tere, Habr. Praegu olen ma OTUSis kursuse "VÔrgutehnik" juhataja.
Uue kursuse alguse eelÔhtul "VÔrgutehnik", olen valmistanud ette artiklite seeria VxLAN EVPN tehnoloogiast.

VxLAN EVPN töö osas on olemas tohutult materjale ning tahan kokku koguda erinevaid ĂŒlesandeid ja praktikaid nende lahendamiseks kaasaegses andmekeskuses.

VxLAN tehase. Osa 1

Seeria esimeses osas VxLAN EVPN tehnoloogia kohta tahan kaaluda L2 ĂŒhenduse korraldamise viisi hostide vahel vĂ”rgu tehase kohal.

KĂ”ik nĂ€ited teeme Cisco Nexus 9000v seadmetel, mis on ĂŒles ehitatud Spine-Leaf topoloogias. Me ei pea peatuma Underlay vĂ”rgu seadistamisele selle artikli raames.

  1. Underlay vÔrk
  2. BGP peering address-family l2vpn evpn jaoks
  3. NVE seadistus
  4. Supress-arp

Underlay vÔrk

Kasutatav topoloogia on jÀrgmine:

VxLAN tehase. Osa 1

Seame aadressid kÔikidele 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, et kĂ”igi seadmete vahel on IP ĂŒhendus:

Leaf21# sh ip route

10.255.1.11/32, ubest/mbest: 2/0                      ! Leaf-11 on kergelt kergesti kÀttesaadav 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 kergelt kergesti kÀttesaadav 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Ă”lemad lĂŒlitid on lĂ€binud jĂ€rjepidevuse kontrolli ning seadistused mĂ”lemal node'il on identsed:

Leaf11# show vpc 

vPC domeeni ID                     : 1
Peer staatus                       : peer adjacency formed ok
vPC keep-alive staatus             : peer is alive
Seadistuse jÀrjepidevuse staatus  : success
Per-vlan jÀrjepidevuse staatus       : success
Type-2 jÀrjepidevuse staatus         : success
vPC roll                          : primary
Konfigureeritud vPC-de arv         : 0
Peer Gateway                      : Disabled
Dual-active excluded VLANs        : -
Graceful Consistency Check        : Enabled
Auto-recovery staatus              : Disabled
Delay-restore staatus              : Timer is off.(timeout = 30s)
Delay-restore SVI staatus          : Timer is off.(timeout = 10s)
Operational Layer3 Peer-router    : Disabled

vPC staatus
----------------------------------------------------------------------------
Id    Port          Staatus JÀrjepidevuse PÔhjus                Aktiivsed vlans
--    ------------  ------ ----------- ------                ---------------
5     Po5           up     success     success               1

BGP peering

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

Artiklis tuleb korraldada vÔrk hostide vahel, nagu on nÀidatud alloleval skeemil:

VxLAN tehase. Osa 1

Overlay-vĂ”rgu seadistamiseks tuleb Spine'i ja Leafi lĂŒlitites aktiveerida BGP koos l2vpn evpn pereliigi toega:

feature bgp
nv overlay evpn

SeejÀrel tuleb seadistada BGP peerimine Leafi ja Spine'i vahel. Seadistuse lihtsustamiseks ja marsruutimise teabe leviku optimeerimiseks seadistame Spine'i Route-Reflector serverina. KÔik Leafid mÀÀrame konfiguratsioonis mallide kaudu, et optimeerida seadistust.

Seega nÀeb Spine'i seadistus vÀlja selline:

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

Leafi 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

Spines kontrollime peerimist kĂ”igi Leafi lĂŒlititega:

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

Kuidas nĂ€eme, BGP-ga ei esinenud mingeid probleeme. JĂ€tkame VxLAN seadistamisega. Edasi liikuv seadistus toimub ainult Leafi lĂŒlitites. Spine toimib ainult vĂ”rgu sĂŒdames ja tegeleb ainult liikluse edastamisega. KĂ”ik kapseldamise ja marsruudi mÀÀramise töö toimub ainult Leafi lĂŒlitites.

NVE seadistus

NVE — vĂ”rgu virtuaalne liides

Seadistamise alguses tutvume mÔningate terminitega:

VTEP — Virtuaalne Tunnelite LĂ”pp Punkt, seade, kus VxLAN tunnel algab vĂ”i lĂ”peb. VTEP ei pea olema tingimata mĂ”ni vĂ”rgu seade. VĂ”ib olla ka server, mis toetab VxLAN tehnoloogiat. Meie topoloogias on kĂ”ik Leafi lĂŒlitid VTEP.

VNI — Virtuaalne VĂ”rgu Indeks — vĂ”rgus oleva identifikaator VxLAN-s. Seda vĂ”ib vĂ”rrelda VLAN-iga. Kuid on mĂ”ned erinevused. Fabriku kasutamisel on VLAN-id unikaalsed ainult ĂŒhe Leafi lĂŒliti raames ega edastata vĂ”rgus. Iga VLAN-iga vĂ”ib olla seotud VNI number, mis edastatakse juba vĂ”rgus. Kuidas see vĂ€lja nĂ€eb ja kuidas seda kasutada, arutatakse hiljem.

LĂŒlitame sisse funktsiooni VxLAN tehnoloogia töö jaoks ja vĂ”imaluse assotsieerida VLAN numbrid VNI numbriga:

funktsioon nv overlay
funktsioon vn-segment-vlan-based

Seame ĂŒles NVE liidese, mis vastutab VxLAN töö eest. See liides vastutab just kaadrite kapseldamise eest VxLAN pealdistes. VĂ”ib teha analoogia GRE tunneliliideste tööga:

liides nve1
  ei suleta
  host-ĂŒlatusprotokoll bgp ! kasutame BGP-d marsruutide teabe edastamiseks
  source-interface loopback0    ! liides, mille kaudu saadame pakette loopback0

Leaf-21 lĂŒlitil luuakse kĂ”ik ilma probleemideta. Kui me kontrollime kĂ€sku show nve peers, siis see osutub tĂŒhjaks. Siin on vajalik naasta VPC seadistuse juurde. NĂ€eme, et Leaf-11 ja Leaf-12 töötavad paaris ja on ĂŒhendatud VPC domeeniga. Sellest tuleneb jĂ€rgmine olukord:

Host-2 saadab ĂŒhe kaadri Leaf-21 suunas, et see edastaks selle vĂ”rku Host-1 suunas. Kuid Leaf-21 nĂ€eb, et MAC-aadress Host-1 on kergesti kĂ€tte saadav kahe VTEP kaudu. Kuidas peaks Leaf-21 sellisel juhul toimima? See tĂ€hendab, et vĂ”rgus vĂ”ib olla ilmnenud silmus.

Selle olukorra lahendamiseks on meil vaja, et Leaf-11 ja Leaf-12 tegutseksid tehase raames ĂŒhtse seadmena. See lahendatakse ĂŒsna lihtsalt. Loopback liidese kaudu, millest me tunnelit ehitame, lisame sekundaarse aadressi. Sekundaarne aadress peab olema mĂ”lemal VTEP-il sama.

liides loopback0
 ip add 10.255.1.10/32 sekundaarne

Nii saame teiste VTEP-de vaatepunktist jÀrgmise topoloogia:

VxLAN tehase. Osa 1

Seega ehitatakse nĂŒĂŒd tunnel IP-aadressi Leaf-21 ja virtuaalse IP vahel kahe Leaf-11 ja Leaf-12 vahel. NĂŒĂŒd ei teki probleeme kahe seadme MAC-aadressi tuvastamisega ning liiklus vĂ”ib liikuda ĂŒhelt VTEP-ilt teisele. Kes tĂ€pselt kahest VTEP-ist liiklust kĂ€sitleb, otsustatakse Spine'i marsruuditabeli 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

Kuidas eespool nÀhtud, on aadress 10.255.1.10 kohe saadaval kahe Next-hop kaudu.

Sellel etapil oleme selgitanud pÔhikontakti. Liigume edasi NVE liidese seadistamise juurde:
LĂŒlitame kohe sisse VLAN 10 ja assotsieerime selle VNI 10000 igas Leafis hostide jaoks. Seame ĂŒles L2 tunnelite vahel hostide vahel.

vlan 10                 ! LĂŒlitame VLAN-i sisse kĂ”igil VTEP-del, mis on ĂŒhendatud vajalike hostidega
  vn-segment 10000      ! Seome VLAN-i numbriga VNI 

interface nve1
  member vni 10000      ! Lisame VNI 10000, et töötada NVE liidese kaudu VxLAN-i kapseldamiseks
    ingress-replication protocol bgp    ! Osutame, et hosti teabe edastamiseks kasutame BGP-d

NĂŒĂŒd kontrollime nve peers ja BGP EVPN'i tabelit:

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 saadaval sekundaarse aadressi kaudu

Leaf11# sh bgp l2vpn evpn

   Network            Next Hop            Metric     LocPrf     Weight Path
Route Distinguisher: 10.255.1.11:32777    (L2VNI 10000)        ! Kes tÀpselt saatis selle l2VNI
*>l[3]:[0]:[32]:[10.255.1.10]\/88                                   ! EVPN marsruut-tĂŒĂŒp 3 - nĂ€itab meie naabrit, kes teab ka 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 marsruut-tĂŒĂŒbi 3. See marsruut-tĂŒĂŒp rÀÀgib peer-ist (Leaf), kuid kus on meie hostid?
Asi on selles, et MAC aadresside teave edastatakse lĂ€bi EVPN marsruut-tĂŒĂŒbi 2.

Kuna tahame nĂ€ha meie hoste, peame seadistama EVPN marsruut-tĂŒĂŒbi 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-le:

Firewall2# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1): 56 andmebytes
36 bytes from 192.168.10.2: Sihtkoht Host Ühendamatuks
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

Ja allpool nĂ€eme, et BGP tabelis on ilmunud marsruut-tĂŒĂŒp 2 koos hostide MAC aadressidega — 5001.0007.0007 ja 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 and mac address of host 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 and mac address of host 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

See below for detailed information on the Update that provided information about the MAC Host. The output of the command is not fully represented below.

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        !  sent an Update with MAC Host. Not a virtual address of VPC, but the address of 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 in HW

  Path type: internal, path is valid, not best reason: Neighbor Address, no labeled nexthop
  AS-Path: NONE, path sourced internal to AS
    10.255.1.10 (metric 81) from 10.255.1.102 (10.255.1.102)    ! with whom exactly we are building the VxLAN tunnel
      Origin IGP, MED not set, localpref 100, weight 0
      Received label 10000         ! The VNI number associated with the VLAN in which the Host is located
      Extcommunity: RT:65001:10000 SOO:10.255.1.10:0 ENCAP:8        ! Here we can see that the RT was generated automatically based on AS and VNI numbers
      Originator: 10.255.1.11 Cluster list: 10.255.1.102

Let's take a look at how the frames look when they are transmitted through the fabric:

VxLAN tehase. Osa 1

Suppress-ARP

Great, we have established L2 connectivity between hosts and this could have been the end of it. However, it’s not that simple. While we have few hosts, there won't be any issues. But let's imagine a situation where we have hundreds or thousands of hosts. What problems can we face?

This problem is BUM (Broadcast, Unknown Unicast, Multicast) traffic. In this article, we will discuss the approach to combating broadcast traffic.
The main generator of Broadcast in Ethernet networks are the hosts themselves via the ARP protocol.

Nexus implements the following mechanism to combat ARP requests — suppress-arp.
The functioning of this feature looks as follows:

  1. Host-1 sends an ARP request to the Broadcast address of its network.
  2. The request reaches the Leaf switch and instead of passing this request further into the fabric towards Host-2, the Leaf responds itself, providing the required IP and MAC.

Seega Broadcast-pÀring ei lÀinud tehasesse. Kuid kuidas see saab toimida, kui Leaf teab vaid MAC-aadressi?

KĂ”ik on ĂŒsna lihtne, EVPN route-type 2 vĂ”ib MAC-aadressi kĂ”rval edastada ka MAC/IP paari. Selleks on Leafil vajalik VLAN-is IP-aadress seadistada. Tekib kĂŒsimus, millise IP peame seadistama? Nexusel on vĂ”imalik luua jaotatud (ĂŒhtlane) aadress kĂ”igis lĂŒlitites:

feature interface-vlan

fabric forwarding anycast-gateway-mac 0001.0001.0001    ! seadistame virtual mac jaotatud vĂ€rava loomiseks kĂ”ikide lĂŒlitite vahel

interface Vlan10
  no shutdown
  ip address 192.168.10.254/24          ! kÔikidel Leafidel seadistame sama IP
  fabric forwarding mode anycast-gateway    ! mÀÀrame kasutama Virtual mac

Seega hostide vaatepunktist nÀeb vÔrk vÀlja jÀrgmiselt:

VxLAN tehase. Osa 1

Kontrollime BGP l2route evpn

Leaf11# sh bgp l2vpn evpn


   VĂ”rk            JĂ€rgmine hĂŒpik            Meetri     LocPrf     Kaal Rada
Teerajaja eristaja: 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



Teerajaja 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
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.10.20]/248
*>i                   10.255.1.20                       100          0 i

KĂ€sku vaadates on nĂ€ha, et EVPN route-type 2 tĂ”ttu MAC-i kĂ”rval nĂ€eme nĂŒĂŒd ka hosti IP-aadressi.

Naaseme suppress-arp seadistuse juurde. See seade aktiveeritakse iga VNI jaoks eraldi:

interface nve1
  member vni 10000   
    suppress-arp

SeejÀrel tekib teatav keerukus:

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

hardware access-list tcam region arp-ether 256

Selle seadistuse jaoks on vajalik double-wide. Seega, kui seadistate 256, tuleb TCAM-is vabastada 512. TCAM-i seadistamine ĂŒletab selle artikli piire, kuna TCAM-i seadistamine sĂ”ltub ainult esitatud ĂŒlesandest ja vĂ”ib varieeruda ĂŒhe vĂ”rgu ja teise vahel.

  • Suppress-arp rakendamine peab toimuma kĂ”igis Leaf lĂŒlitites. Siiski vĂ”ib keerukus tekkida kahe Leaf'i seadme seadistamisel, mis asuvad VPC domeenis. TCAM'i muutmise korral vĂ”ib paaride vahel tekkida ebakĂ”la ja ĂŒks node vĂ”ib töölt langeda. Lisaks vĂ”ib TCAM'i seadistuse rakendamiseks olla vajalik seadme taaskĂ€ivitamine.

SeetÔttu tuleks hoolikalt kaaluda, kas teie olukorras on mÔistlik rakendada seda seadistust töötavale tehasele.

Sellega lĂ”petame tsĂŒkli esimese osa. JĂ€rgmises osas vaatleme marsruutimist VxLAN tehase kaudu, jagades vĂ”rke erinevate VRF-ide vahel.

Ja praegu kutsun kĂ”iki osalema which is taking place today at 20:00. During the webinar, we will discuss how to build an efficient and scalable data processing system for a small company or startup with minimal costs. As a part of the practice, we will get to know Google Cloud data processing tools. See you there!, mille raames rÀÀgin ma pĂ”hjalikult kursusest. Esimesed 20 osalejat, kes registreeruvad sellele veebinarile, saavad sertifikaadi soodustuse oma e-posti aadressile 1-2 pĂ€eva pĂ€rast ĂŒlekannet.

Allikas: habr.com

Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster