向冗余控制器路由协议的代理的制作方法

文档序号:11852541阅读:169来源:国知局
向冗余控制器路由协议的代理的制作方法与工艺

本申请一般涉及网络路由。



背景技术:

通信网络可以例如提供允许数据在两个地理上远离的位置之间传送的网络连接。网络连接可以跨越连接例如路由器的通信设备的多个链路。网络可以根据链路如何通过通信设备互连而具有不同的拓扑。考虑特定网络拓扑,多个路由可以在源与目的地之间可用。根据当前容量和用途,一些路由与其他路由相比可能更被期望。

传统路由算法依赖于每个路由器从它的相邻链路和设备得到的本地信息以路由数据。路由器在路由表中保持这种信息。路由表具有指示用于各种目的地址或目的地址组的下一跳的条目。路由器基于到来分组的目的地址使用它的路由表向特定相邻设备转发分组。为形成路由表,每个路由器使用如边界网关协议(BGP)的协议来与本地相邻路由器交换路由和可达性信息。用这种方式,每个路由器既转发分组又执行控制功能以更新它自身的路由表。

尽管在一些上下文中使用本地信息可能是所期望的,但其可能无法一直高效地对数据进行路由。为更高效地路由数据,被称为软件定义网络(SDN)的另一技术将控制和转发功能分离到单独的设备中。控制设备使用网络拓扑的全局知识,针对单独数据流确定通过转发设备的网络的路径。用这种方式,路由控制设备可以例如建立使通过网络的延迟最小或使带宽最大的路径。



技术实现要素:

在一个实施例中,一种用于在分离的设备上包括控制和转发的网络内交换路由数据的方法。在该方法中,建立转发设备与第一控制设备之间的第一可达性信息会话和所述转发设备与第二控制设备之间的第二可达性信息会话。第一和第二可达性信息会话使相应第一和第二控制设备能够发送指示通过网络可达的地址的广告。此外,建立转发设备与外部路由设备之间的第三可达性信息会话。第三可达性信息会话使所述转发设备能够与所述外部路由设备交换指示通过相应的转发设备和外部路由设备可达的地址的广告。最后,在第一和第二可达性信息会话与第三可达性信息会话之间交换广告,使得第一和第二控制设备对于外部路由设备呈现为单个设备。

还公开了系统和计算机程序产品实施例。

以下参照附图具体描述本发明的进一步的实施例、特征和优点、以及各种实施例的结构和操作。

附图说明

并入本文中并且形成说明书的一部分的附图示出了本公开,并且与说明书一起进一步用于解释本公开的原理并且使相关领域技术人员能够制造和使用本公开。

图1A是具有与转发设备分离的多个冗余控制设备的网络的示意图。

图1B是具有将多个控制设备对于外部网络遮蔽的本地端接模块的网络的示意图。

图2A-B是示出图1中的系统的示例操作的示意图。

图3是根据一个实施例用于遮蔽冗余控制器的方法的流程图。

图4是更详细示出图1的系统的示意图。

通常由相应参考符号中最左边的一个或多个数字来指示其中元素首次出现的附图。在附图中,相似的附图标记可以指示相同或功能相似的元素。

具体实施方式

如上所述,将控制设备与转发设备分离使路由判决可以实现服务提供者网络上更智能的路径判决。但具有单个控制设备创建单个故障点。如果该控制设备故障,不能对转发设备上的任何路由表进行更新。为对此进行处理,实施例具有多个冗余控制设备。

但是,在服务提供者网络上具有多个控制设备会使配置对于用户来说更困难。具体地,顾客(customer)可能必须在其网络上配置其路由器,以从多个不同的控制设备接受可达性信息。这可以涉及配置其路由器以用各自向顾客路由器提供可达性信息的多个可达性信息会话(例如边界网关协议(BGP)会话)进行操作。该配置会是困难的。并且具有去往顾客网络的多个可达性信息会话可能需要额外业务的传输,并涉及顾客路由器上的额外处理开销。尽管为进行说明描述了关于顾客网络和顾客路由设备的方案,本领域技术人员将认识到实施例应用于任何外部网络,即服务提供者网络之外的任何网络。

为处理多个控制设备的这些问题,实施例在服务提供者网络与顾客网络接口连接的服务器提供者网络的边缘处的转发设备上提供附加模块。该模块遮蔽多个控制设备的存在,使得对于顾客呈现为仅正在使用单个控制设备。

具体地,该模块与顾客路由器并与服务提供者网络中的每个控制设备建立可达性信息会话(例如,BGP会话)。该模块交换从顾客设备的可达性信息会话和控制设备的可达性信息会话中获得的路由数据(例如路由广告)。当该模块从顾客设备接收到路由广告时,它将其转发至每个控制设备上。并且,当控制设备广播路由广告时,该模块仅将首先接收到的路由广告转发至顾客路由设备上。以下参照附图描述这些及其他实施例。

图1A是具有与转发设备分离的多个冗余控制设备的系统100的示意图。

系统100包括服务提供者网络120和顾客网络130。服务提供者网络120可以是连接至少两个地理上不同的位置的城域网(MAN)或广域网(WAN)。另一方面,顾客网络130可以是例如连接单个实体或建筑内的不同计算机的局域网。

服务提供者网络120包括多个转发设备:转发设备106、108和110。每个转发设备可以具有多个端口,并从一个端口向另一端口转发数据的分组。为转发数据,每个转发设备可以具有路由表,并可以根据其路由表中的信息来转发信息。具体地,路由表可以将特定地址或子网映射至特定输出端口。当转发设备接收到数据分组时,转发设备检查分组的目的地址以识别路由表中的条目。除检查分组的目的地址以外,转发设备检查与分组相关联的任意标签(例如多协议标签交换(MPLS)标签),以识别路由表中的条目。路由表中的那个条目指定转发设备上的哪个端口来转发分组。

在本文公开的软件定义网络中,替代于配置它们自身的路由表,由控制设备配置转发设备的路由表。图1A描绘了两个控制设备:控制设备102和104。控制设备102和104可以分别向转发设备106、108和110发送信息,以配置它们的路由表。控制设备102和104可以配置路由表,以沿特定路径路由来自特定数据流的数据。

在实施例中,控制设备102和104可以是冗余的。每个控制设备可以具有相同的或镜像的图像、关于服务提供者网络120的拓扑的信息,并且可能能够确定彼此独立的、通过服务提供者网络120的相同路径。关于冗余,如果控制设备之一发生故障,另一控制设备可以继续配置服务提供者网络120上的全部转发设备。尽管为了说明在图1A中仅示出了两个控制设备,本领域技术人员将认识到,可以使用附加的控制设备,并且添加附加控制设备将向系统100添加附加冗余。

除配置服务提供者网络120中的转发设备的路由表之外,控制设备102和104可以各自与顾客网络130上的至少一个设备建立相应可达性信息会话120和122。可达性信息会话可以在服务提供者网络120与顾客网络130上的设备之间交换路由和可达性信息。边界网关协议(BGP)是一种公共类型的可达性信息会话协议,但也可以使用其他类型的可达性信息会话协议,例如开放式最短路径优先(OSPF)和中间系统到中间系统(ISIS)。

控制设备102和104可以分别使用在可达性信息会话120和122上从顾客网络130接收到的信息,以形成它们的全局网络拓扑的知识。例如,顾客网络130可以通过可达性信息会话120和122向控制设备102和104通知:它包括或可以到达特定目的地址的集合(例如IP地址子网)。基于该信息,控制设备102和104可以更新它们的全局网络拓扑的相应模型。并且控制设备102和104可以使用更新的信息来确定转发设备106-110的路由表。

顾客网络130上的路由设备还可以使用通过可达性信息会话120和122接收到的信息,以配置它们的路由表。顾客网络130可以与服务提供者网络120类似包括单独的控制和转发设备,或顾客网络130可以包括既转发数据还控制并计算它们自身的路由表的路由器和交换机。无论用哪种方式,顾客网络130上的路由设备使用从可达性信息会话120和122接收到的可达性信息来配置它们的路由表。它们配置它们的路由表,使得目的地为通过服务提供者网络120可达的地址的数据可以被转发给服务提供者网络120。

用这种方式具有多个控制设备会增加冗余。但具有多个可达性信息会话120和122会增加顾客配置顾客网络130上的设备的负担。具体地,顾客可能必须配置它的设备以操作可达性信息会话120和122二者。对于可能不熟悉服务提供者网络120的顾客网络130的管理员,这种配置可能很麻烦。为了应对该问题,实施例从不同的控制设备102和104聚集数据,以如图1B中所示建立与顾客网络130的单个可达性信息会话。

图1B是说明具有将多个控制设备对于顾客网络遮蔽的本地端接模块170的系统150示意图。类似于图1A中的系统100,系统150具有顾客网络130以及服务提供者网络120,顾客网络130包括顾客路由设备180,服务提供者网络120进而具有两个控制设备(102和104)和三个转发设备(106、108和110)。

一些转发设备驻留在服务提供者网络120的边缘,意味着它们与外部网络直接连接。根据实施例,这些边缘转发设备包括本地端接模块。在系统150中,转发设备108是边缘转发设备,原因在于它与顾客网络130连接。因此,转发设备108包括本地端接模块170。

