Сәлем, Хабр. Мен қазір OTUS-те желі инженері курсының жетекшісімін.
Курсқа жаңа қабылдаудың басталуын күтумен
VxLAN EVPN қалай жұмыс істейтіні туралы көптеген материалдар бар, сондықтан мен заманауи деректер орталығында мәселелерді шешуге арналған әртүрлі тапсырмалар мен тәжірибелерді жинағым келеді.
VxLAN EVPN технологиясы бойынша серияның бірінші бөлігінде мен желілік құрылымның үстіндегі хосттар арасындағы L2 қосылымын ұйымдастыру жолын қарастырғым келеді.
Барлық мысалдар Spine-Leaf топологиясында жинақталған Cisco Nexus 9000v құрылғысында орындалады. Біз бұл мақалада Underlay желісін орнатуға тоқталмаймыз.
- Астыңғы желі
- l2vpn evpn мекенжай-отбасы үшін BGP пирингі
- NVE орнату
- Басу-арп
Астыңғы желі
Пайдаланылатын топология келесідей:
Барлық құрылғыларда адрестеуді орнатайық:
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 желісін орнатуға көшуге болады.
Мақаланың бөлігі ретінде төмендегі диаграммада көрсетілгендей хосттар арасында желіні ұйымдастыру қажет:
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 тұрғысынан біз келесі топологияны аламыз:
Яғни, енді туннель 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
<........>
Жақтаулар зауыттан өткенде қандай болатынын көрейік:
Басу-ARP
Тамаша, бізде қазір хосттар арасында L2 байланысы бар және біз сонда аяқтай аламыз. Дегенмен, бәрі қарапайым емес. Бізде хосттар аз болғанша ешқандай проблемалар болмайды. Бірақ бізде жүздеген және мыңдаған хосттар бар жағдайды елестетіп көрейік. Біз қандай мәселеге тап болуымыз мүмкін?
Бұл мәселе BUM (Таратылым, белгісіз Unicast, Multicast) трафигі. Бұл мақалада біз хабар тарату трафигімен жұмыс істеу нұсқасын қарастырамыз.
Ethernet желілеріндегі негізгі Broadcast генераторы ARP хаттамасы арқылы хосттардың өздері болып табылады.
Nexus ARP сұрауларымен күресу үшін келесі механизмді жүзеге асырады - suppress-arp.
Бұл мүмкіндік келесідей жұмыс істейді:
- Host-1 өз желісінің Broadcast мекенжайына APR сұрауын жібереді.
- Сұрау 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
Осылайша, хосттардың көзқарасы бойынша желі келесідей болады:
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 құрылымы арқылы маршруттауды қарастырамыз.
Ал енді барлығын шақырамын
Ақпарат көзі: www.habr.com