用于确定对等路由器的能力和配置的TTL探询技术转让专利

申请号 : CN200480026122.2

文献号 : CN1849796B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 大卫·安东尼·库克

申请人 : 思科技术公司

摘要 :

一种探询技术,允许路由器高效地确定邻居(对等)路由器的能力和配置。此外,该技术允许邻接的对等路由器在建立路由器之间的路由会话之前,“在协议之外”协商能力,所述协议例如是路由协议。在本上下文中,术语“在协议之外”表示在协议分组(消息)实现中,没有可被用来协商能力的字段。此外,本发明的技术排除了对手工配置路由器以支持特定能力和在都支持该能力但并没有意识到该能力的路由器的网络内正确地互操作的需要。

权利要求 :

1.一种用于允许路由器高效地确定计算机网络中的对等路由器的能力和配置的方法,该方法包括以下步骤:在所述路由器和所述对等路由器之间建立会话之前从所述路由器向所述对等路由器发送初始消息,所述初始消息包括所述能力的第一预定值;

如果所述路由器接收到来自所述对等路由器的对所述初始消息的肯定确认,则确定所述对等路由器支持使用新的操作能力模式的消息交换;以及如果所述路由器接收到来自所述对等路由器的对所述初始消息的否定确认,则断定所述对等路由器不支持所述新的操作能力模式并且通过重新发送具有所述能力的第二预定值的初始消息来切换到旧的操作能力模式。

2.如权利要求1所述的方法,其中所述断定步骤包括以下步骤:如果所述路由器在预定时间内根本没有接收到响应,则断定所述对等路由器不支持所述新的操作能力模式。

3.如权利要求1所述的方法,其中所述初始消息是边界网关协议BGP路由协议消息,其中所述能力是存活时间TTL参数。

4.如权利要求3的方法,其中所述新的操作能力模式由BGP TTL安全破解BTSH定义。

5.如权利要求4所述的方法,其中所述TTL参数的第一预定值是255。

6.如权利要求3所述的方法,其中所述TTL参数的第二预定值是1。

7.如权利要求1所述的方法,还包括响应于所述路由器接收到来自所述对等路由器的对所述初始消息的否定确认来执行以下步骤:更新所述对等路由器以支持所述新的操作能力模式;

重启所述对等路由器,从而破坏所述路由器之间的已有会话;

通过发送具有所述能力的第一预定值的消息来建立新会话;以及使用具有所述能力的第一预定值的消息在所述路由器之间进行通信。

8.一种用于允许路由器高效地确定计算机网络中的对等路由器的能力和配置的设备,该设备包括:用于在所述路由器和所述对等路由器之间建立会话之前从所述路由器向所述对等路由器发送初始消息的装置,所述初始消息包括所述能力的第一预定值;

用于如果所述路由器接收到来自所述对等路由器的对所述初始消息的肯定确认,则确定所述对等路由器支持使用新的操作能力模式的消息交换的装置;以及用于如果所述路由器接收到来自所述对等路由器的对所述初始消息的否定确认,则断定所述对等路由器不支持所述新的操作能力模式的装置并且通过重新发送具有所述能力的第二预定值的初始消息来切换到旧的操作能力模式的装置。

9.如权利要求8所述的设备,其中断定装置包括:用于如果所述路由器在预定时间内根本没有接收到响应,则断定所述对等路由器不支持所述新的操作能力模式的装置。

10.如权利要求8所述的设备,其中所述初始消息是边界网关协议BGP路由协议消息,所述能力是存活时间TTL参数。

11.如权利要求8所述的设备,其中所述新的操作能力模式由BGPTTL安全破解BTSH定义。

12.如权利要求8所述的设备,还包括对所述路由器接收到来自所述对等路由器的对所述初始消息的否定确认进行响应的以下装置:用于更新所述对等路由器以支持所述新的操作能力模式的装置;

用于重启所述对等路由器,从而破坏所述路由器之间的已有会话的装置;

用于通过发送具有所述能力的第一预定值的消息来建立新会话的装置;以及用于使用具有所述能力的第一预定值的消息在所述路由器之间进行通信的装置。

说明书 :

技术领域

本发明总地涉及计算机网络,更具体地说,涉及在路由器上执行的路由协议的对等建立处理期间,高效地发现路由器的能力。

背景技术

计算机网络是用于在诸如计算机等节点之间传输数据的互连的通信链路和子网络(子网)在地理上的分布式集合。有从局域网(LAN)到广域网(WAN)的很多种计算机网络。节点一般根据诸如传输控制协议/因特网协议(TCP/IP)等预定义的协议,通过交换数据的离散分组或消息来进行通信。在本上下文中,协议由一组定义了节点彼此交互的方式的规则组成。TCP/IP体系结构是公知的,其在Prentice-Hall于1996年出版的Andrew S.Tanenbaum的Computer Networks,3rdEdition中有所描述。
计算机网络还可通过诸如路由器等中间节点互连,以扩展每个网络的有效“大小”。由于对互连的计算机网络的大系统的管理是繁重的,因此较小的计算机网络的群组可被维护为自治系统或路由域。路由域内的网络一般由传统的“域内”路由器耦合在一起。但是还希望增加能够交换数据的节点数量;在此情形下,执行域间路由协议的域间路由器被用来互连各种自治系统的节点。
域间路由协议的示例是边界网关协议版本4(BGP-4),其通过在系统的相邻域间路由器之间交换路由和可到达性信息来执行路由。BGP-4路由协议是公知的,并在以下文献中被详细描述:Request For Comments(RFC)1771,by Y.Tekhter and T.Li(1995);Internet Draft;A Border Gateway Protocol4(BGP-4)by Y.Tekhter and T.Li(April2003);和Addison Wesley Publishing Company于1992年出版的R.Perlman的Interconnections,Bridges and Routers的323—329页,这些文献的全部公开内容通过引用被包含于此。
被配置为执行BGP-4协议的域间路由器在这里被称为BGP路由器,其执行包括路由消息传输等的各种路由功能。邻接是在被选择用于交换路消息和抽取网络拓扑的相邻(对等)路由器之间形成的关系。但是,在传送这种消息之前,BGP对等体合作建立路由器之间的逻辑“对等”连接(会话)。BGP-4通过TCP连接操作可靠的传输协议。每个对等路由器上执行的TCP进程根据涉及TCP分组或报文段数据结构的交换的传统的“3次握手”协定来建立TCP连接。TCP协议和TCP连接的建立在ComputerNetworks,3rdEdition,具体是在其521—542页中有所描述,该文献全文通过引用而被包含于此。
图1是TCP报文段100的格式的部分概要框图。TCP报文段包括TCP头部110,该头部包括包含16位源端口号的源端口字段112和包含16位目的地端口号的目的地端口字段114。源端口号被接收对等路由器(即BGP接收器)用来答复发送对等路由器(即BGP发送器)发出的TCP报文段100。序列号字段116包含报文段中第一数据字节的序列号,确认号字段118包含表明接收器期望接收的下一序列号的值。注意,字段118中包含的值仅当确认控制位(ACK120)被断言后才有效。除了ACK位120以外,TCP报文段110还包括其他控制位,例如同步位(SYN122)和结束位(FIN124),后者标记从发送器传送的数据的结束。通过发送具有断言的FIN位124的TCP报文段,完成TCP连接的显式终止(关断)。
为了建立TCP连接,对等路由器上的TCP进程必须在彼此的初始序列号上同步。这是在交换携带SYN122控制位和初始序列号116的连接建立报文段中完成的。同步需要每个对等路由器根据3次握手协定发送其自己的初始序列号并接收来自另一对等路由器的肯定(确认)。所得到的TCP连接由字段112、114中包含的端口号和对等路由器的IP地址标识。IP地址包含在报文段的IP头部中。
图2是IP头部200的格式的部分概要示意图,包括包含发送实体(例如发送或发起对等路由器)的IP源地址的源地址字段220和包含接收实体(例如接收对等路由器)的IP目的地地址的目的地地址字段230,等等。此外,IP头部200包括8位存活时间(TTL)字段210,该字段包含指示允许报文段(消息)在网络中存留的最长时间的参数。对于很多路由协议(包括在不可靠传输上运行或者实现TCP之外的可靠传输的协议),在路由消息中,TTL参数被设置为1。这表明邻居在同一子网上,并且在对等路由器之间仅有一“跳”的距离。
BGP路由器一般传送这样的BGP消息,该消息的TTL对于所有直接连接的对等体都是1。然后,对于所有的传入BGP消息,TTL可以被检查以确保其为0。即,如果BGP路由器正与路由对等体通信并且消息的TTL被设置为1,则当消息到达路由器时TTL应该是0(或1),因为消息不应当穿过多于一个路由器到达其他子网。注意,对于BGP,TTL并不总是被设置为1,因为邻接可以跨越多个“跳”(对于多跳BGP)。在后一情形下,TTL被设置为2、3或任意多跳计数。
一个问题是,可能会有发起于几跳之外的针对BGP路由器的攻击,以例如用多于路由器处理能力的数据来使路由器过载。通常,路由器上的认证处理执行认证(例如MD5或IP-SEC)操作来确保它从它的对等体处接收的数据是正确的。在BGP路由处理的情形下,TCP进程认证消息的TCP头部。但是,这些认证操作需要额外的处理,并且从而消耗诸如中央处理单元(CPU)等路由器资源。
虽然额外的处理确实保证了不会发送无效数据,但是由于例如允许攻击者发送“假”消息,所以这种额外处理将路由器暴露给进一步的攻击。认证处理被强迫认证这些消息并且在它们认证失败时将其丢弃。但是,如果攻击者发送给路由器的信息多于路由器可以处理的,则攻击者可能获得其所希望的效果,即强迫路由器重启。即,假数据消息过载强迫路由器重启,从而攻击者能够穿透路由器或仅仅是干扰服务。此外,路由器可以执行过滤操作来确保路由协议消息的TTL是1或0(而不是某些其他的值)。这种过滤允许路由器迅速丢弃假消息,因为检查TTL字段的值比必须对消息执行加密型认证操作来确定其是否为假更容易。
但是,来自子网外部的攻击者可通过例如将TTL设置为与从其到路由器的跳数相一致的值来发送路由器将会接受的消息。在转发消息的每个路由器处,TTL字段被减一。当消息到达该子网/链路时,它看上去就像是源自于该链路上一样。换言之,在路由器处接收的消息将具有与源自于该链路上的路由器的每个其他消息相同的TTL(即,1)。因此,如果攻击者能够确定它到路由器有多少跳,它就能成功地发起对路由器的攻击。攻击者还能编造消息的IP头部中的源地址,以使得看上去消息是源自于目的地本地子网。
对该问题的一种解决方案是根据BGP TTL安全破解(hack)(BTSH),将TTL参数设置为高值,例如254。BTSH是公知的,并且在V.Gill et al.(May2003)的题为The BGP TTL Security Hack(BTSH)的Internet Draft中被详细描述,其全文通过引用而被包含于此。BTSH被设计为保护BGP[RFC1771]基础设施不受基于CPU使用的攻击,并且最终提供保护BGP路由器不受攻击的过程。例如,在直接连接路由器的情形下,BTSH过程指定将BGP连接的TCP TTL设置为范围255—254内的值。
在路由对等体接收路由消息时,它检查TTL字段以确认TTL值不小于254,而不是0或1。这确保了消息源自于与路由器相同的子网而且不是从其他子网转发来的。这类似于发送TTL为1的消息并且在接收对等体处确认它是0。这里,TTL被发送时值为255,而路由对等体在接收时确认值是254。
普遍认为,将BTSH(以及TTL为255)用于被传送的BGP路由消息是更安全的。因此,希望在BGP路由器处接收的传入BGP消息对于直接连接的对等体来说具有值为254的TTL。对BGP路由器的攻击可能会源自于连接对等体的链路上,以具有值为254的TTL。如果攻击者从子网外部攻击路由器,则很难(如果不是不可能的话)将TTL值为254的消息导向路由器,因为攻击者可设置的TTL参数的最大值是255。当具有该值的消息从子网外部被转发时,它在到达路由器时将具有小于254的值。
通过仅接受具有值为253或更少的TTL的消息,多跳BGP可使用与上述相同的方法,其中TTL参数的值对应于BGP对等体之间的跳数。因此,路由器可被配置为由于TTL值而丢弃(不接受)消息。该解决方案大大限制了可以对路由器的攻击的发源地;例如,这种攻击可能需要从子网/链路的本地站点发起,而这一般是很难做到的,因为攻击者必须与路由器在地理上位于同一区域。
该解决方案的一个问题涉及更新路由器以支持BTSH。更新路由器的一个方法是通过使用例如传统配置命令来“手工”配置。不仅路由器需要这种手工配置,路由器的对等体也必须同时被配置以支持BTSH。具体而言,支持用于BGP会话的BTSH的路由器配置一般发生在全部对等体的基础上。在潜在的数千对等会话上配置BTSH选项是很耗时的,而且还增加了配置不匹配的可能性,这种不匹配会阻碍对等会话的建立。在作为对等体的两个路由器上同时协调更新也是很困难的。因此需要一种技术来自动地检测对等体是否支持和正在使用BTSH选项。
更新的另一种方法是通过对等路由器之间的能力交换。例如,一旦TCP连接被建立,BGP对等路由器就交换消息,以开启和确认与该连接相关联的各种参数。BGP路由器交换的初始消息是“OPEN”消息,其开启对等体之间的BGP通信会话。在OPEN消息被交换之后,KEEPALIVE消息被BGP路由器周期性地发出,以通知其对等路由器它是“活的”和活动的。OPEN消息数据结构主要是一种便于路由器在开始相邻对等体关系时标识自身的手段。KEEPALIVE和OPEN消息的格式和功能在RFC1771和Internet Draft中被描述。
在典型的能力交换中,会话必须在任何能力协商继起之前被建立。例如,由于BGP在TCP上运行,因此TCP会话必须在任何路由协议能力可被协商之前建立。一般很难在会话建立之后,“在路由协议中”协商诸如TTL参数等路由协议能力,因为会话(过程)已经进行了很多。在此上下文中,术语“在路由协议中”表示在路由协议消息(分组)实现中有一个可被使用的字段(“行为”)。因此,需要“在路由协议外”的技术来在发起路由协议对等会话之前实现高效的能力协商。

发明内容

本发明通过提供允许路由器高效地确定邻居(对等)路由器的能力和配置的探询技术,克服了现有技术中的缺点。此外,该技术使得邻接的对等路由器就能够在路由器之间建立路由会话之前,“在协议之外”协商能力,所述协议例如是路由协议。在本上下文中,术语“在协议之外”表示在协议分组(消息)实现中没有可用于协商能力的字段。此外,本发明的技术消除了对手工配置路由器以支持特定能力和在都支持该能力但是没有意识到该能力的路由器网络中正确地互操作的需要。
一般地说,本发明的技术允许(发起或接收)路由器通过发送包括能力的第一预定值的初始消息,或者通过关注由对等路由器发起的消息中的能力值,来自动地确定对等路由器支持哪种操作能力模式。在会话发起的情形下,如果路由器接收到来自对等路由器的对初始消息的肯定确认,则它确定对等路由器支持使用新的操作能力模式的消息交换。但是,如果路由器接收到来自对等路由器的对初始消息的否定确认,或者没有确认,则它判断对等路由器不支持新的操作能力模式。于是,发起路由器通过重新发送具有能力的第二预定值的初始消息来“切换”到旧的操作能力模式。
在示例性实施例中,路由器被配置为执行边界网关协议版本4(BGP)路由协议,并且所述能力是存活时间(TTL)参数。此外,TTL参数能力的第一预定值由BGP TTL安全破解(BTSH)定义。具体而言,发起路由器通过发送TTL为255的BGP消息然后等待来自对等路由器的响应,来自动地确定对等路由器支持哪种操作TTL模式。如果该消息被接收到并且被肯定确认,则发起路由器确定对等路由器支持使用新BTSH模式的消息交换,发送值为255的TTL的安全益处被自动实现。
但是,如果发起路由器接收到否定确认(或者在预定时间内根本没接收到响应),则它断定对等路由器未被更新到新的BTSH操作模式,并且通过重新发送具有等于1的TTL的第二预定值的初始消息(以及后续消息)来切换到普通模式。更具体而言,路由器使用等于1或跳数(在BGP多跳的情形下)的TTL值来重新发起利用普通模式的会话/邻接建立。因此,本发明的技术允许新旧模式的路由器实现之间的互操作,而无需额外的配置。
此后,响应于更新到新的BTSH操作模式,对等路由器重启,导致已有的会话被破坏。尝试建立新会话的路由器最初发送TTL为255的一个或多个消息。由于现在两个路由器都在没有任何手工配置的情况下被更新,因此对等路由器认识到TTL为255的消息符合BTSH模式,并且它响应以TTL为255的消息。然后,两个路由器都使用TTL为255的消息进行通信。于是,每个支持BTSH的路由器都可建立诸如接入列表等安全结构,或者使用处理来拒绝TTL小于254(或其他值)的消息/分组。
有益地,TTL探询技术允许支持BTSH的路由器确定它们的对等路由器是否“默认地”(即不需协商地)具有兼容的TTL能力。否则,每个路由器将必须被手工配置以在全部对等体、全部路由协议配置级别上支持BTSH。手工配置代表大量的额外开销,需要消耗大量管理时间和精力。本发明避免了这种手工配置,并进一步允许支持BTSH的路由器“自动地”互操作。此外,本发明的技术排除了对当前的协议规范进行诸如状态机改变等任何改变,这实现了在被配置用于旧和新实现模式的对等路由器之间的互操作性。

附图说明

参照下面的说明并结合附图,可更好地理解本发明的上述和其他优点,在附图中,相似的标号指示相同或功能上类似的元件:
图1是用来建立计算机网络的对等路由器之间的TCP连接的传输控制协议(TCP)报文段的格式的部分概要框图;
图2是可被有益地与本发明一起使用的因特网协议头部的格式的部分概要示意图;
图3是包括由诸如边界网关协议(BGP)域间路由器等中间节点互连的多个自治系统的计算机网络的概要框图;
图4是包括耦合到存储器和多个网络接口的路由器处理器的域间路由器的实施例的概要框图;
图5是图4的域间路由器中的诸如因特网通信协议栈等传统协议栈的概要框图;以及
图6是描述了根据本发明允许发起对等路由器高效地确定接收对等路由器的能力和配置的步骤序列的流程图。

具体实施方式

图3是计算机网络300的概要框图,计算机系统300包括由诸如传统的域内路由器320和域间路由器400等中间节点互连的多个自治系统或路由域。自治系统可包括由域间路由器互连的多个路由域(AS1-4)。域间路由器400进一步被共享介质网络互连,所述共享介质网络例如是局域网(LAN)304和点到点链路(例如帧中继链路、异步传输模式链路或其他串行链路)302。一般通过根据诸如传输控制协议/因特网协议(TCP/IP)等预定义的协议来交换离散的数据分组或消息,来实现路由器之间的通信。本领域的技术人员应当理解,诸如因特网分组交换(IPX)协议等其他协议可有益地与本发明一起使用。
每个路由器一般包括多个互连的元件,例如处理器、存储器和网络接口适配器。图4是域间路由器400的概要框图,域间路由器400包括经由总线405耦合到存储器404和多个网络接口适配器410A-C的路由处理器402。每个网络接口适配器410A-C耦合到对应的路由域RA-C。存储器404可包括可由处理器和接口适配器寻址的存储位置,用于存储与本发明的探询技术相关联的软件程序和数据结构。路由处理器402可包括处理元件或逻辑,用于执行软件程序和操纵数据结构。路由器操作系统406的某些部分一般驻留在存储器404中,并被路由处理器执行,路由器操作系统406通过调用在路由器上执行的软件进程支持的网络操作等,来在功能上组织路由器。本领域的技术人员将很清楚,包括各种计算机可读介质的其他处理器和存储器装置可被用于存储和执行属于此处所述的发明技术的程序指令。
域间路由器400的主要功能是确定分组要被发送到的下一节点;为了完成该“路由”,域间路由器协作确定通过计算机网络300的最优路径。路由功能优选地由每个路由器中的传统协议栈的网间层执行。图5是传统的网络协议栈的概要框图,例如因特网通信协议栈500。因特网协议栈的体系结构由4层表示,按上升接口顺序分别为:网络接口层508、网间层506、传输层504和应用层502。
较低的网络接口层508一般是标准化的,并且在硬件和固件中实现,而较高的层一般以软件形式实现。因特网体系结构的主要网间层协议是因特网协议(IP)。IP主要是提供网络间路由、被交换的分组(在因特网环境中一般称为“数据报”)的拆分和重组的无连接协议,其依赖于传输协议以获得端到端的可靠性。这种传输协议的一个示例是传输控制协议(TCP),其由传输层504实现,并向因特网体系结构的上层协议提供面向连接的服务。术语TCP/IP被普遍地用于标示因特网体系结构。
具体而言,网间层506涉及域间路由器使用来使它们可协作计算通过计算机网络300的路径的协议的算法。诸如边界网关协议(BGP-4)等域间路由协议被用来执行通过计算机网络的域间路由(对于网间层)。域间路由器400(此后称为“对等路由器”)通过诸如TCP等可靠传输层连接,在自治系统之间交换路由和可到达性信息。邻接是为交换路由消息和抽取网络拓扑而在选定的对等路由器之间形成的关系。BGP-4协议被说明性地实现为BGP进程420,其“运行”在TCP传输层504的顶部,以确保对等路由器之间的路由消息的可靠传输。
BGP对等路由器一般为所有直接连接(同一子网/链路)的对等体传送TTL为1的BGP消息。对于所有的传入BGP消息,对等路由器可检查TTL值以确认它是0。对于多跳BGP,邻接可跨越多个跳,因此,TTL的值被设置为2、3或多跳计数的任意值。注意,可能会从几跳以外发起对BGP对等路由器的攻击,以例如用多于路由器可处理的数据使路由器过载。这里,攻击者可通过例如将TTL值设置为与从其到路由器的跳数相一致的值来发送路由器会接受的消息。当消息到达路由器时,它看上去就像是源自于该子网/链路一样。
对该问题的一个解决方案是根据BGP TTL安全破解(BTSH),将TTL参数设置为高值,例如254。但是,通过“手工”配置来更新对等路由器以支持BTSH是很耗时的,还会增加配置不匹配的可能性,而配置不匹配会阻碍对等会话的建立。因此需要一种技术来自动检测对等体是否支持和正在使用BTSH选项。此外,通过能力交换来更新对等路由器一般需要在任何协商继起之前建立会话。进一步地,需要在路由协议之外的技术来实现高效协商。
根据本发明,提供了一种探询技术,其允许路由器高效地确定对等路由器的能力和配置。此外,该技术使得邻接的对等路由器能够在路由器之间建立路由会话之前,在协议(例如路由协议)之外协商能力。在本上下文中,术语“在协议之外”表示在协议分组(消息)实现中,没有可被用来协商能力的字段。此外,本发明的技术排除了手工配置路由器来支持特定能力的需要。利用属于本技术的软件而被更新的路由器能够确定其对等体是否支持该能力。
在该示例性实施例中,路由器被配置以执行BGP进程420所实现的BGP-4路由协议,并且所述能力是TTL参数。如此处所述,BGP TTL安全破解(BTSH)定义了用于TTL参数能力的值。BGP路由器通过改变诸如BGP进程420等路由协议进程的默认行为的软件更新来支持BTSH。该默认行为“自动地”配置路由器,以尝试使用TTL值为255的消息来初始建立路由邻居关系。注意,诸如BGP等高级协议可在BGP消息中使用的IP头部200的字段210中设置TTL参数。
具体而言,路由器400中执行的BGP进程420通过套接字发起与特定对等路由器之间的TCP连接。套接字可被定义为TCP连接的端点,其包括IP地址和端口号,从而TCP层504可识别将要接收数据的应用(或协议)。BGP-4协议优选地使用端口号179来建立TCP连接。通过构建传统的3次TCP握手协定中使用的SYN-SYN-ACK报文段来建立TCP连接。BGP进程通过套接字与TCP进程通信,以指定包括TTL参数值等的信息。在这一点上,BGP进程420不构建用于连接建立报文段的BGP头部,但是,进程420确实发起对这些报文段的构建。
TCP进程使用BGP进程420提供的信息来建立报文段的TCP头部110,并例如通过通知IP进程使用指定的TTL发送某些信息来发起连接。然后,IP进程使用BGP进程提供的用于字段210的TTL参数来构建IP头部200,将头部200附加到报文段并将其沿网络协议栈向下传递到媒体(以太网)驱动器,以便通过网络进行传输。
一般地说,本发明的技术允许(发起或接收)路由器通过发送包括能力的第一预定值的初始消息,或者通过关注由对等路由器发起的消息中的能力值,来自动地确定对等路由器支持哪种操作能力模式。在会话发起的情形下,如果路由器接收到来自对等路由器的对初始消息的肯定确认,则它确定对等路由器支持使用新的操作能力模式的消息交换。但是,如果路由器接收到来自对等路由器的对初始消息的否定确认,则它判断对等路由器不支持新的操作能力模式。于是,发起路由器通过重新发送具有能力的第二预定值的初始消息来“切换”到旧的操作能力模式。
作为示例,发起路由器通过发送TTL为255的初始BGP消息然后等待来自对等路由器的响应,来自动确定对等路由器支持哪种操作TTL模式。如果该消息被接收和肯定确认,则初始路由器确定对等路由器支持使用新BTSH模式的消息交换,而且发送TTL为255的安全益处被自动实现。但是,如果发起路由器接收到否定确认(或者在预定时间内根本未接收到响应),则它断定对等路由器未被更新为新的BTSH操作模式,并通过重新发送TTL为1的初始消息(以及后续消息)来切换到普通模式。更具体而言,路由器例如使用值为1的TTL或者值等于跳数(在BGP多跳的情形下)的TTL来利用正常操作模式重新发起会话/邻接建立。因此,本发明的技术允许在新旧模式路由器实现之间进行互操作,而无需额外配置。
然后,响应于更新到新的BTSH操作模式,对等路由器重启,导致现有会话被破坏。尝试建立新会话的路由器最初发送一个或多个TTL为255的消息。由于现在两个路由器都在无需手工配置的情况下被更新,对等路由器认识到TTL为255的消息符合BTSH模式,并且其响应以TTL为255的消息。然后,两个路由器都使用TTL为255的消息进行通信。于是,每个支持BTSH的路由器都可建立诸如接入列表等安全结构,或者利用处理来拒绝TTL小于254(或其他值)的消息/分组。
若干实施例可被用来实现此处所述的本发明的技术。例如,路由进程(例如BGP进程420)可以通过指示网络协议栈的较低层(例如TCP层504)使用值为255的TTL来发起会话/邻接连接建立。如果连接/会话未在预定时间内建立(没有接收到响应),则路由进程负责将TTL切换到普通模式(例如1),并重新发起连接/会话建立。或者,用于确定对等路由器是否支持BTSH模式的“智能”可在诸如TCP层504或IP层506等较低的网络协议层中实现。例如,如果在IP层中实现,则较高级的路由进程通知IP层利用值为255的TTL来初始尝试建立连接,如果对等路由器未被更新以支持BTSH,则切换到TTL为1。但是,在示例性实施例中,本技术优选地在较高层路由协议中实现,该协议能够在其不支持BTSH时返回否定确认。这排除了对等待“超时”条件的需要。
图6的流程图示出了用于根据所示技术,允许发起对等路由器高效地确定接收对等路由器的能力和配置的步骤序列的流程图。该序列开始于步骤600,并进行到步骤602,在这里,发起对等路由器中的诸如BGP进程420等路由协议进程指示TCP进程根据3次握手协定并使用值为255的TTL建立TCP连接。在会话建立期间,在步骤604,第一路由协议消息通过对等路由器之间的TCP连接被发送。在步骤606,确定接收对等路由器是否支持BTSH(被配置为接受值为255的TTL)。具体而言,接收对等路由器中的BGP对等进程检查TTL值255,并确定它能否接受该会话。如果能,则在步骤608,该对等进程返回肯定确认到发起对等路由器,序列在步骤616结束。
但是,如果接收对等体路由协议进程不支持BTSH,并且因而不能接受会话,则它在步骤610返回否定确认。示例性地,例如DENY连接错误消息这样的否定确认被返回发起对等路由器,以响应例如BGP OPEN消息这样的第一路由协议消息。注意,OPEN消息提供了用于路由器在相邻对等体关系开始时标识自身的手段。此外,通知被返回发起路由器,指示拒绝消息的理由(即为什么不能建立会话)。然后,在步骤612,TCP连接被立即破坏,并且在步骤614使用值为1的TTL被重新发起(重新建立)。序列在步骤616结束。
有益地,TTL探询技术允许支持BTSH的路由器确定它们的对等路由器是否“默认地”(即不需协商地)具有兼容的TTL能力。否则,每个路由器将必须被手工配置以在全部对等体、全部路由协议配置级别上支持BTSH。手工配置代表大量的额外开销,需要消耗大量管理时间和精力。本发明避免了这种手工配置,并进一步允许支持BTSH的路由器“自动地”互操作。此外,本发明的技术排除了对当前的协议规范进行诸如状态机改变等任何改变,这实现了在被配置用于旧和新实现模式的对等路由器之间的互操作性。
虽然已经示出并描述了允许路由器高效地确定邻居(对等体)路由器的能力和配置的实施例,但是应当理解,在本发明的精神和范围内可作出各种其他改变和修改。例如,虽然这里描述的BTSH实现是特定于BGP的,但是该新颖技术能够利用诸如增强内部网关路由协议(EIGRP)等任何路由协议工作。一般地,EIGRP路由器使用TTL为1的分组进行通信;一旦被新颖的支持BTSH的技术更新,这些EIGRP路由器就能传送TTL为255的分组。
上面描述了本发明的具体实施例,但是很明显,可对所描述的实施例进行其他修改和改变,并且保留它们的一些或全部优点。例如,很明显,本发明的教导(包括此处所述的各种进程)可被实现为软件(包括具有在计算机上执行的程序指令的计算机可读介质)、硬件、固件或其组合。此外,应当理解此处所述的数据结构可包括额外的信息而保持在本发明的范围内。此外,本发明的TTL探询技术可应用于诸如OSPF等在IP上运行的任意路由协议,因为修改(TTL字段)在IP头部中。因此,本说明书仅是示例性而不限制本发明的范围。因此,所附权利要求的目的是覆盖所有落在本发明的真实精神和范围内的改变和修改。