VxLAN-fabrik. Del 2

Hej, Habr. Jeg fortsætter cyklussen af artikler om VxLAN EVPN-teknologi, som blev skrevet specielt til lanceringen af kurset "Netværksingeniør" fra OTUS. I dag vil vi se på en interessant del af opgaverne – routing. Selvom det måske lyder banalt, kan det i forbindelse med et netværksfabrik arbejde være mere kompliceret.

VxLAN-fabrik. Del 2

1. del af cyklen – L2-forbindelse mellem servere

I den forrige del opnåede vi et enkelt broadcast-domæne opbygget over netværksfabrikken på Nexus 9000v. Men dette er langt fra det fulde spektrum af opgaver, der skal løses i et datacenter-netværk. I dag vil vi fokusere på den næste opgave – routing mellem netværk eller mellem VNI.

Jeg minder om, at vi bruger Spine-Leaf topologi:

VxLAN-fabrik. Del 2

Lad os først se på, hvordan routing foregår, og hvilke særtræk der er.

For at forstå det bedre, lad os forenkle den logiske skitse og tilføje en VNI 20000 for Host-2. Det ser derfor ud som følger:

VxLAN-fabrik. Del 2

Hvordan kan vi i så fald overføre trafik fra en Host til en anden?

Der er to muligheder:

  1. At opbevare oplysninger om alle VNI på alle Leaf-switchen, i så fald vil al routing finde sted på den første Leaf i netværket;
  2. At bruge en dedikeret - L3 VNI

Den første metode er simpel og bekvem. Da det kræver, at alle VNI kun skal indføres på alle Leaf-switchen. Men det at indføre flere hundrede eller tusinde VNI på alle Leaf virker ikke mere som en simpel opgave. Derfor anvendes den i praksis sjældent.

Lad os se nærmere på den anden metode, som er mere interessant og lidt mere kompleks, men giver større fleksibilitet ved opsætningen af fabrikken.

Vi tilføjer VRF "PROD" til topologien. Vi tilføjer interface vlan 10 på parret Leaf-11/12 og interface VLAN 20 på Leaf-21. VLAN 20 associeres med VNI 20000.

vrf context PROD
  rd auto       ! Route Distinguisher er ikke kritisk, og vi kan bruge det automatisk genererede
  address-family ipv4 unicast
    route-target both auto      ! vi angiver Route-target, som prefiksene vil blive importeret til/eksporteret fra VRF
vlan 20
  vn-segment 20000

interface nve 1
  member vni 20000
    ingress-replication protocol bgp

interface Vlan10
  no shutdown
  vrf member PROD
  ip address 192.168.20.1/24
  fabric forwarding mode anycast-gateway

For at bruge L3 VNI skal der oprettes en ny VLAN, som associeres med den nye VNI. Den nye VNI skal være den samme på alle Leaf, der er interesseret i oplysninger om VLAN 10 og 20.

vlan 99
  vn-segment 99000

interface nve1
  member vni 99000 associate-vrf        ! Opretter L3 VNI

vrf context PROD
  vni 99000                             ! Binder L3 VNI til et bestemt VRF

Som resultat vil skemaet se sådan ud:

VxLAN-fabrik. Del 2

Der er bare lidt tilbage at udføre — tilføje endnu et interface — interface vlan 99 i VRF PROD

interface Vlan99
  no shutdown
  vrf member PROD
  ip forward  ! Der må ikke være IP på interfacet. Det bruges kun til at videresende pakker mellem Leaf

Logikken for, hvordan en ramme passerer fra Host-1 til Host-2, er som følger:

  1. Rammen sendt fra Host-1 ankommer til Leaf i VLAN 10, som er tilknyttet VNI 10000;
  2. Leaf kontrollerer, hvor destinationsadressen er, og finder den via L3 VNI på den anden Leaf-switch;
  3. Så snart ruten til destinationsadressen er fundet, pakker Leaf rammen med den nødvendige L3VNI 99000 — og sender den mod den anden Leaf;
  4. Den anden Leaf-switch modtager data fra L3VNI 99000. Den tager den oprindelige ramme og flytter den til den nødvendige L2VNI 20000 og videre til VLAN 20.

Resultatet af dette arbejde er, at L3VNI fjerner behovet for at opbevare information om alle VNI'er, der findes i netværket, på alle Leaf-switcher.