本地端接模块170与它的转发设备连接的外部网络并与服务提供者网络120上的每个控制设备建立可达性信息会话。这里,本地端接模块170建立与顾客网络130的可达性信息会话164,以及分别与控制设备102和104的可达性信息会话160和162。本地端接模块170充当用于在它们之间交换消息的可达性信息会话的代理。

具体地,本地端接模块170在可达性信息会话160、162和164之间交换消息,以使控制设备102和104对于顾客路由设备180呈现为单个设备。例如,本地端接模块170可以经由可达性信息会话164从顾客路由设备180接收广告。广告可以包括可达性信息,并且可达性信息可以指示顾客路由设备180可以将从服务提供者网络120接收到的信息向哪些地址转发。当本地端接模块170接收广告时,它经由可达性信息会话160和162向控制设备102和104发送所附可达性信息。使用该可达性信息,控制设备102和104可以更新它们的网络拓扑的知识。并且控制设备102和104使用更新的网络拓扑来确定转发设备106、108和110关于可达性信息中的那些地址的路由表。具体地,控制设备102和104可以向路由表添加条目,以向顾客网络130路由目的地为顾客网络130内的地址、并且从顾客网络130可达的数据。然后,控制设备102和104向转发设备106、108和110发送更新的路由表,使转发设备106、108和110能够向顾客网络130路由数据。

因为本地端接模块170具有与控制设备102和104二者的可达性信息会话160和162,它将从二者接收可达性信息。并且因为控制设备102和104是冗余的,并且潜在地是彼此的镜像图像,从控制设备102和104接收到的信息将是重复的。当接收到重复信息时,本地端接模块170可以仅继续转发首先接收到的信息。为了确定是否先前已经发送了可达性信息,本地端接模块170可以存储该可达性信息或其标识(例如,散列)。当本地端接模块170从控制设备接收可达性信息时,它可以检查存储器,以确定是否可达性信息先前已经转发给了顾客路由设备。然后,依赖于该检查,它可以转发该信息。

在示例操作中,本地端接模块170可以经由可达性信息会话160从控制设备102接收广告。广告可以包括可达性信息,该可达性信息进而包括多个条目。每个条目可以将通过服务提供者网络120可达的目的地址映射至下一跳地址。当本地端接模块170接收广告时,本地端接模块170可以检查它的本地存储器,以确定它是否已经被发送。如果它已经被发送,本地端接模块170什么都不做。如果它尚未被发送,本地端接模块170可以将该数据继续转发给顾客路由设备180。

图2A-B是示出可达性信息如何从一个网络传播给另一个网络的系统200的示意图。除系统150的组件之外,系统200还包括顾客网络230,该顾客网络230包括路由设备204。路由设备204在转发设备110处与服务提供者网络连接。在系统200中,作为边缘转发设备的转发设备110包括本地端接模块220。

如图2A中所示,顾客网络130具有20.0.0.0/24的地址空间。已经指派了那个空间内的IP地址,并且因此应当将寻址到其前三字节表示20.0.0的IP地址的任意分组路由至顾客网络130。类似地,顾客网络230具有30.0.0.0/24的地址空间。它也已经被指派了那些IP地址,并且因此应当将寻址到其前三字节代表30.0.0的IP地址的任意分组路由至顾客网络230。

当顾客网络130的路由设备180附接至转发设备108时,它发送广告消息210。广告消息210包括指示20.0.0.0/24子网可通过顾客路由设备180寻址的可达性信息。

转发设备108接收广告消息210,并在两条单独的路由消息中将它的可达性信息转发至两个控制设备上(分别用于控制设备102和104的路由消息212和214)。控制设备102和104根据消息212和214中的可达性信息更新它们的全局网络拓扑模型。如以上参照图1B所述,它使用该信息来更新转发设备106、108和110的路由表,以将寻址到20.0.0.0/24的业务路由至顾客路由设备180。除更新服务提供者网络上的设备的路由表之外,控制设备102和104也可以向如图2B中所示的其他外部网络发送路由广告。

图2B示出了控制设备102和104如何向顾客网络230广告可达性信息。如上所述,控制设备104已经各自更新了它们的全局网络拓扑模型,以反映20.0.0.0/24通过在转发设备108处与服务提供者网络连接的顾客网络130可达的事实。在图2B中,控制设备102和104向顾客网络230广告20.0.0.0/24通过服务提供者网络可达。

均已经更新了它们的拓扑模型的控制设备102和104各自向转发设备110和它的本地端接模块230发送相应广告260和262。广告260和262包括可达性信息,该可达性信息指示子网20.0.0.0/24内的目的地址通过服务提供者网络以及具体地通过转发设备110可达。可达性信息可以具有下一跳IP地址,以到达作为转发设备110的IP地址的20.0.0.0/24。

