CN118337561A - 在多宿主以太网段部署中缩短融合时间和/或避免脑裂 - Google Patents
在多宿主以太网段部署中缩短融合时间和/或避免脑裂 Download PDFInfo
- Publication number
- CN118337561A CN118337561A CN202311781773.3A CN202311781773A CN118337561A CN 118337561 A CN118337561 A CN 118337561A CN 202311781773 A CN202311781773 A CN 202311781773A CN 118337561 A CN118337561 A CN 118337561A
- Authority
- CN
- China
- Prior art keywords
- evpn
- routing information
- active
- designated
- mhes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 210000004556 brain Anatomy 0.000 title abstract description 13
- 238000005336 cracking Methods 0.000 title abstract description 5
- 230000004927 fusion Effects 0.000 title abstract description 4
- 238000002955 isolation Methods 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims description 116
- 230000008569 process Effects 0.000 claims description 52
- 230000004044 response Effects 0.000 claims description 43
- 230000007704 transition Effects 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 7
- 102100023795 Elafin Human genes 0.000 claims description 6
- 238000002330 electrospray ionisation mass spectrometry Methods 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 15
- 238000001514 detection method Methods 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 15
- 238000007726 management method Methods 0.000 description 14
- 208000036758 Postinfectious cerebellitis Diseases 0.000 description 11
- 241000465502 Tobacco latent virus Species 0.000 description 11
- 230000009471 action Effects 0.000 description 11
- 230000002776 aggregation Effects 0.000 description 8
- 238000004220 aggregation Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000005641 tunneling Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 238000009432 framing Methods 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 101150049389 tor2 gene Proteins 0.000 description 3
- 102100022002 CD59 glycoprotein Human genes 0.000 description 2
- 101710176679 CD59 glycoprotein Proteins 0.000 description 2
- 101150106148 TOR1 gene Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101100289995 Caenorhabditis elegans mac-1 gene Proteins 0.000 description 1
- 208000010378 Pulmonary Embolism Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/76—Routing in software-defined topologies, e.g. routing between virtual machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例涉及在多宿主以太网段部署中缩短融合时间和/或避免脑裂。在具有多宿主以太网段(MHES)的以太网虚拟专用网(EVPN)中,避免了潜在的核心隔离问题,同时也避免了潜在的“脑裂”问题。
Description
技术领域
本说明书涉及网络上的通信。具体地,本说明书涉及避免(例如,L3/多播)业务丢失、避免不必要的ARP/ND、和/或避免以太网虚拟专用网(EVPN)(诸如具有虚拟可扩展局域网(VXLAN)封装的EVPN)中的不必要洪泛。
背景技术
§1使用覆盖层的网络虚拟化
虚拟化本质上是对物理资源的抽象,以支持多租户,从而支持完全隔离和分布式的工作负载环境。可以对不同的计算资源(如操作系统、存储设备或网络组件)进行虚拟化,以提供更好的可扩展性和灵活性。下面介绍服务器虚拟化和网络虚拟化。
网络虚拟化通过复制网络属性(如路由、交换、防火墙/微分段、负载均衡等)为网络资源提供软件抽象,从而允许使用这些属性创建虚拟网络。使用相同的物理网络资源,可以创建多个虚拟网络来支持多个租户。网络虚拟化提供了许多好处,例如,简化配置的自动化、支持动态变化和充分利用已部署资源的灵活性、通过完全隔离网段实现的安全性以及对虚拟和网络基础设施的集中管理。
虚拟LAN(VLAN)传统上通过将LAN网段抽象为网络分区来支持多租户。每个VLAN对应唯一的IP子网(单独的广播域)。在传统数据中心设计中,VLAN在逻辑上等同于租户或服务。例如,容纳10个租户相当于配置10个不同的VLAN。物理网络基础设施上的VLAN中继线连接服务器,以允许驻留在虚拟机或容器上的应用通信。
随着应用需求的增加,混合(物理和虚拟)环境中的可扩展性、灵活性和配置简便性已成为关键的数据中心要求。随着VLAN的使用,网络资源成为实现这些要求的瓶颈。
覆盖网络通过在物理底层网络上创建逻辑网络来虚拟化底层物理基础设施。它将所提供的服务与底层传输解耦合,并消除了中转设备维护状态的必要性,这会提高可伸缩性。状态维护现在仅限于负责虚拟隧道封装/解封装的覆盖端点(例如,服务器监管程序或架顶式(TOR))。中转设备可以具有较小的转发表,因为它们使用仅包含底层地址的外部封装或传输报头来转发业务。这种解耦合提供了更快的虚拟网络调配的额外优势,而无需配置遍历的物理设备。网络覆盖层的示例类型在下面的§1.1中描述。
底层基础设施对于使用覆盖层提供的虚拟隧道来彼此通信的应用服务是透明的。底层通过简单地在计算资源之间传输封装的租户数据来向覆盖层提供服务。换言之,底层负责隧道端点可达性,而虚拟隧道管理的复杂性由覆盖层来处理。如果底层的结构考虑了可扩展性和回弹性,则它可以提供最佳业务路径,覆盖层可以利用这些路径进行更好的业务管理和分配。网络底层的示例类型在下面的§1.2中描述。
§1.1网络覆盖层的类型
基于Clos架构的数据中心交换矩阵(fabric)被定义为类似于交换矩阵的网络设备之间紧密编织的互连矩阵。它允许具有等距离端点和非阻塞核心的扁平化架构,以支持低延迟和高带宽,用于“东西”和“南北”两者业务。数据中心交换矩阵是网络底层的热门选择。这些可以大致归类为:(A)以太网交换矩阵(例如,来自加利福尼亚州桑尼维尔的瞻博网络的QFabric、Virtual Chassis Fabric(VCF)和Junos Fusion);(B)MPLS交换矩阵(例如,使用如LDP、RSVP或BGP-LU的MPLS信令协议);(C)IP交换矩阵;(D)iBGP;以及(E)eBGP。
§1.2网络底层的类型
覆盖网络通过创建逻辑/虚拟隧道在租户应用/服务之间创建通信信道。它们可以支持服务之间的L2(L2覆盖层-扩展L2网络,以便VM可以共享相同的IP子网)和L3(L3覆盖层-共享L3网络)传输,同时对底层网络基础设施隐藏相同的传输。
隧道封装包括租户ID,它是覆盖网络的函数并充当用于区分隧道上携带的不同业务流的解复用器,每个流代表不同的服务。每个通信信道包括用于交换租户应用拓扑信息(例如,MAC地址/IP路由)的控制平面和用于在覆盖隧道端点之间通过虚拟隧道封装和转发业务的数据平面封装。控制平面的示例包括例如OVSDB和EVPN。数据平面封装的示例包括例如MPLSoMPLS、MPLSoGRE、MPLSoUDP和VXLAN
§2采用VXLAN数据平面封装的EVPN
以太网VPN(EVPN)使服务提供方能够使用层2虚拟网桥连接分散的客户站点组。虚拟可扩展LAN(VXLAN)允许服务提供方在中间的层3网络上延伸层2连接,同时提供类似于VLAN的网络分段,但没有传统VLAN的伸缩限制。
采用VXLAN封装的EVPN以云服务器提供方所需的规模处理层2连接,并且可用于取代生成树协议(STP)等限制协议,从而释放层3网络以使用更鲁棒的路由协议。
尽管本领域技术人员可以理解,但为了方便读者,下面将介绍诸如EVPN、VXLAN以及EVPN和VXLAN的集成的虚拟专用网络(VPN)。
§2.1虚拟专用网(VPN)
EVPN是一种基于标准的技术(参见A.Sajassi,Ed.,“BGP MPLS-Based EthernetVPN”(基于BGP MPLS的以太网VPN),请求注解:7432(互联网工程任务组,2015年2月),通过引用并入本文。)它通过互联网协议(IP)或互联网协议/多协议标签交换(IP/MPLS)主干网络在不同的层2域之间提供虚拟多点桥接连接。在本示例中,EVPN可以被认为是“覆盖网络”,而IP/MPLS可以被认为是“底层网络”。与诸如IP VPN和虚拟专用LAN服务(VPLS)之类的其他VPN技术一样,EVPN实例配置在提供方边缘(PE)路由器上,以维护客户之间的逻辑服务分离。PE路由器连接到客户边缘(CE)设备,其可以是路由器、交换机、主机等。然后,PE路由器使用多协议边界网关协议(MP-BGP)交换可达性信息。封装的业务在PE路由器之间转发。EVPN架构与其他VPN技术有一些共同之处。这使得将EVPN无缝引入现有服务环境并将其集成到现有服务环境变为更加容易。
图1示出了其中EVPN经由客户边缘设备CE 1和CE 2向客户提供传输服务的传统网络拓扑100的示例。该示例EVPN包括提供方边缘设备PE 1、PE 2和PE 3以及边界网关协议(BGP)路由反射器。控制平面获知可以在提供方边缘设备(PE)之间的EVPN内发生。数据平面获知可以在客户边缘设备(CE)和提供方边缘设备(PE)之间进行。CE 1被认为是经由PE 1和PE 2到EVPN的多宿主。这两条链路可以是链路聚合组(LAG)的一部分,可以被认为是共同的以太网段(ES),由以太网段标识符(ESI)00:11:22:33:44:55:66:77:88:99标识。提供方边缘设备PE 1、PE 2和PE 3属于同一EVPN实例(EVI)。
每当终端站(例如裸机服务器(BMS))需要层2连接时,EVPN通常用作层2覆盖解决方案,以通过IP底层为虚拟网络内的端点提供层2连接。否则,使用层3路由,例如通过虚拟路由和转发(VRF)表。有利的是,EVPN技术提供可按需扩展的多租户、灵活的服务,通常将不同物理数据中心的计算资源用于单一服务(层2扩展)。
EVPN的MP-BGP控制平面使服务提供方能够动态地将活动的虚拟机(VM)从一个数据中心移动到另一个数据中心(也称为“虚拟机(VM)运动”)。在将VM移动到目的地服务器或“监管程序”(hypervisor)(即用于在(多个)计算机上运行和管理VM的程序)后,它会传输免费地址解析协议(ARP),该协议更新目的地数据中心的PE设备的层2转发表。然后,PE设备向所有远程PE设备发送MAC路由更新(例如,经由类型2通告),所有远程PE设备继而更新它们的转发表。EVPN追踪VM的移动,这也称为MAC移动性。
EVPN还具有检测和停止MAC摆动的机制,并防止在全活动多宿主拓扑中广播、未知单播和多播(BUM)业务的循环。
EVPN技术类似于层3多协议标签交换(MPLS)VPN,包括使用IP/MPLS核心来路由MAC地址的概念。EVPN具有优势,例如能够拥有活动多宿主边缘设备、别名、快速融合、跨双活动链路的业务负载均衡、MAC地址移动性和多租户。此外,EVPN可以使用诸如多宿主、水平分割、本地链路偏置和采用VXLAN封装(或隧道)的EVPN之类的技术。下面介绍这些技术中的每一种。
多宿主用于在接入链路或CE设备所连接的PE路由设备之一发生故障时提供冗余。在任一情况下,业务都使用一个或多个剩余的活动链路从CE设备流向PE路由器。对于另一个方向的业务,远程PE路由器更新其转发表,以将业务发送到连接到多宿主以太网段(ES)的(多个)其余活动PE路由器。EVPN提供了一种快速收敛机制,它缩短了业务恢复时间,使得进行此调整所需的时间与PE路由器获知的媒体访问控制(MAC)地址的数量无关。“全活动”多宿主使CE设备能够连接到两个或更多个PE路由器,从而可以使用设备之间的所有链路来转发业务。(例如,回想图1中的CE 1、PE 1和PE 2。)这种多宿主使CE设备能够对多个PE路由器的业务进行负载均衡。此外,多宿主使远程PE路由器能够跨核心网络负载均衡到多宿主PE路由器的业务。数据中心之间业务的这种负载均衡称为混叠,这会导致不同的信号变为无法区分(即,它们成为彼此的“别名”)。
水平分割可防止网络中的BUM业务循环。水平分割的基本原则很简单--有关特定分组的路由的信息永远不会在接收该分组的方向上发回。
本地偏置通过使用本地链路转发从具有链路聚合组(LAG)的虚拟机箱或虚拟机箱交换矩阵(VCF)出去的单播业务来节省带宽,链路聚合组(LAG)捆绑由同一虚拟机箱或VCF中不同成员交换机上的成员链路组成。本地链路是接收业务的成员交换机上LAG捆绑包中的成员链路。
采用VXLAN封装的EVPN用于层2域中的虚拟机和架顶式(TOR)交换机之间的层2连接。某些路由器可用作层2或层3VXLAN网关。
§2.2虚拟可扩展局域网(VXLAN)
VXLAN可用于提供将层2网络地址空间从约4,000扩展到1,600万的“覆盖”方案,从而在很大程度上解决了在基于VLAN的环境中出现的扩展问题。网络覆盖层是通过封装业务并在物理网络上通过隧道传输业务来创建的。可以使用多种不同的隧道协议来创建网络覆盖层。目前,数据中心环境中最常用的协议是VXLAN。VXLAN隧道协议封装层3UDP分组中的层2以太网帧(例如,参见图2A)。这种封装使服务提供方能够创建可以跨越物理层3网络的虚拟层2子网或网段。
在VXLAN覆盖网络中,VXLAN网络标识符(VNI)唯一地标识每个层2子网或网段。VNI对业务进行分段的方式与IEEE 802.1QVLAN ID对业务进行分段的方式相同。与使用VLAN的情况一样,同一个VNI上的虚拟机可以直接相互通信,而不同VNI上的虚拟机需要路由器才能相互通信。
执行封装和解封装的实体称为VXLAN隧道端点(VTEP)。在物理网络中,充当层2或层3VXLAN网关的设备可以对分组进行封装和解封装。这种类型的VTEP称为“硬件VTEP”。在虚拟网络中,VTEP可以驻留在监管程序主机中,例如基于内核的虚拟机(KVM)主机。这种类型的VTEP称为“软件VTEP”。
每个VTEP具有两个接口。两个接口中的第一个是面向主机中的虚拟机并在本地LAN网段上的VM之间提供通信的交换接口。两个接口中的第二是面向层3网络的IP接口。
每个VTEP具有唯一的IP地址,用于在VTEP之间路由UDP分组。例如,当第一VTEP(VTEP1)从寻址到VM3的VM1接收到以太网帧时(回想,例如,图2A),它使用VNI和目的地MAC在其转发表中查找它将向哪个VTEP(在本示例中为第二VTEP(VTEP2))发送分组。然后,它将包含VNI的VXLAN报头(例如,图2B)添加到以太网帧,将该帧封装在层3UDP分组中,并通过层3网络将该分组路由到VTEP2。VTEP2解封装原始以太网帧并将其转发到VM3。VM1和VM3无法检测到它们之间的VXLAN隧道和层3网络。也就是说,VXLAN隧道充当一个“透明”的LAN网段。为了便于比较,图2C显示了MPLS网络中的分组报头。
§2.3EVPN-VXLAN集成概述
VXLAN定义了一种隧道方案,将层2网络覆盖在层3网络之上。此隧道方案允许最佳转发以太网帧,支持单播和多播业务的多路径,并使用UDP/IP封装进行隧道,并且主要用于数据中心内站点连接。
参考图3的示例网络拓扑300,EVPN的一个特性是PE路由器(PE1-PE4)之间的MAC地址获知发生在控制平面中。响应于本地PE路由器从CE设备检测到新的MAC地址,其向所有远程PE路由器通告(例如,使用MP BGP)该地址。此方法不同于现有的层2VPN解决方案(诸如VPLS),后者通过泛洪数据平面中的未知单播来获知。此控制平面MAC获知实现了EVPN提供的许多优势。例如,由于MAC获知是在控制平面处理的,因此EVPN可以灵活地支持PE路由器之间的不同数据平面封装技术。这种灵活性是有益的,因为并非所有主干网络都运行MPLS,尤其是在企业网络中。
EVPN解决了网络运营商在建设数据中心以提供云和虚拟化服务时面临的许多挑战。EVPN的主要应用是数据中心互联(DCI),它指的是扩展不同数据中心之间的层2连接的能力,这些数据中心被部署以提高向终端用户传送应用业务和进行灾难恢复的性能。虽然有各种DCI技术可用,但EVPN与其他MPLS技术相比具有优势(例如活动/活动冗余、别名和大规模MAC撤销)。因此,将VXLAN与EVPN集成以提供DCI是有用的。
如图3所示,EVPN用作连接数据中心站点1的VXLAN和数据中心站点2的另一个VXLAN的互连。数据中心站点1包括架顶式(TOR)1,与由VLAN1、MAC 1和VLAN2、MAC 2标识的服务器耦合。类似地,数据中心站点2包括TOR 2,与由VLAN1、MAC 11和VLAN2、MAC 12标识的服务器耦合。EVPN的提供方边缘设备PE1和PE2充当EVPN和数据中心站点1的VXLAN之间的网关,而EVPN的PE3和PE4用作数据中心站点2处的EVPN和VXLAN之间的网关。通过PE2和PE4之间的EVPN隧道扩展TOR1和PE2之间以及TOR2和PE4之间的第一VXLAN隧道。类似地,TOR 1和PE1之间以及TOR 2和PE3之间的第二VXLAN隧道由PE1和PE3之间的EVPN隧道扩展。连接到MPLS或IP核心的每个VXLAN运行内部网关协议(IGP)控制平面的独立实例。每个PE路由器都参与其VXLAN的IGP控制平面实例。在本示例中,每个客户是数据中心,因此每个客户具有自己的VXLAN底层虚拟路由器。
每个PE节点可以终止VXLAN数据平面封装,其中VXLAN网络标识符(VNI)被映射到桥域或VLAN。PE路由器对从VXLAN接收的业务执行数据平面获知。
每个PE节点实现EVPN以将通过VXLAN隧道获知的客户端MAC地址分发到BGP中。当通过MPLS核心发送分组时,每个PE节点用MPLS封装VXLAN或以太网帧,当通过VXLAN网络发送分组时,每个PE节点用VXLAN隧道报头封装。
§2.3.1EVPN类型2路由
如上所述,EVPN的一个特性是PE路由器之间的MAC地址获知发生在控制平面中。例如,类型2路由可用于通告可能与MAC地址相关联的MAC地址和IP地址。首先,PE从直接连接到它的任何CE获知MAC地址(例如,经由正常的数据平面获知机制,尽管RFC 7432还允许经由PE和CE之间的控制平面交互来获知MAC地址)。
图4示出了根据类型2路由格式的数据结构400。在示例数据结构400中,提供了路由区分符字段410、ESI字段420、以太网标签ID字段430、MAC地址长度字段440和MAC地址字段450。IP地址字段470是可选的,并且默认情况下被设置为零。如果PE知道与给定MAC地址相关联的IP地址,则可以填充该字段470。这在代理ARP场景中使用,在该场景中,远程PE将响应从连接到该PE的CE接收的ARP请求。MPLS标签1字段480是与由PE通告的MAC地址相关联的下行分配标签。此标签用于向CE转发分组。
RFC 7432规定了四种标签分配机制。在MAC-VRF分配机制中,单个EVPN标签用于给定MAC-VRF中的所有MAC地址。在MAC-VRF,以太网标签分配机制中,每个<MAC-VRF,以太网标签>组合使用唯一的EVPN标签。在ESI,以太网标签分配机制中,每个<ESI,以太网标签>组合使用唯一的EVPN标签。最后,在MAC分配机制中,每个MAC地址使用唯一的EVPN标签。
§3当启用核心隔离时的核心隔离和潜在问题
参考图5(其对应于文档的图1,“Understanding When to Disable EVPN-VXLANCore Isolation”(了解何时禁用EVPN-VXLAN核心隔离)(瞻博网络,2022年9月22日)),从https://www.juniper.net/documentation/us/en/software/junos/evpn-vxlan/topics/concept/evpn-vxlan-core-isolation-disabling.html下载),默认情况下,EVPN网络中的主干和叶设备实现核心隔离特征。如果其中一个设备丢失其所有EVPN BGP对等会话,则核心隔离特征与链路聚合控制协议(LACP)配合使用时,会自动关闭设备上的所有层2以太网段标识符(ESI)链路聚合组(LAG)接口。在本申请中,对丢失其所有EVPN BGP对等会话的设备的检测可以被称为“核心隔离检测”。在本申请中,关闭设备上的所有L2 MHES(例如,ESI-LAG)接口的动作可以被称为“核心隔离动作”。
在某些情况下,核心隔离特征会产生有利的结果。然而,在其他情况下,核心隔离特征会产生不希望看到的结果。例如,假设启用了核心隔离,请考虑图5的拓扑。图5显示了其中两台交换机(例如,可从加利福尼亚州桑尼维尔的瞻博网络获取的QFX10000交换机)用作形成EVPN-VXLAN核心的主干设备的拓扑。在此拓扑中,充当叶设备的六台交换机(例如,加利福尼亚州桑尼维尔的瞻博网络的QFX5110交换机)以活动-活动模式多宿到主干设备,然后,每台服务器通过ESI-LAG接口多宿到两个叶设备。如果叶1和两个主干设备之间的链路断开(如图5中的虚线所示),在链路上建立的BGP对等会话也会断开。在默认情况下启用核心隔离(检测和动作)特征后,LACP会将叶1上面向服务器的接口设置为待机模式(也由图5中的虚线指示),从而阻止来自服务器1的所有业务。在这种情况下,核心隔离特征的默认实现提供了以下好处。首先,当从叶1到两个主干设备的链路断开时,服务器1继续将业务转发到叶1是没有意义的。其次,从服务器1到叶2的业务被转移到叶2,直到叶1和两个主干设备之间的链路再次打开。
图6A和图6B(其对应于该文档的图2,“Understanding When to Disable EVPN-VXLAN Core Isolation”(理解何时禁用EVPN-VXLAN核心隔离》(瞻博网络,2022年9月22日),从https://www.juniper.net/documentation/us/en/software/junos/evpn-vxlan/topics/concept/evpn-vxlan-core-isolation-disabling.html下载)示出了应当禁用核心隔离的示例。图6A和图6B所示的拓扑正在从多机箱链路聚合组(MC-LAG)和虚拟机箱(VirtualChassis)环境迁移到EVPN-VXLAN环境。在此拓扑中,唯一的EVPN-VXLAN组件是两台充当主干设备的交换机(例如,来自加利福尼亚州桑尼维尔的瞻博网络公司的QFX10000交换机)。充当叶(MC-LAG和虚拟机箱)设备的交换机(例如,来自加利福尼亚州桑尼维尔的瞻博网络的QFX5110交换机)通过到主干设备的ESI-LAG接口以活动-活动模式进行多宿主。
如果主干0和主干1之间的链路断开,最后建立的BGP对等会话也会断开(如图6A和6B中的虚线所示)。在默认情况下启用核心隔离特征的情况下,LACP会将主干0和1上面向叶的接口设置为待机模式,这会导致两个叶设备之间的数据业务被丢弃。在叶设备级别实施核心隔离特征后,数据中心内的业务将基本上停止,这是不希望出现的结果。
在这种情况下,可以在每个主干设备上的[编辑协议evpn]配置层级结构级别处配置无核心隔离,以禁用核心隔离特征。(参见图6B中的配置后图示。)在此特定示例中,此语句仅在全局级别可用,因此它适用于所有EVPN路由实例或没有多个路由实例的设备上的默认交换机实例。
作为另一个示例,考虑图7的拓扑。在图7中,当(a)面向核心的接口发生故障,(b)面向核心的线路卡发生故障和/或(c)重启设备时,叶1和叶2可以彼此隔离。仍然参考图7,当叶1和叶2之间的BGP会话关闭时,就会关闭“附接电路”(称为“AC”)。此行为在ESI-LAG中并不理想,因为只有两个叶设备,而且两个叶设备上的AC都断开了。这会导致(多个)ESI-LAG后面的主机完全失去连接。
鉴于上述问题,类似于图6A和6B中的示例,一种当前的解决方案是禁用ESI-LAG部署中的核心隔离特征。然而,正如下面的§4中所讨论的,当前的解决方案有其自身的(多个)潜在问题。
§4禁用核心隔离时的潜在问题
幸运的是,通过禁用核心隔离特征,可以避免上述§3中讨论的(多个)情况。然而,不幸的是,禁用核心隔离可能会导致其他潜在问题。例如,仍然参考图7,如果核心隔离特征被禁用,则当BGP会话关闭但两个叶设备(叶1和叶2)都开启时,每个叶设备上的AC保持开启(因为禁用了核心隔离)。这可能导致所谓的“脑裂(split brain)”的情形。更具体地,在这种状态下,L3业务可能失败,因为一个叶设备发送的(多个)ARP请求可能会导致在另一个叶设备上接收到对应的(多个)ARP应答(因为在CE设备上,LAG的两个成员链路都处于开启)。
此外,当开启ESI-LAG物理链路时(例如,当EVPN会话在关闭之后开启时),没有接收到(多个)ARP应答的叶设备可能没有完全准备好转发业务。在规模上,当AC开启时,路由可能仍在编程(在叶设备的分组转发引擎(PFE)中),从而导致短暂的业务丢失。如果AC被开启(即,成员接口被开启或捆绑在聚合以太网(AE)接口中)早于对所有路由(例如,MAC路由、ARP/ND-Dest路由、多播路由等)进行编程所需的时间,则主机将对到新链路的业务进行负载均衡。此业务要么泛洪(在L2分组的情况下),要么触发代价高昂的re-ARP(在L3的情况下为多播分组),在这种情况下,L3/多播业务可能会被丢弃。这是一种奇怪的情况,在这种情况下,链路打开可能会导致网络中的业务丢失。
鉴于前述情况,避免核心隔离的潜在问题将是有益的,同时也可避免潜在的“脑裂”问题。
发明内容
在与本说明书一致的示例实施例中,通过提供在包括第一EVPN提供方边缘(PE)设备和第二EVPN PE设备的EVPN中使用的计算机实现的方法来解决与启用或禁用核心隔离相关联的潜在问题,其中第一和第二EVPN PE设备中的每一个被配置为具有至少一个对等会话以直接或间接地彼此共享路由信息和/或与EVPN中的任何其他EVPN PE设备共享路由信息,并且其中第一EVPN PE设备具有第一附接电路(AC),并且第二EVPN对等设备具有到具有以太网段标识符ESI的第一多宿以太网段(MHES)的第二AC。该计算机实现的方法包括:(a)将第一AC定义为“指定活动的(designated active)”,而将第二AC定义为非“指定活动的”,使得仅第一AC针对MHES是“指定活动的”;(b)配置第一EVPN PE设备,使得响应于确定其至少一个对等会话中的每一个都关闭,从而第一EVPN PE设备不能与EVPN中的任何其他EVPNPE设备共享路由信息(在本申请中也称为“核心隔离检测”),第一AC被允许保持开启(UP),因为第一AC被“指定活动的”;(c)配置第二EVPN PE设备,使得响应于核心隔离检测,使第二AC进入待机(STANDBY)或关闭(DOWN)状态,因为第二AC为非“指定活动的”;以及(d)响应于确定第二EVPN对等设备的至少一个对等会话的一些或全部从关闭转换到开启,由此第二EVPN PE设备在不能与EVPN的任何其他EVPN PE设备共享路由信息之后变为能够与EVPN中的任何其他EVPN PE设备共享路由信息,(1)确定第二EVPN PE设备中的路由信息是否在预定程度上与第一EVPN PE设备中的路由信息匹配,以及(2)响应于确定第二EVPN PE设备中的路由信息在预定程度上与第一EVPN PE设备中的路由信息匹配,使非“指定活动的”第二AC开启,否则响应于确定第二EVPN PE设备中的路由信息在预定程度上与第一EVPN PE设备中的路由信息不匹配,使非“指定活动的”第二AC关闭或待机。
还描述了用于执行该方法的设备(例如路由器)。
还描述了一种存储用于使至少一个处理器执行该方法的处理器可执行指令的非瞬态计算机可读介质。
附图说明
图1是用于提供以太网虚拟专用网(EVPN)概述的示例网络拓扑。
图2A-2C示出了可用于封装以太网帧以及MPLS报头的示例EVPN-VXLAN分组报头格式。
图3是用于提供EVPN-VXLAN集成概述的示例网络拓扑。
图4示出了与类型2路由格式一致的示例数据结构。
图5是示例拓扑,其示出了核心隔离的好处和/或可能由核心隔离引起的问题。
图6A和6B示出了其中应禁用核心隔离的示例拓扑。
图7示出了另一个示例拓扑,其示出了核心隔离的好处和/或可能由核心隔离引起的问题。
图8A示出了用于示出与本说明书一致的示例实施例的第一通用网络拓扑。图8B示出了从第一通用拓扑扩展的第二通用网络拓扑。
图9是与本说明书一致的第一示例方法的流程图。
图10A是用于确定一个EVPN PE设备中的路由信息是否至少在预定程度上与另一个EVNP PE设备中的路由信息匹配的示例数据结构。图10B和10C分别示出了用于IPv4和IPv6的VXLAN ping的已知TLV。
图11是可以包括在图10A的数据结构中的示例TLV数据结构。
图12是可以包括在图10A的数据结构中的示例TLV数据结构。
图13示出了在诸如图8A和8B中的通信网络中可以用作经由通信链路耦合的节点的两个数据转发系统。
图14是可用于诸如图8A和8B中的那些通信网络的路由器的框图。
图15是其中ASIC可以分布在分组转发组件中以划分分组转发责任的示例架构。
图16A和16B是图15的示例架构的操作的示例。
图17是用于在示例路由器中提供分组转发的示例方法的流程图。
图18是可以执行所描述的一个或多个过程和/或存储由这些过程使用和/或生成的信息的示例性机器的框图。
具体实施方式
本公开可以涉及用于允许禁用核心隔离动作,同时还避免“脑裂”情况的新颖方法、装置、消息格式和/或数据结构。下面的描述是为了使本领域技术人员能够制造和使用所描述的实施例而提出的,并且是在特定应用及其要求的上下文中提供的。因此,以下对示例实施例的描述提供了说明和描述,但并不旨在是穷尽的或将本公开限于所公开的确切形式。对所公开的实施例的各种修改对于本领域的技术人员将是显而易见的,并且下面阐述的一般原理可以应用于其他实施例和应用。例如,尽管可以参考流程图来描述一系列动作,但是当一个动作的执行不依赖于另一个动作的完成时,动作的顺序在其他实现中可能不同。此外,非依赖动作可以并行执行。除非明确描述,否则说明书中使用的任何元素、行为或指令都不应被解释为对本说明书至关重要或必要的。此外,如本文所使用的,冠词“一”旨在包括一个或多个项目。如果旨在仅一个项目,则使用术语“一个”或类似语言。因此,本公开不旨在限于所示实施例,并且发明人将他们的发明视为所描述的任何可专利的主题。
§1首字母缩写和术语
ES:以太网段
ESI:以太网段标识符
MHES:多宿主以太网段
NVE:网络虚拟化边缘
OAM:运营、行政和管理
VM:虚拟机
VNI:VXLAN网络标识符(或VXLAN网段ID)
VXLAN:虚拟eXtensible局域网。
“核心隔离检测”:检测到设备丢失了其所有EVPN路由信息共享(例如,BGP)对等会话。(例如,参见图8A中第一EVPN PE设备的XX。)
“核心隔离动作”:断开检测到核心隔离的设备上的所有L2MHES附接电路(AC)的动作。
“终端系统”:可以是租户VM、主机、网桥等-其数据预计将通过覆盖网段的系统。
“回声请求”:在整个文档中,回声请求分组预期由发起方覆盖端点发送并发往覆盖终止端点。
“回声应答”:在整个文档中,回声应答分组预期由终止覆盖端点发送,并且目的地为覆盖始发端点。
“始发端点”:覆盖网段的首端或覆盖隧道的起点。
“共享路由信息”是指例如经由BGP更新来发送路由信息和/或接收路由信息。
终止端点:覆盖网段的尾端或覆盖隧道的终止端点。
§2示例网络拓扑环境
图8A示出了用于示出与本说明书一致的示例实施例的第一通用网络拓扑800。如图所示,EVPN 810包括第一EVPN提供方边缘(PE)设备815a和第二EVPN PE设备815b。在正常操作条件下,这些EVPN PE设备815a和815b可以共享路由信息。例如,EVPN PE设备815a和815b可以是iBGP对等体(peer),并且经由BGP会话直接共享路由信息。备选地或附加地,EVPN PE设备815a和815b可以经由路由反射器(未示出)间接地彼此共享路由信息。第一网络设备820经由第一附接电路(AC)825a和第二AC 825b多宿到EVPN 810。第一和第二AC825a和825b属于给定的ESI-LAG 830。注意,第一和第二AC 825a和825b中的每一个可以包括一个或多个物理链路。还要注意,第一和第二AC 825a和825b中的一个(且仅一个)被定义(例如,通过手动配置、自动选择等)为“指定活动的”,而另一个(些)AC为非“指定活动的”。
在一些示例实现中,EVPN 810可以是VXLAN,并且第一和第二EVPN PE设备815a和815b可以是VXLAN隧道的端点(也称为“VTEP”或“虚拟隧道端点”)。
在一些示例实现中,第一和第二EVPN PE设备815a和815b是Clos网络的叶节点,并且第一网络设备820是架顶式(TOR)设备。(回想例如图7。)在一些备选示例实现中,第一和第二EVPN PE设备815a和815b是Clos网络的主干节点,并且第一网络设备820是Clos网络中的叶节点。(回想例如,图6A和6B。)
在一些示例实现中,第一网络设备820是客户边缘(CE)设备。
图8B示出了从第一通用拓扑扩展的第二通用网络拓扑850。其类似于第一通用网络拓扑800,但添加了第二网络设备820b。此外,第二网络设备820b经由第三AC 825c和第四AC 825d多宿到EVPN 810。第三和第四AC 825c和825d属于另一ESI-LAG 830b。注意,第三和第四AC 825c和825d中的每一个可以包括一个或多个物理链路。还要注意,第三和第四AC825c和825d中的一个(且仅一个)被定义(例如,通过手动配置、自动选择等)为“指定活动的”,而另一个(些)AC为非“指定活动的”。因此,在示例第二通用网络拓扑850中,第一MHES832(包括第一和第二AC)和第二MHES(未标记,但包括第三和第四AC)中的每一个具有一个(且仅一个)“指定活动的”AC。第二通用网络拓扑850的特定示例对应于上面参考第一通用网络拓扑800的那些示例。
在介绍了第一和第二通用网络拓扑800和850之后,可以在这些示例网络拓扑的上下文中使用的与本说明书一致的示例方法在下面的§3中描述。
§3(多个)示例方法
图9是与本说明书一致的第一示例方法900的流程图。返回参考图8A,示例方法900可用于包括第一EVPN PE设备815a和第二EVPN PE设备815b的系统中。第一和第二EVPN PE设备815a和815b中的每一个被配置为具有至少一个对等会话,以直接或间接地彼此共享路由信息,并与EVPN中的任何其他EVPN PE设备(例如,图8A和8B中的第三EVPN PE设备815c)共享路由信息。第一EVPN PE设备815a具有第一附接电路(AC)825a,并且第二EVPN对等设备815b具有第二AC 825b,第一和第二AC 825a和825b两者都属于具有以太网段标识符ESI的第一多宿以太网段(MHES)。如图所示,示例方法900将第一AC和第二AC中的一个且仅一个定义为“指定活动的”,而将第一AC和第二AC中的另一个定义为非“指定活动的”,使得对于MHES只有一个AC为“指定活动的”。(框910)在图8A的示例中,第一AC 825a为“指定活动的”,而第二AC 825b为非“指定活动的”。注意,如下所述的920-990可以由第一和第二EVPN PE设备815a和815b中的每一个来执行。
如事件分支点920所示,响应于不同的事件执行示例方法900的不同分支。例如,响应于给定EVPN PE设备确定其至少一个对等会话中的每一个都关闭,从而该给定EVPN PE设备不能与EVPN中的任何其他EVPN PE设备共享路由信息(在本申请中也被称为“核心隔离检测”),允许任何“指定活动的”AC保持开启,并且允许任何非“指定活动的”AC进入待机或关闭状态。(框930)示例方法900然后分支回到事件分支点920。
仍然参考事件分支点920,响应于确定EVPN对等设备的至少一个对等会话中的一个或一些或全部从关闭转换到开启,从而EVPN PE设备在不能与EVPN的任何其他EVPN PE设备共享路由信息之后变为能够与EVPN中的任何其他EVPN PE设备共享路由信息,示例方法900执行多个动作。更具体地,方法900确定EVPN PE设备中的路由信息是否在预定程度上与另一EVPN PE设备中的路由信息匹配。(框950)响应于确定EVPN PE设备中的路由信息在预定程度上与另一EVPN PE设备中的路由信息匹配(判定960=是),任何非“指定活动的”(多个)AC被开启。(框970)否则,响应于确定EVPN PE设备中的路由信息在预定程度上与另一EVPN PE设备中的路由信息不匹配,任何非”指定活动的”(多个)AC保持关闭或待机。(框980)示例方法900然后分支回到事件分支点920。
如上所述,应理解,示例方法900允许禁用核心隔离动作,同时仍可避免“脑裂”的情况。注意,在不背离本发明的情况下,可以在存在或不存在某个(些)条件的情况下对示例方法的某些步骤进行重新排序和/或避免。作为一个示例,如果对于给定的MHES,EVPN PE设备没有非“指定活动的”AC,则可以为该MHES避免步骤950、960、970和980。此外,尽管不是必需的,但在一些示例实现中,可以针对多个MHES中的每一个执行框950、970、980和判定960。在这样的示例实现中,框950可以确定针对给定EVPN PE设备中的给定MHES的路由信息是否在预定程度上与MHES的另一EVPN设备中的给定MHE的路由信息同步。
返回参考框910,在示例方法900的一些示例实现中,第一AC和第二AC中的一个可以例如经由路由器的命令行接口(CLI)被手动配置为“指定活动的”。在示例方法900的其他示例实现中,第一AC和第二AC中的一个可以使用预定的选择过程被自动确定为“指定活动的”。
返回参考框930,在示例方法900的一些示例实现中,可以通过在具有“指定活动的”AC(例如,图8A中的第一EVPN PE 815a)的EVPN PE设备中禁用“核心隔离动作”来允许“指定活动的”AC保持开启。
返回参考框950,在示例方法900的一些示例实现中,确定一个EVPN PE设备中的路由信息是否在预定程度上与另一个EVPN PE设备中的路由信息匹配的动作使用第一EVPNPE设备和第二EVPN PE设备之间的CE-IP ping(例如,请求和应答)消息来共享路由度量。有关此类示例实现的详细信息,请参阅下面的§5.3.1。这些示例实现允许在EVPN PE设备的相应分组转发引擎(PFE)中检查信息。在示例方法900的其他示例实现中,确定一个EVPN PE设备中的路由信息是否在预定程度上与另一个EVPN PE设备中的路由信息匹配的动作可以基于BGP End-of-RIB标记的存在或不存在。这些示例实现的详细信息将在下面的§5.3.2中描述。
参考图8B和图9,在具有多于一个MHES的实施例中,动作950、960、970和980中的每一个的结果和/或性能将取决于EVPN PE设备815a、815b上的AC是否是针对给定MHES的指定活动的AC。在图8B的示例中,第一AC是针对第一MHES 832(包括第一和第二AC)的“指定活动的”AC,并且第四AC是针对第二MHES(未标记,但包括第三和第四AC)的“指定活动的”AC。然而,本发明不限于该配置。例如,第一和第二AC中的任何一个对于第一MHES可以为“指定活动的”,而第三和第四个AC中的任何一个对于第二MHES可以为“指定活动的”,前提是每个MHES有且只有一个“指定活动的”AC。也就是说,返回参考框910,对于每个MHES,对于给定MHES,一个且仅一个AC被定义为“指定活动的”。
§4示例实现中的操作示例
参考图8B,假设第一和第二EVPN PE设备815a和815b被配置(例如,经由CLI接口手动地),使得第一AC 825a对于第一MHES为“指定活动的”,并且第四AC 825d对于第二MHES为“指定活动的”。(回想例如图9的框910。)
考虑第一EVPN PE设备815a。假设它已经确定其至少一个对等会话中的每一个都关闭,由此第一EVPN PE设备815a不能与EVPN中的任何其他EVPN PE设备共享路由信息。响应于该确定,针对第一MHES为“指定活动的”第一AC 825a被允许保持开启,而对于第二MHES为非“指定活动的”第三AC 825c被带入待机或关闭状态。(回想例如图9的框930。)
假设在稍后的时间,第一EVPN PE设备815a确定EVPN对等设备的至少一个对等会话中的一个或一些或全部从关闭转换为开启,由此第一EVPN PE设备815a在不能与EVPN的任何其他EVPN PE设备共享路由信息之后变为能够与EVPN中的任何其他EVPN PE设备共享路由信息。响应于该确定,第一EVPN PE设备815a确定其路由信息是否在预定程度上与第二EVPN PE设备815b中的路由信息匹配。(回想例如图9的框950。)如果是,则针对给定MHES的任何非“指定活动的”(多个)AC被开启。(回想例如图9的框970。)对于第一EVPN PE设备815a,针对第一MHES,它没有非“指定活动的”AC。对于第二MHES,第一EVPN PE 815将第三AC825c设置为非“指定活动的”,因此第三AC 825c可以被开启。如果路由信息不匹配到预定程度,则任何非“指定活动的”(多个)AC关闭或处于待机。(回想例如图9的框980。)
现在考虑第二EVPN PE设备815b。假设它已经确定其至少一个对等会话中的每一个都关闭,从而第二EVPN PE设备815b不能与EVPN中的任何其他EVPN PE设备共享路由信息。响应于该确定,针对第二MHES为“指定活动的”第四AC 825d被允许保持开启,并且针对第一MHES为非“指定活动的”第二AC 825b进入待机或关闭状态。(回想例如图9的框930。)
假设在稍后的时间,第二EVPN PE设备815b确定EVPN对等设备的至少一个对等会话中的一个或一些或全部从关闭转换为开启,由此第二EVPN PE设备815b在不能与EVPN的任何其他EVPN PE设备共享路由信息之后变为能够与EVPN中的任何其他EVPN PE设备共享路由信息。响应于该确定,第二EVPN PE设备815b确定其路由信息是否在预定程度上与第一EVPN PE设备815a中的路由信息匹配。(回想例如图9的框950。)如果是,则针对给定MHES的任何非“指定活动的”(多个)AC开启。(回想例如图9的框970。)针对第二EVPN PE设备815b,对于第一MHES,它将第二AC 825b作为非“指定活动的”,因此第二AC 825b可以被开启。对于第二MHES,第二EVPN PE 815没有作为非“指定活动的”AC。如果路由信息不匹配到预定的程度,则任何非”指定活动的”(多个)AC保持关闭或处于待机。(回想例如图9的框980。)
如上所述,应理解,示例方法900允许禁用核心隔离动作,同时仍避免“脑裂”的情况。更具体地,当第一和第二EVPN PE设备815a和815b变为不能与其他EVPN PE共享路由信息时,对于第一MHE,第一网络设备820a将仅与第一PE设备815a通信,而不与第二PE设备815b通信。对于第二MHE,第二网络设备820b将仅与第二PE设备815b通信,而不与第一PE设备815a通信。对于每个MHES,当第一和第二EVPN PE设备815a和815b的路由信息匹配到预定程度时,这些网络设备820a和820b将仅变为多宿到第一和第二EVPN PE设备815a和815b两者。以这种方式,网络设备820保持连接到EVPN 810,而不存在第一EVPN PE设备815a和第二EVPN PE设备815b之间的“脑裂”问题。
§5改进、备选和/或扩展
§5.1EVPN MHES对等体活跃度检测
返回参考图9的事件分支点920,运行示例方法900的路由器将能够检测其是否能够(例如,直接或间接地经由RR)与EVPN中的其他(多个)PE共享路由信息。为了检测对等体是否存活,可以通过管理网络在对等体之间交换周期性的保活分组。优选地,管理网络是数据网络的备选网络,因为即使数据网络关闭(导致脑裂的情况),对等体仍可能是开启和运行的。
在ESI-LAG中,对等协议和保活通过配置实现。例如,“Multichassis LinkAggregation User Guide for Routing and Switching Devices”(用于路由和交换设备的多机箱链路聚合用户指南)(2022年8月31日,加利福尼亚州桑尼维尔的瞻博网络)(从https://www.juniper.net/documentation/us/en/software/junos/mc-lag/inde x.html下载,通过引用并入本文)中描述的备份活跃性检测命令,指出该命令用于通过在两个机箱间控制协议(ICCP)对等体之间的管理链路上交换保活消息来确定对等体是开启还是关闭。当ICCP连接运行中断时,通过相互发送活动检测请求来检测托管多机箱链路聚合组(MC-LAG)的对等体的状态。对等体必须在指定的时间内响应活跃性检测请求。如果在给定的连续尝试次数内未在该时间内接收到响应,则活跃性检测检查失败,并且执行失败动作。必须在托管MC-LAG的两个对等体上配置备份活跃性检测。
此外,返回参考图9的框910,为了标识在脑裂情形下必须在其上启用(开启)AC的一个(且每个ESI-LAG仅一个)设备,设备之一将被配置为“指定活动的”。下表示出了响应对等体和BGP的各种状态所发生的情况。
§5.2检测EVPN BGP会话到开启的转换
可以使用现有的(多个)“核心隔离判定”机制来判定EVPN对等体是否开启。
§5.3确保对等设备中的路由“同步”
返回参考图9的框960,在示例方法900中,响应于第一和第二EVPN PE设备变为能够共享路由信息,确定第一EVPN PE设备中的路由信息是否在预定程度上与第二EVPN PE设备中的路由信息同步。这可以被认为是检测第一和第二EVPN PE设备中的所有路由是否匹配或收敛(至少到预定程度)。
存在确定EVPN PE设备中的路由信息是否匹配(至少到预定程度)的各种方式(以不同的准确度)。下面将描述用于此目的的两种这样的机制。更具体地,基于CE-Ping的方法在§5.3.1中描述,基于BGP End-of-RID标记的方法在§5.3.2中描述。
返回参考图9的判定960和框970,在示例方法900中,一旦(例如,基于本文描述的两个备选机制之一)确认了路由信息的匹配(至少到预定程度),则非指定活动的EVPN PE设备的AC被开启。
§5.3.1使用CE-IP PING确保路由“同步”
CE-IP Ping可用于在EVPN MHES对等体之间交换路由度量。当路由度量收敛(至少到预定程度)时,任何非“指定活动的”EVPN PE设备的AC被启用(例如,从待机或关闭状态变为开启状态)。例如,IETF草案,“Generic Overlay OAM and Datapath FailureDetection”(通用覆盖层OAM和数据路径故障检测),draft-jain-nvo3-overlay-oam-03(互联网工程任务组,2015年3月6日)(被称为“Jain草案”并通过引用并入本文)描述了一种机制,该机制可用于检测诸如VXLAN的各种覆盖技术的数据路径故障,以及给定的覆盖网段的它们的控制和数据平面的验证/健全性。
VXLAN(RFC 7348,通过引用并入本文)是一种已知技术,并且用作在层3底层网络之上覆盖层2网络或层3网络的隧道机制。对于VXLAN覆盖模型,给定的覆盖网段有两个隧道端点。一个端点是覆盖的起点,而另一个端点是覆盖的终点。在大多数情况下,隧道端点意图位于网络边缘,通常将接入交换机连接到IP传输网络。接入交换机可以是位于服务器上的监管程序内的物理或虚拟交换机,该服务器连接到作为VM的终端系统。
为了便于验证覆盖网段或使用该覆盖的任何终端系统,Jain草案建议沿着与属于该网段的其他分组相同的数据路径发送分组(称为“回声请求”)。回声请求还携带有关要验证其数据路径的覆盖网段的信息。该回声请求就像属于该覆盖网段的任何其他终端系统数据分组一样被转发,因为它包含与传统终端系统的数据相同的覆盖封装。在覆盖网段末尾接收到回声请求时,它被发送到终端覆盖端点的控制平面,该控制平面进而将以回声应答进行响应。
如Jain草案第5节所描述的,通用覆盖回声请求/应答是由众所周知的UDP端口XXXX标识的UDP分组。覆盖层承载的有效负载通常可以是层2/以太网帧,也可以是层3/IP分组。如果覆盖层承载的封装有效负载是以太网类型,则OAM回声请求分组将具有内部以太网报头,后跟IP和UDP报头。(例如参见图10A的1040、1050、1060和1070。)内部UDP的有效负载将如Jian草案中所描述的。如果覆盖层承载的封装有效负载是IP类型,则OAM回声请求分组将具有内部IP报头,后跟UDP报头。内部UDP的有效负载将如Jain草案中所描述的。
Jain草案第5.3节描述的是通用覆盖层OAM分组的UDP有效负载的格式。第5.3.1.1节介绍了发送方地址为IPv4(参见图10B)以及如果发送者地址是IPv6(参见图10C)时的VXLAN Ping消息的TLV。
此步骤仅在发生以下事件之一时激活:
a)核心隔离→核心开启。
b)AC关闭→AC开启(AE接口指向CE设备)
图10A示出了具有VNI‘0’和内部目的地IP 1050为0.0.0.0的示例“覆盖层ping”分组1000。添加子TLV来标识ESI。例如,图11示出了新的TLV 1100的示例,被称为“OVERLAY_PING_SUBTLV_TYPE_ENDSYS_JUNIPER_ESI.”如图11所示,该新的TLV 1100包括终端系统IPv4/ESI子TLV(7)字段1110、携带指示ESI数量的数据的字段1120、以及用于携带关于一个或多个ESI的信息的一个或多个字段1130。上述图11的子TLV 1100的示例可以作为覆盖层-Ping请求分组的一部分被发送(例如,如Jain草案中所定义的)。
当对等设备接收到该ping分组(具有VNI ID“0”和ESI TLV)时,它创建具有以下一个或多个信息的(多个)响应分组:
–ESI LAG上的Pv4 MAC-IP条目的数目(在所有VNI上);
–ESI LAG上的IPv6 MAC-IP条目的数目(在所有VNI上);
–ESI LAG上的MAC条目的数目(在所有VNI上);和/或
–多播(MC)路由信息。
图12示出了新的TLV 1200的示例,被称为“OVERLAY_PING_SUBTLV_TYPE_ENDSYS_JUNIPER_RT_METR IC”。如图12所示,该新的子TLV 1200包括终端系统IPv4/RTMetricSubTLV字段1210和携带指示ESI数量的数据的字段1220。对于一个或多个ESI中的每一个,子TLV 1200包括指示MAC路由的计数的字段1231、指示IPv4 MAC IP路由器的计数的字段1233、指示IPv6 MAC IP路由的计数的字段1235、以及指示MC路由的计数的字段1237。
响应于接收到该Ping响应,Ping请求的发起方可以在其分组转发引擎(PFE)AC中调出MAC IP条目的数量和MAC计数匹配。如果部分或全部计数匹配(或在预定百分比内),则开启AC。
注意,扩展CE-IP Ping请求和应答消息的交换可能重复几次,以收敛到稳定状态度量并启用ESI-LAG。备选地,可以潜在地使用从对等体接收的路由度量的百分比水印来确定是否启动AC。
如从前述内容应当理解的,CE-IP ping应答消息包括以下至少一个(例如,其中一个、两个、三个或全部):(A)所有VNI上的ESI-LAG上的IPv4 MAC IP条目的数目,(B)所有VNI上的ESI-LAG上的IPv6 MAC IP条目的数目,(C)所有VNI上的ESI-LAG上的MAC条目的数目和/或(D)多播路由信息。在这种情况下,返回参考图9的框960,在示例方法900的一些实现中,确定第一EVPN PE设备中的路由信息是否在预定程度上与第二EVPN PE设备中的路由信息同步的动作包括确定以下至少一个(例如,其中一个、两个、三个或全部)中的每一个是否在发起CE-IP ping请求的第一和第二EVPN PE设备之一中的对应数目的预定百分比内:(A)所有VNI上的ESI-LAG上的IPv4 MAC IP条目的数目,(B)所有VNI上的ESI-LAG上的IPv6 MACIP条目的数目,(C)所有VNI上的ESI-LAG上的MAC条目的数目和/或(D)多播路由信息。
注意,基于CE-Ping的机制可能要求EVPN PE设备支持如上扩展的Jain草案CEPing请求和应答分组。
在一个备选实现中,图11和图12中的子TLV可以在发起消息中携带。也就是说,可以在除了应答消息之外的消息中携带用于检查路由信息匹配(至少到预定程度)的信息。
在其他备选实现中,由于路由信息度量是按每个MHES(例如,按ESI)提供的,因此可以基于每个MHES来执行一个PE设备中的路由信息是否在预定程度上与另一个PE设备中的路由信息匹配。然而,如果没有这样做,则可以简化图11和12的示例(多个)TLV和(多个)子TLV,以携带针对所有MAC路由、用于所有IPV4 MAC IP路由、用于所有IPv6 MAC IP路由和/或用于所有MC路由的度量(例如,计数),而不管MHES或ESI。
§5.3.2使用BGP END-OF-RIB标记确保路由“同步”
返回参考图9的框960,示例方法900的一些实现可以使用基于BGP End-of-RIB的方法来确定第一EVPN PE设备中的路由信息是否至少在预定程度上与第二EVPN PE设备中的路由信息匹配。例如,第一EVPN PE设备和第二EVPN PE设备可以使用作为现有特征的“宽限重启”cli来启用。在来自加利福尼亚州桑尼维尔的瞻博网络的EVPN PE设备的情况下,设备的路由协议守护进程(RPD)将延迟“IFTLV_TYPE_CORE_ISOLATION_STATE_T”TLV,直到从其对等体接收到End-of-RIB标记或者发现路由与PFE/ASIC同步(即,匹配到至少预定程度)。
请注意,一旦RPD发布上述TLV,LACPD即捆绑AC。(这是核心隔离中使用的现有机制。)还请注意,此基于BGP的解决方案基于RFC。基于End-of-RIB标记,实现可以在启用AC之前检查是否在PFE/ASIC中对路由进行了编程。
§5.4其中可以使用示例方法的示例网络拓扑
返回参考图8A和8B,在一些情况下,第一和第二EVPN PE设备815a和815b是Clos网络的叶节点,并且第一网络设备820(或第一和第二网络设备820a和820b)是架顶式(TOR)设备。在一些其他情况下,第一和第二EVPN PE设备815a和815b是Clos网络的主干节点,并且第一网络设备820(或第一和第二网络设备820a和820b)是Clos网络中的叶节点。这种拓扑可以在数据中心的环境中使用。
仍然参考图8A和8B,在一些情况下,第一和第二EVPN PE设备815a和815b是提供方边缘(PE)设备,并且第一网络设备820是(或第一和第二网络设备820a和820b是)客户边缘(CE)设备。
仍然参考图8A和8B,在一些情况下,第一和第二EVPN PE设备815a和815b中的每一个都是VXLAN中的虚拟隧道的端点。
在一些情况下,第一和第二EVPN PE设备815a和815b是iBGP对等体(在这种情况下,可以在它们之间的BGP会话中直接共享路由信息)。在一些其他情况下,第一和第二EVPNPE设备815a和815b中的每一个都是具有路由反射器(RR)的iBGP对等体(在这种情况下,经由RR间接地共享路由信息)。
所描述的方法和设备不限于所描述的特定拓扑。相反,它们可以应用于其他网络拓扑。
§5.5其他情形
在两个设备都开启的一种情形下,至少一些示例实施例提供了一种解决方案,该解决方案还需要将叶中的一个标识为“指定活动的”旋钮。AC将仅在设置了上述旋钮的叶设备上启用。另一叶设备将使AC关闭,直到收敛。
在其中每个ESI-LAG具有多个成员链路的另一特定实现中,在至少一些示例实施例中,L2ALD将在启用LACP捆绑之前确保所有L2ALM实例具有路由。
§6示例装置
PE和/或CE设备可以是转发设备,例如路由器。图13示出了经由通信链路1330耦合的两个数据转发系统1310和1320。这些链路可以是物理链路或“无线”链路。数据转发系统1310、1320可以是例如路由器。如果数据转发系统1310、1320是示例路由器,则每个路由器可以包括控制组件(例如,路由引擎)1314、1324和转发组件1312、1322。每个数据转发系统1310、1320包括终止一个或多个通信链路1330的一个或多个接口1316、1326。
如上所述,并参考图14,一些示例路由器1400包括控制组件(例如,路由引擎)1410和分组转发组件(例如,分组转发引擎)1490。
控制组件1410可以包括操作系统(OS)内核1420、(多个)路由协议进程1430、(多个)基于标签的转发协议进程1440、(多个)接口进程1450、(多个)用户界面(例如,命令行界面)进程1460和(多个)机箱进程1470,并且可以存储(多个)路由表1439、标签转发信息1445和(多个)转发(例如,基于路由和/或基于标签)表1480。如图所示,(多个)路由协议进程1430可以支持路由协议,例如路由信息协议(“RIP”)1431、中间系统到中间系统协议(“IS-IS”)1432、开放最短路径优先协议(“OSPF”)1433、增强型内部网关路由协议(“EIGRP”)1434和边界网关协议(“BGP”)1435,并且(多个)基于标签的转发协议进程1440可以支持诸如BGP1435、标签分发协议(“LDP”)1436、资源预留协议(“RSVP”)1437、EVPN 1438和L2VPN 1439之类的协议。一个或多个组件(未示出)可以允许用户1465与(多个)用户界面进程1460交互。类似地,一个或多个组件(未示出)可以允许外部设备经由SNMP 1485与(多个)路由器协议进程1430、(多个)基于标签的转发协议进程1440、(多个)接口进程1450和(多个)机箱进程1470中的一个或多个交互,并且这样的进程可以经由SNMP 1485向外部设备发送信息。
分组转发组件1490可以包括硬件组件(例如,ASIC、交换结构、光纤等)1491、(多个)接口进程1493、ASIC驱动程序1494、(多个)机箱进程1495和(多个)转发(例如,基于路由和/或基于标签)表1496上的微内核1492。
在图14的示例路由器1400中,控制组件1410处理诸如执行路由协议、执行基于标签的转发协议、控制分组处理等任务,这解放了分组转发组件1490以快速转发所接收的分组。也就是说,接收到的控制分组(例如,路由协议分组和/或基于标签的转发协议分组)在分组转发组件1490本身上没有被完全处理,而是被传递到控制组件1410,从而减少了分组转发组件1490必须做的工作量,并将其释放以处理要被高效转发的分组。因此,控制组件1410主要负责运行路由协议和/或基于标签的转发协议、维护路由表和/或标签转发信息、向分组转发组件1490发送转发表更新以及执行系统管理。示例控制组件1410可以处理路由协议分组、提供管理接口、提供配置管理、执行记账和提供警报。进程1430、1440、1450、1460和1470可以是模块化的,并且可以与OS内核1420交互。也就是说,几乎所有进程都直接与OS内核1420通信。使用将进程与其他进程完全分开的模块化软件可以隔离给定进程的问题,使得使此类问题不会影响可能正在运行的其他进程。此外,使用模块化软件有助于更轻松地伸缩。
仍然参考图14,示例OS内核1420可以结合用于外部程序调用和脚本能力的应用编程接口(“API”)系统。控制组件1410可以基于从闪存运行OS的英特尔PCI平台,其备用副本存储在路由器的硬盘上。OS内核1420可以层叠在英特尔PCI平台上,并且在英特尔PCI平台和控制组件1410的进程之间建立通信。OS内核1420还确保由分组转发组件1490使用的转发表1496与控制组件1410中的那些1480同步。因此,除了向控制组件1410软件进程提供底层基础设施之外,OS内核1420还提供控制组件1410和分组转发组件1490之间的链路。
参考图14的(多个)路由协议进程1430,该(多个)进程1430在平台内提供路由和路由控制功能。在该示例中,提供了RIP 1431、IS1432、OSPF 1433和EIGRP 1434(以及BGP1435)协议。自然地,可以附加地或备选地提供其他路由协议。类似地,(多个)基于标签的转发协议进程1440提供标签转发和标签控制功能。在该示例中,提供了LDP 1436、RSVP 1437、EVPN 1438和L2VPN 1439(以及BGP 1435)协议。自然地,其他基于标签的转发协议(例如,MPLS、SR等)可附加地或备选地提供。在示例路由器1400中,(多个)路由表1439由(多个)路由协议进程1430产生,而标签转发信息1445由(多个)基于标签的转发协议进程1440产生。
仍然参考图14,(多个)接口进程1450执行物理接口的配置和封装。
示例控制组件1410可以提供管理路由器的几种方式。例如,它1410可以提供允许系统操作员1465通过配置、修改和监测与系统交互的(多个)用户界面进程1460。SNMP 1485允许支持SNMP的系统与路由器平台进行通信。这还允许平台向外部代理提供必要的SNMP信息。例如,SNMP 1485可以允许从运行软件(诸如是惠普的网络节点管理器(“HP-NNM”))的网络管理站通过框架(诸如惠普的OpenView)来管理系统。可以由控制组件1410执行对分组的审计(通常称为业务统计),从而避免减慢由分组转发组件1490进行的业务转发。
尽管未示出,但示例路由器1400可以提供带外管理、用于串行控制台和远程管理访问的RS232DB9端口、以及使用可移除PC卡的第三级存储。此外,虽然没有显示,但位于机箱前面的工艺界面提供了路由器内部工作的外部视图。它可以用作故障排除工具、监测工具或两者兼而有之。工艺接口可以包括LED指示器、报警指示器、控制组件端口和/或显示屏。最后,工艺接口可以经由控制台端口、辅助端口和/或管理以太网端口提供与命令行接口(“CLI”)1460的交互。(回想,在一些示例实施例中,可以手动配置给定MHES的“指定活动的”AC。)
分组转发组件1490负责尽快正确地输出接收到的分组。如果转发表中没有针对给定目的地或给定标签的条目,并且分组转发组件1490本身不能执行转发,则分组转发组件1490可以将去往该未知目的地的分组发送到控制组件1410以供处理。示例分组转发组件1490被设计为执行层2和层3交换、路由查找和快速分组转发。
如图14所示,示例分组转发组件1490具有硬件组件1491、(多个)接口进程1493、ASIC驱动程序1494和(多个)机箱进程1495上的嵌入式微内核1492,并且存储(多个)转发(例如,基于路由和/或基于标签)表1496。微内核1492与(多个)接口进程1493和(多个)机箱进程1495交互以监测和控制这些功能。(多个)接口进程1492与控制组件1410的OS内核1420直接通信。该通信包括将异常分组和控制分组转发到控制组件1410,接收要转发的分组,接收转发表更新,向控制组件1410提供关于分组转发组件1490的健康的信息,以及允许从控制组件1410的(多个)用户界面(例如,CLI)进程1460配置接口。存储的(多个)转发表1496是静态的,直到从控制组件1410接收到新的转发表。(多个)接口进程1493使用(多个)转发表1496来查找下一跳信息。(多个)接口进程1493还具有与分布式ASIC的直接通信。最后,(多个)机箱进程1495可以直接与微内核1492和ASIC驱动程序1494通信。
图15是如何在分组转发组件1490中分布ASIC以划分分组转发责任的示例。如图15所示,分组转发组件1490的ASIC可以分布在物理接口卡(“PIC”)1510、灵活PIC集线器(“FPC”)1520、中板或背板1530、以及(多个)系统控制板1540(用于交换和/或转发)上。交换矩阵还被示为系统交换板(“SSB”)或交换和转发模块(“SFM”)1550(其可以是图16A和16B所示的交换矩阵1550’)。每个PIC 1510包括一个或多个PIC I/O管理器1515。每个FPC 1520包括一个或多个I/O管理器1522,每个I/O管理器1522具有相关联的存储器1524(其可以是如图16A和16B所示的RDRAM 1524’)。中板/底板1530包括缓冲器管理器1535a、1535b。最后,系统控制板1540包括互联网处理器1542和转发表1544的实例(回想,例如图14的1496)。
仍然参考图15,PIC 1510包含接口端口。每个PIC 1510可以插入到FPC 1520中。每个单独的PIC 1510可以包含处理诸如成帧或封装之类的媒体专用功能的ASIC。一些示例PIC1510提供SDH/SONET、ATM、千兆以太网、快速以太网和/或DS3/E3接口端口。
FPC 1520可以包含来自一个或多个PIC 1510的信号,并且可以将来自PIC 1510的信号携带到中板/底板1530,如图15所示。
中板/底板1530保持线路卡。当从前面插入到示例路由器的机箱中时,线路卡可以连接到中板/底板1530。控制组件(例如,路由引擎)1410可以从底盘的后部插入中板/底板1530的后部。中板/背板1530可以将电(或光)信号和功率传送到每个线路卡和控制组件1410。
系统控制板1540可以执行转发查找。IT 1540还可以将错误传送给路由引擎。此外,IT 1540还可以基于其从传感器接收的信息来监测路由器的状况。如果检测到异常情况,则系统控制板1540可以立即通知控制组件1410。
参考图15、16A和16B,在一些示例路由器中,每个PIC 1510、1510’包含至少一个负责诸如封装的介质专用任务的I/O管理器ASIC 1515。分组在进出路由器的途中通过这些I/O ASIC。PIC 1510、1510’上的I/O管理器ASIC 1515负责管理到FPC 1520、1520’上的I/O管理器ASIC 1522的连接、管理链路层成帧和创建比特流、执行循环冗余校验(CRC)、以及在适当时检测链路层错误和产生警报。FPC 1520包括另一I/O管理器ASIC 1522。该ASIC 1522(示为层2/层3分组处理组件1510’/1520’)从PIC1510获取分组并将它们分成(例如,74字节)存储块。该FPC I/O管理器ASIC 1522(示为层2/层3分组处理组件1510’/1520’)将块发送到第一分布式缓冲器管理器(DBM)935a(示为交换机接口组件1535a’),对封装和协议特定信息进行解码,对每个逻辑电路的分组和字节进行计数,验证分组完整性,并将服务类别(CoS)规则应用于分组。此时,分组首先被写入存储器。更具体地,示例DBM ASIC 1535/1535a’跨所有FPC 1520管理分组并将分组写入共享存储器1524。同时,第一DBM ASIC1535/1535a’还提取关于分组目的地的信息,并将该转发相关信息传递给互联网处理器1542/1542’。互联网处理器1542/1542’使用转发表1544执行路由查找,并将信息发送到第二DBM ASIC 1535b’。互联网处理器ASIC 1542/1542’还收集异常分组(即,那些没有转发表条目的分组)并将它们发送到控制组件1410。然后,第二DBM ASIC 1525(示为排队和存储器接口组件1535b’)获取该信息和74字节块,并将它们转发到出口FPC 1520/1520’(或在多播的情况下,多个出口FPC)的I/O管理器ASIC 1522,用于重新组装。(因此,DBM ASIC 1535a/1535a’和1535b/1535b’负责管理分布在所有FPC 1520/1520’上的分组存储器1524/1524’,从分组中提取转发相关信息,并指示FPC将分组转发到哪里。)
出口FPC 1520/1520’上的I/O管理器ASIC 1522可以执行一些增值服务。除了递增生存时间(“TTL”)值并重新封装分组以供PIC 1510处理之外,它还可以应用服务类别(CoS)规则。为此,在将规则应用于分组之前,它可以将指向分组的指针排队在可用队列之一中,每个可用队列都具有链路带宽份额。排队可以基于各种规则。因此,在应用CoS规则之前,出口FPC 1520/1520’上的I/O管理器ASIC 1522可以负责从第二DBM ASIC 1535/1535’接收块,递增TTL值,如果需要,将指向分组的指针排队,重新封装块,并将封装的分组发送到PICI/O管理器ASIC 1515。
图17是用于在示例路由器中提供分组转发的示例方法1700的流程图。当在入站(传入)端口或接口上接收到分组时,触发方法1700的主要动作。(事件1710)执行其所服务的介质类型所需的校验和和帧校验的类型,并且将分组作为串行比特流输出。(框1720)然后将分组解封装并解析成(例如,64字节)块。(框1730)将分组写入缓冲存储器,并在互联网处理器上传递转发信息。(框1740)然后使用传递的转发信息在转发表中查找路由。(框1750)注意,转发表通常可以处理没有设置选项(例如,记账)的单播分组,以及它已经具有其高速缓存条目的多播分组。因此,如果确定满足这些条件(决策1760的是分支),则分组转发组件找到下一跳和出口接口,并且在方法1700离开(节点1790)之前经由出口接口将分组转发(或排队转发)到下一跳(框1770);否则,如果不满足这些条件(决策1760的否分支),则在方法1700离开(节点1790)之前将转发信息发送到控制组件1410以用于高级转发解析(框1780)。
返回参考框1770,分组可以排队。实际上,如前面参考图15所述,指向分组的指针可以排队。分组本身可以保留在共享存储器中。因此,可以在没有实际分组的情况下应用所有排队决策和CoS规则。当分组的指针到达行的前面时,I/O管理器ASIC 1522可以向第二DBM ASIC 1535b发送对分组的请求。DBM ASIC 1535从共享存储器读取块并将它们发送到FPC 1520上的I/O管理器ASIC 1522,然后FPC 1520上的I/O管理器ASIC 1522串行化这些位并将它们发送到出口接口的介质专用ASIC。出口PIC 1510上的I/O管理器ASIC 1515可以应用物理层成帧、执行CRC并通过链路将比特流发送出去。
返回参考图17的块1780以及图15,关于控制和异常分组的传输,系统控制板1540处理几乎所有异常分组。例如,系统控制板1540可以将异常分组传递给控制组件1410。
尽管与本说明书一致的示例实施例可以在图13或14的示例路由器上实现,但是与本说明书一致的实施例可以在通信网络节点(例如,路由器、交换机等)上实现。具有不同的架构。更一般地,与本说明书一致的实施例可以在如图18所示的示例系统1800上实现。
图18是可以执行所描述的一个或多个过程和/或存储由这些过程使用和/或生成的信息的示例机器1800的框图。示例机器1800包括一个或多个处理器1810、一个或多个输入/输出接口单元1830、一个或多个存储设备1820、以及用于促进耦合元件之间的信息通信的一个或多个系统总线和/或网络1840。一个或多个输入设备1832和一个或多个输出设备1834可以与一个或多个输入/输出接口1830耦合。一个或多个处理器1810可以执行机器可执行指令(例如,在可从多个供应商处广泛获得的Linux操作系统上运行的C或C++)以实现本说明书的一个或多个方面。机器可执行指令的至少一部分可以(临时地或更永久地)存储在一个或多个存储设备1820上,和/或可以经由一个或多个输入接口单元1830从外部源接收。机器可执行指令可以存储为各种软件模块,每个模块执行一个或多个操作。功能软件模块是本说明书的组件的示例。
在与本说明书一致的一些实施例中,处理器1810可以是一个或多个微处理器和/或ASIC。总线1840可以包括系统总线。存储设备1820可以包括系统存储器,例如只读存储器(ROM)和/或随机存取存储器(RAM)。存储设备1820还可以包括用于读取和写入硬盘的硬盘驱动器、用于读取或写入(例如,可移除)磁盘的磁盘驱动器、用于读取或写入可移动(磁)光盘的光盘驱动器,例如光盘或其他(磁)光介质,或固态非易失性存储器。
还可以提供与本说明书一致的一些示例实施例作为用于存储机器可执行指令的机器可读介质。机器可读介质可以是非瞬态的,并且可以包括但不限于闪存、光盘、CD-ROM、DVDROM、RAM、EPROM、EEPROM、磁卡或光卡或适于存储电子指令的任何其他类型的机器可读介质。例如,符合本说明书的示例实施例可以作为计算机程序下载,该计算机程序可以通过通信链路(例如,调制解调器或网络连接)从远程计算机(例如,服务器)传输到请求计算机(例如,客户端),并存储在非瞬态存储介质上。机器可读介质也可以被称为处理器可读介质。
与本说明书一致的示例实施例(或其组件或模块)可用硬件实现,例如一个或多个现场可编程门阵列(“FPGA”)、一个或多个诸如ASIC的集成电路、一个或多个网络处理器等。备选地或另外地,符合本说明书的实施例(或其组件或模块)可被实现为由处理器执行的存储的程序指令。这样的硬件和/或软件可以在被寻址的数据(例如,分组、信元等)转发设备(例如,交换机、路由器等)、膝上型计算机、台式计算机、平板计算机、移动电话或任何具有计算和联网能力的设备中提供。
§7结论
如上所述,根据本发明的示例实施例避免了核心隔离的潜在问题,其方式也避免了潜在的“脑裂”问题。
Claims (20)
1.一种用于在包括第一EVPN提供方边缘PE设备和第二EVPN PE设备的EVPN中使用的计算机实现的方法,其中所述第一EVPN PE设备和所述第二EVPN PE设备中的每一个被配置为具有至少一个对等会话以直接或间接地彼此共享路由信息和/或与所述EVPN中的任何其他EVPN PE设备共享路由信息,并且其中所述第一EVPN PE设备具有第一附接电路AC,并且所述第二EVPN对等设备具有到具有以太网段标识符ESI的第一多宿以太网段MHES的第二AC,所述计算机实现的方法包括:
a)将所述第一AC定义为“指定活动的”,并且将所述第二AC定义为非“指定活动的”,使得针对所述MHES仅所述第一AC是“指定活动的”;
b)配置所述第一EVPN PE设备,使得响应于确定所述第一EVPN PE设备的至少一个对等会话中的每个对等会话关闭,从而所述第一EVPN PE设备不能与所述EVPN中的任何其他EVPN PE设备共享路由信息,由于所述第一AC为“指定活动的”,所述第一AC被允许保持开启;
c)配置所述第二EVPN PE设备,使得响应于确定所述第二EVPN PE设备的至少一个对等会话中的每个对等会话关闭,从而所述第二EVPN PE设备不能与所述EVPN中的任何其他EVPN PE设备共享路由信息,由于所述第二AC为非“指定活动的”,所述第二AC被带入待机或关闭状态;以及
d)响应于确定所述第二EVPN对等设备的至少一个对等会话的一些或全部对等会话从关闭转换到开启,由此所述第二EVPN PE设备在不能与所述EVPN的任何其他EVPN PE设备共享路由信息之后变为能够与所述EVPN中的任何其他EVPN PE设备共享路由信息,
1)确定所述第二EVPN PE设备中的路由信息是否在预定程度上与所述第一EVPN PE设备中的路由信息匹配,以及
2)响应于确定所述第二EVPN PE设备中的所述路由信息在所述预定程度上与所述第一EVPN PE设备中的所述路由信息匹配,
使所述非“指定活动的”第二AC开启,以及
否则,响应于确定所述第二EVPN PE设备中的所述路由信息在所述预定程度上与所述第一EVPN PE设备中的所述路由信息不匹配,
使所述非“指定活动的”第二AC关闭或处于待机。
2.根据权利要求1所述的计算机实现的方法,其中确定所述第二EVPN PE设备中的路由信息是否在预定程度上匹配所述第一EVPN PE设备中的路由信息将所述第一EVPN PE设备的转发平面中的路由信息与第二EVPN PE设备的转发平面中的路由信息进行比较。
3.根据权利要求1所述的计算机实现的方法,其中所述第一AC被手动定义为“指定活动的”。
4.根据权利要求1所述的计算机实现的方法,其中所述第一AC使用预定的选择过程被自动确定为“指定活动的”。
5.根据权利要求1所述的计算机实现的方法,其中以下动作通过经由手动配置在所述第一EVPN对等设备中禁用核心隔离而被执行:配置所述第一EVPN PE设备,使得响应于确定所述第一EVPN PE设备的至少一个对等会话中的每个对等会话关闭,从而所述第一EVPN PE设备不能与所述EVPN中的任何其他EVPN PE设备共享路由信息,由于所述第一AC为“指定活动的”,所述第一AC被允许保持开启。
6.根据权利要求1所述的计算机实现的方法,其中确定所述第二EVPN PE设备中的路由信息是否在预定程度上与所述第一EVPN PE设备中的路由信息匹配的动作使用所述第一EVPN PE设备和所述第二EVPN PE设备之间的至少一个CE-IP ping消息来共享路由度量。
7.根据权利要求6所述的计算机实现的方法,其中确定所述第二EVPN PE设备中的路由信息是否在预定程度上与所述第一EVPN PE设备中的路由信息匹配的动作包括确定以下至少一项中的每一项是否在所述第一EVPN PE设备和所述第二EVPN PE设备之一中的对应数目的预定百分比内:(A)IPv4 MAC IP条目的数目、(B)IPv6 MAC IP条目的数目、(C)MAC条目的数目和/或(D)多播路由信息。
8.根据权利要求6所述的计算机实现的方法,其中所述至少一个CE-IP ping消息包括子TLV,所述子TLV包括以下至少一项:(A)IPv4 MAC IP条目的数目、(B)IPv6 MAC IP条目的数目、(C)MAC条目的数目和/或(D)多播路由信息。
9.根据权利要求6所述的计算机实现的方法,其中所述至少一个CE-IP ping消息包括子TLV,所述子TLV定义MHES或ESI的数目,并且针对所述MHES或ESI中的每一项,包括以下至少一项:(A)IPv4 MAC IP条目的数目、(B)IPv6 MAC IP条目的数目、(C)MAC条目的数目和/或(D)多播路由信息。
10.根据权利要求1所述的计算机实现的方法,其中确定所述第二EVPN PE设备中的路由信息是否在预定程度上与所述第一EVPN PE设备中的路由信息匹配的动作基于BGP End-of-RIB标记的存在或不存在。
11.根据权利要求1所述的计算机实现的方法,其中确定所述第二EVPN PE设备中的路由信息是否在预定程度上与所述第一EVPN PE设备中的路由信息匹配的动作基于以下两者:(1)BGP End-of-RIB标记的存在或不存在,以及(2)确定来自所述路由信息的路由是否被编程到分组转发引擎PFE中。
12.根据权利要求1所述的计算机实现的方法,其中所述第一EVPN PE设备和所述第二EVPN PE设备是Clos网络的叶节点,并且其中所述第一设备是架顶式TOR设备。
13.根据权利要求1所述的计算机实现的方法,其中所述第一EVPN PE设备和所述第二EVPN PE设备是Clos网络的主干节点,并且其中所述第一网络设备是所述Clos网络中的叶节点。
14.根据权利要求1所述的计算机实现的方法,其中所述第一EVPN PE设备和所述第二EVPN PE设备是提供方边缘PE设备,并且其中所述第一网络设备是客户边缘CE设备。
15.根据权利要求1所述的计算机实现的方法,其中所述第一EVPN PE设备和所述第二EVPN PE设备中的每一个都是VXLAN中的虚拟隧道的端点。
16.根据权利要求1所述的计算机实现的方法,其中所述第一EVPN PE设备和所述第二EVPN PE设备是iBGP对等体或eBGP对等体。
17.根据权利要求1所述的计算机实现的方法,其中所述第一EVPN PE设备具有第三AC,并且所述第二EVPN PE具有到具有第二ESI的第二MHE的第四AC,所述计算机实现的方法还包括:
e)将所述第三AC和所述第四AC中的一个AC且仅一个AC定义为“指定活动的”,而将所述第三AC和所述第四AC中的所有其他的一个或多个AC定义为非“指定活动的”,从而每ESI仅一个“指定活动的”AC;
f)响应于确定所述第一EVPN PE设备的至少一个对等会话中的每个对等会话关闭,从而所述第一EVPN PE设备不能与所述EVPN中的任何其他EVPN PE设备共享路由信息,针对所述第一AC和所述第三AC中的每个AC,以及针对所述第一MHES和第二MHES中的每个MHES,
1)允许针对给定的MHES的指定活动的AC保持开启,以及
2)使针对所述给定的MHES的非指定活动的AC关闭或进入待机;
g)响应于确定所述第二EVPN PE设备的至少一个对等会话中的每个对等会话关闭,从而所述第二EVPN PE设备不能与所述EVPN中的任何其他EVPN PE设备共享路由信息,针对所述第二AC和所述第四AC中的每个AC,以及针对所述第一MHES和第二MHES中的每个MHES,
1)允许针对所述给定MHES的所述指定活动的AC保持开启,以及
2)使针对所述给定MHES的所述非指定活动的AC关闭或进入待机;
h)响应于确定所述第二EVPN对等设备的至少一个对等会话的一些或全部对等会话从关闭转换到开启,从而所述第二EVPN PE设备在不能与所述EVPN的任何其他EVPN PE设备共享路由信息之后变为能够与所述EVPN中的任何其他EVPN PE设备共享路由信息,
1)确定所述第二EVPN PE设备中的路由信息是否在预定程度上与所述第一EVPN PE设备中的路由信息匹配,以及
2)响应于确定所述第二EVPN PE设备中的所述路由信息在所述预定程度上与所述第一EVPN PE设备中的所述路由信息匹配,
使针对给定MHES的所述第二EVPN PE设备上的任何非“指定活动的”AC开启,以及
否则,响应于确定所述第二EVPN PE设备中的所述路由信息在所述预定程度上与所述第一EVPN PE设备中的所述路由信息不匹配,
使针对所述给定MHES的所述第二EVPN PE设备上的任何非“指定活动的”AC关闭或处于待机。
18.根据权利要求17所述的计算机实现的方法,还包括:
i)响应于确定所述第一EVPN对等设备的至少一个对等会话的一些或全部对等会话从关闭转换到开启,从而所述第一EVPN PE设备在不能与所述EVPN的任何其他EVPN PE设备共享路由信息之后变为能够与所述EVPN中的任何其他EVPN PE设备共享路由信息,
1)确定所述第一EVPN PE设备中的路由信息是否在预定程度上与所述第二EVPN PE设备中的路由信息匹配,以及
2)响应于确定所述第一EVPN PE设备中的所述路由信息在所述预定程度上与所述第二EVPN PE设备中的所述路由信息匹配,
使针对所述给定MHES的所述第一EVPN PE设备上的任何非“指定活动的”AC开启,以及
否则,响应于确定所述第一EVPN PE设备中的所述路由信息在所述预定程度上与所述第二EVPN PE设备中的所述路由信息不匹配,
使针对所述给定MHES的所述第一EVPN PE设备上的任何非“指定活动的”AC关闭或处于待机。
19.一种EVPN提供方边缘PE设备,用于在包括另一EVPN PE设备的EVPN中使用,其中所述EVPN PE设备中的每个EVPN PE设备被配置为具有至少一个对等会话以直接或间接地彼此共享路由信息和/或与所述EVPN中的任何其他EVPN PE设备共享路由信息,并且其中所述EVPN PE设备具有第一附接电路AC,并且所述另一EVPN对等设备具有到具有以太网段标识符ESI的第一多宿以太网段MHES的第二AC,所述EVPN PE设备包括:
a)至少一个处理器;以及
b)存储处理器可执行指令的存储系统,所述处理器可执行指令在由所述至少一个处理器执行时,使所述至少一个处理器执行方法,所述方法包括
1)将所述第一AC和所述第二AC中的一个AC且仅一个AC定义为“指定活动的”,并且将所述第一AC和所述第二AC中的另一AC定义为非“指定活动的”,使得针对所述MHES仅一个AC为“指定活动的”;
2)配置所述EVPN PE设备,使得响应于确定所述第一EVPNPE设备的至少一个对等会话中的每个对等会话关闭,从而所述第一EVPN PE设备不能与所述EVPN中的任何其他EVPN PE设备共享路由信息,
如果所述第一AC为“指定活动的”,则允许所述第一AC保持开启,以及
否则,如果所述第一AC为非“指定活动的”,则所述第一AC被带入待机或关闭状态,
3)响应于确定所述EVPN对等设备的至少一个对等会话的一些或全部对等会话从关闭转换到开启,从而所述EVPN PE设备在不能与所述EVPN的任何其他EVPN PE设备共享路由信息之后变为能够与所述EVPN中的任何其他EVPN PE设备共享路由信息,
确定所述EVPN PE设备中的路由信息是否在预定程度上与所述另一EVPN PE设备中的路由信息匹配,以及
响应于确定所述EVPN PE设备中的所述路由信息在所述预定程度上与所述另一EVPNPE设备中的所述路由信息匹配,
使任何非“指定活动的”AC开启,以及
否则,响应于确定所述EVPN PE设备中的所述路由信息在所述预定程度上与所述另一EVPN PE设备中的所述路由信息不匹配,
使任何非“指定活动的”AC关闭或处于待机。
20.一种非瞬态计算机可读存储介质,所述非瞬态计算机可读存储介质存储处理器可执行指令,所述处理器可执行指令在由至少一个处理器执行时,使所述至少一个处理器执行用于在包括第一EVPN提供方边缘PE设备和第二EVPN PE设备的EVPN中使用的方法,其中所述第一EVPN PE和第二EVPN PE设备中的每一个被配置为具有至少一个对等会话以直接或间接地彼此共享路由信息和/或与所述EVPN中的任何其他EVPN PE设备共享路由信息,并且其中所述第一EVPN PE设备具有第一附接电路AC,并且所述第二EVPN对等设备具有到具有以太网段标识符ESI的第一多宿以太网段MHES的第二AC,所述方法包括:
a)将所述第一AC定义为“指定活动的”,并且将所述第二AC定义为非“指定活动的”,使得针对所述MHES仅所述第一AC是“指定活动的”;
b)配置所述第一EVPN PE设备,使得响应于确定所述第一EVPN PE设备的至少一个对等会话中的每个对等会话关闭,从而所述第一EVPN PE设备不能与所述EVPN中的任何其他EVPN PE设备共享路由信息,由于所述第一AC为“指定活动的”,所述第一AC被允许保持开启;
c)配置所述第二EVPN PE设备,使得响应于确定所述第二EVPN PE设备的至少一个对等会话中的每个对等会话关闭,从而所述第二EVPN PE设备不能与所述EVPN中的任何其他EVPN PE设备共享路由信息,由于所述第二AC为非“指定活动的”,所述第二AC被带入待机或关闭状态;以及
d)响应于确定所述第二EVPN对等设备的至少一个对等会话的一些或全部对等会话从关闭转换到开启,从而所述第二EVPN PE设备在不能与所述EVPN的任何其他EVPN PE设备共享路由信息之后变为能够与所述EVPN中的任何其他EVPN PE设备共享路由信息,
1)确定所述第二EVPN PE设备中的路由信息是否在预定程度上与所述第一EVPN PE设备中的路由信息匹配,以及
2)响应于确定所述第二EVPN PE设备中的所述路由信息在所述预定程度上与所述第一EVPN PE设备中的所述路由信息匹配,
使非“指定活动的”第二AC开启,以及
否则,响应于确定所述第二EVPN PE设备中的所述路由信息在所述预定程度上与所述第一EVPN PE设备中的所述路由信息不匹配,
使所述非“指定活动的”第二AC关闭或处于待机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/095,252 | 2023-01-10 | ||
US18/095,252 US20240235999A1 (en) | 2023-01-10 | 2023-01-10 | Reducing convergence time and/or avoiding split-brain in multi-homed ethernet segment deployments, such as esi-lag deployments |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118337561A true CN118337561A (zh) | 2024-07-12 |
Family
ID=89223428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311781773.3A Pending CN118337561A (zh) | 2023-01-10 | 2023-12-22 | 在多宿主以太网段部署中缩短融合时间和/或避免脑裂 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240235999A1 (zh) |
EP (1) | EP4401364A1 (zh) |
CN (1) | CN118337561A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170373973A1 (en) * | 2016-06-27 | 2017-12-28 | Juniper Networks, Inc. | Signaling ip address mobility in ethernet virtual private networks |
US20180091445A1 (en) * | 2016-09-29 | 2018-03-29 | Juniper Networks, Inc. | Evpn designated forwarder state propagation to customer edge devices using connectivity fault management |
US10630509B2 (en) * | 2018-03-30 | 2020-04-21 | Juniper Networks, Inc. | Aliasing behavior for traffic to multihomed sites in ethernet virtual private network (EVPN) networks |
-
2023
- 2023-01-10 US US18/095,252 patent/US20240235999A1/en active Pending
- 2023-12-18 EP EP23217707.1A patent/EP4401364A1/en active Pending
- 2023-12-22 CN CN202311781773.3A patent/CN118337561A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240235999A1 (en) | 2024-07-11 |
EP4401364A1 (en) | 2024-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3920484B1 (en) | Liveness detection and route convergence in software-defined networking distributed system | |
US10333836B2 (en) | Convergence for EVPN multi-homed networks | |
US11057243B2 (en) | Aliasing behavior for traffic to multihomed sites in ethernet virtual private network (EVPN) networks | |
EP3920483B1 (en) | Local repair for underlay failure using prefix independent convergence | |
EP3573293B1 (en) | Reducing or eliminating routing microloops in networks having a clos topology, such as data center clos networks employing the exterior border gateway protocol (ebgp) for example | |
US10397049B2 (en) | Auto-provisioning edge devices in a communication network using control plane communications | |
EP3304815B1 (en) | Operations, administration and management (oam) in overlay data center environments | |
US9100213B1 (en) | Synchronizing VPLS gateway MAC addresses | |
US11329845B2 (en) | Port mirroring over EVPN VXLAN | |
CN112565046B (zh) | 同步多播路由器能力 | |
RU2704714C1 (ru) | Технологии для предоставления максимальной глубины идентификатора сегмента узла и/или линии связи, использующие ospf | |
EP3573292A1 (en) | Forwarding detection of an aggregated interface | |
EP3734915B1 (en) | Faster fault-detection mechanism using bidirectional forwarding detection (bfd), on network nodes and/or hosts multihomed using a link aggregation group (lag) | |
US11057295B1 (en) | Loop avoidance and egress link protection with ethernet virtual private network (EVPN) fast reroute (FRR) | |
EP4401364A1 (en) | Reducing convergence time and/or avoiding split-brain in multi-homed ethernet segment deployments, such as esi-lag deployments | |
CN113381930B (zh) | 用于虚拟路由器冗余的组负载均衡 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |