CN103947164A - 半集中式路由 - Google Patents

半集中式路由 Download PDF

Info

Publication number
CN103947164A
CN103947164A CN201280050431.8A CN201280050431A CN103947164A CN 103947164 A CN103947164 A CN 103947164A CN 201280050431 A CN201280050431 A CN 201280050431A CN 103947164 A CN103947164 A CN 103947164A
Authority
CN
China
Prior art keywords
router
routing
protocol
control server
route
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
CN201280050431.8A
Other languages
English (en)
Other versions
CN103947164B (zh
Inventor
S·曼达尔
S·文卡塔
L·鲍泰维斯基
A·古普塔
M·朱
R·拉马纳桑
J·M·万德尔
J·昂
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 CN103947164A publication Critical patent/CN103947164A/zh
Application granted granted Critical
Publication of CN103947164B publication Critical patent/CN103947164B/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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • 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/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing

Landscapes

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

Abstract

一种用于半集中式路由的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。在一个方面,计算机实现的方法在适于将数据分组路由至一个或多个附加路由器的路由器处接收网络协议分组。该网络协议分组符合提供分布式路由计算的路由协议。该方法还通过控制器向多个路由控制服务器中的选定路由控制服务器发送该网络协议分组。该方法还在该选定的路由控制服务器处理该网络控制分组以生成符合该路由协议的路由计算结果。该方法还基于该路由计算生成路由信息。该路由信息符合提供集中式路由计算的控制协议。该方法还向路由器发送该路由信息用于基于控制协议路由数据分组。

Description

半集中式路由
相关申请的交叉引用
本申请要求于2011年10月14日提交的、名称为SEMI-CENTRALIZED ROUTING的第13/274,230号美国专利申请的优先权,其公开内容通过引用将结合于此。
技术领域
本申请涉及半集中式路由计算。
背景技术
因特网由多个自治系统组成。自治系统可以是多个机器的网络,包括路由器、客户端和服务器,其中每一个均由例如因特网服务提供商或大型企业之类的网络运营商控制。在自治系统中,路由器使用路由协议来支持自治系统中的机器与其他网络和/或其他自治系统中的机器之间的通信。例如,路由器可以使用选定的路由协议引导往返于特定机器的通信。不同的路由协议可以用于引导自治系统内的通信以及将通信引导至该自治系统外的网络。例如,边界网关协议可以用于自治系统外的数据分组,并且内部边界网关协议或开放最短路径优先协议可以用于路由自治系统内的数据分组。
可获得的路由协议包括集中式路由协议和分布式路由协议。在集中式路由协议中,每个路由器在集中式服务器的控制下进行操作,该集中式服务器具有关于网络中所有其他路由器的完整信息(例如,拓扑信息)。在分布式路由协议中,每个路由器维护其自身关于网络或自治系统中其他路由器的信息(以及其中的优选路由路径),并且基于从网络中其他路由器接收的协议消息独立更新上述信息。
发明内容
本说明书描述了关于半集中式路由的技术。
一般而言,可以在包括以下动作的方法中体现在本说明书中描述的主题内容的一个创新方面:在适于将数据分组路由至一个或多个附加路由器的路由器处接收网络协议分组,其中该网络协议分组符合提供分布式路由计算的路由协议;通过控制器向多个路由控制服务器中的选定路由控制服务器发送该网络协议分组;在该选定的路由控制服务器处理该网络控制分组以生成符合该路由协议的路由计算结果;基于该路由计算生成路由信息,其中该路由信息符合提供集中式路由计算的控制协议;以及向路由器发送该路由信息用于使用控制协议路由数据分组。这一方面的其他实施例包括对应系统、装置和在计算机存储设备上编码的被配置用于执行方法的动作的计算机程序。
这些和其他实施例可以可选地包括以下特征中的一个或者多个特征。该方法可以包括使用路由计算结果来生成符合路由协议的网络协议分组;以及向连接至该路由器的第二路由器发送所生成的网络协议分组,其中该第二路由器适于使用该路由协议路由数据分组。该路由器被配置为使用集中式控制协议。该方法可以包括在该路由器处接收网络协议分组之前:在该控制器处,从选定的路由控制服务器接收消息,其中响应包括路由器指派信息用于形成该选定路由控制服务器与该路由器之间的映射。该路由器指派信息可以包括指示该选定的路由控制服务器与该路由器相关联的数据。该方法可以包括在发送网络协议分组之前访问映射以选择该选定的路由控制服务器。控制协议可以是OpenFlow协议。路由协议可以包括边界网关协议或者开放最短路径优先协议。该方法可以包括检测控制器中的故障;指派第二控制器用于管理该路由器与多个路由控制服务器之间的通信;以及从控制器向多个路由控制服务器和该路由器传输消息,其中所述消息包括控制器状态信息。第二控制器可以从选定的路由控制服务器接收消息,其中响应包括路由器指派信息用于形成该选定路由控制服务器与该路由器之间的映射。路由控制服务器可以使用在该路由器处接收的网络协议分组生成路由计算结果。该选定的路由控制服务器可以使用在路由器接收的网络协议分组以及控制器提供的网络拓扑信息生成该路由计算结果。
可以实现在本说明书中描述的主题内容的特定实施例以便实现以下优点中的一个或者多个优点。网络可以实现集中式路由协议同时维护与常规分布式路由协议(诸如开放最短路径优先(OSPF)和边界网关协议(BGP))的兼容性。这允许网络的运营商逐渐将网络从分布式路由计算转换成集中式路由计算。另外,通过在控制平面中包括至少一个备用控制器以在主控制器故障或无响应的情况下代替该主控制器,可以避免由单点故障造成的可操作性损失。另外,路由计算可以被集中以避免较长的收敛时间和循环。另外,集中式路由计算还可以支持优化路由计算。
在附图和以下描述中阐述在本说明书中描述的主题内容的一个或者多个实施方式的细节。主题内容的其他特征、方面和优点将从描述、附图和权利要求变得清楚。
附图说明
图1A是执行半集中式路由的示例网络的框图。
图1B是示例网络的框图。
图2是执行半集中式路由的示例网络的框图。
图3是用于半集中式路由的示例处理的流程图。
图4是从路由到流的示例转换的图示。
在各附图中,相似的参考符号指示相似的元件。
具体实施方式
通常,网络包括主控制器、多个路由器和至少一个路由控制服务器。该主控制器和路由器被配置为实现集中式路由协议(例如,OpenFlow协议),而路由器可以与使用分布式路由协议的路由器对接以发送和接收分布式协议分组(例如,OSPF或BGP协议分组)。当路由器接收分布式路由协议分组时,该路由器向主控制器提供协议分组。该主控制器继而向对应的路由控制服务器传递该网络协议分组。路由控制服务器分析该网络协议分组,并且针对使用分布式路由协议(例如,BGP或OSPF)的路由器计算路由信息。该路由控制服务器可以处理经计算的路由信息,从而使其可以供路由器使用。例如,路由控制服务器可以生成待由路由器使用的OpenFlow转发表或流。在某些实现中,路由控制服务器向主控制器提供该经计算的路由,该主控制器将该经计算的路由信息转译成可以供路由器使用的格式,诸如转发表或OpenFlow流。经转译的路由信息被提供至路由器。
图1A是执行半集中式路由的示例网络100的框图。该示例网络100包括数据平面102和控制平面104。数据平面102包括一个或多个路由器106a-106d。网络通信在路由器106a-106d与数据平面102中其他连接的路由器(未在图1A中示出)之间进行交换。虽然未在图1A中示出,但每个路由器106a-106d可以被相互连接。例如,路由器106a可以被连接至路由器106b、106c和106d,并且路由器106b可以被连接至路由器106a、106c和106d。
注意,路由器106a-106d可以包括用于根据集中式路由协议路由数据分组的转发表或其他数据结构。虽然这些表和数据结构包括在路由器106a-106d中,但是其可以被认为是控制平面104的一部分。
路由器106a-106d可以是被配置为执行集中式路由的路由器。例如,路由器106a-106d可以被配置为作为OpenFlow路由器。路由器106a-106d可以被连接至网络100的其他路由器和/或网络100外部的其他路由器。例如,图1B图示了网络100与另一自治系统160之间的示例连接。下文对图1B进行描述。
路由器106a-106d可以被连接至其他OpenFlow路由器。另外,虽然路由器106a-106d被配置为使用集中式路由协议(例如,OpenFlow),但是路由器106a-106d可以被连接至使用分布式路由协议(例如,BGP或OSPF)的路由器。如下文所解释,在此情况下,路由器106a-106d向主控制器108提供分布式路由协议分组用于路由计算。
控制平面104包括主控制器108、至少一个备用控制器110和一个或多个路由控制服务器112a-112d。如上文所述,路由器106a-106d包括供路由器用于路由数据分组并且是控制平面104的一部分的转发表或数据结构。用于控制路由器106a-106d的通信与用于配置控制平面104的通信在控制平面104中被交换。
主控制器108可以是能够与路由器106a-106d通信和/或对其进行控制的任意类型的集中式路由控制器。例如,在某些实现中,主控制器108是被配置为执行半集中式路由并且与路由器106a-106d和路由控制服务器112a-d通信的一类OpenFlow控制器。主控制器108可以是被编程用于执行控制器操作的服务器、其他类型的计算机或计算机系统(例如,计算机网络)。
主控制器108可以向路由器106a-106d和路由控制服务器112a-112d发送消息。例如,主控制器108可以向路由器106a-106d发送消息(即,保持活动消息),通知路由器106a-106d主控制器108是可操作的并且路由器112a-112d应当与主控制器108通信。路由器106a-106d可以确认或者响应该保持活动消息,并且主控制器108可以根据确认消息确定哪些路由器106a-106d是可操作的。例如,如果路由器106确认或者响应该保持活动消息,则主控制器108理解该路由器106是活动的。如果路由器106不确认或者响应该保持活动消息,则主控制器108可以解译缺乏响应以指示路由器106是不可操作的或者存在故障。类似地,主控制器108还可以向路由控制服务器112a-112d发送保持活动消息以通知路由器主控制器108是可操作的并且路由控制服务器112a-112d应当与其通信。路由控制服务器112a-112d中的每一个均可以确认或者响应该消息,并且通知主控制器108其是可操作的。
主控制器108可以周期性地向路由器106a-106d和路由控制服务器112a-112d传输保持活动消息。例如,主控制器108可以每60秒或某个其他预定频率传输保持活动消息。在某些实现中,主控制器108在同一时间向所有路由器106a-106d和路由控制服务器112a-112d广播该消息。在某些实现中,主控制器108可以向路由器106a-106d的子集和/或路由控制服务器112a-112d的子集传输该消息。
主控制器108可以配置控制平面。例如,主控制器108可以向路由控制服务器112a-112d发送配置消息。作为响应,主控制器108可以从路由控制服务器112a-112d接收如下消息,该消息通知主控制器108特定路由控制服务器112(例如,路由控制服务器112)与特定路由器106(例如,路由器106a)或者特定路由器群组(例如,路由器106a和106c)相关联,以及将执行针对该相关联路由器106的路由计算。主控制器108可以收集此信息,并且创建表示路由器106a-106d与路由控制服务器112a-112d之间关系的表或其他数据结构(即,路由控制表)。例如,针对每个路由器106a-106d,路由控制表可以表示哪个路由控制服务器112a-112d被指派用于执行针对路由器106a的路由计算。在某些实现中,路由控制服务器112与路由器106之间存在一对一对应,使得每个路由控制服务器112执行针对一个路由器106a的路由计算。例如,图1A图示了路由器106a-106d与路由控制服务器112a-112d之间的一对一对应。在某些实现中,路由控制服务器112执行针对两个或更多路由器106的路由计算。在某些实现中,主控制器108用该路由控制表进行编程,并且不从接收自路由控制服务器112a-112d的消息生成该路由控制表。
在某些实现中,主控制器108在主控制器108变为活动时(例如,在备用控制器110被指派成为主控制器时)或者在网络初始化期间传输该配置消息。另外,在某些实现中,主控制器108可以响应于拓扑方面的改变而传输这些消息。例如,如果路由器106a不确认保持活动消息,则主控制器108可以确定该路由器106a不再活动并且向其他路由器112b-112d传输保持活动消息以更新其路由控制表。主控制器108还可以使用其他信号确定路由器106出现故障。例如,主控制器108可以通过检测来自底层传输协议的未连接信号来检测路由器106出现故障或者未连接。
在某些实现中,如果主控制器108确定路由器106或路由控制服务器112出现故障或无法操作,则主控制器108可以重新配置路由控制表以对所述故障负责。例如,如果主控制器108确定路由控制服务器112无法操作,则主控制器108可以禁用对应于该路由控制服务器112的路由器或者可以更新路由控制表以指示对应于该路由控制服务器112的路由器也应当无法操作。在某些实现中,主控制器108可以启用另一路由控制服务器以替代出现故障的路由控制服务器并且更新路由控制表以反映此新的路由控制服务器。
主控制器108可以从路由器106a-106d和/或路由控制服务器112a-112d收集拓扑信息。例如,主控制器108可以从路由控制服务器112a-112d提供的经计算的路由信息收集拓扑信息。在某些实现中,主控制器108分析从路由控制服务器112a-112d中的每个路由控制服务器接收的经计算的路由信息,并且确定现有网络连接以及与每个连接相关联的延迟。作为另一示例,主控制器108可以从路由器106a-106d确认保持活动消息或者缺少确认中确定拓扑信息。主控制器108可以存储该拓扑信息并将其提供给路由控制服务器112a-112d,其可以使用该拓扑信息计算路由信息。
如上文所述,当路由器106a-106d接收分布式路由协议分组时,路由器106a-106d向主控制器108提供该分布式协议分组。作为响应,主控制器108确定哪个路由控制服务器112a-112d应当处理该分布式协议分组。例如,主控制器108可以访问路由控制表以确定哪个路由控制服务器112a-112d与提供网络控制分组的路由器106a-106d相关联。主控制器108继而向对应的路由控制服务器112a-112d转发该分布式路由协议分组,该路由控制服务器使用该分布式路由协议执行路由计算并且向主控制器108提供该路由计算。下文对路由控制服务器112进行更详细地解释。
控制平面104可以包括一个或多个备用控制器110。备用控制器110类似于主控制器108但不从路由控制服务器112a-112d或路由器106a-106d接收通信,直到主控制器108出现故障或者变得无法操作。例如,主控制器108可以经受硬件或软件出现故障而变得无法操作。作为出现故障的结果,备用控制器110被通知出现故障并且承担主控制器的责任。在某些实现中,路由控制服务器112a-112d可以检测主控制器出现故障,这是因为其在预定时间段期间没有接收保持活动消息。因此,路由控制服务器112a-112d可以向备用控制器110发送消息指示主控制器108出现故障并且备用控制器110现在被指派主控制器的角色。各种方法可以用于选择备用控制器110。例如,路由控制服务器112a-112d可以被编程有预定序列的备用控制器110,并且路由控制服务器可以以序列顺序选择备用控制器110。
备用控制器110通过向路由控制服务器112a-112d传输配置消息来配置控制平面104。新的主控制器110可以从路由控制服务器112a-112d接收该配置消息并且重新构建路由控制表。另外,备用控制器110可以向路由器106a-106d和路由控制服务器112a-112d传输保持活动消息。如上所述,保持活动消息指示路由控制服务器112a-112d和路由器106a-106d应当与作为主控制器的备用控制器110进行通信。
在某些实现中,备用控制器110从路由控制服务器112a-112d和路由器106a-106d接收通信,同时主控制器108是活动的。备用控制器110模仿主控制器108的某些操作,例如,创建路由控制表以及维持拓扑信息,使得当主控制器108出现故障时,备用控制器110可以承担主控制器的角色而不需要建立新的路由控制表或者配置控制平面。在这些实现中,路由控制服务器112a-112d和路由器106a-106d与主控制器108和备用控制器110两者进行通信。
在某些实现中,当拓扑信息和路由控制表被生成或更新时,主控制器108向备用控制器110传输该拓扑信息和路由控制表。在某些实现中,主控制器108周期性地提供拓扑信息和路由控制表。在此类实现中,备用控制器110可以在其被指派主控制器的角色时使用所接收的拓扑信息和路由控制表。
路由控制服务器112a-112d被配置为处理分布式路由协议消息。路由控制服务器112a-112d可以在与主控制器108分离的机器上实现。在某些实现中,每个路由控制服务器112可以在独立机器或计算机上实现。在某些实现中,多个路由控制服务器112可以在单个计算机或机器或者可以包括多个计算机的计算机系统上操作的虚拟机上实现。
如上所述,每个路由控制服务器112a-112d与特定路由器106或特定路由器106群组相关联。网络运营商或管理员可以指定每个路由控制服务器112与哪个路由器106相关联,或者所述关联可以通过自动化处理(例如,基于可用路由控制服务器的和/或其上实现路由控制服务器处理的机器的工作负载来分布路由器的责任)进行定义。
路由控制服务器112a-112d从主控制器108接收分布式路由协议分组,并且执行路由器106a-106d的路由计算。例如,路由控制服务器112a可以接收分布式路由协议分组,并且基于路由协议计算路由信息。在某些实现中,路由控制服务器112a-112d可以将经计算的路由信息处理成路由器106可以使用的格式以转发数据分组。例如,路由控制服务器112a可以将基于BGP的路由信息处理成可以由路由器106使用的OpenFlow流或转发表以路由数据分组。
在某些实现中,路由控制服务器112a-112d可以被配置为基于多个分布式路由协议执行路由计算。在这些实现中,路由计算基于适当的分布式路由协议。例如,路由控制服务器112可以分析分布式路由协议分组以确定与该分组相关联的路由协议,并且使用适当的路由协议来计算路由信息。可以使用各种分布式路由协议。例如,路由控制服务器112a-112d可以被配置为执行BGP或OSPF路由计算。在某些实现中,路由控制服务器112a-112d处理协议分组以标识网络中的改变(例如,拓扑改变或基于网络流量的改变)。基于这些改变,路由控制服务器112a-112d执行路由计算以标识新的路由(即,用于更新路由表的路由)。路由表继而可以供路由器使用。例如,在某些实现中,路由控制服务器112a-112d可以处理BGP或OSPF协议分组(即,包含关于网络拓扑的信息和/或网络状态信息)以生成可以用于更新转发表中的条目或OpenFlow中使用的流的路由信息。路由控制服务器112a-112d向主控制器108提供路由计算。
在某些实现中,路由控制服务器112a-112d确定路由信息,并且向主控制器108提供经计算的路由信息。在主控制器108接收路由确定之后,其将路由信息转译成可以由路由器106a-106d使用的转发表。例如,主控制器108可以接收路由计算,其使用分布式路由协议(例如,BGP或OSPF)进行计算,并且将路由计算转换成可以供OpenFlow路由器使用的流。主控制器108可以更新转发表以包括该流。主控制器108向接收网络协议分组的路由器106提供转发表。路由器106可以使用该转发表来对路由数据分组进行路由。在某些实现中,主控制器108可以使用路由计算来向其他路由控制服务器提供关于网络拓扑中改变的信息,而不考虑其他路由控制服务器是否接收到分布式路由协议分组。路由控制服务器可以使用该信息来执行其自己的路由计算并且更新路由器的路由信息。
另外,路由控制服务器112a-112d可以使用路由计算来基于该路由计算生成分布式路由协议分组。该分布式路由协议分组可以通过主控制器108被提供给路由器106a-106d。路由器106a-106d继而可以向其邻居路由器传输该分布式路由协议分组,如同该邻居路由器是执行分布式路由协议的路由器。
图1B图示了示例网络150。图1B图示了网络100的示例实现,被配置为执行半集中式路由并且与被配置为执行分布式路由的自治系统160或网络对接。
示例网络150包括网络100和自治系统160。图1B图示了网络100的一部分。如上所述,路由器106a-106d被配置为执行数据分组的集中式路由并且连接至主控制器,其在图1B中未示出。还可以互连的路由器106a-106d连接至边界路由器106e,其还被配置为执行数据分组的集中路由并且连接至主控制器。边界路由器106e处于网络100和自治系统160的边界。边界路由器106e可以与网络100外部的路由器对接。例如,边界路由器106e可以与自治系统160对接,并且与自治系统160交换网络协议分组和数据分组。
自治系统160可以由不同于网络100的运营商的公司或运营商操作,并且被配置为执行常规分布式路由协议。在某些实现中,自治系统160由网络100的同一运营商操作,但被配置为执行常规分布式路由协议。
自治系统160包括边界路由器162和路由器164和166。边界路由器162可以是处于自治系统160和其他网络和/或自治系统(例如,网络100)边界的路由器。边界路由器162可以与边界路由器106e交换网络协议分组和数据分组。边界路由器162可以被配置为执行分布式路由协议。例如,边界路由器162可以被配置为使用BGP协议来与网络100和/或其他自治系统对接。
边界路由器162可以与路由器164和166对接,该路由器164和166是常规路由器并且被配置为在自治系统160内执行分布式路由。例如,路由器164和166可以使用分布式内部网关协议(例如,内部BGP)或内部网关路由协议(IGRP)与边界路由器162进行通信。
在某些实现中,网络100包括自治系统160。例如,自治系统160可以由操作网络100的实体操作。在此类实现中,网络100包括路由器106a-106d和常规路由器164和166并且被配置为执行分布式路由和集中式路由两者,其中路由器106a-106d被配置为执行数据分组的集中式路由并且连接至主控制器,而常规路由器164和166被配置为执行分布式路由。
图2图示了执行半集中式路由的示例网络200的示例框图。网络200包括路由器106、主控制器108和路由控制服务器112。
路由器106包括一个或多个端口202和转发表204。多个端口202可以是路由器106的接口用于连接至网络上的其他路由器和机器。数据分组和协议分组在多个端口202处接收并且从多个端口202退出路由器106。该多个端口202可以是物理端口、由集中式路由协议定义的虚拟端口或者物理端口与虚拟端口的组合。多个端口202可以被指派端口号,并且可以用于控制去往/来自路由器106的通信。
转发表204包括供路由器106使用的信息以转发数据分组。该转发表信息可以由主控制器106提供。例如,主控制器106可以向路由器106提供针对路由器106的OpenFlow流或转发表以用于转发数据分组。如上所述,在某些实现中,主控制器108或路由控制服务器112可以将路由信息处理为可以供路由器106使用的格式。
主控制器108包括通信模块206、路由处理模块208和拓扑信息210。通信模块206可以被配置为从路由器106接收分布式路由协议分组并且可以将其提供给路由控制服务器112。通信模块206还可以接收由路由控制服务器112提供的经计算的路由信息。除了传输/接收路由协议分组和路由信息,通信模块206还可以向路由器106和路由控制服务器112传输消息。例如,通信模块206还可以向路由器106和路由控制服务器112传输配置消息或保持活动消息。通信模块206还可以从路由器106和/或路由控制服务器112接收消息。例如,。通信模块206还可以从路由器106和/或路由控制服务器112接收确认消息、响应或其他消息。
在某些实现中,主控制器108包括路由处理模块208。该路由处理模块208被配置为处理从路由控制服务器112接收的路由信息。例如,在某些实现中,主控制器108可以从路由控制服务器112接收经计算的路由信息,并且向路由处理模块208提供该路由信息以将该路由信息处理成可以供路由器106使用的格式以转发数据分组。在某些实现中,路由处理模块208被配置为将可以基于BGP或OSPF路由协议或者需要被转换以供路由器106使用的另一格式的路由信息转换成可以供路由器106使用的OpenFlow流或转发表或其他结构以路由数据分组。
路由处理模块208可以包括路由控制表,其存储了描述路由器106与路由控制服务器112之间关系的信息。例如,路由控制表可以存储描述哪个路由控制服务器112被配置为执行路由器106的分布式路由计算的信息。路由处理模块208可以根据从路由控制服务器112接收的配置消息建立路由控制表。路由处理模块208可以访问该路由控制表以确定哪个路由控制服务器112应当执行特定路由器106的路由计算。
主控制器108可以根据从路由控制服务器112接收的路由计算生成拓扑信息210。例如,主控制器108可以从路由控制服务器112接收经计算的路由信息,并且分析该路由信息以确定网络拓扑信息210。由于主控制器108从其他路由控制服务器112接收经计算的路由信息,因此主控制器可以向网络拓扑信息210添加附加信息并且获得关于其路由域全局拓扑的信息。如上文所述,主控制器108可以连同分布式协议分组向路由控制服务器112提供拓扑信息210。路由控制服务器112可以使用拓扑信息210来计算路由信息,其可以促进向适当路由配置的更快收敛。
路由控制服务器112可以包括通信模块212、路由计算模块214和协议分组生成器216。通信模块212可以从主控制器108接收分布式协议分组,并且向主控制器108传输经计算的路由信息。另外,通信模块212可以从主控制器108接收消息。例如,通信模块212可以从主控制器108接收保持活动消息和配置消息。另外,通信模块212可以向主控制器108发送消息。例如,通信模块212可以发送指示哪个路由器106被配置为执行路由计算的消息。
路由计算模块214可以从通信模块212接收分布式协议分组214,并且根据该协议分组计算路由信息。例如,路由计算模块214可以接收BGP或OSPF协议分组并且基于该BGP或OSPF协议计算路由信息。在某些实现中,路由计算模块214可以将经计算的路由信息处理成可以供路由器106使用的格式以转发数据分组。例如,路由计算模块214可以将基于BGP的路由信息处理成可以供路由器106使用的OpenFlow流或转发表以路由数据分组。在某些实现中,路由计算模块214不处理经计算的路由信息而将该经计算的路由信息提供给主控制器108进行处理。
协议分组生成器216可以从路由计算模块214接收经计算的路由信息,并且基于该经计算的路由信息生成分布式网络协议分组。例如,协议分组生成器216可以被配置为使用经计算的路由信息(其基于BGP协议分组计算)生成BGP协议分组。如上所述,路由器106可以向其邻居路由器(类似于被配置为执行分布式路由的路由器106)传输该分布式路由协议分组。
图3图示了用于半集中式路由的示例处理300的流程图。处理300通过配置控制平面(在302)开始。例如,主控制器108可以向路由控制服务器112a-112d传输配置消息,并且从路由控制服务器112a-112d接收响应或其他消息,其包括指示路由器106与其相关联的信息。主控制器108可以使用这些消息来确定哪个路由控制服务器112对应于路由器106a-106d的每个路由器。主控制器108可以使用路由控制服务器112a-112d提供的信息创建路由控制表。
主控制器108还可以建立与每个路由控制服务器的连接和与每个路由器的连接(在303)。例如,在某些实现中,主控制器108可以向路由器106a-106d和路由控制服务器112a-112d发送保持活动消息。该保持活动消息可以通知路由器106a-106d应当向其传输分布式路由协议分组。主控制器108可以使用路由器106a-106d提供的确认消息来确定网络拓扑。例如,如果主控制器108没有从路由器106c接收确认消息,则其可以确定该路由器106c出现故障或者无法操作。
另外,主控制器108还可以向路由控制服务器112a-112d传输保持活动消息以确定哪个路由控制服务器112出现故障或者无法操作。另外,主控制器108可以向路由控制服务器112a-112d传输保持活动消息以通知所述路由控制服务器其为主控制器108。
分布式路由协议分组在路由器处接收(在304a)。例如,路由器106a可以接收分布式路由协议分组,诸如BGP协议分组。路由器106a可以被配置为向主控制器108提供该分布式路由协议分组。
作为响应,主控制器108接收该协议分组并且确定哪个路由控制服务器112a-d与路由器106a相关联(在305a)。例如,主控制器108可以访问路由控制表以确定哪个路由控制服务器执行针对路由器106a的路由计算。
主控制器向路由控制服务器提供分布式路由协议分组(在306a)。例如,主控制器108可以向路由控制服务器112a提供分布式路由协议分组,主控制器108确定指派该路由控制服务器112a执行针对路由器106a的路由计算。在某些实现中,主控制器108还可以向路由控制服务器112a提供网络拓扑信息。示例网络拓扑信息包括描述链接至路由器106a的路由器106(网络100的内部或外部)的信息以及与这些连接相关联的延迟时间或拥塞信息。
除了接收分布式路由协议分组,路由控制服务器还传输分布式协议分组(在304b)。例如,路由控制服务器112a可以生成待被传输至连接至路由器106a的设备(诸如其它路由器)的分布式协议分组(例如,OSPF或BGP)。路由控制服务器112a可以向主控制器108传输该分布式协议分组。
主控制器接收分布式协议分组,并且确定哪个路由器应当接收由路由控制服务器提供的分布式协议分组(在305b)。例如,主控制器108可以基于从配置消息生成的路由控制表确定哪个路由器应当接收该分布式协议分组。主控制器108继而向该适当的路由器传输该分布式协议分组。
路由器接收分布式协议分组并且向其邻居路由器广播该分布式协议分组(在306b)。例如,路由器106a可以接收分布式协议分组并且向其他路由器(诸如邻居路由器)传输该分组。
由于协议分组正与网络100进行交换(304a,b-306a,b),因此交换的协议分组的数目由主控制器108和/或路由控制服务器监控(在307)。如果协议分组的数目在预定阈值以下,则处理继续并且交换附加协议分组(在304a和304b)。如果协议分组的数目大于或等于预定阈值,则处理继续在308。该预定阈值可以基于由路由控制服务器实现的分布式路由协议。例如,该预定阈值可以基于达到由分布式路由协议(例如,BGP或OSPF协议)维持的状态机中的特定状态。作为另一示例,该预定阈值可以基于建立充足状态用于基于BGP或OSPF协议路由分组而交换的协议分组的数目。
路由控制服务器从主控制器接收分布式协议分组,并且执行针对路由器的路由计算(在步骤308)。路由控制服务器112a可以被配置为执行针对各种分布式路由协议的路由计算。例如,路由控制服务器112a可以使用主控制器108提供的网络拓扑信息,并且基于BGP或OSPF协议执行路由计算。
路由控制服务器112a转换经计算的路由信息(在310)。例如,在某些实现中,路由控制服务器112a将经计算的路由信息处理成可以供路由器106a使用的格式以路由数据分组。例如,路由控制服务器112a可以将经计算的路由信息转换成转发表或流。路由控制服务器112a向主控制器108提供该经计算的路由信息。在某些实现中,路由控制服务器112a还生成基于经计算的路由信息的分布式路由协议分组,其也被提供给主控制器108。
在某些实现中,路由控制服务器向主控制器提供经计算的路由信息,该主控制器将该经计算的路由信息转换成可以供路由器使用的格式(在310)。例如,主控制器108可以将以分布式路由协议格式的路由计算转换成集中式路由协议格式(诸如转发表)。在某些实现中,主控制器108可以将基于BGP或OSPF的路由计算转换成可以供OpenFlow路由器使用的转发表。主控制器108可以使用各种技术将经计算的路由信息转换成流。例如,图4是路由信息到流的示例转换的示图。例如,如图4所示的路由信息到流的转换可以通过主控制器108执行。
除了许多其他类型的数据,由分布式路由协议指定的路由430还可以包括目的地IP地址前缀432以及一个或多个路径或“下一跳”434的集合。该前缀可以由掩码指定,例如“24”指示仅最高有效24位是有效的。每个路径包括IP地址(例如,4.5.6.7)和外出接口标识符(例如,针对以太网端口0的“eth0”)。路由130可以被转换成对应的流140。该流140包括一个或多个匹配规则442。除了许多其他类型的数据,匹配规则442可以包括针对IP地址的模式,例如,1.2.3.xxx,其中“x”是可以假设任意适当值的占位符。例如,匹配规则442还可以指定网络分组报头中的特定位字段必须是特定值,例如,0x7B。
流440包括对流路径分组450的流路径分组标识符444,其指定在遇到匹配匹配规则442的网络分组之后采取的动作集。流路径分组450包括标识符452作为关键字以及对应的动作454集合作为值。在某些实现中,动作可以通过流440存储,而不是被存储在流路径分组450中。然而,将流路径分组450维持在单独表中允许该流路径分组定义也重新用于其他流。控制器可以但不是必须地确保具有相同动作集的所有流路径分组仅具有流路径分组表中的单个条目。
待由网络设备采取的动作454可以类似于在网络设备根据分布式路由协议转发流量时采取的那些动作。例如,动作454的集合可以包括以下动作:重写分组的源媒体访问控制(MAC)地址、重新分组的目的地MAC地址以及向接口集中的一个接口(例如,eth0或eth1)输出该分组。
返回图3,主控制器向路由器提供经转换的路由信息(在312)。例如,主控制器108可以向路由器106a推送转发表或经计算的流。路由器106a继而可以使用该路由信息来在接收到基于分布式路由协议的数据分组时将其转发。另外,主控制器108可以向路由器106a提供所生成的分布式路由协议分组。路由器106a可以向邻居路由器传输该协议分组。虽然处理300的操作在附图中以特定顺序描绘,但是不应当理解为需要以所示特定顺序或序列顺序执行此类操作或者执行所有所示操作来实现期望的结果。
可以在数字电子电路装置中或者在计算机软件、固件或者硬件(包括在本说明书中公开的结构及其结构等效物)中或者在它们中的一项或者多项的组合中实施在本说明书中描述的主题内容和操作的实施方式。可以将在本说明书中描述的主题内容的实施方式实施为在计算机存储介质上编码的用于由数据处理装置执行或者控制数据处理装置的操作的一个或者多个计算机程序,即,一个或者多个计算机程序指令模块。备选地或者附加地,可以在人为生成的传播的信号(例如,机器生成的电、光或者电磁信号)上对程序指令编码,该信号被生成用于对信息编码以用于向适当接收器装置传输以供数据处理装置执行。计算机存储介质可以是计算机可读存储设备、机器可读存储衬底、随机或者串行存取存储器阵列或者设备或者它们中的一项或者多项的组合或者被包含于机器可读存储设备、机器可读存储衬底、随机或者串行存取存储器阵列或者设备或者它们中的一项或者多项的组合中。另外,尽管计算机存储介质不是传播的信号,但是计算机存储介质可以是在人为生成的传播的信号中编码的计算机程序指令的源或者目的地。计算机存储介质也可以是一个或者多个单独物理部件或者介质(例如,多个CD、盘或者其他存储设备)或者被包含于一个或者多个单独物理部件或者介质中。
可以将在本说明书中描述的操作实施为数据处理装置对在一个或者多个计算机可读存储设备上存储的或者从其他来源接收的数据执行的操作。
术语“数据处理装置”涵盖所有种类的用于处理数据的装置、设备和机器、举例而言包括可编程处理器、计算机、芯片上的系统或者前述各项中的多项或者组合。该装置可以包括专用逻辑电路装置,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。该装置除了硬件之外也可以包括为讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或者它们中的一项或者多项的组合的代码。该装置和执行环境可以实现各种不同计算模型基础结构,比如web服务、分布式计算和网格计算基础结构。
可以用包括编译或者解译语言、说明或者过程语言的任何形式的编程语言编写计算机程序(也被称为程序、软件、软件应用、脚本或者代码),并且可以用任何形式部署它、包括部署为独立程序或者部署为适合于在计算环境中使用的模块、部件、子例程、对象或者其他单元。计算机程序可以、但是无需对应于文件系统中的文件。程序可以被存储于保持其他程序或者数据的文件(例如,存储于标记语言文档中的一个或者多个脚本)的一部分中、专用于讨论的程序的单个文件中或者多个协同文件(例如,存储一个或者多个模块、子程序或者代码部分的文件)中。计算机程序可以被部署用于在一个计算机上或者在位于一个地点或者分布于多个地点并且由通信网络互连的多个计算机上执行。
在本说明书中描述的过程和逻辑流程可以由一个或者多个可编程处理器执行,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过对输入数据操作并且生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路装置(例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路))执行并且也可以将装置实施为专用逻辑电路装置。
举例而言,适合于执行计算机程序的处理器包括通用和专用微处理器二者以及任何种类的数字计算机的任何一个或者多个处理器。一般而言,处理器将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的基本单元是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或者多个存储器设备。一般而言,计算机也将包括用于存储数据的一个或者多个海量存储设备(例如,磁盘、磁光盘或者光盘)或者被操作地耦合用于从该一个或者多个海量存储设备接收数据或者向该一个或者多个海量存储设备发送数据或者二者。然而,计算机无需具有这样的设备。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,举例而言包括半导体存储器设备,例如,可擦可编程只读存储器(“EPROM”)、电可檫可编程存储器(“EEPROM”)和闪存设备;磁盘,例如,内部硬盘或者可去除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路装置补充或者被并入于专用逻辑电路装置中。
可以在计算系统中实施在本说明书中描述的主题内容的实施方式,该计算系统包括例如作为数据服务器的后端部件或者包括中间件部件(例如,应用服务器)或者包括前端部件(例如,具有图形用户界面或者Web浏览器(用户可以通过该图形用户界面或者Web浏览器与在本说明书中描述的主题内容的实现方式交互)的客户端计算机)或者一个或者多个这样的后端、中间件或者前端部件的任何组合。系统的部件可以由任何数字数据通信形式或者介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网(例如,因特网)和对等网络(例如,自组织对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。客户端和服务器的关系借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序而产生。在一些实施方式中,服务器向客户端设备传输数据(例如,HTML页面)(例如,用于向与客户端设备交互的用户显示数据和从该用户接收用户输入)。可以在服务器从客户端设备接收在客户端设备生成的数据(例如,用户交互的结果)。
尽管本说明书包含许多具体实现方式细节,但是不应将这些解释为限制任何发明的或者可以要求保护的内容的范围,而是对具体发明的具体实施方式特有的特征的描述。在本说明书中在不同的实施方式的背景中描述的某些特征也可以在单个实施方式中被组合实施。反言之,在单个实施方式的背景中描述的各种特征也可以在多个实施方式中单独地或者在任何适当子组合中被实施。另外,虽然上文可以将特征描述为在某些组合中动作并且甚至起初这样要求保护,但是来自要求保护的组合的一个或者多个特征可以在一些情况下从该组合中被删除,并且要求保护的组合可以涉及子组合或者子组合的变型。
类似地,尽管在附图中以特定顺序描绘操作,但是这不应被理解为要求以所示特定顺序或者以依次顺序执行这样的操作或者执行所有所示操作以实现希望的结果。在某些境况中,多任务和并行处理可以是有利的。另外,在上文描述的实施方式中的各种系统部件的分离不应被理解为在所有实施方式中要求这样的分离,并且应当理解描述的程序部件和系统一般可以被一起集成于单个软件产品中或者封装到多个软件产品中。
已经这样描述了主题内容的具体实施方式。其他实施方式在所附权利要求的范围内。例如,网络100可以被实现而不需要主控制器,并且每个路由器可以被连接至适当的路由控制服务器。作为另一示例,网络100可以被实现,使得路由控制服务器和主控制器被实现为一个计算机上的虚拟机或处理。作为另一示例,主控制器可以配置控制平面而不需要从路由控制服务器接收消息。相反,主控制器可以向路由控制服务器随机指派路由器。作为另一示例,主控制器与路由器之间可以使用除OpenFlow以外的协议。在一些情况下,在权利要求中记载的动作可以按不同顺序被执行而仍然实现希望的结果。此外,在附图中描绘的过程未必需要所示特定顺序或者依次顺序以实现希望的结果。在某些实现方式中,多任务和并行处理可以是有利的。

Claims (30)

1.一种计算机实现的方法,包括:
在适于将数据分组路由至一个或多个其他路由器的路由器处接收网络协议分组,其中所述网络协议分组符合提供分布式路由计算的路由协议;
通过控制器向多个路由控制服务器中的选定路由控制服务器发送所述网络协议分组;
在所述选定路由控制服务器处处理所述网络控制分组以生成符合所述路由协议的路由计算结果;
基于所述路由计算生成路由信息,其中所述路由信息符合提供集中式路由计算的控制协议;以及
向所述路由器发送所述路由信息以用于基于所述控制协议路由数据分组。
2.根据权利要求1所述的计算机实现的方法,其中所述路由器被配置为使用集中式控制协议。
3.根据权利要求1所述的计算机实现的方法,进一步包括:
使用所述路由计算结果以生成符合所述路由协议的网络协议分组;以及
向连接至所述路由器的第二路由器发送所生成的网络协议分组,其中所述第二路由器适于使用所述路由协议路由数据分组。
4.根据权利要求1所述的计算机实现的方法,进一步包括:
当在所述路由器处接收所述网络协议分组之前:
在所述控制器处,从所述选定路由控制服务器接收消息,其中所述消息包括路由器指派信息以形成所述选定路由控制服务器与所述路由器之间的映射。
5.根据权利要求4所述的计算机实现的方法,其中所述路由器指派信息包括指示所述选定路由控制服务器与所述路由器相关联的数据。
6.根据权利要求1所述的计算机实现的方法,进一步包括:
在发送所述网络协议分组之前访问映射以选择所述选定路由控制服务器。
7.根据权利要求1所述的计算机实现的方法,其中转换所述路由计算结果包括将所述路由计算结果转换成流。
8.根据权利要求1所述的计算机实现的方法,其中所述控制协议包括OpenFlow协议。
9.根据权利要求1所述的计算机实现的方法,其中所述路由协议包括边界网关协议或者开放最短路径优先协议。
10.根据权利要求1所述的计算机实现的方法,进一步包括:
检测所述控制器中的故障;
指派第二控制器以管理所述路由器与所述多个路由控制服务器之间的通信;以及
从所述控制器向所述多个路由控制服务器和所述路由器传输消息,其中所述消息包括控制器状态信息。
11.根据权利要求10所述的计算机实现的方法,其中所述第二控制器从所述选定路由控制服务器接收消息,其中所述消息包括路由器指派信息以形成所述选定路由控制服务器与所述路由器之间的映射。
12.根据权利要求1所述的计算机实现的方法,其中所述路由控制服务器使用在所述路由器处接收的所述网络协议分组生成所述路由计算结果。
13.根据权利要求1所述的计算机实现的方法,其中所述选定路由控制服务器使用在所述路由器处接收的所述网络协议分组以及由所述控制器提供的网络拓扑信息生成所述路由计算结果。
14.一种系统,包括:
路由器,其中所述路由器被配置为:
将数据分组路由至一个或多个其他路由器;以及
接收网络协议分组,其中协议分组符合提供分布式路由计算的路由协议;
耦合至所述路由器的控制器,其中所述控制器被配置为:
从所述路由器接收所述网络协议分组,并且向多个路由控制服务器中的选定路由控制服务器发送所述网络协议分组;以及
所述多个路由控制服务器,其中所述多个路由控制服务器中的所述选定路由控制服务器被配置为:
处理所述网络控制分组以生成符合所述路由协议的路由计算结果;以及
向所述控制器发送所述路由计算结果;
所述控制器被进一步配置为:
基于所述路由计算生成路由信息,其中所述路由信息符合提供集中式路由计算的控制协议;以及
向所述路由器发送所述路由信息以用于基于所述控制协议路由数据分组。
15.根据权利要求14所述的系统,其中所述路由器被进一步配置为使用集中式控制协议。
16.根据权利要求11所述的系统,其中所述控制器被进一步配置为:
使用所述路由计算结果以生成符合所述路由协议的网络协议分组;以及
向连接至所述路由器的第二路由器发送所生成的网络协议分组,其中所述第二路由器适于使用所述路由协议路由数据分组。
17.根据权利要求11所述的系统,其中所述控制器被进一步配置为:
从所述选定路由控制服务器接收消息,其中所述消息包括路由器指派信息以形成所述选定路由控制服务器与所述路由器之间的映射。
18.根据权利要求15所述的系统,其中所述路由器指派信息包括指示所述选定路由控制服务器与所述路由器相关联的数据。
19.根据权利要求11所述的系统,其中转换所述路由计算结果包括将所述路由计算结果转换成流。
20.根据权利要求11所述的系统,其中所述控制协议包括OpenFlow协议。
21.一种编码有计算机程序的计算机可读介质,包括在被执行时操作以使得计算机执行以下步骤的指令:
在适于将数据分组路由至一个或多个其他路由器的路由器处接收网络协议分组,其中所述网络协议分组符合提供分布式路由计算的路由协议;
通过控制器向多个路由控制服务器中的选定路由控制服务器发送所述网络协议分组;
在所述选定路由控制服务器处处理所述网络控制分组以生成符合所述路由协议的路由计算结果;
基于所述路由计算生成路由信息,其中所述路由信息符合提供集中式路由计算的控制协议;以及
向所述路由器发送所述路由信息以用于基于所述控制协议路由数据分组。
22.根据权利要求21所述的计算机可读介质,其中所述路由器被配置为使用集中式控制协议。
23.根据权利要求21所述的计算机可读介质,进一步包括在被执行时操作以使得所述计算机执行以下步骤的指令:
使用所述路由计算结果以生成符合所述路由协议的网络协议分组;以及
向连接至所述路由器的第二路由器发送所生成的网络协议分组,其中所述第二路由器适于使用所述路由协议路由数据分组。
24.根据权利要求21所述的计算机可读介质,进一步包括在被执行时操作以使得所述计算机执行以下步骤的指令:
当在所述路由器处接收所述网络协议分组之前:
在所述控制器处,从所述选定路由控制服务器接收消息,其中所述消息包括路由器指派信息以形成所述选定路由控制服务器与所述路由器之间的映射。
25.根据权利要求21所述的计算机可读介质,其中所述路由协议包括边界网关协议或者开放最短路径优先协议。
26.根据权利要求21所述的计算机可读介质,其中所述控制协议包括OpenFlow协议。
27.一种方法,包括:
建立与一个或多个路由控制服务器的连接以及与一个或多个路由器的连接;
响应于检测在路由器处接收协议分组,确定所述一个或多个控制服务器中的哪个控制服务器与所述路由器相关联;
向被确定为与所述路由器相关联的所述控制服务器提供所述协议分组;
从确定的所述控制服务器接收经计算的路由信息;
将所接收的路由信息转换成所述路由器可使用的格式;以及
向所述路由器提供经转换的路由信息。
28.根据权利要求27所述的方法,进一步包括:
从所述一个或多个路由控制服务器接收响应于配置消息的信息;以及
基于响应信息生成表示所述一个或多个路由器与所述一个或多个控制服务器之间的关系的映射,
其中所述确定基于所述映射。
29.根据权利要求27所述的方法,进一步包括:
从被确定为与所述路由器相关联的所述控制服务器接收消息,其中所述消息包括路由器指派信息以形成被确定为与所述路由器相关联的所述控制服务器与所述路由器之间的映射。
30.根据权利要求27所述的方法,进一步包括:
在向被确定为与所述路由器相关联的所述控制服务器提供所述协议分组之前访问映射。
CN201280050431.8A 2011-10-14 2012-10-09 用于半集中式路由的方法、系统和设备 Active CN103947164B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/274,230 2011-10-14
US13/274,230 US8830820B2 (en) 2011-10-14 2011-10-14 Semi-centralized routing
PCT/US2012/059374 WO2013055697A1 (en) 2011-10-14 2012-10-09 Semi-centralized routing

Publications (2)

Publication Number Publication Date
CN103947164A true CN103947164A (zh) 2014-07-23
CN103947164B CN103947164B (zh) 2016-03-09

Family

ID=48082346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280050431.8A Active CN103947164B (zh) 2011-10-14 2012-10-09 用于半集中式路由的方法、系统和设备

Country Status (5)

Country Link
US (2) US8830820B2 (zh)
EP (1) EP2767040B1 (zh)
CN (1) CN103947164B (zh)
DE (1) DE202012013425U1 (zh)
WO (1) WO2013055697A1 (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105337939A (zh) * 2014-07-31 2016-02-17 华为技术有限公司 一种bgp逻辑拓扑生成的方法及装置
CN106161256A (zh) * 2016-07-26 2016-11-23 杭州华三通信技术有限公司 一种边界网关协议bgp路由的处理方法及装置
CN107925617A (zh) * 2015-08-11 2018-04-17 Nicira股份有限公司 逻辑路由器的路由配置
CN109412940A (zh) * 2018-10-23 2019-03-01 迈普通信技术股份有限公司 路由器管理方法及路由器管理系统
US10411990B2 (en) * 2017-12-18 2019-09-10 At&T Intellectual Property I, L.P. Routing stability in hybrid software-defined networking networks
CN111740914A (zh) * 2020-06-18 2020-10-02 深圳市信锐网科技术有限公司 一种ospf协议报文分布式处理方法、系统及相关设备
US10797998B2 (en) 2018-12-05 2020-10-06 Vmware, Inc. Route server for distributed routers using hierarchical routing protocol
US10795716B2 (en) 2015-10-31 2020-10-06 Nicira, Inc. Static route types for logical routers
US10931560B2 (en) 2018-11-23 2021-02-23 Vmware, Inc. Using route type to determine routing protocol behavior
US10938788B2 (en) 2018-12-12 2021-03-02 Vmware, Inc. Static routes for policy-based VPN
CN113055084A (zh) * 2021-03-19 2021-06-29 烽火通信科技股份有限公司 一种光网络业务故障恢复的方法和系统
US11252024B2 (en) 2014-03-21 2022-02-15 Nicira, Inc. Multiple levels of logical routers
US11283731B2 (en) 2015-01-30 2022-03-22 Nicira, Inc. Logical router with multiple routing components
US11418445B2 (en) 2016-06-29 2022-08-16 Nicira, Inc. Installation of routing tables for logical router in route server mode
US11425021B2 (en) 2015-08-31 2022-08-23 Nicira, Inc. Authorization for advertised routes among logical routers
CN115136557A (zh) * 2020-01-21 2022-09-30 思科技术公司 用于跟踪协议和硬件资源状态转换的方法和系统
US11539574B2 (en) 2016-08-31 2022-12-27 Nicira, Inc. Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP
WO2023050605A1 (zh) * 2021-09-28 2023-04-06 天翼物联科技有限公司 一种视频分发控制方法、系统、装置及存储介质
CN116760830A (zh) * 2023-08-14 2023-09-15 腾讯科技(深圳)有限公司 路由信息的处理方法、装置、计算机可读介质及电子设备

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013078685A1 (zh) * 2011-12-02 2013-06-06 华为技术有限公司 发送消息的方法、接收消息方法、开放流控制器及第一开放流交换机
US20130322437A1 (en) * 2012-05-31 2013-12-05 Robert Raszuk Method and apparatus for removing bgp state from network edge elements
JP2015525981A (ja) * 2012-06-26 2015-09-07 日本電気株式会社 通信方法、情報処理装置、通信システム、プログラム、ノードおよび通信端末
WO2014002460A1 (en) 2012-06-26 2014-01-03 Nec Corporation Communication method, communication system, information processing apparatus, communication terminal, and program
US9331940B2 (en) * 2012-08-28 2016-05-03 Alcatel Lucent System and method providing distributed virtual routing and switching (DVRS)
JPWO2014069502A1 (ja) * 2012-10-31 2016-09-08 日本電気株式会社 通信システム、経路情報交換装置、通信ノード、経路情報の転送方法及びプログラム
US8966586B2 (en) * 2013-01-27 2015-02-24 International Business Machines Corporation Authentication within OpenFlow network
JPWO2014123194A1 (ja) * 2013-02-07 2017-02-02 日本電気株式会社 通信システム、制御装置、通信制御方法およびプログラム
US9374302B2 (en) 2013-04-26 2016-06-21 Brocade Communications Systems, Inc. Distributed methodology for peer-to-peer transmission of stateful packet flows
US9124506B2 (en) 2013-06-07 2015-09-01 Brocade Communications Systems, Inc. Techniques for end-to-end network bandwidth optimization using software defined networking
CN103596652B (zh) * 2013-07-30 2015-12-30 华为技术有限公司 一种网络控制方法及装置
US9426060B2 (en) 2013-08-07 2016-08-23 International Business Machines Corporation Software defined network (SDN) switch clusters having layer-3 distributed router functionality
US20160301629A1 (en) * 2013-09-26 2016-10-13 Nec Corporation Control device, network system, packet transfer control method, and program for control device
US9225641B2 (en) 2013-10-30 2015-12-29 Globalfoundries Inc. Communication between hetrogenous networks
US9419855B2 (en) 2014-03-14 2016-08-16 Nicira, Inc. Static routes for logical routers
WO2015142404A1 (en) * 2014-03-21 2015-09-24 Nicira, Inc. Dynamic routing for logical routers
WO2015167479A1 (en) 2014-04-29 2015-11-05 Hewlett-Packard Development Company, L.P. Efficient routing in software defined networks
US20150350077A1 (en) * 2014-05-30 2015-12-03 Brocade Communications Systems, Inc. Techniques For Transforming Legacy Networks Into SDN-Enabled Networks
CN104158742A (zh) * 2014-07-23 2014-11-19 杭州华三通信技术有限公司 一种转发表项的生成方法和设备
WO2016026798A1 (en) * 2014-08-18 2016-02-25 Nokia Solutions And Networks Oy Group communication service enabler security
US10257089B2 (en) 2014-10-30 2019-04-09 At&T Intellectual Property I, L.P. Distributed customer premises equipment
WO2016094825A1 (en) * 2014-12-11 2016-06-16 Brocade Communications Systems, Inc. Multilayered distributed router architecture
US9853874B2 (en) 2015-03-23 2017-12-26 Brocade Communications Systems, Inc. Flow-specific failure detection in SDN networks
US9912536B2 (en) 2015-04-01 2018-03-06 Brocade Communications Systems LLC Techniques for facilitating port mirroring in virtual networks
US9813329B2 (en) * 2015-06-01 2017-11-07 Telefonaktiebolaget Lm Ericsson (Publ) Method for multi-chassis redundancy using anycast and GTP TEID
US9749401B2 (en) 2015-07-10 2017-08-29 Brocade Communications Systems, Inc. Intelligent load balancer selection in a multi-load balancer environment
WO2017096564A1 (zh) * 2015-12-09 2017-06-15 北京大学深圳研究生院 一种基于内容的集中式路由体系架构mccn
CN107404439B (zh) * 2016-05-18 2020-02-21 华为技术有限公司 用于重定向数据流的方法和系统、网络设备和控制设备
US10341236B2 (en) 2016-09-30 2019-07-02 Nicira, Inc. Anycast edge service gateways
EP3358791A1 (en) * 2017-02-02 2018-08-08 Nokia Solutions and Networks Oy Method for transmitting messages from an emitting connected object to at least one receiving connected object through at least one network element
GB201706475D0 (en) 2017-04-24 2017-06-07 Microsoft Technology Licensing Llc Communications network node
US10855581B2 (en) 2017-11-10 2020-12-01 Fabriscale Technologies AS System and method of computing ethernet routing paths
US10958567B1 (en) * 2019-03-29 2021-03-23 Juniper Networks, Inc. Controlling paths in a network via a centralized controller or network devices
US11451464B2 (en) 2019-05-13 2022-09-20 128 Technology, Inc. Central authority for service and topology exchange
US11153202B2 (en) 2019-05-13 2021-10-19 128 Technology, Inc. Service and topology exchange protocol
US11070465B2 (en) 2019-05-13 2021-07-20 128 Technology, Inc. Distribution of multicast information in a routing system
US11005749B2 (en) 2019-05-13 2021-05-11 128 Technology, Inc. Multicast source and receiver access control
US11329912B2 (en) 2019-05-13 2022-05-10 128 Technology, Inc. Source-based routing
US10999182B2 (en) 2019-05-13 2021-05-04 128 Technology, Inc. Routing using segment-based metrics
EP4173237A1 (en) 2020-06-24 2023-05-03 Juniper Networks, Inc. Layer-2 network extension over layer-3 network using layer-2 metadata
CN114760193A (zh) * 2020-12-29 2022-07-15 华为技术有限公司 一种主备协商方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227248A (zh) * 2008-01-29 2008-07-23 中兴通讯股份有限公司 业务路径建立方法
US20080285541A1 (en) * 2007-05-19 2008-11-20 Jacobus Van Der Merwe Intelligent computer network routing using logically centralized, physically distributed servers distinct form network routers
CN101605280A (zh) * 2009-07-10 2009-12-16 北京邮电大学 基于多层多域光网络的双路由计算单元系统
US7707594B1 (en) * 2002-08-20 2010-04-27 At&T Intellectual Property I, L.P. System and method for providing a routing service in distributed computing environment

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202170B1 (en) * 1998-07-23 2001-03-13 Lucent Technologies Inc. Equipment protection system
KR100865993B1 (ko) 2002-05-06 2008-10-29 주식회사 케이티 다자간 회의 시스템의 패킷 전달 방법
US7292535B2 (en) 2002-05-23 2007-11-06 Chiaro Networks Ltd Highly-available OSPF routing protocol
US9014181B2 (en) * 2004-11-01 2015-04-21 Alcatel Lucent Softrouter separate control network
CN101335697B (zh) * 2007-06-25 2012-04-04 华为技术有限公司 路由信息发布方法、实现数据包路由的方法、系统和装置
JP5393686B2 (ja) * 2007-09-26 2014-01-22 ニシラ, インコーポレイテッド ネットワークを管理する及び安全にするためのネットワークオペレーティングシステム
JP5074327B2 (ja) * 2008-08-21 2012-11-14 株式会社日立製作所 経路制御システム
US8358662B2 (en) * 2008-08-30 2013-01-22 Futurewei Technologies, Inc. Creating and maintaining traffic engineered database for path computation element
US20120250496A1 (en) * 2009-11-26 2012-10-04 Takeshi Kato Load distribution system, load distribution method, and program
EP2355423A1 (en) 2010-01-29 2011-08-10 Deutsche Telekom AG System and method for routing data packets over an Internet Protocol network
US8958292B2 (en) * 2010-07-06 2015-02-17 Nicira, Inc. Network control apparatus and method with port security controls
US9705822B2 (en) * 2011-06-28 2017-07-11 Infinera Corporation Distributing control plane processing
US8559314B2 (en) * 2011-08-11 2013-10-15 Telefonaktiebolaget L M Ericsson (Publ) Implementing OSPF in split-architecture networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707594B1 (en) * 2002-08-20 2010-04-27 At&T Intellectual Property I, L.P. System and method for providing a routing service in distributed computing environment
US20080285541A1 (en) * 2007-05-19 2008-11-20 Jacobus Van Der Merwe Intelligent computer network routing using logically centralized, physically distributed servers distinct form network routers
CN101227248A (zh) * 2008-01-29 2008-07-23 中兴通讯股份有限公司 业务路径建立方法
CN101605280A (zh) * 2009-07-10 2009-12-16 北京邮电大学 基于多层多域光网络的双路由计算单元系统

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11252024B2 (en) 2014-03-21 2022-02-15 Nicira, Inc. Multiple levels of logical routers
CN105337939A (zh) * 2014-07-31 2016-02-17 华为技术有限公司 一种bgp逻辑拓扑生成的方法及装置
CN109921989B (zh) * 2014-07-31 2021-09-21 华为技术有限公司 一种bgp逻辑拓扑生成的方法及设备
US11343153B2 (en) 2014-07-31 2022-05-24 Huawei Technologies Co., Ltd. BGP logical topology generation method, and device
CN105337939B (zh) * 2014-07-31 2019-04-19 华为技术有限公司 一种bgp逻辑拓扑生成的方法及装置
US10326664B2 (en) 2014-07-31 2019-06-18 Huawei Technologies Co., Ltd. BGP logical topology generation method, and device
CN109921989A (zh) * 2014-07-31 2019-06-21 华为技术有限公司 一种bgp逻辑拓扑生成的方法及设备
US10680900B2 (en) 2014-07-31 2020-06-09 Huawei Technologies Co., Ltd. BGP logical topology generation method, and device
US11799800B2 (en) 2015-01-30 2023-10-24 Nicira, Inc. Logical router with multiple routing components
US11283731B2 (en) 2015-01-30 2022-03-22 Nicira, Inc. Logical router with multiple routing components
US11533256B2 (en) 2015-08-11 2022-12-20 Nicira, Inc. Static route configuration for logical router
CN107925617A (zh) * 2015-08-11 2018-04-17 Nicira股份有限公司 逻辑路由器的路由配置
US11425021B2 (en) 2015-08-31 2022-08-23 Nicira, Inc. Authorization for advertised routes among logical routers
US11593145B2 (en) 2015-10-31 2023-02-28 Nicira, Inc. Static route types for logical routers
US10795716B2 (en) 2015-10-31 2020-10-06 Nicira, Inc. Static route types for logical routers
US12058045B2 (en) 2016-06-29 2024-08-06 Nicira, Inc. Installation of routing tables for logical router in route server mode
US11418445B2 (en) 2016-06-29 2022-08-16 Nicira, Inc. Installation of routing tables for logical router in route server mode
CN106161256B (zh) * 2016-07-26 2019-08-23 新华三技术有限公司 一种边界网关协议bgp路由的处理方法及装置
CN106161256A (zh) * 2016-07-26 2016-11-23 杭州华三通信技术有限公司 一种边界网关协议bgp路由的处理方法及装置
US11539574B2 (en) 2016-08-31 2022-12-27 Nicira, Inc. Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP
US10411990B2 (en) * 2017-12-18 2019-09-10 At&T Intellectual Property I, L.P. Routing stability in hybrid software-defined networking networks
CN109412940A (zh) * 2018-10-23 2019-03-01 迈普通信技术股份有限公司 路由器管理方法及路由器管理系统
CN109412940B (zh) * 2018-10-23 2022-02-01 迈普通信技术股份有限公司 路由器管理方法及路由器管理系统
US10931560B2 (en) 2018-11-23 2021-02-23 Vmware, Inc. Using route type to determine routing protocol behavior
US10797998B2 (en) 2018-12-05 2020-10-06 Vmware, Inc. Route server for distributed routers using hierarchical routing protocol
US10938788B2 (en) 2018-12-12 2021-03-02 Vmware, Inc. Static routes for policy-based VPN
CN115136557B (zh) * 2020-01-21 2024-05-24 思科技术公司 用于跟踪协议和硬件资源状态转换的方法和系统
CN115136557A (zh) * 2020-01-21 2022-09-30 思科技术公司 用于跟踪协议和硬件资源状态转换的方法和系统
CN111740914B (zh) * 2020-06-18 2022-11-22 深圳市信锐网科技术有限公司 一种ospf协议报文分布式处理方法、系统及相关设备
CN111740914A (zh) * 2020-06-18 2020-10-02 深圳市信锐网科技术有限公司 一种ospf协议报文分布式处理方法、系统及相关设备
CN113055084A (zh) * 2021-03-19 2021-06-29 烽火通信科技股份有限公司 一种光网络业务故障恢复的方法和系统
WO2023050605A1 (zh) * 2021-09-28 2023-04-06 天翼物联科技有限公司 一种视频分发控制方法、系统、装置及存储介质
CN116760830A (zh) * 2023-08-14 2023-09-15 腾讯科技(深圳)有限公司 路由信息的处理方法、装置、计算机可读介质及电子设备
CN116760830B (zh) * 2023-08-14 2024-03-01 腾讯科技(深圳)有限公司 路由信息的处理方法、装置、计算机可读介质及电子设备

Also Published As

Publication number Publication date
DE202012013425U1 (de) 2017-01-12
US8830820B2 (en) 2014-09-09
EP2767040A1 (en) 2014-08-20
US20130094350A1 (en) 2013-04-18
EP2767040A4 (en) 2015-05-20
EP2767040B1 (en) 2017-05-03
US20140355415A1 (en) 2014-12-04
CN103947164B (zh) 2016-03-09
WO2013055697A1 (en) 2013-04-18

Similar Documents

Publication Publication Date Title
CN103947164B (zh) 用于半集中式路由的方法、系统和设备
EP3063903B1 (en) Method and system for load balancing at a data network
CN106375214B (zh) 一种基于sdn的层次化路由路径确定方法及装置
US9667524B2 (en) Method to check health of automatically discovered controllers in software defined networks (SDNs)
US8755389B1 (en) Semi-centralized multiple path routing
CN103516782B (zh) 网络设备任务的分布式处理
CN106713137B (zh) 基于分段路由和sdn技术的vpn方法、装置及系统
US20180041396A1 (en) System and method for topology discovery in data center networks
CN110971441B (zh) 多级网络结构的简化配置
Akin et al. Comparison of routing algorithms with static and dynamic link cost in software defined networking (SDN)
EP3682597B1 (en) Modeling access networks as trees in software-defined network controllers
CN103703727A (zh) 用于分体式架构系统中控制业务的弹性路由的方法和设备
JP5943431B2 (ja) ネットワーク、データ転送ノード、通信方法およびプログラム
CN104717081A (zh) 一种网关功能的实现方法及装置
CN104718729A (zh) 控制装置及其控制方法和程序
Chen et al. Routing-as-a-service (RaaS): A framework for tenant-directed route control in data center
CN104363173A (zh) 一种转发路由信息生成方法、控制器及软件定义网络系统
EP2797261B1 (en) A method and a device for optimizing a configuration system of a network element of a software-defined network
EP3399424B1 (en) Using unified api to program both servers and fabric for forwarding for fine-grained network optimizations
Wu Simulation based performance analyses on RIPv2, EIGRP, and OSPF Using OPNET
JP5950019B2 (ja) 通信システム、統合コントローラ、パケット転送方法及びプログラム
Ferraz et al. A high-performance Two-Phase Multipath scheme for data-center networks
Li et al. DeepMDR: A deep-learning-assisted control plane system for scalable, protocol-independent, and multi-domain network automation
JPWO2020013214A1 (ja) ネットワーク制御装置及びネットワーク制御方法
CN118214751B (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
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.

CP01 Change in the name or title of a patent holder