假设广告260首先到达转发设备110。本地端接模块230在本地存储器中存储可达性信息或可达性信息的散列,并在广告264中将可达性信息发送到顾客路由设备204上。基于广告264,顾客路由设备204根据可达性信息配置它的路由表。例如,顾客路由设备204可以配置它的路由表,以将寻址到子网20.0.0.0/24的业务路由至转发设备110。

当广告262到达转发设备110时,本地端接模块230将广告262的可达性信息与本地存储器进行比较。确定广告262的可达性信息存储在本地存储器中。并且,因此,它不将可达性信息转发至顾客网络230上。

图3是根据一个实施例用于遮蔽冗余控制器的方法300的流程图。

方法300在步骤302处开始,在步骤302中顾客路由设备与边缘转发设备建立可达性信息会话。步骤302可以在顾客路由设备和边缘转发设备发现它们彼此物理连接时发生。在步骤302处创建的可达性信息会话使转发设备能够与顾客路由设备交换广告。来自顾客路由设备的广告可以指示什么地址通过顾客网络上的顾客路由设备可达。以及来自转发设备的广告可以指示什么地址通过服务提供者网络上的转发设备可达。

一旦顾客路由设备在步骤302建立了可达性信息会话,边缘转发设备在步骤304处与服务提供者网络上的每个控制设备建立可达性信息会话。这些可达性信息会话使相应第一和第二控制设备能够向转发设备发送指示哪些地址通过服务提供者网络可达的广告。

一旦建立了可达性信息会话,路由设备开始交换可达性信息。当控制设备在判决块312处知晓新地址前缀可通过服务提供者网络获得时,每个控制设备在步骤314处向边缘转发设备广告该前缀。然后,边缘转发设备在步骤316将广告之一转发至顾客路由设备上,并丢弃另一广告。可以执行步骤314和316,以在首次建立可会话时传送全部可访问前缀。然后,如图3中所示,随着控制设备知晓新前缀可访问,步骤314和316可以执行递增的更新。

类似地,当在判决块306处顾客路由设备知晓新地址前缀可通过顾客网络获得时,顾客路由设备在步骤308处向边缘转发设备广告该前缀。然后,在步骤310,边缘转发设备将广告转发给每个控制设备。可以执行步骤308和310,以在首次建立可会话时传送全部可访问前缀。然后,如图3中所示,随着顾客路由设备知晓新前缀可访问,步骤308和310可以执行递增的更新。

图4是更详细地示出本地模块170的组件的系统400的示意图。本地端接模块170包括三个子模块:控制会话模块402、外部会话模块404和交换模块406。

如上所述例如关于步骤302,控制会话模块402建立转发设备108与控制设备102和104之间的可达性信息会话。关于304,外部会话模块404在转发设备和顾客路由设备之间建立可达性信息会话。

交换模块406在第一和第二可达性信息会话与第三可达性信息会话之间交换广告,使得第一和第二控制设备对于顾客路由设备呈现为单个设备。如图3中的步骤306-316中所示,交换模块406可以发送消息。

可以用硬件、软件或固件或其任意组合来实现本文公开的设备和模块的每一个。

可以在相同或不同计算设备上实现本文公开的设备和模块的每一个。这种计算设备可以包括但不限于个人计算机、移动设备(例如移动电话)、工作站、嵌入式系统、游戏控制台、电视、机顶盒或任意其他计算设备。此外,计算设备可以包括但不限于,具有处理器和存储器的设备,包括用于执行和存储指令的非瞬时性存储器。存储器可以有形地体现数据和程序指令。软件可以包括一个或多个应用和操作系统。硬件可以包括但不限于处理器、存储器和图形用户界面显示器。计算设备还可以具有多个处理器和多个共享或分离的存储器组件。例如,计算设备可以是分簇或分布计算环境或服务器群的一部分或全部。

诸如“(a)”、“(b)”、“(i)”、“(ii)”等的标识符有时用于不同的元素或步骤。使用这些标识符是为了清楚而不必需指定元素或步骤的顺序。

以上已经在示出了指定功能及其关系的实施方式的功能构建块的辅助下,描述了本发明。为便于描述,本文已经任意定义了这些功能构建块的边界。只要所指定的功能及其关系被适当地执行,就可以定义备选边界。

特定实施例的上述描述将完全揭示本发明的总体性质,其他人可以在不过度实验,不脱离本发明的总体构思的情况下,通过应用本领域技术知识来容易地修改和/或适应这种特定实施例的各种应用。因此,基于本文呈现的教导和引导,这种适应和修改意图在所公开的实施例的等同物的含义和范围内。将理解的是本文的措辞和术语用于描述而非限制的目的,使得本领域技术人员鉴于教导和引导来解释本说明书的措辞或术语。

本发明的宽度和范围不应受任意上述示例实施例的限制,而是应仅根据所附权利要求及其等同物来限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1