Tovarna VxLAN. 1. del

Pozdravljeni, habr. Trenutno sem vodja tečaja Network Engineer na OTUS.
V pričakovanju začetka novega vpisa na tečaj "Omrežni inženir", sem pripravil serijo člankov o tehnologiji VxLAN EVPN.

Materiala o delovanju VxLAN EVPN je ogromno, zato želim zbrati različne naloge in prakse za reševanje problemov v sodobnem podatkovnem centru.

Tovarna VxLAN. 1. del

V prvem delu serije o tehnologiji VxLAN EVPN si želim ogledati način za organizacijo povezljivosti L2 med gostitelji na vrhu omrežne strukture.

Vsi primeri bodo izvedeni na Cisco Nexusu 9000v, sestavljenem v topologiji Spine-Leaf. V tem članku se ne bomo ukvarjali z nastavitvijo omrežja Underlay.

  1. Podložna mreža
  2. Vrstenje BGP za družino naslovov l2vpn evpn
  3. Nastavitev NVE
  4. Zatiranje-arp

Podložna mreža

Uporabljena topologija je naslednja:

Tovarna VxLAN. 1. del

Nastavimo naslavljanje na vseh napravah:

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

Preverimo, ali obstaja IP povezljivost med vsemi napravami:

Leaf21# sh ip route
<........>
10.255.1.11/32, ubest/mbest: 2/0                      ! Leaf-11 доступен чеерз два 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 доступен чеерз два 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, intra

Preverimo, ali je bila domena VPC ustvarjena in sta obe stikali opravili preverjanje skladnosti in so nastavitve na obeh vozliščih enake:

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               1

BGP peering

Končno lahko nadaljujete z nastavitvijo omrežja Overlay.

Kot del članka je potrebno organizirati omrežje med gostitelji, kot je prikazano na spodnjem diagramu:

Tovarna VxLAN. 1. del

Če želite konfigurirati prekrivno omrežje, morate omogočiti BGP na stikalih Spine in Leaf s podporo za družino l2vpn evpn:

feature bgp
nv overlay evpn

Nato morate konfigurirati peering BGP med Leaf in Spine. Za poenostavitev nastavitve in optimizacijo distribucije informacij o usmerjanju konfiguriramo Spine kot strežnik Route-Reflector. Vse Leaf bomo zapisali v konfiguracijo z uporabo predlog za optimizacijo nastavitve.

Torej so nastavitve na Spine videti takole:

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

Nastavitev stikala Leaf je videti podobno:

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

Na Spine preverimo peering z vsemi stikali Leaf:

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

Kot lahko vidite, z BGP ni bilo težav. Preidimo na nastavitev VxLAN. Nadaljnja konfiguracija bo izvedena samo na strani stikal Leaf. Spine deluje le kot jedro omrežja in sodeluje samo pri prenosu prometa. Vse enkapsulacije in določanja poti se izvajajo samo na listnih stikalih.

Nastavitev NVE

NVE - mrežni virtualni vmesnik

Preden začnemo z nastavitvijo, predstavimo nekaj terminologije:

VTEP - Vitual Tunnel End Point, naprava, na kateri se začne ali konča tunel VxLAN. VTEP ni nujno katera koli omrežna naprava. Strežnik, ki podpira tehnologijo VxLAN, lahko deluje tudi kot strežnik. V naši topologiji so vsa stikala Leaf VTEP.

VNI - Virtual Network Index - identifikator omrežja znotraj VxLAN. Analogijo lahko potegnemo z VLAN. Vendar pa obstajajo nekatere razlike. Pri uporabi tkanine postanejo omrežja VLAN edinstvena samo znotraj enega stikala Leaf in se ne prenašajo po omrežju. Toda vsak VLAN ima lahko povezano številko VNI, ki se že prenaša po omrežju. O tem, kako izgleda in kako se lahko uporablja, bomo razpravljali še naprej.

Omogočimo funkcijo za delovanje tehnologije VxLAN in možnost povezovanja številk VLAN s številko VNI:

feature nv overlay
feature vn-segment-vlan-based

Konfigurirajmo vmesnik NVE, ki je odgovoren za delovanje VxLAN. Ta vmesnik je odgovoren za enkapsulacijo okvirjev v glavah VxLAN. Lahko potegnete analogijo z vmesnikom Tunnel za GRE:

interface nve1
  no shutdown
  host-reachability protocol bgp ! используем BGP для передачи маршрутной информации
  source-interface loopback0    ! интерфейс  с которого отправляем пакеты loopback0

Na stikalu Leaf-21 je vse ustvarjeno brez težav. Če pa preverimo izhod ukaza show nve peers, potem bo prazna. Tukaj se morate vrniti v konfiguracijo VPC. Vidimo, da Leaf-11 in Leaf-12 delujeta v parih in ju združuje domena VPC. To nam daje naslednjo situacijo:

Host-2 pošlje en okvir proti Leaf-21, tako da ga ta pošlje po omrežju proti Host-1. Vendar pa Leaf-21 vidi, da je naslov MAC gostitelja-1 dostopen prek dveh VTEP hkrati. Kaj naj Leaf-21 naredi v tem primeru? Konec koncev to pomeni, da se lahko pojavi zanka v omrežju.

Za rešitev te situacije potrebujemo, da Leaf-11 in Leaf-12 prav tako delujeta kot ena naprava v tovarni. Rešitev je precej preprosta. Na vmesniku Loopback, iz katerega gradimo tunel, dodajte sekundarni naslov. Sekundarni naslov mora biti enak na obeh VTEP.

interface loopback0
 ip add 10.255.1.10/32 secondary

Tako z vidika drugih VTEP dobimo naslednjo topologijo:

Tovarna VxLAN. 1. del

Se pravi, zdaj bo tunel zgrajen med naslovom IP Leaf-21 in virtualnim IP med dvema Leaf-11 in Leaf-12. Zdaj ne bo težav pri učenju naslova MAC iz dveh naprav in promet se lahko premika iz enega VTEP v drugega. Kateri od obeh VTEP-jev bo obdelal promet, se odloči z uporabo usmerjevalne tabele na 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, intra

Kot lahko vidite zgoraj, je naslov 10.255.1.10 na voljo takoj prek dveh Next-hopov.

Na tej stopnji smo se ukvarjali z osnovno povezljivostjo. Preidimo na nastavitev vmesnika NVE:
Takoj omogočimo Vlan 10 in ga povežimo z VNI 10000 na vsakem listu za gostitelje. Postavimo predor L2 med gostitelji

vlan 10                 ! Включаем VLAN на всех VTEP подключенных к необходимым хостам
  vn-segment 10000      ! Ассоциируем VLAN с номер VNI 

interface nve1
  member vni 10000      ! Добавляем VNI 10000 для работы через интерфейс NVE. для инкапсуляции в VxLAN
    ingress-replication protocol bgp    ! указываем, что для распространения информации о хосте используем BGP

Zdaj pa preverimo nve vrstnikov in tabelo za 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                 ! Видим что peer доступен с secondary адреса

Leaf11# sh bgp l2vpn evpn

   Network            Next Hop            Metric     LocPrf     Weight Path
Route Distinguisher: 10.255.1.11:32777    (L2VNI 10000)        ! От кого именно пришел этот l2VNI
*>l[3]:[0]:[32]:[10.255.1.10]/88                                   ! EVPN route-type 3 - показывает нашего соседа, который так же знает об 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 i

Zgoraj vidimo samo poti EVPN route-type 3. Ta vrsta poti govori o peer (Leaf), toda kje so naši gostitelji?
Stvar je v tem, da se informacije o gostiteljih MAC prenašajo prek EVPN route-type 2

Če želite videti naše gostitelje, morate konfigurirati EVPN route-type 2:

evpn
  vni 10000 l2
    route-target import auto   ! в рамках данной статьи используем автоматический номер для route-target
    route-target export auto

Podajmo ping od gostitelja-2 do gostitelja-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 ms

In spodaj lahko vidimo, da se je v tabeli BGP pojavil tip poti 2 z naslovom MAC gostitelja - 5001.0007.0007 in 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 и mac адрес хоста 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 и mac адрес хоста 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

Nato si lahko ogledate podrobne informacije o posodobitvi, v kateri ste prejeli informacije o gostitelju MAC. Spodaj ni vseh izhodnih podatkov ukaza.

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        !  отправил Update с MAC Host. Не виртуальный адрес VPC, а адрес 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 i
n HW

  Path type: internal, path is valid, not best reason: Neighbor Address, no labe
