CN106375221B - 边界网关协议中的属性set_id - Google Patents
边界网关协议中的属性set_id Download PDFInfo
- Publication number
- CN106375221B CN106375221B CN201610575482.2A CN201610575482A CN106375221B CN 106375221 B CN106375221 B CN 106375221B CN 201610575482 A CN201610575482 A CN 201610575482A CN 106375221 B CN106375221 B CN 106375221B
- Authority
- CN
- China
- Prior art keywords
- bgp update
- update message
- path attributes
- identifier
- bgp
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/033—Topology update or discovery by updating distance vector protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本公开涉及边界网关协议中的属性SET_ID。本公开涉及用于准备BGP更新消息已进行发送以及处理接收到的更新消息的方法。该方法基于:将多个IP地址前缀共同的路径属性分组到用相应集合标识符进行标识的相应集合;以及不是将路径属性复制到每个BGP更新消息中,而是当发送后续更新消息时,包括引用在先前BGP更新消息中提供的某一路径属性集合的相应标识符。将路径属性分组到与相应标识符相关联的各个集合通过实现在与发送BGP更新消息相关联的发送侧和接收侧都重复使用先前处理的结果,从而提供了显著优势。此外,这样的方法限制了在控制平面中发送的信息量,因为复制的路径属性集合可仅被发送一次,而在后续更新消息中仅进行引用。
Description
相关申请
本申请是发明人杨毅等于2015年7月20日提交的、题为“边界网关协议中的属性SET_ID”的美国申请No.14/804,069的继续申请(并且根据35U.S.C.§120要求其优先权权益)。该在先申请的公开被看作是本申请的公开的一部分(并且通过引用将其整体合并到本申请的公开中)。
技术领域
本公开总体涉及通信领域,更具体地,涉及用于发送和接收路由公告(例如,边界网关协议(BGP)更新消息)的方法和系统。
背景技术
互联网可被看作是自治系统集合,其中“自治系统(AS)”通常指处于单个技术管理下的一组网络元件,例如,路由器、交换机和控制器。术语“网络元件”可以指这样的网络元件,其不仅可以包括实际的物理设备和系统,还可以包括完全实现于软件的设备和系统,和/或还可以包括虚拟设备和系统组件。AS还可以被认为包括连接至网络的主机。对不同AS的隔离允许限定管理权限以及不同组织的路由策略。
在AS运行其自己独立的路由策略和唯一的内部网关协议(IGP)方面,每个AS是“自治的”(即,与其他AS相对独立)。外部路由协议(EPG)被创建,当前的互联网标准EGP是边界网关协议(BGP),其用来在不同的AS之间交换路由信息,该过程通常被称为“路由公告(route advertisement)”。例如,BGP定义AS间路由协议,其中一个主要功能是使用所谓的“BGP扬声系统”(通常还被称为“BGP扬声器”)通过发送所谓的“更新消息”来交换网络可靠性信息(NLRI)。
BGPSEC是BGP的相对近期的扩展,其向接收有效BGPSEC路由公告的BGP扬声器提供了密码保障,因为被公告的路由具有如下性质:在该公告中列出的AS路径上的每个AS已被明确授权将该路由公告给该路径中的后续AS。尽管BGPSEC是用来确保BGP路由公告的路径安全性的非常有希望的候选方案,但该协议的部署实际上由于如下事实而具有挑战:当前用于发送路由公告和处理所接收的公告的技术,尤其是每个BGPSEC更新消息中所包括的密码保障的验证,具有较高的资源密集性。因此,需要改善发送和接收BGP更新消息的技术,尤其是可被用于BGPSEC中的技术。
发明内容
本公开的一方面公开了一种用于准备边界网关协议(BGP)更新消息以进行发送的方法,该方法包括:标识与两个或更多个共同路径属性的第一集合相关联的第一多个互联网协议(IP)地址前缀;向两个或更多个共同路径属性的第一集合分配第一标识符;通过除了两个或更多个共同路径属性的第一集合之外,还将第一标识符包括在第一BGP更新消息中,来准备第一BGP更新消息;以及通过将第一标识符而非两个或更多个共同路径属性的第一集合包括在第二BGP更新消息中,来准备第二BGP更新消息。
本公开的一方面公开了一种用于准备边界网关协议(BGP)更新消息以进行发送的系统,该系统包括至少一个存储器,该至少一个存储器被配置为存储计算机可执行指令,以及至少一个处理器,该至少一个处理器被耦合于至少一个存储器,并且被配置为当运行指令时:标识与两个或更多个共同路径属性的第一集合相关联的第一多个互联网协议(IP)地址前缀;向两个或更多个共同路径属性的第一集合分配第一标识符;通过除了两个或更多个共同路径属性的第一集合之外,还将第一标识符包括在第一BGP更新消息中,来准备第一BGP更新消息;以及通过将第一标识符而非两个或更多个共同路径属性的第一集合包括在第二BGP更新消息中,来准备第二BGP更新消息。
本公开的一方面公开了一种或多种计算机可读存储介质,其编码有软件,该软件包括用于准备边界网关协议(BGP)更新消息以进行发送的计算机可执行指令,当软件被执行时,可操作以:标识与两个或更多个共同路径属性的第一集合相关联的第一多个互联网协议(IP)地址前缀;向两个或更多个共同路径属性的第一集合分配第一标识符;通过除了两个或更多个共同路径属性的第一集合之外,还将第一标识符包括在第一BGP更新消息中,来准备第一BGP更新消息;以及通过将第一标识符而非两个或更多个共同路径属性的第一集合包括在第二BGP更新消息中,来准备第二BGP更新消息。
附图说明
为了提供对本公开和本公开的特征与优点的更完整的理解,结合附图,参考下面的描述,其中类似的参考编号表示类似的部分,其中:
图1是根据本公开的一些实施例,示出包括多个AS的网络内的路由基本要素的简化示意图;
图2是根据本公开的一些实施例的示例网络环境的简化示意图,该示例网络环境包括用于准备BGP更新消息以进行传输的发送BGP更新处理系统;
图3是根据本公开的一些实施例的示例网络环境的简化示意图,该示例网络环境包括用于处理所接收的BGP更新消息的接收BGP更新处理系统;
图4是根据本公开的一些实施例,用于准备BGP更新消息以进行发送的方法流程图;
图5是根据本公开的一些实施例,用于准备BGP更新消息以进行发送的另一方法流程图;
图6是根据本公开的一些实施例,用于处理所接收的BGP更新消息的方法流程图。
具体实施方式
概述
本公开的一些实施例在BGP的上下文中进行操作,其中,可以通过将新的路径属性包括在BGP更新消息内来确保对更新消息的改善处理,现在将对这些实施例进行描述。然而,本领域技术人员将认识到,这些教导等同地适用于其他实施例以及除了eBGP之外的AS间协议,这些全部处于本公开的范围之内。另外,除非技术上不可行,否则本文所描述的BGP和BGP更新消息可以分别指代BGPSEC和BGPSEC更新消息。
在各个方面,本文所呈现的实施例涉及用于准备BGP更新消息以进行发送的计算机实现方法和用于处理所接收的BGP更新消息的计算机实现方法。前者方法在本文中被称为“发送方法”,因为其涉及与BGP更新消息的发送相关联的处理。后者方法在本文中被称为“接收方法”,因为其涉及在接收到BGP更新消息时执行的处理。
发送方法包括如下步骤:标识第一多个互联网协议(IP)地址前缀,该第一多个IP地址前缀与两个或更多个共同路径属性(即,在第一多个IP地址前缀中的每个IP地址前缀与所有其他IP地址前缀所共同具有的路径属性)的第一集合相关联;向两个或更多个共同路径属性的第一集合分配第一标识符;通过除了两个或更多个共同路径属性的第一集合之外,还将第一标识符包括在第一BGP更新消息中来准备第一BGP更新消息以进行发送,该第一BGP更新消息携带针对第一多个前缀中的一个或多个IP地址前缀的路由公告;以及通过将第一标识符而非两个或更多个共同路径属性的第一集合包括在第二BGP更新消息中来准备第二BGP更新消息以进行发送,该第二BGP更新消息携带针对第一多个前缀中的一个或多个IP地址前缀的路由公告。将所准备的BGP更新消息实际发送至其他域也可包括在发送方法之内。
在实施例中,发送方法还可以包括:标识与两个或更多个共同路径属性的第二集合相关联的第二多个IP地址前缀;向两个或更多个共同路径属性的第二集合分配第二标识符;通过除了两个或更多个共同路径属性的第二集合之外还将第二标识符包括在第三BGP更新消息中来准备第三BGP更新消息以进行发送;以及通过将第二标识符而非两个或更多个共同路径属性的第二集合包括在第四BGP更新消息中来准备第四BGP更新消息以进行发送。在另一实施例中,发送方法还可以包括:通过将第一标识符而非两个或更多个共同路径属性的第一集合包括在第五BGP更新消息中,并且将第二标识符而非两个或更多个共同路径属性的第二集合包括在第一BGP更新消息中,来准备第五BGP更新消息以进行发送。
在实施例中,发送方法还可以包括:维护(例如,生成、存储和/或更新)指示标识符与两个或更多个共同路径属性的相应集合的关联的映射。在一个其他实施例中,发送方法可以响应于接收针对与多个路径属性相关联的另一IP地址前缀准备另一BGP更新消息的指示,使用这样的映射。在这样的实施例中,发送方法可以包括:使用该映射来确定多个路径属性中的两个或更多个路径属性是否被分配有相应的标识符,并且当得到肯定确定时,通过将相应标识符而非与该IP地址前缀相关联的多个路径属性中的两个或更多个路径属性包括在另一BGP更新消息中,来准备该另一BGP更新消息以进行发送。
在实施例中,这些集合在如下方面可以是分层的:如果在与一个特定IP地址前缀相关联的多个路径属性中的两个或更多个路径属性之间存在多于一个匹配(即,多于两个集合相匹配,这些集合可能重叠),则该方法可以包括基于某种标准来选择一个集合而非另一集合(或更多的集合)。
接收方法包括接收第一BGP更新消息的步骤。第一BGP更新消息可以携带针对一个或多个IP地址前缀(例如,所述第一多个前缀中的一个或多个IP地址前缀)的路由公告。除了路径属性的第一集合之外,所接收的第一BGP更新消息还包括第一标识符以及第一标识符被分配给路径属性的第一集合的指示。接收方法还包括:至少通过处理第一BGP更新消息中所包括的路径属性的第一集合来处理第一BGP更新消息;以及在第一标识符和处理路径属性的第一集合的结果之间生成映射。另外,接收方法包括:接收第二BGP更新消息,该第二BGP更新消息包括第一标识符而非路径属性的第一集合;以及使用针对第一标识符的映射以在处理第二BGP更新消息中访问和使用处理路径属性的第一集合的结果。
在实施例中,接收方法还可以包括如下步骤:接收第三BGP更新消息,第三BGP更新消息除了包括路径属性的第二集合之外,还包括第二标识符以及第二标识符被分配给路径属性的第二集合的指示;至少通过处理第三BGP更新消息中所包括的路径属性的第二集合来处理第三BGP更新消息;在第二标识符和处理路径属性的第二集合的结果之间生成映射;接收第四BGP更新消息,该第四BGP更新消息包括第二标识符而非路径属性的第二集合;以及使用针对第二标识符的映射以在处理第四BGP更新消息中访问和使用处理路径属性的第二集合的结果。
在实施例中,接收方法还可以包括:接收第五BGP更新消息,第五BGP更新消息包括第一标识符而非路径属性的第一集合,并且还包括第二标识符而非路径属性的第二集合;使用针对第一标识符的映射以在处理第五BGP更新消息中访问和使用处理路径属性的第一集合的结果;以及使用针对第二标识符的映射以在处理第五BGP更新消息中访问和使用处理路径属性的第二集合的结果。
在发送方法和接收方法二者的一些实施例中,第一标识符可被包括在第一BGP更新消息和第二BGP更新消息的集合标识符(SET_ID)属性中,SET_ID属性包括标识符值字段,该标识符值字段编码共同路径属性的相应一个或多个集合的一个或多个标识符。这样的SET_ID属性可被实现为BGP的可选非可递(non-transitive)属性。
适用于发送方法和接收方法二者的是,通常,第一BGP更新消息和第二BGP更新消息将包括针对第一多个前缀中的不同IP地址前缀的路由公告。然而,还可能的是,第一更新消息和第二更新消息将具有共同的一个或多个IP地址前缀。
还适用于发送方法和接收方法二者的是,在各个实施例中,第一BGP更新消息和第二BGP更新消息除了包括由第一标识符所标识的那些路径属性之外,还可以包括其他路径属性。其他路径属性可被包括为单独的属性,或者以类似于针对第一标识符所采用的方式被分配至另一标识符。
由于本文所描述的方法的实施例涉及处理BGP更新消息,下文将把执行这些方法的实施例的功能实体称为“BGP更新处理系统”(其中,词语“系统”不隐含实现方式为系统或者将其实现方式限制为系统)。这样的功能实体可以被实现于任何网络元件内,或者被分布于与AS相关联的多个网络元件间,例如,在边缘路由器的BGP扬声器中。例如,BGP更新处理系统中负责准备BGP更新消息以进行发送的部分可以(但不一定)被实现为与BGP更新处理系统中负责处理所接收的BGP更新消息的部分相分离。BGP更新处理系统中的前者部分在本文中被称为“发送BGP更新处理系统”,而BGP更新处理系统中的后者部分在本文中被称为“接收BGP更新处理系统”。
本领域技术人员将理解的是,可采用各种方式来实现本公开的方面,尤其是本文所描述的BGP更新处理系统的功能。因此,本公开的其他方面涉及用于实施根据本文所描述的各个实施例的方法的系统、计算机程序、机制以及手段。这样的系统、计算机程序、机制以及手段可被包括在各种网络设备内,例如,交换机和路由器,尤其是边缘路由器或BGP扬声器(BGP扬声器可以但不一定要被包括在路由器内)之内。计算机程序例如可被下载(更新)到现有的网络设备和系统中(例如,现有的路由器、交换机、各种控制节点等中),或者在制造这些设备和系统时存储计算机程序。
在另一方面,本申请涉及编码由软件的一个或多个非暂态计算机可读存储介质,其中,软件包括计算机可执行指令,当器被计算机的处理器执行时,可操作以实施根据本文所描述的各个实施例的方法。
在又一方面,本申请涉及用于改善对路由消息(例如,更新消息)的处理的数据结构,尤其是用作AS间路由协议(例如,BGP或BGPSEC)中的集合ID属性的数据结构。在实施例中,数据结构包括标识符值字段,该标识符值字段编码共同路径属性的相应一个或多个集合的一个或多个标识符。在实施例中,这样的数据结构可被包括在BGP更新消息中,例如,作为本文所描述的BGP更新消息的可选非可递属性。
示例实施例
公开了用于发送和接收BGP更新消息的方法、装置、数据结构、计算机可读介质、机制以及手段等,尤其是但不限于可被用于BGPSEC的那些。
为了说明本文所描述的用于发送和接收BGP更新消息的技术,理解传统网络环境中所存在的活动十分重要。下文的基本信息可被视作可适当地解释本公开的基础。仅出于解释的目的来提供这样的信息,因此,不应以任何限制本公开的广义范围及其可能应用来解释这些信息。
路由基本要素
互联网可被看作是自治系统集合,其中“自治系统(AS)”通常指处于单个技术管理下的一组网络元件,例如,路由器、交换机和控制器。AS还可以被认为包括连接至网络的主机。对不同AS的隔离允许限定管理权限以及不同组织的路由策略。
在AS内,网络元件通过使用内部网关协议(IGP)来路由数据包并且通过引用某些共同的度量,从而进行彼此通信。还可以使用若干IGP,例如,路由信息协议(RIP)、增强型内部网关路由协议(EIGRP)、开放式最短路径优先(OSPF)协议、内部BGP(iBGP)和中间系统到中间系统(IS-IS)协议、以及有时AS内的若干组度量。
在外部,邻近的AS通过使用外部网关协议(EGP)路由数据包来彼此通信,当前的互联网标准是RFC 4271中定义的BGP版本4(BGP-4),其通过引用被合并于此。
在AS运行其自己独立的路由策略和唯一的IGP方面,每个AS是“自治的”(即,与其他AS相对独立)。使用术语“自治的”还强调了如下事实:即使在使用多个IGP和度量时,在其他AS看来,对AS的管理具有单个一致的内部路由计划,并且呈现了通过其可到达哪些目的地的一致景象。外部路由协议被创建来在不同AS之间交换路由信息。例如,eBGP定义了AS间路由协议,其中,一个主要功能是通过BGP扬声器发送更新消息的方式来交换NLRI,下面将进行更详细的描述(即,NLRI可被视作为BGP更新消息中特定字段的名称,该字段编码一个或多个IP地址,还被称为路由、前缀、IP地址前缀、或目的地)。
图1是根据本公开的一些实施例,示出包括多个AS的网络环境100的简化示意图。
网络环境100表示互连通信路径的一系列点或节点,其用于接收和发送通过网络环境100传播的信息数据包。网络环境100提供节点(例如,诸如路由器112之类的各种网络元件)之间的通信接口,并且可以包括任何类型或拓扑结构的一个或多个网络,例如,局域网(LAN)、无线局域网(WLAN)、城域网(MAN)、虚拟局域网(VLAN)、内联网、外联网、诸如互联网、虚拟专用网(VPN)之类的广域网(WAN)、促进网络环境100中的通信的任何其他适当的网络配置、或其任意适当的组合。网络环境100的网络元件可以包括通过通信介质彼此耦合(和通信)的任意数目的硬件或软件元件。图1的元件可采用任何适当的连接(有线或无线)、通过一个或多个接口来彼此耦合,其中适当的连接为网络通信提供可行路径。此外,基于特定的配置需求,这些元件中的一个或多个可被组合、分割、或从架构中移除。为了便于说明,并非图1中的所有元件均描绘了穿过网络环境100的通信线。
在网络环境100中,可根据任意适当的通信消息传送协议来发送和接收网络流量(其可包括数据包、帧、信号、单元格(cell)、数据报、协议数据单元(PDU)、数据等)。适当的通信消息传送协议可包括多层方案,例如,开放式系统互联(OSI)模型、或其任意派生或变体(例如,传输控制协议/互联网协议(TCP/IP)、用户数据报协议/IP(UDP/IP))。数据包是在网络中传输信息的数据单元,数据包可经由网络在源节点和目的地节点之间被路由。数据包包括但不限于,源网络地址、目的地网络地址、以及包含要传输的信息的有效负荷。例如,在TCP/IP消息传送协议中,这些网络地址可以是互联网协议(IP)地址。信息一般由数据来表示,并且如本文所使用的,“数据”指任何类型的二进制数据、数值数据、语音、视频、媒体、文本或脚本数据、或者任意类型的源代码或目标代码、或采用可在电子设备和/或网络中被从一点传输至另一点的任意适当格式的任意其他适当信息。
在图1的示例中,将两个AS示出为第一AS 110和第二AS 120。第一AS 110包括路由器112a-112f,每个路由器可在操作上被耦合至第一AS110内的至少一个其他节点,如路由器112a-112f中的一些路由器之间的实线所示。路由器112a-112f中的一些路由器之间的实线可被视为表示根据第一AS 110的一个或多个IGP(例如,iBGP)交换数据包。
类似地,第二AS 120包括路由器122a-122g,每个路由器可在操作上被耦合至第二AS 120内的至少一个其他节点,如路由器122a-122g中的一些路由器之间的实线所示。路由器122a-122g中的一些路由器之间的实线可被视为表示根据第二AS 120的一个或多个IGP(例如,iBGP)交换数据包。
一个AS中的被配置为与其他AS中的路由器通信的路由器被称为“边缘路由器”,而一个AS中的仅被配置为与同一AS中的其他路由器通信的路由器被称为“核心路由器”。在图1的图示中,路由器112a、112b、112e和112f是边缘路由器,而路由器112c和112d是第一AS110的核心路由器,对于第二AS 120,路由器122a、122b、122d和122f是边缘路由器,路由器122c、122e和122g是核心路由器。在图1中,一些边缘路由器之间或者从一些边缘路由器延伸的虚线可被示出为表示根据EGP(例如,eBGP)交换数据包。
每个边缘路由器被配置为(例如,经由eBGP)与另一AS中的一个或多个边缘路由器通信。如说明性示例,边缘路由器可以是经由BGP和标签分布协议(LDP)来交换服务状态的服务节点(例如,L3VPN、第2层虚拟专用网(L2VPN)端点)。
来自不同AS的被配置为彼此通信的一对边缘路由器被称为“EGP邻居”,例如“eBGP邻居”。在图1的图示中,一对EGP邻居包括路由器112b和122b,而另一对邻居包括路由器112f和122f。图1中示出的其他边缘路由器还可以具有其他AS中的其相应的EGP邻居,所述其他AS未在图1中示出。
此外,一个或多个端点可以通过各种附着点(例如,网络接入点)接入至少一个AS(或者被认为是被包括在至少一个AS中),图1的示例示出每个AS具有三个端点。端点130例如可以包括主机。
BGP更新消息
如上所述,BGP扬声器被用来与其他BGP系统交换NLRI。在BGP路由器之间、在被用来向对等方发送路由更新的所谓的“更新消息”中交换NLRI。
当BGP会话被发起时,更新消息被发送,直到完整的BGP表已被交换。每当更新消息被接收,BGP路由表被更新并且BGP路由表版本递增一。因此,通信网络元件初始交换其完整的BGP路由表,然后使用更新消息来发送递增更新。
除了NLRI以外,更新消息通常还包括路径属性。NLRI可以包括一个或多个路由(即,IP地址前缀)以及多个路径属性。如果BGP扬声器选择公告路由,则其可以在将路由公告给对等方之前添加或修改该路由的路径属性。
在更新消息之内,用NLRI在一对BGP扬声器之间公告路由,其中NLRI包括目的地字段,该目的地字段采用IP地址前缀的形式列出与路由信息有关的系统的IP地址。实际的路由信息通过列出路径属性(例如,ORIGIN、AS_PATH等)被包括在同一更新消息的路径属性字段中。
在BGP中,路径属性可被分类到以下四个类别:1)公知的强制属性;2)公知的自由选择属性;3)可选的可递属性;以及4)可选的非可递属性。
第一类别的路径属性必须存在于每个更新消息中并且必须由全部BGP实现方式支持。如果更新消息中丢失了这样的属性,则通知消息被发送至对等方。这样的属性例如包括AS_PATH、ORIGIN和NEXT_HOP。
第二类别的路径属性可以存在于更新消息中,或者可以不存在于更新消息中,但其必须由全部BGP实现方式支持。这样的属性例如包括LOCAL_PREF和ATOMIC_AGGREGATE。
第三类别的路径属性可以由全部BGP实现方式支持,或者可以不由全部BGP实现方式支持。如果这样的路径属性在更新消息中被发送,但没有被接收机识别,则其应被传递至下一AS。这样的属性例如包括AGGREGATOR和COMMUNITY。
第四类别的路径属性可以由全部BGP实现方式支持,或者可以不由全部BGP实现方式支持,并且如果其被接收,则不要求路由器将其传递下去。这样的属性例如包括MULTI_EXIT_DISC、ORIGINATOR_ID和CLUSTER_LIST。
发送和接收BGP更新消息中的所需处理
通常,BGP更新消息的NLRI的目的地字段包括多个IP地址前缀,多个IP地址前缀针对更新消息的路径属性中列出的它们的路由信息共享共同属性。事实上,大量IP地址可以共享共同的属性集。然而,由于有限大小的传输数据包,BGP可能不能将共享同一属性集的全部IP地址封装在单个BGP更新消息中。在这样的情形中,在目前的技术水平下,使用多个更新消息,共同的路径属性被复制在那些单独的更新消息中的每一个中。本公开的发明人认识到,这样的方法存在许多问题。
一个问题涉及在发送侧对BGP更新消息的处理。即,BGP路由器必须经过打包过程以生成这些经复制的路径属性以用于每个更新。
另一问题涉及在接收侧对BGP更新消息的处理。即,这些BGP更新消息的接收器必须验证每个经复制的路径属性集。
又一问题涉及如下事实:传输经复制的信息浪费控制平面带宽。
在BGPSEC情形下,这些问题变得更加严重。因为BGPSEC基于每个IP地址前缀提供数据签名,因此针对可以共享许多路径属性的多个IP地址的路由信息将不会具有包含该数字签名的相同路径属性BGPSEC_PATH,因此,不能在同一BGP更新消息内发送该路由信息。换言之,对于BGPSEC,每个BGP更新消息最可能包含仅针对一个IP地址前缀的路由信息,这意味着更多的BGP更新消息需要在发送侧和接收侧二者上被处理,并且浪费更多的控制平面带宽。此外,需要在接收侧BGPSEC中执行的验证过程自身是计算密集型过程。
发送和接收BGP更新消息的改进技术
本公开的方面旨在于通过提供用于准备BGP更新消息以进行发送的方法和处理接收到的BGP更新消息的方法,来改善当前技术水平的缺陷。这些方法基于将对于多个IP地址前缀而言是共同的路径属性分组到相应的集合,这些集合被标识相应的集合标识符,以及当发送后续的更新消息时,不是将路径属性复制到每个BGP更新消息中,而是包括指代较早的BGP更新消息中所提供的某一路径属性集合的相应集合标识符。将路径属性分组到与相应标识符相关联的各个集合中通过实现再次使用发送侧和接收侧与传输BGP更新消息相关联的先前处理结果,从而提供了显著优势(尤其对于接收侧十分显著,在接收侧,需要对路径属性进行验证)。此外,这样的方法限制了在控制平面中发送的信息量,因为复制的路径属性集合可仅被发送一次,并且在后续BGP更新消息中仅被引用(即,它们不必每次都被重新发送)。
本公开中所描述的实施例可被视作提供新的BGP扩展,尤其是对更新消息中所包括的信息的BGP扩展,这能够优化对BGP更新消息的发送和接收。为此,公开了准备要由BGP扬声器发送的BGP更新消息的方法(即,发送方法)和处理从BGP扬声器接收到的BGP更新消息的方法(即,接收方法)。如图4和图5所示,发送方法可由图2中所示的发送BGP更新处理系统210来实现。如图6所示,接收方法可由图3中所示的接收BGP更新处理系统310来实现。
图2是根据本公开的一些实施例的示例网络环境200的简化示意图,该示例网络环境200包括用于准备BGP更新消息以进行发送的发送BGP更新处理系统210。在至少一个实施例中,发送BGP更新处理系统210包括至少一个处理器212和至少一个存储器元件214,以及用来实现其所期望的功能的任意其他适当的硬件和/或软件。发送BGP更新处理系统210可被认为包括分组模块(grouping module)216,该分组模块216被配置为当准备BGP更新消息时,实施本文所描述的与属性分组相关的功能。发送BGP更新处理系统210还可被认为包括更新准备模块218,该更新准备模块218被配置为实施本文所描述的与准备(例如,打包)要发送的BGP更新消息有关的功能。发送BGP更新处理系统210还可包括实现与其他设备(例如,图1中所示的端点130或图3中所示的接收BGP更新处理系统310)进行通信的接口(图2中未示出)。作为执行本文所描述的功能的结果,发送BGP更新处理系统210可以生成要被发送的BGP更新消息,如图2中TX BGP更新消息220所示。可选地,在不同的实施例中,各种库可与发送BGP更新处理系统210相关联,这些库包括但不限于IP地址前缀库230和映射库240。
图3是根据本公开的一些实施例的示例网络环境300的简化示意图,该示例网络环境300包括用于处理所接收的BGP更新消息的接收BGP更新处理系统310。如图3中所示的RXBGP更新消息320,接收BGP更新处理系统310可以接收(例如,由图2中所示的发送BGP更新处理系统210发送或者经过发送BGP更新处理系统210处理之后的)BGP更新消息,并且根据本文所描述的功能来处理BGP更新消息。为此,类似于发送BGP更新处理系统210,在至少一个实施例中,接收BGP更新处理系统310包括至少一个处理器312和至少一个存储器元件314,以及用来实现其所期望的功能的任意其他适当的硬件和/或软件。接收BGP更新处理系统310可被认为包括映射模块316,该映射模块316被配置为实施本文所描述的与如下各项相关的功能:将集合标识符映射到路径属性集合的先前处理结果和/或路径属性集合本身。接收BGP更新处理系统310还可被认为包括更新处理模块318,该更新处理模块318被配置为实施本文所描述的与处理所接收的BGP更新消息的路径属性有关的功能。接收BGP更新处理系统310还可包括实现与其他设备(例如,图1中所示的端点130或图2中所示的发送BGP更新处理系统210)进行通信的接口(图3中未示出)。可选地,在不同的实施例中,各种库可与接收BGP更新处理系统310相关联,这些库包括但不限于先前处理结果库330和映射库340。
BGP更新处理系统210和/或310可以与网络环境100中的一个或多个网络元件通信,或者被实现为网络环境100中的一个或多个网络元件通信,所述一个或多个网络元件通信例如可以是一个或多个BGP扬声器/边缘路由器。如本文所使用的,术语“网络元件”指的是包括服务器、处理器、模块、路由器、交换机、电缆盒、网关、网桥、负载均衡器、防火墙、内联服务节点、代理、或可操作以在网络环境中交换信息的任意其他适当的设备、组件、元件或专用装置。该网络元件可以包括促进其操作的任意适当的硬件、软件、组件、模块或接口。其可以包括允许有效交换数据或信息的适当的算法和通信协议。
在一种实现方式中,BGP更新处理系统210和/或310可以包括实现(或促进)本文所概述的对BGP更新消息进行处理的软件。应注意,在一个示例中,BGP更新处理系统210和310可具有内部结构(例如,(一个或多个)处理器、(一个或多个)存储器元件、(一个或多个)网络接口卡等),用于促进本文所描述的一些操作。在其他实施例中,与如本文所概述的处理BGP更新消息相关的活动可以在BGP更新处理系统210和/或310的外部被执行,或者可被包括在一些其他网络元件中以实现所期望的功能。替代地,BGP更新处理系统210和/或310可以包括软件(或往复式软件),该软件可以与其他网络元件协调以实现本文所概述的操作。在另外的其他实施例中,一个或多个设备可以包括促进其操作的任意适当的算法、硬件、软件、固件、组件、模块或接口。
图2和图3的元件可通过一个或多个接口、采用任意适当的连接(有线或无线)来彼此耦合以及被耦合至图1中所示的元件,其中所述连接为网络通信提供可行路径。此外,基于特定的配置需求,这些元件中的一个或多个可被组合、分割、或从架构中移除。网络环境200和300可以包括能够进行TCP/IP通信以在网络中发送和/或接收分组的配置。
图2和图3中所示的库可以包括物理或逻辑存储元件,例如,具有用于存储电子数据的一个或多个盘和/或数据库的存储元件。这些库中的数据可至少被图2和图3中所示的BGP更新处理系统来访问和修改。在其他实施例中,数据还可被其他系统和网络元件访问。
图4是根据本公开的一些实施例,用于准备BGP更新消息以进行发送的方法流程图。本领域技术人员将认识到尽管方法400以及分别在图5和图6中示出的方法500和600是参照图1-3中所示的网络环境的元件来描述的,但被配置为以任意顺序来实施这些方法中的任意方法的步骤的任意系统都属于本公开的范围之内。
发送方法可被认为开始于步骤402,其中,发送BGP更新处理系统210(例如,分组模块216)标识与两个或更多共同路径属性集合相关联的一组IP地址前缀。被分析的IP地址前缀中的全部或者一部分可从IP地址前缀库230中获得。
在一些实施例中,除了被标识为共同的路径属性之外,这些IP地址前缀中的全部或一些还与其他路径属性相关联。例如,考虑IP地址前缀IP1与路径属性A、B、C、D、E和F相关联,而IP地址前缀IP2与路径属性A、B和C相关联。这两个IP地址前缀可被认为是与共同属性集合相关联的一组前缀,在该示例中,共同属性是属性A、B和C。
继续该示例,为了解释图4中的步骤,考虑当路径属性A、B和C的集合尚未被分配本文所使用的唯一标识符时进行方法400。在这样的情形下,方法400行进至步骤404,其中,发送BGP更新处理系统210(例如,分组模块216)向在步骤402中所标识的共同路径属性集合(即,向属性A、B和C的集合)分配某唯一标识符。被分配给每个新的集合的标识符必须是唯一的,从而能够区分不同的集合。例如,考虑标识符ID1被分配给路径属性A、B和C的集合。
在步骤406中,发送BGP更新处理系统210(例如,分组模块216)添加在步骤402中所标识的共同路径属性集合至在步骤404中所分配的标识符的映射。这样的映射例如可以被存储在映射库240中。
在步骤408中,发送BGP更新处理系统210(例如,更新准备模块218)准备第一BGP更新消息以进行发送,该第一BGP更新消息将携带针对步骤402中所标识的IP地址前缀中的一个或多个IP地址前缀的路由公告。为此,发送BGP更新处理系统210将步骤402中所标识的共同路径属性集合、发送BGP更新处理系统210在步骤404中分配给该共同路径属性集合的标识符、以及该标识符指代更新消息中的哪些路径属性的指示包括在第一更新消息中。提供这样的指示的一种方法例如包括在集合中列出路径属性的类型代码。
继续上述示例,考虑在步骤408中,准备了针对IP1的BGP更新消息。地址IP1与路径属性A-F相关联,目前在该示例中,其中属性A-C已被分配给由标识符ID1所标识的集合。针对IP1的BGP更新消息然后将包括路径属性A-F、标识符ID1以及ID1被分配给属性A-C的集合的指示。
由于IP地址前缀IP1和IP2在其路径属性方面不完全重叠(即,它们具有不同的路径属性),因此它们的路由信息不能被提供在单个更新消息中。因此,针对IP2的路由信息将被在独立的BGP更新消息中发送,例如,在步骤410的消息中发送。
在步骤410中,发送BGP更新处理系统210(例如,更新准备模块218)准备第二BGP更新消息以进行发送,该第二BGP更新消息将携带针对步骤402中所标识的IP地址前缀中的一个或多个IP地址前缀的路由公告。这次,发送BGP更新处理系统210可以跳过将步骤402中所标识的实际的共同路径属性集合包括在第二更新消息中,而是仅仅提供发送BGP更新处理系统210在步骤404中分配给该共同路径属性集合的标识符。
继续上述示例,由于已经在步骤408中准备了针对IP1的BGP更新消息,因此在步骤410中,准备针对IP2的BGP更新消息。地址IP2与路径属性A-C相关联,在该示例中,其中全部路径属性A-C被分配给由标识符ID1所标识的集合。针对IP2的BGP更新消息然后可包括标识符ID1,来代替(即,而非)包括路径属性A-C。
在其他示例中,BGP更新消息可以包括多个集合标识符以及集合标识符的组合,而不复制相关联的路径属性和与相关联的共同路径属性一起发送的集合标识符(例如,如在步骤408中针对第一BGP更新消息所进行的操作)。例如,考虑另一IP地址前缀,IP3与属性A、B、C、G、H和I相关联,其中,属性A、B和C已被分配给集合ID1,属性G、H和I已被分配给集合ID2。在这样的情形中,如果类似于步骤406中所发送的BGP更新消息的BGP更新消息针对属性G-I而被发送,则携带针对IP3的路由公告的BGP更新消息可包括集合标识符ID1和ID2,而非属性A-I。否则(即,如果属性G-I仅被分配给集合ID2,并且接收BGP更新处理系统310仍需要被告知该分配),携带针对IP3的路由公告的BGP更新消息可包括集合标识符ID1来代替属性A-C,并且除了包括属性G、H和I之外,还包括集合标识符ID2。
在实施例中,一旦准备好用于发送的BGP更新消息,发送BGP更新处理系统210准备发送BGP更新消息可以作为发送这些消息的触发。
将接收BGP更新处理系统310配置为能够正确解释这样的更新消息在计算资源、网络资源以及存储资源方面产生优化。在实施例中,集合的标识符可以新的路径属性来被包括在BGP更新消息中,本文中称为SET_ID属性。在实施例中,长度和属性值将是可变的,因为其将依赖于哪一个或者哪些集合标识符需要被包括在特定BGP更新消息中。SET_ID属性可被包括在BGP更新消息中作为上述可选的非可递性属性之一。以该方式提供标识符确保接收BGP更新处理系统310将能够针对更新消息中所标识的一个或多个IP地址前缀标识全部路径属性。此外,在实施例中,支持SET_ID属性的BGP扬声器(即,诸如发送BGP更新处理系统210之类的系统)可被配置为使用(一个或多个)能力公告过程(例如,BGP-4,RFC5492中所描述的能力公告),从而确定扬声器是否能够发送和/或接收SET_ID属性。在实施例中,这样的能力不需要超出确认支持的更多信息,因此可通过使用能力代码和能力长度零来公告。
技术人员将认识到,BGP能力代码指示BGP对等方支持什么能力。在实施例中,这样的支持可以通过包括本文所描述的针对SET_ID属性的能力代码来指示。能力代码本身将指示对本文所描述的SET_ID属性的支持,因此,无需提供相关联的值,从而允许能力长度(指示该值将多长)被设置为零。
在实施例中,SET_ID属性的长度(例如,4字节或八位字节)和属性值(即,编码的一个或多个集合ID值)将是可变的,因为其将依赖于哪个或哪些集合标识符需要被包括在特定BGP更新消息中。当发送共享路径属性的共同集合的多个更新消息时,可以使用这样的属性SET_ID。
尽管BGP更新消息被描述为“第一”和“第二”,并且与它们的生成相关的方法步骤是从第一至第二按序说明的,但对这样的BGP更新消息的任意准备顺序甚至实际的发送顺序属于本公开的范围之内。只要至少一个BGP更新消息不仅包括集合标识符,还包括标识符被分配给的集合的实际路径要素(以及其对应关系的指示),那么可发送针对与这样的集合的路径要素相关联的IP地址前缀的所有其他BGP更新消息,仅包括集合标识符,不包括集合的实际路径属性。
另外,应当注意的是,尽管本文所描述的技术描述了在一些BGP更新消息中不包括共同路径属性(即,包括集合标识符来代替的更新消息),只要这些路径属性被包括在至少一个其他更新消息中,但在一些实施例中,在其他BGP更新消息中仍包括共同路径属性以及集合标识符是有利的,例如,出于冗余和验证的原因。尽管这样的实施例将不会使得BGP更新所产生的控制平面流量减少,但相对于目前的技术水平,在能够在发送侧和/或接收侧重复使用共同路径属性集合的处理结果方面,它们仍会提供优势。
另外,在一些实施例中,单个BGP更新消息可以包含在其中定义和引用的集合标识符。例如,标识符可以指向之后自己重复的属性集合。在该情形中,在实施例中,接收BGP更新处理系统可被配置为处理任何新的标识符,并且在处理对第一组属性的任何引用之前将处理第一组属性的结果存储在适当的存储设备中。
在实施例中,发送BGP更新处理系统210可被配置为维护(例如,生成、存储和/或更新)映射库240,映射库240包含标识符与两个或更多个共同路径属性的相应集合的关联。在这样的映射中,在标识符与这些属性集合之间存在一对一的对应关系,其中,每个标识符被分配给一个集合,反之亦然。
在实施例中,发送BGP更新处理系统210可被配置为:当创建新的集合并且如参照图4所描述的准备且发送BGP更新消息时,动态更新映射库240。然而,在这样的实施例中,在接收到发送针对新的IP地址前缀(或者多个新的IP地址前缀)的路由公告的请求时,可能期望做额外的检查。这样的额外检查在图5中示出,图5根据本公开的一些实施例,描绘了用于准备BGP更新消息以进行发送的另一方法500的流程图。
在步骤502,发送BGP更新处理系统210(例如,分组模块216)接收针对新的IP地址发送路由公告(即,准备另一BGP更新消息)的新的请求。响应于该请求,在步骤504,发送BGP更新处理系统210(例如,分组模块216)步骤为执行搜索(例如,相似性搜索),以确定与新的IP地址相关联的两个或更多个路径属性是否与已经创建的集合(例如,映射库240中所存储的集合)中的任何路径属性相匹配。在一个实施例中,这样的搜索可以包括:比较集合中所包括的属性类型的有序集合,之后验证内容。替换地或附加地,可以使用模式搜索,例如,Knuth-Morris-Pratt(KMP)算法。在实施例中,映射库可被组织为优化对特定搜索方法(或多种方法)的实现方式。
在步骤506,发送BGP更新处理系统210确定步骤504的搜索是否揭露任何匹配。
如果识别出多于一个匹配,则发送BGP更新处理系统210可被配置为:基于某种预定标准来选择一个匹配(例如,选择覆盖最大数目的共同路径属性的集合,或者选择例如当接收BGP更新消息时具有与之相关联的最好处理的集合)。例如,考虑新的IP地址前缀与路径属性A、B、C、D、E和F相关联,映射库包含对包括路径属性A、B和C的一个集合(例如,集合ID1)和包括路径属性A、B、C、D和E的另一集合(例如,集合ID2)的引用。发送BGP更新处理系统210然后可被配置为选择集合ID2,因为其映射到较多数目的路径属性。
在实施例中,已创建的集合可以包括关于集合的层级的指示。作为确定是否存在匹配(步骤506)的一部分,这样的实现方式在两个或更多个路径属性碰巧与多于一个集合相匹配时,尤其有用。在这样的实施例中,发送BGP更新处理系统210可被配置为基于(例如,在映射库240中)所指示的集合的层级顺序来选择一个匹配。例如,考虑新的IP地址前缀与路径属性A、B、C、D、E和F相关联,并且映射库包含对包括路径属性A、B和C的一个集合(例如,集合ID1)和包括路径属性A、B和E的另一集合(例如,集合ID2)的引用。发送BGP更新处理系统210然后可被配置为选择集合ID1,因为在层级顺序方面,指示集合ID1高于集合ID2(例如,因为集合ID1的路径属性的处理更加计算密集,因此,最好能够重复使用该再处理的结果)。
一旦选择了一个或多个匹配集合,方法行进到步骤508,其中发送BGP更新处理系统210(例如,更新准备模块218)准备BGP更新消息以进行发送,该BGP更新消息将携带针对步骤502中所识别的新的IP地址前缀的路由公告。这次,类似于上述步骤410,发送BGP更新处理系统210可以跳过将如步骤506的匹配所识别的实际的共同路径属性集合包括在该BGP更新消息中,并且仅提供从映射库240中获得的匹配集合的标识符。
如果步骤506中没有识别出匹配,则发送BGP更新处理系统210可被配置为继续并且准备BGP更新消息,该BGP更新消息仅携带针对步骤502的新的IP地址前缀的路由信息(图5中未示出)。替代地,如图5中的步骤510所示,发送BGP更新处理系统210可被配置为确定是否存在具有与步骤502的新的IP地址前缀相关联的共同路径属性的任何其他IP地址前缀。如果是,则该方法行进到图4所示的方法400,其中,新的集合被创建并被添加到映射库240。
图6是根据本公开的一些实施例,用于处理所接收的BGP更新消息的方法600的流程图。方法600补充上述用于准备和发送BGP更新消息的方法,因为该方法涉及在接收侧处理这些BGP更新消息。因此,该方法参照上述IP1和IP2以及针对这些IP地址前缀而发送的第一和第二BGP消息的示例来解释。
方法600可以开始于步骤602,其中,接收BGP更新处理系统310(例如,映射模块316)接收上述第一BGP更新消息(在步骤408中准备的BGP更新消息)。由于该消息不包括之前已被接收BGP更新处理系统310处理的任何共同路径属性集合(如上所述,第一BGP更新消息中首次提供集合标识符ID1),因此,接收BGP更新处理系统310(例如,更新处理模块318)随后通过处理路径属性(如本领域已知)来处理第一BGP消息(步骤604)。然而,这次,接收BGP更新处理系统310被配置为将路径属性集合的处理结果隔离,而该路径属性集合的集合标识符包括于第一更新消息中。例如,如上所述,接收BGP更新处理系统310标识和隔离被分配至集合标识符ID1的属性A、B和C的处理结果。接收BGP更新处理系统310(例如,映射模块)然后被配置为通过将处理结果映射至相应的集合标识符,来将这样的属性集合的处理结果存储于例如映射库340和/或先前处理库330中。在实施例中,接收BGP更新处理系统310可被配置为:即使相关的NLRI被移除(例如,直到会话停止(down)和/或重置),也将这样的映射保留在映射库340和/或先前处理库330中。
本领域技术人员将认识到,明确涉及到“处理”路径属性集合的内容通常大部分情况是特定实现的。在实施例中,处理属性路径集合可以包括:系统最低限度将(一个或多个)路径属性从传入数据包复制到存储器中(数据包解构);将有效负荷递送至BGP应用的TCP栈,BGP应用随后必须进行该处理。在实施例中,处理可以涉及对属性标志和类型代码的操纵手段、触发响应的协议特定响应。由于本文所描述的路径属性集合可以具有不同长度,因此网络越复杂,属性集合也将可能越复杂。在实施例中,处理路径属性集合可以包括例如核查所附属性的总长度。附加地或替换地,对于每个属性,处理可以包括验证类型代码并且核查相对于属性标志集合的类型代码。另外,处理可以包括:针对每个属性的长度和/或值在更新的上下文中是否适当且有效,来核查每个属性的特定长度和/或值。
在步骤608,接收BGP更新处理系统310接收上述第二BGP更新消息(在步骤410中所准备的BGP更新消息)。接收BGP更新处理系统310将(例如,通过咨询映射库340)识别第二BGP更新消息包含先前被处理的集合的集合标识符,并且将能够(例如,从先前处理库330)取回由第二BGP更新消息中包括的标识符所标识的集合的较早处理的结果(步骤610)。在步骤612,接收BGP更新处理系统310(例如,更新处理模块318)通过重复使用所取回的针对第一BGP更新消息执行的处理结果来处理第二BGP更新消息。换言之,不必针对第二BGP更新消息中所标识的IP地址前缀而再次处理路径属性A-C。而是可再次使用针对第一BGP更新消息执行的处理的结果(部分结果或全部结果)。
包含多于一个集合标识符的BGP更新消息和/或集合标识符和实际路径属性的组合将被类似地处理。
BGPSEC实现方式
如上所述,本文针对BGP和BGP更新消息所描述的实施例等同地适用于BGPSEC和BGPSEC更新消息。尽管本领域技术人员易于认识到在BGPSEC上下文中实现本文所描述的教导所需的适应版本,但下文提供了一些非限制性可能的实现方式。
在实施例中,BGPSEC所需的本地关键字库对于发送BGP更新处理系统210和接收BGP更新处理系统310而言是可用的。这样的库可包含本地密码关键字和全局关键字,该本地密码关键字用于签署(sign)BGP更新,全局关键字用于验证所接收到的签名。在实施例中,代替或者处理存储这些关键字中的至少一些关键字,可以存储用于生成关键字的种子数据(例如,一个或多个种子值)。
在实施例中,BGP更新处理系统210和/或310可以包括用来实现密码签署并且解析BGPSEC特定属性的软件和/或硬件。例如,发送处理系统可被配置为创建签名_块(Signature_Block)以将其包括在BGPSEC路径属性中。接收处理系统可被配置为核查签名的有效性。
在实施例中,例如参照图4所描述的准备BGP更新可以包括:考虑与属性的共同集合相关联的IP前缀,而忽略BGPSEC路径属性。在一些实现方式中,用BGPSEC路径属性代替AS_PATH属性可能是必须的,这还使得在搜索属性的共同集合时忽略AS_PATH属性。
在实施例中,接收BGPSEC更新的接收BGP更新处理系统310(与600相关)可被配置为:如果BGPSEC路径属性是有效的,则仅接受路由信息。然而,接收BGP更新处理系统310可被配置为考虑更新中所包括的SET_ID的先前处理结果,因为其可以节省昂贵的密码处理。
其他路由协议
在某些实现方式中,本文所描述的技术可以应用于其他路由协议。例如,IS-IS(中间系统到中间系统)是IGP,其在AS内分发路由信息。IS-IS使用链路状态分组(LSP)来描述AS内的链路状态。每个LSP包含关于网络中的节点以及其接口的信息,该信息可以包括每个节点的描述和功能。由于节点上的多个链路可以共享类似的描述和/或功能,因此LSP可以携带采用类型长度值(TLV)属性方式的一些冗余信息。对于这些TLV属性而言,在给定的LSP中重复自身是常见的。
本文所提供的针对BGP/BGPSEC的全部教导等同地适用于其他路由协议,例如,IS-IS。尽管本领域技术人员易于认识到在其他路由协议的上下文中实现本文所描述的教导所需的适应版本,但下文提供了一些与IS-IS有关的非限制性可能的实现方式。
在一些实施例中,重复的TLV属性可被分组以形成集合,如本文针对将BGP路径属性分组到集合中所描述的那样。
在一些实施例中,类似的链路描述和/或功能的结果将使得TLV属性集合在LSP中重复自身。
上述机制可被用来在单个LSP中描述和引用单个集合或多个集合。
在该种实现方式中,接收侧可被配置为:在处理引用集合的SET-ID(即,代替TLV属性本身,SET-ID被包括在LSP中)之前,首先处理描述集合的SET-ID属性并且存储结果。
变体和实现方式
在某些示例实现方式中,本文所描述与处理BGP更新消息有关的功能可由编码在一个或多个非暂态有形介质中的逻辑(例如,专用集成电路(ASIC)中提供的嵌入式逻辑、数字信号处理器(DSP)指令、要由一个或多个处理器或者其他相似机器执行的软件(可能包括目标代码和源代码)等)来实现。在这些实例的一些实例中,一个或多个存储器元件可以存储用于本文所描述的操作的数据。这包括能够存储指令(例如,软件、代码等)的存储器元件,其中指令被执行以实施本说明书中所描述的活动。存储器元件还被配置为存储诸如映射数据库之类的数据库,以使能本文所公开的功能。处理器可以运行与数据相关联的任何类型的指令,以实现本说明书中所详述的操作。在一个示例中,处理器可以将元件或物品(例如,数据)从一个状态或事物转换到另一状态或事物。在另一示例中,本文所概述的活动可利用固定逻辑或可编程逻辑(例如,处理器运行的软件/计算机指令)来实现,并且本文所标识的元件可以是包括数字逻辑、软件、代码、电子指令或其任意适当组合的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPROM)、电可擦除可编程ROM(EEPROM))或者ASIC中的一些类型。
如本文所概述的,这些元件(例如,网络元件)中的任意元件可以包括存储器元件,用于存储要用来实现本文所描述的与处理BGP更新消息有关的功能的信息。此外,这些网络元件中的每一个可以包括处理器,其可运行软件或算法以执行本说明书所讨论的异常评估功能。这些设备还可以将信息保存在任意适当的存储器元件(随机存取存储器(RAM)、只读存储器(ROM)、EPROM、EEPROM、ASIC等)、软件、硬件中,或者适当地且基于特定需求,被保存在任意其他适当的组件、设备、元件或对象中。本文所讨论的存储器项中的任一者应被解释为被包括在广义“存储器元件”之内。类似地,本说明书中所描述的任意可能的处理元件、模块以及机器应被解释为被包括在广义“处理器”中。每个网络元件还可以包括在网络环境中用于接收、发送和/或以另外方式传输数据或信息的适当接口。
此外,应注意的是,在上文所提供的示例下,可以针对两个、三个或四个网络元件来描述交互。然而,这仅出于清楚和示例的目的来进行。在某些情形中,通过仅参照有限数目的网络元件来描述给定一组流程的一个或多个功能较为容易。应当理解,本文所描述的系统易于扩缩并且可以容纳大量组件以及更复杂/精细的安排和配置。相应地,所提供的示例在可能用于大量其他架构或实现方式时,不应限制处理BGP更新消息的范围或者抑制处理BGP更新消息的广义教导。
还应注意的是,图4-图6中的步骤仅说明可由本文所描述的(一个或多个)BGP更新处理系统执行或者在(一个或多个)BGP更新处理系统内执行的一些可能场景。在不背离本公开的范围的情形下,这些步骤中的一些步骤可被适当删除或移动,或者这些步骤可被大幅修改或更改。此外,许多这些操作被描述为与一个或多个其他操作连续、同时或并行地执行。然而,这些操作的时序可大幅改变。出于示例和讨论的目的来提供前述操作流程。(一个或多个)BGP更新处理系统提供大量的灵活性,这是因为在不背离本公开的教导的情形下,可以提供任何适当的安排、时间、配置、以及时序机制。
还应注意的是,许多先前讨论可以暗含单个客户端-服务器关系。实际上,在本公开的某些实现方式中,在递送层中存在大量服务器。而且,本公开可以易于扩展以应用到架构中进一步上游的中间服务器,但这不一定与经过“n”个服务器的“m”个客户端相关联。任何这样的置换、扩缩以及配置清楚地处于本公开的广义范围之内。
本领域技术人员可查明大量其他改变、替换、变更、更改以及修改,并且意图在于本公开包括落入所附权利要求范围的所有这样的改变、替换、变更、更改以及修改。为了协助美国专利商标局(USPTO)以及针对本申请所发布的任何专利的任何读者理解所附权利要求,申请人期望注意,申请人:a)不期望任何所附权利要求援引其递交日期存在的U.S.C.35部分112的段落六(6),除非在特定权利要求中具体使用了词语“用于…的装置”或“用于…的步骤”;并且(b)不期望通过说明书中的任何陈述以所附权利要求中未反映的任何方式来限制本公开。
尽管采用在USPTO面前使用的风格,以单引用格式来呈现权利要求,但应当理解的是,任何权利要求可以引用相同类型的任意前述权利要求并且与相同类型的任意前述权利要求相结合,除非清楚这在技术上是不可行的。
Claims (14)
1.一种用于准备边界网关协议(BGP)更新消息以进行发送的方法,该方法包括:
标识与两个或更多个共同路径属性的第一集合相关联的第一多个互联网协议(IP)地址前缀;
向所述两个或更多个共同路径属性的第一集合分配第一标识符;
通过除了所述两个或更多个共同路径属性的第一集合之外,还将所述第一标识符包括在第一BGP更新消息中,来准备所述第一BGP更新消息;
通过将所述第一标识符而非所述两个或更多个共同路径属性的第一集合包括在第二BGP更新消息中,来准备所述第二BGP更新消息;
标识与两个或更多个共同路径属性的第二集合相关联的第二多个IP地址前缀;
向所述两个或更多个共同路径属性的第二集合分配第二标识符;
通过除了所述两个或更多个共同路径属性的第二集合之外,还将所述第二标识符包括在第三BGP更新消息中,来准备所述第三BGP更新消息;
通过将所述第二标识符而非所述两个或更多个共同路径属性的第二集合包括在第四BGP更新消息中,来准备所述第四BGP更新消息;以及
通过将所述第一标识符而非所述两个或更多个共同路径属性的第一集合包括在第五BGP更新消息中,并且还将所述第二标识符而非所述两个或更多个共同路径属性的第二集合包括在所述第五BGP更新消息中,来准备所述第五BGP更新消息。
2.如权利要求1所述的方法,还包括:
维护指示标识符与两个或更多个共同路径属性的相应集合的关联的映射。
3.如权利要求2所述的方法,还包括:
响应于接收针对与多个路径属性相关联的另一IP地址前缀准备另一BGP更新消息的指示,使用所述映射来确定所述多个路径属性中的两个或更多个路径属性是否被分配有相应的标识符;以及
当得到肯定确定时,通过将所述相应标识符而非所述多个路径属性中的两个或更多个路径属性包括在另一BGP更新消息中,来准备所述另一BGP更新消息。
4.如权利要求1所述的方法,其中,所述第一标识符被包括在集合标识符Set_ID属性中,Set_ID属性包括标识符值字段,该标识符值字段编码共同路径属性的相应一个或多个集合的一个或多个标识符。
5.如权利要求4所述的方法,其中,所述Set_ID属性是BGP的可选非可递性属性。
6.一种用于准备边界网关协议(BGP)更新消息以进行发送的系统,该系统包括:
至少一个存储器,该至少一个存储器被配置为存储计算机可执行指令,以及
至少一个处理器,该至少一个处理器被耦合于所述至少一个存储器,并且被配置为当运行所述指令时:
标识与两个或更多个共同路径属性的第一集合相关联的第一多个互联网协议(IP)地址前缀;
向所述两个或更多个共同路径属性的第一集合分配第一标识符;
通过除了所述两个或更多个共同路径属性的第一集合之外,还将所述第一标识符包括在第一BGP更新消息中,来准备所述第一BGP更新消息;
通过将所述第一标识符而非所述两个或更多个共同路径属性的第一集合包括在第二BGP更新消息中,来准备所述第二BGP更新消息;
标识与两个或更多个共同路径属性的第二集合相关联的第二多个IP地址前缀;
向所述两个或更多个共同路径属性的第二集合分配第二标识符;
通过除了所述两个或更多个共同路径属性的第二集合之外,还将所述第二标识符包括在第三BGP更新消息中,来准备所述第三BGP更新消息;
通过将所述第二标识符而非所述两个或更多个共同路径属性的第二集合包括在第四BGP更新消息中,来准备所述第四BGP更新消息;以及
通过将所述第一标识符而非所述两个或更多个共同路径属性的第一集合包括在第五BGP更新消息中,并且还将所述第二标识符而非所述两个或更多个共同路径属性的第二集合包括在所述第五BGP更新消息中,来准备所述第五BGP更新消息。
7.如权利要求6所述的系统,其中,所述至少一个处理器还被配置为:
维护指示标识符与两个或更多个共同路径属性的相应集合的关联的映射。
8.如权利要求7所述的系统,其中,所述至少一个处理器还被配置为:
响应于接收针对与多个路径属性相关联的另一IP地址前缀准备另一BGP更新消息的指示,使用所述映射来确定所述多个路径属性中的两个或更多个路径属性是否被分配有相应的标识符;以及
当得到肯定确定时,通过将所述相应标识符而非所述多个路径属性中的两个或更多个路径属性包括在另一BGP更新消息中,来准备所述另一BGP更新消息。
9.如权利要求6所述的系统,其中,所述第一标识符被包括在集合标识符Set_ID属性中,Set_ID属性包括标识符值字段,该标识符值字段编码共同路径属性的相应一个或多个集合的一个或多个标识符。
10.如权利要求9所述的系统,其中,所述Set_ID属性是BGP的可选非可递性属性。
11.如权利要求6所述的系统,其中,所述BGP更新消息包括BGPSEC更新消息。
12.一种或多种计算机可读存储介质,其编码有软件,该软件包括用于准备边界网关协议(BGP)更新消息以进行发送的计算机可执行指令,当所述软件被执行时,可操作以:
标识与两个或更多个共同路径属性的第一集合相关联的第一多个互联网协议(IP)地址前缀;
向所述两个或更多个共同路径属性的第一集合分配第一标识符;
通过除了所述两个或更多个共同路径属性的第一集合之外,还将所述第一标识符包括在第一BGP更新消息中,来准备所述第一BGP更新消息;
通过将所述第一标识符而非所述两个或更多个共同路径属性的第一集合包括在第二BGP更新消息中,来准备所述第二BGP更新消息;
标识与两个或更多个共同路径属性的第二集合相关联的第二多个IP地址前缀;
向所述两个或更多个共同路径属性的第二集合分配第二标识符;
通过除了所述两个或更多个共同路径属性的第二集合之外,还将所述第二标识符包括在第三BGP更新消息中,来准备所述第三BGP更新消息;
通过将所述第二标识符而非所述两个或更多个共同路径属性的第二集合包括在第四BGP更新消息中,来准备所述第四BGP更新消息;以及
通过将所述第一标识符而非所述两个或更多个共同路径属性的第一集合包括在第五BGP更新消息中,并且还将所述第二标识符而非所述两个或更多个共同路径属性的第二集合包括在所述第五BGP更新消息中,来准备所述第五BGP更新消息。
13.如权利要求12所述的一种或多种计算机可读存储介质,其中,所述计算机可执行指令还可操作以:
维护指示标识符与两个或更多个共同路径属性的相应集合的关联的映射。
14.如权利要求13所述的一种或多种计算机可读存储介质,其中,所述计算机可执行指令还可操作以:
响应于接收针对与多个路径属性相关联的另一IP地址前缀准备另一BGP更新消息的指示,使用所述映射来确定所述多个路径属性中的两个或更多个路径属性是否被分配有相应的标识符;以及
当得到肯定确定时,通过将所述相应标识符而非所述多个路径属性中的两个或更多个路径属性包括在另一BGP更新消息中,来准备所述另一BGP更新消息。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/804,069 | 2015-07-20 | ||
US14/804,069 US9843498B2 (en) | 2015-07-20 | 2015-07-20 | Attribute set—ID in border gateway protocol |
US14/812,239 | 2015-07-29 | ||
US14/812,239 US9942145B2 (en) | 2015-07-20 | 2015-07-29 | Attribute SET_ID in border gateway protocol |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106375221A CN106375221A (zh) | 2017-02-01 |
CN106375221B true CN106375221B (zh) | 2020-06-09 |
Family
ID=56740802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610575482.2A Expired - Fee Related CN106375221B (zh) | 2015-07-20 | 2016-07-19 | 边界网关协议中的属性set_id |
Country Status (3)
Country | Link |
---|---|
US (1) | US9942145B2 (zh) |
EP (1) | EP3122007B1 (zh) |
CN (1) | CN106375221B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10116593B1 (en) * | 2016-09-23 | 2018-10-30 | Amazon Technologies, Inc. | Transmission and storage of routing path information and routing topology information using a single routing protocol |
US10432503B1 (en) * | 2017-09-29 | 2019-10-01 | Amazon Technologies, Inc. | Distribution of prefixes in a network |
US10893022B1 (en) * | 2018-12-20 | 2021-01-12 | Equinix, Inc. | Routing protocol security using a distributed ledger |
US10756826B1 (en) * | 2019-04-23 | 2020-08-25 | Red Hat, Inc. | Network optimization using quantum communication drivers |
US11133823B2 (en) | 2019-05-16 | 2021-09-28 | Red Hat, Inc. | Quantum compression service using superdense encoding |
CN112702263B (zh) * | 2019-10-22 | 2023-12-19 | 华为技术有限公司 | 转发报文的方法及装置 |
US12113770B2 (en) * | 2020-01-08 | 2024-10-08 | Cisco Technology, Inc. | DHCP snooping with host mobility |
EP3941006B1 (en) * | 2020-07-16 | 2022-10-26 | Anapaya Systems AG | System and method for carrying and optimizing internet traffic over a source-selected path routing network |
US12120128B1 (en) | 2020-07-31 | 2024-10-15 | Equinix, Inc. | Route and packet flow evaluation on a cloud exchange |
US11929906B2 (en) | 2021-07-29 | 2024-03-12 | Cisco Technology, Inc. | Source-provisioned services infrastructure |
CN114257400A (zh) * | 2021-11-11 | 2022-03-29 | 中国南方电网有限责任公司 | 基于标识算法的信息获取方法、装置和计算机设备 |
US20240073135A1 (en) * | 2022-08-26 | 2024-02-29 | Ciena Corporation | BGP Segment Routing optimization by packing multiple prefixes in an update |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2693712A1 (en) * | 2012-08-03 | 2014-02-05 | Juniper Networks, Inc. | Drop sensitive prefix (bgp path) attribute modification |
CN104243303A (zh) * | 2014-09-25 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种自治系统环路组网中发送更新报文的方法和装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571241B1 (en) * | 2003-07-09 | 2009-08-04 | Cisco Technology, Inc. | Method and apparatus for advertising update messages to peers and peer groups in a border gateway protocol process |
US8320378B2 (en) * | 2003-07-09 | 2012-11-27 | Cisco Technology, Inc. | Method and apparatus for advertising update messages to peers and peer groups in a border gateway protocol process |
US7558877B1 (en) | 2003-09-12 | 2009-07-07 | Nortel Networks Limited | Self-configuring method and apparatus for providing secure communication between members of a group |
US7590119B2 (en) * | 2005-01-27 | 2009-09-15 | Cisco Technology, Inc. | Method and apparatus for context-based prefix updates in border gateway protocol |
US7630392B2 (en) * | 2005-05-31 | 2009-12-08 | Cisco Technology, Inc. | Multi-homing using controlled route leakage at a backup service provider |
CN100550859C (zh) * | 2007-11-14 | 2009-10-14 | 中国科学院计算技术研究所 | 一种自治系统级网络路由拓扑构建方法 |
US8700801B2 (en) * | 2010-12-01 | 2014-04-15 | Juniper Networks, Inc. | Dynamically generating application-layer traffic optimization protocol maps |
US8924508B1 (en) * | 2011-12-30 | 2014-12-30 | Juniper Networks, Inc. | Advertising end-user reachability for content delivery across multiple autonomous systems |
CN102724117B (zh) | 2012-06-06 | 2015-09-30 | 华为技术有限公司 | 多协议标签交换流量工程隧道建立方法及设备 |
US9338080B2 (en) | 2012-09-14 | 2016-05-10 | Cisco Technology, Inc. | Performing offline BGP prefix origin and path validation at route reflectors |
CN103944822A (zh) * | 2013-01-21 | 2014-07-23 | 杭州华三通信技术有限公司 | Bgp路由通告方法和装置及bgp路由维护方法和装置 |
CN104052666B (zh) * | 2013-03-14 | 2018-05-11 | 新华三技术有限公司 | 实现主机路由可达的方法和装置 |
-
2015
- 2015-07-29 US US14/812,239 patent/US9942145B2/en active Active
-
2016
- 2016-07-13 EP EP16179188.4A patent/EP3122007B1/en not_active Not-in-force
- 2016-07-19 CN CN201610575482.2A patent/CN106375221B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2693712A1 (en) * | 2012-08-03 | 2014-02-05 | Juniper Networks, Inc. | Drop sensitive prefix (bgp path) attribute modification |
CN104243303A (zh) * | 2014-09-25 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种自治系统环路组网中发送更新报文的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3122007B1 (en) | 2019-01-09 |
EP3122007A1 (en) | 2017-01-25 |
CN106375221A (zh) | 2017-02-01 |
US20170026288A1 (en) | 2017-01-26 |
US9942145B2 (en) | 2018-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106375221B (zh) | 边界网关协议中的属性set_id | |
US12101296B2 (en) | Intelligent service layer for separating application from physical networks and extending service layer intelligence over IP across the internet, cloud, and edge networks | |
CN112583717B (zh) | 用于构建下一跳属性变化标签的方法、对等设备和介质 | |
US10164838B2 (en) | Seamless segment routing | |
US10749794B2 (en) | Enhanced error signaling and error handling in a network environment with segment routing | |
CN107409083B (zh) | 对具有evpn控制平面的vxlan中的bgp路由信息的可扩展处理 | |
US8972603B1 (en) | Managing encoded multi-part communications | |
US8094575B1 (en) | Routing protocol extension for network acceleration service-aware path selection within computer networks | |
US9118541B2 (en) | Interior gateway protocol summarization preserving internet protocol reachability information | |
EP3070895B1 (en) | Encapsulation method and system for flow identifier | |
EP2252011B1 (en) | Scalable routing policy construction using dynamic redefinition of routing preference value | |
US7969867B2 (en) | Backup route generation in border gateway protocol | |
US20090296579A1 (en) | Efficient convergence of grouped vpn prefixes | |
Krähenbühl et al. | Deployment and scalability of an inter-domain multi-path routing infrastructure | |
US9088498B2 (en) | Communication networks that provide a common transport domain for use by multiple service domains and methods and computer program products for using the same | |
JP2015159486A (ja) | 中継ノード及び経路制御方法 | |
CN112689976A (zh) | 扩展控制器的边界网关协议链路状态 | |
US9843498B2 (en) | Attribute set—ID in border gateway protocol | |
US20160285740A1 (en) | Transit domain control | |
US9665441B2 (en) | Method and system for packet redundancy removal | |
Tsumak | Securing BGP using blockchain technology | |
Marques et al. | Internal BGP as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs) | |
US11838201B1 (en) | Optimized protected segment-list determination for weighted SRLG TI-LFA protection | |
Coras et al. | Implementing a BGP-free ISP core with LISP | |
Laari | State-Efficient Forwarding with In-packet Bloom Filters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200609 Termination date: 20210719 |