VxLAN зауыты. 1-бөлім

Сәлем, Хабр. Мен қазір OTUS-те желі инженері курсының жетекшісімін.
Курсқа жаңа қабылдаудың басталуын күтумен «Желі инженері», Мен VxLAN EVPN технологиясы бойынша мақалалар топтамасын дайындадым.

VxLAN EVPN қалай жұмыс істейтіні туралы көптеген материалдар бар, сондықтан мен заманауи деректер орталығында мәселелерді шешуге арналған әртүрлі тапсырмалар мен тәжірибелерді жинағым келеді.

VxLAN зауыты. 1-бөлім

VxLAN EVPN технологиясы бойынша серияның бірінші бөлігінде мен желілік құрылымның үстіндегі хосттар арасындағы L2 қосылымын ұйымдастыру жолын қарастырғым келеді.

Барлық мысалдар Spine-Leaf топологиясында жинақталған Cisco Nexus 9000v құрылғысында орындалады. Біз бұл мақалада Underlay желісін орнатуға тоқталмаймыз.

  1. Астыңғы желі
  2. l2vpn evpn мекенжай-отбасы үшін BGP пирингі
  3. NVE орнату
  4. Басу-арп

Астыңғы желі

Пайдаланылатын топология келесідей:

VxLAN зауыты. 1-бөлім

Барлық құрылғыларда адрестеуді орнатайық:

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

Барлық құрылғылар арасында IP байланысы бар-жоғын тексерейік:

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

VPC доменінің жасалғанын және екі қосқыштың сәйкестік тексеруінен өткенін және екі түйіндегі параметрлердің бірдей екенін тексерейік:

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 пиринг

Соңында, сіз Overlay желісін орнатуға көшуге болады.

Мақаланың бөлігі ретінде төмендегі диаграммада көрсетілгендей хосттар арасында желіні ұйымдастыру қажет:

VxLAN зауыты. 1-бөлім

Overlay желісін конфигурациялау үшін l2vpn evpn отбасына қолдау көрсететін Spine және Leaf қосқыштарында BGP қосу керек:

feature bgp
nv overlay evpn

Әрі қарай, Leaf және Spine арасында BGP теңшеуін теңшеу керек. Орнатуды жеңілдету және маршруттау ақпаратының таралуын оңтайландыру үшін біз Spine бағдарламасын Route-Reflector сервері ретінде конфигурациялаймыз. Орнатуды оңтайландыру үшін үлгілерді пайдаланып конфигурациядағы барлық жапырақты жазамыз.

Сонымен, Spine-дегі параметрлер келесідей болады:

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

Leaf қосқышындағы орнату ұқсас көрінеді:

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

Spine жүйесінде барлық 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

Көріп отырғаныңыздай, BGP-де проблемалар болған жоқ. VxLAN орнатуға көшейік. Әрі қарай конфигурациялау қосқыштардың жапырақ жағында ғана орындалады. Омыртқа тек желінің өзегі ретінде әрекет етеді және тек трафикті тасымалдауға қатысады. Барлық инкапсуляция және жолды анықтау жұмыстары тек Leaf қосқыштарында орындалады.

NVE орнату

NVE – желілік виртуалды интерфейс

Орнатуды бастамас бұрын, кейбір терминологияны енгізейік:

VTEP - Vitual Tunnel End Point, VxLAN туннелі басталатын немесе аяқталатын құрылғы. VTEP міндетті түрде кез келген желілік құрылғы емес. VxLAN технологиясын қолдайтын сервер сервер ретінде де әрекет ете алады. Біздің топологиямызда барлық Leaf қосқыштары VTEP болып табылады.

VNI - Virtual Network Index - VxLAN ішіндегі желі идентификаторы. Аналогияны VLAN арқылы жасауға болады. Дегенмен, кейбір айырмашылықтар бар. Матаны пайдаланған кезде VLAN желілері бір жапырақ қосқышында ғана бірегей болады және желі арқылы берілмейді. Бірақ әрбір VLAN-да онымен байланыстырылған VNI нөмірі болуы мүмкін, ол желі арқылы жіберіледі. Бұл қалай көрінеді және оны қалай қолдануға болады, әрі қарай талқыланады.