led nexthop
  AS-Path: NONE, path sourced internal to AS
    10.255.1.10 (metric 81) from 10.255.1.102 (10.255.1.102)    ! с кем именно строим VxLAN тоннель
      Origin IGP, MED not set, localpref 100, weight 0
      Received label 10000         ! Номер VNI, который ассоциирован с VLAN, в котором находится Host
      Extcommunity: RT:65001:10000 SOO:10.255.1.10:0 ENCAP:8        ! Тут видно, что RT сформировался автоматически на основе номеров AS и VNI
      Originator: 10.255.1.11 Cluster list: 10.255.1.102
<........>

Poglejmo, kako izgledajo okvirji, ko gredo skozi tovarno:

Tovarna VxLAN. 1. del

Zatiranje-ARP

Super, zdaj imamo komunikacijo L2 med gostitelji in lahko zaključimo s tem. Vendar pa ni vse tako preprosto. Dokler imamo malo gostiteljev, ne bo težav. Toda predstavljajmo si situacijo, ko imamo na stotine in tisoče gostiteljev. S kakšno težavo se lahko srečamo?

Ta težava je promet BUM (Broadcast, Unknown Unicast, Multicast). V tem članku bomo preučili možnost obravnavanja oddajnega prometa.
Glavni generator oddajanja v omrežjih Ethernet so gostitelji sami preko protokola ARP.

Nexus izvaja naslednji mehanizem za boj proti zahtevam ARP - suppress-arp.
Ta funkcija deluje na naslednji način:

  1. Host-1 pošlje zahtevo APR na Broadcast naslov svojega omrežja.
  2. Zahteva doseže stikalo Leaf in namesto da bi to zahtevo posredovala naprej v strukturo proti Host-2, se Leaf sam odzove in navede zahtevani IP in MAC.

Tako zahteva za oddajanje ni šla v tovarno. Toda kako lahko to deluje, če Leaf pozna samo naslov MAC?

Vse je precej preprosto, EVPN route-type 2 lahko poleg naslova MAC prenaša kombinacijo MAC/IP. Če želite to narediti, morate konfigurirati naslov IP v omrežju VLAN na Leafu. Postavlja se vprašanje, kateri IP naj nastavim? Na nexusu je mogoče ustvariti porazdeljen (isti) naslov na vseh stikalih:

feature interface-vlan

fabric forwarding anycast-gateway-mac 0001.0001.0001    ! задаем virtual mac для создания распределенного шлюза между всеми коммутаторами

interface Vlan10
  no shutdown
  ip address 192.168.10.254/24          ! на всех Leaf задаем одинаковый IP
  fabric forwarding mode anycast-gateway    ! говорим использовать Virtual mac

Tako bo z vidika gostiteljev omrežje videti takole:

Tovarna VxLAN. 1. del

Preverimo 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

<......>

Iz izhoda ukaza lahko vidite, da v EVPN route-type 2 poleg MAC zdaj vidimo tudi naslov IP gostitelja.

Vrnimo se k nastavitvi suppress-arp. Ta nastavitev je omogočena za vsak VNI posebej:

interface nve1
  member vni 10000   
    suppress-arp

Potem se pojavi nekaj zapletenosti:

  • Za delovanje te funkcije je potreben prostor v pomnilniku TCAM. Tu je primer nastavitev za suppress-arp:

hardware access-list tcam region arp-ether 256

Ta nastavitev bo zahtevala dvojno širino. To pomeni, da če nastavite 256, potem morate v TCAM sprostiti 512. Nastavitev TCAM presega obseg tega članka, saj je nastavitev TCAM odvisna samo od naloge, ki vam je dodeljena, in se lahko razlikuje od enega omrežja do drugega.

  • Implementacijo suppress-arp je treba izvesti na vseh stikalih Leaf. Vendar lahko pride do zapletenosti pri konfiguriranju na parih listov, ki se nahajajo v domeni VPC. Če se TCAM spremeni, bo skladnost med pari porušena in eno vozlišče bo morda onemogočeno. Poleg tega bo za uporabo nastavitve spremembe TCAM morda potreben ponovni zagon naprave.

Zato morate skrbno razmisliti, ali je v vaši situaciji vredno implementirati to nastavitev v delujočo tovarno.

S tem se zaključuje prvi del serije. V naslednjem delu si bomo ogledali usmerjanje skozi strukturo VxLAN z ločevanjem omrežij v različne VRF-je.

In zdaj vabim vse brezplačni spletni seminar, v okviru katerega vam bom podrobno povedala o tečaju. Prvih 20 udeležencev, ki se bodo prijavili na ta webinar, bo prejelo potrdilo o popustu po e-pošti v 1-2 dneh po oddaji.

Vir: www.habr.com

Dodaj komentar