VxLAN tehas. 2. osa

Tere Habr. Jätkan VxLAN EVPN-tehnoloogia artiklite sarja, mis olid kirjutatud spetsiaalselt kursuse käivitamiseks "Võrguinsener" poolt OTUS. Ja täna käsitleme ülesannete huvitavat osa - marsruutimist. Ükskõik kui banaalselt see ka ei kõlaks, aga võrgutehase töö osana ei pruugi kõik nii lihtne olla.

VxLAN tehas. 2. osa

1 osa tsüklist – L2 ühenduvus serverite vahel

Viimases osas saavutasime Nexus 9000v võrgukangale ehitatud ühe leviedastusdomeeni. See ei ole aga kogu andmekeskuste võrgu raames lahendamist vajav ülesannete ring. Ja täna kaalume järgmist ülesannet - marsruutimine võrkude või VNI-de vahel.

Lubage mul teile meelde tuletada, et kasutatakse Spine-Leaf topoloogiat:

VxLAN tehas. 2. osa

Alustuseks analüüsime, kuidas marsruutimine toimub ja millised funktsioonid sellel on.

Mõistmise huvides lihtsustame loogikaskeemi ja lisame Host-20000 jaoks veel ühe VNI 2. Tulemuseks on:

VxLAN tehas. 2. osa

Kuidas saate sel juhul liiklust ühelt hostilt teisele üle kanda?

On kaks võimalust:

  1. Hoidke teavet kõigi VNI-de kohta kõigis Leafi lülitites, siis toimub kogu marsruutimine võrgu esimesel Leafil;
  2. Kasutage spetsiaalset L3 VNI-d

Esimene viis on lihtne ja mugav. Kuna kõigil Leaf lülititel on vaja käivitada ainult kõik VNI-d. Mõnesaja või tuhande VNI-de hankimine kogu Leafi ulatuses pole aga enam lihtne ülesanne. Seetõttu kasutatakse seda töös üsna harva.

Analüüsime meetodit 2 kui huvitavamat ja veidi keerulisemat, kuid tehase rajamisel paindlikumat võimalust.

Lisame VRF topoloogiasse "PROD". Lisame sellele Leaf-10/11 paaril liidese vlan 12 ja Leaf-20 liidese VLAN 21. VLAN 20 on seotud VNI 20000-ga

vrf context PROD
  rd auto       ! Route Distinguisher не принципиален и можем использовать сформированный автоматически
  address-family ipv4 unicast
    route-target both auto      ! указываем Route-target с которым будут импортироваться и экспортироваться префиксы в/из 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

L3VNI kasutamiseks peate looma uue VLAN-i, siduma selle uue VNI-ga. Uus VNI peab olema sama kõigil Leafidel, mis on huvitatud VLAN 10 ja 20 teabest.

vlan 99
  vn-segment 99000

interface nve1
  member vni 99000 associate-vrf        ! Создаем L3 VNI

vrf context PROD
  vni 99000                             ! Привязываем L3 VNI к определенному VRF

Selle tulemusena näeb diagramm välja järgmine:

VxLAN tehas. 2. osa

Jääb veel veidi lõpetada - lisada veel üks liides - liides vlan 99 VRF PROD-is

interface Vlan99
  no shutdown
  vrf member PROD
  ip forward  ! На интерфейсе не должно быть IP. Используется только для пересылки пакетов между Leaf

Selle tulemusena on kaadri Host-1-lt Host-2-le edastamise loogika järgmine:

  1. Host-1 saadetud kaader saabub VLAN 10 lehele, mis on seotud VNI 10000-ga;
  2. Leaf kontrollib, kus on sihtkoha aadress, ja leiab selle L3 VNI kaudu teisel Leaf-lülitil;
  3. Niipea kui marsruut sihtkoha aadressi on leitud, pakib Leaf raami vajaliku L3VNI 99000-ga päisesse – ja saadab selle teise Leafi poole;
  4. Teine Leaf-lüliti saab andmeid L3VNI 99000-lt. Hangib algse kaadri ja edastab selle vajalikule L2VNI 20000-le ja seejärel VLAN 20-le.

Selle töö tulemusena kaotab L3VNI vajaduse säilitada kõigis Leafi lülitites teavet kõigi võrgus olevate VNI-de kohta.

Selle tulemusena, kui saadame liiklust Host-1-lt Host-2-le, pakitakse pakett VxLAN-i uue VNI-ga - 99000:

VxLAN tehas. 2. osa

Jääb üle näha, kuidas täpselt Leaf-1 õpib teisest VNI-st MAC-aadressi. See juhtub ka EVPN-i marsruudi tüüp 2 (MAC / IP) abil.

Järgmine näitab marsruudi levitamise protsessi teises VNI-s asuva eesliite kohta:

VxLAN tehas. 2. osa

See tähendab, et VNI 20000-st saadud aadressidel on kaks RT-d.
Tuletan meelde, et värskendusest saadud marsruudid langevad VRF-i sätetes määratud marsruudi sihtmärgiga BGP-tabelisse (protsess on mõnevõrra keerulisem, kuid me ei lähe sellesse artiklisse).
RT ise moodustatakse valemiga: AS:VNI (kui kasutatakse automaatrežiimi).