Så når vi sender trafik fra Host-1 til Host-2, bliver pakken pakket ind i VxLAN med et nyt VNI — 99000:

VxLAN-fabrik. Del 2

Det er nødvendigt at forstå, hvordan Leaf-1 kender MAC-adressen fra en anden VNI. Dette sker også ved hjælp af EVPN route-type 2 (MAC/IP).

Nedenfor vises processen for spredning af ruten om præfikset, der findes i en anden VNI:

VxLAN-fabrik. Del 2

Det vil sige, at adresserne modtaget fra VNI 20000 har to RT.
Husk, at ruter modtaget fra update går ind i BGP-tabellen med route-target angivet i VRF-indstillingerne (processen er noget mere kompleks, men vi vil ikke gå i dybden med det i denne artikel).
Den faktiske RT dannes efter formlen: AS:VNI (hvis automatisk tilstand bruges).

Eksempel på dannelse af RT i automatisk og manuel tilstand:

vrf context PROD
  address-family ipv4 unicast
    route-target import auto - automatisk driftsmode
    route-target export 65001:20000 - manuel RT-dannelse

Som det ses ovenfor, har præfikser fra en anden VNI to RT-værdier.
En af dem er 65001:99000 — en ekstra L3 VNI. Da denne VNI er den samme på alle Leaf og falder ind under vores import-regler i VRF-indstillingerne — præfikset går ind i BGP-tabellen, hvilket kan ses af uddataene:

sh bgp l2vpn evpn

   Netværk            Næste Hop            Metrik     LocPrf     Vægt 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.10                       100      32768 i
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[32]:[192.168.10.10]\/272
                      10.255.1.10                       100      32768 i
*>l[3]:[0]:[32]:[10.255.1.10]\/88
                      10.255.1.10                       100      32768 i

Rute Distinguisher: 10.255.1.21:32787
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]\/272    ! Præfiks modtaget fra VNI 20000
                      10.255.1.20                       100          0 i
*>i                   10.255.1.20                       100          0 i

Hvis vi ser nærmere på den modtagne opdatering, kan vi se, at dette præfiks har to RT:

Leaf11# sh bgp l2vpn evpn 5001.0008.0007
BGP rutetabelinformation for VRF default, adressefamilie L2VPN EVPN
Rute Distinguisher: 10.255.1.21:32787
BGP rutetabellenindgang for [2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]\/272, version 5164
Stier: (2 tilgængelige, bedste #2)
Flag: (0x000202) (high32 00000000) på xmit-liste, er ikke i l2rib\/evpn, er ikke i HW

  Stitype: intern, sti er gyldig, ikke bedste grund: Naboadresse, ingen mærket næste hop
  AS-Sti: INGEN, sti er kildet intern til AS
    10.255.1.20 (metrik 81) fra 10.255.1.102 (10.255.1.102)
      Oprindelse IGP, MED ikke indstillet, lokalpref 100, vægt 0
      Modtaget mærke 20000 99000                                 ! To mærker til VxLAN arbejdet
      Extcommunity: RT:65001:20000 RT:65001:99000 SOO:10.255.1.20:0 ENCAP:8     ! To værdier Route-target, baseret på, hvilke vi har tilføjet dette præfiks
          Router MAC:5001.0005.0007
      Oprinderen: 10.255.1.21 Clusterliste: 10.255.1.102

I rutetabel på Leaf-1 kan man også se præfiks 192.168.20.20\/32:

Leaf11# sh ip route vrf PROD
192.168.10.0/24, ubest/mbest: 1/0, attached
 *via 192.168.10.1, Vlan10, [0/0], 01:29:28, direct
192.168.10.1/32, ubest/mbest: 1/0, attached
 *via 192.168.10.1, Vlan10, [0/0], 01:29:28, local
192.168.10.10/32, ubest/mbest: 1/0, attached
 *via 192.168.10.10, Vlan10, [190/0], 01:27:22, hmm
192.168.20.20/32, ubest/mbest: 1/0 ! Adresse Host-2
 *via 10.255.1.20fault, [200/0], 01:20:20, bgp-65001, internal, tag 65001 ! Tilgængelig via Leaf-2
(evpn) segid: 99000 tunnelid: 0xaff0114 encap: VXLAN ! Gennem VNI 99000

Har du bemærket manglen på hovedpræfiks 192.168.20.0\/24 i rutetabellen?
Præcis, det er ikke der. Det vil sige, at de fjernede Leaf kun får information om værter, som er i dit netværk. Og det er den rigtige adfærd. Ovenfor i alle opdateringerne ses det, at der kommer information med indhold MAC\/IP. Der tales ikke om nogen præfiks.

Dette fungerer protokollen Host Mobility Manager (HMM), som udfylder ARP-tabellen, som derefter fylder BGP-tabellen (i denne artikel lader vi denne proces ligge). Baseret på informationen modtaget fra HMM dannes EVPN route-type 2 (MAC\/IP sendes).

Men hvad skal man gøre, hvis der er behov for at sende information om et eller andet præfiks?

Til denne type information findes der EVPN route-type 5 — den muliggør transmission af præfikser gennem address-family l2vpn evpn (denne rutetype er ved skrivningen kun i draft-version) RFC, hvilket betyder, at adfærd af denne rutetype kan variere mellem producenter)

For at overføre præfikser er det nødvendigt at tilføje præfikser, der skal annonceres, i BGP for VRF:

router bgp 65001
  vrf PROD
    address-family ipv4 unicast
      redistribute direct route-map VNI20000        ! I dette tilfælde annoncerer vi præfikser fra forbindelsen direkte til Leaf i VNI 20000
route-map VNI20000 permit 10
  match ip address prefix-list VNI20000_OUT    ! Angiver hvilken prefix-list der skal anvendes

ip prefix-list VNI20000_OUT seq 5 permit 192.168.20.0/24   ! Angiver hvilke netværk der vil blive inkluderet i EVPN route-type 5

Resultatet vil være i Update:

VxLAN-fabrik. Del 2

Lad os se på BGP-tabellen. Udover EVPN route-type 2 og 3 er der også dukket ruter af type 5 op, som indeholder information om netværksnummeret:

Network            Next Hop            Metric     LocPrf     Weight Path
Route Distinguisher: 10.255.1.11:3
* i[5]:[0]:[0]:[24]:[192.168.10.0]/224
                      10.255.1.10              0        100          0 ?
*>i                   10.255.1.10              0        100          0 ?

Route Distinguisher: 10.255.1.11:32777
* i[2]:[0]:[0]:[48]:[5001.0007.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.0007.0007]:[32]:[192.168.10.10]/272
                      10.255.1.10                       100          0 i
*>i                   10.255.1.10                       100          0 i
* i[3]:[0]:[32]:[10.255.1.10]/88
                      10.255.1.10                       100          0 i
*>i                   10.255.1.10                       100          0 i

Route Distinguisher: 10.255.1.12:3
*>i[5]:[0]:[0]:[24]:[192.168.10.0]/224      ! EVPN route-type 5 med præfiksnummer
                      10.255.1.10              0        100          0 ?
* i
<.......>                   

I routingtabellen er præfikset også dukket op:

Leaf21# sh ip ro vrf PROD
192.168.10.0/24, ubest/mbest: 1/0
 *via 10.255.1.10fault, [200/0], 00:14:32, bgp-65001, internal, tag 65001 ! Fjernpræfiks tilgængelig via Leaf1/2 (Next-hop adresse = virtual IP mellem par VPC)
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN ! Præfiks tilgængelig gennem L3VNI 99000

192.168.10.10/32, ubest/mbest: 1/0
 *via 10.255.1.10fault, [200/0], 02:33:40, bgp-65001, internal, tag 65001
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN

192.168.20.0/24, ubest/mbest: 1/0, attached
 *via 192.168.20.1, Vlan20, [0/0], 02:39:44, direct
192.168.20.1/32, ubest/mbest: 1/0, attached
 *via 192.168.20.1, Vlan20, [0/0], 02:39:44, local
192.168.20.20/32, ubest/mbest: 1/0, attached
 *via 192.168.20.20, Vlan20, [190/0], 02:35:46, hmm

Vi slutter den anden del af artikelcirklen om VxLAN EVPN her. I den næste del vil vi se på forskellige ruteringsmuligheder mellem VRF.

Grundlæggende om IPv6-protokol og dens forskelle fra IPv4

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster