CN101888334B - 利用路由优先级值的动态重定义的可扩展路由策略结构 - Google Patents
利用路由优先级值的动态重定义的可扩展路由策略结构 Download PDFInfo
- Publication number
- CN101888334B CN101888334B CN2010101782332A CN201010178233A CN101888334B CN 101888334 B CN101888334 B CN 101888334B CN 2010101782332 A CN2010101782332 A CN 2010101782332A CN 201010178233 A CN201010178233 A CN 201010178233A CN 101888334 B CN101888334 B CN 101888334B
- Authority
- CN
- China
- Prior art keywords
- local
- routing
- router
- value
- level value
- 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/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of metrics
-
- 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)
Abstract
总体上,本发明描述了动态地重新定义在路由解析过程中使用的优先级值的技术。诸如路由器的网络装置可以实现这些技术以在可用性方面对路由器进行改进。该路由器可以包括接口卡,用于接收描述多条路由中的一条或多条的消息。该路由器还可以包括控制单元,用于存储定义策略的数据。该策略可以包括路由器确定多条路由中的一个的优先级值所遵循的规则。该策略动态地将优先级值重新定义为两个或更多的比特字段,而不是将该优先级值看作整数值。该控制单元进一步根据该策略设置该本地优先级值的两个或更多比特字段中的每一个,并将这些路由中的至少一条与所确定的本地优先级值进行关联。
Description
技术领域
本发明涉及计算机网络,更具体地,涉及在计算机网络中路由数据。
背景技术
计算机网络是交换数据以及共享资源的多个互连计算机的集合。在基于数据包(packet)的网络(诸如互联网)中,计算装置通过将数据分成多个称为数据包的小块来传递数据。这些数据包各自通过网络从源装置路由到达目的装置。目的装置从这些数据包中提取数据,并将这些数据组合成其初始形式。将数据分成多个数据包使得源装置能够只重新发送在传输过程中可能丢失了的那些单个的数据包。
计算机网络中的一类计算机装置(称为路由器)负责通过计算机网络将各数据包从发出每个数据包的源装置路由到达所述数据包去往的目的装置。为了路由这些数据包,计算机网络中的每个路由器均可以存储描述通过网络从每个源装置到达每个目的装置的路由的信息。这些路由可以包括通过网络的多个“跳”,其中每条路由的第一跳用于标识源,其后的每条路由的一个或多个中间跳用于标识中间装置(诸如路由器),而每条路由的最后一跳用于标识目的地。这些路由器可以执行诸如边界网关协议(BGP)的路由协议来相互 交互路由,从而了解该计算机网络中的所有路由(其可以称为网络拓扑)。
在了解了该网络拓扑之后,每个路由器均可以对该网络拓扑进行解析来选择从给定源到达给定目的地的一条路径。通常,可以利用多条路由来从源到达给定目的地,且每个路由器均可以通过称为路由解析的处理来选择这些交叠路由中的一条。这些路由器可以执行由每个路由器执行的特定路由协议定义的默认形式的路由解析,或者备选地可以执行定制形式的路由解析。
为了定制路由解析处理,网络管理员或其他用户可以定义在路由解析过程中影响路由器的路由选择的策略。例如,管理员可以定义有关对等装置(peer)的信任等级的策略,其中,例如根据源是已经通过验证的或是未知或无效的来从该策略了解路由。又例如,为了考虑路由是否源自用户、对等装置或转接提供商,管理员可以定义强制进行路由决定的策略。因此,在进行路由解析时,通常强制路由器评估丰富且复杂的变量的集合以对路由进行排序和选择。尽管定制可以使网络管理员能够设计出路由器如何进行路由解析,例如,以满足特定的合同性商务协议或契约,但是定义和维护这些策略会进一步增加已经超负荷的网络管理员的负担。
尽管这些策略在如何匹配路由方面非常丰富,但是在确定分配给这些路由的优先级时却存在着挑战,这是因为他们最终都必须由路由协议进行排序。此外,许多传统的路由协议(例如,BGP)在允许根据从开始就未被考虑的任意标准进行任意排序方面不是很灵活。从而,试图定义路由的复杂排序的策略通常最终会迫使管理员来定义所有经过考虑的状态和变量的交叉乘积的穷举。这样的策略会变得非常大并且变得难以管理,尤其是从人为因素以及机器资源方面考虑。
例如,考虑以下伪码来定义基于一个数或变量V1~VN分配本地优先级值的策略(policy),其中每个变量都具有“M”个状态,S1~SM:
policy{
when[(V1==S1)&&(V2==S1)&&…(VN==S1)]then local_pref=1;
when[(V1==S2)&&(V2==S1)&&…(VN==S1)]then local_pref=2;
when[(V1==S2)&&(V2==S2)&&…(VN==S1)]then local_pref=3;
…
when[(V1==SM)&&(V2==SM)&&…(VN==SM)]then local_pref=N*M;}end policy;
考虑上述用于定义策略的伪码,需要定义多个本地优先级示例以说明变量V1~VN的状态S1~SM的每个变量组合。具体地,如上所述,该示例策略由用于定义等于变量数量N和状态数量M的交叉乘积的本地优先级值的多条线路组成。因此,这些类型的策略会变得非常大并且变得难以管理,尤其是从人为因素以及机器资源方面考虑。
发明内容
总体上,本发明描述了网络装置在进行路由解析过程中动态重新定义对路由进行排序所根据的优先级值的技术。即,路由协议优先级值可以集合多个用户定义的变量,并可以在路由解析过程中被动态看做单个基本值(atomic value),从而符合路由协议的要求。诸如路由器的网络装置可以实现这些技术以在人为可用性方面对路由器进行改进,从而只需输入很少的命令或规则来定义用于在路由解析过程中的交叠路由之间进行优先级选择的策略。本文中使用的这些交叠路由指的是(例如,利用地址或地址前缀)到达或指定同一目的地的路由。
路由器可以进行路由解析以选择或“解析”这些交叠路径中的一条,通过该路径到达目的地址或地址前缀。在一些实例中,路由器可以基于每条交叠路由的多个特性的比较来选择这些交叠路由中的一条。这些特性中的每一个均可包括两个或多个状态,这就导致了唯一组合(unique combination)的多样性。
除了输入定义将这些唯一组合中的每一个均映射到特定的优先级值的策略的数据以外,路由器还可以实现在本公开中描述的技术,以动态地将如由路由协议定义的基本的优先级值重新定义为两个或更多的比特字段,其中,每个比特字段各自代表对应的一个路由特性,并定义该对应的一个路由特性的状态的优先级值。这些技术可以使管理员与用户界面进行交互以输入数据,该数据指定了用于定义比特字段和路由特性之间的映射的线性(而不是指数)数量的规则。因此,这些技术可以在继续允许路由协议将路由优先级值看作单个基本值的同时,通过使用较少的规则或命令使能映射的说明而在人为可用性方面对路由器进行改进,从而避免了对路由协议实现的改变。
在操作过程中,路由器可以接收根据诸如边界网关协议(BGP)的路由协议定义多条路由的数据或信息。路由器还可以存储定义包含上述规则集合的策略的数据或信息。该策略通常可以动态地将优先级值或由路由协议定义的其它量度或属性(其通常被服从路由协议的软件当作是整数值)重新定义为多个比特字段。此外,由装置的用户界面支持的语法可以对该动态重新定义进行应用和识别,而对该装置的下层(underlying)路由处理是透明的。
例如,用户界面可以支持其中的策略具有比特字段示例的结构,该比特字段示例映射用于将整数优先级值表示为两个或更多比特字段的多个位的特定连续部分。于是,该策略可以将这些比特字段中的每一个都映射至与给定路由相关的特性。这些所谓的路由特性可 以包括定义该路由器与负责生成和传输路由数据的路由器之间关系的邻近关系、表示通告路由是否已经通过验证的验证状态、通告路由的带宽以及其它共同路由特性。于是该策略可以将映射定义为多个子映射,其中每个子映射都将与给定的一个比特字段相关的路由特性的所有已知或可能的状态映射至与状态相关的优先级值。换言之,该策略为每个比特字段定义子映射,以将路由特性的每个已知或可能的状态映射至对应的优先级值。在这方面,该策略包括一组以每个路由特性的可能状态的相加得到而不是相乘得到的量为阶的规则。
路由器可以将该策略应用于新接收的路由,以确定路由的优先级值。例如,路由器可以接收定义新路由的BGP更新消息并为该路由确定优先级值(在与BGP有关的领域中称为本地优先级值)。路由器可以基于BGP更新消息确定被该策略映射至比特字段的路由特性的每一状态,并应用该策略来将这些状态中的每一个映射至对应的优先级值。然后,路由器可以将本地优先级值中的逻辑定义的每个比特字段设置为对应的优先级值,并将这些本地优先级值与例如路由表中的路由进行关联。然后,路由器可以使用该本地优先级值来解析通过网络的路由。在路由解析过程中,路由器可以将该本地优先级值看作或当作整数。即,对于交叠路由,在路由解析过程中的路由器可以选择那些具有较高本地优先级的交叠路由。这些技术可以使能对路由解析过程的控制,这是因为路由器可以更为有效地指定一种策略,该策略以允许一个以上路由特性对本地优先级值的值产生影响的方式定义路由的优先级值。如下文中的详细描述,该影响可以促进对路由解析的优先级控制。
在一个实施例中,一种方法包括:利用网络中的路由器存储描述多条路由的信息,其中,每条路由均定义通过网络到达目的地的跳的序列;以及利用该路由器存储定义规则的数据,该路由器通过该规则确定多条路由中至少一条的本地优先级值,其中,所述本地 优先级值被由路由器实现的路由协议指定为整数值,其中,该路由器在路由解析过程中根据路由协议利用该本地优先级值对一条或多条路由进行排序和选择,以及其中,这些规则根据由路由协议指定的整数值将本地优先级值重新定义为两个或更多比特字段,以及其中,这些规则将每个比特字段与不同的路由特性进行关联,并针对每个不同的路由特性定义将比特字段优先级值与对应的路由特性的每个可能的状态进行关联的映射。该方法还包括利用路由器确定由映射定义的每个不同路由特性的状态,利用路由器,通过使比特字段优先级值中的一个与策略映射中的所确定的状态相关联来设置本地优先级值的两个或更多比特字段中的每一个,从而确定本地优先级值的整数值,以及利用路由器将至少一条路由与本地优先级值的所确定的整数值进行关联。
在另一实施例中,一种路由器包括:至少一个接口卡,用于根据路由协议接收路由协议消息,每个接口卡均定义描述多条路由中的一条或多条的信息,其中,每条路由均定义通过网络到达目的地的跳的序列。该路由器还包括:控制单元,用于存储定义规则的数据,该路由器通过该规则确定多条路由中至少一条的本地优先级值,其中,优先级值被由路由器实现的路由协议指定为整数值,其中,该路由器在路由解析过程中根据路由协议利用该优先级值对一条或多条路由进行排序和选择,以及其中,这些规则将由路由协议指定的本地优先级值重新定义为两个或更多比特字段,以及其中,这些规则将每个比特字段与不同的路由特性进行关联,并针对每个不同的路由特性定义将比特字段优先级值与对应的路由特性的每个可能的状态进行关联的映射。所述控制单元还确定由映射定义的每个不同的路由特性的状态,通过使比特字段优先级值中的一个与映射中的所确定的状态相关联来设置本地优先级值的两个或更多比特字段中的每一个,并将至少一条路由与本地优先级值的所确定的整数值进行关联。
在另一实施例中,一种网络系统包括:第一自治系统,包括第一路由器;以及第二自治系统,包括第二路由器。第二路由器包括:至少一个接口卡,用于根据路由协议从第一路由器接收路由协议消息,每个接口卡均定义描述多条路由中的一条或多条的信息,其中,每条路由均定义通过网络到达目的地的跳的序列;以及控制单元,用于存储定义规则的数据,该路由器通过该规则确定多条路由中至少一条的本地优先级值。所述优先级值被由第二路由器实现的路由协议指定为整数值,其中,第二路由器在路由解析过程中根据路由协议利用该优先级值对一条或多条路由进行排序和选择。这些规则将由路由协议指定的本地优先级值重新定义为两个或更多比特字段。这些规则还将每个比特字段与不同的路由特性进行关联,并针对每个不同的路由特性定义将比特字段优先级值与对应的路由特性的每个可能的状态进行关联的映射。控制单元还确定由映射定义的每个不同路由特性的状态,通过使比特字段优先级值中的一个与映射中的所确定的状态相关联来设置本地优先级值的两个或更多比特字段中的每一个,并将至少一条路由与本地优先级值的所确定的整数值进行关联。
在另一个实施例中,一种计算机可读存储介质包括:使可编程处理器执行以下操作的指令:利用网络中的路由器存储描述多条路由的信息,其中,每条路由均定义通过网络到达目的地的跳的序列,以及利用该路由器存储定义规则的数据,该路由器通过该数据确定多个路由中至少一个的本地优先级值。本地优先级值被由路由器实现的路由协议指定为整数值。该路由器在路由解析过程中根据路由协议利用该本地优先级值对一条或多条路由进行排序和选择。这些规则根据由路由协议指定的整数值将本地优先级值重新定义为两个或更多比特字段。这些规则还将每个比特字段与不同的路由特性关联起来,并针于每个不同的路由特性定义将比特字段优先级值与对应的路由特性的每个可能的状态进行关联的映射。这些指令还使可 编程处理器利用路由器确定由映射定义的每个不同的路由特性的状态,利用路由器,通过使比特字段优先级值中的一个与映射中的所确定的状态相关联来设置本地优先级值的两个或更多比特字段中的每一个,从而确定本地优先级值的整数值,以及利用路由器将至少一条路由与所确定的本地优先级值的整数值进行关联。
本发明的一个或多个实施例的细节将在下面的附图和说明书中进行描述。本发明的其它特征、目的和优点将通过了解说明书和附图以及权利要求书而变得显而易见。
附图说明
图1是示出示例性网络系统的框图,在该网络系统中,路由器实现本公开中描述的技术,以动态地重新定义在路由解析中由路由协议使用的优先级值。
图2是示出图1的路由器的示例性实施例的框图。
图3是示出路由器在实现本公开中描述的技术时的示例性操作的流程图。
图4是示出定义路由和相关本地优先级值的示例性路由协议消息的框图。
图5A~图5B是更详细地示出包含在路由协议消息中的示例性属性类型字段和对应的示例性属性值字段的框图。
具体实施方式
图1是示出示例性网络系统10的框图,在该网络系统中,路由器12A实现了本公开中描述的技术,以动态地重新定义在路由解析 过程中使用的优先级值。如下所述,路由器12A可以实现这些技术以在路由器12A的人为可用性方面进行改进,从而只需输入很少的命令和/或不复杂的结构性数据来定义用于在路由解析过程中在交叠的路由之间进行优先选择的策略。本文中使用的这些交叠路由指的是到达同一目的地址或地址前缀的路由。
路由器12A可以进行路由解析来选择或“解析”出这些交叠路径中的一条,通过该路径到达目的地址或地址前缀。在一些实例中,路由器12A可以基于每条交叠路由的多个特性的比较来选择这些交叠路由中的一条。为了影响该路由选择处理,路由协议标准通常将本地优先级变量定义为单个基本的整数值,该值可以被引入由路由协议应用的排序和选择算法中。通过将不同的本地优先级值与不同的路由进行关联,管理员能够将网络中的路由器配置为基于这些路由的特性而优先选择某些路由。然而,这些特性中的每一个都可能表示为两个或更多的状态(例如,信任或不信任,内部或外部),这造成了要求管理员根据路由协议标准指定交叉乘积这样多的唯一组合。
相反,路由器12A可以实现本公开中描述的这些技术,以动态地将整数优先级值定义为包含两个或更多比特字段的数据字,其中,每个比特字段各自代表对应的一个路由特性,并定义该特定路由特性的优先级值,而不要求管理员输入定义将这些唯一组合中的每一个映射到由路由协议确认的特定整数优先级值的策略的数据。因此,管理员可以独立地定义每个路由特性的排序,然后,路由器将其透明地聚集到路由协议优先级值的比特字段中,以作为单个基本值输入到路由协议中。这些技术可以使管理员能够首先输入独自定义任意比特字段和对应的一个路由特性之间的线性映射的数据,随后输入作为独立本地优先级值的针对路由特性的策略数据,而无需考虑其他的特性。在操作过程中,路由器12A根据所定义的映射将不同的路由特性的本地优先级值动态地组合到比特字段中,从而以符合 路由协议标准要求格式的格式计算出单个的合成本地优先级值,例如,基本的整数本地优先级值。以此方式,满足了与路由协议标准兼容的要求,而这些技术使得用户可不必将指定用于路由协议的本地优先级值的策略数据定义为路由特性及其相应的可能状态的多种唯一组合。在这方面,路由器12A可以实现这些技术,以在人为可用性方面对路由器12A进行改进,同时避免了在根据单个的本地优先级值对路由进行排序和选择时对路由协议实现的下层路由协议或算法进行改变。
尽管参照特定网络装置(例如,路由器12A)进行了描述,但是这些技术还可以利用能够执行或实施路由协议的任意类型的网络装置(通过其来接收描述通过网络的路由的信息)来实现。此外,以下的公开参照被称为边界网关协议(BGP)的特定路由协议和由称为本地优先级(“local_pref”)值的由BGP定义的优先级值来描述这些技术。更多的关于BGP和本地优先级值以及BGP路由解析或决定处理的信息可以在2006年1月期的题为“A Border GatewayProtocol 4(BGP-4)”的Request For Comments(RFC)4271中找到,其全部内容通过引用结合于此。然而,这些技术也可以参照其他的路由协议(诸如中间系统到中间系统(IS-IS)路由协议、内部边界网关协议(iBGP)、开放最短路径优先(OSPF)路由协议以及增强型内部网关路由协议(EIGRP))来实现,以将通常由路由协议定义的优先级或其他值动态地重新定义成作为有多个的两个或更多比特字段的整数值。
如图1所示,网络系统10包括自治系统14A(“AS 14A”)和自治系统14B(“AS 14B”)。自治系统14A、14B中的每一个(“自治系统14”或“AS 14”)可以包括可由一个或多个地址前缀寻址的独立计算机网络。通常,AS 14包括基于数据包的计算机网络,用于实现第三层(L3)的基于数据包的协议,诸如互联网协议(IP),其中,L3是指开放系统互连(OSI)模型的第三层。为此,AS 14 每一个均可称为“基于数据包”的网络或“IP”网络。对于基于数据包的网络,AS 14可以利用一个或多个IP地址前缀进行寻址,其可以根据在2006年8月期的题为“Classless Inter-domainRouting(CIDR):The Internet Address Assignment and AggregationPlan”的Request For Comments 4632中描述的注释进行定义,其全部内容通过引用结合于此。
AS 14每一个均可以包括较大的公共网络(诸如互联网)的子网络或简称子网。通常,单独的服务提供商(诸如Verizon通信公司,Verizon Communications Incorporated)将其网络作为单个的自治系统进行维护和运行。然而,在一些实例中,单独的服务提供商可以将其网络作为两个或更多的自治系统进行维护和运行。这种多重AS示例通常只在一个服务提供商要求或购买另一服务提供商的网络但又不出于商业或技术原因而组合这两个AS时才发生。为了示例,本文中假设单独的服务提供商(诸如Verizon通信公司)维护并运行AS 14A,而另一服务提供商(诸如美国电话电报公司,AT&T)维护并运行AS 14B。尽管在图1中被示为连结在一起的云,但是AS 14中的每一个都可以跨越较大的地理距离,并有可能跨越大陆(甚至大洋,从而到达多个大陆)。
如图1的实例进一步所示,AS 14A包括路由器12A,而AS 14B包括路由器12B和12C。路由器12A~12C(“路由器12”)如果不是完全相同,也是在功能操作方面彼此类似的,尽管路由器12每个均可以包括实现相似或相同功能的不同的硬件和/或软件。在任何情况下,每个路由器12通常都驻留在相应的AS 14的边缘,且路由器12A经由相应的网络链路16A和16B连接至路由器12B和12C。通常,这些链路16A、16B(“链路16”)包括高带宽或高容量的互联网链路,其包括较大的公共网络(诸如互联网)的中枢链路。为此,链路16可以称为中枢链路16。
路由器12每个均实施路由协议(诸如BGP)来交换描述通过其各自的AS 14的路由的拓扑数据。该交换通常根据网络的拓扑改变而采取路由通告或路由撤回的形式。路由被表示为到达网络目的地(例如由网络地址或网络地址前缀表示)的多个跳(例如,由地址表示)。路由器12可以包括数据库,用于存储定义通过其各自AS14的路由的数据。这些路由称为内在(internal)或内部(interior)路由。路由器12可以实施其他的路由协议以了解这些内部路由。这类内部路由协议通常可以称为内部网关协议(IGP)。IGP通常包括用在自治系统中的任何路由协议。示例性的IGP包括路由信息协议(RIP)、内部网关路由协议(IGRP)以及上面提到的OSPF和IS-IS路由协议。
与IGP类的路由协议不同,BGP通常进行工作以在不同自治系统的路由器之间进行路由交换。路由器12可以利用一个或多个已了解的路由来了解经由一个或多个IGP的内部路由,并生成可以包含数据库或其他存储装置的路由信息库(RIB)。在一些情况中,路由器12在将一个或多个已了解的路由插入RIB中之前可以拒绝这些路由。RIB可以存储路由表或其他数据结构,通过这些来存储接受或非拒绝的路由和与插入到路由表中的每个路由有关的路由特性。路由特性可以包括路由验证状态、提供路由的路由器所属的团体(community)、相邻路由器的对等状态、沿该路由的通信量消耗的最大总带宽、当前或可用带宽、保留带宽、与路由、颜色、不稳定性、传输介质类型、传输速度相关的成本、自治系统(AS)路径(“AS_Path”)、源路由的IGP区或等级、源协议、源示例、初始属性(例如,BGP ORIGIN属性或由路由器为路由定义的、或该路由可确定的、通常与之相关的其他任何特性)。
每个路由器12均可以在利用这些路由生成路由表之后根据BGP选择存储到路由表的路由,以输出至其他路由器12。路由器12可以生成称为BGP更新消息的BGP消息,该BGP更新消息定 义单条路由(通常也可以是多条路由)以及与该路由(或该多条路由)相关的一些路由特性。该单条路由可以代表由路由器12A选择的从路由器12A到达特定目的地址或地址前缀的路由。路由器12A可以例如生成表示通过AS 14A的路由或路径的BGP更新消息。路由器12A可以将路由器12A选择输出的每条路由或多条路由的BGP更新消息发送至AS 14B。同样,路由器12B、12C可以生成路由器12B、12C分别选择输出的每条路由或多条路由的BGP更新消息,并将其传送至路由器12A。图1示出了作为各BGP更新消息18A、18B(“BGP更新消息18”)从路由器12B、12C到路由器12A的这些BGP更新消息。
响应于这些更新消息18,路由器12A可以首先确定为包含在BGP更新消息18中的每条路由分配什么样的优先级值。该优先级值在与BGP有关的领域中称为“本地优先级”,而“local_pref”指的是存储表示该本地优先级值的整数的整数变量。通常,路由器12A只为从外部对等装置或邻近或相邻路由器接收到的路由分配本地优先级值,其中,那些邻近或相邻路由器驻留在路由器12A所在的自治系统外部的不同自治系统中。路由器12B和12C是这种外部BGP对等装置的实例,因此其可以统称为外部对等装置12或外部BGP对等装置12。由于这些路由是从外部对等装置接收的,因此根据BGP,路由器12A可以为这些路由中的每一条分配本地优先级。
路由器12A在路由解析过程中可以利用该确定的如由“local_pref”变量定义的本地优先级值,这是路由器12A选择或解析多条交叠路由中的一条的过程。如上所述,交叠路由可以指两条均到达同一目的地址或地址前缀的路由。为了示出,假设由BGP更新消息18A中的一个定义的至少一条路由和由BGP更新消息18B中的一个定义的至少一条路由以上述方式交叠。BGP指定了七步流程来解析这些交叠路由。
路由器12A可以实施这七步BGP路由解析(或“决定处理”,因为其与上文引入的RFC 4271相关)来首先考虑与每条路由相关的整数本地优先级值。当执行BGP协议时,路由器12A可以选择交叠路由中与路由协议的最高本地优先级值(即,本实例中的最高整数值)相关的一个。第二,如果两条或更多的交叠路由与相同的本地优先级值相关,则路由器12A尝试基于这些交叠路由中的哪一个与最低AS路径长度值相关联来解决这种平局(tie)。如果两条或更多条交叠路由之间仍然存在平局,则路由器12A尝试基于这些交叠路由中的哪一个与最低初始类型值相关联来解决这种平局。如果两条或更多条交叠路由之间仍然存在平局,则路由器12A接下来尝试基于这些交叠路由中的哪一个与最低Multi_Exit_Disc(MED)值相关联来解决这种平局。第五,如果两条或更多条交叠路由之间仍然存在平局,则路由器12A尝试基于这些交叠路由中的哪一个是通过BGP而不是IGP(诸如内部BGP(iBGP))进行了解而来解决这种平局。第六,如果两条或更多条交叠路由之间仍然存在平局,则路由器12A尝试基于这些交叠路由中的哪一个与到达路由器12的最低成本相关联而来解决这种平局。第七,如果两条或更多条交叠路由之间仍然存在平局,则路由器12A尝试基于这些交叠路由中的哪一个与最低路由器标识符(ID)值相关联而来解决这种平局。
实施BGP的路由器12可以提供该BGP路由解析或决定处理作为默认决定处理。换言之,BGP可以要求路由器实施BGP以提供该路由解析或决定处理作为默认路由解析处理。在这方面,默认路由解析处理包括定义默认决定处理的“汇编(complied in)”规则集。然而,每个路由器12还可以使能设计或定制的路由解析或决定处理。路由器12提供该设计或定制的路由解析处理来使网络管理员出于技术和/或商业目的而偏好或选择一条路由。
例如,假设Verizon拥有AS 14A,而AT&T拥有AS 14B,Verizon可以不建立AS 14A以进入特定地理位置,而是与AT&T(其AS 14B 已经跨越了该地理位置)签订合同而使其承载等于AS 14B内消耗的带宽的一定资金的Verizon通信量。然而,Verizon路由器12A可以从路由器12B和12C接收交叠路由,并期望总是选择最短的路由,从而减少了消耗带宽的路由以降低合同成本。不利用某种形式的可定制或设计的解析处理,路由器12A就不能总是选择到达目的地的最低成本路由。因此,每个路由器12通常都使能设计或定制的路由解析或决定处理。
路由器12A可以包括例如用户界面,通过该用户界面接收定义控制或定制默认路由解析处理的策略的数据。管理员可以通过路由策略描述语言(RPSL)来定义这些策略,其在多个不同的RFC中均进行了定义,例如,在1999年6月期的题为“Routing PolicySpecification Language(RPSL)”的RFC 2622中进行了定义。管理员可以与提供的系统(provisioning system)或其他计算装置进行交互以按照RPSL生成策略,其中,该提供的系统或其他计算装置可以将其转换成路由器配置脚本或文件,然后该路由器配置脚本或文件作为“策略”由管理员经由用户界面输入至路由器12A。在任一情况中,管理员通常都通过定义将特定路由映射至特定本地优先级值的策略来控制默认BGP路由解析处理。以此方式,网络管理员可以通过向多条交叠路由中的一个而不是向其他所有的多条交叠路由分配较高的本地优先级值来控制上述定义的路由解析处理。以此方式,路由器12可以使网络管理员以设定的方式控制路由解析。
根据本发明的技术,路由器12A通过用户界面接收定义比特元(bit-wise)策略的数据,该比特元策略定义了规则,路由器通过这些规则确定单个参数的本地优先级值,该值是由经由BGP更新消息18中的一个接收到的多条路由中的至少一条的工业标准路由协议定义的。尽管根据工业标准,该本地优先级值被由路由器12A实施的BGP看作整数值,但是该策略允许路由器在与用户进行交互时将本地优先级值动态地重新定义为两个或更多的比特字段。在这方面, 路由器12A将本地优先级值看作关于用户界面语法和数据表示的多个比特字段,但在进行路由操作过程中是根据工业标准路由协议将本地优先级值用作单个整数值的。该策略将每个比特字段与上述路由特性中不同的一个进行关联,并对不同路由特性中的每一个均定义将优先级值与对应路由特性的每个可能状态进行关联的映射。
例如,可以将策略定义为包含比特字段示例,该示例指示路由器12A将本地优先级整数字段细分为两个比特字段,并将这些比特字段中的每一个与以下两个路由特性中相应的一个进行关联:路由的验证类型和相邻关系类型。如图1所示,AS 14A可以包括:验证服务器20,其包括用于存储与特定路由相关联的验证状态的验证数据库(图1中未示出)。验证服务器20可以用作资源公共密钥基础架构(RPKI)的一部分。具体地,验证服务器20可以作为有关BGP领域中的RPKI的一部分以在2008年10月6日的题为“Validation ofRoute Origination in BGP using Resource Certificate PKI”的InternetDraft中更详细地描述的方式进行工作。路由器12A可以生成验证请求并将其传输给验证服务器20以请求验证服务器20对特定路由进行验证。
独立的验证服务器20被示为路由器12A可以与其进行通信以了解或确定与路由相关的验证状态,路由器12A可以维护用于AS14A的内部验证数据库。在一些情况中,验证状态可以经由BGP更新消息进行传输并存储在路由表中,从而该路由表可以包括内部验证数据库。在其他情况中,验证服务器20可以由多个AS进行维护,并用于验证每个成员AS的路由。
备选地,验证服务器20可以包括互联网路由注册库(IRR)。IRR可以包括存储数据的数据库,该数据定义了确定和共享路由和用于配置路由器的相关信息的一个或多个互联网路由对象。通常,IRR用于避免互联网服务提供商(诸如Verizon和AT&T)及其各自 的AS 14之间的问题。这些对象可以包括RPSL对象,而每个AS 14的网络管理员可以改变定义相应AS 14的路由对象的那些RPSL对象。其他的网络管理员可以查询那些未对其一个AS 14进行维护的路由对象,而可以不对其进行改变。以此方式,IRR代表数据库,该数据库可以由管理员用来进行查询从而了解策略以及通过相邻AS的路由。这些RPSL对象可以定义一条路由或多条路由的验证状态,路由器12A可以查询该IRR以了解特定路由的验证状态。公共验证状态包括有效状态、无效状态和未知状态。
路由器12A可以利用BGP更新消息或通过查询验证服务器20来了解邻近类型。备选地,这些邻近关系可以定义为通常由网络管理员指定的路由器配置的一部分。这些邻近关系通常可以定义与除了路由器12A所在的AS以外的不同AS的相邻网络装置的商业关系。公共类型的邻近关系可以包括转接(transit)关系、客户关系和对等关系。
在任一情况中,路由器12A可以确定由策略映射定义的不同路由特性中的每一个的状态。继续上面的实例,路由器12A可以确定经由BGP更新消息18接收到的每条路由的验证状态和邻近关系状态。路由器12A于是可以利用与策略映射中所确定的状态相关联的优先级值中相应的一个来设置本地优先级值的两个或更多比特字段中的每一个。再次,关于上述实例,路由器12A可以确定由BGP更新消息18A、有效状态和转接关系定义的路由中的一条,并利用与策略映射中的有效状态相关联的第一比特字段优先级值来设置由策略比特字段示例描述的第一比特字段,以及利用与策略映射中的转接关系状态相关联的第二比特字段优先级值来设置由策略比特字段示例描述的第二比特字段。以此方式,路由器12A可以利用单独的、独立的比特字段优先级值设置本地优先级值的动态定义的每个比特字段。
通过动态地将本地优先级值重新定义为比特字段,路由器12A可以使管理员能够更容易地定义有优先级地选择两个或更多交叠路由所依据的策略。为了示例,假设管理员希望首先基于验证状态、其次基于相邻关系来选择路由,管理员可以定义上述示例性策略,该策略将32位的本地优先级值的前16位示例为验证状态比特字段,将32位的本地优先级值的后16位示例为相邻关系比特字段。然后,管理员可以定义比特字段示例下的将验证路由特性的每个可能状态映射至第一组比特字段优先级值的第一映射,并定义将邻近路由特性的每个可能状态映射至第二组比特字段优先级值的第二映射。
例如,第一映射可以将有效状态映射至比特字段优先级值102,将未知状态映射至比特字段优先级值012,而将无效状态映射至比特字段优先级值002。第二映射可以将用户邻近关系映射至比特字段优先级值102,将对等邻近关系映射至比特字段优先级值012,以及将转接对等关系映射至比特字段优先级值002。在确定了第一路由与有效状态和转接关系相关联时,路由器12A可以根据第一和第二策略映射将该路由与本地优先级值0002 000016进行关联。在确定了第二路由与有效状态和对等关系相关联时,路由器12A可以根据上述两个示例性策略映射将该路由与本地优先级值0002 000016进行关联。
尽管称为第一和第二映射,但是多个独立的映射通常也可以称为策略映射,从而可以理解为组成或形成策略映射的每一特性映射或子映射。无论怎样,该策略映射包含总共六个映射,这些映射将有效路由特性的三个可能状态映射至本地优先级值的较高或最高有效位的比特字段优先级值,并将邻近关系路由特性的三个可能状态映射至本地优先级值的较低的一半或最低有效位的比特字段优先级值。换言之,策略映射包括多个映射,这些映射随着每个路由特性的可能状态的总和而线性增长。
此外,尽管以上参照二进制和十六进制表示进行了描述,诸如网络管理员的操作者可以将这些值定义为0、1和2。从而,为了示出本公开中描述的与本地优先级值的实际计算相关的这些技术的不同方面,示出了作为二进制和十六进制数字的表示。然而,这些技术可以自动将这些数字的十进制表示转换成如上所示的通常用于大多数计算机的二进制和十六进制表示。
在根据这些技术设置或确定了每条路由的本地优先级值后,路由器12A可以将每条路由与所确定的本地优先级值进行关联。路由器12A可以通过将本地优先级值以及每条路由存储到RIB的路由表中而将这些本地优先级值与各路由进行关联。路由器12A接下来可以进行路由解析以对交叠路由进行解析。
如上所述,假设经由独立的BGP消息18接收到达同一目的地的至少两条路由。为了示出,进一步假设,根据上述技术将第一交叠路由与所确定的本地优先级值0002 000016进行关联,再次根据上述技术将第二交叠路由与所确定的本地优先级值0002 000116进行关联,路由器12A可以选择第二交叠路由,这是因为与该第二交叠路由相关联的本地优先级值大于与第一交叠路由相关联的本地优先级值。换言之,路由器12A执行上述默认BGP路由解析或决定处理,以解析这两条交叠路由,从而影响该默认、内置或汇编的BGP决定处理,以利用该动态地重新定义的本地优先级值。
BGP决定处理继续将该本地优先级值看作整数,因此,无需将该BGP决定处理修改为适应这些技术。即,例如,BGP决定处理将与第一交叠路由相关联的第一本地优先级值看作819310,以及将与第二交叠路由相关联的第二本地优先级值看作819410。由于8194大于8193,因此,路由器12A根据BGP决定处理选择第二交叠路由,而不是第一交叠路由。然而,通过根据这些技术对本地优先级 值进行重新定义,管理员只需定义一种策略,该策略包括线性数量的映射而不是例如三乘三阶的映射或九个映射的指数数量的映射。
尽管上述实例只考虑了具有较少几个状态的路由特性的两个比特字段,在管理员希望控制对各具有多个状态的多个路由特性进行路由解析时,这些技术基本上可以改进人为可用性方面。例如,考虑了在管理员期望基于三个路由特性来控制路由解析的情况,其中,每个路由特性都具有10个可能状态。根据这些技术,管理员可以定义一种策略,该策略将本地优先级值重新定义到三个比特字段中并指定三个子映射,每个子映射均定义将10个状态中的每一个都映射至比特字段优先级值的10条规则。因此,该策略利用等于30或30的阶个规则定义策略映射,30与每个路由特性的可能状态的总和(即,10+10+10)成线性。除了将映射定义为10×10×10(或103)阶的(其等于1000个映射)指数个规则或命令以外,管理员还可以将映射定义为30个规则的集合,这相对于控制路由解析处理可以大大改进路由器12A的人为可用性。
在以上述方式对这些交叠路由进行解析之后,路由器12A可以经由一个或多个路由协议(诸如IBGP)将解析出来的路由传送至AS 14A。这些内部通信在图1中示出为消息22。路由器12A可以传递以上确定的本地优先级值,而AS 14A内部的其他网络装置(例如路由器)可以将该本地优先级值看作整数。在这方面,这些技术不需要对BGP协议或其他任何协议进行改变,并且其他内部路由器可以利用该本地优先级值,这是因为这些技术只动态地逻辑地重新定义了该本地优先级值,而不改变或扩展BGP更新消息或利用该本地优先级值的任何其他消息。因此,这些技术保持了与其他路由器的功能互用性。此外,这些技术不需要任何附加的属性或对更新消息进行任意添加,从而可以保存AS 14A的带宽。
图2是示出图1的路由器12A的示例性实施例的框图。如图2所示,路由器12A包括具有路由平面26A和转发平面26B的控制单元24。控制单元24可以包括实现本公开中描述的技术的硬件和软件的任意组合。控制单元24可以包括一个或多个处理器、特定用途集成电路(ASIC)、集成电路或任何其他处理或控制单元或元件或其组合、以及存储器或存储装置。在一些情况中,存储器或存储装置(通常例如,计算机可读存储介质)可以包括使可编程处理器执行本文中所述技术的上述指令。这些指令可以构成计算机或软件程序或由可编程处理器执行来实现本文中所述的功能(包括属于本公开中这些技术的功能)的其他可执行模块。
路由平面26A通常可以代表控制单元24的负责实现路由协议、存储和保存反映网络拓扑的数据(诸如路由信息)、以及解析交叠路由的一部分。路由平面26A可以称为控制平面,这是因为路由平面26A通过关于通用路由功能(诸如路由解析)的决定来提供控制。路由平面26A还可以称为路由引擎,这是因为路由平面26A在很多方面均提供执行该功能的一个或多个引擎或模块。
转发平面26B通常可以代表控制单元24的负责转发数据单元(诸如数据包)的另一部分。转发平面26B可以从路由平面26B接收解析得到的路由,并经由解析的路由转发数据包。转发平面26B可以包括专门设计用于尽可能快(更好地表述为,高速)地转发数据包的专用硬件,以提供高带宽转发。转发平面26B还可以称为转发引擎,这是因为转发平面26B可以提供专用硬件和/或软件模块来转发数据包。转发平面26B还可以称为数据平面,这是因为转发平面26B处理数据单元(诸如数据包)的转发,而路由平面26A处理通过路由功能的控制或决定。
尽管上述描述为驻留在同一控制单元(例如控制单元24)中,但是路由平面26A和转发平面26B可以各自实现为,路由平面26A 在第一控制单元中执行或实现,而转发平面26B在与第一控制单元不同或完全分离的第二控制单元中执行或实现。因此,这些技术不应该限于图2所示的示例性实施例。
路由器12A还包括多个接口卡(IFC)28A~28N(“IFC 28”),用于经由入站链路30A~30N(“入站链路30”)和出站链路32A~32N(“出站链路32”)传送数据包。每个IFC 28均可以经由开关连接至控制单元24并(图2中未示出)与控制单元进行通信。该开关可以包括能够可通信地连接一个或多个端点(例如IFC 28和控制单元24)的任何通信介质。IFC 28被示为经由链路34连接至控制单元24。这些链路34可以包括或者也可以不包括上述开关。在路由器12A不包括该开关的情况中,链路34每一个均包括IFC 28与控制单元24进行通信所通过的专用链路或总线。转发平面26B可以接收经由链路34从IFC 28转发的数据包,并经由链路34和IFC 28将那些数据包转发到出站链路32上。以此方式,转发平面26B提供了路由器12A的转发功能。
路由平面26A包括用户界面模块36(“UI模块36”)、路由策略模块38、BGP模块40(“BGP 40”)和路由解析模块42。UI模块36包括提供管理员(诸如管理员44)可以用来交互以录入或输入定义策略46的数据的一个或多个用户界面的硬件和/或软件模块。UI模块36可以包括图形用户界面(GUI)或命令行界面(CLI)。路由平面26还可以包括存储定义策略46的数据的策略数据库48(“策略DB 48”)。
路由器策略模块38可以包括将一个或多个策略46应用至从BGP模块40接收到的路由50中的硬件和/或软件模块。策略46可以包括将本地优先级整数值动态地重新定义为多个比特字段的至少一个上述策略。路由策略模块38可以根据本公开中描述的这些技术应用策略46中的一个以返回与路由50相关的本地优先级值52。BGP 40可以包括实现BGP以实现至少接收和处理BGP更新消息(诸如BGP更新消息18)、生成和转接BGP更新消息、另外还保存路由表54的硬件和/或软件模块。路由平面26A还可以包括路由信息库56(“RIB 56”),其可以包括存储路由表54的数据库或其他存储装置。尽管示出为两个独立的数据库48和56,但是路由平面26A可以包括同时存储策略46和路由表54的单个数据库。图2中示出的独立数据库48和56仅用于示例性目的。
路由解析模块42可以包括根据BGP执行路由解析的硬件和/或软件模块。换言之,路由解析模块42可以实现以上结合的RFC4271中所述的默认决定处理。路由解析模块42可以执行该路由解析处理,以如上所述在交叠路由之间进行选择,并将所选择的一个交叠路由建立到转发平面26B的转发表58中。转发平面26B可以包括转发信息库(“FIB 60”),其包括存储转发表58的数据库或其他存储装置。为了建立路由,路由解析模块42可以向FIB 60发出命令62,以使FIB 60利用定义与给定的源地址或地址前缀相关的下一跳的项来更新转发表58。
最初,管理员44可以与由UI模块36提供的用户界面交互,以输入定义策略46的数据。尽管以上描述为直接与用户界面进行交互,但是管理员44通常可以根据RPSL与提供的系统或其他中间配置系统进行交互,以指定策略。然后,该中间配置系统可以将RPSL兼容策略转换成脚本或定义上述映射的其他数据,之后经由与由UI模块36提供的用户界面进行自动交互而自动将策略46中的这一个加载到策略DB 48中。在这方面,管理员44可以与用户界面直接进行交互。无论怎样,UI模块36可以接收定义策略46的该数据并将该数据加载到将该数据存储为策略46的策略DB 48中。然后,管理员44可以激活、启动或使得路由器12A开始接收数据包。
转发平面26B可以经由IFC 28和各入站链路30接收数据包,访问FIB 60的转发表58,并确定转发该数据包所到的“下一跳”。转发平面26B可以从每个数据包的报头解析或提取五元组,其中,五元组包括源IP地址、目的IP地址、源端口、目的端口和协议标识符。转发平面26B可以利用五元组或其某一部分(诸如目的地址)作为密钥以定位对应于该五元组的转发表58的项,从而访问转发表58。该项可以识别IFC 28中的一个,或备选地,在数据包去往路由器12B的情况中,其表示数据包应该被转发至路由平面26A。
例如,转发平面26B可以接收去往路由器12A的BGP更新消息(诸如BGP更新消息18中的一个)。转发平面26B可以提取五元组或其某一部分(诸如目的地址),并访问转发表58以找到表示该数据包将被转发至路由平面26A的项。转发平面26B可以将这一BGP更新消息18转发至路由平面26A。路由平面26A可以调用BGP40来处理这一BGP更新消息18。BGP 40可以抽取由BGP更新消息18中的一个定义的路由50,并确定是否计算该路由的本地优先级值。BGP 40可以基于BGP对等装置的已知配置进行该确定。如果BGP对等装置是外部对等装置(例如,该对等装置具有与和AS14A相关的AS数量不同的AS数量),则BGP 40可以计算该路由的本地优先级数。然而,如果BGP对等装置被配置为内部对等装置(例如,该对等装置具有与和AS 14A(或其中驻留有路由器12的AS)相关的AS数量相同的AS数量),则BGP 40可以确定不计算该路由的本地优先级数。
由于假设了这一BGP更新消息18是从被配置为外部BGP对等装置的对等装置中接收到的,因此BGP 40决定计算该路由的本地优先级值,并提取由这一BGP更新消息18定义的路由。为了计算该本地优先级数,BGP 40将该路由作为路由50转发至路由策略模块38,其应用策略46中的一个确定该路由50的本地优先级值。
具体地,如工业标准路由协议所指定的,路由策略模块38将根据整数动态地重新定义本地优先级值的一个策略46应用至关于用户交互和配置数据提供的多个比特字段。路由50不仅可以定义从源装置到目的装置的一些列跳,而且在一些情况中还定义路由特性。备选地,路由策略模块38可以访问RIB 56来确定与路由50相关联的路由特性。在任一情况中,路由策略模块38确定与由策略46中的一个的比特字段示例定义的每个比特字段相关联的每个路由特性的状态。基于所确定的在比特字段示例中识别的每一路由特性中的确定的状态,路由策略模块38可以利用也是由这一策略46定义的子映射确定每个动态重新定义的比特字段的比特字段优先级值,如上述实例所示。
在设置动态地重新定义的本地优先级值的每个比特字段后,路由策略模块38可以将本地优先级值52以工业标准要求的格式返回至BGP 40。BGP 40可以在路由表54中的为路由50创建的项中将该本地优先级值存储为由路由协议定义的单个参数。换言之,BGP40可以利用本地优先级值52更新路由表54中为路由50保存的项,从而将本地优先级值52与路由50进行关联。在某一方面,路由解析模块42可以以上述方式解析路由表54,并将解析出的路由建立到FIB 60的转发表58中。
假设路由50包括与另一路由到达相同目的地的路由,这两条路由(路由50和另一路由)代表交叠路由。路由解析模块52可以通过首先将本地优先级值看作整数值来解析这些路由。路由解析模决52可以选择最高本地优先级值。尽管参照选择具有最高本地优先级值的路由进行了描述,但是路由解析模块52可以相反地选择具有最小本地优先级值的路由,这可以相对于实现不同协议或对这些以及其他协议(包括BGP多出口标识(multi-exit descriminator))进行扩展的路由解析模块52而进行。
如在上述实例中,这些技术动态地重新定义本地优先级值,但是不影响BGP 40或路由解析模块42的任何其他功能方面。路由解析模块42可以以上述方式进行选择与最高本地优先级值相关联的交叠路由中的一个。然而,由于路由器12A实现了本文中描述的这些技术,因此管理员44可以控制路由解析模块42而不输入指数数量的命令来定义一个策略46。相反,管理员44可以仅输入线性数量的命令,从而这些技术可以在可用性方面对路由器12A进行改进。
在任一情况中,在将经解析的路由建立到转发表58中时,转发平面26B可以接收数据包,抽取五元组或其一部分(例如,目的地址),基于抽取的五元组或其一部分(例如,目的地址)访问转发表58,在所访问的转发表58的项中确定与五元组或其一部分(还是例如,目的地址)相关联的下一跳(例如,IFC 28中的一个),以及经由识别出的IFC 28中的一个转发数据包。以此方式,转发表26B可以提供路由器12A的转发功能以经由解析出来的路由(通常高效地)转发数据包。
图3是示出路由器在实现本公开中描述的这些技术的过程中的示例性操作的流程图。为了示例,下面将参照图2的路由器12A描述这些技术。然而,尽管参照该特定类型的网络装置(例如,路由器12A)进行了描述,但是这些技术还可以通过能够实现路由协议的任意网络装置来实现,以将整数值正常地重新定义为两个或更多比特字段的集合,从而改进该网络装置的可用性。此外,尽管下面将参照路由器12A的特定实施例进行描述,但是这些技术还可以应用至路由器12A的其他实施例。
最初,UI模块36可以呈现一个管理员44可以与其进行交互以直接或间接地输入定义策略46中的一个的数据的用户界面(61)。这一个策略46可以包括决定策略而不是输入或输出策略。因此,这一个策略46可以称为决定策略46,这是因为这一策略46定义一组 规则(例如,策略映射),其通过设置本地优先级值而以上述方式影响决定处理。然而,决定策略可以代表一个修改的输入或输出策略,从而,这一个策略46可以包括修改的输入策略。以此方式,管理员能够首先指定一组相关的路由特性,并将这些特性中的每一个都映射至本地优先级值中的比特的对应集合。管理员还可以指定每个路由特性的可接受的状态。因此,管理员可以以输入策略和输出策略的形式输入一个或多个附加策略46,其中,输入策略用于控制将路由输入至RIB 56,输出策略用于控制将路由从RIB 56输出至实现路由协议的其他路由或网络装置。UI模块首先使用由管理员提供的映射信息,从而仅将这些附加策略表达为必要和相关的路由特性,从而允许用户避免输入这些特性及其状态的全部交叉乘积唯一组合的配置。UI模块28接收定义这些策略的该输入,并将这些策略存储至策略数据库48。
同时,转发平面26B可以经由IFC 28中的一个接收定义新的路由或更新现有路由的BGP更新消息(例如,BGP更新消息18中的一个)(62)。转发平面26B可以从这一个BGP更新消息18的报头(例如,IP报头)抽取五元组或其一部分(例如,目的地址),并在访问FIB 60的转发表58时将该五元组用作密钥。转发平面26B可以找到使转发平面26B将BGP更新消息18中的一个转发至路由平面26A的转发表项。如上所述,路由平面26A可以调用BGP 40,来确定是否设置接收到的路由的local_pref值(64)。如上所述,BGP40可以基于BGP对等装置的已知配置进行该确定,其实际上表示该对等装置的AS数量是否与路由器的AS数量相同(66)。如果AS数量不同于标识AS 14A的AS数量(例如,消息18来自外部BGP对等装置),则BGP 40可以进行设置local_pref值(66中的“是”)。
为了设置local_pref值,BGP 40可以抽取路由和由BGP更新消息18中的一个定义的任何路由特性作为至路由策略模块38的路由50。如下更详细描述的,这些路由特性可以被定义在BGP更新消息 18中的一个的所谓路径属性字段中。这些路由特性还可以通过操作者或网络管理员或二者结合来配置,或备选地经由BGP更新消息18来接收这些路由特性。路由策略模块38可以响应于路由50访问策略DB 48,以找到策略46中的一个(例如,上述决定策略46),从而将local_pref值动态地重新定义为两个或更多比特字段,而不是将该local_pref值看作整数(68)。接下来,如上所述,路由策略模块38可以利用由决定策略46定义的比特字段示例来确定与给定的一个比特字段相关联的每个路由特性的状态(70)。
然后,如上所述,路由策略模块38基于每个对应路由特性的确定的状态来设置由决定策略46动态定义的每个比特字段(72)。即,路由策略模块38可以访问将与第一比特字段相关联的第一路由特定的每一可能状态映射至比特字段优先级值的第一子映射,并确定与所确定的第一路由特性的状态相关联的比特字段优先级值。然后,路由策略模块38可以利用所确定的比特字段优先级值来设置识别的比特字段。路由策略模块38可以针对策略46中的一个的比特字段示例中定义的每个比特字段重复上述操作。
下面的伪码提供了策略的一种示例性表示:
//示例本地优先级值的比特字段(bit field)
bit_field_1=local_pref[31:16]
bit_field_2=local_pref[15:0].
//将比特字段映射至路由特性
policy_mapping(validation_state,neighbor_relationship){
sub_map_1(bit_field_1,validation_state);
sub_map_2(bit_field_2,neighbor_relationship);
}
sub_map_1(bit_field_1,validation_state){
if(validation_state==“valid”)bit_field_1.set(2);
if(validation_state==“uknown”)bit_field_1.set(1);
if(validation_state==“invalid”)bit_field_1.set(0);
return;
}
sub_map_2(bit_field_2,neighbor_relationship){
if(neighbor_relationship==“customer”)bit_field_2.set(2);
if(neighbor_relationship==“peer”)bit_field_2.set(1);
if(neighbor_relationship==“transit”)bit_field_2.set(0);
return;
}
上述示例性决定策略首先通过比特字段示例将两个比特字段(例如,bit_field_1和bit_field_2)示例为本地优先级(local_pref)值的16个最高有效位(例如位31至16)以及本地优先级(local_pref)值的16个最低有效位(例如位15至0)。接下来,该示例性决定策略提供了一种策略映射,该映射接收两个输入,由变量validation_state表示的验证状态和由neighbour_relationship变量表示的邻近关系。该策略映射包括两个子映射(例如,sub_map_1和sub_map_2),这两个子映射各用于两个比特字段中。第一子映射基于由validation_state变量标识的状态设置第一示例比特字段。第二子映射基于由neighbour_relationship变量标识的状态设置第二示例比特字段。路由策略模块38可以应用表示为上述伪码的该示例性决定策略,以将local_pref的16个最高有效位映射至比特字段优先级值2(其为000216)到0(其为000016)中的一个,以及将16个最低有效位映射至比特字段优先级值2到0中的一个。此处应注意,用户可以以十进制符号指定这些值,而不是以十六进制或二进制指 定这些值。然而,这些技术可以通过将这些值从十进制变换为十六进制来以比特方式设置该本地优先级值。
在根据决定策略(诸如以上提供的示例性决定策略)设置了所有的比特字段之后,路由策略模块38可以将local_pref值返回至BGP 40,这可以将local_pref值与路由50在路由表54中进行关联,如上所述(74,76)。然而,如果BGP 40确定不应该设置local_pref值(例如,BGP更新消息18中的一个的AS数量与其中驻留有路由器12A的AS的数量相同,这可以在通过表示对等装置是内部对等装置而不是外部对等装置的配置中表示),BGP 40可以将该路由存储到RIB 56的路由表54中,而无需确定local_pref值(66、76中的“否”)。通常,在BGP 40不确定或设置local_pref值的情况中,local_pref值已经由AS 14A中的另一路由器分配,并且BGP 40可以将该路由与之前由AS 14A的不同路由器确定的local_pref值一起存储到路由表54中。
路由解析模块42可以以上述方式执行路由解析(例如,实现BGP决定处理),从而如上所述首先基于与路由表54中的这些路由中的每一个都相关的local_pref值对存储在路由表54中的路由进行解析(78)。在完成路由解析时,路由解析模块42可以将解析出来的这些路由建立到由转发平面26B维护的FIB 60的转发表58中。然后,转发平面26B可以接收数据包并根据存储在FIB 60的转发表58中的更新路由来转发这些数据包。
图4是示出定义路由和相关本地优先级值的示例性路由协议消息80的框图。路由协议消息80可以代表示例性BGP更新消息,因此可以称为BGP更新消息80。尽管参照特定类型的路由协议进行描述,但是这些技术不应该严格限于BGP。相反,这些技术可以应用至任何路由协议。
如图4所示,BGP更新消息80包括BGP头82和BGP有效载荷84。BGP头82包括标记字段86A、长度字段86B和类型字段86C。标记字段86A提供字段,以存储用于BGP对等装置(诸如路由器12A和路由器12B或12C)之间的同步和认证的信息。长度字段86B包括以字节存储定义BGP更新消息80的全部长度的数据的字段,包含头的字段。类型字段86C包括存储BGP消息的类型的字段,其中,该类型通常表示为整数值。对于BGP更新消息,类型字段86C可以存储整数值二(2)。
BGP有效载荷84可以包括不能实施(unfeasibility)路由长度字段(“URL字段88”),撤回路由长度字段90A~90N(“WRL字段90”)以及对应的撤回路由前缀字段92A~92N(“WR前缀字段92”)、全部路径属性长度字段94(“全部路径属性长度字段94”)、属性类型字段96A~96N(“属性类型字段96”)和相关属性长度字段98A~98N(“AL字段98”)和属性值字段100A~100N(“属性值字段100”)、以及网络层可达信息长度字段102A~102N(“NLRIL字段102”)、以及相关NLRI前缀字段104A~104N(“NLRI前缀字段104”)。URL字段88包括存储定义对应WRL字段90加上WR前缀字段90的全部长度的数据的字段。每个WRL字段90包括存储定义由有效的WR前缀字段90中对应的一个定义的IP地址中的比特数的的数据的字段。每个WR前缀字段90都包括存储定义其路由被撤回的网络的IP地址前缀的数据的字段。如果URL字段88存储零值,则BGP更新消息80可以省略WRL字段90和WR前缀字段92。WRL字段90和对应的WR前缀字段92中的每一个均可以表示撤回路由(例如,不再被BGP考虑且从路由表54去除的路由)。
全部路径属性长度字段94包括存储定义以字节为单位的每个“路径属性”字段的全部长度总和的总长的数据的字段。路径属性字段可以包括字段96中的一个和字段98与100中的对应一个。每 个属性类型字段96都可以包括存储定义由对应的一个字段100定义的路径属性值的类型的数据的字段。每个属性长度字段98可以包括定义对应的一个字段100的字节长度的字段。属性值字段100每个均可以包括存储定义由对应的一个属性类型字段96表示的类型的属性值的数据的字段。
每对NLRI长度字段102和NLRI前缀字段104均可以定义被通告的路由的IP地址前缀。与WLR字段90一样,每个NLRI长度字段102可以包括存储定义由有效的对应的一个NLRI前缀字段102定义的IP地址中的比特数的数据的字段。每个NLRI前缀字段104可以包括存储定义其路由正被通告的网络的IP地址前缀的数据的字段。
路由器12A以及更具体的BGP 40可以产生BGP更新消息80,并将根据本文中描述的这些技术计算出来的本地优先级值存储在由对应的一组字段96~100定义的路径属性之一中。下面将参照图5A更详细地描述示例性属性类型字段,其中对应的一个属性值字段存储local_pref值的该类型字段信号将在下面参照图5A更加详细地进行描述。下面还将参照图5B更加详细地描述存储根据本文中描述的这些技术确定的local_pref值的示例性属性值字段。
图5A~图5B是更详细示出包含在路由协议消息中的示例性属性类型字段106和对应的示例性属性值字段108的框图。属性类型字段106可以基本类似于任何一个属性类型字段96。同样,属性值字段108可以基本类似于任何一个属性值字段100。
如图5A所示,属性类型字段106可以由用户根据本文中描述的技术进行重新定义,以便包括子字段、属性类型代码字段110A(“ATC字段110A”)和属性标志字段110B(“标志字段110B”)。子字段110A、110B中的每一个都可以包括一个或多个孙字段,其 可以称为比特分区(bit partition),从而不会与上述比特字段混淆。然而,这些位分区可以包括比特字段。在任一情况中,称为ATC字段110A的子字段110A都可以存储标识存储至对应属性值字段108的数据的“类型”的整数值。ATC字段110A存储定义整数值五(5)以向BGP模块40发送信号或指出对应的属性值字段108存储local_pref值的数据。
子字段110B可以包括多个比特分区,这些比特分区虽然在图5A中详细示出,但其可以存储定义可选标志、转接标志、部分标志以及扩展长度标志中的每一个的状态的数据。这些标志中的每一个都可以表示由对应属性值字段108存储或定义的属性的不同特性。例如,可选标志可以表示由对应属性值字段108定义的属性是否可选。这些标志通常反映由ATC字段110A和对应属性值108定义的属性的状态。
如图5A所示,属性值字段108包括用于存储值的32个比特字段。假设对应的属性类型字段106的ATC字段110A存储5,故其表示属性值字段108定义local_pref值,属性值字段108包括存储local_pref值的32比特字段。关于BGP,local_pref值被看作32比特整数值。然而,如图5A进一步示出的,路由策略模块38可以动态地将该字段定义为多个比特字段,诸如比特字段112A和112B(“比特字段112”)。这些比特字段112中的每一个均可以包括存储与对应路由特性的状态相关联的优先级值的16比特字段。应该注意,这些比特字段112是逻辑比特字段,这是因为BGP将该local_pref值看作整数值,而不是将该值看作多个独立比特字段112的合成。
在这方面,为了更好地以上述方式控制路由解析或BGP决定处理,这些技术可以在逻辑上重新定义local_pref值。应该注意,通过如此重新定义local_pref值,当再次将其看作整数值时,每个比 特字段112被自然(inherently)排序,从而对管理员(诸如管理员44)应该注意到的相关路由特性之间的优先级选择施加设定的顺序。
例如,假设比特字段112A与验证状态路由特性相关联,以及比特字段112B与邻近关系路由特性相关联,这类似于上述为了示例性目的所假设的,比特字段112A由于包括在比特字段112B之前被考虑的local_pref值的16个最高有效位,此时local_pref值被看作整数。换言之,如果与优先级值000116相关联的验证状态被设置为第一交叠路由的第一local_pref值,而与优先级值000216相关联的验证状态被设置为第二交叠路由的第二local_pref值,不管对比特字段112B设置了什么值,路由解析模块42都可以优先于第一交叠路由而选择第二交叠路由,这是因为不管比特字段112B对于第一和第二local_pref值为何值,得到的第二local_pref值当被看作整数时总是会大于第一local_pref值。在这方面,验证状态路由特性具有上述邻近关系路由特性的重要性或优先级的自然顺序。
实际上,路由解析模块42可以只基于比特字段(其包含local_pref值的最高有效位)进行路由解析,而且仅当两个local_pref值的该最高有效位表示与两个local_pref值相同的相同值时,路由解析模块42基于包含local_pref值的较低有效位的比特字段进行路由解析。在上述实例中,如果这两个local_pref值都与具有相同验证状态但具有不同邻近关系的交叠路由相关联,则路由解析模块42选择具有与最高优先级值相关联的邻近关系的交叠路由中的一个。因此,被示例为包含local_pref值的较低有效位的连续比特字段可以定义通信断路器(tie-breaker)值,用于断开导致被示例为包含local_pref值的较高有效位的比特字段的通信。
值得注意的是,如上所述,该固有顺序作为BGP连续将local_pref路径属性值看作整数的结果而出现,但却保存了该整数值从而提供了许多附加优点。首先,通过如此保存该整数值而不提供 另一路径属性(诸如新的BGP团体类型),这些技术可以节约带宽,由于附加又一个新的BGP团体会进一步增加BGP更新消息的尺寸。第二,如上所述,保存该整数值,使得这些技术能够保持互操作性,这是因为通常将local_pref值看作整数的其他路由器可以继续如此将local_pref值看作整数。在这方面,这些技术可以使能可升级性,并在给定AS中提供对这些技术的慢速应用。即,例如,路由器12A可以实现这些技术并且还与AS 14A的其他路由器互操作。由于AS14A的服务提供商追求实现这些技术的连续路由器,因此,这些连续的路由器可以递增地设置到AS 14A中,且仍与旧的路由器互操作,其可以通过手动调整来轻松地实现本文中描述的这些技术。第三,如果不防止组成local_pref值的逻辑比特字段所需的路由解析模块42的改变,这些技术可以保存该整数值以进行限制。路由解析模块42通常是在选择通过网络的适当路由时起作用的高度复杂的路由处理。如果需要对路由解析模块42进行改变,则这些改变可能会不适当地实现或提供可能导致路由故障的软件程序错误。考虑到互联网依赖于高速和高效,以满足用户对互联网接入的高标准要求,这些路由故障会极大影响互联网服务并极大影响商业关系。
此外,如上所述,这些技术可以使得策略可以被定义为指定较少规则。这样不仅在人员或其他可用性方面有助于实现这些技术的路由器,而且这些策略还可以因为规则数量的减少而在尺寸上更小。考虑到将定义策略所需的规则数量从指数数量的规则减少为线性数量的规则,根据这些技术定义的这些策略可以要求非常少的路由器资源(例如路由器存储器)来进行保存或存储。
尽管上述描述为由用户(诸如管理员44)进行输入,这些技术还可以对用户透明地实现,使得路由器12A在定义local_pref值时自动保留并设置一些比特字段。因此,这些技术在其透明性方面可以理解为“秘密地(under the covers)”发生。这些技术不应被理解为要求管理员定义策略。相反,这些技术可以实现为自动产生该策 略,而用户无需响应于特定配置进行输入,或者在一些情况中,使得该策略在传递至用户之前被静态定义,并通过配置命令而使能。
本文已经描述了本发明的各个实施例。这些以及其他实施例都落入所附权利要求的范围内。
Claims (25)
1.一种重新定义在路由解析过程中使用的本地优先级值的方法,所述方法包括:
利用网络中的路由器存储描述多条路由的信息,其中,所述多条路由中的每一条均定义通过网络到达目的地的跳的序列;
利用所述路由器存储定义规则的数据,所述路由器通过所述规则确定所述多条路由中至少一条的所述本地优先级值,其中,所述本地优先级值被由所述路由器实现的路由协议指定为整数值,其中,所述路由器在所述路由解析过程中根据所述路由协议利用所述本地优先级值对所述多条路由中的一条或多条进行排序和选择,以及其中,所述规则根据由所述路由协议指定的整数值将所述本地优先级值重新定义为两个或更多比特字段,以及其中,所述规则将每个所述比特字段与不同的路由特性进行关联,并针对每个所述不同的路由特性定义将比特字段优先级值与对应的路由特性的每个可能的状态进行关联的映射;
利用所述路由器确定由所述映射定义的每个所述不同的路由特性的状态;
所述路由器利用与映射中的所确定的状态相关联的所述比特字段优先级值中的一个来设置所述本地优先级值的两个或更多比特字段中的每一个,从而确定所述本地优先级值的整数值;以及
利用所述路由器将所述多条路由中的至少一条与所述本地优先级值的所确定的整数值进行关联。
2.根据权利要求1所述的方法,进一步包括:
提供具有输入语法的用户界面,用户使用所述用户界面输入独立于其他路由特性的每个路由特性的所述比特字段优先级值,以使所述比特字段优先级值作为独立的参数;以及
利用所述路由器执行所述路由协议以进行路由解析,从而利用所述本地优先级值作为所述路由协议中的单个参数而基于所确定的所述本地优先级值的整数值来对所述多条路由中的一条或多条进行排序和选择。
3.根据权利要求1所述的方法,其中,存储定义多条规则的数据包括:相关于每个所述路由特性的可能状态的总数,来存储定义线性数量的规则的数据,其中,线性数量的所述规则将每个所述比特字段与所述不同的路由特性进行关联,并针对每个所述不同的路由特性定义将所述比特字段优先级值与所述对应的路由特性的每个可能的状态进行关联的映射。
4.根据权利要求1所述的方法,进一步包括:
根据定义至少一条路由和为所述至少一条路由确定的本地优先级值的路由协议生成消息;以及
将所述消息转发至另一路由器,所述另一路由器包含在所述网络中,且不同于描述至少一条路由和为所述至少一条路由所确定的本地优先级值的路由器。
5.根据权利要求4所述的方法,
其中,所述消息包括根据边缘网关协议生成的更新消息,
其中,所述边缘网关协议更新消息包括定义为所述至少一条路由所确定的本地优先级值的本地优先级(local pref)字段。
6.根据权利要求1所述的方法,其中,所述路由特性包括邻近关系、路由验证状态、社区类型、可用带宽、总带宽、自治系统(AS)路径(“AS_Path”)、源路由的IGP区域或等级、源协议、源示例以及初始属性。
7.根据权利要求1所述的方法,
其中,所述多条路由中的所述至少一条包括定义通过所述网络到达目的地的多个跳的第一路由,
其中,所述本地优先级值包括与所述第一路由相关联的第一本地优先级值,
其中,所述多条路由中的第二路由定义通过所述网络到达由所述第一路由定义的同一目的地的不同的多个跳,以及
其中,所述多条路由中的所述第二路由与第二本地优先级值相关联,
所述方法进一步包括利用所述路由器进行路由解析以基于所述第一本地优先级值和所述第二本地优先级值选择所述第一路由或所述第二路由。
8.根据权利要求7所述的方法,其中,执行路由解析包括:确定所述第一本地优先级值是否大于所述第二本地优先级值;以及
基于对所述第一本地优先级值大于所述第二本地优先级值的确定来选择所述第一路由。
9.根据权利要求7所述的方法,其中,执行路由解析包括:确定所述第一本地优先级值是否大于所述第二本地优先级值;以及
基于对所述第一本地优先级值小于所述第二本地优先级值的确定来选择所述第一路由。
10.根据权利要求7所述的方法,进一步包括:
将所述第一路由或所述第二路由中所选择的一个建立到所述路由器的转发平面中;以及
利用所述路由器的所述转发平面根据所建立的路由转发数据包。
11.根据权利要求1所述的方法,其中,利用所述路由器将所述多条路由中的至少一条与所确定的本地优先级值进行关联包括:将所述本地优先级值和所述多条路由中的至少一条存储到由所述路由器的路由平面维护的路由表的单独项中。
12.根据权利要求1所述的方法,进一步包括:通过路由协议接收定义所述多条路由的信息;以及通过由包含在所述路由器中的用户界面模块呈现的用户界面接收来自管理员的定义规则的数据。
13.一种路由器,包括:
至少一个接口卡,用于根据路由协议接收路由协议消息,每个所述至少一个接口卡均定义描述多条路由中的一条或多条的信息,其中,所述多条路由中的每一条均定义通过网络到达目的地的跳的序列;以及
控制单元,用于存储定义规则的数据,所述路由器通过所述规则确定所述多条路由中至少一条的本地优先级值,其中,所述优先级值被由所述路由器实现的路由协议指定为整数值,其中,所述路由器在路由解析过程中根据所述路由协议利用所述优先级值对所述多条路由中的一条或多条进行排序和选择,以及其中,所述规则将由所述路由协议指定的所述本地优先级值重新定义为两个或更多比特字段,以及其中,所述规则将每个所述比特字段与不同的路由特性进行关联,并针对每个所述不同的路由特性定义将比特字段优先级值与对应的路由特性的每个可能的状态进行关联的映射,
其中,所述控制单元还确定由所述映射定义的每个所述不同的路由特性的状态,利用与所述映射中的所确定的状态相关联的所述比特字段优先级值中的一个来设置所述本地优先级值的两个或更多比特字段中的每一个,并将所述多条路由中的至少一条与所述本地优先级值的所确定的整数值进行关联。
14.根据权利要求13所述的路由器,其中,所述控制单元包括:
用户界面模块,用于呈现具有输入语法的用户界面,用户使用所述用户界面输入独立于其他路由特性的关于每个路由特性的比特字段优先级值,以使所述比特字段优先级值作为独立的参数;以及
路由协议模块,用于执行所述路由协议以进行路由解析,从而利用所述本地优先级值作为所述路由协议中的单个参数而基于所确定的所述本地优先级值的整数值来对所述多条路由中的一条或多条进行排序和选择。
15.根据权利要求13所述的路由器,进一步包括策略数据库,用于相关于每个所述路由特性的可能状态的总数来存储定义线性数量的规则的数据,其中,线性数量的所述规则将每个所述比特字段与所述不同的路由特性进行关联,并针对每个所述不同的路由特性定义将所述比特字段优先级值与所述对应的路由特性的每个可能的状态进行关联的映射。
16.根据权利要求13所述的路由器,
其中,所述控制单元包括路由协议模块,用于根据定义至少一条路由和为所述至少一条路由确定的本地优先级值的路由协议生成消息;以及
其中,所述至少一个接口卡将所述消息转发至另一路由器,所述另一路由器包含在所述网络中,且不同于描述至少一条路由和为所述至少一条路由所确定的本地优先级值的路由器。
17.根据权利要求16所述的路由器,
其中,所述消息包括根据边缘网关协议生成的更新消息,
其中,所述边缘网关协议更新消息包括定义为所述至少一条路由所确定的本地优先级值的本地优先级(local_pref)字段。
18.根据权利要求13所述的路由器,其中,所述路由特性包括邻近关系、路由验证状态、社区类型、可用带宽、总带宽、自治系统(AS)路径(“AS_Path”)、源路由的IGP区域或等级、源协议、源示例、以及初始属性。
19.根据权利要求13所述的路由器,
其中,所述多条路由中的所述至少一条包括定义通过所述网络到达目的地的多个跳的第一路由,
其中,所述本地优先级值包括与所述第一路由相关联的第一本地优先级值,
其中,所述多条路由中的第二路由定义通过所述网络到达由所述第一路由定义的同一目的地的不同的多个跳,
其中,所述多条路由中的所述第二路由与第二本地优先级值相关联,以及
其中,所述控制单元进一步进行路由解析以基于所述第一本地优先级值和所述第二本地优先级值选择所述第一路由或所述第二路由。
20.根据权利要求19所述的路由器,其中,所述控制单元包括路由解析模块,用于确定所述第一本地优先级值是否大于所述第二本地优先级值;并基于对所述第一本地优先级值大于所述第二本地优先级值的确定来选择所述第一路由。
21.根据权利要求19所述的路由器,其中,所述控制单元包括路由解析模块,用于确定所述第一本地优先级值是否大于所述第二本地优先级值;并基于对所述第一本地优先级值小于所述第二本地优先级值的确定来选择所述第一路由。
22.根据权利要求19所述的路由器,其中,所述控制单元包括:转发平面;以及
路由平面,包括路由解析模块,其中,所述路由解析模块将所述第一路由或所述第二路由中所选择的一个建立到所述路由器的转发平面中;以及
其中,所述转发平面根据所建立的路由转发数据包。
23.根据权利要求13所述的路由器,进一步包括路由信息库,用于将所述本地优先级值和所述多条路由中的至少一条存储到路由表的单独项中。
24.根据权利要求13所述的路由器,其中,所述控制单元包括:路由协议模块,用于通过路由协议接收定义所述多条路由的信息;以及
用户界面模块,用于呈现用来接收来自管理员的定义规则的数据的用户界面。
25.一种网络系统,包括:
第一自治系统,包括第一路由器;以及
第二自治系统,包括第二路由器,
其中,所述第二路由器包括:
至少一个接口卡,用于根据路由协议从所述第一路由器接收路由协议消息,每个所述至少一个接口卡均定义描述多条路由中的一条或多条的信息,其中,所述多条路由中的每一条均定义通过网络到达目的地的跳的序列;以及
控制单元,用于存储定义规则的数据,所述第二路由器通过所述规则确定所述多条路由中至少一条的本地优先级值,其中,所述优先级值被由所述第二路由器实现的路由协议指定为整数值,其中,所述第二路由器在路由解析过程中根据所述路由协议利用所述优先级值对所述多条路由中的一条或多条进行排序和选择,以及其中,所述规则将由所述路由协议指定的所述本地优先级值重新定义为两个或更多比特字段,以及其中,所述规则将每个所述比特字段与不同的路由特性进行关联,并针对每个所述不同的路由特性定义将比特字段优先级值与对应的路由特性的每个可能的状态进行关联的映射,
其中,所述控制单元还确定由所述映射定义的每个所述不同的路由特性的状态,利用与所述映射中的所确定的状态相关联的所述比特字段优先级值中的一个来设置所述本地优先级值的两个或更多比特字段中的每一个,并将所述多条路由中的至少一条与所述本地优先级值的所确定的整数值进行关联。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/463,758 | 2009-05-11 | ||
US12/463,758 US8064443B2 (en) | 2009-05-11 | 2009-05-11 | Scalable routing policy construction using dynamic redefinition of routing preference value |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101888334A CN101888334A (zh) | 2010-11-17 |
CN101888334B true CN101888334B (zh) | 2012-10-24 |
Family
ID=42194701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101782332A Expired - Fee Related CN101888334B (zh) | 2009-05-11 | 2010-05-11 | 利用路由优先级值的动态重定义的可扩展路由策略结构 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8064443B2 (zh) |
EP (1) | EP2252011B1 (zh) |
CN (1) | CN101888334B (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9077607B2 (en) * | 2010-07-23 | 2015-07-07 | Force10 Networks, Inc. | Border gateway protocol inbound policy optimization |
US9100348B2 (en) * | 2011-10-03 | 2015-08-04 | Intel Corporation | Managing sideband routers in on-die system fabric |
CN103259717B (zh) * | 2012-02-17 | 2017-02-01 | 华为技术有限公司 | 一种基于策略定制的路由方法和设备 |
CN103036801B (zh) * | 2012-12-18 | 2019-06-14 | 网神信息技术(北京)股份有限公司 | 数据包的处理方法及装置 |
CN103152272B (zh) * | 2013-02-26 | 2016-06-08 | 杭州华三通信技术有限公司 | 一种bgp邻居关系维护方法及设备 |
CN103236990B (zh) * | 2013-05-13 | 2016-10-05 | 杭州华三通信技术有限公司 | 一种路由信息同步的方法和设备 |
WO2014206858A1 (en) * | 2013-06-28 | 2014-12-31 | Nokia Solutions And Networks Oy | Radio-access-network mechanism for offloading with priority booster |
US9559990B2 (en) | 2013-08-27 | 2017-01-31 | Oracle International Corporation | System and method for supporting host channel adapter (HCA) filtering in an engineered system for middleware and application execution |
US9577928B2 (en) | 2013-08-27 | 2017-02-21 | Oracle International Corporation | System and method for supporting data service addressing in an engineered system for middleware and application execution |
US9654482B2 (en) * | 2014-01-22 | 2017-05-16 | Cisco Technology, Inc. | Overcoming circular dependencies when bootstrapping an RPKI site |
US9641430B2 (en) * | 2014-01-22 | 2017-05-02 | Cisco Technology, Inc. | Verifying data plane paths based on a validated secure control plane |
US9479475B1 (en) | 2014-03-17 | 2016-10-25 | Michael E. Mazarick | System and method for IPv4 to IPv6 transition rather than an outage |
US9455908B2 (en) * | 2014-07-07 | 2016-09-27 | Cisco Technology, Inc. | Bi-directional flow stickiness in a network environment |
CA2959022C (en) | 2014-08-22 | 2020-12-08 | Level 3 Communications, Llc | Software defined networking portal |
US9723009B2 (en) | 2014-09-09 | 2017-08-01 | Oracle International Corporation | System and method for providing for secure network communication in a multi-tenant environment |
US9503363B2 (en) | 2015-03-16 | 2016-11-22 | Cisco Technology, Inc. | Segment routing label switch paths in network functions virtualization communications networks |
US20160337174A1 (en) * | 2015-05-15 | 2016-11-17 | David Francis Jorm | Automated network peering in a social-network model |
US9979629B2 (en) | 2015-08-21 | 2018-05-22 | Cisco Technology, Inc. | Distribution of segment identifiers in network functions virtualization and software defined network environments |
US9942140B2 (en) | 2015-10-08 | 2018-04-10 | Arista Networks, Inc. | Dynamic forward information base prefix optimization |
US9960994B2 (en) * | 2016-03-23 | 2018-05-01 | Juniper Networks, Inc. | Method, system, and apparatus for forwarding network traffic using minimal forwarding information bases |
CN114205312A (zh) * | 2016-06-30 | 2022-03-18 | 华为技术有限公司 | 一种生成表项的方法和设备 |
US10511530B2 (en) * | 2016-12-13 | 2019-12-17 | Viasat, Inc. | Return-link routing in a hybrid network |
US9942409B1 (en) * | 2017-07-05 | 2018-04-10 | State Farm Mutual Automobile Insurance Company | System and computer-implemented method for translating coding language for graphical scripts |
US11212210B2 (en) * | 2017-09-21 | 2021-12-28 | Silver Peak Systems, Inc. | Selective route exporting using source type |
US11032183B2 (en) * | 2017-10-06 | 2021-06-08 | Nicira, Inc. | Routing information validation in SDN environments |
US11201813B2 (en) * | 2019-05-10 | 2021-12-14 | Level 3 Communications, Llc | System and method for distribution of routes in a telecommunications network |
CN112543144A (zh) * | 2019-09-20 | 2021-03-23 | 北京华为数字技术有限公司 | 一种链路属性确定方法、路由计算方法及装置 |
US11425022B1 (en) | 2019-09-30 | 2022-08-23 | Juniper Networks, Inc. | Service-based tunnel selection scheme for mapping services to tunnels |
US11190461B2 (en) | 2019-09-30 | 2021-11-30 | Juniper Networks, Inc. | Mapping services to tunnels in order to forward packets using a network device |
US11271849B1 (en) | 2019-12-30 | 2022-03-08 | Juniper Networks, Inc. | Service-based tunnel selection scheme for mapping services to tunnels |
CN113595901A (zh) * | 2020-04-30 | 2021-11-02 | 华为技术有限公司 | 一种基于边界网关协议的路由选择方法及装置 |
CN113595902A (zh) * | 2020-04-30 | 2021-11-02 | 华为技术有限公司 | 一种基于边界网关协议的路由选择方法及网络设备 |
US11323387B2 (en) * | 2020-05-18 | 2022-05-03 | Juniper, Networks, Inc. | Prioritized communication session establishment in computer networks |
CN111726415B (zh) * | 2020-06-30 | 2021-12-21 | 国电南瑞科技股份有限公司 | 一种基于负反馈机制的tcp长连接负载均衡调度方法及系统 |
US11323357B1 (en) * | 2021-03-31 | 2022-05-03 | Arista Networks, Inc. | Accessing varying route attribute states during routing policy application on network devices |
CN114070786B (zh) * | 2021-11-11 | 2023-07-11 | 北京天融信网络安全技术有限公司 | 一种策略路由动态调度方法及装置 |
US12007910B1 (en) * | 2021-11-22 | 2024-06-11 | Amazon Technologies, Inc. | Resource public key infrastructure (RPKI) validation system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020078223A1 (en) * | 2000-10-17 | 2002-06-20 | Baldonado Omar C. | Method and apparatus for performance and cost optimization in an internetwork |
US20050198382A1 (en) * | 2004-01-27 | 2005-09-08 | Cisco Technology, Inc. | Routing systems and methods for implementing routing policy with reduced configuration and new configuration capabilities |
CN101340374A (zh) * | 2008-08-28 | 2009-01-07 | 杭州华三通信技术有限公司 | 控制传输优先级的方法、系统、装置和用户网络边缘设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6584093B1 (en) * | 1998-08-25 | 2003-06-24 | Cisco Technology, Inc. | Method and apparatus for automatic inter-domain routing of calls |
US7336613B2 (en) * | 2000-10-17 | 2008-02-26 | Avaya Technology Corp. | Method and apparatus for the assessment and optimization of network traffic |
US7630392B2 (en) * | 2005-05-31 | 2009-12-08 | Cisco Technology, Inc. | Multi-homing using controlled route leakage at a backup service provider |
US7855953B2 (en) * | 2005-10-20 | 2010-12-21 | Cisco Technology, Inc. | Method and apparatus for managing forwarding of data in an autonomous system |
US20070091794A1 (en) * | 2005-10-20 | 2007-04-26 | Clarence Filsfils | Method of constructing a backup path in an autonomous system |
US8023504B2 (en) * | 2008-08-27 | 2011-09-20 | Cisco Technology, Inc. | Integrating security server policies with optimized routing control |
-
2009
- 2009-05-11 US US12/463,758 patent/US8064443B2/en not_active Expired - Fee Related
-
2010
- 2010-04-19 EP EP10160376A patent/EP2252011B1/en not_active Not-in-force
- 2010-05-11 CN CN2010101782332A patent/CN101888334B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020078223A1 (en) * | 2000-10-17 | 2002-06-20 | Baldonado Omar C. | Method and apparatus for performance and cost optimization in an internetwork |
US20050198382A1 (en) * | 2004-01-27 | 2005-09-08 | Cisco Technology, Inc. | Routing systems and methods for implementing routing policy with reduced configuration and new configuration capabilities |
CN101340374A (zh) * | 2008-08-28 | 2009-01-07 | 杭州华三通信技术有限公司 | 控制传输优先级的方法、系统、装置和用户网络边缘设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101888334A (zh) | 2010-11-17 |
US8064443B2 (en) | 2011-11-22 |
US20100284403A1 (en) | 2010-11-11 |
EP2252011A1 (en) | 2010-11-17 |
EP2252011B1 (en) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101888334B (zh) | 利用路由优先级值的动态重定义的可扩展路由策略结构 | |
CN101455030B (zh) | 动态共享风险节点组(srng)成员发现 | |
US8521905B2 (en) | System for flexible and extensible flow processing in software-defined networks | |
US8711860B2 (en) | Controller for flexible and extensible flow processing in software-defined networks | |
TW202026896A (zh) | 在網路路由環境中的非同步物件管理機制 | |
US8718064B2 (en) | Forwarding element for flexible and extensible flow processing software-defined networks | |
EP3070895B1 (en) | Encapsulation method and system for flow identifier | |
CN107770073B (zh) | 一种信息同步的方法,装置及系统 | |
CN103166874A (zh) | 一种报文转发方法及设备 | |
WO2006101823A2 (en) | System and method for routing isis traffic through unidirectional links of a computer network | |
US9426025B2 (en) | Method and a controller device for configuring a software-defined network | |
CN101789949B (zh) | 一种实现负荷分担的方法和路由设备 | |
US9467374B2 (en) | Supporting multiple IEC-101/IEC-104 masters on an IEC-101/IEC-104 translation gateway | |
EP2515485B1 (en) | Method for distributing routing information for redundant connections | |
CN101616093A (zh) | 一种用户接入多归属网络实现方法、装置及网络设备 | |
CN113904981B (zh) | 一种路由信息处理方法、装置、电子设备和存储介质 | |
CN107360089A (zh) | 一种路由建立方法、业务数据转换方法及装置 | |
CN114422415A (zh) | 在分段路由中的出口节点处理流 | |
CN113163276A (zh) | 路由信息的发布方法、装置及系统 | |
CN110572326A (zh) | 转发路径的建立方法、装置、网络设备及系统 | |
CN1898903B (zh) | 用于在通信网络中执行路由操作的方法和设备 | |
CN105308933A (zh) | 使用原始tcp封装通过tcp/ip来串行地进行传输 | |
WO2023169364A1 (zh) | 路由生成方法、数据报文的转发方法及装置 | |
WO2020100150A1 (en) | Routing protocol blobs for efficient route computations and route downloads | |
CN108965120A (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 | ||
C56 | Change in the name or address of the patentee |
Owner name: JUNIPER NETWORKS INC. Free format text: FORMER NAME: NETSCREEN TECHNOLOGIES INC. |
|
CP01 | Change in the name or title of a patent holder |
Address after: California, USA Patentee after: Juniper Networks, Inc. Address before: California, USA Patentee before: Jungle network |
|
CP01 | Change in the name or title of a patent holder | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121024 Termination date: 20190511 |
|
CF01 | Termination of patent right due to non-payment of annual fee |