CN105681231A - 用于在自治系统内和之间对流量进行软件定义的路由的具有增强的流路由、可伸缩性和安全性的系统和方法 - Google Patents

用于在自治系统内和之间对流量进行软件定义的路由的具有增强的流路由、可伸缩性和安全性的系统和方法 Download PDF

Info

Publication number
CN105681231A
CN105681231A CN201510152053.XA CN201510152053A CN105681231A CN 105681231 A CN105681231 A CN 105681231A CN 201510152053 A CN201510152053 A CN 201510152053A CN 105681231 A CN105681231 A CN 105681231A
Authority
CN
China
Prior art keywords
data packet
switch
network interface
network
processor
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.)
Granted
Application number
CN201510152053.XA
Other languages
English (en)
Other versions
CN105681231B (zh
Inventor
B·克里
S·帕吉特
A·杰恩
A·辛格
A·瓦赫达特
M·卡拉哈拉
M·塔里克
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN105681231A publication Critical patent/CN105681231A/zh
Application granted granted Critical
Publication of CN105681231B publication Critical patent/CN105681231B/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
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • 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
    • H04L45/033Topology update or discovery by updating distance vector protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种自治网络和对应的路由方法,包括由控制器确定路由路径,以及向位于控制器远处的数据分组处理器提供所确定的路由路径。数据分组处理器基于来自控制器的信息,通过远离数据分组处理器的多个交换机路由传出数据分组。每个交换机包括多个网络接口。对于传出数据分组,数据分组处理器确定通过哪个网络接口来发送数据分组,并且在数据分组的头部中添加对所确定的网络接口的指示。数据分组处理器将修改的数据分组转发到包括所确定的网络接口的交换机。交换机基于指示识别网络接口,并且通过所识别的网络接口发送传出数据分组。

Description

用于在自治系统内和之间对流量进行软件定义的路由的具有增强的流路由、可伸缩性和安全性的系统和方法
相关专利申请的交叉引用
本专利申请要求在2014年9月5日提交的名称为“SystemandMethodforSoftwareDefinedRoutingofTrafficWithinandBetweenAutonomousSystemswithEnhancedFlowRouting,ScalabilityandSecurity”的美国申请No.14/478217的优先权,该美国申请进而要求在2014年4月1日提交的名称为“SystemandMethodforSoftwareDefinedRoutingofTrafficWithinandBetweenAutonomousSystemswithEnhancedFlowRouting,ScalabilityandSecurity”的美国临时申请No.61/973650的优先权,这两个申请被转让给本申请的受让人并且因此通过引用被明确地包含于此。
背景技术
本发明总的涉及在自治系统(autonomoussystem)内和之间路由数据流量的领域。
随着对连接和数据服务的需求的增加,通常期望数据中心和自治服务网络(ASN)来连续地处理对数据内容的大量请求。终端用户期望数据服务是具有微小延迟的连续可用服务。
发明内容
根据一个方面,本公开涉及一种包括多个交换机的自治网络。每个交换机包括多个网络接口,并且被配置为接收寻址到位于所述网络外的装置的数据分组。交换机从所接收的传出数据分组(outgoingdatapacket)的头部获得指示通过哪个网络接口发送该传出数据分组的数据,并且通过在从头部获得的数据中指示的网络接口发送该传出数据分组。所述自治网络还包括数据分组处理器,其位于所述多个交换机的远处,并且被配置为对于传出分组识别在所述多个交换机的一个内的网络接口,其中对应的交换机将通过该网络接口发送该传出数据分组。数据分组处理器将对所识别的网络接口的指示添加到传出数据分组的头部,并且将该传出数据分组转发到对应的交换机。所述自治网络还包括控制器,其被配置为确定用于路由数据分组的路由路径,以及向数据分组处理器提供与所确定的路由路径相关联的路由信息,该路由信息足以用于由数据分组处理器识别将发送该传出数据分组的交换机和交换机的网络接口。
根据另一个方面,本公开涉及一种用于在自治网络中处理数据分组的方法。所述方法包括由多个交换机中的一个交换机接收寻址到位于所述网络外的装置的数据分组。所述多个交换机中的每个交换机包括多个网络接口。所述交换机从所接收的传出数据分组的头部获得指示通过哪个网络接口发送该传出数据分组的数据,并且通过在从头部获得的数据中指示的网络接口发送该传出数据分组。位于所述多个交换机远处的数据分组处理器识别与所述多个交换机中的一个交换机相关联的网络接口,其中对应的交换机将通过该网络接口发送该传出数据分组。所述数据分组处理器将对所识别的网络接口的指示添加到传出数据分组的头部,并且将该传出数据分组转发到所识别的交换机。控制器确定用于路由数据分组的路由路径,并且向所述数据分组处理器提供与所确定的路由路径相关联的路由信息。所提供的信息足以用于由数据分组处理器识别将发送该传出数据分组的交换机的网络接口。
本文中,本公开的另一个方面涉及一种存储有计算机代码指令的计算机可读介质,当由处理器执行时,所述计算机代码指令被配置为使得设备基于从控制器接收的路由信息识别与多个交换机中的一个交换机相对应的网络接口,其中对应的交换机将通过该网络接口发送传出数据分组。当由处理器执行时,所述计算机代码指令还使得设备将对所识别的网络接口的指示添加到传出数据分组的头部,并且将该传出数据分组转发到所识别的交换机。
附图说明
图1是描述传统的内容分发网络的示例架构的图示;
图2是描述内容分发网络的示例高层架构的图示;
图3示出了图2所示的内容分发网络架构的更详细的示例框图;
图4是描述示例的分层的数据分组和内容请求处理模型的框图;
图5是描述在自治网络内管理和利用路由信息的示例方法的流程图;
图6是描述用于处理传出数据分组的示例方法的流程图;
图7是描述用于处理传入数据分组的示例方法的流程图;以及
图8是示例的计算机装置的框图。
具体实施方式
以下是用于在自治网络中处理数据分组的方法、设备和系统的各种相关概念和实施方式的描述。由于所描述的概念不受限于任何特定的实现方式,因此可采用许多方式中的任何一种来实现上面介绍的并且在下面更详细讨论的各种概念。提供具体实施方式和应用的例子主要是用于说明的目的。
图1是描述内容分发网络100的示例架构的图示。内容分发网络(CDN)是自治网络的一个例子。自治网络是具有多个互联网协议(IP)路由前缀并且提供到互联网的常用路由策略的网络。其他类型的自治网络包括传输网络、互联网服务供应商(ISP)、自治服务网络(ASN)等。自治网络100包括多个边缘路由器110a-110c(也共同或者分别称作边缘路由器110)、内容高速缓存服务器120、聚合结构(aggregationfabric)130、一个或多个主干路由器140以及主干系统150。
边缘路由器110被配置为处理正在进入网络的数据分组以及正被发送到网络之外的数据分组。在处理数据分组时,边缘路由器110执行数据分组处理及路由。每个边缘路由器110包括多个通信接口或端口111。每个端口111与对等网络(例如ISP或者其他自治网络)相对应。边缘路由器110建立与其他对等内容分发网络的外部边界网关协议(e-BGP)会话。作为e-BGP会话的部分,边缘路由器110与其他对等内容分发网络交换路由和可达性信息。边缘路由器110还被配置为构造互联网路由表、实现路由策略,以及在将数据分组路由到其他对等自治网络时主要基于通过BGP会话获得的信息选择最佳路由路径。
除了路由控制任务之外,边缘路由器110还被配置为执行分组处理,例如访问控制列表(ACL)过滤、细粒度分组分类、入站数据分组封装等。在为对应的数据分组确定路由路径时,边缘服务器110基于所确定的路径将数据分组转发到CDN100内的下一跳节点。
内容高速缓存服务器120被配置为向请求的终端用户提供内容并且执行负载平衡。也就是说,内容高速缓存服务器120存储内容并且处理来自终端用户的内容请求。内容高速缓存服务器120还被配置为通过在不同的内容服务器之间分发传入的内容请求来执行负载平衡。通常,多个内容服务器存储相同内容的不同副本。这样,内容高速缓存服务器120采用平衡多个内容服务器对应的处理负载并且避免多个内容服务器中的一个或多个过载的方式,在它们之间分发传入的对于该内容的请求。内容高速缓存服务器120通过聚合结构130耦合到边缘路由器110。自治网络100可采用多个内容高速缓存服务器120。
聚合结构130将边缘路由器110连接到内容高速缓存服务器120和主干路由器140。可使用主干路由器来实现聚合结构130。
一个或多个主干路由器140被配置为路由和转发去往和来自主干系统150的数据分组。主干路由器140耦合到边缘路由器110和主干系统150。
主干系统150包括一个或多个内容服务器(在图1中未示出)。内容服务器被配置为存储内容,以及处理来自终端用户的、请求没被存储在内容高速缓存服务器120中的内容的请求。响应于通过主干路由器140接收的内容请求,内容服务器用所请求的内容进行响应。通过一个或多个主干路由器将所请求的内容发送给边缘路由器110,以便传送到请求的终端用户。
在互联网对等性方面,图1中描述的网络架构基于单片边缘路由器110。也就是说,边缘路由器110使用现有的BGP协议来(1)与其他内容分发网络交换可达性,以及(2)在内部路由元件之间分发路由信息。这种使用BGP协议的方法被设计来用于相对小规模和不复杂的部署,例如在90年代中期的BGP部署环境(landscape)。
下文描述允许将控制平面功能从数据平面功能分离出来的网络架构。由一个或多个数据分组处理器来处理控制平面功能,然而,在数据分组处理器以及在内容分发网络边缘处的交换机之间分发数据平面功能。数据分组处理器与在内容分发网络边缘处的交换机是分离的。
图2是描述内容分发网络200的可选的示例高层架构的图示。内容分发网络200的架构将控制平面功能从网络边缘处的数据平面功能分离出来。内容分发网络200包括对等结构201、路由控制系统260、一个或多个分组处理器220、一个或多个主干路由240以及主干系统250。尽管在内容分发网络的上下文中讨论了在下文描述的架构,但对于其他类型的自治网络可采用基本类似的架构。
对等结构201包括多个交换机210。交换机210可以是相对简单的交换或路由器芯片或者商品路由器。交换机210不需要具有强大的计算能力或者路由智能。在一些其他的实施方式中,交换机210可以是能够通过网络转发分组的任何网络元件。在一些实施方式中,对等结构201被配置为以最小的路由智能或者在没有路由智能的情况下处理转发平面功能。对等结构201的每个交换机210包括多个网络接口211。对等结构201的交换机210被配置为通过在外出数据分组的头部中指定的网络接口211将那些数据分组从内容分发网络200的内部装置转发到对等网络。由于数据分组头部已经包括应该通过哪个网络接口211转发该数据分组的标识,因此交换机210不需要做出关于该数据分组的任何路由决定,或者甚至不需要知道期望数据分组流到哪个对等网络。交换机210还被配置为将从外部对等网络接收的数据分组通过网络接口211转发到对应的进入装置,例如数据分组处理器220或者内容分发网络200的其他装置。
路由控制系统260被配置为从(图2中未示出但结合图3讨论的)BGP发言者(speaker)学习互联网路由,并且从路由控制系统260学习内部路由。路由控制系统260提供关于到一个或多个数据分组处理器220的可用路由路径的信息。路由控制系统260包括全局控制器266和一个或多个本地控制器267。根据一个可选的实施方式,路由控制系统260包括一个或多个全局控制器266但不包括本地控制器267。根据又一个可选的实施方式,路由控制系统260包括一个或多个本地控制器267(其被配置为与其他本地控制器交换路由信息),但不包括全局控制器266。在下文中结合图3提供对全局控制器266和本地控制器267的功能的更详细的描述。
一个或多个数据分组处理器220驻留在一个或多个边缘设备或者边缘服务器中。一个或多个数据分组处理器220位于对等结构201的交换机的远处。也就是说,尽管它们可能在相同的数据中心或者数据中心的相同区域中,但它们不在相同的物理机箱(chassis)内。一个或多个数据分组处理器220被配置为基于关于从路由控制系统260接收的可用路由路径的信息,执行数据分组路由。在一些实施方式中,数据分组处理器220包括一个或多个单核或多核通用处理器,或者由一个或多个单核或多核通用处理器驱动。
对于传出数据分组,数据分组处理器220被配置为确定用于将该数据分组转发到网络之外的对等结构201中的交换机210,和与所确定的交换机210相关联的对应的网络接口211,其中交换机应通过该网络接口输出数据分组。数据分组处理器220接着在数据分组的头部中添加对所确定的交换机和对应的网络接口的指示,并且将具有所添加的指示的数据分组转发到所确定的交换机。在一些实施方式中,数据分组处理器220添加指示,作为MPLS或类似的协议标签。在一些实施方式中,数据分组处理器220通过用GRE头部(或者一些其他的封装头部,如VLAN头部)封装分组来添加指示。在一些实施方式中,数据分组处理器220可添加多个标签或者多层封装来提供特定的路由指示,以便将数据分组从数据分组处理器220转发到对等结构中的期望交换机。在接收到来自数据分组处理器220的数据分组时,所识别的交换机从数据分组中移除指示(例如通过移除封装或者通过取出MPLS标签),并且通过该指示所指的网络接口211发送该数据分组。
除了路由之外,一个或多个数据分组处理器220被配置为执行数据分组处理,例如数据分组过滤、数据分组分类和/或其他每分组功能。
一个或多个主干路由器240被配置为路由和转发去往和来自主干系统250的数据分组。主干路由器240耦合到一个或多个数据分组处理器220以及主干系统250。
主干系统250包括一个或多个内容服务器(图2中未示出)。内容服务器被配置为存储内容和处理从终端用户接收的内容请求。响应于通过主干路由器240接收的内容请求,内容服务器用所请求的内容进行响应。通过一个或多个主干路由器240将所请求的内容发送到一个或多个数据分组处理器220,以便经由对等结构201路由和转发到原始请求者。
根据图2描述的架构,在路由控制系统260、一个或多个数据分组处理器220和对等结构201之间分发通常由边缘路由器110执行的功能。
图3示出了内容分发网络300的更详细的示例的架构。内容分发网络300包括对等结构301、结构控制器314、BGP发言者318、包括一个或多个数据分组处理器325的前端装置320、全局和本地控制器365和367、分组处理器/负载平衡控制器366、聚合结构330、一个或多个主干路由器340以及主干系统350。如同图2中所示的架构,图3中所示的架构可以容易地与不同于CDN等的其他自治网络一起使用。
对等结构301包括在网络300的边缘处的多个交换机310。每个交换机310包括多个网络接口311。每个交换机310被配置为通过在数据分组的头部中指定的网络接口311将那些数据分组从内容分发网络300的进入装置转发到对等网络。由于数据分组头部已经包括应该通过哪个网络接口311转发该数据分组的标识,因此交换机310不需要做出关于数据分组的任何路由决定,或者甚至不需要知道期望该数据分组流向哪个对等网络。每个交换机310还被配置为将从外部装置或者其他网络接收的数据分组转发到内容分发网络300的对应进入装置,例如前端装置320、主干路由器340等。对等结构310中的交换机310可经由聚合结构330彼此连接并且连接到网络300的剩余组件,该聚合结构330可进而包括层次化的交换机,以促成对去往和来自对等结构301中的交换机310的分组进行路由。
在接收到寻址到另一个网络或者内容分发网络300之外的装置的数据分组时,交换机310从传出数据分组的头部获得通过哪个网络接口311发送该传出数据分组的指示。特别地,交换机解析传出数据分组的头部以检索该指示。从头部检索的指示所指的网络接口311被指定来发送寻址到给定网络或者内容分发网络300之外的装置的传出数据分组。换句话说,每个网络接口311与给定的外部装置或者其他网络相对应。在一些实施方式中,可组合(trunk)两个或更多的网络接口311,以将数据流量定向到相同的外部装置或其他网络。在一些实施方式中,接收数据分组的交换机310被配置为在发送数据分组之前从该数据分组移除指示交换机310和对应的网络接口311的信息,如一个或多个添加的头部或MPS标签。这样,不需要用许多路由规则或路由信息(如果有的话)来编程交换机310以将传出数据分组转发到其对应的目的地。因此,基本上最小化了由对等结构301或者任何对应的交换机310承载的路由状态。与之相比,本领域普通技术人员应理解在传统的路由器110中,承载大的互联网规模的路由表是导致路由器成本以及它们有限的可伸缩性的一个重要因素。
对等结构301或者任何对应的交换机310,承载非常少的或者不承载路由状态。这样,例如使用简单的商品交换/路由芯片来实现对等结构301。采用简单的商品交换/路由芯片允许对等结构301具有简单的且非常有成本效益的可伸缩性。在一些实施方式中,对等结构301中的交换机310支持标准以太网、同步光纤网络(SONET)和/或同步数字体系(SDH)接口,该接口与其他网络或者在内容分发网络300外部的装置通信。
结构控制器314耦合到对等结构301。在一些实施方式中,结构控制器310作为组成对等结构301的交换机的软件定义网络(SDN)控制器。这样,结构控制器314被配置为例如通过在结构控制器314上运行的SDN软件来控制对等结构301。结构控制器314还耦合到全局控制器365。结构控制器314被配置为接收来自全局控制器的与控制或编程对等结构301相关的信息和/或指令。结构控制器314还被配置为从组成对等结构301的交换机310接收状态信息。结构控制器314可接着将该状态信息(例如指示交换机或交换机的网络接口故障的信息)传送到本地控制器366和/或全局控制器367,使得可以在必要时更新路由。在一些实施方式中,结构控制器314还耦合到聚合结构330,并且可充当其中的交换机的SDN控制器。
BGP发言者318耦合到对等结构301,并且被配置为与对等网络和其他外部装置建立BGP会话。BGP发言者318还被配置为例如基于所建立的与其他网络或外部装置的会话,构造互联网路由表。BGP发言者314耦合到全局控制器365和本地控制器366。BGP发言者314通过对等结构301的交换机310将关于可用互联网路由的信息提供给全局控制器365和/或本地控制器367。根据至少一个示例实施方式,BGP发言者314驻留在边缘服务器或者边缘网络元件中。
路由控制器(即全局/本地控制器365和367)被配置为在网络路由应用和边缘资源之间协调,并且控制它们以便提供端对端的连接。特别地,全局和/或本地控制器365和367从BGP发言者318收集关于可用的互联网路由的信息(例如路由表),以及从结构控制器314或者直接从对等结构301中的交换机、聚合结构330和主干路由器340收集内部路由信息。在一些实施方式中,内部路由信息可包括在内部路由上支持的一组服务类别、在路由上的(总计或每种支持的流量分类)流量大小,或者关于路由质量的信息(例如带宽、延迟等)。在一些实施方式中,全局控制器365从位于内容分发网络300的(例如,与不同的地理/都市区域或者其他分开管理的边缘装置的组相关联的)不同子网中的BGP发言者收集这样的信息。本地控制器367可以仅从位于与该本地控制器367相同的子网中的本地BGP发言者314收集路由信息。全局/本地控制器365和367还被配置为将指示可用路由的信息推送到前端装置320。例如,全局和/或本地控制器365和367向前端装置320提供足够在前端装置320处维护完整的转发信息库(FIB)的路由信息。
在一些实施方式中,全局控制器365被配置为维护互联网的全局视图,而不太了解与网络300相关联的任何边缘网络内或者任何对等网络内的内部操作或路由。要实现该目的,全局控制器被配置为记录可用的互联网路由,例如,由位于内容分发网络的不同子网处的BGP发言者感知的可用的互联网路由。全局控制器还被配置为直接或者通过本地控制器367向前端装置320推送信息,例如规则和/或可用互联网路由的更新。例如,全局控制器365通过向前端装置320发送规则或信息以便调整对应的维护的FIB,来对互联网链接故障作出反应。全局控制器365可以不知道内部路由(即在特定子网中的内部装置之间的内部路由)和/或其变化。
由全局控制器365收集的路由信息包括指示可用的外部网络路由的信息、外部网络或子网的状态、与外部网络路由或链接相关联的延迟信息、拥塞信息等。这样,能够基于比BGP路由中通常使用的更多的信息来确定路由,其中BGP路由基于最少跳数来选择路由。相反,全局控制器可以沿如下路径来路由分组:该路径可能不具有最少跳数,但是可具有较低延迟、较高带宽、较高可靠性或者履行其他网络可能没有的服务质量指标。全局控制器365还被配置为从其他控制应用或者系统接收控制信息,例如DoS缓解信息(mitigationinformation)、配置信息或其他控制信息。全局控制器可处理该信息以实时或者接近实时地更新由数据分组处理器325应用的分组处理和过滤规则。全局控制器365还被配置为将所接收的控制信息的至少部分转发到本地控制器367。
本地控制器367被配置为维护其驻留的子网的局部视图。特别地,本地控制器267被配置为记录内部路由和本地网络性能。本地控制器267还记录从本地BGP发言者318学习的可用互联网路由。响应于内部路由或者从本地BGP发言者318学习的互联网路由的变化,本地控制器367将规则或路由信息更新推送到前端装置320,以更新相应的FIB。
为支持对等边缘的five-9可用性,路由控制器365和367被设计为使用控制的故障转移机制来容忍任意单个组件(硬件或软件)的故障。特别地,路由控制器365和367被配置为针对其中控制器分配的路由失去时效的情况(例如,如果从控制器分配的端口中取消路由或者如果链接出现故障),提供城域-局域突触响应。在这种情况下,路由控制器365和/或367学习路由可用性,并且将规则或者对可用路由的更新推送到前端装置320,这允许前端装置320后退到替代路由。换句话说,路由控制器365和/或367被配置为对可用路由的变化做出反应,并且向前端装置320提供适当的更新。此外,图3的架构中的路由控制层次允许内容分发网络300提供高可用性级别。也就是说,将可用外部网络路由的确定分配给路由控制器365和367,将传出数据分组的路由分配给数据分组处理器325,并且将传出数据分组的传输分配给对等结构301,允许对内容分发网络300以及外部网络或子网的变化进行快速路由自适应。
前端装置320包括一个或多个数据分组处理器325。数据分组处理器325被配置为执行路由和其他数据分组处理操作。在一些实施方式中,数据分组处理器325被配置为维护完整的FIB326。根据至少一个实施方式,在数据分组处理器的高速缓存存储器中存储FIB326,例如在二级(L2)高速缓存中存储。可选地,在前端装置320内的处理器外的存储器中存储FIB326,例如在动态随机存取存储器(DRAM)中存储。在一些实施方式中,FIB中的部分存储在高速缓存存储器中,部分存储在RAM中。数据分组处理器325被配置为在得知可用路由和/或外部网络装置/元件的状态发生变化时,动态地更新FIB326。特别地,数据分组处理器325从本地控制器367和/或全局控制器365接收指示路由规则和/或对FIB326的更新的信息。作为响应,数据分组处理器325基于所接收的信息更新FIB326。
数据分组处理器325还被配置为路由传出数据分组。特别地,数据分组处理器325基于FIB为所接收的传出数据分组确定路由和/或外部的下一跳。数据分组处理器325确定对等结构301中的交换机310和/或对应的网络接口311,以便将传出数据分组传输到对应的外部下一跳。数据分组处理器325在数据分组的头部中添加对所确定的交换机310和对应的网络接口311的指示。在一些实施方式中,数据分组处理器325添加指示,作为MPLS标签。在一些实施方式中,数据分组处理器325通过用标识交换机和网络接口的GRE头部来封装分组,从而添加指示。在一些实施方式中,数据分组处理器325可添加多个MPLS标签或者多层GRE封装,以提供用于将数据分组从数据分组处理器325转发到对等结构中的期望交换机的特定的路由指令。在一些其他的实施方式中,数据分组处理器325可将不同于MPLS标签的标签添加到分组头部,或者使用不同于GRE封装的其他形式的封装来封装分组,例如VLAN封装。数据分组处理器325接着例如通过聚合结构330将修改的传出数据分组转发到所确定的交换机。
除了路由传出数据分组,数据分组处理器还被配置为对传入数据分组执行数据分组过滤。例如,数据分组处理器325将ACL过滤应用于传入数据分组。此外,由于可在通用处理器上实现数据分组处理器325,因此可使用比通常编程到典型路由器内的更复杂的过滤规则来编程数据分组处理器325。此外,在发现对网络的新的威胁时,可容易地实时或者接近实时地更新该规则。根据示例的实施方式,数据分组处理器325对传入数据分组应用动态拒绝服务(DoS)过滤。图3中的网络架构允许通过智能集中服务(例如全局控制器365和/或其他控制应用)来动态地插入DoS保护规则。根据示例的实施方式,数据分组处理器325通过软件定义网络(SDN)接口(例如OpenFlow)耦合到控制器(例如本地控制器367或控制器366),以允许针对所有传入流将分组匹配规则动态地插入。
根据其他的实施方式,数据分组处理器325被配置为控制数据流速率。例如,数据分组处理器325以每个流为基础执行预定的数据速率。数据分组处理器325还可以测量数据分组传输的速率,以避免在对等结构301处的缓冲器溢出。例如,即使FIFO队列可包含去往相同的出站端口的64个连续数据分组,但分组处理器可选择交错传输去往其他目的地的数据分组,以保证单个流的激增不会导致对等结构301中的有限缓冲器溢出。本领域普通技术人员应理解,可由数据分组处理器325执行其他的每分组处理任务。
根据示例的实施例,数据分组处理器325利用单核或多核通用处理器。在一些实施例中,数据分组处理器325可采用并行操作的数个单核或多核通用处理器。数据分组处理器325还可以利用专用于在一个或多个多核处理器内执行路由和/或数据分组处理任务的核心处理器。
前端装置320包括前端服务器或者另一个前端网络元件。例如,前端装置320可以是依赖于现代多核处理器的能力的前端服务器,其中该多核处理器的一个核以每秒10千兆比特(Gb/s)的速度执行简单的线速数据分组处理,例如每秒15个百万(M)的数据分组。这样,图3的网络架构允许容忍线速DoS攻击,以及通过在对等结构处编程过滤器或者通过在分组处理器自身处过滤数据分组来缓解该攻击。根据至少一个示例实施方式,在数据分组处理层处理在传输控制协议(TCP)层及其下层的所有攻击(包括TCPSYN攻击),其中数据分组处理层在前端装置320的内核之上运行。根据示例的实施例,前端装置320包括负载平衡模块327。可选地,由不同于数据分组处理器325所驻留的前端装置320的另一个装置或网络元件来执行负载平衡。
图3的网络架构还允许仅为了“清除”非DoS流量,在数据分组处理层之外提供内容分发网络300。该架构还允许在每个都市区域或者子网中,在物理上不同的冗余拨入点(POP)中存放数据分组处理器325的1+1冗余池。
控制器366被配置为控制数据分组处理器325和/或负载平衡模块327。
聚合结构330包括将前端装置320和/或数据分组处理器325耦合到对等结构301的一组路由器和/或交换机。主干路由器340被配置为将主干系统350耦合到对等结构301和/或数据分组处理器325。主干系统350包括将内容提供给请求的终端用户的一个或多个内容服务器。
图4是描述示例的分层的数据分组和内容请求处理模型的框图。结合图3描述的网络架构允许细粒度分层的数据分组和请求处理,并且在逻辑上和物理上动态地移动层。数据分组处理的层包括超文本传输协议(HTTP)服务410、有状态的层四(L4)负载平衡420、传输控制协议(TCP)cookie处理430、数据分组过滤440、无状态L4负载平衡450、层三(L3)转发460和L3静态过滤470。数据分组处理的层410-470是根据操作的顺序以及根据保持在网络300的边缘处的期望来排序的。根据示例实施方式,底部三层450-470永久地存在于对等结构301中。上层410-440存在于数据分组处理和请求处理应用中。假设在网络边缘处保持尽可能多的层可能是有益的,则首先将最低优先级的层(例如410-440)分配给数据分组处理器325,而靠近网络的边缘(也就是在对等结构301处)执行较高优先级的层(例如450-470)。
图5是描述了在自治网络内管理和采用路由信息的方法500的流程图。路由控制器365和/或367例如从BGP发言者318收集关于外部网络路由的信息(步骤510)。路由控制器365和/或367基于收集的信息确定用于路由数据分组的路由(步骤520)。路由控制器365和/或367将规则和/或路由的信息推送到数据分组处理器325(步骤530)。数据分组处理器325基于从路由控制器365和/或367接收的规则和/或路由的信息,更新维护的FIB(步骤540)。过程510-540迭代,这允许动态适应于不同网络的状态和拓扑的变化,其中通过该不同网络交换数据分组。数据分组处理器325基于维护的FIB路由传出数据分组(步骤550)。
图6是描述用于处理传出数据分组的方法600的流程图。数据分组处理器325获得传出数据分组(步骤610)。在获得传出数据分组时,数据分组处理器325识别外部下一跳,其中将向该外部下一跳转发该传出数据分组(步骤620)。识别外部下一跳包括基于例如在所接收的传出数据分组中指示的最终目的地,识别传出数据分组的路由。数据分组处理器325基于存储的FIB识别该路由。数据分组处理器325接着确定与对等结构301中的交换机310相关联的网络接口311,用于将传出数据分组转发到外部下一跳(步骤630)。根据示例实施例,确定网络接口311包括确定对应的交换机310。
数据分组处理器325在传出数据分组的头部中添加对所确定的网络接口311的指示(步骤640)。该指示还可以指示与识别的网络接口311相对应的交换机310。数据分组处理器325接着将修改的数据分组转发到具有识别的网络接口311的交换机310(步骤650)。在接收到传出数据分组时,交换机310解析数据分组头部,以确定通过哪个网络接口311来发送该传出数据分组(步骤660)。交换机接着移除由数据分组处理器325添加的指示,并且将传出数据分组通过所确定的网络接口311发送出去(步骤670)。根据示例的实施方式,由交换机310移除指示包括移除由数据分组处理器325添加的一个或多个头部或者取出由数据分组处理器325添加的一个或多个MPLS标签。
图7是描述处理传入数据分组的方法700的流程图。对等结构301中的交换机310从外部装置接收传入数据分组(步骤710)。交换机将所接收的传入数据分组例如通过聚合结构330转发到数据分组处理器325(步骤720)。数据分组处理器325将过滤和/或数据分组分类应用于传入数据分组(步骤730)。数据分组处理器325接着确定用于处理与传入数据分组相关联的请求的主机装置(例如内容服务器或其他应用服务器)(步骤740)。数据分组处理器325将传入数据分组转发到所确定的主机装置,以便处理相应的请求(步骤750)。
图3的网络架构将数据平面功能与控制平面功能分离。使用数据分组处理器325来执行路由和数据分组处理允许灵活和优化地实现数据平面和控制平面任务。尽管可使用不同类型的处理器作为数据分组处理器,结合图2和3描述的架构允许使用通用处理器作为数据分组处理器,并且不需要使用专门的专用集成电路(ASIC)或者网络处理单元(NPU)。另外,在数据分组处理器325中,高速缓存存储器(例如相对便宜、足够且较高容量的L2高速缓存)可代替通常用于在更高级的路由器中存储类似信息的许多较低容量、昂贵和消耗能源的存储器,用来存储FIB。
此外,结合图2和3描述的架构允许快速和动态地适应网络拓扑和状态的变化,并且因此,适于提供高可用性。如结合图2和3描述的对数据分组处理器的使用,允许处理在数据平面的大规模网络攻击。事实上,数据分组处理器325能够处理深度数据分组检测和解析以及有状态处理,并且因此能够处理大范围的安全威胁。
图8是计算机装置800的框图。计算机装置包括具有中央处理单元(CPU)815和高速缓存存储器816的处理器810。CPU815还可以包括另一个高速缓存存储器。计算机装置800还包括经由数据总线耦合到处理器810的存储器820。由CPU815执行的计算机代码指令可存储在存储器810和/或高速缓存存储器816中。该计算机代码指令例如与由数据分组处理器325执行的处理相对应。根据另一个示例,计算机代码指令与由全局控制器365和/或本地控制器367执行的处理相对应。计算机装置800还包括耦合到处理器810并且被配置为与其他装置通信的输入/输出(I/O)接口830。本领域普通技术人员应理解,处理器810可以是单核处理器或者多核处理器。根据示例实施例,计算机装置800表示前端装置320。计算机装置800还可以或者可选地,表示全局控制器365、本地控制器367或者网络300的其他装置。
可在数字电子电路,或者在计算机软件、固件或硬件(包括在本说明书中公开的结构和它们的结构等同体),或者在它们的一个或多个的组合中实现在本说明书中描述的主题和操作的实施方式。本说明书中描述的主题的实施方式可被实现为在一个或多个计算机存储介质上编码的一个或多个计算机程序,即一个或多个计算机程序指令的模块,用于由数据处理设备执行或者控制数据处理设备的操作。可选地或者除此之外,可在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上编码程序指令,其中生成该传播信号来编码信息,以便传输到合适的接收设备用于由数据处理设备执行。计算机存储介质可以是或者包含于计算机可读存储装置、计算机可读存储衬底、随机或串行存取存储器阵列或装置,或者它们的一个或多个的组合。此外,尽管计算机存储介质不是传播的信号,但计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质还可以是或者包含于一个或多个单独的组件或媒介(例如,多个CD、盘或者其它存储装置)。相应地,计算机存储介质可以是有形的以及永久的。
本说明书中描述的操作可被实现为由数据处理设备对在一个或多个计算机可读存储装置上存储的或者从其他源接收的数据执行的操作。
术语“计算机”或“处理器”包括用于处理数据的所有类型的设备、装置和机器,包括例如可编程处理器、计算机、片上系统,多个前述设备或者前述设备的组合。设备可包括专用逻辑电路,如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。除了硬件,设备还可以包括为所述的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或者它们的一个或多个的组合的代码。设备和执行环境可实现各种不同的计算模型基础设施,例如web服务、分布式计算和网格计算基础设施。

Claims (25)

1.一种自治网络,包括:
多个交换机,每个交换机包括多个网络接口并且被配置为:
接收寻址到位于所述网络外的装置的数据分组;
从所接收的传出数据分组的头部获得指示网络接口的数据,其中通过该网络接口来发送传出数据分组;以及
通过在从头部获得的所述数据中指示的所述网络接口发送传出数据分组;
位于所述多个交换机远处的数据分组处理器,其对于传出分组被配置为:
识别用于将传出数据分组发送到所述网络外的所述多个交换机中的一个以及所识别的交换机的网络接口,其中所识别的交换机将通过该网络接口发送传出数据分组;
将对所识别的交换机和所识别的网络接口的指示添加到传出数据分组的头部;以及
将传出数据分组转发到所识别的交换机;控制器,其被配置为:
确定用于路由数据分组的路由路径;以及
向所述数据分组处理器提供与所确定的路由路径相关联的路由信息,该路由信息足以用于由所述数据分组处理器识别用于发送传出数据分组的交换机和交换机的网络接口。
2.根据权利要求1所述的自治网络,其中,在确定路由路径时,所述控制器还被配置为:
从所述网络的网络元件收集信息;以及
基于所收集的信息确定路由路径。
3.根据权利要求2所述的自治网络,其中,在收集信息时,所述控制器还被配置为从边界网关协议(BGP)模块收集关于互联网路由路径的信息。
4.根据权利要求2所述的自治网络,其中,在收集信息时,所述控制器还被配置为从所述自治网络的主干网络元件收集关于内部路由路径的信息。
5.根据权利要求4所述的自治网络,其中,关于内部路由路径的信息包括关于跨该路径的流量大小、跨该路径支持的服务类别和路径质量的信息中的至少一个。
6.根据权利要求1所述的自治网络,其中,在添加对所识别的交换机和所识别的网络接口的指示时,所述数据分组处理器还被配置为用通用路由封装(GRE)头部来封装数据分组,或者将多协议标签交换(MPLS)标签添加到数据分组的头部。
7.根据权利要求1所述的自治网络,其中,所述数据分组处理器还被配置为过滤在所述网络外发起的数据分组。
8.根据权利要求7所述的自治网络,其中,过滤包括访问控制列表(ACL)过滤和动态拒绝服务(DoS)过滤中的至少一个。
9.根据权利要求1所述的自治网络,其中,所述数据分组处理器还被配置为响应于从位于所述网络外的装置接收同步(SYN)数据分组,生成安全SYN确认,以发送到发起SYN数据分组的装置。
10.根据权利要求1所述的自治网络,其中,在发送传出数据分组时,所述多个交换机中的一个交换机被配置为:
移除对所识别的交换机和所识别的网络接口的指示;以及
通过在从头部获得的数据中指示的网络接口发送被移除了所述指示的数据分组。
11.根据权利要求1所述的自治网络,其中,所述数据分组处理器是通用处理器。
12.根据权利要求1所述的自治网络,其中,所述数据分组处理器包括高速缓存存储器,并且还被配置为将从所述控制器接收的路由信息存储到所述高速缓存存储器中。
13.一种用于在自治网络中处理数据分组的方法,包括:
由多个交换机中的一个交换机接收寻址到位于所述网络外的装置的数据分组,所述多个交换机中的每个交换机包括多个网络接口;
由所述交换机从所接收的传出数据分组的头部获得指示网络接口的数据,其中通过该网络接口来发送传出数据分组;以及
由所述交换机通过在从头部获得的所述数据中指示的所述网络接口,发送传出数据分组;
由位于所述多个交换机远处的数据分组处理器,识别用于将传出数据分组发送到所述网络外的所述多个交换机中的一个以及所识别的交换机的网络接口,其中所识别的交换机将通过该网络接口发送传出数据分组;
由所述数据分组处理器将对所识别的交换机和所识别的网络接口的指示添加到传出数据分组的头部;以及
由所述数据分组处理器将传出数据分组转发到所识别的交换机;
由控制器确定用于路由数据分组的路由路径;
由所述控制器向所述数据分组处理器提供与所确定的路由路径相关联的路由信息,该路由信息足以用于由所述数据分组处理器识别用于发送传出数据分组的交换机和交换机的网络接口。
14.根据权利要求13所述方法,其中,确定路由路径包括:
从所述网络的网络元件收集信息;以及
基于所收集的信息确定路由路径。
15.根据权利要求14所述的方法,其中,收集信息包括从边界网关协议(BGP)模块收集关于互联网路由路径的信息。
16.根据权利要求14所述的方法,其中,收集信息包括从所述网络的主干网络元件收集关于内部路由路径的信息。
17.根据权利要求16所述的方法,其中,关于内部路由路径的信息包括关于跨该路径的流量大小、跨该路径支持的服务类别和路径质量的信息中的至少一个。
18.根据权利要求14所述的方法,其中,添加对所识别的交换机和所识别的网络接口的指示包括用通用路由封装(GRE)头部来封装数据分组,或者将多协议标签交换(MPLS)标签添加到数据分组的头部。
19.根据权利要求13所述的方法,还包括由所述数据分组处理器过滤在所述网络外发起的数据分组。
20.根据权利要求19所述的方法,其中,过滤包括访问控制列表(ACL)过滤和动态拒绝服务(DoS)过滤中的至少一个。
21.根据权利要求13所述的方法,还包括响应于从位于所述网络外的装置接收同步(SYN)数据分组,由所述数据分组处理器生成安全SYN确认,以发送到发起SYN数据分组的装置。
22.根据权利要求13所述的方法,其中,通过网络接口发送传出数据分组包括:
移除对所识别的交换机和所识别的网络接口的指示;以及
通过在从头部获得的数据中指示的网络接口发送被移除了所述指示的数据分组。
23.根据权利要求13所述的方法,其中,所述数据分组处理器是通用处理器。
24.根据权利要求13所述的方法,还包括由所述数据分组处理器将从所述控制器接收的路由信息存储到所述数据分组处理器的高速缓存存储器中。
25.一种存储有计算机代码指令的计算机可读介质,当由处理器执行时,所述计算机代码指令被配置为使得设备:
基于从控制器接收的路由信息,识别用于将传出数据分组发送到网络外的多个交换机中的一个以及所识别的交换机的网络接口,其中所识别的交换机将通过该网络接口发送传出数据分组;
将对所识别的交换机和所识别的网络接口的指示添加到传出数据分组的头部;以及
将传出数据分组转发到所识别的交换机。
CN201510152053.XA 2014-04-01 2015-04-01 自治网络以及用于在自治网络内处理数据分组的方法 Active CN105681231B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461973650P 2014-04-01 2014-04-01
US61/973650 2014-04-01
US14/478217 2014-09-05
US14/478,217 US9807004B2 (en) 2014-04-01 2014-09-05 System and method for software defined routing of traffic within and between autonomous systems with enhanced flow routing, scalability and security

Publications (2)

Publication Number Publication Date
CN105681231A true CN105681231A (zh) 2016-06-15
CN105681231B CN105681231B (zh) 2019-03-08

Family

ID=52780451

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510152053.XA Active CN105681231B (zh) 2014-04-01 2015-04-01 自治网络以及用于在自治网络内处理数据分组的方法

Country Status (9)

Country Link
US (1) US9807004B2 (zh)
EP (1) EP2928137B1 (zh)
JP (1) JP6527880B2 (zh)
KR (1) KR101866174B1 (zh)
CN (1) CN105681231B (zh)
DE (1) DE202015009244U1 (zh)
DK (1) DK2928137T3 (zh)
SG (1) SG11201608137TA (zh)
WO (1) WO2015153361A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110401848A (zh) * 2018-04-24 2019-11-01 北京视联动力国际信息技术有限公司 一种视频播放方法和装置
CN111866053A (zh) * 2019-04-26 2020-10-30 瞻博网络公司 软件定义网络控制器、方法及计算机可读存储介质
CN112970230A (zh) * 2018-10-31 2021-06-15 阿里巴巴集团控股有限公司 用于访问云服务的方法和系统

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9270486B2 (en) 2010-06-07 2016-02-23 Brocade Communications Systems, Inc. Name services for virtual cluster switching
US9716672B2 (en) 2010-05-28 2017-07-25 Brocade Communications Systems, Inc. Distributed configuration management for virtual cluster switching
US8867552B2 (en) 2010-05-03 2014-10-21 Brocade Communications Systems, Inc. Virtual cluster switching
US9769016B2 (en) 2010-06-07 2017-09-19 Brocade Communications Systems, Inc. Advanced link tracking for virtual cluster switching
US9806906B2 (en) 2010-06-08 2017-10-31 Brocade Communications Systems, Inc. Flooding packets on a per-virtual-network basis
US9628293B2 (en) 2010-06-08 2017-04-18 Brocade Communications Systems, Inc. Network layer multicasting in trill networks
US9608833B2 (en) 2010-06-08 2017-03-28 Brocade Communications Systems, Inc. Supporting multiple multicast trees in trill networks
US9807031B2 (en) 2010-07-16 2017-10-31 Brocade Communications Systems, Inc. System and method for network configuration
US9736085B2 (en) 2011-08-29 2017-08-15 Brocade Communications Systems, Inc. End-to end lossless Ethernet in Ethernet fabric
US9699117B2 (en) 2011-11-08 2017-07-04 Brocade Communications Systems, Inc. Integrated fibre channel support in an ethernet fabric switch
US9450870B2 (en) 2011-11-10 2016-09-20 Brocade Communications Systems, Inc. System and method for flow management in software-defined networks
US9742693B2 (en) 2012-02-27 2017-08-22 Brocade Communications Systems, Inc. Dynamic service insertion in a fabric switch
US9154416B2 (en) 2012-03-22 2015-10-06 Brocade Communications Systems, Inc. Overlay tunnel in a fabric switch
US10277464B2 (en) 2012-05-22 2019-04-30 Arris Enterprises Llc Client auto-configuration in a multi-switch link aggregation
US9401872B2 (en) 2012-11-16 2016-07-26 Brocade Communications Systems, Inc. Virtual link aggregations across multiple fabric switches
US9413691B2 (en) 2013-01-11 2016-08-09 Brocade Communications Systems, Inc. MAC address synchronization in a fabric switch
US9548926B2 (en) 2013-01-11 2017-01-17 Brocade Communications Systems, Inc. Multicast traffic load balancing over virtual link aggregation
US9565099B2 (en) 2013-03-01 2017-02-07 Brocade Communications Systems, Inc. Spanning tree in fabric switches
WO2014145750A1 (en) 2013-03-15 2014-09-18 Brocade Communications Systems, Inc. Scalable gateways for a fabric switch
US10749711B2 (en) 2013-07-10 2020-08-18 Nicira, Inc. Network-link method useful for a last-mile connectivity in an edge-gateway multipath system
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
US20150043911A1 (en) * 2013-08-07 2015-02-12 Nec Laboratories America, Inc. Network Depth Limited Network Followed by Compute Load Balancing Procedure for Embedding Cloud Services in Software-Defined Flexible-Grid Optical Transport Networks
US9912612B2 (en) 2013-10-28 2018-03-06 Brocade Communications Systems LLC Extended ethernet fabric switches
US9548873B2 (en) 2014-02-10 2017-01-17 Brocade Communications Systems, Inc. Virtual extensible LAN tunnel keepalives
US10581758B2 (en) 2014-03-19 2020-03-03 Avago Technologies International Sales Pte. Limited Distributed hot standby links for vLAG
US10476698B2 (en) 2014-03-20 2019-11-12 Avago Technologies International Sales Pte. Limited Redundent virtual link aggregation group
US10063473B2 (en) 2014-04-30 2018-08-28 Brocade Communications Systems LLC Method and system for facilitating switch virtualization in a network of interconnected switches
US9800471B2 (en) 2014-05-13 2017-10-24 Brocade Communications Systems, Inc. Network extension groups of global VLANs in a fabric switch
US10616108B2 (en) 2014-07-29 2020-04-07 Avago Technologies International Sales Pte. Limited Scalable MAC address virtualization
US9807007B2 (en) 2014-08-11 2017-10-31 Brocade Communications Systems, Inc. Progressive MAC address learning
US9524173B2 (en) * 2014-10-09 2016-12-20 Brocade Communications Systems, Inc. Fast reboot for a switch
US9699029B2 (en) 2014-10-10 2017-07-04 Brocade Communications Systems, Inc. Distributed configuration management in a switch group
CN105723666B (zh) * 2014-12-16 2019-05-31 北京大学深圳研究生院 一种基于内容的路由方法和系统
US9628407B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Multiple software versions in a switch group
US9626255B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Online restoration of a switch snapshot
US9942097B2 (en) 2015-01-05 2018-04-10 Brocade Communications Systems LLC Power management in a network of interconnected switches
US10003552B2 (en) 2015-01-05 2018-06-19 Brocade Communications Systems, Llc. Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches
CN105871675B (zh) * 2015-01-20 2019-05-03 华为技术有限公司 一种数据处理方法及装置
US10038592B2 (en) 2015-03-17 2018-07-31 Brocade Communications Systems LLC Identifier assignment to a new switch in a switch group
US9807005B2 (en) 2015-03-17 2017-10-31 Brocade Communications Systems, Inc. Multi-fabric manager
US10579406B2 (en) 2015-04-08 2020-03-03 Avago Technologies International Sales Pte. Limited Dynamic orchestration of overlay tunnels
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
US10425382B2 (en) 2015-04-13 2019-09-24 Nicira, Inc. Method and system of a cloud-based multipath routing protocol
US10498652B2 (en) 2015-04-13 2019-12-03 Nicira, Inc. Method and system of application-aware routing with crowdsourcing
US10439929B2 (en) 2015-07-31 2019-10-08 Avago Technologies International Sales Pte. Limited Graceful recovery of a multicast-enabled switch
US10033622B2 (en) * 2015-08-07 2018-07-24 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controller-based dynamic routing in a software defined network environment
US10171303B2 (en) 2015-09-16 2019-01-01 Avago Technologies International Sales Pte. Limited IP-based interconnection of switches with a logical chassis
US9912614B2 (en) 2015-12-07 2018-03-06 Brocade Communications Systems LLC Interconnection of switches based on hierarchical overlay tunneling
CN107547293B (zh) 2016-06-29 2020-09-08 新华三技术有限公司 一种流路径探测方法和装置
US10237090B2 (en) 2016-10-28 2019-03-19 Avago Technologies International Sales Pte. Limited Rule-based network identifier mapping
US10447585B2 (en) * 2016-12-19 2019-10-15 Futurewei Technologies, Inc. Programmable and low latency switch fabric for scale-out router
US11706127B2 (en) 2017-01-31 2023-07-18 Vmware, Inc. High performance software-defined core network
US11252079B2 (en) 2017-01-31 2022-02-15 Vmware, Inc. High performance software-defined core network
US10992558B1 (en) 2017-11-06 2021-04-27 Vmware, Inc. Method and apparatus for distributed data network traffic optimization
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. High performance software-defined core network
US11121962B2 (en) 2017-01-31 2021-09-14 Vmware, Inc. High performance software-defined core network
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group High performance software-defined core network
US20180219765A1 (en) 2017-01-31 2018-08-02 Waltz Networks Method and Apparatus for Network Traffic Control Optimization
US10778528B2 (en) 2017-02-11 2020-09-15 Nicira, Inc. Method and system of connecting to a multipath hub in a cluster
US10523539B2 (en) 2017-06-22 2019-12-31 Nicira, Inc. Method and system of resiliency in cloud-delivered SD-WAN
US10608844B2 (en) 2017-10-02 2020-03-31 Vmware, Inc. Graph based routing through multiple public clouds
US10999165B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Three tiers of SaaS providers for deploying compute and network infrastructure in the public cloud
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
US11089111B2 (en) 2017-10-02 2021-08-10 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10959098B2 (en) 2017-10-02 2021-03-23 Vmware, Inc. Dynamically specifying multiple public cloud edge nodes to connect to an external multi-computer node
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
US10992497B2 (en) * 2018-11-26 2021-04-27 Arrcus Inc. Logical router comprising disaggregated network elements
US11784912B2 (en) 2019-05-13 2023-10-10 Cloudflare, Inc. Intelligently routing internet traffic
US11212238B2 (en) 2019-08-27 2021-12-28 Vmware, Inc. Providing recommendations for implementing virtual networks
US11611507B2 (en) 2019-10-28 2023-03-21 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
US11394640B2 (en) 2019-12-12 2022-07-19 Vmware, Inc. Collecting and analyzing data regarding flows associated with DPI parameters
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11606712B2 (en) 2020-01-24 2023-03-14 Vmware, Inc. Dynamically assigning service classes for a QOS aware network link
US11477127B2 (en) 2020-07-02 2022-10-18 Vmware, Inc. Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN
US11709710B2 (en) 2020-07-30 2023-07-25 Vmware, Inc. Memory allocator for I/O operations
US11575591B2 (en) 2020-11-17 2023-02-07 Vmware, Inc. Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN
US11575600B2 (en) 2020-11-24 2023-02-07 Vmware, Inc. Tunnel-less SD-WAN
US11601356B2 (en) 2020-12-29 2023-03-07 Vmware, Inc. Emulating packet flows to assess network links for SD-WAN
US12218845B2 (en) 2021-01-18 2025-02-04 VMware LLC Network-aware load balancing
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
US12368676B2 (en) 2021-04-29 2025-07-22 VMware LLC Methods for micro-segmentation in SD-WAN for virtual networks
US12009987B2 (en) 2021-05-03 2024-06-11 VMware LLC Methods to support dynamic transit paths through hub clustering across branches in SD-WAN
US11388086B1 (en) 2021-05-03 2022-07-12 Vmware, Inc. On demand routing mesh for dynamically adjusting SD-WAN edge forwarding node roles to facilitate routing through an SD-WAN
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
US11489720B1 (en) 2021-06-18 2022-11-01 Vmware, Inc. Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics
US12250114B2 (en) 2021-06-18 2025-03-11 VMware LLC Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of sub-types of resource elements in the public clouds
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
US12267364B2 (en) 2021-07-24 2025-04-01 VMware LLC Network management services in a virtual network
US11375005B1 (en) 2021-07-24 2022-06-28 Vmware, Inc. High availability solutions for a secure access service edge application
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US12184557B2 (en) 2022-01-04 2024-12-31 VMware LLC Explicit congestion notification in a virtual environment
US12603848B2 (en) 2022-01-04 2026-04-14 VMware LLC Efficient mechanism for the transmission of multipath duplicate packets
US12507120B2 (en) 2022-01-12 2025-12-23 Velocloud Networks, Llc Heterogeneous hub clustering and application policy based automatic node selection for network of clouds
US12425395B2 (en) 2022-01-15 2025-09-23 VMware LLC Method and system of securely adding an edge device operating in a public network to an SD-WAN
US12506678B2 (en) 2022-01-25 2025-12-23 VMware LLC Providing DNS service in an SD-WAN
US12028251B2 (en) 2022-02-03 2024-07-02 Karunesh Rama KAIMAL Methods and systems for routing network traffic among organizations using a service-oriented protocol
KR102452489B1 (ko) * 2022-05-25 2022-10-11 오선화 공동 주택 단지에서의 이중 보안 처리 시스템
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs
US20240022496A1 (en) * 2022-07-13 2024-01-18 Cisco Technology, Inc. Network optimization by predicting and proactively managing hot-prefixes
US12166661B2 (en) 2022-07-18 2024-12-10 VMware LLC DNS-based GSLB-aware SD-WAN for low latency SaaS applications
US12237990B2 (en) 2022-07-20 2025-02-25 VMware LLC Method for modifying an SD-WAN using metric-based heat maps
US12526183B2 (en) 2022-08-28 2026-01-13 VMware LLC Dynamic use of multiple wireless network links to connect a vehicle to an SD-WAN
US12034587B1 (en) 2023-03-27 2024-07-09 VMware LLC Identifying and remediating anomalies in a self-healing network
US12425332B2 (en) 2023-03-27 2025-09-23 VMware LLC Remediating anomalies in a self-healing network
US12057993B1 (en) 2023-03-27 2024-08-06 VMware LLC Identifying and remediating anomalies in a self-healing network
US12507148B2 (en) 2023-08-16 2025-12-23 Velocloud Networks, Llc Interconnecting clusters in multi-regional large scale deployments with distributed gateways
US12587468B2 (en) 2023-08-16 2026-03-24 Velocloud Networks, Llc Route filtering for clusters in multi-regional large scale deployments with distributed gateways
US12507153B2 (en) 2023-08-16 2025-12-23 Velocloud Networks, Llc Dynamic edge-to-edge across multiple hops in multi-regional large scale deployments with distributed gateways
US12603827B2 (en) 2023-08-16 2026-04-14 Velocloud Networks, Llc Asymmetric routing resolutions in multi-regional large scale deployments with distributed gateways
US12355655B2 (en) 2023-08-16 2025-07-08 VMware LLC Forwarding packets in multi-regional large scale deployments with distributed gateways
US12261777B2 (en) 2023-08-16 2025-03-25 VMware LLC Forwarding packets in multi-regional large scale deployments with distributed gateways
US12483968B2 (en) 2023-08-16 2025-11-25 Velocloud Networks, Llc Distributed gateways for multi-regional large scale deployments
US12563438B2 (en) 2023-08-16 2026-02-24 Velocloud Networks, Llc Distributed gateways for multi-regional large scale deployments

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527727A (zh) * 2008-03-05 2009-09-09 日本电气株式会社 通信设备和操作管理方法
WO2013026050A4 (en) * 2011-08-17 2013-05-16 Nicira, Inc. Hierarchical controller clusters for interconnecting different logical domains
WO2013075874A1 (en) * 2011-11-25 2013-05-30 Alcatel Lucent Method of promoting a quick data flow of data packets in a communication network, communication network and data processing unit
CN103141058A (zh) * 2010-09-23 2013-06-05 思科技术公司 用于虚拟分布式业务的网络接口控制器
CN103369613A (zh) * 2013-07-05 2013-10-23 中国科学院计算机网络信息中心 基于OpenFlow实现移动切换的系统和方法
WO2014035665A1 (en) * 2012-08-28 2014-03-06 Alcatel-Lucent Usa Inc. System and method providing distributed virtual routing and switching (dvrs)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899335A (en) * 1988-12-21 1990-02-06 American Telephone And Telegraph Company, At&T Bell Laboratories Self routing packet switching network architecture
JP3699051B2 (ja) * 2002-03-15 2005-09-28 株式会社エヌ・ティ・ティ・ドコモ 自律システム、通信制御方法、およびサーバ
WO2005004418A1 (ja) * 2003-07-04 2005-01-13 Nippon Telegraph And Telephone Corporation リモートアクセスvpn仲介方法及び仲介装置
US20060268739A1 (en) * 2005-05-24 2006-11-30 Garcia Julio C Tracking of traffic engineering topology in an autonomous system
JP2007006248A (ja) * 2005-06-24 2007-01-11 Nippon Telegr & Teleph Corp <Ntt> リモートアクセス方法、およびリモートアクセスシステム
US7940753B2 (en) * 2007-11-29 2011-05-10 Alcatel Lucent Enhancing routing optimality in IP networks requiring path establishment
US8369333B2 (en) * 2009-10-21 2013-02-05 Alcatel Lucent Method and apparatus for transparent cloud computing with a virtualized network infrastructure
EP2552060A1 (en) 2010-03-24 2013-01-30 Nec Corporation Information system, control apparatus, method of controlling virtual network, and program
JP6080313B2 (ja) * 2011-08-04 2017-02-15 ミドクラ エスエーアールエル 仮想ネットワークを実装及び管理するシステム及び方法
US9124538B2 (en) * 2011-08-17 2015-09-01 Nicira, Inc. Dynamic generation of flow entries for last-hop processing
JP5933371B2 (ja) * 2012-05-02 2016-06-08 国立大学法人 東京大学 ネットワーク中継装置及びプログラム
JP5862769B2 (ja) * 2012-05-09 2016-02-16 日本電気株式会社 通信システム、制御装置、通信方法及びプログラム
US20150207675A1 (en) * 2012-08-28 2015-07-23 Nec Corporation Path Control System, Control Apparatus, Edge Node, Path Control Method, And Program
US8796408B2 (en) 2012-08-31 2014-08-05 Exxonmobil Chemical Patents Inc. Plants and processes for forming polymers
US9450874B2 (en) * 2013-01-04 2016-09-20 Futurewei Technologies, Inc. Method for internet traffic management using a central traffic controller
US20140233569A1 (en) * 2013-02-15 2014-08-21 Futurewei Technologies, Inc. Distributed Gateway in Virtual Overlay Networks
WO2014136867A1 (ja) * 2013-03-07 2014-09-12 日本電気株式会社 通信システム、統合コントローラ、パケット転送方法及びプログラム
JP5637289B2 (ja) * 2013-11-11 2014-12-10 日本電気株式会社 通信システム、ノード、制御サーバ、通信方法およびプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527727A (zh) * 2008-03-05 2009-09-09 日本电气株式会社 通信设备和操作管理方法
CN103141058A (zh) * 2010-09-23 2013-06-05 思科技术公司 用于虚拟分布式业务的网络接口控制器
WO2013026050A4 (en) * 2011-08-17 2013-05-16 Nicira, Inc. Hierarchical controller clusters for interconnecting different logical domains
WO2013075874A1 (en) * 2011-11-25 2013-05-30 Alcatel Lucent Method of promoting a quick data flow of data packets in a communication network, communication network and data processing unit
WO2014035665A1 (en) * 2012-08-28 2014-03-06 Alcatel-Lucent Usa Inc. System and method providing distributed virtual routing and switching (dvrs)
CN103369613A (zh) * 2013-07-05 2013-10-23 中国科学院计算机网络信息中心 基于OpenFlow实现移动切换的系统和方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110401848A (zh) * 2018-04-24 2019-11-01 北京视联动力国际信息技术有限公司 一种视频播放方法和装置
CN112970230A (zh) * 2018-10-31 2021-06-15 阿里巴巴集团控股有限公司 用于访问云服务的方法和系统
CN111866053A (zh) * 2019-04-26 2020-10-30 瞻博网络公司 软件定义网络控制器、方法及计算机可读存储介质
CN111866053B (zh) * 2019-04-26 2023-07-21 瞻博网络公司 软件定义网络控制器、方法及计算机可读存储介质

Also Published As

Publication number Publication date
US9807004B2 (en) 2017-10-31
SG11201608137TA (en) 2016-10-28
EP2928137A1 (en) 2015-10-07
JP6527880B2 (ja) 2019-06-05
EP2928137B1 (en) 2021-03-24
DK2928137T3 (da) 2021-05-31
HK1216055A1 (zh) 2016-10-07
WO2015153361A1 (en) 2015-10-08
KR20160134790A (ko) 2016-11-23
KR101866174B1 (ko) 2018-06-11
CN105681231B (zh) 2019-03-08
JP2017510197A (ja) 2017-04-06
DE202015009244U1 (de) 2017-01-05
US20150281066A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
JP6527880B2 (ja) フロールーティング、スケーラビリティおよびセキュリティの向上を伴う、自律システム内および自律システム間のトラフィックのソフトウェア定義ルーティングのためのシステムならびに方法
US11876717B2 (en) Flow-based load balancing
EP3222005B1 (en) Passive performance measurement for inline service chaining
EP3222006B1 (en) Passive performance measurement for inline service chaining
US9450874B2 (en) Method for internet traffic management using a central traffic controller
CN104272653B (zh) 分组数据联网中的拥塞控制
US9749241B2 (en) Dynamic traffic management in a data center
EP3756317B1 (en) Method, device and computer program product for interfacing communication networks
TW201603531A (zh) 全網域服務控制器
US20200304399A1 (en) Method and system for interfacing communication networks
JP6466595B2 (ja) パケット処理における適応負荷バランシング
HK1216055B (zh) 用於在带有增强的流量路由、可扩展性及安全性的自治系统内和之间的软件定义的路由传输的系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant