0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

EVPN是如何工作及如何控制平面收敛

星星科技指导员 来源:NVIDIA 作者:Rama Darbha 2022-04-08 15:21 次阅读

EVPN 有魔力吗?阿瑟 C 克拉克说 ,任何足够先进的技术都无法与魔法区分开来。在这个前提下,从传统的第 2 层环境迁移到由 EVPN 驱动的 VXLAN ,有很多相同的 hocus-pocus 感觉。

为了帮助解开这个魔法的神秘面纱,我的目标是帮助 EVPN 的新用户理解 EVPN 是如何工作的以及控制平面是如何收敛的。在这篇文章中,我将重点介绍基本的第 2 层( L2 )构建块,然后逐步扩展到第 3 层( L3 )连接和控制平面。

我使用参考拓扑作为电缆计划和基础来建立你对交通流的理解。该基础设施尝试使用分布式网关揭开对称模式 EVPN 环境的神秘面纱。 所有配置都使用生产就绪自动化进行标准化,并在公开可用的 cumulus_ansible_modules GitLab repo 中链接。

接下来,在云中构建自己的 积云,并部署以下剧本:

~$ 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 消息类型

与任何好的协议一样, EVPN 有一个与对等方交换信息的强大过程: 消息类型。如果您已经知道 OSPF 和 LSA 消息,那么您可以认为 EVPN 消息类型类似。每种 EVPN 消息类型都可以携带关于 EVPN 业务流的不同类型的信息。

大约有五种不同的消息类型。在本文中,我将重点介绍目前最流行的两种类型: type2mac 和 type2mac / IP 信息。

深入研究 EVPN 消息类型:类型 2

最容易理解的 EVPN 消息是类型 2 。如前所述,类型 2 路由包含 MAC 和 MAC / IP 映射。首先,检查工作中的 2 型入口。为此,您可以验证从 leaf01 到 server01 的基本连接。

首先,查看网桥表以确保交换机的 MAC 地址正确映射到服务器的正确端口

获取 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 的网桥表,确保 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
 ... 

现在您已经检查了基础知识,开始研究如何将其引入 EVPN 。验证配置的本地 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 

因为您验证了 server01 是按照网桥 mac 表映射到 vlan10 的,所以现在您可以检查 IP 邻居条目是否被拉入 EVPN 缓存。此缓存描述了与环境中其他 EVPN 扬声器交换的信息。

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 连接工作正常,因为 L2 网桥表和 L3 邻居表在 leaf01 上本地填充。接下来,您验证了 mac 和 IP 信息是否通过 EVPN ARP 缓存被正确地拉入 EVPN 。

使用这些信息,您可以检查 RD 和 RT 映射,以便了解有关完整 VNI 广告的更多信息。

RD 是一种路由识别器。它用于消除不同 vni 中 EVPN 路由的歧义,因为它们可能具有相同的 MAC 或 IP 地址。

RTs 是路由目标。它们用于描述路由的 VPN 成员身份,特别是哪些 VRF 正在导出和导入基础结构中的不同路由。

 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 

因为本地 l2vni 具有 rd10 . 255 . 255 . 11 : 2 ,所以 RD 本质上是该节点交换的所有路由的标识符。在结构中的其他位置查找时,您可以使用该信息查看 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 

这是一条重要的信息。类型 2 路线可以采取两种不同的形式。在本例中,您将分别发送以下两种类型:

类型 2 MAC 路由: 它只包含一个 48 字节的 MAC 条目。这个条目直接从桥表中拉入,并且只包含 L2 信息。只要在网桥表中学习到一个 MAC 地址,该 MAC 地址就会作为 2 型 MAC 路由拉入 EVPN 。

类型 2 MAC / IP 路由: 这些条目从 ARP 表拉入 EVPN 。读这个条目,第一部分包括 MAC 地址,第二部分是 IP 地址和掩码的映射。 IP 地址的掩码是 a / 32 。由于这是从 ARP 表中提取的,所以所有 EVPN 路由都作为主机路由被提取。

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

使用此信息,您可以验证 server01 的/ 32 主机路由在 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 

花点时间分析这个输出。 Server01 的 Leaf01 中的 neighbor 条目一直作为/ 32 主机路由到达 Leaf03 ,其中下一个跃点是 Leaf01 ,但通过 L3VNI 。

要验证 L2 VNI 和 L3 VNI 之间的连接是否成功完成,请检查 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 

在这个输出中, 4001 的 L3 VNI 映射到 VRF RED ,您在 net show evpn vni 10 的输出中验证了它。使用这个,您还可以看到 VNI 10 通过 VLAN 4001 映射到 VRF 4001 。您看到的所有输出都表明您有一个完整的 EVPN Type 2 VXLAN 基础设施。

概括

给你。从头到尾,您都看到了 EVPN 如何为基于类型 2 的路由工作。具体来说,我讨论了不同的 EVPN 消息类型以及控制平面如何在 L2 扩展环境中聚合。这不是巫术,只是好技术。

关于作者

Rama Darbha 是 NVIDIA 网络组的解决方案架构主管,主要负责数据中心、 NetDevOps 和以太网交换。他热衷于帮助客户和合作伙伴通过开放的网络策略,充分利用他们的人工智能和计算工作负载。 RAMA 有一个活跃的 CCONP 2019 :: 19 和 CCIE × 22804 ,拥有杜克大学工程与管理硕士学位。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5374

    浏览量

    171048
  • NVIDIA
    +关注

    关注

    14

    文章

    4930

    浏览量

    102792
收藏 人收藏

    评论

    相关推荐

    传统VPN与基于云的VPN

    传统VPN与基于云的VPN在异地组网中的应用分析。文章详细探讨了远程组网技术在不同场景下的优缺点
    的头像 发表于 10-18 17:48 206次阅读

    IR700与SSG5防火墙如何建立VPN模板?

    ” 设置路由 IPSEC VPN 1建立tunulsNetwork-interface-list 点击NEW 2 IPSec配置2.1建立IPSecvpn第一阶段VPN
    发表于 07-26 08:12

    VPN如何配置Win7 PPTP(L2TP)客户端?

    VPN—如何配置Win7 PPTP(L2TP)客户端? 1)、点击任务栏“开始”→“控制面板”→“网络和Internet”→ “网络和共享中心”,点击更改网络设置中的“设置新的连接或网络”图标。 2
    发表于 07-26 08:02

    InRouter路由器与中心端OpenVPN服务器构建OpenVPN的方法

    ,使得OpenVPN成为中小型企业及个人的VPN首选产品。OpenVPN的大致工作原理就是在服务器端和客户端之间搭建一个独立于当前网络环境的加密通道,将服务器端和多个客户端组建成一个独
    发表于 07-26 07:26

    PPTP(L2TP)如何登陆IPSec VPN网关?

    设置PC上的PPTP VPNXP系统连接方式打开网络连接点击“创建一个新的连接” 点击下一步选择“连接到我的工作场所的网络” 选择虚拟专用网络连接 点击下一步: 公司名为自定义 点击下一步
    发表于 07-26 07:09

    IPSecVPN + PPTP VPN Demo搭建配置说明

    219.232.192.xxx防火墙自动将数据转发到CiscoRV042; 3、 CiscoRV042 为VPN 路由器 ,WAN (Internet)接口为 192.168.100.36,LAN接口为172.16.0.0/24
    发表于 07-26 06:01

    IR615如何实现VPN链路备份?

    目的:IR615的链路备份(WAN为主链路、Wi-Fi做STA为从链路),当VPN建好后,WAN口主链路无线网络为备用链路。设备固件版本:2.3.0.r5114。拓扑: 1. 配置IR设备wan口
    发表于 07-25 08:27

    IR915作为OpenVPN服务器实现客户端子网互联的过程

    网络拓扑 1.配置openvpn server端 导入相关的证书文件.(ca.cartca证书、 inhandserver.key服务器端私钥、inhandserver.crt服务器端公钥
    发表于 07-25 08:10

    基于OpenVPN技术实现InRouter与SINEMA Remote Connect建立连接

    • TeleService 非常有助于节省维护工作的差旅和人员成本,提高设备和工厂的可用性 • TeleService 基于OpenVPN技术实现 InRouter 与SINEMA Remote Connect 建立连接
    发表于 07-25 07:52

    OpenVPN下载、安装、配置及使用详解

    OpenVPN 2.2中是默认选中的)。一路Next(如果询问是否安装TAP-Win32驱动程序时,请选择「仍然继续」),就安装成功了。OpenVPN的配置OpenVPN的配置工作主要
    发表于 07-25 06:14

    为什么远程访问优于 VPN

    本文将探讨 VPN 和远程访问软件之间的主要区别,并重点说明 Splashtop 为什么是更好的选择。我们将从性能、用户体验、安全性、成本等方面进行探讨,以阐明为什么当前有很多组织正在从传统的 VPN 解决方案过渡到更先进的远程访问软件。
    的头像 发表于 06-27 16:09 364次阅读
    为什么远程访问优于 <b class='flag-5'>VPN</b>?

    什么是VPN?如何应对VPN安全风险

    VPN 没有“某些访问权限” ——你要么可以访问网络,要么没有。这使得为某些人提供访问权限比为其他人提供访问权限更具挑战性。例如,假设你希望第三方承包商在你的网络上工作,但只有其中的一部分。通过 VPN向第三方个人提供访问权限意
    的头像 发表于 01-02 15:02 4467次阅读

    SD-WAN、VPN与MPLS VPN专线的区别

    杭州国际网络专线公司称专线可以分物理专线和虚拟专线,VPN和SD-WAN属于虚拟专线,是通过在公网打通加密隧道的形式实现与公网数据隔离,而SD-WAN通过公网解决物理专线最后一公里,并用于独立
    的头像 发表于 12-25 10:32 936次阅读

    Saber中如何更好地提高仿真的收敛性(一)

    在仿真过程中,由于仿真模型的不连续性,或者模型没有适当地表征/参数化,或者当求解器无法求解控制模型行为的方程时,可能就会出现仿真的收敛问题。
    的头像 发表于 12-05 14:43 1526次阅读
    Saber中如何更好地提高仿真的<b class='flag-5'>收敛</b>性(一)

    20张图带你详解EVPN

    为了解决上述问题,人们在VXLAN中引入了EVPN(Ethernet VPN)作为VXLAN的控制平面,如图1-1所示(VXLAN是一种NVO协议)。
    的头像 发表于 12-01 16:28 987次阅读
    20张图带你详解<b class='flag-5'>EVPN</b>