对称路由实施的制作方法

文档序号:10578059阅读:723来源:国知局
对称路由实施的制作方法
【专利摘要】本公开涉及对称路由实施。使能第一AS内的第一主机和第二AS内的第二主机之间的对称路由的方法被公开。该方法包括:检测第一路由消息在第一AS的边界路由器处从第二AS的边界路由器被接收。第一消息包括第二主机作为前向路由的源的标识和第一主机作为前向路由的目的地的标识。该方法还包括确定第一路由消息还包括在第一主机和第二主机之间实现对称路由的指示并且生成第二路由消息以传播到第一AS内的(一个或多个)路由器。该第二消息标识第一主机作为返回路由的源以及第二主机作为返回路由的目的地,并且指示从第一主机到第二主机的数据要通过接收第一路由消息的第一AS的边界路由器来发送。
【专利说明】
对称路由实施
技术领域
[0001]本公开一般涉及通信领域,并且更具体地涉及用于协助保证不同自治系统的第一主机和第二主机之间的对称路由的方法和系统,该方法和系统特别适用于与边界网关协议一同使用。
【背景技术】
[0002]在组成当前互联网协议(IP)路由系统的绝大部分的逐跳分组路由系统中,每个路由器独立地选择通信的外出路径。“不对称路由”指的是流量在会话的两个方向上不经历同一路径的情况。虽然路由协议保证了避免成环,但是当目的地前缀是多条路径可达时,不能保证双向流量流的对称性。事实上,不对称路由是IP网络固有的,因为路径决定为单向经常是有益的,例如,以便最小化状态并最大化性能。
[0003]但是,不对称路由在网络特征和服务需要作用于流的两个方向上的网络中可能产生问题。这样的特征和服务的一些示例包括:防火墙、状态特征(例如,网络地址转换(NAT))、以及其他检测特征(例如,基于网络的应用识别(NBAR)和应用响应时间(ART))。当分组沿一条路由路径从客户端传到服务器,而沿另一路由路径从服务器返回客户端时,这样的特征和服务可能被破坏甚至完全异常。

【发明内容】