Näide RT moodustamisest automaat- ja manuaalrežiimis:

vrf context PROD
  address-family ipv4 unicast
    route-target import auto - автоматический режим работы
    route-target export 65001:20000 - ручной режим формирования RT

Selle tulemusena näete ülal, et teise VNI prefiksidel on kaks RT väärtust.
Üks neist 65001:99000 on täiendav L3 VNI. Kuna see VNI on kõigil lehtedel sama ja VRF-i sätetes kehtib meie impordireeglid, satub eesliide BGP-tabelisse, mida on näha väljundist:

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.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

Route Distinguisher: 10.255.1.21:32787
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]/272    ! Префикс полученный из VNI 20000
                      10.255.1.20                       100          0 i
*>i                   10.255.1.20                       100          0 i

Kui vaatame saadud värskendust lähemalt, näeme, et sellel eesliitel on kaks RT-d:

Leaf11# sh bgp l2vpn evpn 5001.0008.0007
BGP routing table information for VRF default, address family L2VPN EVPN
Route Distinguisher: 10.255.1.21:32787
BGP routing table entry for [2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.2
0]/272, version 5164
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 labeled nexthop
  AS-Path: NONE, path sourced internal to AS
    10.255.1.20 (metric 81) from 10.255.1.102 (10.255.1.102)
      Origin IGP, MED not set, localpref 100, weight 0
      Received label 20000 99000                                 ! Два label для работы VxLAN
      Extcommunity: RT:65001:20000 RT:65001:99000 SOO:10.255.1.20:0 ENCAP:8     ! Два значения Route-target, на основе, которых добавили данный префикс
          Router MAC:5001.0005.0007
      Originator: 10.255.1.21 Cluster list: 10.255.1.102
<......>

Leaf-1 marsruutimistabelis näete ka eesliidet 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                                        ! Адрес Host-2
    *via 10.255.1.20%default, [200/0], 01:20:20, bgp-65001, internal, tag 65001     ! Доступный через Leaf-2
(evpn) segid: 99000 tunnelid: 0xaff0114 encap: VXLAN                                ! Через VNI 99000

Kas märkate marsruutimistabelis puuduvat primaarset eesliidet 192.168.20.0/24?
See on õige, teda pole seal. See tähendab, et kauglehed saavad teavet ainult teie võrgus olevate hostide kohta. Ja see on õige käitumine. Eespool on kõigis värskendustes näha, et teave tuleb koos MAC / IP sisuga. Eesliidetest pole rääkida.

See on Host Mobility Manager (HMM) protokoll, mis täidab ARP tabeli, millest BGP tabel edasi täidetakse (selle artikli raames jätame selle protsessi välja). HMM-ilt saadud teabe põhjal moodustatakse marsruudi tüüpi 2 EVPN-id (edastatakse MAC / IP kaudu).

Mis saab aga siis, kui on vaja edastada teavet eesliite kohta?

Seda tüüpi teabe jaoks on olemas EVPN-i marsruut-tüüp 5 - see võimaldab teil saata eesliiteid aadressiperekonna kaudu l2vpn evpn (seda tüüpi marsruut on selle kirjutamise ajal ainult mustandversioonis RFC, seetõttu võivad eri tootjad seda tüüpi marsruudil erinevalt käituda)

Prefikside ülekandmiseks on vaja VRF-i BGP-protsessis lisada eesliiteid, mida reklaamitakse:

router bgp 65001
  vrf PROD
    address-family ipv4 unicast
      redistribute direct route-map VNI20000        ! В данном случае анонсируем префиксы подключение непосредственно к Leaf в VNI 20000
route-map VNI20000 permit 10
  match ip address prefix-list VNI20000_OUT    ! Указываем какой использовать prefix-list

ip prefix-list VNI20000_OUT seq 5 permit 192.168.20.0/24   ! Указываем какие сети будут попадать в EVPN route-type 5

Selle tulemusena on värskendus järgmine:

VxLAN tehas. 2. osa

Vaatame BGP tabelit. Lisaks EVPN-i marsruuditüübile 2,3 on ilmunud 5. tüüpi marsruudid, mis sisaldavad teavet võrgunumbri kohta:

<......>
   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 с номером префикса
                      10.255.1.10              0        100          0 ?
* i
<.......>                   

Eesliide ilmus ka marsruutimistabelis:

Leaf21# sh ip ro vrf PROD
192.168.10.0/24, ubest/mbest: 1/0
    *via 10.255.1.10%default, [200/0], 00:14:32, bgp-65001, internal, tag 65001  ! Удаленный префикс, доступный через Leaf1/2(адрес Next-hop = virtual IP между парой VPC)
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN      ! Префикс доступен через L3VNI 99000

192.168.10.10/32, ubest/mbest: 1/0
    *via 10.255.1.10%default, [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

See lõpetab VxLAN EVPN-i käsitlevate artiklite sarja teise osa. Järgmises osas käsitleme erinevaid võimalusi VRF-ide vaheliseks marsruutimiseks.

IPv6 põhitõed ja selle erinevus IPv4-st

Allikas: www.habr.com

Lisa kommentaar