Hei, Habr. For tiden er jeg kursleder for "NettverksingeniĂžr" ved OTUS.
I forkant av oppstarten av det nye kurset , har jeg forberedt en artikkelserie om VxLAN EVPN-teknologi.
Det finnes et stort antall materialer om VxLAN EVPN, sÄ jeg Þnsker Ä samle ulike oppgaver og lÞsninger pÄ oppgaver i et moderne datasenter.

I den fÞrste delen av artikkelserien om VxLAN EVPN-teknologi vil jeg se pÄ hvordan man organiserer L2-kobling mellom verter pÄ tvers av nettverksfabrikken.
Alle eksempler vil bli utfÞrt pÄ Cisco Nexus 9000v, sammenkoblet i en Spine-Leaf-topologi. Vi vil ikke stoppe opp for Ä konfigurere Underlay-nettet i denne artikkelen.
- Underlay-nett
- BGP-peering for address-family l2vpn evpn
- Konfigurasjon av NVE
- Supress-arp
Underlay-nett
Den brukte topologien ser slik ut:

Vi setter adresseringen pÄ alle enhetene:
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.20Vi kontrollerer at det er IP-kobling mellom alle enheter:
Leaf21# sh ip route
10.255.1.11/32, ubest/mbest: 2/0 ! Leaf-11 tilgjengelig via to 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 tilgjengelig via to 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, intraVi kontrollerer at VPC-domenet er opprettet, og at begge svitsjene har bestÄtt konsistenskontrollen og at innstillingene pÄ begge nodene er identiske:
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 1BGP-peering
Endelig kan vi gÄ videre til konfigurasjonen av Overlay-nettet.
I denne artikkelen mÄ vi organisere et nettverk mellom vertene, som vist i diagrammet nedenfor:

For Ä konfigurere Overlay-nettverket, mÄ vi aktivere BGP med stÞtte for l2vpn evpn-familien pÄ Spine- og Leaf-switchene:
feature bgp
nv overlay evpnVidere mÄ vi sette opp BGP-peering mellom Leaf og Spine. For Ä forenkle konfigurasjonen og optimalisere distribusjonen av ruteinformasjon, setter vi opp Spine som Route-Reflector-server. Alle Leaf-enheter vil bli registrert i konfigurasjonen via maler for Ä optimalisere oppsettet.
Slik ser konfigurasjonen pÄ Spine ut:
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 LEAFKonfigurasjonen pÄ Leaf-switchen ser dermed liknende ut:
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 SPINEPĂ„ Spine vil vi sjekke peering med alle Leaf-switchene:
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 0Som vi ser, var det ingen problemer med BGP. La oss gÄ videre til konfigurasjonen av VxLAN. Videre konfigurasjon vil kun bli utfÞrt pÄ siden av Leaf-switchene. Spine fungerer kun som kjernen i nettverket og bare hÄndterer trafikkoverfÞring. All arbeid med inkapsling og ruteidentifikasjon finner sted utelukkende pÄ Leaf-switchene.
Konfigurasjon av NVE
NVE â nettverksvirtualgrensesnitt
FĂžr vi begynner konfigurasjonen, la oss innfĂžre litt terminologi:
VTEP â Virtuell Tunnel Endepunkt, en enhet der VxLAN-tunnelen begynner eller slutter. VTEP trenger ikke vĂŠre en nettverksenhet. Det kan ogsĂ„ vĂŠre en server som stĂžtter VxLAN-teknologi. I vĂ„r topologi fungerer alle Leaf-switcher som VTEP.
VNI â Virtuell Nettverksindeks â nettverksidentifikator i VxLAN. Dette kan sammenlignes med VLAN. Men det er noen forskjeller. NĂ„r man bruker fabrikk, blir VLAN unike kun innenfor en Leaf-switch og overfĂžres ikke over nettverket. Men hver VLAN kan assosieres med et VNI-nummer, som da overfĂžres over nettverket. Hvordan dette ser ut og hvordan det kan brukes, vil bli behandlet senere.
Vi vil aktivere funksjonaliteten for VxLAN-teknologi og muligheten til Ă„ assosiere VLAN-numre med VNI-nummeret:
funksjonalitet nv overlay
funksjonalitet vn-segment-vlan-basertVi skal konfigurere NVE-grensesnittet, som er ansvarlig for VxLAN-operasjonen. Dette grensesnittet hÄndterer innkapsling av rammer i VxLAN-headere. Man kan trekke en parallell til Tunnel-grensesnittet for GRE:
grensesnitt nve1
ingen nedslÄing
vert-reachability-protokoll bgp ! bruker BGP for Ă„ overfĂžre rutingsinformasjon
kilde-grensesnitt loopback0 ! grensesnittet som vi sender pakker fra loopback0PÄ Leaf-21-bryteren opprettes alt uten problemer. Men hvis vi sjekker utdataene fra kommandoen vis nve peers, vil de vÊre tomme. Her mÄ vi gÄ tilbake til VPC-konfigurasjonen. Vi ser at Leaf-11 og Leaf-12 fungerer sammen og er koblet til VPC-domenet. Dette gir oss fÞlgende situasjon:
Host-2 sender en ramme mot Leaf-21, slik at den kan overfÞre den over nettverket til Host-1. Imidlertid ser Leaf-21 at MAC-adressen til Host-1 er tilgjengelig via to VTEP-er. Hva bÞr Leaf-21 gjÞre i dette tilfellet? Dette betyr at det kan ha oppstÄtt en lÞkke i nettverket.
For Ä lÞse denne situasjonen mÄ vi sÞrge for at Leaf-11 og Leaf-12 i forbindelse med fabrikkene ogsÄ fungerer som én enhet. Dette lÞses ganske enkelt. PÄ Loopback-grensesnittet som tunnel bygges fra, legger vi til en sekundÊr adresse. SekundÊradressen mÄ vÊre identisk pÄ begge VTEP-ene.
grensesnitt loopback0
ip add 10.255.1.10/32 sekundÊrDermed fÄr vi fÞlgende topologi sett fra andre VTEP-er:

Det vil si at tunnelen nÄ bygges mellom IP-adressen Leaf-21 og den virtuelle IP-en mellom de to Leaf-11 og Leaf-12. NÄ vil det ikke oppstÄ problemer med Ä oppdage MAC-adressen fra de to enhetene, og trafikken kan gÄ fra én VTEP til en annen. Hvem av de to VTEP-ene som hÄndterer trafikken, avgjÞres ved hjelp av rutetabellen pÄ 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, intraSom vist ovenfor er adressen 10.255.1.10 tilgjengelig via to Next-hop.
PÄ dette stadiet har vi forstÄtt grunnleggende tilkobling. La oss gÄ videre til konfigurasjonen av NVE-grensesnittet:
Vi aktiverer straks VLAN 10 og assosierer det med VNI 10000 pÄ hver Leaf for vertsene. Vi konfigurerer L2-tunnelen mellom vertene.
vlan 10 ! Aktiver VLAN pÄ alle VTEP tilknyttede nÞdvendige verter
vn-segment 10000 ! Knytte VLAN til VNI nummeret
interface nve1
member vni 10000 ! Legger til VNI 10000 for Ă„ fungere gjennom NVE-grensesnittet for innkapsling i VxLAN
ingress-replication protocol bgp ! Angir at vi bruker BGP for Ä spre informasjon om vertenLa oss nÄ sjekke nve peers og tabellen for 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 ! Vi ser at peer er tilgjengelig med sekundĂŠr adresse
Leaf11# sh bgp l2vpn evpn
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 10.255.1.11:32777 (L2VNI 10000) ! Hvem denne l2VNI kom fra
*>l[3]:[0]:[32]:[10.255.1.10]\/88 ! EVPN rute-type 3 - viser vÄr nabo som ogsÄ kjenner til 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 iOvenfor ser vi bare ruter av EVPN rute-type 3. Denne typen ruter forteller om peer (Leaf), men hvor er vÄre verter?
Ă
rsaken er at informasjon om MAC-adressene til vertene sendes via EVPN rute-type 2
For Ä se vÄre verter mÄ vi konfigurere EVPN rute-type 2:
evpn
vni 10000 l2
route-target import auto ! I denne artikkelen bruker vi automatisk nummer for route-target
route-target export autoLa oss pinge fra Host-2 til 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 msOg nedenfor kan vi se at ruter-type 2 med MAC-adressen til vertene - 5001.0007.0007 og 5001.0008.0007 har dukket opp i BGP-tabellen
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 og mac-adressen til vert 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 og mac-adressen til vert 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 iVidere kan vi se detaljert informasjon om oppdateringen, der vi fikk informasjon om MAC-vert. Nedenfor er ikke hele utdataene fra kommandoen.
Leaf21# sh bgp l2vpn evpn 5001.0007.0007
BGP rutetabellinformasjon for VRF standard, adressefamilie L2VPN EVPN
Route Distinguisher: 10.255.1.11:32777 ! sendte oppdatering med MAC-vert. Ikke den virtuelle adressen til VPC, men adressen til Leaf
BGP rutetabelloppfĂžring for [2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]\/216,
versjon 1507
Stier: (2 tilgjengelige, beste #2)
Flagg: (0x000202) (high32 00000000) pÄ xmit-lista, finnes ikke i l2rib\/evpn, finnes ikke i HW
Stitype: intern, stien er gyldig, ikke beste grunn: Naboadresse, ingen merket nexthop
AS-Path: INGEN, sti kilder internt til AS
10.255.1.10 (metrisk 81) fra 10.255.1.102 (10.255.1.102) ! med hvem vi faktisk bygger VxLAN tunnelen
Opprinnelse IGP, MED ikke satt, lokalpref 100, vekt 0
Mottatt etikett 10000 ! Nummeret pÄ VNI som er assosiert med VLAN der verten befinner seg
Extcommunity: RT:65001:10000 SOO:10.255.1.10:0 ENCAP:8 ! Her kan vi se at RT ble dannet automatisk basert pÄ AS- og VNI-numre
Opprinnelse: 10.255.1.11 Klynge liste: 10.255.1.102La oss se hvordan pakkene ser ut nÄr de sendes gjennom fabrikken:

Suppress-ARP
Flott, vi har nÄ fÄtt L2-forbindelse mellom vertene, og vi kunne ha avsluttet her. Men alt er ikke sÄ enkelt. SÄ lenge vi har fÄ verter, vil det ikke oppstÄ problemer. Men la oss forestille oss en situasjon der vi har hundrevis eller tusenvis av verter. Hvilket problem kan vi stÞte pÄ?
Dette problemet er BUM (Broadcast, Unknown Unicast, Multicast) trafikk. I denne artikkelen vil vi se pÄ hvordan vi kan hÄndtere broadcast-trafikk.
Den primĂŠre generatoren av Broadcast i Ethernet-nettverk er selve vertene via ARP-protokollen.
PĂ„ Nexus er det implementert fĂžlgende mekanisme for Ă„ hĂ„ndtere ARP-forespĂžrslene â suppress-arp.
Denne funksjonen fungerer som fĂžlger:
- Vert-1 sender en ARP-forespÞrsel til broadcast-adressen pÄ sitt nettverk.
- ForespÞrselen nÄr Leaf-svitsjeren, og i stedet for Ä sende forespÞrselen videre til fabrikken mot Vert-2, svarer Leaf selv og angir Þnsket IP og MAC.
Dermed ble Broadcast-forespÞrselen ikke sendt til fabrikken. Men hvordan kan dette fungere nÄr Leaf bare kjenner til MAC-adressen?
Alt er ganske enkelt, EVPN route-type 2 kan i tillegg til MAC-adressen sende en kombinasjon av MAC/IP. For dette mÄ Leaf ha en IP-adresse konfigurert i VLAN. SpÞrsmÄlet blir, hvilken IP skal vi bruke? PÄ Nexus er det mulig Ä opprette en distribuert (identisk) adresse pÄ alle svitsjene:
feature interface-vlan
fabric forwarding anycast-gateway-mac 0001.0001.0001 ! Sett den virtuelle MAC-en for Ă„ opprette en distribuert gateway mellom alle svitsjene
interface Vlan10
no shutdown
ip address 192.168.10.254/24 ! Sett identisk IP pÄ alle Leaf
fabric forwarding mode anycast-gateway ! Vi sier at vi skal bruke Virtual MACDermed vil nettverket fra vertens synspunkt se slik ut:

La oss sjekke BGP l2route evpn
Leaf11# sh bgp l2vpn evpn
Nettverk Neste hopp Metrikk LocPrf Vekt Sti
Rute 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
Rute 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 iUt fra utskriften av kommandoen ser vi at i EVPN route-type 2, i tillegg til MAC, nÄ ogsÄ ser IP-adressen til verten.
Vi gÄr tilbake til innstillingen for suppress-arp. Denne innstillingen aktiveres for hver VNI individuelt:
interface nve1
member vni 10000
suppress-arpVidere oppstÄr det en viss kompleksitet:
- For at denne funksjonen skal fungere, er det nÞdvendig med plass i TCAM-minnet. Jeg vil gi et eksempel pÄ innstilling for suppress-arp:
hardware access-list tcam region arp-ether 256For denne innstillingen vil det kreves double-wide. Det vil si at hvis du setter 256, mÄ du frigjÞre 512 i TCAM. Innstilling av TCAM gÄr utover rammen av denne artikkelen, da TCAM-innstillingen avhenger utelukkende av oppgaven som er gitt deg og kan variere fra nettverk til nettverk.
- Implementering av suppress-arp mÄ gjÞres pÄ alle Leaf-svitsjer. Imidlertid kan det oppstÄ utfordringer ved konfigurasjon pÄ par av Leaf-svitsjer som befinner seg i VPC-domenet. Ved endring av TCAM vil konsistensen mellom parene bli brutt, og en node kan bli tatt offline. I tillegg kan en omstart av enheten vÊre nÞdvendig for Ä bruke konfigurasjonen ved endring av TCAM.
Som et resultat mÄ man nÞye vurdere om det i din situasjon er fornuftig Ä implementere denne innstillingen pÄ en aktiv fabrikk.
Vi avslutter nÄ fÞrste del av syklusen. I neste del vil vi se pÄ ruting gjennom VxLAN-fabrikken, med nettverksdeling pÄ forskjellige VRF-er.
Og nÄ inviterer jeg alle til , hvor jeg vil gÄ i detalj om kurset. De fÞrste 20 deltakerne som registrerer seg pÄ dette webinaret, vil motta et sertifikat med rabatt via e-post innen 1-2 dager etter sendingen.
Kilde: habr.com