VxLAN технологиясының жұмыс істеу мүмкіндігін және VLAN нөмірлерін VNI нөмірімен байланыстыру мүмкіндігін қосайық:

feature nv overlay
feature vn-segment-vlan-based

VxLAN жұмысына жауап беретін NVE интерфейсін конфигурациялайық. Бұл интерфейс VxLAN тақырыптарындағы кадрларды инкапсуляциялауға жауапты. GRE үшін туннель интерфейсімен ұқсастық жасауға болады:

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

Leaf-21 қосқышында бәрі қиындықсыз жасалады. Дегенмен, егер команданың шығысын тексеретін болсақ show nve peers, содан кейін ол бос болады. Мұнда VPC конфигурациясына оралу керек. Біз Leaf-11 және Leaf-12 жұппен жұмыс істейтінін және VPC доменімен біріктірілгенін көреміз. Бұл бізге келесі жағдайды береді:

Host-2 бір кадрды Leaf-21-ге жібереді, осылайша оны желі арқылы Хост-1-ге жібереді. Дегенмен, Leaf-21 хост-1 MAC мекенжайына бірден екі VTEP арқылы қол жеткізуге болатынын көреді. Бұл жағдайда Leaf-21 не істеу керек? Өйткені, бұл желіде цикл пайда болуы мүмкін дегенді білдіреді.

Бұл жағдайды шешу үшін бізге Leaf-11 және Leaf-12 зауытта бір құрылғы ретінде жұмыс істеуі керек. Шешім өте қарапайым. Біз туннель құрастыратын Loopback интерфейсінде қосымша мекенжайды қосыңыз. Қосалқы мекенжай VTEP екеуінде де бірдей болуы керек.

interface loopback0
 ip add 10.255.1.10/32 secondary

Осылайша, басқа VTEP тұрғысынан біз келесі топологияны аламыз:

VxLAN зауыты. 1-бөлім

Яғни, енді туннель Leaf-21 IP мекенжайы мен екі Leaf-11 және Leaf-12 арасындағы виртуалды IP арасында салынады. Енді екі құрылғыдан MAC мекенжайын үйренуде қиындықтар болмайды және трафик бір VTEP-тен екіншісіне ауыса алады. Екі VTEP-тің қайсысы трафикті өңдейтінін 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

Жоғарыда көріп отырғаныңыздай, 10.255.1.10 мекенжайы екі Next-hops арқылы бірден қолжетімді.

Бұл кезеңде біз негізгі байланыспен айналыстық. NVE интерфейсін орнатуға көшейік:
Vlan 10-ды дереу қосып, оны хосттар үшін әрбір Leaf-де VNI 10000-мен байланыстырайық. Хосттар арасында L2 туннелін орнатайық

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

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

Енді BGP EVPN үшін nve құрдастары мен кестесін тексерейік:

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

Жоғарыда біз тек EVPN маршрут типіндегі 3 маршруттарды көреміз. Бұл маршрут түрі тең (Жапырақ) туралы айтады, бірақ біздің хосттарымыз қайда?
Мәселе мынада, MAC хосттары туралы ақпарат EVPN 2 типті маршрут арқылы беріледі

Хосттарды көру үшін EVPN 2 типті маршрутты конфигурациялау қажет:

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

Хост-2-ден Хост-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

Төменде біз MAC мекенжайы бар 2-ші маршрут типі BGP кестесінде пайда болғанын көре аламыз - 5001.0007.0007 және 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

Содан кейін сіз MAC хосты туралы ақпарат алған Жаңарту туралы толық ақпаратты көре аласыз. Төменде пәрмен шығысының барлығы емес.

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

Жақтаулар зауыттан өткенде қандай болатынын көрейік:

VxLAN зауыты. 1-бөлім

Басу-ARP

