CN104106242B - 分片网络中委托转发和地址解析 - Google Patents
分片网络中委托转发和地址解析 Download PDFInfo
- Publication number
- CN104106242B CN104106242B CN201380009007.3A CN201380009007A CN104106242B CN 104106242 B CN104106242 B CN 104106242B CN 201380009007 A CN201380009007 A CN 201380009007A CN 104106242 B CN104106242 B CN 104106242B
- Authority
- CN
- China
- Prior art keywords
- node
- virtual network
- specified
- endpoint
- network example
- 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
Links
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/66—Layer 2 routing, e.g. in Ethernet based MAN's
-
- 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/44—Distributed routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种使用指定的转发节点在包括多个末端节点的虚拟网络实例内转发数据的方法,所述方法包括为虚拟网络实例内的所有末端节点维护多个完整转发信息、接收发往该虚拟网络实例中的任意末端节点的数据包、以及基于转发信息转发数据包,其中该虚拟网络实例包括多个末端节点,并且指定的转发节点直接地连接到该虚拟网络实例内的一些末端节点。
Description
相关申请案交叉申请
本发明要求2012年2月24日由琳达·邓巴等人递交的发明名称为“分片网络中委托转发和地址解析”的第61/602,931号美国临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文本中,如全文再现一般。
关于由联邦政府赞助的
研究或开发的声明
不适用。
缩微平片附件的引用
不适用。
背景技术
虚拟和覆盖网络技术已经在效率、成本和处理功率方面极大改善了通信和数据网络的实施方式。覆盖网络可以是一个建立在服务承载网络之上的虚拟环境。覆盖网络内的节点可以通过虚拟和/或逻辑链路连接,这些虚拟和/或逻辑链路可对应于服务承载网络中的节点和物理链路。覆盖网络可以划分成虚拟网络实例(例如互联网协议(IP)子网),这些虚拟网络实例可以使用覆盖网络同时执行不同应用和服务。此外,计算、存储和/或网元等虚拟资源可以灵活地重新分配或在整个覆盖网络中移动。例如,数据中心内的主机和虚拟机(VM)可以迁移到任何具有可用资源的虚拟服务器中以执行各种应用和服务。因此,虚拟和覆盖网络技术一直是通过减少网络开销同时提高网络吞吐量来改进当今通信和数据网络的关键。
在当今的网络中,路由器等网关节点负责路由虚拟网络实例之间的流量。当网关节点的多个端口上启用了虚拟网络实例(例如,一个IP子网)时,网关节点可用于使用一条或者多条用于IP子网的等价多路径(ECMP)路由路径转发数据包。此外,一个IP子网中的所有末端节点(例如,主机)都可具有相同的前缀“10.1.1.X”,其中“X”变量可标识一个或多个末端节点。如果子网“10.1.1.X”中存在附接到接入交换机或者机架(ToR)交换机等接入节点的末端节点,则接入节点可通过内部网关协议(IGP)公告该IP子网前缀“10.1.1.X”。当网关节点接收IP子网中(例如,“10.1.1.5”)具有目的地址的数据包时,该网关节点可选择ECMP路径并且通过该ECMP路径向其中一个已经公告IP子网前缀“10.1.1.X”的接入点转发该数据包。在从网关节点接收该数据包之后,接入节点可向末端节点附接到的合适接入点转发帧。
然而,许多当今网络既大又复杂,使得网络包括大量的末端节点。例如,由于业务需求和非常先进的服务器虚拟化技术,高度虚拟化数据中心可以拥有成千上万到数以百万计的主机和VM。因此,网关节点可能需要向遍布许多不同接入节点的大量末端节点提供转发路径信息(例如,ECMP路径)。令该问题严重的是,网关节点的存储能力和处理能力有限,这样会妨碍网关节点维护给定虚拟网络实例的所有转发路径信息。例如,给定虚拟网络实例可能具有附接到20个不同接入节点的256个末端节点。网关节点可用于计算最多10条不同的ECMP路径,因此网关节点可产生ECMP路径到达给定虚拟网络实例中20个不同接入点中的10个接入点。此外,网关节点可计算接入节点和一小部分附接到于接入节点的末端节点的ECMP路径。因此,网关节点可能无法提供转发路径信息以到达给定虚拟网络实例中的许多末端节点。
因此,在一些实例中,网关节点可选择转发路径并且将数据包转发到该转发路径中不与目标末端节点连接的接入节点。该转发路径中的接入节点随后可接收该数据包并且可确定该接入节点不与目标末端节点连接。在那时,当接入节点具有合适的接入节点的转发信息时,接入节点可将该数据包重定向到合适的接入节点。如果接入节点没有合适的接入节点的转发信息,则该接入节点可将该数据包泛洪到其他参与给定虚拟网络实例的接入点。由于网络变得更大更复杂,并且末端节点不断地通过数据中心迁移,网络可越来越泛洪数据包。然而,给定虚拟网络实例内的数据包的不断泛洪可能对网络性能、带宽和处理能力造成不利影响。安装额外的网关节点可能不会提高网络的性能、带宽和处理能力,因为各网关节点需要到达所有参与给定虚拟网络实例的末端节点。因此,需要一种解决方案以有效地管理所有未基于末端节点的IP子网前缀放置的末端节点的转发路径。
发明内容
在一项实施例中,本发明包括连接到多个接入节点的网络节点,所述网络节点包括处理器,用于从所述接入节点的子集接收多个通知消息、维护能够到达虚拟网络节点中的一个或多个末端节点的所述接入节点的子集的多个转发条目、接收发往所述虚拟网络实例中的第一末端节点的数据包,以及基于所述转发条目将所述数据包转发到所述第一末端节点,其中所述通知消息指示已经将所述接入节点的子集选作能够到达所述虚拟网络实例中的一个或多个末端节点的指定的转发节点,并且每个所述指定的转发节点管理所述虚拟网络实例中的所有末端节点的转发责任。
又一项实施例中,本发明包括网络节点,所述网络节点包括处理器,用于接收发往虚拟网络实例内的多个第一末端节点的多个数据包,其中所述第一末端节点直接地附接到所述网络节点、将所述数据包直接地转发到所述虚拟网络实例内的所述第一末端节点、从所述虚拟网络实例内的多个接入节点接收用于所述虚拟网络实例的多个可达性信息、以及丢弃所述用于所述虚拟网络实例的多个可达性信息,其中所述虚拟网络实例包括附接到所述接入点的多个第二末端节点,并且所述网络节点不转发发往所述第二末端节点的多个第二数据包。
在又一项实施例中,本发明包括一种使用指定的转发节点在包括多个末端节点的虚拟网络实例内转发数据的方法,其中所述方法包括维护所述虚拟网络实例内所有末端节点的多个完整转发信息、接收发往所述虚拟网络实例中的任意末端节点的数据包,以及基于所述转发信息转发所述数据包;所述虚拟网络实例包括多个末端节点;以及所述指定的转发节点直接地连接到所述虚拟网络实例内的一些末端节点。
结合附图和权利要求书,可从以下的详细描述中更清楚地理解这些和其他特征。
附图说明
为了更完整地理解本发明,现在参考以下结合附图和详细描述进行的简要描述,其中相同参考标号表示相同部分。
图1A是网络的实施例的示意图,该网络将通常由网关节点管理的转发和解析虚拟网络实例的地址的责任委托给一个或多个指定的转发节点。
图1B是网络的另一实施例的示意图,该网络将通常由网关节点管理的转发和解析虚拟网络实例的地址的责任委托给一个或者多个指定的转发节点。
图2A是为给定虚拟网络实例选择指定的转发节点的方法的实施例的流程图。
图2B是为给定虚拟网络实例选择非指定的转发节点的方法的实施例的流程图。
图3是使用目录节点更新转发信息的方法的实施例的流程图。
图4是用于在没有目录节点的情况下更新转发信息的方法的实施例的流程图。
图5是描述“连接状态”消息的实施例的表项的表。
图6是描述由指定的转发节点发送的通知消息的实施例的表项的表。
图7是描述由指定的转发节点发送的能力通知消息的实施例的表项的表。
图8是用于节点去掉其作为虚拟网络实例的指定转发节点的角色的方法的实施例的流程图。
图9是描述虚拟网络实例优先级表的实施例的表项的表。
图10是描述指定转发节点优先级表的实施例的表项的表。
图11是适用于实施本发明的若干实施例的通用计算机系统的一项实施例的示意图。
具体实施方式
最初应理解,尽管下文提供一个或多个实施例的说明性实施方案,但可使用任意数目的当前已知或现有的技术来实施所公开的系统和/或方法。本发明决不应限于下文所描述的说明性实施方案、图式和技术,包含本文所说明并描述的示范性设计和实施方案,而是可在所附权利要求书的范围以及其均等物的完整范围内修改。
本文所公开的是一种为虚拟网络实例委托转发和地址解析的责任的方法、装置和系统。覆盖网络可以划分成多个虚拟网络实例。可以选择一个或多个指定的转发节点负责各个虚拟网络实例的所有转发信息。节点可以通过通知消息和/或能力通知消息公告虚拟网络实例,该节点已经选作指定的转发节点。可以基于采用阀值和/或由网络管理者配置一个待成为指定的目录节点的节点选择指定的转发节点。指定的转发节点可以从目录节点获取给定虚拟网络实例的转发信息或监听接入节点的IGP公告(例如链路状态公告),该公告通报附接到该接入节点的末端节点的连接状态。此外,指定的转发节点可以公告直接附接到指定的转发节点的末端节点的可达性信息。指定的转发节点还能够解析末端节点和它们直接附接的接入节点之间的映射。当管理虚拟网络实例的指定的目录节点的资源超过一定限制时,指定的目录节点还可以放弃作为一个或多个虚拟网络实例的指定的目录节点的责任以及重新分配给其他节点。
图1A是网络100的实施例的示意图,该网络将通常由网关节点管理的转发和解析虚拟网络实例的地址的责任委托给一个或多个指定的转发节点。在一项实施例中,网络100可以使用平面地址或可不细分的地址,例如在电子和电气工程师(IEEE)802.1Q标准中定义的媒体接入控制(MAC)地址,其内容以引入的方式并入本文本中。在另一项实施例中,网络100可以是具有分段地址的网络。例如,当一个互联网(IP)子网跨过多个网关节点端口时网络100可拥有分段地址,并且每个网关节点可拥有一个或多个启用的IP子网。网络100可以是一种包括一个或多个局域网(LAN)、城域网和/或广域网(WAN)的网络。在一项实施例中,网络100可以是数据中心网络。图1A示出了网络100可包括服务承载网络102、网关节点104、接入节点106a-e、末端节点108a-o、多个逻辑连接110和目录节点112。本领域普通技术人员意识到网络100的其他实施例可包括一个以上的网关节点104。
该服务承载网络102可以是任意能够支持覆盖网络的物理网络,例如IP网络、虚拟局域网(VLAN)、多链接透明互联(TRILL)网络、运营商骨干(PBB)网络、最短路径桥接(SPB)网络、通用路由封装协议(GRE)网络、名址分离网络协议(LISP)网络,以及光传输虚拟化(OTV)(使用用户数据报协议(UDP))的网络。服务承载网络102可在开放系统互连(OSI)的第一层、二层或三层操作。该服务承载网络102可包括使用多条物理链路(例如,电链路、光链路和/或无线链路)互连的多个物理网络节点。物理网络节点可包括路由器、交换机和网桥等网络设备。该服务承载网络102可以由边界节点(例如,接入节点106a至106e)限定,这些边界节点封装从服务承载网络102(例如,覆盖网络)之外接收的输入数据包的另一帧头(例如,IP帧头、MAC帧头或者TRILL帧头),以及解封装从服务承载网络102接收的传出数据包的帧头。在图1A中,网关节点104和接入节点106a至106e可以是服务承载网络102的一部分。
服务承载网络可包括多个虚拟网络实例,例如划分该服务承载网络的IP子集。虚拟网络实例可以由许多不同类型的虚拟网络标识符表示,例如VLAN标识符(VLAN-ID)、服务实例标识符(ISID)、IP子网地址、GRE关键字段以及所属领域技术人员已知的任何其他标识符。在一项实施例中,每个虚拟网络实例可以由一个虚拟网络标识符表示。其他实施例可限制通过使用一个以上的虚拟网络标识符转发数据流量以表示虚拟网络实例。多个虚拟网络实例中的多个末端节点108散布在网络100内的一个或多个接入节点106a至106e。
网关节点104可包括网关路由器、接入交换机、机架(ToR)交换机或者任意其他可以促进覆盖网络内的多个虚拟网络实例之间的通信的其他网络设备。网关节点104可位于服务承载网络102的边缘并且可接收和传输数据到其他图1A中未示出的其他网络。接入节点106a至106e可以是接入交换机、ToR交换机或者其他可以直接连接到末端节点108a至108o的网络设备。接入节点106a至106e和末端节点108a至108o可以在本发明分别统称为接入节点106和末端节点108。接入节点106可位于服务承载网络102的边缘并且可以使用另一帧头封装从末端节点108接收的数据包。当进行封装功能时,接入节点106可称为入口边缘。接入节点106a至106e还可用于解封装从服务承载网络102内接收用于数据包的帧头并且转发到末端节点108。当进行解封装功能时,接入节点106可称为出口边缘。接入节点106a至106e可用于在OSI的二层和/或OSI的三层处理数据包。
在一项实施例中,末端节点108可位于服务承载网络102之外覆盖网络之内。服务承载网络可以是一个不同的自治系统或一个不同于服务承载网络102的网络。在一项实施例中,服务承载网络和覆盖网络可以是客户端-服务器关系,在该关系中,客户端网络代表覆盖网络,而服务器网络代表服务承载网络。末端节点108可以是包括服务器、存储设备、主机、虚拟化服务器、VM以及其他设备的客户端中心设备,其可以将数据发送到覆盖网络或接收来自服务承载网络102的数据。末端节点108可以配置以加入和参与到虚拟网络实例中。
在网络100内,可使用多个逻辑连接110互连网关节点104、接入节点106和末端节点108。逻辑连接110可连接给定虚拟网络实例的节点并且可创建使用一条或者多条物理链路的路径。逻辑连接110可用于在参与给定虚拟网络实例的网关节点104、接入节点106和末端节点108之间传送数据。逻辑连接110可包括单个连接、一系列并联连接和/或未在图1A中示出的多个逻辑互连的节点。可以根据服务承载网络102上实施的服务承载网络和覆盖网络的类型使用不同逻辑连接110。例如,对于覆盖网络而言,逻辑连接110的类型可包括,但不限于多协议标记交换(MPLS)隧道、标签交换路径(LSP)隧道、GRE隧道以及IP隧道。在每个虚拟网络实例内,网关节点104和接入节点106可以通过逻辑连接110互连以形成与图1A中所示不同的网络拓扑和布局。如图1A所示,网关节点104可以直接附接到许多接入节点106。一些接入节点106可选作用于给定虚拟网络实例的指定的转发节点,然而可能不会选择其他接入节点106作为给定虚拟网络实例内指定的转发节点。网关节点104可用于维护指定的转发节点的转发条目并且可以不维护未选作指定的转发节点的接入节点106的转发条目。
网络100内的每个接入节点106可以通过逻辑连接110直接附接到一个或多个末端节点108。具体而言,接入节点106a可以直接地附接到末端节点108a;接入节点106b可以直接附接到末端节点108b和108c;接入节点106c可直接附接到末端节点108d和108e;接入节点106d可直接附接到末端节点108b和108f至108j;接入节点106e可直接附接到末端节点108e和108k至108o。当末端节点108直接附接到接入节点106时,接入节点106可在不向另一接入点106转发数据包的情况下向末端节点108转发数据包。例如接入节点106a可将发往末端节点108a的数据包直接转发给末端节点108a。为了达到末端节点108a,接入节点106a可能不需要向参与相同虚拟网络实例的其他接入节点106(例如,接入节点106b)转发数据包。
图1A示出了可通过逻辑连接110将目录节点112耦合到接入节点106。目录节点112可以是中心编排系统或任何其他提供管理功能和/或网络拓扑信息的设备。在一项实施例中,目录节点112可向所有的末端节点108提供位置信息,这些末端节点108直接附接到参与给定虚拟网络实例的接入节点106。回想到接入节点106可能通过公告虚拟网络实例参与了给定虚拟网络实例。指定的转发节点可为来自目录节点112的给定虚拟网络实例获取一些或者所有转发信息。
指定的转发节点可以是任意节点,例如网关节点104、接入节点106或者目录节点112,用于为给定虚拟网络实例提供一些或者所有转发信息。一个以上指定的转发节点可以参与到给定虚拟网络实例内。此外,可选择一个节点作为用于一个或多个虚拟网络实例的指定的转发节点。以图1A为例,可选择接入节点106b和106c作为用于网络100中给定虚拟网络实例的指定的转发节点。此外,可选择接入节点106b作为用于一个以上虚拟网络实例(例如,虚拟网络实例#1和虚拟网络实例#2)的指定的转发节点。在一项实施例中,未选作指定的转发节点的接入节点106可向给定虚拟网络实例通报可达性信息,包括接入节点106不具有针对参与给定虚拟网络实例的末端节点的完整转发信息的指示。
取代维护发往各个公告给定虚拟网络实例的接入节点106的转发路径(例如,ECMP路径),网关节点104可维护发往一些或者全部参与给定虚拟网络实例的指定的转发节点的转发路径信息。以图1A为例,网关节点104可接收带有目的地址“10.1.1.5”的数据包。网关节点104可选择到达其中一个指定的转发节点(例如,接入节点106a)的转发路径用于带有前缀“10.1.1.X”的IP子网(例如,虚拟网络实例)。当多个指定的转发节点参与IP子网“10.1.1.X”内时,网关节点可基于一个或多个例如ECMP的路由协议选择转发路径。由于接入节点106a已经选作指定的转发节点,因此网关节点104可随后将数据包转发到接入节点106a。当接入节点106a接收用于IP子网“10.1.1.X”的数据包时,接入节点106a可将数据包转发到目标末端节点108。如果目标末端节点108附接到接入节点106a,例如末端节点108a,接着接入节点106a可直接将数据包发送到末端节点108a。然而,如果合适的末端节点108a没有附接到接入节点106a,接入节点106a可将数据包发送到附接到目标末端节点108的合适的接入节点106。由于指定的转发节点,接入节点106a可能具有用于指定的虚拟网络实例的所有转发信息,因此可能不会发生数据包泛洪。在一项实施例中,针对给定虚拟网络实例选择的指定的转发节点的数目可能小于或者等于网关节点104能够计算出的最大转发路径数目。
网关节点104可以通过从指定的转发节点接收和处理通知消息确定选择哪些节点作为指定的转发节点。每个指定的转发节点可以公告一个通知消息,而未选作指定的转发节点的其他节点可以不公告一个通知消息。指定的转发节点可在每个虚拟网络实例内传输该通知消息,在每个虚拟网络实例内,已经选择节点作为指定的转发节点。该通知消息可提供已经选择节点作为指定的转发节点的虚拟网络实例和其他可达性信息。以图1A为例,接入节点106a可公告接入节点106a可选作用于虚拟网络实例#1和虚拟网络实例#2的指定的转发节点,然而接入节点106b可公告接入节点106b可选作用于虚拟网络实例#1的指定的转发节点。每个指定的转发节点公告的通知消息可能由覆盖网络102内的网关节点104和/或其他接入节点106处理。图6中将更为详细地论述该通知消息。
在另一项实施例中,指定的转发节点可在通知消息中公告指定的转发节点的能力。在本发明的剩余部分中,提供能力信息的通知消息可称为能力通知消息。指定的转发节点可用于提供转发能力和/或映射能力。回想上文,指定的目录节点可接收来自网关节点104的数据包并将从网关节点104接收的数据包转发到目标末端节点108。在该实施例中,指定的转发节点可以指定为提供转发能力。当指定的转发节点用于支持映射能力时,指定的转发节点能够解决末端节点108(例如,主机地址)和与它们直接附接的接入节点106之间的映射。在另一项实施例中,指定的转发节点能够解解析覆盖环境中末端节点(例如,IP或者MAC主机地址)和它们的相应出口覆盖边缘节点之间的映射。例如,指定的转发节点(例如,接入节点106a)可从给定虚拟网络实例内的接入节点106d接收单播消息以解决接入节点106d以及一个或多个直接附接到接入节点106d的末端节点108c至108f中的地址。该单播消息可包括OSI三层地址(例如,IP地址)。接收单播消息之后,指定的转发节点可使用OSI三层地址进行查找以确定用于其中一个末端节点108(例如,末端节点108c)的相应OSI二层地址(例如,MAC地址)。然后,指定的转发节点可将相应OSI二层地址传输回接入节点106d。在一项实施例中,接入节点106可将多播消息传输到一组指定的转发节点以解析末端节点108和它们直接附接的接入节点106之间的映射。与通知消息类似,能力通知消息可由指定的转发节点公告,并且可不由未选为指定的转发节点的节点公告。此外,可由覆盖网络102内的网关节点104和/或其他接入节点106处理能力通知消息。图7中将更为详细地论述该能力通知消息。
末端节点108可直接附接到一个或多个接入节点106。图1A示出了末端节点108b直接附接到接入加点106b和106d,然而末端节点108e直接附接到接入节点106c和106e。当给定虚拟网络实例具有两个或者更多直接附接到一个末端节点108的接入节点106,虚拟网络实例内的每个接入节点106可公告“连接状态”消息,该消息指示与每个附接的末端节点108的连接是可操作的。换言之,“连接状态”消息的公告可指示末端节点108和直接附接的接入节点106之间的连接当前是否可操作。以图1A为例,在给定虚拟网络实例中,接入节点106b和末端节点108b之间的逻辑连接110可能经历妨碍两个节点之间进行通信的故障。接入节点106b可公告末端节点108b的“故障”连接状态。另一方面,接入节点106d和末端节点108b之间的逻辑连接110可运作。接入节点106d可为末端节点108b公告“正常”连接状态。选作用于给定虚拟网络实例的指定的转发节点(例如,接入节点106a)的节点可接收“连接状态”消息并且可使用该信息更新转发数据库(FIB)和过滤数据库等转发表。所有其它未选为给定的接收“连接状态”消息的虚拟网络实例内的指定的转发节点(例如,接入节点106e)的节点可忽略或者丢弃“连接状态”消息。当到末端节点108的连接针对给定虚拟网络实例改变(例如,从“正常”状态移动到“故障”状态)时,每个接入节点106可公告“连接状态”消息。“连接状态”消息的内容将在图5中详细论述。
图1B是网络150的另一项实施例的示意图,该网络将通常由网关节点管理的转发和解析虚拟网络实例的地址的责任委托给一个或多个指定的转发节点。在图1B中,网络150可基本上与图1A中的网络100类似,除了网络100不包括目录节点。当不存在目录服务器时,每个指定的转发节点可通过IGP公告,例如中间系统到中间系统(IS-IS)链路状态公告或者其它路由协议,公告可达性信息。IGP公告可以提供可达性信息,可包括末端节点地址、末端节点到末端节点路由、MAC地址,以及虚拟网络实例信息。IGP公告还可以向直接附接到公告指定的转发节点的末端节点108提供可达性信息。指定的转发节点可公告可达性信息和“连接状态”消息,然而非指定的转发节点可公告“连接状态”消息。为给定虚拟网络实例接收IGP公告和“连接状态”消息的指定的转发节点可处理消息以更新转发表,然而给定虚拟网络实例的非指定的转发节点可丢弃或者忽略消息的类型。
图2A是为给定虚拟网络实例选择指定的转发节点的方法200的实施例的流程图。在一项实施例中,覆盖网络可以是IP网络。方法200可以在方框202处开始并且选择参与给定虚拟网络实例的节点。该节点可以是接入节点、目录节点或者其它类型的用于为给定虚拟网络实例管理转发信息的节点。一旦方法200在给定虚拟网络实例内选择了节点,方法200继续到方框204。
在方框204,方法200可确定附接到虚拟网络实例内的节点的末端节点的数目是否超过阀值。该阀值可以是一个数字和/网络管理者或由操作者或网络管理者设置的百分比。例如,当虚拟网络实例(例如,IP子网)具有在50个虚拟化接入节点之间分布的100个末端节点时,该阀值可以设置为5%或5个末端节点。如果直接附接到虚拟化节点的虚拟化末端节点的数目超过该阀值,则方法200可移动到方框208。然而,如果附接到该节点的末端节点的数目没有超过该阀值,则方法200可移动到方框206。
在方框206中,方法200可确定该节点是否已配置为给定虚拟网络实例的指定的转发节点。在一项实施例中,网络管理者和/或操作者可能已经将该节点配置为指定的转发节点。例如,网关节点能够支持最多32条ECMP路径。只要指定的转发节点的数目等于或者小于32,网络管理者可静态地配置某些接入节点为指定的转发节点。即使末端节点可能迁移到给定虚拟网络实例的不同的接入节点,网络管理者可选择某些节点作为指定的转发节点。如果方法200确定网络管理者和/或操作者在已经将节点配置为指定的目录节点,则方法200继续方框208;否则,方法200停止。在方框208,方法200可选择该节点作为虚拟网络实例的指定的转发节点。如上文所论述,指定的转发节点可用于为给定虚拟网络实例维护所有转发信息。
图2B是为给定虚拟网络实例选择非指定的转发节点的方法250的实施例的流程图。与方法200相比,方法250可以确定是否可选择一个节点作为非指定的转发节点或可不选择一个节点作为指定的转发节点。方法250的方框252可基本上与方法200的方框202类似。在方框254,方法250可以使用阀值作为“未指定阀值”以选择非指定的转发节点而不是选择指定的目录节点。如果附接到节点的末端节点的数目小于阀值,则方法250可移到方框258并选择该节点作为非指定的转发节点。然而,如果直接附接到该节点的末端节点的数目不小于该阀值,则方法250可移到方框256。在方框256,方法250可确定网络管理者是否已经选择该节点作为非指定的转发节点。当网络管理者已经将该节点配置为非指定的转发节点时,方法250可前进到方框258并将该节点选作非指定的转发节点。相反地,如果网络管理者没有将该虚拟化节点选作非指定的转发节点,方法250可停止。
图3是使用目录节点更新转发信息的方法300的实施例的流程图。方法300可涉及具有目录节点的网络,例如图1A中所示的网络100。目录节点可为选择的指定的转发节点提供和更新转发信息。方法300可开始于方框302并从目录节点为参与给定虚拟网络实例的末端节点获取位置信息。位置信息可能用于参与虚拟网络实例的一些或者所有末端节点。然后,方法300移到方框304以确定末端节点是否附接到多个参与给定虚拟网络实例的接入节点。如果方法300确定末端节点附接到多个参与给定虚拟网络实例的接入节点,则方法前进到方框306。然而,如果方法300确定末端节点没有附接到多个参与给定虚拟网络实例的末端节点,则方法300前进到方框310。
在方框306,方法300可从参与给定虚拟网络实例的接入节点接收“连接状态”消息。回想上文,当多个接入节点连接到给定虚拟网络实例中的一个末端节点时,接入节点可为给定虚拟网络实例向指定的转发节点公告“连接状态”消息。一旦方法300接收了“连接状态”消息,方法300可移到方框308并使用接收的“连接状态”消息为给定虚拟网络实例更新转发信息。方法300随后可前进到方框310并使用来自目录节点的位置信息更新转发信息。在一项实施例中,方法300可更新FIB和过滤数据库等转发表中的一个或多个条目。
图4是用于在没有目录节点的情况下更新转发信息的方法400的实施例的流程图。与方法300相比,方法400涉及可能不包括目录节点的网络,例如图1B中所示的网络150。为了更新指定的转发节点中的转发信息,指定的转发节点可通过IGP公告为直接附接的末端节点公告可达性信息。IGP公告可以是链路状态公告,例如向参与给定虚拟网络实例的其他节点广播的IS-IS公告。给定虚拟网络实例的指定的转发节点可处理该消息以更新转发信息。未选为指定的转发节点并且在虚拟网络实例中的节点可忽略和/或丢弃IGP公告消息。与图3类似,指定的转发节点还可处理在给定虚拟网络实例内传输的“连接状态”消息。
方法400可在方框402处开始并接收来自参与给定虚拟网络实例的指定的转发节点的IGP公告包。方法400随后可前进到方框404以确定该节点是否已经被选作给定虚拟网络实例的指定的转发节点。在方框404,方法400可通过图2A和图2B所述的方法确定该节点是否已经被选作指定的转发节点。如果该节点没有被选作指定的转发节点,方法400可前进到方框406并丢弃IGP公告包。然而,如果该节点已经被选作指定的转发节点,则该节点可前进到方框408。在方框408,方法400可基于IGP公告包通过更新FIB或过滤数据库中的一个或多个条目更新转发信息。然后,方法400可以前进到方框410。
在方框410,方法400可确定末端节点是否附接到多个参与给定虚拟网络实例的接入节点。如果方法400确定末端节点附接到多个参与给定虚拟网络实例的接入节点,则方法400前进到方框412。然而,如果方法400确定末端节点没有附接到多个参与给定虚拟网络实例的末端节点,则方法400停止。方框412和414可基本上与方法300的方框306和308类似。在方法400完成方框414之后,方法400结束。
图5是描述“连接状态”消息500的实施例的表项的表。回想上文,接入节点可传输通报直接附接到接入节点的末端节点的连接状态的“连接状态”消息。当接入节点和一个或多个直接附接到接入节点的末端节点之间的连接状态发生改变时,接入节点可传输“连接状态”消息。该“连接状态”消息可提供与末端节点和连接状态相关联的虚拟网络实例。为给定虚拟网络实例接收“连接状态”消息的指定的转发节点可更新转发信息。所有其他未指定的转发节点可忽略和/或丢弃“连接状态”消息。在一项实施例中,该“连接状态”消息可广播为具有扩展的类型-长度-值(TLV)的链路状态公告(例如IS-IS)。
“连接状态”消息500可包括接入节点地址字段502、末端节点地址字段504、虚拟网络实例标识符字段506,以及连接状态字段508。接入节点地址字段502可指示传输“连接状态”消息500的接入节点的地址。接入节点#1的地址可以是传输“连接状态”消息500的接入节点的地址。末端节点地址字段504可指示直接附接到传输“连接状态”消息500的接入节点的末端节点的地址。在图5,接入节点#1可以直接附接到末端节点地址#1、末端节点地址#2、以及末端节点地址#3的末端节点。在一项实施例中,接入节点地址#1和末端节点地址#1-#3可以是MAC地址。虚拟网络实例标识符字段506可以标识末端节点可关联的虚拟网络实例。图5示出了末端节点#1和末端节点#2可以参与虚拟网络实例#1以及末端节点#3可以参与虚拟网络实例#2。如上所述,VLAN ID和其他标识符(例如,ISID)可以用于标识虚拟网络实例。连接状态字段508可指示该连接在由虚拟网络实例标识符字段506标识的虚拟网络实例内是“正常”(例如,可以传输数据)还是“故障”(例如,不能传输数据)。图5所示为虚拟网络实例#1中末端节点#1和虚拟网络实例#2中末端节点#3的连接状态可能是“正常”,而虚拟网络实例#1中末端节点#2的连接状态可能是“故障”。当虚拟网络实例中的一个虚拟网络实例中的一个末端节点的连接状态从“正常”状态转变到“故障”状态时,接入节点可传输“连接状态”消息500。例如,如果虚拟网络实例#1处的末端节点#1的连接状态转变到“故障”状态时,接入节点#1可在虚拟网络实例#1内传输“连接状态”消息500。
图6是描述由指定的转发节点发送的通知消息600的实施例的表项的表。通知消息600可包括指定的转发节点地址字段602和虚拟网络实例列表字段604。指定的转发节点地址字段602可指示传输(例如,广播)通知消息600的指定的转发节点的地址。在图6中,指定的目录节点地址#1可以是传输通知消息600的指定的转发节点的地址。虚拟网络实例列表字段604可指示已经选择节点作为指定的目录节点的虚拟网络实例。在图6中,指定的转发节点#1可以是虚拟网络实例#1和虚拟网络实例#2的指定的转发节点。在一项实施例中,虚拟网络实例列表字段604可通过与图5中在虚拟网络标识符字段506中使用的标识符基本类似的标识符标识虚拟网络实例。如上所述,当目录节点无法获取转发信息时,指定的转发节点可发送通知消息600。以图1B为例,接入节点106b可选作虚拟网络实例#1和虚拟网络实例#2的指定的转发节点。在一项实施例中,通知消息600可以是具有扩展的类型-长度-值(TLV)的链路状态公告。
图7是描述由指定转发节点发送的能力通知消息700的实施例的表项的表。能力通知消息700可包括指定的转发节点地址字段702、虚拟网络实例列表字段704,以及能力字段706。指定的目录节点地址702和虚拟网络实例列表字段704可基本上类似于指定的目录节点地址字段602和虚拟网络实例列表字段604。在图7中,指定的转发节点地址#1可以是提供能力通知消息700的指定的转发节点的地址,以及虚拟网络实例#1至#3可以是节点已经选作指定的目录节点的虚拟网络实例。能力字段706可指示指定的转发节点的配置类型。图7示出了指定的转发节点地址#1可以是在虚拟网络实例#1内配置有转发能力和映射能力的指定的转发节点,而对于虚拟网络实例#2和#3,指定的目录节点可以具有转发能力而没有映射能力。与通知消息600类似,能力通知消息700可以是具有扩展的类型-长度-值(TLV)的链路状态公告。
图8是用于节点去掉其作为虚拟网络实例的指定的转发节点的角色的方法800的实施例的流程图。作为指定的转发节点,节点可能由于为虚拟网络实例管理转发条目和/或转发信息变得超载。当分配给管理转发条目和/或转发信息的资源超过一定阀值时,指定的转发节点可以减轻一些工作量。为了减轻节点的工作量,该节点可以减少节点作为指定的转发节点的虚拟网络实例的数目。当至少一个其他指定的转发节点已经在虚拟网络实例内选择时,该节点可以去掉作为给定虚拟网络实例的指定的转发节点的角色。当没有其他指定的转发节点可用来取代指定的转发节点角色时,节点可发送“请求卸载”消息以选择其他节点成为指定的转发节点。如果没有其他节点可选作指定的转发节点时,指定的转发节点可基于优先级选择另一虚拟网络实例。
方法800从方框802处开始并选择一个或多个要去掉的虚拟网络实例作为指定的转发节点。每个指定的转发节点可保留每个支持的虚拟网络实例的优先级值。当存在多个可删除转发条目的虚拟网络实例时,指定的转发节点可从具有较低优先级值的虚拟网络实例开始。在一项实施例中,优先级可以由网络管理者和/或操作者配置。网络管理者和/或操作者可选择至少两个指定的转发节点以维护每个虚拟网络实例的转发信息。或者,可以基于到达参与虚拟网络实例的末端节点的难度计算优先级值。例如,往返时延计算、链路数目,以及带宽可以是确定到达末端节点的难度的一些方式。还可基于频率确定优先级值,要求给定虚拟网络实例内的末端节点传输和/或接收数据包。如果在特定的时间段内,给定虚拟网络实例内的末端节点没有传输和/或接收数据包,则方法800可降低优先级。
在方法800结束选择虚拟网络实例之后,方法800可移到方框804并将放弃消息发送到所有其他参与给定虚拟网络实例的指定的转发节点。该放弃消息可指示节点想要删除其作为特定虚拟网络实例的指定的转发节点的角色。换言之,该节点不再想存储参与给定虚拟网络实例的节点的转发信息。参与给定虚拟网络实例的指定的转发节点可处理放弃消息,而其他非指定的转发节点可忽略或丢弃放弃消息。以图1A为例,接入节点106a,作为指定的目录节点,可在给定虚拟网络实例内发送放弃消息。如果接入节点106都不是指定的转发节点,则接入节点106b和106c可忽略或丢弃该放弃消息。如果接入节点106已经选作指定的转发节点,则接入节点106d和106e可处理该放弃消息。在另一项实施例中,放弃消息可包括虚拟网络实例的列表(例如,虚拟网络实例#1、虚拟网络实例#2等),在给虚拟网络实例列表内,节点想要去掉作为指定的转发节点的角色。
方法800随后可移到方框806并确定“okay”消息是否从另一参与给定虚拟网络实例的指定的转发节点接收。在接收放弃消息之后,其他参与给定虚拟网络实例的指定的转发节点可以发送“okay”消息。当放弃消息包括虚拟网络实例的列表时,方法800可接收来自其他参与一个或多个在放弃消息中列出的虚拟网络实例的指定的转发节点的多个“okay”消息。如果方法800接收一个或多个“okay”消息,方法800继续方框808。然而,如果方法800不接收okay消息,则方法800移到方框812。
在方框808,方法800删除参与虚拟网络实例的末端节点的转发信息。如方框806中所述,方法800可接收一个以上的对应于一个以上的虚拟网络实例的“okay”消息。方法800可删除每个对应于每条接收的“okay”消息的虚拟网络实例的转发条目。例如,放弃消息可包括虚拟网络实例#1、虚拟网络实例#2,以及虚拟网络实例#3。在方框806,方法800接收来自虚拟网络实例#1的仅一条“okay”消息。在方框808,方法800删除仅用于虚拟网络实例#1的转发条目。方法800随后可前进到方框810并发送如图6所述的通知消息和更新的虚拟网络实例列表,该节点仍然作为指定的转发节点。当目录节点为参与给定虚拟网络实例的末端节点提供位置信息时,可以不发送通知消息。然后,方法800可结束。
返回方框812,当方法800没有接收到放弃消息中列出的给定虚拟网络实例的“okay”消息时,方法800可将“请求卸载”消息发送到参与虚拟网络实例的接入节点。“请求卸载”消息可请求其他接入节点取代特定网络实例的指定的转发节点。在实施例中,“请求卸载”消息可以列出一个以上的接入节点可能需要取代指定的转发节点的虚拟网络实例。方法800前进到方框814。
在方框814,方法800可接收来自一个以上的愿意取代特定虚拟网络实例的指定的转发节点的接入节点的响应消息。然后,方法800移到方框816以发送参与特定虚拟网络实例的末端节点的转发信息。在另一项实施例中,愿意接手指定角色的接入节点可获取目录节点的转发信息。方法800随后可继续到方框818并从愿意接手指定的转发节点角色的接入节点接收的如图6中所述的通知消息。一旦接入节点已经获得转发信息以成为指定的转发节点,接入节点可发送交流到节点的通知消息,接入节点是给定虚拟网络实例的指定的转发节点。接入节点可以从目录服务器和/或从指定的转发节点获取转发信息。在这时,方法800可环回到方框802。
图9是描述虚拟网络实例优先级表900的实施例的表项的表。如前所述,虚拟网络实例可具有一个或多个提供虚拟网络实例的转发信息的指定的转发节点。参与虚拟网络实例的指定的转发节点可具有不同的优先级确定是否保持指定的节点角色。所分配的优先级值和能力可确定指定的转发节点可放弃的虚拟网络实例。虚拟网络实例优先级表900可以存储在指定的转发节点、目录节点,和/或一些其他网络设备内。在图9中,指定的转发节点#3可放弃指定的转发节点角色,而指定的转发节点#1和#2可以不放弃指定的转发节点角色。当指定的转发节点#3变得超负荷时,由于已经给虚拟网络实例#1分配较低的优先级值和/或“可选保持”能力,指定的转发节点#3可删除虚拟网络实例#1的映射条目。
虚拟网络实例优先级表900可包括虚拟网络实例ID字段902、指定的转发节点地址字段904、能力字段906,以及优先级字段908。虚拟网络实例ID字段902可指示虚拟网络实例(例如,虚拟网络实例#1)可包括参与虚拟网络实例的一个或多个指定的转发节点。指定的转发节点字段904可指示参与虚拟网络实例的指定的转发节点的地址。在图9中,三个指定的转发节点具有指定的转发节点地址#1、指定的目录节点地址#2和指定的目录节点地址#3可参与虚拟网络实例#1。能力字段906指示指定的转发节点是否需要保持指定的转发节点角色。当能力等于“必须保持”时,则指定的转发节点可以不将指定的转发节点角色重新分配给其他指定的转发节点和/或接入节点。然而,当能力等于“可选保持”时,指定的转发节点可放弃指定的转发节点角色。如图9所示,可将“必须保持”能力分配给指定的转发节点#1和#2,然而可将“可选保持”分配给指定的转发节点#3,因此可以选择放弃指定的转发节点角色。优先级字段908可指示保持指定的转发节点角色的指定的转发节点的优先级。在图9中,“高优先级”可分配给指定的转发节点#1和#2,而“中优先级”可分配给指定的转发节点#3。
图10是描述指定转发节点优先级表1000的实施例的表项的表。指定转发节点优先级表1000可包括指定转发节点地址字段1002、虚拟网络实例列表字段1004、以及虚拟网络实例字段1006的转发便捷度。指定转发节点地址字段1002和虚拟网络实例列表字段1006可基本上类似于图7所述的指定的转发节点地址字段702和虚拟网络实例列表字段704。与图7类似,指定的转发节点地址#1可指示节点的地址,虚拟网络实例#1至#3可指示节点已经选作指定的转发节点的虚拟网络实例。虚拟网络实例字段1006的转发便捷度可指示指定的转发节点将数据转发到虚拟网络实例内的末端节点有多方便。在图10中,虚拟网络实例#1的便捷度或加权值可为50%、虚拟网络实例#2的为40%、以及虚拟网络实例#3的为10%。类似于虚拟网络实例优先级表900,指定的转发节点优先级表1000可以存储在指定的转发节点、目录节点,和/或一些网络设备内。
在一项实施例中,便捷度的范围可以是从1到100,其中100是转发到末端节点最方便的方式,而1最不方便的方式。一种计算便捷度的方式可以是以虚拟网络实例的指定的转发节点的转发能力和带宽为基础的便捷度。另一项实施例可基于附接到参与虚拟网络实例的指定的转发节点的末端节点的百分比计算该便捷度。附接到指定的转发节点的末端节点的百分比越高,指定的转发节点能够将帧在一跳内直接转发到目的地的百分比越高。在图10中,指定的转发节点#1可参与三个虚拟网络实例。由于虚拟网络实例#3便捷度最低,因此优先级最低。因此,当放弃虚拟网络实例的指定的转发节点的角色时,在放弃虚拟网络实例#2和虚拟网络实例#1之前,指定的转发节点#1可先放弃虚拟网络实例#3。
上述方案可在任意通用计算机系统上实施,例如计算机或网络部件,其具有足够的处理能力、存储资源以及网络吞吐能力来处理其上的必要工作量。图11示出了通用计算机系统1100的示意图,其适用于实施本文所公开的方法的一项或多项实施例,例如,接入节点106、末端节点108以及目录节点112。计算机系统1100包括处理器1102(其可以称为中央处理器单元或CPU),所述处理器与包括以下项的存储设备进行通信:辅助存储器1104、只读存储器(ROM)1106、随机存取存储器(RAM)1108、发射器/接收器1112、输入/输出(I/O)设备1110。尽管处理器1102被图示为单个处理器,但是它并非受到此类限制而是可以包括多个处理器。处理器1102可以实施为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(FPGA)、专用集成电路(ASIC),和/或数字信号处理器(DSP),并且/或者可以是一个或多个ASIC的一部分。处理器1102可以用于实施本文本所述的任一方案,例如,方法300、方法350、方法400以及方法800。处理器1102可以使用硬件、软件或两者结合来实施。
辅助存储器1104通常包括一个或多个磁盘驱动器或磁带驱动器,用于数据的非易失性存储,而且如果RAM1108的容量不足以存储所有工作数据,所述辅助存储器则用作溢流数据存储设备。辅助存储器1104可以用于存储程序,当选择执行这些程序时,所述程序将加载到RAM1108中。ROM1106用于存储在程序执行期间读取的指令以及可能读取的数据。ROM1106为非易失性存储设备,其存储容量相对于辅助存储器1104的较大存储容量而言通常较小。RAM1108用于存储易失性数据,还可能用于存储指令。访问ROM1106和RAM1108通常比访问辅助存储器1104要快。辅助存储器1104、ROM1106和/或RAM1108可以是非瞬时计算机可读介质,可以不包括瞬时、传播的信号。辅助存储器1104、ROM1106或RAM1108中的任何一个可以称为存储器,或这些模块可以统称为存储器。辅助存储器1104、ROM1106或RAM1108中的任意一个可以如本文所述用来存储转发信息、映射信息、能力信息以及优先级信息。处理器1102可以在存储器中生成转发信息、映射信息、能力信息以及优先级信息和/或接收来自存储器的转发信息、映射信息、能力信息以及优先级信息。
发射器/接收器1112可用作接入节点106、末端节点108以及目录节点112的输入和/或输出设备。例如,如果发射器/接收器1112用作发射器,其可将数据传出计算机系统1100。如果发射器/接收器1112用作接收器,其可将数据传入计算机系统1100。发射器/接收器1112可采用以下形式:调制解调器、调制解调器银行、以太网卡、通用串行总线(USB)接口卡、串行接口、令牌环卡、光纤分布式数据接口(FDDI)卡、无线局域网(WLAN)卡、无线收发器卡(例如,码分多址(CDMA)、全球移动通信系统(GSM)、长期演进(LTE)、全球微波接入互操作性(WiMAX)和/或其他空中接口协议无线收发器卡),以及其他公知网络设备。发射器/接收器1112可使处理器1102能够与因特网或一个或多个内网进行通信。I/O设备1110可包括视频监控器,液晶显示器(LCD),触屏显示器,或其他类型的用于显示视频的视频显示器,也可包含捕获视频的视频录像设备。I/O设备1110可包括一个或多个键盘、鼠标、轨迹球或其他公知的输入设备。
应理解,通过将可执行指令编程和/或加载至计算机系统1100,处理器1102、RAM1108和ROM1106中的至少之一被改变,将计算机系统1100的一部分转换成特定机器或装置,例如,本发明宣扬的拥有新颖功能的指定的转发节点。加载可执行软件至计算机所实现的功能可以通过公知设计规则转换成硬件实施,这在电力工程和软件工程领域是很基础的。决定使用软件还是硬件来实施一个概念通常取决于对设计稳定性及待生产的单元数量的考虑,而不是从软件领域转换至硬件领域中所涉及的任何问题。一般来说,经常变动的设计更适于在软件中实施,因为重新编写硬件实施比重新编写软件设计更为昂贵。一般来说,稳定及大规模生产的设计更适于在如专用集成电路(ASIC)这样的硬件中实施,因为运行硬件实施的大规模生产比软件实施更为便宜。设计通常可以以软件形式进行开发和测试,之后通过公知设计规则转变成专用集成电路中等同的硬件实施,该集成电路硬线软件指令。由新ASIC控制的机器是一特定的机器或装置,同样地,编程和/或加载有可执行指令的电脑可视为特定的机器或装置。
本发明公开至少一项实施例,且所属领域的普通技术人员对所述实施例和/或所述实施例的特征作出的变化、组合和/或修改均在本发明公开的范围内。因组合、合并和/或省略所述实施例的特征而得到的替代性实施例也在本发明的范围内。应当理解的是,本发明已明确阐明了数值范围或限制,此类明确的范围或限制应包括涵盖在上述范围或限制(如从大约1至大约10的范围包括2、3、4等;大于0.10的范围包括0.11、0.12、0.13等)内的类似数量级的迭代范围或限制。例如,每当公开具有下限Rl和上限Ru的数值范围时,具体是公开落入所述范围内的任何数字。具体而言,特别公开所述范围内的以下数字:R=R1+k*(Ru–R1),其中k为从1%到100%范围内以1%递增的变量,即,k为1%、2%、3%、4%、7%、…、70%、71%、72%、…、97%、96%、97%、98%、99%或100%。此外,还特此公开了,上文定义的两个R值所定义的任何数值范围。除非另有说明,否则使用术语约是指随后数字的10%。相对于权利要求的某一要素,术语“可选择”的使用表示该要素可以是需要的,或者也可以是不需要的,二者均在所述权利要求的范围内。使用如“包括”、“包含”和“具有”等较广术语应被理解为提供对如“由…组成”、“基本上由…组成”以及“大体上由…组成”等较窄术语的支持。因此,保护范围不受上文所述的限制,而是由所附权利要求书定义,所述范围包含所附权利要求书的标的物的所有等效物。每项和每条权利要求作为进一步公开的内容并入说明书中,且权利要求书是本发明的实施例。所述揭示内容中的参考的论述并不是承认其为现有技术,尤其是具有在本申请案的在先申请优先权日期之后的公开日期的任何参考。本发明中所引用的所有专利、专利申请案和公开案的揭示内容特此以引用的方式并入本文本中,其提供补充本发明的示例性、程序性或其他细节。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其他特定形式来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其他系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦接或直接耦接或通信的其他项也可以采用电方式、机械方式或其他方式通过某一接口、装置或中间部件间接地耦接或通信。其他变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。
Claims (15)
1.一种连接到多个接入节点(106)的网络节点,其特征在于,包括:
处理器,用于:
从直接附接到所述网络节点的所述接入节点(106)的子集接收多条通知消息;
为能够到达虚拟网络实例中的一个或多个末端节点(108)的所述接入节点(106)的子集维护多个转发条目;
接收发往所述虚拟网络实例中的第一末端节点的数据包;以及
基于发往所述第一末端节点的转发表项转发所述数据包,
其中所述通知消息指示已经将所述接入节点(106)的子集选作能够到达所述虚拟网络实例中的一个或多个末端节点(108)的指定的转发节点,以及
其中每个所述指定的转发节点管理所述虚拟网络实例中的所有末端节点(108)的转发责任。
2.根据权利要求1所述的网络节点,其特征在于,所述处理器进一步用于不维护未选作所述虚拟网络实例的指定的转发节点的接入节点的任意转发条目,并且所述未选作指定的转发节点的接入节点能够到达所述虚拟网络实例中的一些所述末端节点。
3.根据权利要求1所述的网络节点,其特征在于,所述处理器进一步用于仅维护已经选作所述指定的转发节点的所述接入节点的子集的转发条目。
4.根据权利要求1所述的网络节点,其特征在于,每条所述通知消息包括能力字段,所述能力字段指示每个所述指定的转发节点是否提供转发能力。
5.根据权利要求1所述的网络节点,其特征在于,每个所述指定的转发节点用于向所述虚拟网络实例提供所有转发信息。
6.根据权利要求1所述的网络节点,其特征在于,每条所述通知消息包括能力字段,所述能力字段指示每个所述指定的转发节点是否提供映射能力。
7.根据权利要求1所述的网络节点,其特征在于,所述处理器进一步用于当接收所述通知消息的其中一条时更新所述转发条目。
8.一种使用指定的转发节点在包括多个末端节点虚拟网络实例内转发数据的方法,其特征在于,包括:
维护所述虚拟网络实例内的所有所述末端节点的多个完整的转发信息;
接收发往所述虚拟网络实例中的任意第一末端节点的数据包;以及
基于所述转发信息转发所述数据包,
其中所述虚拟网络实例包括多个末端节点,
其中所述指定的转发节点直接连接到所述虚拟网络实例内的一些所述末端节点,以及
其中所述指定的转发节点是从直接附接到网络节点的接入节点的子集中选择的。
9.根据权利要求8所述的方法,其特征在于,将所述数据包发送到不直接附接到所述指定的转发节点的所述末端节点中的一个末端节点。
10.权利要求8所述的方法进一步包括公告一个通知消息,所述通知消息提供虚拟网络实例的列表,所述指定的转发节点为所述虚拟网络实例管理所有所述转发信息。
11.权利要求8所述的方法进一步包括接收可达性信息包和基于所述可达性信息包更新所述转发信息。
12.权利要求8所述的方法进一步包括当在所述指定的转发节点内消耗的资源超过一定的阈值时去掉作为所述虚拟网络实例的所述指定的转发节点的角色。
13.根据权利要求12所述的方法,其特征在于,进一步包括:
针对去掉作为所述虚拟网络实例的指定的转发节点的请求发送第一消息;
当第二指定的转发节点确认所述请求时删除所述虚拟网络实例的所 述转发信息;以及
当没有接收到肯定回复时基于优先级选择第二虚拟网络实例,
其中删除掉至少一个虚拟网络实例直到所述指定的转发节点低于资源限制。
14.根据权利要求13所述的方法,其特征在于,进一步包括:
当没有收到回复时发送第二消息,所述第二消息请求接入节点取代第二指定的转发节点;
接收肯定回复消息;以及
将所述虚拟网络实例的所述完整的转发信息发送到所述接入节点或者请求所述接入节点从目录服务器获取所述虚拟网络实例的所述完整的转发信息。
15.权利要求8的所述方法进一步包括公告一种能力以解决所述末端节点的多个地址和直接附接到所述末端节点的多个接入节点的多个地址之间的映射。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261602931P | 2012-02-24 | 2012-02-24 | |
US61/602,931 | 2012-02-24 | ||
PCT/US2013/027499 WO2013126831A1 (en) | 2012-02-24 | 2013-02-22 | Delegate forwarding and address resolution in fragmented network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104106242A CN104106242A (zh) | 2014-10-15 |
CN104106242B true CN104106242B (zh) | 2017-06-13 |
Family
ID=47843435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380009007.3A Active CN104106242B (zh) | 2012-02-24 | 2013-02-22 | 分片网络中委托转发和地址解析 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130223454A1 (zh) |
EP (1) | EP2817926B1 (zh) |
CN (1) | CN104106242B (zh) |
WO (1) | WO2013126831A1 (zh) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013130454A1 (en) * | 2012-03-01 | 2013-09-06 | Interdigital Patent Holdings, Inc. | Method and apparatus for supporting dynamic and distributed mobility management |
US8989189B2 (en) * | 2012-06-07 | 2015-03-24 | Cisco Technology, Inc. | Scaling IPv4 in data center networks employing ECMP to reach hosts in a directly connected subnet |
US9014202B2 (en) * | 2013-02-14 | 2015-04-21 | Cisco Technology, Inc. | Least disruptive AF assignments in TRILL LAN adjacencies |
US9467365B2 (en) | 2013-02-14 | 2016-10-11 | Cisco Technology, Inc. | Mechanism and framework for finding optimal multicast tree roots without the knowledge of traffic sources and receivers for fabricpath and TRILL |
US10454714B2 (en) | 2013-07-10 | 2019-10-22 | Nicira, Inc. | Method and system of overlay flow control |
US9455901B2 (en) | 2013-10-04 | 2016-09-27 | Nicira, Inc. | Managing software and hardware forwarding elements to define virtual networks |
US9531627B1 (en) * | 2014-01-15 | 2016-12-27 | Cisco Technology, Inc. | Selecting a remote path using forwarding path preferences |
US9794079B2 (en) | 2014-03-31 | 2017-10-17 | Nicira, Inc. | Replicating broadcast, unknown-unicast, and multicast traffic in overlay logical networks bridged with physical networks |
US10038629B2 (en) | 2014-09-11 | 2018-07-31 | Microsoft Technology Licensing, Llc | Virtual machine migration using label based underlay network forwarding |
US9936014B2 (en) | 2014-10-26 | 2018-04-03 | Microsoft Technology Licensing, Llc | Method for virtual machine migration in computer networks |
US9923800B2 (en) * | 2014-10-26 | 2018-03-20 | Microsoft Technology Licensing, Llc | Method for reachability management in computer networks |
US10135789B2 (en) | 2015-04-13 | 2018-11-20 | Nicira, Inc. | Method and system of establishing a virtual private network in a cloud service for branch networking |
US9942058B2 (en) | 2015-04-17 | 2018-04-10 | Nicira, Inc. | Managing tunnel endpoints for facilitating creation of logical networks |
US10554484B2 (en) | 2015-06-26 | 2020-02-04 | Nicira, Inc. | Control plane integration with hardware switches |
US9967182B2 (en) | 2015-07-31 | 2018-05-08 | Nicira, Inc. | Enabling hardware switches to perform logical routing functionalities |
US10313186B2 (en) | 2015-08-31 | 2019-06-04 | Nicira, Inc. | Scalable controller for hardware VTEPS |
US10230576B2 (en) * | 2015-09-30 | 2019-03-12 | Nicira, Inc. | Managing administrative statuses of hardware VTEPs |
US9973394B2 (en) * | 2015-09-30 | 2018-05-15 | Netapp Inc. | Eventual consistency among many clusters including entities in a master member regime |
US10263828B2 (en) | 2015-09-30 | 2019-04-16 | Nicira, Inc. | Preventing concurrent distribution of network data to a hardware switch by multiple controllers |
US9948577B2 (en) | 2015-09-30 | 2018-04-17 | Nicira, Inc. | IP aliases in logical networks with hardware switches |
US9998324B2 (en) | 2015-09-30 | 2018-06-12 | Nicira, Inc. | Logical L3 processing for L2 hardware switches |
US10250553B2 (en) | 2015-11-03 | 2019-04-02 | Nicira, Inc. | ARP offloading for managed hardware forwarding elements |
CN109076006B (zh) * | 2016-04-13 | 2021-10-15 | 诺基亚技术有限公司 | 基于覆盖网络的多租户虚拟专用网络 |
US10200343B2 (en) | 2016-06-29 | 2019-02-05 | Nicira, Inc. | Implementing logical network security on a hardware switch |
CN108243106B (zh) | 2016-12-23 | 2020-09-04 | 华为技术有限公司 | 控制网络切片的方法、转发设备、控制设备和通信系统 |
US11706127B2 (en) | 2017-01-31 | 2023-07-18 | Vmware, Inc. | High performance software-defined core network |
US20180219765A1 (en) | 2017-01-31 | 2018-08-02 | Waltz Networks | Method and Apparatus for Network Traffic Control Optimization |
US20200036624A1 (en) | 2017-01-31 | 2020-01-30 | The Mode Group | High performance software-defined core network |
US10992568B2 (en) | 2017-01-31 | 2021-04-27 | Vmware, Inc. | High performance software-defined core network |
US10778528B2 (en) | 2017-02-11 | 2020-09-15 | Nicira, Inc. | Method and system of connecting to a multipath hub in a cluster |
US10313153B2 (en) * | 2017-02-27 | 2019-06-04 | Cisco Technology, Inc. | Adaptive MAC grouping and timeout in EVPN environments using machine learning |
US10530678B2 (en) * | 2017-07-20 | 2020-01-07 | Vmware, Inc | Methods and apparatus to optimize packet flow among virtualized servers |
US11102063B2 (en) | 2017-07-20 | 2021-08-24 | Vmware, Inc. | Methods and apparatus to cross configure network resources of software defined data centers |
US10756967B2 (en) | 2017-07-20 | 2020-08-25 | Vmware Inc. | Methods and apparatus to configure switches of a virtual rack |
US10841235B2 (en) | 2017-07-20 | 2020-11-17 | Vmware, Inc | Methods and apparatus to optimize memory allocation in response to a storage rebalancing event |
US10999100B2 (en) * | 2017-10-02 | 2021-05-04 | Vmware, Inc. | Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider |
US10805114B2 (en) | 2017-10-02 | 2020-10-13 | Vmware, Inc. | Processing data messages of a virtual network that are sent to and received from external service machines |
US11115480B2 (en) | 2017-10-02 | 2021-09-07 | Vmware, Inc. | Layer four optimization for a virtual network defined over public cloud |
US11223514B2 (en) | 2017-11-09 | 2022-01-11 | Nicira, Inc. | Method and system of a dynamic high-availability mode based on current wide area network connectivity |
US10523450B2 (en) * | 2018-02-28 | 2019-12-31 | Oracle International Corporation | Overlay network billing |
US10873476B2 (en) * | 2018-12-31 | 2020-12-22 | Big Switch Networks Llc | Networks with multiple tiers of switches |
US10778457B1 (en) | 2019-06-18 | 2020-09-15 | Vmware, Inc. | Traffic replication in overlay networks spanning multiple sites |
US11310170B2 (en) | 2019-08-27 | 2022-04-19 | Vmware, Inc. | Configuring edge nodes outside of public clouds to use routes defined through the public clouds |
US11489783B2 (en) | 2019-12-12 | 2022-11-01 | Vmware, Inc. | Performing deep packet inspection in a software defined wide area network |
US11689959B2 (en) | 2020-01-24 | 2023-06-27 | Vmware, Inc. | Generating path usability state for different sub-paths offered by a network link |
US11709710B2 (en) | 2020-07-30 | 2023-07-25 | Vmware, Inc. | Memory allocator for I/O operations |
CN112737889B (zh) * | 2020-12-29 | 2022-05-17 | 迈普通信技术股份有限公司 | 流量处理方法、流量监控方法、装置、系统及存储介质 |
US11601356B2 (en) | 2020-12-29 | 2023-03-07 | Vmware, Inc. | Emulating packet flows to assess network links for SD-WAN |
US11792127B2 (en) | 2021-01-18 | 2023-10-17 | Vmware, Inc. | Network-aware load balancing |
US11979325B2 (en) | 2021-01-28 | 2024-05-07 | VMware LLC | Dynamic SD-WAN hub cluster scaling with machine learning |
US12009987B2 (en) | 2021-05-03 | 2024-06-11 | VMware LLC | Methods to support dynamic transit paths through hub clustering across branches in SD-WAN |
US11582144B2 (en) | 2021-05-03 | 2023-02-14 | Vmware, Inc. | Routing mesh to provide alternate routes through SD-WAN edge forwarding nodes based on degraded operational states of SD-WAN hubs |
US11729065B2 (en) | 2021-05-06 | 2023-08-15 | Vmware, Inc. | Methods for application defined virtual network service among multiple transport in SD-WAN |
US12015536B2 (en) | 2021-06-18 | 2024-06-18 | VMware LLC | Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds |
US11784922B2 (en) * | 2021-07-03 | 2023-10-10 | Vmware, Inc. | Scalable overlay multicast routing in multi-tier edge gateways |
US11711230B2 (en) * | 2021-07-20 | 2023-07-25 | Hewlett Packard Enterprise Development Lp | Multicast packet management for a virtual gateway of a distributed tunnel fabric |
US12047282B2 (en) | 2021-07-22 | 2024-07-23 | VMware LLC | Methods for smart bandwidth aggregation based dynamic overlay selection among preferred exits in SD-WAN |
US11943146B2 (en) | 2021-10-01 | 2024-03-26 | VMware LLC | Traffic prioritization in SD-WAN |
US11909815B2 (en) | 2022-06-06 | 2024-02-20 | VMware LLC | Routing based on geolocation costs |
US12057993B1 (en) | 2023-03-27 | 2024-08-06 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
US12034587B1 (en) | 2023-03-27 | 2024-07-09 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7839869B1 (en) * | 2001-04-12 | 2010-11-23 | Force 10 Networks, Inc. | Method and apparatus for providing virtual point to point connections in a network |
CN102113274A (zh) * | 2008-06-09 | 2011-06-29 | 微软公司 | 没有结构化瓶颈的数据中心 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9253274B2 (en) * | 2007-01-19 | 2016-02-02 | Cisco Technology, Inc. | Service insertion architecture |
US8160063B2 (en) * | 2008-06-09 | 2012-04-17 | Microsoft Corporation | Data center interconnect and traffic engineering |
US8446841B2 (en) * | 2008-08-27 | 2013-05-21 | Fujitsu Limited | Communicating information between core and edge network elements |
US8797913B2 (en) * | 2010-11-12 | 2014-08-05 | Alcatel Lucent | Reduction of message and computational overhead in networks |
US8582438B2 (en) * | 2011-06-29 | 2013-11-12 | Cisco Technology, Inc. | Detecting and mitigating overload on switches by wireless mobile client devices |
-
2013
- 2013-02-22 CN CN201380009007.3A patent/CN104106242B/zh active Active
- 2013-02-22 US US13/775,021 patent/US20130223454A1/en not_active Abandoned
- 2013-02-22 EP EP13708320.0A patent/EP2817926B1/en active Active
- 2013-02-22 WO PCT/US2013/027499 patent/WO2013126831A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7839869B1 (en) * | 2001-04-12 | 2010-11-23 | Force 10 Networks, Inc. | Method and apparatus for providing virtual point to point connections in a network |
CN102113274A (zh) * | 2008-06-09 | 2011-06-29 | 微软公司 | 没有结构化瓶颈的数据中心 |
Also Published As
Publication number | Publication date |
---|---|
WO2013126831A1 (en) | 2013-08-29 |
US20130223454A1 (en) | 2013-08-29 |
EP2817926A1 (en) | 2014-12-31 |
CN104106242A (zh) | 2014-10-15 |
EP2817926B1 (en) | 2020-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104106242B (zh) | 分片网络中委托转发和地址解析 | |
CN104106240B (zh) | 覆盖网络中转发和地址解析的平衡 | |
CN108989212B (zh) | 多个下一跳的路由协议信令及其关系 | |
CN108989213B (zh) | 使用虚拟节点之间的所选择的结构路径传输lsp设置 | |
CN108989202B (zh) | 用于虚拟节点的基于结构路径上下文的转发 | |
JP7456057B2 (ja) | 強化されたsd-wanパスの品質測定および選択 | |
Wang et al. | A survey on data center networking for cloud computing | |
US10868756B2 (en) | Explicit control of aggregation links via IS-IS | |
US9049127B2 (en) | Methods and devices for providing service clustering in a trill network | |
US9819505B2 (en) | Group bundling priority dissemination through link-state routing protocol in a network environment | |
CN102150148B (zh) | 层2拓扑中针对单播帧和多播帧的差别化服务 | |
CN105162704B (zh) | Overlay网络中组播复制的方法及装置 | |
CN105264493A (zh) | 信息中心网络上的动态虚拟机迁移 | |
US20130259050A1 (en) | Systems and methods for multi-level switching of data frames | |
US10931530B1 (en) | Managing routing resources of a network | |
CN104079465A (zh) | 在链路状态协议受控以太网网络上实现vpn | |
CN107968750A (zh) | 报文传输方法、装置及节点 | |
US11362954B2 (en) | Tunneling inter-domain stateless internet protocol multicast packets | |
US10003518B2 (en) | Span session monitoring | |
CN109981455A (zh) | 一种隧道实现方法及装置 | |
CN107317740A (zh) | 一种数据报文的处理方法及装置 | |
CN103248568B (zh) | 路由器及其实现支持冗余无编号链路的数据转发方法 | |
US10965589B2 (en) | Fast receive re-convergence of multi-pod multi-destination traffic in response to local disruptions | |
CN101640630B (zh) | 虚拟链路组的通告方法、系统和设备 | |
Kim | Scalable and efficient self-configuring networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |