CN109672550B - 用于多级网络结构的简化配置 - Google Patents

用于多级网络结构的简化配置 Download PDF

Info

Publication number
CN109672550B
CN109672550B CN201811005088.0A CN201811005088A CN109672550B CN 109672550 B CN109672550 B CN 109672550B CN 201811005088 A CN201811005088 A CN 201811005088A CN 109672550 B CN109672550 B CN 109672550B
Authority
CN
China
Prior art keywords
network device
network
rank value
neighbor
level
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.)
Active
Application number
CN201811005088.0A
Other languages
English (en)
Other versions
CN109672550A (zh
Inventor
安东尼·B·普利则基恩达
阿利亚·K·阿特拉斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN109672550A publication Critical patent/CN109672550A/zh
Application granted granted Critical
Publication of CN109672550B publication Critical patent/CN109672550B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/344Out-of-band transfers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了用于多级网络结构的简化配置的方法。一种方法,包括通过第一网络设备接收来自网络中的多个网络设备的消息,消息中的每一个指明相应发送网络设备在网络拓扑中的等级值,通过第一网络设备并基于由消息指明的相应等级,确定第一网络设备在网络拓扑中的等级值,通过第一网络设备并基于确定的等级值,确定将网络流量转发到多个网络设备中的一个或多个的机制,以及根据确定的机制转发网络流量。

Description

用于多级网络结构的简化配置
本申请要求2018年6月22日提交的美国专利申请16/015,724的权益,该美国专利申请要求2018年2月2日提交的美国临时专利申请62/625,452和2017年10月17日提交的美国临时专利申请62/573,495的权益,每个的全部内容通过引用并入本文。
技术领域
本公开涉及计算机网络。
背景技术
在典型的数据中心中,大量互连服务器提供用于执行各种应用的计算和/或存储容量。例如,数据中心可以包括为订户(即,数据中心的客户)托管应用和服务的设施。例如,数据中心可以托管所有基础设施设备,诸如网络和存储系统、冗余电源、以及环境控制。在大多数数据中心中,存储系统和应用服务器的集群通过由一层或多层物理网络交换机和路由器提供的高速交换结构互连。更复杂的数据中心提供遍布全球的基础设施,其中订户支持位于各种物理托管设施中的设备。
数据中心通常由大量设备组成,包括形成IP结构的服务器和设备。在一些网络拓扑中,结构内的路由器可以以多级配置分层,该多级配置允许路径最小化、冗余、以及结构内网络流量的更有效路由的各个方面。
发明内容
一般而言,本公开描述用于利用自动拓扑发现和配置方面的网络配置的技术。特别地,诸如在具有折叠的多级构造的网络(例如,胖树网络、折叠Clos网络、折叠Banyan网络)中的路由器的网络设备被配置为自动确定它们的关系以及网络中其他路由器内的交叉连接的多个方面。这样的网络可以为网络中的每个路由器定义等级,其中,针对给定路由器的等级标识路由器驻留在网络树的哪个层级。在结构配置期间,特定路由器可以自动观察其他邻居路由器的等级,并从那些路由器的指明其等级的通信中导出该特定路由器驻留在哪个等级。描述了关于自动路由器配置和相邻路由器之间的导出等级信息的传播的各种技术,其使得路由器等级确定能够通过网络级联,从而允许一些路由器自动发现它们自己在拓扑内的等级。
在一个示例中,一种方法包括通过第一网络设备从网络中的多个网络设备接收消息。消息中的每一个指明相应发送网络设备在网络拓扑中的等级值。该方法还包括通过第一网络设备并基于由消息指明的相应等级来确定第一网络设备在网络拓扑中的等级值。该方法进一步包括通过第一网络设备并基于所确定的等级值确定将网络流量转发到多个网络设备中的一个或多个的机制。该方法还包括根据确定的机制转发网络流量。
在另一个示例中,第一网络设备包括被配置为通信地耦接到形成网络拓扑的多个网络设备的多个网络接口,以及包括处理电路的一个或多个处理器,该处理电路被配置为:从多个网络设备接收消息,消息中的每一个指明多个网络设备的相应发送网络设备的等级值;基于由消息指明的相应等级,确定第一网络设备在网络拓扑中的等级值;基于所确定的等级值确定将网络流量转发到多个网络设备中的一个或多个的机制;并根据确定的机制,转发网络流量。
在另一个示例中,一种系统包括形成网络拓扑的多个网络设备。多个网络设备包括通信地耦接到多个网络设备的第一网络设备。第一网络设备被配置为从多个网络设备接收消息。消息中的每一个指明发送网络设备在网络拓扑中的等级值。第一网络设备还被配置为基于由消息指明的相应等级来确定第一网络设备在网络拓扑中的等级值。第一网络设备进一步被配置为基于所确定的等级值来确定如何将网络流量转发到多个网络设备中的一个或多个。
在另一个示例中,一种其上存储有指令的计算机可读介质(诸如计算机可读存储介质),该指令使得第一网络设备的处理器通过第一网络设备接收来自网络中的多个网络设备的消息。消息中的每一个指明相应发送网络设备在网络拓扑中的等级值。该指令还使处理器通过第一网络设备并基于由消息指明的相应等级来确定第一网络设备在网络拓扑中的等级值。该指令进一步使处理器通过第一网络设备并基于所确定的等级值来确定如何将网络流量转发到多个网络设备中的一个或多个。
在附图和以下描述中阐述一个或多个示例的细节。根据说明书和附图以及权利要求,其他特征、目的、和优点将是显而易见的。
附图说明
图1是示出包括可以在其中实现本文描述的技术的示例数据中心的示例网络的框图。
图2是示出根据本公开的技术的实现自动等级导出处理的路由器的示例的框图。
图3是示出诸如图1中所示的网络的示例数据中心网络的网络拓扑图的框图。
图4A和4B是示出示例场景的框图,其中来自图3中所示的拓扑图的节点子集在结构配置期间以特定顺序执行等级确定处理的多个方面。
图5是示出诸如图1中所示的网络的示例数据中心网络的网络拓扑图的框图。
图6是示出根据本公开的技术的用于自动确定结构中的网络设备的等级信息的示例方法的流程图。
具体实施方式
图1是示出包括其中可以实现本文描述的技术的数据中心102的示例网络100的框图。通常,数据中心102为例如通过服务提供商网络(未示出)耦接到数据中心的客户设备120提供应用和服务的操作环境。例如,数据中心102可以托管基础设施设备,诸如网络和存储系统、冗余电源、以及环境控制。在一些示例中,将客户设备120耦接到数据中心102的服务提供商网络可以耦接到由其他提供商管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施(例如,因特网)的一部分。
在一些示例中,数据中心102表示许多地理上分布的网络数据中心之一。如图1的示例中所示,数据中心102可以是为客户120提供网络服务的设施。客户设备120可以是诸如企业和政府或个人的实体的设备。例如,网络数据中心可以为数个企业和终端用户托管Web服务。其他示例服务可以包括数据存储、虚拟专用网络、流量工程、文件服务、数据挖掘、科学或超级计算等。在一些示例中,数据中心102可以是单独的网络服务器、网络对等体、或其他。在一些示例中,数据中心102是企业或内部数据中心。
在该示例中,数据中心102包括经由因特网协议(IP)结构118互连的一组存储系统和应用服务器110A至110N(服务器110),因特网协议(IP)结构118可以包括由一层或多层物理网络设备提供的结构,该网络设备诸如,例如路由器、网关、交换机、集线器、调制解调器、网桥、中继器、多路复用器、服务器、在其中的一个或多个上运行的虚拟机、以及其他示例网络设备。在图1的示例中,IP结构118包括三层节点:主干节点104A至104N(主干节点104)、聚合节点106A至106N(聚合节点106)、以及叶节点108A至108C。其他拓扑可以用在其他示例中。服务器110为与客户120相关联的应用程序和数据提供执行和存储环境,并且可以是物理服务器、虚拟机或其组合。
通常,IP结构118表示在服务器110之间提供点对点连接的层二(L2)和层三(L3)交换和路由组件。在一个示例中,IP结构118包括一组互连的、高性能但现成的基于分组的实现工业标准协议的路由器和交换机。在一个示例中,IP结构118可以包括提供因特网协议(IP)点对点连接的现成组件。
在图1中,虚拟网络控制器114提供用于配置和管理数据中心102的路由和交换基础设施的高级控制器。虚拟网络控制器114可以表示例如软件定义网络(SDN)控制器,其使用诸如路径计算元件(PCE)通信协议(PCEP)的SDN协议来通信和管理数据中心102的设备。在一些示例中,虚拟网络控制器114可以使用可扩展消息和存在协议(XMPP)、PCEP或边界网关协议消息来通信和管理数据中心102的设备。附加地或替代地,虚拟网络控制器114可以使用诸如简单网络管理协议(SNMP)接口、路径计算单元协议(PCEP)接口、设备管理接口(DMI)、CLI、路由系统接口(IRS)、或任何其他节点配置界面的其他接口类型与数据中心102的路由和交换基础设施通信。
根据本公开的示例,虚拟网络控制器114提供逻辑上并且在一些情况下物理上集中的控制器,以促进数据中心102内的一个或多个虚拟网络的操作。在一些示例中,虚拟网络控制器114可以响应于从网络管理员112接收的配置输入而操作。关于与数据中心102的其他设备一起操作的虚拟网络控制器114的附加信息可以在2013年6月5日提交的题为“PHYSICAL PATH DETERMINATION FOR VIRTUAL NETWORK PACKET FLOWS”的国际申请号PCT/US2013/044378中找到,其通过引用并入本文。
虽然未示出,但是数据中心102还可以包括一个或多个附加交换机,路由器,集线器,网关,诸如防火墙、入侵检测、和/或入侵防御设备的安全设备,计算机终端,膝上型计算机,打印机,数据库,诸如蜂窝电话或个人数字助理的无线移动设备,无线接入点,网桥,电缆调制解调器,应用加速器,或其他网络设备。
通常,IP结构118内的网络流量(诸如服务器110之间的数据包流)可以使用许多不同的物理路径遍历IP结构118的物理网络。例如,“数据包流”可以由数据包的报头中使用的值定义,诸如网络“五元组”,即,用于通过物理网络路由数据包的源IP地址、目标IP地址、源端口和目标端口,以及通信协议。例如,协议指定诸如TCP或UDP的通信协议,并且源端口和目标端口指连接的源和目标端口。匹配特定流入口的一个或多个分组数据单元(PDU)组表示流。可以使用PDU的任何参数来广泛地分类流,诸如源和目的地数据链路(例如,MAC)和网络(例如,IP)地址、虚拟局域网(VLAN)标签、传输层信息、多协议标签交换(MPLS)或通用MPLS(GMPLS)标签,以及接收流的网络设备的入口端口。例如,流可以是在传输控制协议(TCP)连接中传输的所有PDU、以特定MAC地址或IP地址为源的所有PDU、具有相同VLAN标签的所有PDU、或在相同交换机端口处接收的所有PDU。
如图1的示例中所示,每个主干节点104通信地耦接到IP结构118中的每个聚合节点106。聚合节点106A和106B耦接到每个叶节点108A至108C,同时聚合节点106M和106N耦接到每个叶节点108M至108P。多级数据中心网络(诸如Clos或具有所谓的“胖树”拓扑的网络)可以在数据中心中使用以实现高性能和弹性。这些胖树网络可以允许多路径。作为一个示例,除了允许将多级Clos网络作为单个设备进行管理之外,虚拟机箱结构(VCF)还允许路径权重反映路径的端到端带宽并对其作出反应。这种功能在VCF中被称为“智能主干线(smarttrunks)”。智能主干线功能由在VCF内运行的虚拟机箱控制协议(VCCP)使能,以在多路径上提供全局优化的权重。诸如IP结构118的IP结构是松散联合的折叠多级网络,其中结构的所有节点运行IP路由协议。可以包括例如外部边界网关协议(EBGP)的路由协议包括IP结构118中的叶节点108之间的所有路径,并且等成本多路径(ECMP)用于利用所有路径。例如,在IP结构118中的任何两个叶节点108之间存在八条路径,假设每条路径遍历聚合节点106两次并且遍历主干节点104中的一个。胖树路由协议(RIFT)允许使用任何一组忽略ECMP约束的所有可用的最小跳路径。有关RIFT的附加信息可以在2018年4月26日由互联网工程任务组(IETF)发布的标题为RIFT:Routing in Fat Trees(draft-ietf-rift-rift-01)的互联网草案中找到,其通过引用并入本文。
在诸如IP结构118的一些多级网络中,每个交换机驻留于网络的定义层中。如图1的示例中所示,主干节点104驻留于第一顶层120A中、聚合节点106驻留于第二层120B中、并且叶节点108驻留于第三层120C中(统称为“层120”)。此外,节点104、106、108中的每一个可以具有到IP结构118中的其他交换机的各种连接。例如,如所描绘的,主干节点104和聚合节点106各自具有连接第一层120A和第二层120B之间的每个交换机的链路122。类似地,如所描绘的,聚合节点106和叶节点108还包括连接第二层120B和第三层120C之间的每个交换机的链路122。
在本文描述的一些示例中,基于链路122相对于IP结构118内的特定交换机的使用来识别各种链路122。更具体地,并如本文所使用的,一些链路122被标识为“上行”链路122A(也称为“北向”链路),一些链路122被标识为“下行”链路122B(也称为“南向”链路),并且一些链路122被标识为“横向”链路122C(也被称为“东-西”链路)。从诸如聚合节点106A的特定交换机的角度来看,上行链路122A是支持与网络拓扑(例如,IP结构118)中更高等级120的邻居交换机(或仅“邻居”)(例如,主干节点104A)的连接的链路122,而下行链路122B是支持到网络拓扑中更低等级的邻居交换机(例如,叶节点108A)的连接的链路122。类似地,横向链路122C是支持到网络拓扑中的相同等级的邻居交换机(例如,聚合节点106B)的连接的链路122。
如本文所使用的,术语“邻居交换机”和“邻居”指的是特定交换机对其具有直接(例如,“一跳”)连接的交换机。在操作期间,特定交换机可以发送仅遍历一跳的“hello”消息,其由该特定交换机的每个邻居交换机接收。类似地,邻居交换机也可以发送由特定交换机接收的一跳hello消息。这样,相邻交换机可以执行握手以检测邻居关系。例如,聚合节点106A的邻居交换机包括主干节点104A、104B、和叶节点108A、108B、108C。虽然上行链路122A和下行链路122B在图1中相对于聚合节点106A标记,但是每个链路122的功能可以相对于链路122所附接的不同交换机进行不同的解释。例如,虽然上文中,链路122A是指相对于聚合节点106A的上行链路122A,但是从主干节点104A的角度看,同一链路122A是下行链路122A。类似地,链路122B相对于聚合节点106A是下行链路122B,但是从叶节点108A的角度看,同一链路122B是上行链路122B。
根据本公开的技术的一些示例方面,IP结构118内的一些交换机被配置为基于从相邻交换机接收的等级信息,自动确定其在网络拓扑(例如,IP结构118)内的等级122。一些交换机可以用“配置等级”手动预配置。例如,当CONFIGURED_LEVEL不等于UNDEFINED_LEVEL时,或者当由其他手动配置的设置暗示等级值时(例如,如果将交换机设置为主干节点或叶节点),可以认为交换机具有配置的等级。这种交换机被称为具有配置的等级。具有未知等级(例如,CONFIGURED_LEVEL=UNDEFINED_LEVEL)的交换机可以基于具有其自己的等级值的邻居来导出它们自己的等级值(例如,LEVEL_VALUE),最初假设特定交换机低于邻居一个等级。特定交换机稍后可以基于随后从相同或其他邻居接收的等级信息来确定原始的导出等级信息可能是不正确的。然后,特定交换机可以更新其自己的等级信息,并且可以将其自己的等级信息传输给其他邻居以供它们自己使用。这种交换机被称为具有“导出等级”(例如,当它们基于本文描述的自动等级导出处理,确定它们自己的等级时)。在一些示例中,可以首先基于CONFIGURED_LEVEL(例如,如果定义了CONFIGURED_LEVEL),然后基于确定的DERIVED_LEVEL(例如,如果CONFIGURED_LEVEL未定义,则LEAF_ONLY为伪,SUPERSPINE_FLAG为伪)定义交换机的LEVEL_VALUE。这样,网络等级信息可以在整个结构118中传播,允许至少一些交换机确定它们自己在结构118中的等级,以及它们自己与相邻交换机的关系。然后,交换机可以基于它们确定的等级和与相邻交换机的关系来转发流量。
本公开的技术可以提供优于现有协议的一个或多个技术优点。例如,本公开的技术可以避免要求网络管理员112为每个交换机手动配置各种参数,诸如在IP结构118或构成IP结构118的各个节点104、106、108(例如,主干节点104、聚合节点106、叶节点108)的配置期间,为每个交换机定义每个等级120。这可以避免配置错误和网络管理员的管理负担。一些示例技术允许管理员在配置这些设备的某些方面之前将带内网络连接到结构内的邻居设备,从而避免将这些设备连接到带外网络的需要。此外,通过自上而下扩散(例如,如本文所述,从主干节点向下)导出等级,允许IP结构118中的节点104、106、108解决当结构中存在不均匀阶段的可能性时的情况,这是自下而上方法可能无法解决的问题。
图2是示出根据本公开的技术的实现自动等级导出处理的路由器270的示例的框图。在一个示例中,等级确定处理280可以作为路由协议258的子模块操作。出于说明的目的,示例路由器270可以在网络100的上下文中描述,并且可以表示图1的节点104、106、108的示例实例。
路由器270包括控制单元232和经由内部链路242A至242N耦接到控制单元232的接口卡236A至236N(“IFC 236”)。控制单元232可以包括一个或多个处理器(图2中未示出),其执行存储到计算机可读存储介质(图2中未示出)的诸如那些用于定义一个或多个软件或计算机程序的软件指令,该计算机可读存储介质诸如包括存储设备(例如,磁盘驱动器或光盘驱动器)或存储器(诸如闪存、随机存取存储器或RAM)或任何其他类型的易失性或非易失性的非暂时性计算机可读介质,其存储使一个或多个处理器执行本文描述的技术的指令。替代地或附加地,控制单元232可以包括专用硬件,诸如一个或多个集成电路、一个或多个专用集成电路(ASIC)、一个或多个专用特殊处理器(ASSP)、一个或多个现场可编程门阵列(FPGA)、或者一个或多个专用硬件的前述示例的任何组合,以执行本文描述的技术。
在该示例中,控制单元232被划分为两个逻辑或物理“平面”以包括第一控制或路由平面234A(“控制平面234A”)和第二数据或转发平面234B(“数据平面234B”)。也就是说,控制单元232实现两个单独的功能,例如路由/控制和转发/数据功能,逻辑上,例如,作为在同一组硬件组件上执行的单独软件实例,或物理上,例如,作为单独的物理专用硬件组件,静态地实现硬件中的功能或动态执行软件或计算机程序来实现功能。
控制平面234A表示控制单元232的硬件或硬件和软件的组合,其定义路由器270的控制平面功能。控制平面234A管理和控制路由器270的行为,包括数据平面234B的行为。控制平面234A的操作系统264为多个不同的处理提供运行时环境。操作系统264可以表示例如UNIX操作系统衍生物,诸如Linux或Berkeley Software Distribution(BSD)。操作系统264提供库和驱动程序,通过这些库和驱动程序,处理可以与例如数据平面234B或包括文件系统、存储设备、和路由器270的主存储器的路由器270的其他硬件交互。操作系统264的库和驱动程序可以包括应用程序编程接口(API),其为开发人员提供标准接口,以调用由库和驱动程序公开的操作系统264和路由器270的功能。
控制平面234A执行一个或多个处理。路由协议处理244(“RP模块244”)表示执行一个或多个路由协议258的路由协议处理,通过该路由协议258可以确定存储到一个或多个路由表260的至少一些路由信息。例如,路由协议258可以包括RIFT协议。路由表260表示用于存储路由信息的数据结构,并且可以表示表、列表、树/字典树或其他数据结构。路由表可以替代地称为路由信息库,或者可以替代地被认为是路由器270的路由信息库内的数据结构。
存储到控制单元232的计算机可读存储设备(图2中未示出)的路由表260可以包括定义诸如图1的IP结构118的网络的网络拓扑的至少一部分的信息。每个路由表260可以与一不同的地址族或诸如单播或多播IPv4和IPv6、以及MPLS的网络层协议相关联。路由表260中的任何一个或多个可以由路由协议处理244预定义,或者可以由管理员112使用配置界面273或由控制器114使用应用程序编程接口(API)276显式创建。路由器270经由配置界面273或API 276接收配置数据,并将配置数据存储到配置数据库265。
配置界面273是在控制平面234B上执行的处理,其提供接口,管理员112、网络运营商或网络管理系统例如可以通过该界面修改路由器270的配置数据库265。配置界面273可以呈现命令行界面(CLI)和/或图形用户界面(GUI),管理员或其他管理实体可以通过其分别使用基于文本的命令和/或图形交互来修改路由器270的配置。另外,或者在替代方案中,配置界面273可以呈现代理,该代理从管理设备接收简单网络管理协议(SNMP)、边界网关协议消息、或Netconf命令,以在路由器270的配置数据库265中设置和检索配置信息。
在所示示例中,应用程序编程接口(API)276是通信接口,控制器114可通过该通信接口修改配置数据库265或修改任何路由表260。控制器114可表示网络管理系统、软件-定义网络(SDN)控制器、和/或编排系统。API 276可以是使用JavaScript对象表示法(JSON)或可扩展标记语言数据对象的基于HTTP的RESTful接口,以在控制器114和路由器270之间交换配置数据和路由信息。API 276可以是另一种类型的API,诸如基于远程处理调用(RPC)的API。
路由协议处理244解析由路由表260中的路由信息定义的拓扑,以选择和/或确定通过网络的一个或多个有效路由。然后,路由协议处理244可以使数据平面234B与这些有效路由同步,其中数据平面234B将这些路由的表示维持为转发表266(或者,“转发信息库(FIB)266”)。路由协议处理244可以生成基数或其他查找树形式的转发表266,以将分组信息(例如,具有目的地信息和/或标签栈的报头信息)映射到下一跳,并最终映射到IFC 236的接口端口。操作系统264的内核可以维护转发表266的主副本,并将部分主副本安装到数据平面234B的转发组件,诸如分组转发引擎。
转发或数据平面234B表示控制单元232的硬件、或硬件和软件的组合,其根据转发表266转发网络流量。数据平面234B可以包括一个或多个转发单元,每个转发单元包括例如一个或多个分组转发引擎(“PFE”),每个分组转发引擎耦接到一个或多个接口卡。转发单元可以各自表示例如密集端口集中器(DPC)、模块化端口集中器(MPC)、灵活物理接口卡(PIC)集中器(FPC)、或例如,可插入路由器270机箱或机箱组合中的其他线卡。
根据本公开的技术,IP结构118中的各种路由器270在各种时间执行等级确定处理280,该各种时间诸如在设备启动期间、当加入结构118时、在结构重新配置期间(例如,当从邻居接收等级变化时)、周期性地、或连续地。路由器270维护其自己的路由器设置282,诸如等级设置(例如,self.level、self.derivedLevel)以及主干或叶设置(例如,self.attribute.isSpine、self.attribute.Leaf2LeafProcedures、self.capabilities.Leaf_to_Leaf_Procedures)。在操作期间,路由器270从邻居路由器接收各种设置信息,诸如等级信息(例如,neighbor.level)或设置信息(例如,neighbor.capabilities.Leaf_to_Leaf_Procedures)。路由器270可以通过例如跨链路122的IFC 236与邻居通信。等级确定处理280使用路由器设置282和邻居设置284来确定路由器270自己的等级。一旦路由器270具有配置的等级,路由器然后可以与其邻居路由器形成邻接,从而允许路由器270参与各种路由功能,诸如,例如,向更低的邻居传输路由的距离矢量或者将链路状态信息传递给更高的邻居。下面参考图3至6更详细地描述等级确定处理280。
距离矢量或距离矢量路由信息可包括关于路由器270的路由表的信息。链路状态信息可以包括通过一个或多个链路状态算法(例如,最短路径优先算法)获得的连接相关信息,即,关于路由器270的邻居路由器的信息。路由协议处理244可以在向上行邻居发送路由信息时根据修改的链路状态路由协议(例如,J.Moy,OSPF Version 2,RFC 2328,1998年4月;和D.Oran,OSI IS-IS Intra-domain Routing Protocol,RFC 1142,1990年2月)的属性进行操作,并且可以在向下行邻居发送路由信息时根据路径矢量协议(例如,Y.Rekhter,ABorder Gateway Protocol(BGP-4),RFC4271,2006年1月)的属性进行操作。RFC 2328、RFC1142、以及RFC 4271的全部内容通过引用并入本文。
图3至5示出了示例网络中的等级确定处理280的几个方面。图3是示出诸如图1中所示的网络100的示例数据中心网络的网络拓扑图(“图”)300的框图。图表300是示例网络的抽象,为了说明等级确定处理280的各种操作而提供。图表300包括主干节点S1至S3(统称为“主干节点S”),聚合节点N111至N 114、N211至N 214、N221至N222、N311至N 314(统称为“聚合节点N”),以及叶节点L11至L18、L21至L28、L31至L38(统称为“叶节点L”),每个表示图表300中的节点。图表300还包括将图表300中的节点连接在一起的各条边304、306。边304表示两个节点之间的上行/下行连接,其中边306表示两个节点之间的横向连接。
图表300中的每个节点表示计算设备,诸如路由器270,并且每个边304、306表示两个设备之间的通信路径。例如,主干节点S可以类似于主干节点104,聚合节点N可以类似于聚合节点106,并且叶节点L可以类似于叶节点108。此外,边304可以类似于链路122,边306可以类似于链路122C。在该示例中,每个节点S、N、L可以表示诸如路由器270的路由器,或者具有路由能力的交换机。这样,出于方便和易于说明的目的,节点S、N、L可以在本文中被解释为好像它们是它们所代表的计算设备。例如,本公开可以将特定节点称为执行某些计算操作,其指明图中的概念节点不执行那些操作,而是节点表示的计算设备正在执行的那些操作。类似地,拓扑图表300或它的其他组件也可以称为它们的真实世界对应物。
在该示例中,存在包括聚合节点N221和N222的部分额外阶段。该额外阶段服务的叶路由器(例如,L21至L24)的数量是没有额外阶段的部分(例如,L25至L26)的两倍。因此,期望通过部分额外阶段的叶路由器产生大约一半的不经过部分额外阶段的叶路由器的吞吐量。
图3进一步包括协调器(Orchestrator)302。协调器302可以类似于图1和2中所示的虚拟网络控制器114。虽然协调器302可以具有到图表300内的任何或所有节点S、N、L的网络连接,但协调器302不一定是结构118内的节点S、N、L,并且图3仅示出了协调器和主干节点S之间的连接(虚线),以便描述某些操作。在一个示例中,协调器302可以通过连接到主干节点S而用作IP结构118的真实源。例如,协调器302可以使用诸如64的默认主干等级值来建立到主干节点S的RIFT邻接。协调器302还可以指明它过载,从而避免接收过境流量。这些邻接还可以提供来自每个主干节点S的结构拓扑的视图。只要该路由器具有任何RIFT邻接,就可以保持节点S、N、L的导出等级。因此,一旦结构118向上(up),如果主干节点S充分连接,则协调器302不需要维持RIFT邻接。协调器302建立与已重新启动或已完全断开的任何主干节点S的RIFT邻接,以便将该主干节点S作为主干节点S添加回结构118中。
在本文描述的各种示例中,节点S、N、L中的任何一个或全部可以执行等级确定处理280的一部分。一些节点S、N、L可以为它们自己确定初始等级。例如,在操作期间(例如,初始交换机启动、结构118形成、到结构118的初始连接、加入结构118),一个或多个节点的等级确定处理280可以确定交换机包括预定义等级。例如,主干节点S1可以被配置作为主干交换机(例如,self.attribute.isSpine=真),或者可以用第一级120A手动配置(例如,self.level=2、self.level=64、self.level=SPINE_LEVEL),并因此可能具有预定义的等级。该特定节点可以如此确定它们的预定义等级:
如本文所述,其中configuredLevel是预设等级,其可以已经由管理员112手动配置为路由器设置282的一部分,并且其中“derive_level()”表示与等级确定处理280相关联的动态等级导出步骤。在RIFT下,动态等级导出步骤可以统称为“零接触供应”(“ZTP”)。在一些实施例中,如果Leaf2LeafProcedures为真,则这意味着已知等级为0。如果Leaf2LeafProcedures设置为伪,则这并不意味着关于等级的任何事情。如果level设置为0,则等级为KNOWN,并且节点为叶,但这并不一定意味着关于Leaf2LeafProcedures的任何事情。
例如,假设主干节点S1配置为self.attribute.isSpine等于真,并且未配置有configuredLevel(例如,UNDEFINED_LEVEL)。这样,当执行初始等级确定处理280时,主干节点S1将self.level设置为SPINE_LEVEL(例如,64)。类似地,假设叶节点L11配置有设置为真的self.attribute.Leaf2LeafProcedures或设置为真的self.attribute.LeafImplementationOnly,并且没有配置有configuredLevel。这样,当执行初始等级确定处理时,叶节点L11的等级确定处理280将self.level设置为0。一些节点S、N、L可以包括configuredLevel。例如,假设管理员114手动配置主干节点S2为self.level等于64,或叶节点L25等于0。这样,那些节点S2、L25的configuredLevel可以具有手动设置的预设等级。
没有预设等级的那些节点S、N、L可以各自执行作为等级确定处理280的一部分的等级导出处理。例如,假设每个聚合节点N都没有预定义等级(例如,self.level=UNDEFINED_LEVEL、configuredLevel=UNDEFINED_LEVEL、self.attribute.isSpine=伪、self.attribute.Leaf2LeafProcedures=伪)。这样,节点N可以周期性地从它们的一跳邻居S、N、L接收通告的等级信息,从而接收邻居等级信息(例如,neighbor.level)。通过在它们之间交换这些数据,节点N可以收敛于确定它们自己的等级(self.level)。
更具体地,在等级导出处理期间,特定节点从相邻节点S、N、L接收指明该邻居的等级的等级数据。如上所述,诸如主干节点S1的一些邻居可以具有预定义的等级。此外,由于其他节点N也可以执行该相同等级确定处理280,因此一些邻居也可能处于确定其自己等级的各个阶段。在整个处理的不同时间,一些邻居的等级可能处于未知状态(例如,self.level=UNDEFINED_LEVEL、self.derivedLevel=UNDEFINED_LEVEL、self.configuredLevel=UNDEFINED_LEVEL),或者它们可能已通过此处理确定了自己的等级。节点在此处理中彼此共享其自己的等级信息,以便于其他节点的等级确定。
当特定节点(例如,节点N111)从邻居接收到等级信息时,作为等级确定处理280的一部分,特定节点可以基于邻居的等级更新其自己的等级信息。然而,在该示例中,N111可能没有存储用于网络100的拓扑的拓扑数据或者指明每个特定邻居是更高等级邻居、更低等级邻居、还是横向邻居的信息。这样,节点N111的等级确定处理280最初评估邻居的已知非叶等级信息,就好像邻居是更高等级邻居一样。例如,节点N111的等级确定处理280可以在从邻居接收等级信息时如此执行以下逻辑:
向邻居发送自己等级信息
节点N111的等级确定处理280通过假设与其新邻居相比的南向角色从其自己的邻居导出可实现的最高等级(最高可用等级(HAL))。换句话说,HAL表示尚未收到的所有有效提供的等级(VOL)中定义的最高等级值。由于叶节点根据定义不具有任何南向邻居,因此主体节点不从任何叶节点L导出等级信息。当主体节点从具有大于零的已知等级的邻居接收等级数据时,主体节点假设邻居是北向邻居(例如,处于比自己大一个等级)并且将self.level设置为比该邻居的值小1(例如,HAL减去1)。
此外,等级确定处理280可以被配置为存储其是否具有导出等级而不是预设等级(例如,self.derivedLevel=HAL-1)的指示。在一些情况下,邻居节点可能已经是横向邻居或下行邻居。这样,主体节点可能已经假设小于其真实等级的self.level。因此,如果主体节点从另一个邻居接收到指明邻居的等级小于主体节点的导出等级加1的等级信息,则主体节点将其自己的等级改变为比更高的邻居等级小1。
图4A和4B是示出示例场景的框图400、420,其中来自拓扑图表300的节点S2、N211、N221、N222、和L21的子集在结构配置期间以特定顺序执行等级确定处理280的多个方面。图4A和4B中的每一个示出节点S2、N211、N221、N222和L21以及表示节点之间的通信路径的特定边402A至402F(统称为“边402”)。边402可以类似于图3中所示的边304、306。另外,示出了每个节点S2、N211、N221、N222和L21,其具有与特定节点邻接的等级指明符404,以虚线示出。等级指明符404中的数值仅用于说明,以表示关联节点当前确定其处于哪个等级(例如,节点的self.level)。
现在参考图4A,假设节点S2、N211、N221、N222和L21中的每一个最初配置有:
self.level=UNDEFINED_LEVEL
self.derivedLevel=UNDEFINED_LEVEL
self.configuredLevel=UNDEFINED_LEVEL,
此时,节点S2、N211、N221、N222和L21中的任何的等级确定处理280将仅遇到未知等级的节点,并因此不会尝试重新配置其自己的等级。
接下来,假设主干节点S2被配置为主干节点(例如,self.attribute.isSpine=真)。在时间t1,,主干节点S2的等级确定处理280执行如上所述的初始等级确定处理,从而确定S2是主干节点,并且主干节点S2的self.level被设置为64(如图4A中所示)。这恰好是主干节点S2的“真实”(即,适当的)等级。
稍后,在时间t2,节点N211从其邻居节点S2、N221、N222接收等级信息。在一个示例中,节点N211可以向其邻居节点S2、N221、和N222查询等级信息。虽然节点N221和N222在时间t2仍然是UNDEFINED_LEVEL,但是节点S2具有已知的非零等级。节点S2传输或回复其自己的等级信息。在RIFT协议下的一个示例中,通过链路信息单元(LIE)(例如,生存时间(TTL)为1以防止到达超出拓扑中的单个链路)来传输等级信息。可以自动生成等级信息(例如,通过路由协议258)并将其传输到邻居节点,在这种情况下,不执行对邻居节点的查询,或者在一些示例中,可以通过对等级信息的请求(查询)来提示。节点N211在基于节点S2的等级信息执行等级导出处理时改变其self.level。节点N211和节点S2之间在时间t2的信息交换由箭头边402A表示。当交换机接收到LIE上持续一段保持时间间隔的邻居的有效LIE时,会发生有效提供的等级(VOL)。例如,当邻居的LIE通过检查邻接形成而忽略涉及等级值的子句时,邻居的LIE可以被认为是有效的。在其他实施例中,当传递基本分组检查规则时(例如,不等待邻接形成),邻居的LIE可以被认为是有效的。与VOL相关联的LIE标识邻居的等级信息。在一些示例中,来自提供等级值为零的邻居节点的有效LIE不被视为VOL。在一些示例中,来自包括标志设置“NOT_A_ZTP_OFFER=真”的邻居节点的有效LIE不被视为VOL。
例如,在主干节点S2作为“邻居”节点的情况下(为了节点N211执行此阶段的目的),节点N211确定主干节点S2不是叶节点,该neighbor.level大于零,该self.level是UNDEFINED_LEVEL,而neighbor.level不是UNDEFINED_LEVEL。如图4A所示,因此,节点N211将self.level设置为63,比主干节点S2的等级小1。这也恰好是节点N211的真实等级。
在时间t3,在一些示例中,聚合节点N222向其邻居节点N211、N221、和L21查询等级信息。节点N211、N221、和L21用其自己的等级信息回复,例如通过发送LIE。在一些示例中,聚合节点N222自动接收该信息而无需显式查询。节点N222和节点N211之间在时间t3的信息交换由箭头边402B表示。它们的回复表明节点N221和L21在时间t3仍然是UNDEFINED_LEVEL,但是节点N211表示它具有已知的非零等级。响应于从N211、N221、和L21接收到响应,节点N222的等级确定处理280将其self.level改变为62,比邻居节点N211的等级小1。这是节点N222的真实等级。
到目前为止,等级信息已从顶部向下传播,并且每个节点迄今已确定了适当的等级。在时间t4,如果节点N221试图从邻居N211导出等级信息,则节点N221也将以62的适当等级结束。然而,在该示例中,如边402C所表示的,节点N221恰好首先从邻居节点N222接收等级信息。这样,在执行等级导出处理时,节点N221假设N222是北向邻居,并因此将其自己的等级设置为61,比N222的62的neighbor.level小1。这对于节点N221是错误等级。
在该示例中,该不一致性在时间t5进一步向下传播到叶节点L21。例如,假设节点L21未被配置为叶节点,或者节点L21在没有执行初始等级确定处理的情况下执行等级导出处理。此外,在该示例中,如边402D所表示的,节点L21碰巧从“错误的”邻居N221(例如,具有不正确信息的邻居)接收等级信息。这样,节点L21将其自己的等级设置为60,比节点N221的61的neighbor.level小1。这对于叶节点L21也是错误的等级。
图4B示出了等级确定处理280如何允许节点从如图4A所示的这种情况中恢复。如上所述,节点S、N、L的等级确定处理280跟踪它们自己的等级是预设等级还是导出等级。如果特定节点从邻居接收到等级信息,该邻居宣布其等级比该节点的导出等级高一级以上,则该节点的等级确定处理280将其self.level改变为比邻居的等级小1(如上面用于等级导出处理280的多个方面的伪代码所体现的)。
例如,在时间t6,如边402E所示,聚合节点N221(当前具有61的self.derivedLevel)可以从N211接收等级信息。节点N211提供63的neighbor.level。这样,由于self.level是KNOWN、neighbor.level是KNOWN、并且neighbor.level大于self.level加1,那么节点N221的等级确定处理280将它的self.level更新为62,比N211的等级小1。这对于节点N221是正确等级,并且当节点N221假设它是节点N222的南向邻居时,这用于纠正原始错误的至少一部分。
然而,在这个阶段,基于上述事件顺序,网络100中的几个不一致性仍然可能是突出的。一个突出的问题是叶节点L21仍然具有不正确的等级。另一个突出的问题是节点N222仍然可以将节点N221解释为南向邻居。
上述不一致性可以通过等级确定处理280在节点改变其导出等级时添加附加处理来纠正,诸如在N221的上述示例中从61变为62。在配置期间,相邻节点可以通过交换握手消息来彼此形成邻接。邻接标识两个连接节点之间关系的某些方面,诸如各自的标识符、其支持的属性以及每个节点所处的等级、邻接节点相对于特定节点的相对方向、以及每个相应节点因此如何处理链路。邻接关系的示例类型(或仅“邻接”)包括上行邻接(例如,其中,邻居处于比特定节点更高的等级),下行邻接(例如,其中,邻居处于比特定节点更低的等级),横向邻接(例如,其中,邻居与特定节点处于同一等级),以及未知邻接(例如,其中,一个或多个邻居或特定节点当前处于未知等级)。
此外,在握手消息向每个节点反映从另一节点的握手获得的某些信息之前,不形成“邻接关系”。从概念上讲,每个边304、306可以被认为是最终将形成的潜在邻接。边304、306最初以“未知”邻接开始,意味着共享边304、306的邻居节点可能尚未发现彼此,或者邻接中的一个邻居节点可能还没有关于另一节点,或其自己的等级,或关于邻接本身的信息。路由器可以基于邻接信息对邻居执行不同的操作。例如,给定路由器可以向其南向邻居传输距离矢量,其中该路由器可以向其北向邻居传输链路状态信息。如等级确定处理280所提供的,在诸如RIFT的协议中,正确确定拓扑中的邻居的方向允许根据它们的相对关系来利用不同的邻居。这样,对于邻居来说,理解它们所连接的节点以及邻居在拓扑中彼此的相对位置是很重要的。
例如,在时间t1,主干节点S2不具有与节点N211形成的邻接。然而,在时间t2,节点N211引起在节点N211和S2之间形成邻接。形成的邻接也可以由带箭头的边402A表示。类似地,可以在上述时间t3至t5在节点N211和N222之间(箭头边402B)、在节点N222和N221之间(箭头边402C)之间分别形成邻接,然后在时间t6在节点N221和N211之间形成邻接。与上面最初确定的节点N221和L21的错误等级一样,N222和N221之间以及N221和L21之间的邻接是可疑的。
为了纠正这样的潜在的邻接问题,等级确定处理280还可以包括在特定时间断开一个或多个现有的邻接。每当节点将其公告的等级更改为其自己的等级时,然后该节点也重置任何早先存在的邻接。例如,在时间t6,在改变节点N221的self.level时,等级确定处理280可以包括断开节点N221与相同等级或更低等级的任何其他节点之间的任何现有邻接。在图4A和4B所示的示例中,节点N221与节点N222(如图4A中的箭头边402C所示)和节点L21(如图4A中的箭头边402D所示)存在邻接。因此,在将self.level更新为62之后,节点N221断开其与节点N222的邻接,因为节点N222处于相同的等级,并且断开与L21的邻接,因为L21处于更低等级。在一些示例中,断开邻接涉及节点N221在本地删除某些邻居信息,以及向该邻居传输邻接断开命令,从而使该断开邻居也删除关于源节点N221的本地信息,并且还引起该断开的邻居将自己的self.derivedLevel设置为UNDEFINED_LEVEL。在其他示例中,邻居可以具有用于ZTP的更多信息,该ZTP允许其即使在失去该邻接之后仍保持“定义”等级。
一旦邻接被断开,可以使用等级确定处理280重新组成它们,例如,允许叶节点L21稍后从节点N221或N222中的任一个发现其适当的等级61。在一些示例中,当节点丢失与具有HAL等级(例如,比当前节点的确定值大1)的邻居的所有邻接时,则当前节点恢复到未定义等级(例如,self.level=UNDEFINED_VALUE、derived.level=UNDEFINED_VALUE),然后或许具有预先配置的延迟地重新执行等级导出处理280。此外,在一些情况下,节点可能最终确定等级改变的更低等级。通过首先从更高值下降到未定义(例如,由于HAL的所有VOL的丢失),然后从随后由于节点自己的变化而出现的所有可用VOL中选择更低的HAL来促进这种等级的降低。
等级确定处理280的某些方面允许网络100内的较少手动配置。如上所述,主干节点S可以配置有isSpine的属性而不是特定等级(例如,提供用于播种IP结构118的值)。这有助于避免某些主干节点的潜在错误配置。通过等级确定处理280的等级数据的自上而下的扩散允许网络中的一些节点发现它们自己的等级数据及其邻居的等级数据。
在一些情况下,所有主干节点S的丢失可能导致其他节点反复尝试从彼此导出等级,将它们自己的等级降低一级并相互重置。为了避免这种情况,节点在每个传送给提供它们的等级作为值HAL的节点的LIE上设置标志“NOT_A_ZTP_OFFER”。NOT_A_ZTP_OFFER设置为真的LIE不构成VOL,并因此接收邻居不对其起作用。
此外,当节点的HAL改变时,该节点删除所有早先存在的VOL并在预先确定的持续时间(“抑制持续时间”)停止接受VOLs以防止过度振荡。虽然潜在地减慢了等级收敛,但是这种抑制持续时间有益于IP结构118的稳定性,有利于节点初始收敛到网络中。在一些示例中,已经丢失其HAL但没有南向邻接的节点可以跳过抑制期。这可能加速等级下降收敛。
在一些网络100中,IP结构118中的路由器可能不会永久地连接到一不同的带外网络(未示出)。在故障排除期间,路由器可能暂时配备有带外接口以连接到带外网络,但这样的配置可能需要物理干预。为了避免这种需求,在建立正式邻接之前,提供路由器的回送地址作为到其邻居的路由可能是有用的。例如,假设在时间t1之前,管理员112经由带外网络连接到节点N211。此时,节点N211没有建立的邻接。此外,在N211任意邻居S2、N221、N222之间尚未建立正式的邻接,因为没有一个具有已知等级。
这样,可以允许节点S、N、L与其邻居形成有限的邻接(或“未知的邻接”)。诸如N211的尚未具有导出或配置的等级的主体节点可以将其自己的信息和本地前缀发送给其邻居,该邻居也可以这样做。这些有限的邻接可以被视为横向边306的简化版本(例如,东-西链路)。通过分发本地前缀(例如,路由器回送),这允许节点通信并建立其他会话或便于故障排除。例如,这可以允许管理员112经由带外网络登录节点N211,然后通过有限的邻接边402C从N211连接到其任何邻居(诸如N221)。
等级确定处理280可以基于下表来管理邻接的创建:
表1-邻接形成表
表1示出了由等级确定处理280基于特定路由器及其邻居之一的若干设置形成的邻接类型。更具体地,第一列标识特定路由器的等级值(例如,self.level)以及是否在该路由器上启用了叶处理(例如,self.attribute.Leaf2LeafProcedures)。第二列标识邻居的等级值(例如,neighbor.level)以及是否在该邻居上启用了叶处理(例如,neighbor.attribute.Leaf2LeafProcedures)。第三列基于在前两列中识别的值识别由等级确定处理280形成的邻接的类型。
此外,如上所述,可以基于路由器彼此的相对方向来形成一些邻接。更具体地,可以在两个路由器之间形成上行和下行邻接,其中第三列中列出的第一邻接类型相对于特定路由器(例如,自己),并且第二邻接类型相对于邻居路由器(例如,邻居)。例如,如果self.level大于零,self.attribute.Leaf2LeafProcedures和neighbor.attribute.Leaf2LeafProcedures都是伪,并且neighbor.level比self.level大1,则邻居是特定路由器的北向邻居。这样,从特定路由器的角度来看,与邻居的邻接是上行邻接,并且从邻居路由器的角度来看,与特定路由器的邻接是下行邻接(即,“上行/下行”)。
最高三向邻接(HAT)是节点的所有形成的三向邻接的最高邻居等级。在一些示例中,以LEVEL_VALUE为0开始的节点(即,该节点采用叶函数或具有0的CONFIGURED_LEVEL)可以另外根据上述过程计算HAT,但是可以不使用它来计算DERIVED_LEVEL。HAT可用于限制邻接形成。在一些示例中,如果Self.level大于零,neighbor.level为0,neighbor.leaf过程为任意,并且邻接形成是下行/上行邻接,则当且仅当左节点是HAT时才形成邻接。
另外,当特定节点具有导出等级并且不具有与处于更低等级的节点的任何邻接时,则该节点可以被配置为设置其过载标志以指明其将不接受传输流量。此外,支持叶对叶处理的节点不会形成任何下行邻接,并因此也可以配置为设置其过载标志。
图5是示出诸如图1中所示的网络100的示例数据中心网络的网络拓扑图500的框图。图表500可以类似于图3中所示的图表300。在一些网络拓扑中,可能希望在叶节点之间具有横向边。此外,如上所述,在某些情况下限制邻接形成可能是有利的。在图5中所示的示例中,存在连接叶节点L41和L42的横向边502。如果节点L41和L42都支持叶到叶处理,则两个节点L41、L42将被设置为0的self.level,并且横向边502将被正确地建立为横向邻接(例如,双向,东/西链路)(如图5所示)。
然而,例如,如果节点L42没有表明支持叶到叶处理,并且没有将其self.level设置为0,则节点L42可以从其北向邻居N411至N414导出等级62。此外,如果L41没有表明支持叶到叶处理,也没有将自己的self.level设置为0,那么这将随后导致节点L41可能从节点L42导出等级61,从而导致节点L41认为它与聚合节点N431至N434处于同一等级,并且不正确地形成与节点N431至N434的横向邻接而不是上行/下行邻接。这样的错误可能进一步导致节点L42用于传输针对节点L41的流量,从而可能导致流量流动问题。
另一方面,如果节点L41没有表明支持叶到叶处理,但是L42确实表明支持叶到叶处理(并因此设置为0级),那么L41将导出它的等级为60(比节点N431至N434小1),并且L42将其等级设置为0。这样,L41和L42之间将分别形成下行/上行的邻接。
图6是示出根据本公开的技术的用于自动确定结构118中的网络设备的等级信息的示例方法的流程图600。就图2的路由器270而言解释图6的方法。然而,其他网络设备可以执行该方法或基本类似的方法。此外,图5的方法的步骤不一定按所示顺序执行。也就是说,步骤可以以不同的顺序执行,并且一些步骤可以并行执行。
最初,路由器270的控制平面234A从多个网络设备接收消息,消息中的每一个指明发送网络设备在网络拓扑中的等级值(610)。例如,消息可以是从在邻居节点上执行的等级确定处理280发送的RIFT LIE消息。路由器270基于由消息指明的相应等级确定第一网络设备在网络拓扑中的等级值(620)。如上所述,例如,等级确定处理280可以包括将路由器270的self.level设置为比邻居的等级小1。在一些示例中,确定路由器270的等级还包括从确定中排除来自叶网络设备的消息的任何考虑。路由器270还基于所确定的等级确定将流量转发到多个网络设备中的一个或多个的机制(630)。例如,等级确定处理280可以将邻居识别为上行或更高等级的邻居,并因此可以确定将链路状态信息传递给该邻居,或者可以将该邻居识别为下行或更低等级的邻居,并因此可以确定将距离矢量传递给该邻居。路由器270还根据所确定的机制转发网络流量(640)。例如,路由协议258可以随后基于为每个特定邻居所确定的机制将链路状态信息或距离矢量传递给邻居。
路由器270可以基于第二网络设备的等级,与多个网络设备中的第二网络设备形成邻接关系。此外,路由器270可以基于与第二网络设备形成邻接关系并且进一步基于第三网络设备的等级,来断开与第三网络设备的现有邻接关系,其中,第三网络设备的等级低于第二网络设备的等级。
路由器270还可以确定多个网络设备中的第二网络设备处于的等级高于第一网络设备的等级,并且将路由器270的等级改变为比第二网络设备的等级小1。例如,路由器270的self.level可以被存储为路由器设置282的一部分,或者路由器270的各个邻居的neighbor.level可以被存储为邻居设置284的一部分。
本发明中描述的技术可至少部分地以硬件、软件、固件或其任何组合来实施。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效的集成或离散逻辑电路,以及这些组件的任何组合。术语“处理器”或“处理电路”通常可以指任何单独的或与其他逻辑电路组合的前述逻辑电路或任何其他等效电路。包括硬件的控制单元还可以执行本公开的一种或多种技术。
这样的硬件、软件和固件可以在同一设备内或在单独的设备内实现,以支持本公开中描述的各种操作和功能。另外,任何所描述的单元、模块或组件可以一起或单独地实现为离散但可互操作的逻辑设备。将不同特征描述为模块或单元旨在突出不同的功能方面,并且不一定暗示这些模块或单元必须由单独的硬件或软件组件实现。而是,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件组件执行,或者集成在公共或单独的硬件或软件组件中。
本发明中所描述的技术还可在包含指令的诸如计算机可读存储介质的计算机可读媒体中实施或编码。嵌入或编码在计算机可读介质中的指令可以使可编程处理器或其他处理器执行该方法,例如,当执行指令时。计算机可读介质可以包括非暂时性计算机可读存储介质和瞬态通信介质。有形和非暂时性的计算机可读存储介质可包括随机存取存储器(RAM)、只读存储器(ROM),可编程只读存储器(PROM),可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁性介质、光学介质、或其他计算机可读存储介质。术语“计算机可读存储介质”是指物理存储介质,而不是信号、载波、或其他瞬态介质。
除上述之外或作为其替代,描述了以下示例。以下任何示例中描述的特征可以与本文描述的任何其他示例一起使用。
示例1。一种方法,包括:由第一网络设备接收来自网络中多个网络设备的消息,每一个所述消息指明相应的发送网络设备在网络拓扑中的等级值;由所述第一网络设备并基于由所述消息指明的相应的所述等级,确定所述第一网络设备在所述网络拓扑中的等级值;由所述第一网络设备并基于确定的所述等级值,确定将网络流量转发到所述多个网络设备中的一者或多者的机制;以及根据确定的所述机制转发所述网络流量。
示例2。根据权利要求1所述的方法,进一步包括:由所述第一网络设备基于所述多个网络设备中的第二网络设备的等级,与所述第二网络设备形成邻接关系。
示例3。根据权利要求2所述的方法,进一步包括:由所述第一网络设备基于与第二网络设备形成的所述邻接关系并且进一步基于第三网络设备的等级,断开与所述第三网络设备的现有邻接关系,其中,所述第三网络设备的等级低于所述第二网络设备的所述等级。
示例4。根据权利要求1所述的方法,进一步包括:由所述第一网络设备确定所述多个网络设备中的第二网络设备所处的等级高于所述第一网络设备的所述等级;以及响应于确定所述第二网络设备所处的等级更高,将所述第一网络设备的所述等级改变为比所述第二网络设备的等级小1。
示例5。根据权利要求1所述的方法,其中,确定所述第一网络设备的等级进一步包括:在确定期间从所述确定中排除来自叶网络设备的消息的任何考虑。
示例6。根据权利要求1所述的方法,其中,所述消息包括胖树中的路由(RIFT)链路信息元素(LIE)消息。
示例7。根据权利要求1所述的方法,其中,确定等级值进一步包括:第一确定邻居等级大于零;第二确定以下各项中的一项:(1)自己等级是未知的,和(2)所述自己等级是已知的并且小于所述邻居等级;以及基于所述第一确定和所述第二确定将所述等级值设置为比所述邻居等级小1。
示例8。根据权利要求1的方法,其中,所述机制包括传递链路状态信息和传递距离矢量中的一者,其中,转发所述网络流量进一步包括以下各项中的一项:将链路状态信息传递给上行邻居;将距离矢量传递给下行邻居。
示例9。第一网络设备,包括:多个网络接口,被配置为通信地耦接到形成网络拓扑的多个网络设备;以及包括处理电路的一个或多个处理器,该处理电路被配置为:接收来自所述多个网络设备的消息,每一个所述消息指明所述多个网络设备中的相应的发送网络设备的等级值;基于由所述消息指明的相应的所述等级,确定所述第一网络设备在所述网络拓扑中的等级值;基于确定的所述等级值,确定将网络流量转发到所述多个网络设备中的一者或多者的机制;以及根据确定的所述机制转发所述网络流量。
示例10。根据权利要求9所述的第一网络设备,其中,所述处理电路被配置为:基于所述多个网络设备中的第二网络设备的等级,与所述第二网络设备形成邻接关系。
示例11。根据权利要求10的网络设备,其中,所述处理电路被配置为:基于与第二网络设备形成的所述邻接关系并且进一步基于第三网络设备的等级,断开与所述第三网络设备的现有邻接关系,其中,所述第三网络设备的等级低于所述第二网络设备的所述等级。
示例12。根据权利要求9的网络设备,其中,所述处理电路被配置为:确定所述多个网络设备中的第二网络设备所处的等级高于所述第一网络设备的所述等级;以及响应于确定所述第二网络设备所处的等级更高,将所述第一网络设备的所述等级改变为比所述第二网络设备的等级小1。
示例13。根据权利要求9的网络设备,其中,所述处理电路被配置为至少部分地通过在确定期间从所述确定中排除来自叶网络设备的消息的任何考虑来确定所述第一网络设备的等级。
示例14。根据权利要求9的网络设备,其中,所述消息包括胖树中的路由(RIFT)链路信息元素(LIE)消息。
示例15。根据权利要求9所述的第一网络设备,其中,所述处理电路被配置为至少部分地通过以下方式确定等级值:第一确定邻居等级大于零;第二确定以下各项中的一项:(1)自己等级是未知的,和(2)所述自己等级是已知的并且小于所述邻居等级;以及基于所述第一确定和所述第二确定将所述等级值设置为比所述邻居等级小1。
示例16。根据权利要求9的网络设备,其中,所述机制包括传递链路状态信息和传递距离矢量中的一者,其中,所述处理电路被配置为通过以下各项中的一项转发所述网络流量:将链路状态信息传递给上行邻居;将距离矢量传递给下行邻居。
示例17。一种存储指令的计算机可读存储介质,所述指令被执行时使得第一网络设备的处理器:由第一网络设备接收来自网络中多个网络设备的消息,每一个所述消息指明相应的发送网络设备在网络拓扑中的等级值;由所述第一网络设备并基于由所述消息指明的相应的所述等级,确定所述第一网络设备在所述网络拓扑中的等级值;由所述第一网络设备并基于确定的所述等级值,确定将网络流量转发到所述多个网络设备中的一者或多者的机制;以及根据确定的所述机制转发所述网络流量。
已经描述了各种示例。这些和其他示例在以下权利要求的范围内。

Claims (9)

1.一种方法,包括:
由第一网络设备接收来自网络中多个网络设备的消息,每一个所述消息指明相应的发送网络设备在网络拓扑中的等级值,
其中,所述多个网络设备包括至少一个邻居网络设备,其中,至少一个消息指明所述邻居网络设备的邻居等级值;
由所述第一网络设备并基于由所述消息指明的相应的所述等级值,确定所述第一网络设备在所述网络拓扑中的等级值,其中,确定等级值进一步包括:
第一确定所述邻居等级值大于零;
第二确定以下各项中的一项:
自己等级值是未知的,和
所述自己等级值是已知的并且小于所述邻居等级值;以及
基于所述第一确定和所述第二确定将所述等级值设置为比所述邻居等级值小1;
接收来自所述多个网络设备的第二网络设备的随后的消息,该消息指明所述第二网络设备的等级值;
由所述第一网络设备并且基于由所述随后的消息指明的相应的等级值,确定所述多个网络设备中的所述第二网络设备所处的等级值高于所述第一网络设备的所述等级值;
响应于确定所述第二网络设备所处的等级值更高,将所述第一网络设备的所述等级值改变为比所述第二网络设备的所述等级值小1;
由所述第一网络设备基于所述多个网络设备中的所述第二网络设备的等级值,与所述第二网络设备形成邻接关系;
由所述第一网络设备基于与所述第二网络设备形成的所述邻接关系进一步基于所述第一网络设备的等级值改变并且进一步基于邻居网络设备的等级值,断开与所述邻居网络设备的现有邻接关系以及与所述第一网络设备的相同等级值或更低等级值的网络设备的任何其他早先存在的邻接关系,其中,所述邻居网络设备的等级值低于所述第二网络设备的所述等级值;
由所述第一网络设备与邻居网络设备共享所确定的所述第一网络设备的等级值;
由所述第一网络设备并基于确定的所述等级值,确定将网络流量转发到所述多个网络设备中的一者或多者的机制;以及
根据确定的所述机制转发所述网络流量。
2.根据权利要求1所述的方法,其中,确定所述第一网络设备的所述等级值进一步包括:在确定期间排除来自叶网络设备的消息的任何考虑。
3.根据权利要求1所述的方法,其中,所述消息包括胖树中的路由链路信息元素消息。
4.根据权利要求1至3中任一项所述的方法,其中,所述机制包括传递链路状态信息和传递距离矢量中的一者,其中,转发所述网络流量进一步包括以下各项中的一项:将链路状态信息传递给上行邻居;
将距离矢量传递给下行邻居。
5.第一网络设备,包括:
多个网络接口,被配置为通信地耦接到形成网络拓扑的多个网络设备,其中,所述多个网络设备包括至少一个邻居网络设备,其中,至少一个消息指明所述邻居网络设备的邻居等级值;以及
包括处理电路的一个或多个处理器,该处理电路被配置为:
接收来自所述多个网络设备的消息,每一个所述消息指明所述多个网络设备中的相应的发送网络设备的等级值;
基于由所述消息指明的相应的所述等级值,确定所述第一网络设备在所述网络拓扑中的等级值,其中,确定等级值进一步包括:
第一确定所述邻居等级值大于零;
第二确定以下各项中的一项:
自己等级值是未知的,和
所述自己等级值是已知的并且小于所述邻居等级值;以及
基于所述第一确定和所述第二确定将所述等级值设置为比所述邻居等级值小1;
接收来自所述多个网络设备的第二网络设备的随后的消息,该消息指明所述第二网络设备的等级值;
由所述第一网络设备并且基于由所述随后的消息指明的相应的等级值,确定所述多个网络设备中的所述第二网络设备所处的等级值高于所述第一网络设备的所述等级值;
响应于确定所述第二网络设备所处的等级值更高,将所述第一网络设备的所述等级值改变为比所述第二网络设备的所述等级值小1;
基于所述多个网络设备中的所述第二网络设备的等级值,与所述第二网络设备形成邻接关系;
基于与所述第二网络设备形成的所述邻接关系进一步基于所述第一网络设备的等级值改变并且进一步基于邻居网络设备的等级值,断开与所述邻居网络设备的现有邻接关系以及与所述第一网络设备的相同等级值或更低等级值的网络设备的任何其他早先存在的邻接关系,其中,所述邻居网络设备的等级值低于所述第二网络设备的所述等级值;
与邻居网络设备共享所确定的所述第一网络设备的等级值;
基于确定的所述等级值,确定将网络流量转发到所述多个网络设备中的一者或多者的机制;以及
根据确定的所述机制转发所述网络流量。
6.根据权利要求5所述的第一网络设备,其中,所述处理电路被配置为至少部分地通过在确定期间排除来自叶网络设备的消息的任何考虑来确定所述第一网络设备的所述等级。
7.根据权利要求5所述的第一网络设备,其中,所述消息包括胖树中的路由链路信息元素消息。
8.根据权利要求5至7中任一项所述的网络设备,其中,所述机制包括传递链路状态信息和传递距离矢量中的一者,其中,所述处理电路被配置为通过以下各项中的一项转发所述网络流量:将链路状态信息传递给上行邻居;将距离矢量传递给下行邻居。
9.一种存储指令的计算机可读存储介质,所述指令被执行时使得第一网络设备的处理器:
由第一网络设备接收来自网络中多个网络设备的消息,每一个所述消息指明相应的发送网络设备在网络拓扑中的等级值,
其中,所述多个网络设备包括至少一个邻居网络设备,其中,至少一个消息指明所述邻居网络设备的邻居等级值;
由所述第一网络设备并基于由所述消息指明的相应的所述等级值,确定所述第一网络设备在所述网络拓扑中的等级值,其中,确定等级值进一步包括:
第一确定所述邻居等级值大于零;
第二确定以下各项中的一项:
自己等级值是未知的,和
所述自己等级值是已知的并且小于所述邻居等级值;以及
基于所述第一确定和所述第二确定将所述等级值设置为比所述邻居等级值小1;
接收来自所述多个网络设备的第二网络设备的随后的消息,该消息指明所述第二网络设备的等级值;
由所述第一网络设备并且基于由所述随后的消息指明的相应的等级值,确定所述多个网络设备中的所述第二网络设备所处的等级值高于所述第一网络设备的所述等级值;
响应于确定所述第二网络设备所处的等级值更高,将所述第一网络设备的所述等级值改变为比所述第二网络设备的所述等级值小1;
基于所述多个网络设备中的所述第二网络设备的等级值,与所述第二网络设备形成邻接关系;
基于与所述第二网络设备形成的所述邻接关系进一步基于所述第一网络设备的等级值改变并且进一步基于邻居网络设备的等级值,断开与所述邻居网络设备的现有邻接关系以及与所述第一网络设备的相同等级值或更低等级值的网络设备的任何其他早先存在的邻接关系,其中,所述邻居网络设备的等级值低于所述第二网络设备的所述等级值;
与邻居网络设备共享所确定的所述第一网络设备的等级值;
基于确定的所述等级值,确定将网络流量转发到所述多个网络设备中的一者或多者的机制;以及
根据确定的所述机制转发所述网络流量。
CN201811005088.0A 2017-10-17 2018-08-30 用于多级网络结构的简化配置 Active CN109672550B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762573495P 2017-10-17 2017-10-17
US62/573,495 2017-10-17
US201862625452P 2018-02-02 2018-02-02
US62/625,452 2018-02-02
US16/015,724 US10848416B2 (en) 2017-10-17 2018-06-22 Reduced configuration for multi-stage network fabrics
US16/015,724 2018-06-22

Publications (2)

Publication Number Publication Date
CN109672550A CN109672550A (zh) 2019-04-23
CN109672550B true CN109672550B (zh) 2023-09-19

Family

ID=63524083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811005088.0A Active CN109672550B (zh) 2017-10-17 2018-08-30 用于多级网络结构的简化配置

Country Status (3)

Country Link
US (1) US10848416B2 (zh)
EP (1) EP3474502B1 (zh)
CN (1) CN109672550B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11477289B2 (en) * 2018-10-09 2022-10-18 Nokia Solutions And Networks Oy Supporting a routing protocol with a transport layer protocol
US11165636B2 (en) * 2018-11-29 2021-11-02 Cisco Technology, Inc. Systems and methods for enterprise fabric creation
CN111526113B (zh) 2019-02-02 2023-05-30 中兴通讯股份有限公司 协议处理方法及装置、存储介质
US10979300B2 (en) * 2019-06-20 2021-04-13 Kaloom Inc. Computing device and methods for synchronizing networking information with a topology server
CN110426971B (zh) * 2019-06-26 2021-07-20 北京全路通信信号研究设计院集团有限公司 一种轨道交通控制网络数据采集和管理方法及系统
US11175914B2 (en) * 2019-06-28 2021-11-16 Aras Corporation Calculation engine for performing calculations based on dependencies in a self-describing data system
CN112865991A (zh) * 2019-11-26 2021-05-28 中兴通讯股份有限公司 一种零配置ztp状态的切换方法、实现设备及存储介质
US11140035B2 (en) * 2019-12-11 2021-10-05 Oracle International Corporation System and method for automating zero touch provisioning of cloud networks
CN111541615A (zh) * 2020-04-24 2020-08-14 北京邮电大学 基于VxWorks操作系统的双协议栈系统
CN113329351B (zh) * 2021-06-02 2022-08-30 合肥工业大学 一种消息传输的方法及其设备
CN114567585B (zh) * 2022-02-28 2024-05-03 上海掌门科技有限公司 一种确定路由设备的路由级别信息的方法与设备
CN116319362B (zh) * 2023-05-10 2023-07-28 湖南天冠电子信息技术有限公司 一种网络拓扑图生成方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101554022A (zh) * 2006-09-29 2009-10-07 思科技术公司 用于具有树内通信优化的ospf网络的基于树的无线网

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366111B2 (en) 2005-04-08 2008-04-29 Cisco Technology, Inc. Arrangement for providing optimized connections between peer routers in a tree-based ad hoc mobile network
US8270313B2 (en) * 2009-11-13 2012-09-18 Mitsubishi Electric Research Laboratories, Inc. Ranking nodes in networks with topologies arranged as directed acyclic graphs
US9008092B2 (en) 2011-10-07 2015-04-14 Cisco Technology, Inc. Route prefix aggregation using reachable and non-reachable addresses in a computer network
US8750288B2 (en) 2012-06-06 2014-06-10 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US9083613B2 (en) * 2012-10-16 2015-07-14 Cisco Technology, Inc. Detection of cabling error in communication network
US10230630B2 (en) 2015-10-02 2019-03-12 Landis+Gyr Innovations, Inc. Determining network rank for communication to neighboring nodes
US10187290B2 (en) 2016-03-24 2019-01-22 Juniper Networks, Inc. Method, system, and apparatus for preventing tromboning in inter-subnet traffic within data center architectures
US10027576B2 (en) 2016-05-23 2018-07-17 Juniper Networks, Inc. Method, system, and apparatus for proxying intra-subnet traffic across multiple interfaces within networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101554022A (zh) * 2006-09-29 2009-10-07 思科技术公司 用于具有树内通信优化的ospf网络的基于树的无线网

Also Published As

Publication number Publication date
CN109672550A (zh) 2019-04-23
EP3474502A1 (en) 2019-04-24
US20190116116A1 (en) 2019-04-18
US10848416B2 (en) 2020-11-24
EP3474502B1 (en) 2023-07-12

Similar Documents

Publication Publication Date Title
CN109672550B (zh) 用于多级网络结构的简化配置
US10757006B1 (en) Enhanced traffic flow in software-defined networking controller-based architecture
US10986024B1 (en) Dynamic prefix list for route filtering
US10862783B2 (en) OAM mechanisms for EVPN active-active services
CN110971441B (zh) 多级网络结构的简化配置
Cascone et al. Fast failure detection and recovery in SDN with stateful data plane
US10938660B1 (en) Automation of maintenance mode operations for network devices
US11201782B1 (en) Automation of maintenance mode operations for network devices
CN110535760B (zh) 聚合接口的转发检测
US10469921B2 (en) Data center packet optical transport failure protection
US9930149B2 (en) Multicast traffic distribution in a multi-pod network environment
US20190286469A1 (en) Methods and apparatus for enabling live virtual machine (vm) migration in software-defined networking networks
JP2006135971A (ja) SoftRouter
WO2016174598A1 (en) Sdn network element affinity based data partition and flexible migration schemes
US11290394B2 (en) Traffic control in hybrid networks containing both software defined networking domains and non-SDN IP domains
US20190363978A1 (en) Detecting egresses of a point-to-multipoint label switched path in a ring network
WO2017144946A1 (en) Method and apparatus for legacy network support for computed spring multicast
Rischke et al. Software-defined networks
Cisco Router Software Configuration Addendum
CN109688062B (zh) 一种路由方法和路由设备
Patil Algorithms and techniques for transitioning to software defined networks
Jain Creating scalable, efficient and namespace independent routing framework for future networks

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Juniper Networks, Inc.

Address before: California, USA

Applicant before: Jungle network

GR01 Patent grant
GR01 Patent grant