[0004]本发明的第一方面涉及一种用于协助保证第一主机和第二主机之间的对称路由的方法,所述第一主机是第一自治系统(AS)的一部分,所述第二主机是第二AS的一部分,所述方法包括以下步骤:检测第一路由消息在所述第一 AS的边界路由器处从所述第二 AS的边界路由器被接收,所述第一路由消息包括:所述第二主机作为前向路由的源的标识,以及所述第一主机作为所述前向路由的目的地的标识;确定所述第一路由消息还包括在所述第一主机和所述第二主机之间实现对称路由的指示;以及生成用于传播到所述第一AS内的一个或多个路由器的第二路由消息,所述第二路由消息包括:所述第一主机作为返回路由的源的标识,所述第二主机作为所述返回路由的目的地的标识,以及从所述第一主机到所述第二主机的数据要通过接收所述第一路由消息的所述第一 AS的边界路由器来发送的指示。
[0005]本发明的第二方面涉及一种用于协助保证第一主机和第二主机之间的对称路由的系统,所述第一主机是第一自治系统(AS)的一部分,所述第二主机是第二AS的一部分,所述系统包括:被配置为存储计算机可执行指令的至少一个存储器;以及耦合到所述至少一个存储器的至少一个处理器,该至少一个处理器被配置为当执行所述指令时,使得:检测第一路由消息在所述第一 AS的边界路由器处从所述第二 AS的边界路由器被接收,所述第一路由消息包括:所述第二主机作为前向路由的源的标识,以及所述第一主机作为所述前向路由的目的地的标识;确定所述第一路由消息还包括在所述第一主机和所述第二主机之间实现对称路由的指示;以及生成用于传播到所述第一AS内的一个或多个路由器的第二路由消息,所述第二路由消息包括:所述第一主机作为返回路由的源的标识,所述第二主机作为所述返回路由的目的地的标识,以及从所述第一主机到所述第二主机的数据要通过接收所述第一路由消息的所述第一 AS的边界路由器来发送的指示。
[0006]本发明的第三方面涉及一个或多个编码有包括计算机可执行指令的软件的计算机可读存储介质,当所述软件被执行时,能够操作以:检测第一路由消息在所述第一AS的边界路由器处从所述第二 AS的边界路由器被接收,所述第一路由消息包括:第二主机作为前向路由的源的标识,以及第一主机作为所述前向路由的目的地的标识;确定所述第一路由消息还包括在所述第一主机和所述第二主机之间实现对称路由的指示;以及生成用于传播到所述第一AS内的一个或多个路由器的第二路由消息,所述第二路由消息包括:所述第一主机作为返回路由的源的标识,所述第二主机作为所述返回路由的目的地的标识,以及从所述第一主机到所述第二主机的数据要通过接收所述第一路由消息的所述第一 AS的边界路由器来发送的指示。
[0007]本发明的第四方面涉及一种用于协助保证第一主机和第二主机之间的对称路由的方法,所述第一主机是第一自治系统(AS)的一部分,所述第二主机是第二AS的一部分,所述方法包括以下步骤:生成用于从所述第二 AS的边界路由器传播至所述第一 AS的边界路由器的第一路由消息,所述第一路由消息包括:所述第二主机作为前向路由的源的标识,所述第一主机作为所述前向路由的目的地的标识,以及在所述第一主机和所述第二主机之间实现对称路由的指示。
[0008]本发明的第五方面涉及一种用于协助保证第一主机和第二主机之间的对称路由的系统,所述第一主机是第一自治系统(AS)的一部分,所述第二主机是第二AS的一部分,所述系统包括:被配置为存储计算机可执行指令的至少一个存储器;以及耦合到所述至少一个存储器的至少一个处理器,该至少一个处理器被配置为当执行所述指令时,使得:生成用于从所述第二 AS的边界路由器传播至所述第一 AS的边界路由器的第一路由消息以,所述第一路由消息包括:所述第二主机作为前向路由的源的标识,所述第一主机作为所述前向路由的目的地的标识,以及在所述第一主机和所述第二主机之间实现对称路由的指示;将所述第一路由消息从所述第二AS的边界路由器传播至所述第一AS的边界路由器;以及将所述第一路由消息传播到所述第二 AS内的一个或多个路由器。
[0009]本发明的第六方面涉及一个或多个编码有包括计算机可执行指令的软件的计算机可读存储介质,当所述软件被执行时,能够操作以:生成用于从第二AS的边界路由器传播至第一AS的边界路由器的第一路由消息,所述第一路由消息包括:所述第二主机作为前向路由的源的标识,所述第一主机作为所述前向路由的目的地的标识,以及在所述第一主机和所述第二主机之间实现对称路由的指示;将所述第一路由消息从所述第二 AS的边界路由器传播至所述第一AS的边界路由器;以及将所述第一路由消息传播到所述第二AS内的一个或多个路由器。
【附图说明】
[0010]结合附图并参照以下描述来提供对于本公开及其特征和优点的更完整的理解,其中相似参考符号代表相似部分,其中:
[0011]图1是示出了包括多个AS的网络的简化示意图;
[0012]图2是根据本公开的实施例,示出了包括能够保证对称路由的多个AS的网络的简化示意图;
[0013]图3A、4A、5A和6A是根据本公开的实施例,示出了保证对称路由的方法的不同阶段的简化示意图;
[0014]图3B、4B、5B和6B是根据本公开的实施例,示出了在保证对称路由的方法的不同阶段处使用的路由消息的简化示意图;
[0015]图7是根据本公开的实施例,示出了当Obit被设置为I时产生的对称路由的简化示意图;
[0016]图8是根据本公开的实施例的在前向路由的源AS—侧执行的用于协助保证不同AS中的主机之间的对称路由的方法的流程图;
[0017]图9是根据本公开的实施例的在前向路由的目的地AS—侧执行的用于协助保证不同AS中的主机之间的对称路由的方法的流程图;
[0018]图10是根据本公开的实施例,示出了当Obit被设置为O时产生的对称路由的简化不意图;以及
[0019]图11根据本公开的一个实施例,示出了说明可被用于参考图2所述的网络中的示例性数据处理系统的框图。
【具体实施方式】
[0020]挺述
[0021]在一个方面,这里给出的实施例可涉及用于协助保证第一主机和第二主机之间的对称路由的第一计算机实现的方法。第一主机是第一自治系统(AS)的一部分,而第二主机是第二 AS的一部分。第一方法包括:检测第一路由消息在第一 AS的边界路由器从第二 AS的边界路由器被接收(即,第一路由消息通过AS间路由协议(例如,诸如外部边界网关协议(eBGP)之类的外部网关协议)来接收)。第一路由消息包括第二主机作为前向路由(forwardroute)的源的标识和第一主机作为前向路由的目的地的标识。第一方法还包括确定第一路由消息还包括在第一主机和第二主机之间实现对称路由的指示并且生成第二路由消息以传播到第一AS内的一个或多个路由器(S卩,以通过AS内路由协议(例如,诸如内部边界网关协议(iBGP)之类的内部网关协议)来传播第二路由消息)。第二路由消息包括第一主机作为返回路由的源的标识,第二主机作为返回路由的目的地的标识,以及从第一主机到第二主机的数据要通过接收第一路由消息的第一 AS的边界路由器来发送的指示。
[0022]在实施例中,第一方法还包括将第二路由消息传播到第一AS内的一个或多个路由器。
[0023]在另一方面,这里给出的实施例可涉及如上所述用于协助保证第一主机和第二主机之间的对称路由的第二计算机实现的方法。第二方法包括生成第一路由消息,用于从第二AS的边界路由器向第一AS的边界路由器传播(S卩,用于通过AS间路由协议(例如,外部网关协议,例如,eBGP)来传播第一路由消息)。第一路由消息包括第二主机作为前向路由的源的标识,第一主机作为前向路由的目的地的标识,以及在第一主机和第二主机之间实现对称路由的指示。
[0024]在第二方法的实施例中,实现对称路由的指示可触发或使能在第一AS内生成第二路由消息,以传播到第一AS内的一个或多个路由器(S卩,以通过AS内路由协议(例如,内部网关协议,例如,内部边界网关协议(例如,iBGP))来传播第二路由消息)。第二路由消息可包括第一主机作为返回路由的源的标识,第二主机作为返回路由的目的地的标识,以及从第一主机到第二主机的数据要通过接收第一路由消息的第一 AS的边界路由器来发送的指示。
[0025]在实施例中,第二方法还包括将第一路由消息从第二AS的边界路由器传播到第一AS的边界路由器的步骤(S卩,以通过AS间路由协议(例如,eBGP)来传播第一路由消息)。
[0026]在实施例中,第二方法还包括将第一路由消息传播到第二AS内的一个或多个路由器的步骤(即,以通过AS内路由协议(例如,iBGP)来传播第一路由消息)。
[0027]在第一或第二方法的实施例中,第一路由消息可包括域间路由协议的更新消息,或可以是域间路由协议的更新消息,例如,提供网络层可达性信息(NLRI)的更新消息。在第一或第二方法的另一实施例中,该域间路由协议可以是BGP(具体地,eBGP),并且在第一主机与第二主机之间实现对称路由的指示包括在更新消息的流量动作值字段内被编码的预定值,特别是在包括在BGP更新消息中的类型0x8007的NLRI内进行编码的预定值。
[0028]在实现BGP的第一或第二方法的实施例中,从第一主机到第二主机的数据要通过接收第一路由消息的第一 AS的边界路由器来发送的指示可包括第一 AS中接收第一路由消息的边界路由器的标识,该标识被编码在第二路由消息的NextHop(下一跳)字段中。
[0029]在其他方面,提供了用于实现这里所述的方法的系统。
[0030]此外,提供了用于执行这里所述的方法计算机程序,以及存储计算机程序的优选非暂态计算机可读存储介质。计算机程序可以,例如,被下载(更新)到现有的网络设备和系统(例如,到现存路由器、交换机、各种控制节点等),或在这些设备和系统的制造时被存储。
[0031]因为就第一方法的步骤被执行的地点而言,这里所述的第一方法的实施例是在前向路由的目的地AS—侧(S卩,上述“第一AS”)上被执行的,因此执行这里所述的第一方法的实施例的功能网络组件以下将被称为“前向路由目的地AS (FRD)逻辑”。类似地,因为就第二方法的步骤被执行的地点而言,这里所述的第二方法的实施例是在前向路由的源AS—侧(即,上述“第二AS”)上被执行的,因此执行这里所述的第二方法的实施例的功能网络组件以下将被称为“前向路由源AS(FRS)逻辑”。
[0032]本领域的技术人员将认识到,本公开的方面,特别是这里所述的FRD逻辑和FRS逻辑的功能可被实现为系统、方法或计算机程序产品。因此,本公开的方面可采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或将这里一般全部可被称为“电路”、“模块”或“系统”的软件和硬件方面进行组合的实施例的形式。本公开中所述的功能可被实现为由计算机的处理器(例如,微处理器)执行的算法。此外,本公开的方面可采用在具有在计算机可读介质上实现(例如,存储)的计算机可读程序代码的一个或多个计算机可读介质中实现的计算机程序产品的形式。
[0033]示例性实施例
[0034]除其他事物以外,公开的是在BGP中具有特定运用的用于协助保证不同自治系统的第一主机和第二主机之间的对称路由的方法、装置、数据结构、计算机可读介质、机制、以及装置。
[0035]路由基础
[0036]互联网可被看作自治系统的集合,其中“自治系统”(AS)通常指在单个技术管理下的一组网络元件,例如,路由器、交换机、以及控制器。术语“网络元件”可指网络设备和系统,其不仅可包括实际物理设备和系统,还可包括完全在软件中实现的设备和系统,和/或还可包括虚拟设备和系统组件。AS还可被认为包括连接到网络的主机。隔离为不同的AS允许限定管理权限和不同组织的路由策略。
[0037]在AS内,网络元件通过使用内部网关协议(IGP)为分组设置路由并通过参考某些共同度量来互相通信。一般还使用若干IGP,例如,路由信息协议(RIP )、增强型内部网关路由协议(EIGRP),开放式最短路径优先(OSPF)协议、以及中间系统到中间系统(IS-1S)协议,并且有时使用AS内的若干组度量。
[0038]在外部,邻居AS通过使用外部网关协议(EGP)为分组设置路由来互相通信,当前互联网标准EGP是边界网关协议(BGP),其一个版本是在RFC 4271中限定的版本4(BGP_4),其被通过引用结合于此。另一版本在2003年10月发布的IETF工作草案draft-1etf-1dr-bgp4-22的边界网关协议4(BGP-4)中进行了说明,其也被通过引用结合于此。描述边界网关协议的方面的另一文档包括2009年8月发布的IETF RFC 5575的流规范传播规则,其也被通过引用结合于此。
[0039]每个AS在某种意义上是“自治的”(即,相对独立于其他AS),其运行其自身独立的路由策略和唯一的IGP。术语“自治”的使用还强调了以下事实:即使在使用多个IGP和度量时,AS的管理在其他AS看来具有单个连贯的内部路由方案,并且呈现通过它可到达哪些目的地的一致图像。外部路由协议被创建以在不同AS之间交换路由信息。例如,BGP定义了 AS间路由协议,其中基本功能之一是通过BGP发言系统(也常被称为“BGP发言者”)发送更新消息的方式来交换网络层可达性信息(NLRI),下面将进行更详细地说明。
[0040]图1是根据本公开的实施例,示出了包括多个AS的网络100的简化示意图。在图1的示例中,两个AS被示为第一AS 110和第二AS 120。
[0041 ] 第一 AS 110包括路由器112a-112f,每个路由器在操作中被耦合到第一 AS 110内的至少一个其他节点,如路由器112a-112f中的一些路由器之间的实线所示。路由器112a-112f中的一些路由器之间的实线可被视为表不根据第一AS 110的一个或多个IGP (例如,iBGP)来交换分组。
[0042]类似地,第二 AS 120包括路由器122a_122g,每个路由器在操作中被耦合到第二 AS120内的至少一个其他节点,如路由器122a-122g中的一些路由器之间的实线所示。路由器122a-122g中的一些路由器之间的实线可被视为表示根据第二 AS 120的一个或多个IGP(例如,内部BGP (iBGP))来交换分组。
[0043]在一个AS中被配置为与其他AS中的路由器进行通信的路由器被称为“边界路由器”,而在一个AS中只被配置为与相同域中的其他路由器进行通信的路由器被称为“核心路由器”。在图1的图示中,路由器112a、112b、112e和112f是第一AS 110的边界路由器,而路由器112c和112d是第一AS 110的核心路由器,而对于第二AS 120,路由器122a、122b、122d和122f是边界路由器而路由器122c、122e和122g是核心路由器。在图1中,在边界路由器中的一些边界路由器之间或从边界路由器中的一些延伸的虚线可被视为表示根据EGP(例如,夕卜部BGP (eBGP))来交换分组。
[0044]每个边界路由器被配置为通过例如eBGP来与另一 AS中的一个或多个边界路由器进行通信。作为示意性示例,边界路由器可以是通过BGP和标签分发协议(LDP)来交换服务状态的服务节点(例如,L3VPN、第二层虚拟专用网(L2VPN)端点)。
[0045]被配置为互相通信的来自不同AS的一对边界路由器被称为“BGP邻居”,例如“eBGP邻居”。在图1的图示中,一对EGP邻居包括路由器112b和122b,而另一对邻居包括路由器112f和122f。图1所示的其他边界路由器还可在更多AS中具有相应的EGP邻居,这些更多AS未示于图1中。
[0046]同样如图1所示,第一AS110和第二AS 120中的每一个还包括路由控制节点(RCN),在图1中被示为第一AS 110的RCN 114和第二AS 120的RCN 124 ACN可被视为传递用于跨越广域网(WAN)的应用感知路由的智能路由控制的逻辑/功能实体,例如,性能路由(PfR)控制器或SDN控制器。特别地,RCN被配置为提供用于基于应用的商业策略的适当路由(例如,最好路由)的动态选择。为此,RCN可访问包含允许RCN生成路由的信息的路由数据库和/或其他数据源(例如,第三方数据库)(未示于图1中)。这样的路由数据库和/或其他数据源可被实现为,例如,SQL数据库、MySQL数据库、Hadoop数据库,或者可以是RCN可访问的任意存储器元件(例如,RAM、闪存)。
[0047]在其他可选实施例中,RCN还可被配置为提供额外功能,例如,跨越路由的基于应用的负载平衡,以用于具有提高的网络可用性的带宽完全利用。
[0048]虽然RCN114和124在图1中被示为独立的实体,但是其功能可被分布在其相应的AS中的各节点上。一般地,RCN可以是路由器、交换机、服务器,或能够计算WAN(例如,网络100)内从源到目的地的路由的任意其他组件,通常服从一个或多个路由计算约束。在一些示例中,RCN可被包括在AS内(如图1的示例所示)。但是,在其他实施例中,RCNl 14和124可被包括在位于远离相应的第一和第二AS的相应实体中(该RCN的每一个仍然与特定相应的AS“相关联”,在该AS中,其被配置为执行相应指定AS的功能)。因为RCN的功能常常被分布在一个或多个边界路由器上,所以表达“RCN生成策略/路由”和表达“边界路由器生成策略/路由”经常可被交换使用。
[0049]在一些实现中,RCN可负责在相应的AS内生成策略以及符合该策略的路由。与一个AS相关联的这样的RCN则不可控制另一AS内策略和路由的生成。例如,RCN 124可将用于从第二 AS 120内的某一主机126 (例如,服务器系统)提供向第一AS 110内的某一主机116 (例如,客户端系统)提供分组的路由(即,前向路由)指定如下:126-122f,表示主机126(通过IGP)向边界路由器122f提供分组(可通过未示于图1中的第二 AS 120的一个或多个核心路由器)。因为分组的目的地是第一 AS 110,并且因为对于边界路由器122f,第一 AS 110中的EGP邻居是边界路由器112f,所以边界路由器122f随后将通过EGP将分组发送给其EGP邻居112f,其EGP邻居112f随后将分组提供给主机126(可通过未示于图1中的第一 AS 110的一个或多个核心路由器)。从主机126到主机116的该完整前向路由用箭头132示于如图1中。
[0050]继续上述RCN的实现,在该实现的领域的当前状态中,从主机116到主机126的反向路由将由RCN 114完全控制。RCN 114将根据它当时的考虑和策略来标识路由。例如,RCN114可计算第一AS 110的从主机116到核心路由器112c(通过IGP),然后从核心路由器112c到边界路由器112b(通过IGP)要走的反向路由。因为第二AS中边界路由器112b的EGP邻居是边界路由器122b,所以从主机116到主机126的该完整返回路由可如图1中用箭头134所示。因此RCN的上述示例可导致不需要的不对称路由。
[0051 ] 对称路由
[0052]如前面的描述所示,在一些实现中,虽然特定AS中的RCN能够控制它自己的策略和路由,但是其不能控制其他AS的策略和路由。作为结果,如果需要的是对称路由,则当前是难以实现的。
[0053]在本说明书中呈现的新的EGP扩展,特别是到被包括在更新消息中的信息的BGP扩展,旨在通过向不同AS之间的同步策略提供策略实施基础架构来改善本领域的当前状态的这一问题。本公开的实施例提出了通过实现基于BGP流规范的路由实施来保证对称路由。
[0054]为此提出了两种方法。该方法可在图2所示的网络200中实现。与图1类似,图2是示出了包括多个43的网络的简化示意图。图2所示的元件210、212&-2121214、216、220、222&-2228、224、以及226分别与图1所示的元件110、1123-1121114、116、120、1223-1228、124、以及126类似。因此,对图1所示的元件的描述适用于图2所示的相应元件(除了对于反向路由如何被控制的描述),并且为了简洁起见,该描述在这里不再重复。与网络100不同,网络200能够通过实现这里所述的第一和第二方法来保证对称路由。第一方法在前向路由的目的地AS—侧被执行,因此被描述为通过所谓的前向路由目的地(FRD)逻辑来执行,如图2中的FRD逻辑218所示。第二方法在前向路由的源AS—侧被执行,因此被描述为通过所谓的前向路由源(FRS)逻辑来执行,如图2中的FRS逻辑228所示。注意,前向路由的目的地AS是返回路由的源AS,并且前向路由的源AS是返回路由的目的地AS。
[0055]FRD逻辑218对RCN 214的功能的影响在于FRD逻辑218控制从主机216到主机226的反向路由。继续提供给图1的前向路由的描述,FRD逻辑218将保证反向路由将从主机216经由边界路由器212f到其EGP邻居222f (通过EGP)到主机226。
[0056]在实施例中,FRD逻辑218可在RCN 214中实现,和/或FRS逻辑228可在RCN 218中实现。此外,虽然FRD逻辑218和FRS逻辑228在图1中被示为独立的实体,但是其功能可分布在其各自的AS中的各节点上。一般地,FRD逻辑218可以是路由器、交换机、服务器,或能够执行这里所述的用于协助保证对称路由的第一方法的任意其他组件。类似地,一般而言,FRS逻辑228可以是路由器、交换机、服务器,或能够执行这里所述的用于协助保证对称路由的第二方法的任意其他组件。在一些示例中,FRD逻辑218可被包括在第一AS 210中,而FRS逻辑228可被包括在第二AS 220中(如图2的示例所示)。但是,在其他实施例中,FRD逻辑218和/或FRS逻辑228可被包括在位于远离相应的第一和第二AS的相应实体中(该逻辑的每一个仍然与特定相应的AS“相关联”,在该AS中,其被配置为执行相应指定AS的功能)。
[0057]此外,每个AS可与FRD逻辑218和FRS逻辑228二者相关联(例如,包括FRD逻辑218和FRS逻辑228 二者),使得对称路由与哪个AS是原来的源无关而得到保证。
[0058]BGP更新消息和流规范规则
[0059]如上所述,BGP发言者被用于与其他BGP系统交换网络层可达性信息(NLRI),NLRI对BGP版本4是唯一的。NLRI在BGP路由器之间在被用于向对等体发送路由更新的所谓“更新消息”中进行交换。
[0060]当BGP会话被初始化时,更新消息被发送,直到完整的BGP表已被交换。每当更新消息被接收,则BGP路由表被更新,并且BGP路由表版本增加I。因此,通信网络元件首先交换其全部BGP路由表,然后使用更新消息来发送增量更新。
[0061 ] 上述RFC 5575定义了可被用于分发流量流规范(FS)的BGP NLRI编码格式,其允许路由系统传播关于由IP目的地前缀定义的流量聚合的更具体的组件的信息。
[0062]如RFC 5575中所解释的那样,现代IP路由器既包括根据IP前缀转发流量的能力,又包括采取动作(例如,基于管理限定的策略来分类、塑形、速率限制、过滤、重定向分组)的能力。流量策略机制允许路由器限定在分组头的多个字段上操作的匹配规则,其中诸如上述各项的动作可与每个规则相关联。
[0063]RFC 5575限定了为聚合流量流编码FS规则使得其可被作为BGP(RFC4271版本)NLRI来分发的一般程序。通过采用流规范来扩展路由信息,路由系统可利用路由器的转发路径中的访问控制列表(ACL)或防火墙能力。
[0064]RFC 5575将FS NLRI类型定义为包含可应用于IP流量的若干匹配标准的η元组。该匹配标准可包括诸如源地址前缀和目的地地址前缀、IP协议、以及传输协议端口数之类的元素。RFC 5575中定义的一些成分类型包括以下各项:
[0065]-类型1:目的地前缀
[0066].编码:〈类型(I个八位字节),前缀长度(I个八位字节),前缀〉
[0067].定义目的地前缀以匹配
[0068].前缀按照BGP更新消息中那样进行编码,以比特为单位的长度之后是足够多的八位字节来包含前缀信息
[0069]-类型2:源前缀
[0070].编码:〈类型(I个八位字节),前缀长度(I个八位字节),前缀〉
[0071]?定义源前缀以匹配
[0072]-类型3:1P协议
[0073].编码:〈类型(I个八位字节),[操作符,值]+>
[0074].包含一组{操作符,值}对,其被用于匹配IP分组中的IP协议值字节
[0075]-类型4:端口
[0076].编码:〈类型(I个八位字节),[操作,值]+>
[0077].定义匹配源或目的地TCP/UDP端口的一列{操作,值}对
[0078]-类型5:目的地端口
[0079]?编码:〈类型(I个八位字节),[操作,值]+>
[0080].定义被用于匹配TCP或UDP分组的目的地端口的一列{操作,值}对。值被编码为I字节或2字节数量
[0081]-类型6:源端口
[0082]?编码:〈类型(I个八位字节),[操作,值]+>
[0083].定义被用于匹配TCP或UDP分组的源端口的一列{操作,值}对
[0084].值被编码为I字节或2字节数量
[0085]RFC 5575还提出了这里定义的编码格式的具体应用,所提出的应用提供了流量过滤,例如,在BGP和多协议标签交换(MPLS)虚拟专用网(VPN)服务的环境中。特别地,RFC5575提出了也使用如上面所定义的FS NLRI通过定义被标准化为RFC4360(其也被通过引用结合于此)所述的BGP扩展社区值的过滤动作的最小集合来传递关于流量过滤的信息。除了其他值以外,RFC 5575还提出了使用以下扩展的社区值:
[0086]-类型0x8007:流量动作
[0087]?编码:位掩码
[0088].流量动作扩展社区值包括6个字节,它的(从左到右的)第6字节只有两个最低有效位(即,位46和47)当前被定义,其中位46被定义为“样本”位,其使能针对该FS的流量采样和记录,而位47被定义为“终端动作”位,其中当这一位被置位时,流量过滤引擎将应用任意后续过滤规则(如由排序程序所定义的那样),并且当该位未被置位时,流量过滤器的评估在该规则被应用时停止。
[0089]基于BGP FS的路由实施
[0090]一些实施例在BGP的环境中操作,其中对称路由通过实现基于BGP FS的路由实施来保证,并且现在来描述这些实施例,其中这些教导适用于其他实施例以及其他协议。
[0091]参考示出了由AS号(ASN) 1.1.1.1来表示的第一 AS和由ASN 2.2.2.2来表示的第二AS的图3A-7来对实施例进行说明。图3A-7所示的第一AS 1.1.1.1可以是图2所示的第一AS210,而图3A-7所示的第二AS 2.2.2.2可以是图2所示的第二AS 220。第一AS 1.1.1.1在图3A-7中被示为包括三个路由器,被示为HUB-Rl、HUB-R2和HUB-R3,其中路由器HUB-Rl和HUB-R2是边界路由器(类似于例如,图2所示的边界路由器212b和212f),而路由器HUB-R3是核心路由器(类似于图2所示第一AS 210的核心路由器中的一个)。类似地,第二AS 2.2.2.2在图3A-7中被示为包括三个路由器,被示为Branch (分支)-Rl、Branch_R2和Branch_R3,其中路由器Branch-Rl和Branch-R2是边界路由器(类似于例如,图2所示的边界路由器222b和222f),而路由器Branch-R3是核心路由器(类似于图2所示第二AS 220的核心路由器中的一个)。图3A-7所示的SPl和SP2中的每一个均指不同AS中相应的一对边界路由器之间的eBGP通信路径(即,流对的通信路径)。
[0092]此外,参考图8所示的第二方法800和图9所示的第一方法900来对实施例进行说明。本领域技术人员将认识到,即使方法800和900是参考图2-7所示的网络的元件来描述的,但是被配置为以任意顺序执行这些方法中的任意方法的步骤的任意系统均在本公开的范围内。
[0093]假设,例如,首先对于流1.1.1.1〈一>2.2.2.2,最好路由是通过SP1。还假设该路由应被改变为1.1.1.1:80<>2.2.2.2:任意,变为SP2,例如,通过软件定义网络(SDN)控制器。
[0094]然后,FRS逻辑228(在图8所示的方法800的步骤802中)被配置为将第一路由消息RMl生成为,例如,图3B所示的BGP FS更新消息。如图3B所示,消息RMl包括上面参考RFC5575所述的以下成分:
[0095]-用值2.2.2.2/32来编码源前缀的类型2的成分
[0096]-指示AS2.2.2.2的任意端口可被使用的类型6的成分
[0097]-用值1.1.1.1/32来编码目的地前缀的类型I的成分
[0098]-指示AS1.1.1.1的端口 80要被使用的类型5的成分
[0099]-对Branch-R2的标识进行编码来指示从第二AS到第一 AS的路由选择将通过Branch_R2 来完成的 NextHop(下一跳)
[0100]-类型0x8007(这里被称为“Obit”(可选位))的成分,其包括作为在第一主机(在该示例中为1.1.1.1/32)与第二主机(在该示例中为2.2.2.2/32)之间需要对称路由的示例性指示的置位标记(即,位值被设置为I)
[0101]然后,消息RMl从Branch-R2发送到Branch-R3(方法800的步骤804),如图3A用箭头302所示。
[0102]Branch-R3是Branch-R2的iBGP邻居以及Branch-AS中的路由器反射器(RR)(如果考虑每个分支具有唯一AS号的企业使用联盟)jranch-RS将修改转发信息库(FIB)(有时也被称为转发表),并将消息RMl反射到Branch-Rl,如图4A中用箭头402所示,并且图4B示出了与图3B所示的消息RMl相同的消息RMl。
[0103]此时,规则被定义,其中,如果路由器从其iBGP对等体接收消息(S卩,包括需要对称路由的指示(在该示例中,Obit被设为I),并且将该AS内的另一路由器指示为应完成到其他AS的路由选择的路由器(在该示例中采用NextHop)的消息,),例如,RMl,然后接收路由器不将数据转发到eBGP邻居,以确保该FS消息只在子AS中有效。因此,Branch-Rl将不转发到其eBGP邻居HUB-Rl,如图4A中用虚交叉箭头404所示。
[0104]只有原边界路由器可将数据发送到其eBGP对等体,如图5中用箭头502所示,其示出了原路由器Branch-R2向其eBGP邻居HUB-R2 (图8所示的方法800的步骤806)发送消息RMl(示于图5B中,图5B示出了与图3B和图4B所示的消息RMl相同的消息RMl)。
[0105]在第一AS 1.1.1.1处,响应于检测消息RMl在HUB-R2从其eBGP邻居Branch-R2接收(图9所示的方法900的步骤902),FRD逻辑218将检查所接收的消息RMl是否包含需要对称路由的指示。在该示例中,FRD逻辑218将确定消息RMl包含被设置为I的Obit(图9的步骤904)。然后,FRD逻辑218将生成第二路由消息(图9的步骤906),该第二路由消息通过颠倒关于第一消息RMl的源和目的地信息,并通过包括从第一AS到第二AS的数据将通过接收第一消息RMl的第一 AS的边界路由器来发送的指示而被示为图6B所示的消息RM2,后者通过,例如将HUB-R2(S卩,接收第一消息RMl的第一 AS的边界路由器)设置为NextHop来完成。因此,如图6B所示,消息RM2包括上面参考RFC 5575所述的以下成分:
[0106]-用值1.1.1.1/32来编码源前缀的类型2的成分
[0107]-指示AS1.1.1.1的端口 80要被使用的类型6的成分
[0108]-用值2.2.2.2/32来编码目的地前缀的类型I的成分
[0109]-指示AS2.2.2.2的任意端口可被使用的类型5的成分
[0110]-对HUB-R2的标识进行编码来指示从第一AS到第二 AS的路由选择将通过HUB-R2来完成的NextHop (下一跳)
[0111]-类型0x8007(0bit)的成分,其包括作为需要对称路由的示例性指示的置位标记(即,位值被设置为I)
[0112]然后,消息RM2从HUB-R2被分别发送到其iBGP邻居HUB-R3和HUB-Rl (图9的步骤908),如图6A用箭头602和604所示。路由器HUB-R2还将相应地对其FIB进行更新。
[0113]图7提供了实现结合图3A-6B所述的步骤的结果,其示出了在保证对称路由中的第一和第二AS的所有路由器的合作,其中一条路径(例如,前向路由)被示为路径702(实线),而相反路径(返回路径)被示为路径704(虚线)。
[0114]图7还示出了数据流量,特别示出了如何实现在一个AS中并且在一个方向上分发具有某个源和目的地的分组(例如,第二AS中的分组706,其从第二AS被提供给第一AS),而在另一 AS中并且在相反方向上分发具有反向的源和目的地信息的分组(例如,在第一 AS中的分组708,其从第一AS被提供给第二AS)。
[0115]以这种方式,当前对于防止DDOS攻击只支持“舍弃”和“速率限制”情况的BGPFS能够被扩展为支持更多流动作,以获得更灵活的策略,例如,用于SDN使用。
[0116]具有与单个路由器或多个路由器的多个WAN连接的分支点总是倾向于不对称路由。这是可能发生的,因为在每个末端的路由协议通过负载或会话均衡或甚至通过路径优化机制来选择不同路径。这里所述的解决方案通过确保专用流对(5元组)通过同一路由器来提供策略实施,从而当需要时使能对称路由。BGP FS更新将被发送给整个WAN部分,并且在例如一些特定双向应用需要的情况下,将允许该流对通过同一链路进行传输。
[0117]同时,这里提供的解决方案是灵活的,因为对称路由只在需要这样的路由的指示被包括在路由消息中(在这里所示的示例中,通过将Obit标记设置为I)时才被实施。如果对称路由不是需要的,则Obit可被设置为0,在这种情况下,FRD逻辑218将不会如上所述生成并传播第二路由消息(图9的步骤906和908),并且该流可进入不对称路由(A-R)模式,以便,例如,完全使用WAN容量。
[0118]在实施例中,如果不存在需要对称路由的指示(S卩,第一路由消息的Obit被设置为O),则第一路由消息将不会从第二AS的边界路由器传播到第一AS的边界路由器(S卩,图8的步骤806将不会发生)。继续图3-7B所示的示例,这一情况被示于图10中,其将一条路径(例如,转发路径)示为路径1002(实线),而相反路径(返回路径)被示为路径1004(虚线),返回路径(SPl)穿过与转发路径(SP2)的流对不同的流对。图10还示出了BGP FS更新消息1006如何不从第二AS被提供给第一AS。图10还示出了FS消息更新1008和1010,其只在第二AS2.2.2.2内进行交换以在该AS内实施该策略。
[0119]图11示出了说明示例性数据处理系统的框图,该数据处理系统可被用于图2所示的FRD逻辑218或FRS逻辑228中。
[0120]如图11所示,数据处理系统1100可包括通过系统总线1106耦合到存储器元件1104的至少一个处理器1102。因此,数据处理系统可在存储器元件1104内存储程序代码。此外,处理器1102可执行通过系统总线1106从存储器元件1104中访问的程序代码。在一个方面,数据处理系统可被实现为适于存储和/或执行程序代码的计算机。但是应该认识到,数据处理系统1100可在能够执行本说明书中所述的功能的包括处理器和存储器的任意系统的形式中实现。
[0121]存储器元件1104可包括一个或多个物理存储设备,例如,本地存储器1108以及一个或多个大容量存储设备1110。本地存储器可指一般在程序代码的实际执行期间使用的随机存取存储器或其他非永久性存储器设备。大容量存储设备可被实现为硬盘驱动器或其他永久数据存储设备。处理系统1100还可包括一个或多个缓存存储器(未示出),其提供至少一些程序代码的临时存储,以便减少程序代码在执行期间必须从大容量存储设备1110中取回的次数。
[0122]被示为输入设备1112和输出设备1114的输入/输出(I/O)设备可选地被耦合到数据处理系统。输入设备的示例可包括但不限于:键盘、定点设备(例如,鼠标)等。输出设备的示例可包括但不限于:监视器或显示器、扬声器等。输入和/或输出设备可直接或通过中间I/O控制器耦合到数据处理系统。
[0123]在实施例中,输入和输出设备可被实现为组合的输入/输出设备(在图11中用环绕输入设备1112和输出设备1114的虚线示出)。该组合设备的示例是触敏显示器,有时也被称为“触屏显示器”或简称为“触屏”。在该实施例中,向该设备的输入可由物理物体(例如,触笔或用户的手指)在触屏显示器上或其附近的运动来提供。
[0124]网络适配器1116也可被耦合到数据处理系统,以使其能够通过中间专用或公用网络来耦合到其他系统、计算机系统、远程网络设备、和/或远程存储设备。网络适配器可包括数据接收器,用于接收由所述系统、设备和/或网络发送给数据处理系统1100的数据;以及数据发送器,用于从数据处理系统1100向所述系统、设备和/或网络发送数据。调制解调器、有线调制解调器、以及以太网卡是可被用于数据处理系统1100的网络适配器的不同类型。
[0125]如图11所示,存储器元件1104可存储应用1118。在各实施例中,应用1118可被存储在本地存储器1108、一个或多个大容量存储设备1110中,或远离本地存储器和大容量存储设备。应该认识到,数据处理系统1100可进一步执行可协助执行应用1118的操作系统(图11中未示出)。以可执行程序代码的形式实现的应用1118可由数据处理系统1100(例如,由处理器1102)来执行。响应于执行该应用,数据处理系统1100可被配置为执行这里所述的一个或多个操作或方法步骤。
[0126]在本公开的一个方面,数据处理系统1100可表示客户端数据处理系统。在这种情况下,应用1118可表示客户端应用,当其被执行时,将数据处理系统1100配置为执行这里针对“客户端”所述的各种功能。客户端的示例可包括但不限于:个人计算机、便携式计算机、移动电话等。
[0127]在另一方面,数据处理系统1100可表示服务器。例如,数据处理系统可表示(HTTP)服务器,在这种情况下,应用1118在执行时可将数据处理系统配置为执行(HTTP)服务器操作。
[0128]本领域技术人员将认识到,虽然元件1102-1118在图11中被示为分离元件,但在其他实施例中,其功能可在更少数量的独立元件中实现或分布于更大数量的组件上。
[0129]变型及实现方式
[0130]在本公开的上下文中,这里所用的网络表示用于接收和发送通过通信系统进行传播的信息分组的互连通信路径的一系列点、节点、或网络元件。网络提供了源和/或主机之间的通信接口,并且可以是基于网络拓扑来协助在网络环境中的通信的任意局域网(LAN)、无线局域网(WLAN)、城域网(MAN)、内联网、外联网、互联网、WAN、虚拟专用网(VPN)、或任意其他适合的架构或系统。网络可包括通过通信介质彼此耦合(通信)的任意数量的硬件或软件元件。
[0131]在一个具体实例中,本公开的架构可与服务提供商部署相关联。在其他示例中,本公开的架构将等同适用于其他通信环境,例如,企业广域网(WAN)部署。本公开的架构可包括对于在网络中发送和/或接收分组能够进行传输控制协议/互联网协议(TCP/IP)通信的配置。
[0132]这里所用的术语“网络元件”意为包括任意上述元件,以及服务器(物理上或虚拟地实现在物理硬件上)、机器(物理上或虚拟地实现在物理硬件上)、终端用户设备、路由器、交换机、电缆盒、网关、网桥、负载均衡器、防火墙、内联服务节点、代理、处理器、模块,或任意其他适合的设备、组件、元件、专有应用,或可操作为在网络环境中交换、接收、以及发送信息的物体。这些网络元件可包括任意适合的硬件、软件、组件、模块、接口,或协助其对称路由操作的物体。这可包括允许数据或信息的有效交换的适当算法和通信协议。
[0133]这里所用的术语“分组”指的是信息或数据的所有类型的分组或任意其他单元,包括但不限于:固定长度单元格和可变长度分组,其中的每一个可以被分为更小的分组或单元格,也可以不被分为更小的分组或单元格。这里所用的术语“分组”还指分组自身或分组指示,例如但不限于,分组或分组头的全部或部分,数据结构值、指针或索引,或者分组的任意其他部分或直接或间接的标识,或与其相关联的信息。例如,路由器经常在分组的一个或多个字段(特别是头)上操作,因此当分组头被操作时,分组的主体经常被存储在分离的存储器中,并且基于分组(即,在该示例中为分组头)的处理结果,整个分组被转发或舍弃等。此外,这些分组可包含一个或多个类型的信息,包括但不限于:声音、数据、视频、以及音频信息。术语“项目”这里一般用来指信息或数据的分组或任意其他单元或片段,设备,组件,元件,或任意其他实体。短语“处理分组”和“分组处理”通常指基于分组内容(例如,分组头或其他字段)来执行一些步骤或动作,并且这些步骤或动作可以包括,也可以不包括:修改、存储、舍弃、和/或转发分组和/或相关数据。
[0134]术语“系统”这里一般用来描述任意数量的组件、元件、子系统、设备、分组交换元件、分组交换机、路由器、网络、计算机和/或通信设备或机制、或其组件的组合。术语“计算机”这里一般用来描述任意数量的计算机,包括但不限于:个人计算机、嵌入式处理元件和系统、控制逻辑、ASIC、芯片、工作站、主机等。术语“处理元件”这里一般用来描述任意类型的处理机制或设备,例如,处理器、ASIC、现场可编程门阵列、计算机等。术语“设备”这里一般用来描述任意类型的机制,包括:计算机或系统或其组件。术语“任务”和“进程”这里一般用来描述任意类型的运行程序,包括但不限于:计算机进程、任务、线程、执行应用、操作系统、用户进程、设备驱动器、本地代码、机器或其他语言等,并且其可以是交互式和/或非交互式的,可在本地和/或远程执行,可在前台和/或后台执行,可在用户和/或操作系统地址空间中,可以是库和/或独立应用的程序,并且不限于任意具体的存储器分区技术。附图中所示的步骤、连接、以及信号和信息的处理(包括但不限于任意模块和流程图以及消息序列图)通常可以相同或不同的串行或并行顺序,和/或通过不同组件和/或进程、线程等,和/或通过不同连接来执行,并且可与其他实施例中的其他功能相结合,除非这使该实施例失效或序列时明确或隐含需要的(例如,例如,对于读取值、处理值的序列一一在处理该值之前,必须获得该值,但是一些相关处理可在读取操作之前、同时、和/或之后被执行)。此外,术语“标识”这里一般用来描述用于直接或间接确定某事(其可包括但不限于:接收、从存储器中取回、确定、限定、计算、生成等)的任意方式或机制。
[0135]此外,术语“网络”和“通信机制”这里一般用来描述一个或多个网络、通信介质或通信系统,包括但不限于:互联网,专用或公用电话,蜂窝、无线、卫星、有线、局域、城域和/或广域网络,电缆,电气连接,总线等,以及内部通信机制,例如,消息传递、进程间通信、共享存储器等。术语“消息”这里一般用来描述可能但通常通过任意类型的一个或多个通信机制来通信的一条信息。
[0136]在一种实现方式中,这里所述的FRD逻辑218和FRS逻辑228,以及第一AS 210和第二AS 220的路由器,以及RCN 214和224可包括获得(或促进)这里所述的用于保证对称路由的功能的软件,其中,该软件在一个或多个处理器上被执行以执行功能。这可包括第一AS210和第二AS 220的路由器、逻辑218和逻辑228、RCN 214和224和/或将促进这里所述的动作的任意其他适合的元件的实例的实现。此外,这些元件中的每一个可具有内部结构(例如,处理器,存储器元件等)来协助这里所述的一些操作。在其他实施例中,用于保证对称路由的这些功能可在这些元件的外部,或被包括在一些其他网络元件中来执行以获得想要的功能。或者,这里所述的FRD逻辑218和FRS逻辑228,以及第一AS 210和第二AS 220的路由器,以及RCN 214和224可包括能够与其他网络元件合作来获得这里所述的对称路由功能的软件(或交互软件)。在其他实施例中,一个或若干设备可包括协助其操作的任意适当的算法、硬件、软件、组件、模块、接口、或物体。
[0137]在某些示例性实现中,这里概述的对称路由功能可通过在一个或多个非暂态、有形的介质(例如,在专用集成电路(ASIC)、数字信号处理器(DSP)指令、要被一个或多个处理器执行的软件(可能包括目标代码和源代码)、或其他类似机器等中提供的嵌入式逻辑)中编码的逻辑来实现。在这些实例的一些中,一个或多个存储器元件可存储用于这里所述的操作的数据。这包括能够存储指令(例如,软件、代码等)的存储器元件,这些指令被执行以执行本说明书中所述的动作。存储器元件被进一步配置为存储数据库(例如,映射数据库)来使能这里所公开的对称路由。处理器可执行与数据相关联的任意类型的指令,以实现本说明书在这里详细说明的操作。在一个示例中,处理器可将元件或物品(例如,数据)从一个状态或事物转换到另一状态或事物。在另一示例中,这里概述的活动可采用固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)来实现,并且这里标识的元件可以是某种类型的可编程处理器,可编程数字逻辑(例如,现场可编程门阵列(FPGA)),可擦可编程只读存储器(EPROM),电可擦可编程ROM(EEPROM),或包括数字逻辑、软件、代码、电子指令、或其任意适当组合的ASIC。
[0138]这些元件(例如,网络元件等)中的任一个可包括用于存储信息以用于获得对称路由的存储器元件,如这里所概述的那样。此外,这些设备中的每一个可包括能够执行软件或算法以执行用于保证本说明书中所述的对称路由的动作的处理器。这些设备还可将信息保持在任意适当的存储器元件(随机存取存储器(RAM)、R0M、EPR0M、EEPR0M、ASIC等)、软件、硬件中,或任意其他适当的组件、设备、元件、或适当且基于具体需要的物体中。这里所述的任意存储器项目应被解释为被包含在广泛的术语“存储器元件”中。类似地,本说明书中所述的任意可能的处理元件、模块、和机器应被解释为被包含在广泛的术语“处理器”中。每个网络元件还可包括用于在网络环境中接收、发送、和/或以其他方式传输数据或信息的适当接
□ O
[0139]此外,需要注意的是,根据上述示例,可用两个、三个或四个元件来对交互进行描述。然而,这样做仅是为了清晰和举例的目的。在某些情况下,通过只参考有限数量的网络元件来描述给定流集的一个或多个功能会更容易。应当认识到,此处描述的系统是可轻易扩展的并且可容纳大量数目的组件,以及更复杂/精巧的布置与配置。从而,所提供的示例不应该限制保证对称路由的范围或抑制其广泛的技术,这些技术可能被应用于很多其他架构中。
[0140]还需要注意的是,图3A-10中的步骤只说明了由这里所述的FRD逻辑218和FRS逻辑228,以及第一AS 210和第二AS 220的路由器,以及RCN 214和224或者在其内部执行的一些可能情况。这些步骤中的一些可在适当时被删除或移除,或者在不背离本公开的范围的情况下这些步骤可以被适当修改或改变。此外,许多这样的操作可以和一个或多个额外操作同时执行或并行执行。但是,这些操作的时序可被适当更改。上面的操作流被提供用于举例和论述的目的。FRD逻辑218和FRS逻辑228,以及第一AS 210和第二AS 220的路由器,以及RCN 214和224提供了大量的灵活性在于:在不背离本公开的教导的情况下,可设置任何合适的布置、发生顺序、配置、和时序机制。
[0141]还需要注意的是,以上讨论可能暗示单一客户端-服务器关系。实际上,在本公开的某些实现方式中,传递层中有大量服务器。此外,本公开很容易被扩展以应用于介入架构中更上游的服务器,尽管本公开不需关联穿过‘η’服务器的‘m’客户端。任何这样的置换、缩放和配置均在本公开的广泛范围内。
[0142]很多其他改变、替换、变更、更改和修改可被本领域的技术人员确定,本公开旨在包含落入所附权利要求范围的所有这些改变、替换、变更、更改和修改。为了协助美国专利商标局(USPTO)及针对本申请所授予的任何专利的任何读者理解所附的权利要求,
【申请人】希望阐述,
【申请人】:(a)不希望任何所附权利要求援引在其申请日存在的35U.S.C.的112章的第六款,除非在具体的权利要求中特定地使用了词语“用于…的装置”或“用于…的步骤”;以及(b)不希望通过本说明书中的任何表述来以任何未在所附权利要求中以其他方式体现的形式来限制本公开。
【主权项】
1.一种用于协助保证第一主机和第二主机之间的对称路由的方法,所述第一主机是第一自治系统(AS)的一部分,所述第二主机是第二 AS的一部分,所述方法包括以下步骤: 检测第一路由消息在所述第一 AS的边界路由器处从所述第二 AS的边界路由器被接收,所述第一路由消息包括: 所述第二主机作为前向路由的源的标识,以及 所述第一主机作为所述前向路由的目的地的标识; 确定所述第一路由消息还包括在所述第一主机和所述第二主机之间实现对称路由的指示;以及 生成用于传播到所述第一AS内的一个或多个路由器的第二路由消息,所述第二路由消息包括: 所述第一主机作为返回路由的源的标识, 所述第二主机作为所述返回路由的目的地的标识,以及 从所述第一主机到所述第二主机的数据要通过接收所述第一路由消息的所述第一 AS的边界路由器来发送的指示。2.如权利要求1所述的方法,还包括:将所述第二路由消息传播至所述第一AS内的一个或多个路由器。3.如权利要求1所述的方法,其中所述第一路由消息是域间路由协议的更新消息。4.如权利要求3所述的方法,其中所述域间路由协议是边界网关协议(BGP)。5.如权利要求4所述的方法,其中所述在所述第一主机和所述第二主机之间实现对称路由的指示包括所述更新消息的流量动作值字段内编码的预定值。6.如权利要求4所述的方法,其中所述从所述第一主机到所述第二主机的数据要通过接收所述第一路由消息的所述第一 AS的边界路由器来发送的指示包括被编码在所述第二路由消息的NextHop字段中的、所述第一 AS中接收所述第一路由消息的所述边界路由器的标识O7.—种用于协助保证第一主机和第二主机之间的对称路由的系统,所述第一主机是第一自治系统(AS)的一部分,所述第二主机是第二 AS的一部分,所述系统包括: 被配置为存储计算机可执行指令的至少一个存储器;以及 耦合到所述至少一个存储器的至少一个处理器,该至少一个处理器被配置为当执行所述指令时,使得: 检测第一路由消息在所述第一 AS的边界路由器处从所述第二 AS的边界路由器被接收,所述第一路由消息包括: 所述第二主机作为前向路由的源的标识,以及 所述第一主机作为所述前向路由的目的地的标识; 确定所述第一路由消息还包括在所述第一主机和所述第二主机之间实现对称路由的指示;以及 生成用于传播到所述第一AS内的一个或多个路由器的第二路由消息,所述第二路由消息包括: 所述第一主机作为返回路由的源的标识, 所述第二主机作为所述返回路由的目的地的标识,以及 从所述第一主机到所述第二主机的数据要通过接收所述第一路由消息的所述第一 AS的边界路由器来发送的指示。8.如权利要求7所述的系统,其中: 所述第一路由消息是域间路由协议的更新消息, 所述域间路由协议是边界网关协议(BGP),并且 所述从所述第一主机到所述第二主机的数据要通过接收所述第一路由消息的所述第一 AS的边界路由器来发送的指示包括:被编码在所述第二路由消息的NextHop字段中的、所述第一 AS中接收所述第一路由消息的所述边界路由器的标识。9.一个或多个编码有包括计算机可执行指令的软件的计算机可读存储介质,当所述软件被执行时,能够操作以: 检测第一路由消息在所述第一 AS的边界路由器处从所述第二 AS的边界路由器被接收,所述第一路由消息包括: 第二主机作为前向路由的源的标识,以及 第一主机作为所述前向路由的目的地的标识; 确定所述第一路由消息还包括在所述第一主机和所述第二主机之间实现对称路由的指示;以及 生成用于传播到所述第一AS内的一个或多个路由器的第二路由消息,所述第二路由消息包括: 所述第一主机作为返回路由的源的标识, 所述第二主机作为所述返回路由的目的地的标识,以及 从所述第一主机到所述第二主机的数据要通过接收所述第一路由消息的所述第一 AS的边界路由器来发送的指示。10.如权利要求9所述的一个或多个计算机可读存储介质,其中: 所述第一路由消息是域间路由协议的更新消息, 所述域间路由协议是边界网关协议(BGP),并且 所述从所述第一主机到所述第二主机的数据要通过接收所述第一路由消息的所述第一 AS的边界路由器来发送的指示包括:被编码在所述第二路由消息的NextHop字段中的、所述第一 AS中接收所述第一路由消息的所述边界路由器的标识。11.一种用于协助保证第一主机和第二主机之间的对称路由的方法,所述第一主机是第一自治系统(AS)的一部分,所述第二主机是第二 AS的一部分,所述方法包括以下步骤: 生成用于从所述第二 AS的边界路由器传播至所述第一 AS的边界路由器的第一路由消息,所述第一路由消息包括: 所述第二主机作为前向路由的源的标识, 所述第一主机作为所述前向路由的目的地的标识,以及 在所述第一主机和所述第二主机之间实现对称路由的指示。12.如权利要求11所述的方法,其中该实现对称路由的指示触发用于传播至所述第一AS内的一个或多个路由器的第二路由消息的生成,所述第二路由消息包括: 所述第一主机作为返回路由的源的标识, 所述第二主机作为所述返回路由的目的地的标识,以及 从所述第一主机到所述第二主机的数据要通过接收所述第一路由消息的所述第一 AS的边界路由器来发送的指示。13.如权利要求11所述的方法,还包括:将所述第一路由消息从所述第二AS的边界路由器传播至所述第一 AS的边界路由器。14.如权利要求11所述的方法,还包括:将所述第一路由消息传播到所述第二AS内的一个或多个路由器。15.如权利要求11所述的方法,其中所述第一路由消息是域间路由协议的更新消息。16.如权利要求15所述的方法,其中所述域间路由协议是边界网关协议(BGP)。17.如权利要求18所述的方法,其中所述在所述第一主机和所述第二主机之间实现对称路由的指示包括所述更新消息的流量动作值字段内编码的预定值。18.—种用于协助保证第一主机和第二主机之间的对称路由的系统,所述第一主机是第一自治系统(AS)的一部分,所述第二主机是第二 AS的一部分,所述系统包括: 被配置为存储计算机可执行指令的至少一个存储器;以及 耦合到所述至少一个存储器的至少一个处理器,该至少一个处理器被配置为当执行所述指令时,使得: 生成用于从所述第二 AS的边界路由器传播至所述第一 AS的边界路由器的第一路由消息以,所述第一路由消息包括: 所述第二主机作为前向路由的源的标识, 所述第一主机作为所述前向路由的目的地的标识,以及 在所述第一主机和所述第二主机之间实现对称路由的指示;将所述第一路由消息从所述第二AS的边界路由器传播至所述第一AS的边界路由器;以及 将所述第一路由消息传播到所述第二 AS内的一个或多个路由器。19.如权利要求18所述的系统,其中: 所述第一路由消息是域间路由协议的更新消息, 所述域间路由协议是边界网关协议(BGP),并且 所述在所述第一主机和所述第二主机之间实现对称路由的指示包括所述更新消息的流量动作值字段内编码的预定值。20.—个或多个编码有包括计算机可执行指令的软件的计算机可读存储介质,当所述软件被执行时,能够操作以: 生成用于从第二 AS的边界路由器传播至第一 AS的边界路由器的第一路由消息,所述第一路由消息包括: 所述第二主机作为前向路由的源的标识, 所述第一主机作为所述前向路由的目的地的标识,以及 在所述第一主机和所述第二主机之间实现对称路由的指示;将所述第一路由消息从所述第二AS的边界路由器传播至所述第一AS的边界路由器;以及 将所述第一路由消息传播到所述第二 AS内的一个或多个路由器。
【文档编号】H04L12/721GK105939255SQ201610115079
【公开日】2016年9月14日
【申请日】2016年3月1日
【发明人】房智勇, 王玉平, 陆琳玉, 王寅
【申请人】思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1