EVPN 有魔力嗎?阿瑟 C 克拉克說(shuō) ,任何足夠先進(jìn)的技術(shù)都無(wú)法與魔法區(qū)分開(kāi)來(lái)。在這個(gè)前提下,從傳統(tǒng)的第 2 層環(huán)境遷移到由 EVPN 驅(qū)動(dòng)的 VXLAN ,有很多相同的 hocus-pocus 感覺(jué)。
為了幫助解開(kāi)這個(gè)魔法的神秘面紗,我的目標(biāo)是幫助 EVPN 的新用戶理解 EVPN 是如何工作的以及控制平面是如何收斂的。在這篇文章中,我將重點(diǎn)介紹基本的第 2 層( L2 )構(gòu)建塊,然后逐步擴(kuò)展到第 3 層( L3 )連接和控制平面。
我使用參考拓?fù)渥鳛殡娎|計(jì)劃和基礎(chǔ)來(lái)建立你對(duì)交通流的理解。該基礎(chǔ)設(shè)施嘗試使用分布式網(wǎng)關(guān)揭開(kāi)對(duì)稱(chēng)模式 EVPN 環(huán)境的神秘面紗。 所有配置都使用生產(chǎn)就緒自動(dòng)化進(jìn)行標(biāo)準(zhǔn)化,并在公開(kāi)可用的 cumulus_ansible_modules GitLab repo 中鏈接。
接下來(lái),在云中構(gòu)建自己的 積云,并部署以下劇本:
~$ git clone https://gitlab.com/cumulus-consulting/goldenturtle/cumulus_ansible_modules.git Cloning into 'cumulus_ansible_modules'... remote: Enumerating objects: 822, done. remote: Counting objects: 100% (822/822), done. remote: Compressing objects: 100% (374/374), done. remote: Total 4777 (delta 416), reused 714 (delta 340), pack-reused 3955 Receiving objects: 100% (4777/4777), 4.64 MiB | 22.64 MiB/s, done. Resolving deltas: 100% (2121/2121), done. ~$ ~$ cd cumulus_ansible_modules/ ~/cumulus_ansible_modules$ ansible-playbook -i inventories/evpn_symmetric/host playbooks/deploy.yml
EVPN 消息類(lèi)型
與任何好的協(xié)議一樣, EVPN 有一個(gè)與對(duì)等方交換信息的強(qiáng)大過(guò)程: 消息類(lèi)型。如果您已經(jīng)知道 OSPF 和 LSA 消息,那么您可以認(rèn)為 EVPN 消息類(lèi)型類(lèi)似。每種 EVPN 消息類(lèi)型都可以攜帶關(guān)于 EVPN 業(yè)務(wù)流的不同類(lèi)型的信息。
大約有五種不同的消息類(lèi)型。在本文中,我將重點(diǎn)介紹目前最流行的兩種類(lèi)型: type2mac 和 type2mac / IP 信息。
深入研究 EVPN 消息類(lèi)型:類(lèi)型 2
最容易理解的 EVPN 消息是類(lèi)型 2 。如前所述,類(lèi)型 2 路由包含 MAC 和 MAC / IP 映射。首先,檢查工作中的 2 型入口。為此,您可以驗(yàn)證從 leaf01 到 server01 的基本連接。
首先,查看網(wǎng)橋表以確保交換機(jī)的 MAC 地址正確映射到服務(wù)器的正確端口。
獲取 Server01 MAC 地址:
cumulus@server01:~$ ip address show ... 5: uplink:mtu 9000 qdisc noqueue state UP group default qlen 1000 link/ether 44:38:39:00:00:32 brd ff:ff:ff:ff:ff:ff inet 10.1.10.101/24 scope global uplink valid_lft forever preferred_lft forever inet6 fe80::4638:39ff:fe00:32/64 scope link valid_lft forever preferred_lft forever
查看 Leaf01 的網(wǎng)橋表,確保 MAC 地址映射到您期望的端口。與 LLDP 交叉引用:
cumulus@server01:~$ ip address show ... 5: uplink:mtu 9000 qdisc noqueue state UP group default qlen 1000 link/ether 44:38:39:00:00:32 brd ff:ff:ff:ff:ff:ff inet 10.1.10.101/24 scope global uplink valid_lft forever preferred_lft forever inet6 fe80::4638:39ff:fe00:32/64 scope link valid_lft forever preferred_lft forever Look at Leaf01’s bridge table to make sure the MAC address is mapped to the port that you expect. Cross reference it with LLDP: cumulus@leaf01:mgmt:~$ net show bridge macs VLAN Master Interface MAC TunnelDest State Flags LastSeen -------- ------ --------- ----------------- ---------- --------- ------------------ -------- ... 10 bridge bond1 46:38:39:00:00:32 <1 sec ? ? cumulus@leaf01:mgmt:~$ net show lldp ? LocalPort? Speed? Mode??? RemoteHost?????? ???? RemotePort ---------? -----? ----------? -------------------? ----------------- eth0?? ??? 1G ? Mgmt??? ?? oob-mgmt-switch? ???? swp10 swp1 1G BondMember server01.simulation 44:38:39:00:00:32 swp2 1G BondMember server02 44:38:39:00:00:34 swp3 1G BondMember server03 44:38:39:00:00:36 swp49 1G BondMember leaf02 swp49 swp50 1G BondMember leaf02 swp50 swp51 1G Default spine01 swp1 swp52 1G Default spine02 swp1 swp53 1G Default spine03 swp1 swp54 1G Default spine04 swp1 Checking the ARP table, you can validate that the MAC and IP addresses are mapped correctly. cumulus@leaf01:mgmt:~$ net show neighbor Neighbor MAC Interface AF STATE ------------------------- ----------------- ------------- ---- --------- ... 10.1.10.101 44:38:39:00:00:32 vlan10 IPv4 REACHABLE ...
現(xiàn)在您已經(jīng)檢查了基礎(chǔ)知識(shí),開(kāi)始研究如何將其引入 EVPN 。驗(yàn)證配置的本地 VNI :
cumulus@leaf01:mgmt:~$ net show evpn vni VNI Type VxLAN IF # MACs # ARPs # Remote VTEPs Tenant VRF 20 L2 vni20 9 2 1 RED 30 L2 vni30 10 2 1 BLUE 10 L2 vni10 11 4 1 RED 4001 L3 vniRED 2 2 n/a RED 4002 L3 vniBLUE 1 1 n/a BLUE
因?yàn)槟?yàn)證了 server01 是按照網(wǎng)橋 mac 表映射到 vlan10 的,所以現(xiàn)在您可以檢查 IP 鄰居條目是否被拉入 EVPN 緩存。此緩存描述了與環(huán)境中其他 EVPN 揚(yáng)聲器交換的信息。
cumulus@leaf01:mgmt:~$ net show evpn arp-cache vni 10
Number of ARPs (local and remote) known for this VNI: 4
Flags: I=local-inactive, P=peer-active, X=peer-proxy
Neighbor Type Flags State MAC Remote ES/VTEP Seq #'s
...
10.1.10.101 local active 44:38:39:00:00:32 0/0
10.1.10.104 remote active 44:38:39:00:00:3e 10.0.1.34
這是你目前掌握的情況。 L2 連接工作正常,因?yàn)?L2 網(wǎng)橋表和 L3 鄰居表在 leaf01 上本地填充。接下來(lái),您驗(yàn)證了 mac 和 IP 信息是否通過(guò) EVPN ARP 緩存被正確地拉入 EVPN 。
使用這些信息,您可以檢查 RD 和 RT 映射,以便了解有關(guān)完整 VNI 廣告的更多信息。
RD 是一種路由識(shí)別器。它用于消除不同 vni 中 EVPN 路由的歧義,因?yàn)樗鼈兛赡芫哂邢嗤?MAC 或 IP 地址。
RTs 是路由目標(biāo)。它們用于描述路由的 VPN 成員身份,特別是哪些 VRF 正在導(dǎo)出和導(dǎo)入基礎(chǔ)結(jié)構(gòu)中的不同路由。
cumulus@leaf01:mgmt:~$ net show bgp l2vpn evpn vni Advertise Gateway Macip: Disabled Advertise SVI Macip: Disabled Advertise All VNI flag: Enabled BUM flooding: Head-end replication Number of L2 VNIs: 3 Number of L3 VNIs: 2 Flags: * - Kernel VNI Type RD Import RT Export RT Tenant VRF * 20 L2 10.10.10.1:2 65101:20 65101:20 RED * 30 L2 10.10.10.1:4 65101:30 65101:30 BLUE * 10 L2 10.10.10.1:3 65101:10 65101:10 RED * 4001 L3 10.10.10.1:5 65101:4001 65101:4001 RED * 4002 L3 10.10.10.1:6 65101:4002 65101:4002 BLUE
因?yàn)楸镜?l2vni 具有 rd10 . 255 . 255 . 11 : 2 ,所以 RD 本質(zhì)上是該節(jié)點(diǎn)交換的所有路由的標(biāo)識(shí)符。在結(jié)構(gòu)中的其他位置查找時(shí),您可以使用該信息查看 leaf01 所公布的所有路由。
cumulus@leaf01:mgmt:~$ net show bgp l2vpn evpn route rd 10.10.10.1:3 EVPN type-1 prefix: [1]:[ESI]:[EthTag]:[IPlen]:[VTEP-IP] EVPN type-2 prefix: [2]:[EthTag]:[MAClen]:[MAC] EVPN type-3 prefix: [3]:[EthTag]:[IPlen]:[OrigIP] EVPN type-4 prefix: [4]:[ESI]:[IPlen]:[OrigIP] EVPN type-5 prefix: [5]:[EthTag]:[IPlen]:[IP] BGP routing table entry for 10.10.10.1:3:UNK prefix Paths: (1 available, best #1) Advertised to non peer-group peers: leaf02(peerlink.4094) spine01(swp51) spine02(swp52) spine03(swp53) spine04(swp54) Route [2]:[0]:[48]:[44:38:39:00:00:32] VNI 10/4001 Local 10.0.1.12 from 0.0.0.0 (10.10.10.1) Origin IGP, weight 32768, valid, sourced, local, bestpath-from-AS Local, best (First path received) Extended Community: ET:8 RT:65101:10 RT:65101:4001 Rmac:44:38:39:be:ef:aa Last update: Tue May 18 11:41:45 2021 BGP routing table entry for 10.10.10.1:3:UNK prefix Paths: (1 available, best #1) Advertised to non peer-group peers: leaf02(peerlink.4094) spine01(swp51) spine02(swp52) spine03(swp53) spine04(swp54) Route [2]:[0]:[48]:[44:38:39:00:00:32]:[32]:[10.1.10.101] VNI 10/4001 Local 10.0.1.12 from 0.0.0.0 (10.10.10.1) Origin IGP, weight 32768, valid, sourced, local, bestpath-from-AS Local, best (First path received) Extended Community: ET:8 RT:65101:10 RT:65101:4001 Rmac:44:38:39:be:ef:aa Last update: Tue May 18 11:44:38 2021 .... Displayed 8 prefixes (8 paths) with this RD
這是一條重要的信息。類(lèi)型 2 路線可以采取兩種不同的形式。在本例中,您將分別發(fā)送以下兩種類(lèi)型:
類(lèi)型 2 MAC 路由: 它只包含一個(gè) 48 字節(jié)的 MAC 條目。這個(gè)條目直接從橋表中拉入,并且只包含 L2 信息。只要在網(wǎng)橋表中學(xué)習(xí)到一個(gè) MAC 地址,該 MAC 地址就會(huì)作為 2 型 MAC 路由拉入 EVPN 。
類(lèi)型 2 MAC / IP 路由: 這些條目從 ARP 表拉入 EVPN 。讀這個(gè)條目,第一部分包括 MAC 地址,第二部分是 IP 地址和掩碼的映射。 IP 地址的掩碼是 a / 32 。由于這是從 ARP 表中提取的,所以所有 EVPN 路由都作為主機(jī)路由被提取。
BGP routing table entry for 10.10.10.1:3:UNK prefix ... Route [2]:[0]:[48]:[44:38:39:00:00:32] VNI 10/4001 … BGP routing table entry for 10.10.10.1:3:UNK prefix ... Route [2]:[0]:[48]:[44:38:39:00:00:32]:[32]:[10.1.10.101] VNI 10/4001 ...
使用此信息,您可以驗(yàn)證 server01 的/ 32 主機(jī)路由在 leaf03 的路由表中是否為純 L3 路由,并指向 L3VNI 。
cumulus@leaf01:mgmt:~$ net show route vrf RED
show ip route vrf RED
======================
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR, f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
VRF RED:
K>* 0.0.0.0/0 [255/8192] unreachable (ICMP unreachable), 00:18:17
C * 10.1.10.0/24 [0/1024] is directly connected, vlan10-v0, 00:18:17
C>* 10.1.10.0/24 is directly connected, vlan10, 00:18:17
B>* 10.1.10.104/32 [20/0] via 10.0.1.34, vlan4001 onlink, weight 1, 00:18:05
C * 10.1.20.0/24 [0/1024] is directly connected, vlan20-v0, 00:18:17
C>* 10.1.20.0/24 is directly connected, vlan20, 00:18:17
B>* 10.1.30.0/24 [20/0] via 10.0.1.255, vlan4001 onlink, weight 1, 00:18:04
花點(diǎn)時(shí)間分析這個(gè)輸出。 Server01 的 Leaf01 中的 neighbor 條目一直作為/ 32 主機(jī)路由到達(dá) Leaf03 ,其中下一個(gè)躍點(diǎn)是 Leaf01 ,但通過(guò) L3VNI 。
要驗(yàn)證 L2 VNI 和 L3 VNI 之間的連接是否成功完成,請(qǐng)檢查 L3 VNI :
cumulus@leaf01:mgmt:~$ net show evpn vni 4001 VNI: 4001 Type: L3 Tenant VRF: RED Local Vtep Ip: 10.0.1.12 Vxlan-Intf: vniRED SVI-If: vlan4001 State: Up VNI Filter: none System MAC: 44:38:39:be:ef:aa Router MAC: 44:38:39:be:ef:aa L2 VNIs: 10 20
在這個(gè)輸出中, 4001 的 L3 VNI 映射到 VRF RED ,您在 net show evpn vni 10 的輸出中驗(yàn)證了它。使用這個(gè),您還可以看到 VNI 10 通過(guò) VLAN 4001 映射到 VRF 4001 。您看到的所有輸出都表明您有一個(gè)完整的 EVPN Type 2 VXLAN 基礎(chǔ)設(shè)施。
概括
給你。從頭到尾,您都看到了 EVPN 如何為基于類(lèi)型 2 的路由工作。具體來(lái)說(shuō),我討論了不同的 EVPN 消息類(lèi)型以及控制平面如何在 L2 擴(kuò)展環(huán)境中聚合。這不是巫術(shù),只是好技術(shù)。
關(guān)于作者
Rama Darbha 是 NVIDIA 網(wǎng)絡(luò)組的解決方案架構(gòu)主管,主要負(fù)責(zé)數(shù)據(jù)中心、 NetDevOps 和以太網(wǎng)交換。他熱衷于幫助客戶和合作伙伴通過(guò)開(kāi)放的網(wǎng)絡(luò)策略,充分利用他們的人工智能和計(jì)算工作負(fù)載。 RAMA 有一個(gè)活躍的 CCONP 2019 :: 19 和 CCIE × 22804 ,擁有杜克大學(xué)工程與管理碩士學(xué)位。
審核編輯:郭婷
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5288瀏覽量
169652 -
NVIDIA
+關(guān)注
關(guān)注
14文章
4793瀏覽量
102427
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論