Тамаша, бізде қазір хосттар арасында L2 байланысы бар және біз сонда аяқтай аламыз. Дегенмен, бәрі қарапайым емес. Бізде хосттар аз болғанша ешқандай проблемалар болмайды. Бірақ бізде жүздеген және мыңдаған хосттар бар жағдайды елестетіп көрейік. Біз қандай мәселеге тап болуымыз мүмкін?

Бұл мәселе BUM (Таратылым, белгісіз Unicast, Multicast) трафигі. Бұл мақалада біз хабар тарату трафигімен жұмыс істеу нұсқасын қарастырамыз.
Ethernet желілеріндегі негізгі Broadcast генераторы ARP хаттамасы арқылы хосттардың өздері болып табылады.

Nexus ARP сұрауларымен күресу үшін келесі механизмді жүзеге асырады - suppress-arp.
Бұл мүмкіндік келесідей жұмыс істейді:

  1. Host-1 өз желісінің Broadcast мекенжайына APR сұрауын жібереді.
  2. Сұрау Leaf қосқышына жетеді және бұл сұрауды матаға Хост-2-ге жіберудің орнына, Жапырақ өзі жауап береді және қажетті IP және MAC көрсетеді.

Осылайша, Broadcast сұранысы зауытқа бармады. Бірақ егер Leaf тек MAC мекенжайын білсе, бұл қалай жұмыс істей алады?

Барлығы өте қарапайым, MAC мекенжайынан басқа EVPN маршрут-түрі 2 MAC/IP комбинациясын жібере алады. Бұл әрекетті орындау үшін Leaf желісіндегі VLAN желісінде IP мекенжайын конфигурациялау қажет. Сұрақ туындайды, қандай IP орнату керек? Nexus желісінде барлық қосқыштарда таратылған (бірдей) мекенжай жасауға болады:

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

Осылайша, хосттардың көзқарасы бойынша желі келесідей болады:

VxLAN зауыты. 1-бөлім

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

<......>

Пәрмен шығысынан EVPN маршрут-түрінің 2-де, MAC-дан басқа, біз енді хосттың IP мекенжайын көреміз.

suppress-arp параметріне оралайық. Бұл параметр әрбір VNI үшін бөлек қосылады:

interface nve1
  member vni 10000   
    suppress-arp

Содан кейін кейбір күрделілік туындайды:

  • Бұл мүмкіндік жұмыс істеуі үшін TCAM жадында бос орын қажет. Мұнда suppress-arp параметрлерінің мысалы келтірілген:

hardware access-list tcam region arp-ether 256

Бұл параметр екі есе кең ауқымды қажет етеді. Яғни, егер сіз 256-ны орнатсаңыз, онда TCAM-да 512-ні босатуыңыз керек.TCAM-ды орнату осы мақаланың ауқымынан тыс, өйткені TCAM орнату тек сізге берілген тапсырмаға байланысты және бір желіден екіншісіне әртүрлі болуы мүмкін.

  • Suppress-arp әрекетін барлық Leaf қосқыштарында орындау керек. Дегенмен, VPC доменінде орналасқан Leaf жұптарын конфигурациялау кезінде күрделілік туындауы мүмкін. Егер TCAM өзгертілсе, жұптар арасындағы сәйкестік бұзылады және бір түйін жұмыстан шығарылуы мүмкін. Сонымен қатар, TCAM өзгерту параметрін қолдану үшін құрылғыны қайта жүктеу қажет болуы мүмкін.

Нәтижесінде, сіздің жағдайыңызда бұл параметрді жұмыс істеп тұрған зауытқа енгізу керек пе, соны мұқият қарастыру керек.

Осымен серияның бірінші бөлімі аяқталады. Келесі бөлімде желілерді әртүрлі VRF-ге бөлу арқылы VxLAN құрылымы арқылы маршруттауды қарастырамыз.

Ал енді барлығын шақырамын тегін вебинар, оның аясында мен сізге курс туралы егжей-тегжейлі айтып беремін. Осы вебинарға тіркелген алғашқы 20 қатысушы трансляциядан кейін 1-2 күн ішінде электрондық пошта арқылы Жеңілдік сертификатын алады.

Ақпарат көзі: www.habr.com

пікір қалдыру