一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

建立边界网关协议BGP邻居的方法、装置、设备和系统与流程

2022-04-24 19:31:27 来源:中国专利 TAG:

建立边界网关协议bgp邻居的方法、装置、设备和系统
1.本技术要求于2020年10月22日提交的申请号为202011135818.6、发明名称为“一种全新的bgp peer状态机设计”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及通信技术领域,尤其涉及一种建立边界网关协议(英文:border gateway protocol,简称:bgp)邻居的方法、装置、设备和系统。


背景技术:

3.目前,基于传输控制协议(英文:transmission control protocol,简称:tcp)传输方式建立bgp邻居,即,待建立bgp邻居关系的网络设备之间需要先建立tcp连接,再基于所建立的tcp连接传输bgp报文以建立bgp邻居。由于网络设备之间建立tcp连接的过程复杂,使得网络设备之间建立bgp邻居消耗较多的资源,且效率较低。
4.基于此,亟待提供一种能够快速、简便的在网络设备之间建立bgp邻居的技术方案。


技术实现要素:

5.本技术实施例提供了一种建立bgp邻居的方法、装置、设备和系统,网络设备之间建立bgp邻居无需借助tcp连接,而基于用户数据报协议(英文:user datagram protocol,简称:udp)方式即可简单、快速的建立bgp邻居。
6.本技术实施例中,udp方式可以包括可靠性增强的udp方式,也可以包括快速udp互联网连接(英文:quick udp internet connection,简称:quic)方式。其中,可靠性增项的udp方式,是指可靠性较高的udp方式。
7.本技术实施例中,建立bgp邻居关系的第一网络设备和第二网络设备,可以位于相同的as内,或者,也可以位于不同的as内。第一网络设备和第二网络设备是否属于相同的as不影响本技术实施例的实现。
8.本技术实施例中,第一网络设备和第二网络设备之间建立的bgp邻居关系可以是外部边界网关协议(英文:external border gateway protocol,简称:ebgp)邻居关系,也可以是内部边界网关协议(英文:internal border gateway protocol,简称:ibgp)邻居关系。第一网络设备和第二网络设备之间建立的bgp邻居关系是ebgp还是ibgp,不影响本技术实施例的实现。
9.第一方面,本技术实施例提供了一种建立bgp邻居的方法,该方法中对于建立bgp邻居的第一网络设备,执行的操作可以包括:基于udp方式向第二网络设备发送第一报文,该第一报文用于与第二网络设备建立bgp邻居;如果能够接收到第二网络设备基于udp方式发送的第二报文,所述第二报文用于与所述第一网络设备建立bgp邻居,则,响应于接收到的该第二报文,第一网络设备建立与第二网络设备之间的bgp邻居关系。如此,在第一网络
设备需要与第二网络设备建立bgp邻居时,无需通过复杂的流程先建立第一网络设备和第二网络设备之间的tcp连接,直接基于udp方式实现第一网络设备和第二网络设备之间bgp邻居关系的建立,相对于tcp的方式,简化了交互流程,节约了建立bgp邻居需要消耗的资源,提高了建立bgp邻居的效率。
10.其中,第一报文可以为open报文,该open报文包括第一网络设备所属的(英文:autonomous system,简称:as)标识和所述第一网络设备的bgp标识。
11.在一种可能的实现方式中,第一网络设备存储bgp邻居关系的状态机,在第一网络设备基于udp方式向第二网络设备发送第一报文之前,该状态机为空闲状态。作为一个示例,在第一网络设备基于udp方式向第二网络设备发送第一报文之后,第一网络设备将状态机从空闲状态切换为开始报文已发送open sent状态。作为另一个示例,第一网络设备也可以将状态机从空闲状态切换为open sent状态后,才基于udp方式向第二网络设备发送第一报文。作为又一个示例,第一网络设备还可以基于udp方式向第二网络设备发送第一报文时,将状态机从空闲状态切换为open sent状态。可见,第一网络设备的状态机从空闲状态切换到open sent状态,以及第一网络设备向第二网络设备发送第一报文,这两个操作的执行时机没有先后的限定,可以先进行状态切换再发送第一报文,也可以先发送第一报文再进行状态切换,还可以在发送第一报文的同时进行状态切换。这样,第一网络设备中空闲状态和open sent状态是状态机中两个连续的状态,与基于tcp连接的方式相比,至少能够省略connect和active两个中间状态,为建立bgp邻居关系节约了流程,提高了建立bgp邻居关系的效率。
12.在一种可能的实现方式中,第二报文用于指示第二网络设备可达,该第二报文例如可以为keepalive报文或更新update报文。
13.在一种可能的实现方式中,在第一网络设备基于udp方式向第二网络设备发送第一报文之后,第一网络设备开始等待接收第二网络设备发送的open报文。如果第一网络设备在第一预设时长内未接收到第二网络设备发送的第一报文的回复报文,则,第一网络设备继续通过udp方式向第二网络设备发送open报文,直到第一网络设备接收到第二网络设备基于udp方式发送的回复报文。这样,第一网络设备周期性地向第二网络设备发送open报文,直至收到第二网络设备发送的回复报文。
14.在一种可能的实现方式中,在第一网络设备基于udp方式向第二网络设备发送第一报文之后,如果第一网络设备接收第二网络设备基于udp方式发送的第三报文,第三报文用于与第一网络设备建立bgp邻居关系;那么,第一网络设备判断第三报文是否无误,第三报文无误是指第三报文所指示的第二网络设备支持的能力和第一报文所指示的第一网络设备支持的能力存在相同的内容。其中,第三报文可以为open报文。其中,open报文中携带有发送方网络设备支持的能力,open报文存在错误,是指第一网络设备和第二网络设备最新的open报文中支持的能力没有交集,无法确定出两个网络设备均支持的能力,例如,第一网络设备发送的open报文指示该第一网络设备支持第四版互联网协议(英文:internet protocol version 4,简称:ipv4)能力,第一网络设备接收的open报文指示第二网络设备支持第六版互联网协议(英文:internet protocol version 6,简称:ipv6)能力,则,第一网络设备确定第三报文存在错误;open报文无误,是指第一网络设备和第二网络设备最新的open报文中支持的能力有交集,能够确定出两个网络设备均支持的能力,例如,第一网络
设备发送的open报文指示该第一网络设备支持ipv4能力和ipv6能力,第一网络设备接收的open报文指示第二网络设备支持ipv6能力,则,第一网络设备可以确定与第二网络设备建立的bgp邻居关系可以适用ipv6能力,确定第三报文无误。
15.作为一个示例,当第三报文无误时,第一网络设备基于udp方式向第二网络设备发送第四报文,该第四报文用于指示第一网络设备可达。其中,第四报文例如可以是为保活keepalive报文。该示例中,当确定第三报文无误时,第一网络设备还可以将状态机从open sent状态切换为开始报文已确认open confirm状态。
16.该示例下,如果在第一网络设备接收第二报文之前,确定满足第一条件,则,第一网络设备将状态机从open confirm状态切换为空闲状态,其中,该第一条件包括:第一网络设备接收到第一通知notification报文,第一notification报文用于指示第二网络设备不能与第一网络设备建立邻居关系,或者,在第二预设时长内第一网络设备未接收到第二网络设备发送的keepalive报文或更新update报文。
17.该示例下,该第一网络设备可以包括定时器,该定时器的时长可以为上述第二预设时长,那么,第一网络设备响应于接收到的第二报文,可以重启该定时器。
18.作为另一个示例,当第三报文存在错误时,第一网络设备可以将状态机从open sent状态切换为空闲状态。而且,当第三报文存在错误时,第一网络设备还可以向第二网络设备发送第二通知notification报文,该第二notification报文用于指示第一网络设备不能与第二网络设备建立bgp邻居关系。
19.可见,通过该实现方式,第一网络设备和第二网络设备之间通过空闲状态、open sent状态和open confirm状态之后,建立bgp邻居关系,相比通过tcp连接建立bgp邻居关系的方式,节约了第一网络设备和第二网络设备之间建立tcp连接的过程,即,无需经过connect状态和active状态,大大的提高了建立bgp邻居关系的效率。
20.在一种可能的实现方式中,该第二报文例如可以为open报文或更新update报文。
21.作为一个示例,响应于接收到所述第二报文,在第一网络设备建立与第二网络设备之间的bgp邻居关系之前,第一网络设备还可以判断所述第二报文是否无误,该第二报文无误是指第二报文所指示的第二网络设备支持的能力和第一报文所指示的第一网络设备支持的能力存在匹配的内容。那么,当确定第二报文无误时,响应于接收到第二报文,第一网络设备建立与第二网络设备之间的bgp邻居关系。当确定该第二报文存在错误时,第一网络设备将状态机从open sent状态切换为空闲状态。
22.作为一个示例,在第一网络设备接收第二报文之前,如果确定满足第一条件时,则,将状态机从open sent状态切换为空闲状态,该第一条件包括:第一网络设备接收到第一通知notification报文,第一notification报文用于指示第二网络设备不能与第一网络设备建立邻居关系,或者,在第三预设时长内第一网络设备未接收到第二网络设备发送的open报文或更新update报文。该示例下,该第一网络设备可以包括定时器,该定时器的时长可以为上述第三预设时长,那么,响应于接收到第二报文,第一网络设备可以重启定时器。
23.可见,通过该实现方式,第一网络设备和第二网络设备之间通过空闲状态和open sent状态,建立bgp邻居关系,相比通过tcp连接建立bgp邻居关系的方式,节约了第一网络设备和第二网络设备之间建立tcp连接的过程,也可以不经过open confirm状态,大大的提高了建立bgp邻居关系的效率。
24.在一些可能的实现方式中,如果第一网络设备存储bgp邻居关系的状态机,那么,响应于第二报文,第一网络设备建立与第二网络设备之间的bgp邻居关系,具体可以是指:第一网络设备将状态机切换为已建立established状态,该established状态指示第一网络设备和第二网络设备之间建立了bgp邻居关系。
25.作为一个示例,在第一网络设备建立与第二网络设备之间的bgp邻居关系之后,第一网络设备还可以不断的接收第二网络设备发送的bgp更新update报文,bgp update报文中包括从第二网络设备向第一网络设备发布的路由信息。这样,该第一网络设备可以保存各条路由信息对应的路由,为两者之间的通信提供了依据。
26.在一些可能的实现方式中,在第一网络设备将状态机切换为established状态后,如果第一网络设备满足第二条件时,第一网络设备将状态机从established状态切换为空闲状态,第二条件例如可以包括:第一网络设备接收到第二notification报文,第二notification报文用于指示断开第一网络设备和第二网络设备之间的bgp邻居关系,或者,在第四预设时长内第一网络设备未接收到第二网络设备发送的update报文或keepalive报文。
27.作为一个示例,在第一网络设备从established状态进入空闲状态之后,第一网络设备可以删除从第二网络设备接收的路由信息对应的路由。此外,第一网络设备还可以删除第一网络设备向第二网络设备发送的路由信息对应的路由的状态。需要说明的是,在第一网络设备确定和第二网络设备的bgp邻居关系的状态机从established状态进入idle状态的情况下,如果需要在第一网络设备和第二网络设备之间建立bgp邻居关系,那么,第一网络设备需要在确定满足第四条件时,执行本技术实施例提供的上述方法,建立第一网络设备和第二网络设备之间的bgp邻居关系。其中,该第四条件可以包括:从established状态切换到idle开始经过预设第一时长,且第一网络设备删除完成关于第二网络设备的路由。如此,能够实现在两个网络设备之间撤销bgp邻居关系之后,基于本技术实施例提供的方法继续快速、高效的建立bgp邻居关系。
28.在一种可能的实现方式中,所述第一报文还包括协议类型标识,所述协议类型标识用于与第二网络设备协商建立bgp邻居的传输层协议类型。
29.第二方面,本技术实施例还提供了一种建立bgp邻居的装置,该装置可以包括:第一发送单元、第一接收单元和建立单元。其中,第一发送单元,用于基于udp方式向第二网络设备发送第一报文,第一报文用于与第二网络设备建立bgp邻居;第一接收单元,用于接收第二网络设备基于udp方式发送的第二报文;建立单元,用于响应于接收到第二报文,建立与第二网络设备之间的bgp邻居关系。
30.在一种可能的实现方式中,第一报文为open报文,open报文包括建立bgp邻居的装置所属的自治域as标识和建立bgp邻居的装置的bgp标识。
31.作为一个示例,该装置可以存储bgp邻居关系的状态机,该装置还包括:设置单元和第一切换单元。其中,设置单元,用于在基于udp方式向第二网络设备发送第一报文之前,设置状态机为空闲状态;第一切换单元,用于在基于udp方式向第二网络设备发送第一报文之后,将状态机从空闲状态切换为开始报文已发送open sent状态。
32.作为另一个示例,该装置存储bgp邻居关系的状态机,该装置还包括:第一切换单元。第一切换单元,用于在基于udp方式向第二网络设备发送第一报文之前,将状态机从空
闲状态切换为open sent状态。
33.作为又一个示例,该装置存储bgp邻居关系的状态机,该装置还包括:第一切换单元。其中,该第一切换单元,用于在基于udp方式向第二网络设备发送第一报文时,将状态机从空闲状态切换为open sent状态。
34.在一种可能的实现方式中,该装置还包括:第二发送单元。该第二发送单元,用于在基于udp方式向第二网络设备发送第一报文之后,在第一预设时长内未接收到第二网络设备发送的第一报文的回复报文时,通过udp方式向第二网络设备发送open报文。
35.在一种可能的实现方式中,该装置还包括:第二接收单元和判断单元。其中,第二接收单元,用于在基于udp方式向第二网络设备发送第一报文之后,接收第二网络设备基于udp方式发送的第三报文,第三报文用于与建立bgp邻居的装置建立bgp邻居关系;判断单元,用于判断第三报文是否无误,第三报文无误是指第三报文所指示的第二网络设备支持的能力和第一报文所指示的建立bgp邻居的装置支持的能力存在相同的内容。
36.其中,第三报文为open报文。
37.在一种可能的实现方式中,该装置还包括:第四发送单元。其中,该第四发送单元,用于当第三报文无误时,基于udp方式向第二网络设备发送第四报文,第四报文用于指示建立bgp邻居的装置可达。
38.其中,第四报文为保活keepalive报文。
39.在一种可能的实现方式中,该装置存储bgp邻居关系的状态机,该装置还包括:第二切换单元。该第二切换单元,用于当第三报文无误时,将状态机从open sent状态切换为开始报文已确认open confirm状态。
40.在一种可能的实现方式中,该装置还包括:第三切换单元。该第三切换单元,用于在接收第二报文之前,在满足第一条件时,将状态机从open confirm状态切换为空闲状态,第一条件包括:建立bgp邻居的装置接收到第一通知notification报文,第一notification报文用于指示第二网络设备不能与建立bgp邻居的装置建立邻居关系,或者,在第二预设时长内建立bgp邻居的装置未接收到第二网络设备发送的keepalive报文或更新update报文。
41.在一种可能的实现方式中,该装置包括定时器,定时器的时长为第二预设时长,该装置还包括:第一重启单元。第一重启单元,用于响应于接收到第二报文,建立bgp邻居的装置重启定时器。
42.在一种可能的实现方式中,该装置存储状态机,该装置还包括:第四切换单元。第四切换单元,用于当第三报文存在错误时,将状态机从open sent状态切换为空闲状态。
43.在一种可能的实现方式中,该装置还包括:第五发送单元。第五发送单元,用于当第三报文存在错误时,向第二网络设备发送第二通知notification报文,第二notification报文用于指示建立bgp邻居的装置不能与第二网络设备建立bgp邻居关系。
44.其中,第二报文用于指示第二网络设备可达,第二报文为keepalive报文或更新update报文。
45.或者,第二报文为open报文或更新update报文。
46.作为一个示例,该装置的判断单元,还用于在建立与第二网络设备之间的bgp邻居关系之前,判断所述第二报文是否无误,该第二报文无误是指第二报文所指示的第二网络设备支持的能力和第一报文所指示的第一网络设备支持的能力存在匹配的内容。那么,当
判断单元确定第二报文无误时,触发建立单元执行响应于接收到第二报文,建立与第二网络设备之间的bgp邻居关系。当判断单元确定该第二报文存在错误时,该装置的第五切换单元,用于将状态机从open sent状态切换为空闲状态。
47.在一种可能的实现方式中,该装置还包括:第六切换单元。第六切换单元,用于在接收第二报文之前,在满足第一条件时,将状态机从open sent状态切换为空闲状态,第一条件包括:建立bgp邻居的装置接收到第一通知notification报文,第一notification报文用于指示第二网络设备不能与建立bgp邻居的装置建立邻居关系,或者,在第三预设时长内建立bgp邻居的装置未接收到第二网络设备发送的open报文或更新update报文。
48.在一种可能的实现方式中,该装置包括定时器,定时器的时长为第三预设时长,该装置还包括:第二重启单元。其中,第二重启单元,用于响应于接收到第二报文,重启定时器。
49.在一种可能的实现方式中,该装置存储bgp邻居关系的状态机,那么,建立单元,具体用于:将状态机切换为已建立established状态,established状态指示建立bgp邻居的装置和第二网络设备之间建立了bgp邻居关系。
50.在一种可能的实现方式中,该装置还包括:第三接收单元。第三接收单元,用于在建立与第二网络设备之间的bgp邻居关系之后,接收第二网络设备发送的bgp更新update报文,bgp update报文中包括从第二网络设备向建立bgp邻居的装置发布的路由信息。
51.在一种可能的实现方式中,该装置还包括:第六切换单元。该第六切换单元,用于在将状态机切换为established状态后,在满足第二条件时,将状态机从established状态切换为空闲状态,第二条件包括:建立bgp邻居的装置接收到第二notification报文,第二notification报文用于指示断开建立bgp邻居的装置和第二网络设备之间的bgp邻居关系,或者,在第四预设时长内建立bgp邻居的装置未接收到第二网络设备发送的update报文或keepalive报文。
52.在一种可能的实现方式中,该装置还包括:删除单元。该删除单元,用于在从established状态进入空闲状态之后,删除从第二网络设备接收的路由信息对应的路由。
53.需要说明的是,上述功能相同但命名中序号不同的单元,可以是一个能够实现该功能的单元,例如,上述第一发送单元和第二发送单元可以是同一个具有发送功能的单元。
54.需要说明的是,该第二方面提供的建立bgp邻居的装置用于执行上述第一方面提及的相关操作,其具体实现方式以及达到的效果,均可以参见上述第一方面的相关描述,在此不再赘述。
55.第三方面,本技术实施例还提供了一种网络设备,包括:存储器和处理器。其中,存储器用于存储程序代码或指令;处理器用于运行程序代码或指令,使得网络设备执行以上第一方面提供的方法。
56.第四方面,本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有程序代码或指令,当其在计算机上运行时,使得计算机执行以上第一方面提供的任意一种可能的实现方式中提供的方法。
57.第五方面,本技术实施例还提供了一种计算机程序产品,当该计算机程序产品在网络设备上运行时,使得网络设备执行第一方面的任意一种可能的实现方式中提供的方法。
58.第六方面,本技术提供了一种网络设备,该网络设备包括:主控板和接口板。主控板包括:第一处理器和第一存储器。接口板包括:第二处理器、第二存储器和接口卡。主控板和接口板耦合。
59.第一存储器可以用于存储程序代码,第一处理器用于调用第一存储器中的程序代码执行如下操作:响应于接收到第二报文,建立与第二网络设备之间的bgp邻居关系。
60.第二存储器可以用于存储程序代码,第二处理器用于调用第二存储器中的程序代码,触发接口卡执行如下操作:基于用户数据报协议udp方式向第二网络设备发送第一报文,第一报文用于与第二网络设备建立bgp邻居;接收第二网络设备基于udp方式发送的第二报文。
61.在一种可能的实现方式中,主控板和接口板之间建立进程间通信协议(inter-process communication,ipc)通道,主控板和接口板之间通过ipc通道进行通信。
62.第七方面,提供了一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。网络设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该网络设备执行上述第一方面所提供的方法。
63.第八方面,本技术提供了一种芯片,包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行该计算机程序,以执行上述第一方面中的方法。
64.可选地,上述芯片仅包括处理器,处理器用于读取并执行存储器中存储的计算机程序,当计算机程序被执行时,处理器执行上述第一方面中的方法。
65.第九方面,本技术实施例还提供了一种网络系统,该网络系统可以包括第一网络设备和第二网络设备。其中,第一网络设备,用于基于udp方式向第二网络设备发送第一报文,该第一报文用于与第二网络设备建立bgp邻居;第二网络设备,用于接收第一报文,并基于udp方式向第一网络设备发送第二报文,该第二报文用于与第一网络设备建立bgp邻居;那么,第一网络设备,还用于响应于接收到第二报文,建立与第二网络设备之间的bgp邻居关系。
附图说明
66.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
67.图1为本技术实施例中基于rfc 4271建立bgp邻居的状态示意图;
68.图2为本技术实施例中一种场景的结构示意图;
69.图3为本技术实施例中基于rfc 4271建立bgp邻居的流程示意图;
70.图4为本技术实施例中一种建立bgp邻居的方法100的流程示意图;
71.图5为本技术实施例中一种open报文的结构示意图;
72.图6为本技术实施例中一种建立bgp邻居的状态机的示意图;
73.图7为本技术实施例中另一种建立bgp邻居的状态机的示意图;
74.图8为本技术实施例中建立bgp邻居的一示例的流程示意图;
75.图9为本技术实施例中一种建立bgp邻居的装置900的结构示意图;
76.图10为本技术实施例中一种网络设备1000的结构示意图;
77.图11为本技术实施例中一种网络设备1100的结构示意图;
78.图12为本技术实施例中一种网络系统1200的结构示意图;
79.图13为本技术实施例中一种open报文的结构示意图。
具体实施方式
80.目前,网络设备之间建立bgp邻居关系,通常基于请求评论(英文:request for comments,简称:rfc)4271中规定的过程实现,即,基于tcp连接建立网络设备之间的bgp邻居关系。
81.rfc 4271中所规定的在建立bgp邻居的过程中,网络设备保存有bgp邻居关系的状态机(英文:state machine,简称:sm),具体如图1所示,状态机可以包括下述6个状态:空闲(英文:idle)状态、连接(英文:connect)状态、行动(英文:active)状态、开始报文已发送(英文:open sent)状态、开始报文已确认(英文:open confirm)状态和已建立(英文:established)状态。
82.举例来说,假设在图2所示场景中,网络设备11和网络设备12之间需要建立bgp邻居,由于网络设备11和网络设备12在各状态下的处理逻辑和处理流程一致,所以,图3中以网络设备11为例,介绍基于rfc 4271建立网络设备11和网络设备12之间的bgp邻居关系的过程中各网络设备执行的操作。如图3所示,网络设备11在建立与第二网络设备之间的bgp邻居时执行的操作例如可以包括:
83.s11,网络设备11完成bgp配置,bgp邻居关系的状态机进入idle状态,同时,启动定时器1。
84.其中,完成bgp配置,一方面可以指配置bgp相关命令,使能bgp功能以及申请bgp资源,另一方面可以指配置网络设备11与网络设备12之间建立bgp邻居关系。
85.s12,网络设备11在定时器1超时的时刻起,bgp邻居关系的状态机进入connect状态,同时,启动定时器2,并开始向网络设备12发送tcp连接消息,等待接收网络设备12发送的用于指示tcp连接成功的tcp消息。
86.s13,在状态机为connect状态时,如果tcp连接成功,则,bgp邻居关系的状态机进入open sent状态,执行下述s15(图中标识为s13a);如果tcp连接失败,则,bgp邻居关系的状态机进入active状态并启动定时器3,执行下述s14(图中标识为s13b);如果定时器2超时,则,保持状态机为connect状态(图中标识为s13c);如果发生错误(如收到指示撤销建立网络设备11和网络设备12之间bgp邻居关系的消息,或者,收到bgp配置需要更新的消息),则,回退到idle状态(图中标识为s13d)。
87.s14,在该状态机为active状态时,如果tcp连接成功,则,bgp邻居关系的状态机进入open sent状态,执行下述s15(图中标识为s14a);如果tcp连接失败,则,保持状态机为active状态(图中标识为s14b);如果定时器3超时,则,回退到connect状态;如果存在异常,则回退到idle状态(图中标识为s14c)。
88.s15,在bgp邻居关系的状态机进入open sent状态的同时,网络设备11向网络设备12发送open报文1,并开始等待接收网络设备12发送的open报文2,如果接收到没有错误的open报文2,则,bgp邻居关系的状态机进入open confirm状态,执行下述s16(图中标识为s15a);如果接收到存在错误的open报文2,则,向网络设备12发送用于指示网络设备11和网
络设备12之间bgp邻居关系存在异常的通知(英文:notification)报文,并回退到idle状态(图中标识为s15b);如果tcp连接中断,则,回退到active状态(图中标识为s15c)。
89.其中,open报文2是否存在错误,是指open报文2所指示的网络设备12支持的能力和open报文1所指示的网络设备11支持的能力是否存在交集,如果存在交集,表征网络设备11和网络设备12可以使用交集中共同的能力建立bgp邻居关系,可以认为open报文2没有错误;如果不存在交集,表征网络设备11和网络设备12没有可使用相同能力用于建立bgp邻居关系,可以认为open报文2存在错误。
90.s16,在bgp邻居关系的状态机进入open confirm状态的同时,网络设备11向网络设备12发送保活keepalive报文1,启动定时器4(如10秒),并开始等待接收网络设备12发送的keepalive报文2或更新update报文,复位定时器5(如30秒),如果在定时器5超时之前接收到keepalive报文2或更新update报文,则,重启定时器5并进入established状态,执行下述s17(图中标识为s16a);如果定时器5超时或接收到网络设备12发送的notification报文,回退到idle状态(图中标识为s16b);如果定时器4超时,则,向网络设备12发送keepalive报文3、重启定时器4并保持open confirm状态(图中标识为s16c)。
91.s17,在该状态机为established状态时,确定网络设备11和网络设备12之间建立好了bgp邻居关系,可以开始通过update报文实现路由的相互通告(图中标识为s17a);在网络设备11和网络设备12之间bgp邻居关系进入established状态后,如果网络设备11接收到指示关闭该bgp邻居关系或指示该bgp邻居关系存在异常的notification报文,或者,定时器5超时,则,回退到idle状态(图中标识为s17b)。
92.如此,通过包括6种状态的状态机的切换,能够实现网络设备之间bgp邻居关系的建立。但是,这种建立bgp邻居关系的方法中,首先要在待建立bgp邻居关系的网络设备之间建立tcp连接,再在tcp连接的基础上建立bgp邻居关系,由于tcp建立过程复杂,所以导致基于该方式建立bgp邻居存在过程复杂且效率较低的问题。
93.基于此,本技术实施例提供了一种基于udp方式建立bgp邻居的方法,该方法中第一网络设备基于udp方式向第二网络设备发送用于与该第二网络设备建立bgp邻居的第一报文,接着,第一网络设备接收第二网络设备基于udp方式发送的第二报文,那么,响应于该第二报文,第一网络设备即可建立与第二网络设备之间的bgp邻居关系。这样,在第一网络设备需要与第二网络设备建立bgp邻居时,无需通过复杂的流程先建立第一网络设备和第二网络设备之间的tcp连接,直接基于udp方式交互较少的报文即可实现第一网络设备和第二网络设备之间bgp邻居关系的建立,节约了建立bgp邻居需要消耗的资源,提高了建立bgp邻居的效率。
94.需要说明的是,本技术实施例中,网络设备是指需要建立bgp邻居的路由器、交换机、或防火墙等设备。
95.下面结合附图,通过实施例来详细说明本技术实施例提供的一种建立bgp邻居的方法的具体实现方式。
96.需要说明的是,第一网络设备可以与多个网络设备批量建立bgp邻居关系,但是,与每个网络设备建立bgp邻居关系的过程相互独立且互不影响,所以,本技术实施例以第一网络设备与多个网络设备中的第二网络设备建立bgp邻居关系的过程为例进行说明,与其他网络设备建立bgp邻居关系的过程与之类似,实现可以参考第一网络设备与第二网络设
备建立bgp邻居关系的过程。
97.下述实施例中提及的open报文、keepalive报文、update报文以及notification报文,属于bgp的四种报文类型。其中,open报文,是建立bgp邻居时需要发送的第一个报文,用于协商待建立bgp邻居关系的两个网络设备之间是否存在两端均可用的能力。keepalive报文是网络设备周期性地向对端发出报文,用于确定两者之间通信的有效性。update报文通常用于在已经建立bgp邻居关系的网络设备之间交换路由,既可以用于发布可达路由,也可以用于撤销不可达路由。notification报文,是在检测到异常、需要关闭正在建立的bgp邻居关系或需要关闭已经建立的bgp邻居关系时,向对端发送的报文,收到notification报文的网络设备会中断与发送方网络设备之间的bgp连接,并回退到idle状态。上述四种报文类型的具体说明可以参见rfc 4271中的相关描述。下述实施例中,用于建立bgp邻居的报文可以包括open报文、keepalive报文或update报文。其中,keepalive报文或update报文可以进一步用于指示网络设备的可达性。
98.图4为本技术实施例中一种建立bgp邻居的方法100的流程示意图。参见图4,该方法100应用于第一网络设备,实现建立第一网络设备和第二网络设备之间bgp邻居关系。例如可以应用在图2所示的网络设备11中,那么,方法100中的第二网络设备可以是图2中的网络设备12;又例如可以应用在图2所示的网络设备12中,那么,方法100中的第二网络设备可以是图2中的网络设备11。
99.其中,本技术实施例中,第一网络设备与第二网络设备可以位于相同的自治系统(英文:autonomous system,简称:as)内,或者,该第一网络设备与第二网络设备也可以位于不同的as内。第一网络设备和第二网络设备是否属于相同的as不影响本技术实施例的实现。
100.第一网络设备和第二网络设备之间建立的bgp邻居关系可以是外部边界网关协议(英文:external border gateway protocol,简称:ebgp)邻居关系,也可以是内部边界网关协议(英文:internal border gateway protocol,简称:ibgp)邻居关系。第一网络设备和第二网络设备之间建立的bgp邻居关系是ebgp还是ibgp,不影响本技术实施例的实现。
101.具体实现时,该方法100例如可以包括下述s101~s103:
102.s101,第一网络设备基于udp方式向第二网络设备发送第一报文,该第一报文能用于与第二网络设备建立bgp邻居。
103.相比tcp,考虑到udp更加轻量,处理效率更高,所以,为了提高建立bgp邻居的效率和流程,可以基于udp方式建立bgp邻居关系。此外,为了提高基于udp方式建立bgp邻居的可靠性,本技术实施例中的udp方式可以包括可靠性增强的udp方式,例如,快速udp互联网连接(英文:quick udp internet connection,简称:quic)方式。
104.quic是一种基于udp的低时延的互联网传输层协议,本质是udp方式,继承了传统udp方式高效的优势,而且结合了tcp、传输层安全协议(英文:transport layer security,简称:tls)、超文本传输协议第2版(英文:hypertext transfer protocol version 2,简称:http/2)等协议的特征,大大的提高了传统udp方式的安全性和可靠性。
105.需要说明的是,无论是传统的udp方式还是可靠性增强的udp方式,不影响实现本技术实施例提供的方法100的流程,只是相比通过传统的udp方式实现该方法100所建立的bgp邻居,通过可靠性增强的udp方式实现该方法100所建立的bgp邻居的可靠性和安全性更
高。下文中的udp方式涵盖传统的udp方式以及可靠性增强的udp方式。
106.其中,第一报文可以是open报文,该open报文至少可以包括as标识和bgp标识,其中,as标识用于指示发送该open报文的第一网络设备所属的as,bgp标识用于指示第一网络设备在启动时分配的互联网协议(英文:internet protocol,简称:ip)地址。open报文的结构可以参见图5所示,可以包括:版本(英文:version)字段、as标识字段、保持时间(英文:hold time)字段、bgp标识字段、可选参数长度(英文:optional parameters length)字段以及可选参数(英文:optional parameters)字段,各字段的含义以及长度可以参见rfc 4271,这里不再赘述。
107.本技术实施例提供的方法100中,不需要再在第一网络设备和第二网络设备之间建立tcp连接,所以,省去了第一网络设备和第二网络设备之间建立tcp连接。与图1所示的基于tcp连接建立bgp邻居的过程中网络设备包括的状态机包括的6个状态相比,减少了与建立网络设备之间的tcp连接相关的connect状态和active状态,这样,本技术实施例提供的建立bgp邻居的过程更加快速和高效,对于组网越来越复杂的场景,能够大大的节约网络部署所消耗的资源,提升网络部署的效率。
108.在一些可能的实现方式中,第一网络设备与第二网络设备在建立bgp邻居的过程中,还可以通过open报文协商建立bgp邻居所采用的传输层协议的类型。可选的,通过对open报文进行扩展,在上述可选参数字段中增加对本端设备所支持的传输层协议类型的描述,该传输层协议类型例如为tcp或quic协议等。可选参数字段的结构可以参见图13所示,可以包括:参数类型(英文:parameter type)字段、参数长度(英文:parameter length)字段以及参数值(英文:parameter value)字段。举例来说,当参数值字段的取值为0时,表示本端支持的建立bgp邻居所采用的传输层协议类型为tcp,当参数值字段的取值为1时,表示本端支持的建立bgp邻居所采用的传输层协议类型为quic,当参数值字段的取值为2时,表示本端支持的建立bgp邻居所采用的传输层协议类型为tcp和quic。例如,第一网络设备向第二网络设备发送open报文,在可选参数字段中描述本端支持的建立bgp邻居所采用的传输层协议类型为quic,第二网络设备也向第一网络设备发送open报文,在可选参数字段中描述本端支持的建立bgp邻居所采用的传输层协议类型为quic,则第一网络设备与第二网络设备之间可以基于quic协议实现bgp邻居关系的建立。又例如,第一网络设备向第二网络设备发送open报文,在可选参数字段中描述本端支持的建立bgp邻居所采用的传输层协议类型为quic,但第二网络设备不支持通过quic协议建立bgp邻居,则第二网络设备不对基于quic协议的open报文进行回应,则第一网络设备与第二网络设备之间无法基于quic协议实现bgp邻居关系的建立。可选的,此时第一网络设备与第二网络设备之间仍然可以基于其他传输层协议,例如tcp协议实现bgp邻居关系的建立。
109.在一些可能的实现方式中,在s101之前,该方法100还可以包括:s10a,第一网络设备的bgp邻居关系的状态机进入idle状态。在idle状态下,bgp状态机尝试通过侦听及接收quic连接来建立bgp邻居关系。其中,s10a可以是第一网络设备完成bgp配置。完成bgp配置可以包括:使能bgp功能、申请bgp资源、指定网络设备11与网络设备12之间建立bgp邻居关系。
110.在第一网络设备与第二网络设备之间的bgp邻居关系进入idle状态时,可能还需要进行其他的操作,例如,完成其他相关的配置,又例如,清理已经保存的关于第二网络设
sent状态后,可以等待接收第二网络设备通过udp方式发送的open报文。
117.当第一网络设备确定进入open sent状态开始,经过第一预设时长,未接收到第二网络设备基于udp方式发送的open报文,则,可以确定第一网络设备在预第一预设时长未接收到第一报文的回复报文,此时,该第一网络设备保持在该open sent状态,并继续通过udp方式向第二网络设备发送open报文。其中,第一预设时长可以通过定时器实现,例如,当第一网络设备确定从进入第一网络设备和第二网络设备之间的bgp邻居关系的open sent状态时,启动时长为5秒的定时器2,在定时器2超时的时刻仍然未接收到第二网络设备基于udp方式发送的open报文,则,在该定时器2超时的时刻,重启定时器2(即将定时器2复位),同时,该第一网络设备保持在该open sent状态,并继续通过udp方式向第二网络设备发送open报文。
118.对于第一网络设备的状态机为open sent状态,接收到第二网络设备基于udp方式发送的第一报文的回复报文的具体实现,参见下文的相关描述。
119.s102,第一网络设备接收所述第二网络设备基于udp方式发送的第二报文,该第二报文用于与第一网络设备建立bgp邻居。
120.s103,响应于接收到所述第二报文,所述第一网络设备建立与所述第二网络设备之间的bgp邻居关系。
121.具体实现时,当第一网络设备基于udp方式向第二网络设备发送第一报文,并且,接收到第二网络设备基于udp方式发送的第二报文时,即可建立第一网络设备和第二网络设备之间的bgp邻居关系,为两个网络设备之间建立bgp邻居关系提供了简单、快速的实现方式。
122.其中,第一网络设备可以包括如图6所示的状态机,该状态机包括下述3种状态:idle状态、open sent状态和established状态,该情况下本技术实施例提供的方法100中的s102的相关描述参见下述第一种可能的实现方式。或者,第一网络设备也可以包括如图7所示的状态机,该状态机包括下述4种状态:idle状态、open sent状态、open confirm状态和established状态,该情况下本技术实施例提供的方法100中的s102的相关描述参见下述第二种可能的实现方式。
123.第一种可能的实现方式中,对于第一网络设备和第二网络设备均包括图6所示的状态机的情况,执行s103之前的相关描述如下:
124.在s101之后,且bgp邻居关系的状态机为open sent状态时,如果第一网络设备接收到第二网络设备基于udp方式发送的第二报文,该第二报文例如可以是open报文或update报文,则,可以执行s103。
125.在s102之前,该方法100可以包括:第一网络设备确定满足第一条件时,该第一网络设备确定该bgp邻居关系的状态机从open sent状态进入idle状态,该第一条件可以包括:第一网络设备接收到第二网络设备发送的notification报文,该notification报文用于指示第二网络设备不能与第一网络设备建立邻居关系,或者,该在第三预设时长内第一网络设备未接收到第二网络设备发送的update报文或open报文。对于第一网络设备确定bgp邻居关系的状态机进入open sent状态时经过第三预设时长,未接收到第二网络设备发送的update报文或open报文,具体可以通过定时器4实现,该定时器4的时长为第三预设时长,例如,该第一网络设备包括定时器4,在bgp邻居关系的状态机进入open sent状态时,启
动时长为20秒的定时器4,在该定时器4超时之前,第一网络设备接收到第二网络设备发送的update报文或open报文,则,定时器4重启;当该定时器4超时但还未接收到第二网络设备发送的update报文或open报文,则,认为第一网络设备满足第一条件,该第一网络设备确定该bgp邻居关系的状态机从open sent状态进入idle状态。
126.作为一个示例,如果第二报文是open报文,则,在s102和s103之间,第一网络设备可以判断该第二报文是否无误,当第一网络设备确定第二报文无误时,该第一网络设备可以执行s103。当第一网络设备确定第二报文存在错误时,该第一网络设备确定该bgp邻居关系的状态机从open sent状态进入idle状态;同时,该第一网络设备还可以向第二网络设备发送notification报文,用于让第二网络设备知晓第一网络设备和第二网络设备之间的udp方式异常。
127.其中,open报文中携带有发送方网络设备支持的能力,open报文存在错误,是指第一网络设备和第二网络设备最新的open报文中支持的能力没有交集,无法确定出两个网络设备均支持的能力,例如,第一网络设备发送的open报文指示该第一网络设备支持第四版互联网协议(英文:internet protocol version 4,简称:ipv4)能力,第一网络设备接收的open报文指示第二网络设备支持第六版互联网协议(英文:internet protocol version 6,简称:ipv6)能力,则,第一网络设备确定第二报文存在错误;open报文无误,是指第一网络设备和第二网络设备最新的open报文中支持的能力有交集,能够确定出两个网络设备均支持的能力,例如,第一网络设备发送的open报文指示该第一网络设备支持ipv4能力和ipv6能力,第一网络设备接收的open报文指示第二网络设备支持ipv6能力,则,第一网络设备可以确定与第二网络设备建立的bgp邻居关系可以适用ipv6能力,确定第二报文无误。
128.在第二种可能的实现方式中,对于第一网络设备和第二网络设备均包括图7所示的状态机的情况,执行s103之前的相关描述如下:
129.在s101之后,且bgp邻居关系的状态机为open sent状态时,如果第一网络设备接收到第二网络设备基于udp方式发送的第三报文,则,第一网络设备可以判断该第三报文是否无误。判断方式与上一个实现方式中判断第二报文是否无误的方式相同,这里不再赘述。可选的,该第三报文为open报文。
130.当第一网络设备确定第三报文无误时,该第一网络设备可以基于udp方式向第二网络设备发送第四报文,该第四报文用于指示第一网络设备可达,例如,第四报文可以是keepalive报文。同时,该第一网络设备还可以确定bgp邻居关系的状态机从open sent状态切换为open confirm状态。在open confirm状态下,bgp状态机等待接收keepalive报文或notification报文。
131.在bgp邻居关系的状态机为open confirm状态时,在下述s102之前,该方法100可以包括:第一网络设备确定满足第一条件时,该第一网络设备确定该bgp邻居关系的状态机从open confirm状态进入idle状态,该第一条件可以包括:第一网络设备接收到第二网络设备发送的notification报文,该notification报文用于指示第一网络设备和第二网络设备之间的udp方式异常,或者,该第一网络设备确定从第一网络设备和第二网络设备之间的bgp邻居关系进入open confirm状态时经过第二预设时长,未接收到第二网络设备发送的update报文或keepalive报文。第二网络设备向第一网络设备发送notification报文,可以是第二网络设备需要结束与第一网络设备之间建立bgp邻居关系的流程,或者,第二网络设
备需要修改配置之后再与第一网络设备之间建立bgp邻居关系,等等,上述需要中止目前的建立bgp邻居关系的异常情况,可以被表述为“第二网络设备不能与第二网络设备建立邻居关系”。对于第一网络设备确定从第一网络设备进入open confirm状态时经过第二预设时长,未接收到第二网络设备发送的update报文或keepalive报文,具体可以通过定时器3实现,该定时器3的时长为第二预设时长,例如,该第一网络设备包括定时器3,在bgp邻居关系的状态机进入open confirm状态时,启动时长为30秒的定时器3,在该定时器3超时之前,第一网络设备接收到第二网络设备发送的update报文或keepalive报文,则,定时器3重启;当该定时器3超时,则,认为第一网络设备满足第一条件,该第一网络设备确定该bgp邻居关系的状态机从open confirm状态进入idle状态。
132.该实现方式中,s102中的第二报文可以是update报文或keepalive报文,所述第二报文用于指示所述第二网络设备可达。
133.具体实现时,s102例如可以包括:第一网络设备接收第二网络设备基于udp方式发送的update报文或keepalive报文。由于第一网络设备和第二网络设备之间需要不断的通过keepalive报文或update报文确认对方处于正常运行状态,所以,该方法100在s102之后,还可以包括:响应于该update报文或keepalive报文,该第一网络设备重启所述定时器3。
134.基于上述两种可能的实现方式,第一网络设备接收到第二网络设备发送的第二报文,为建立两者之间的bgp邻居关系提供了数据基础。
135.具体实现时,s103例如可以指:bgp邻居关系的状态机切换为established状态,该established状态指示第一网络设备和第二网络设备之间建立了bgp邻居关系。在established状态下,bgp状态机能够与bgp邻居之间交换update报文、notification报文或keepalive报文。
136.当第一网络设备与第二网络设备之间的bgp邻居关系处于established状态时,需要不断的在第一网络设备和第二网络设备之间交互keepalive报文或update报文确认对方处于正常运行状态,所以,在s103之后,还可以包括:第一网络设备通过udp方式向第二网络设备发送keepalive报文或update报文,同时,启动定时器3,响应于第一网络设备接收第二网络设备发送的update报文或keepalive报文,该第一网络设备重启所述定时器3。
137.其中,定时器3的时长可以灵活设置,通常,定时器3的时长要大于第一网络设备发送keepalive报文的间隔时长,例如,第一网络设备发送keepalive报文的间隔时长为10秒,那么,定时器3的时长可以设置为30秒。
138.当第一网络设备与第二网络设备之间的bgp邻居关系进入established状态后,第一网络设备和第二网络设备之间即可通过update报文进行路由的交互。例如,第一网络设备接收第二网络设备发送的bgp update报文,该bgp update报文中包括从第二网络设备向第一网络设备发布的路由信息。此时,该第一网络设备可以保存各条路由信息对应的路由。
139.在一些可能的实现方式中,当第一网络设备与第二网络设备之间的bgp邻居关系进入established状态后,该方法100还可以包括:在第一网络设备确定满足第二条件时,该bgp邻居关系的状态机从established状态切换到idle状态。该第二条件例如可以包括:第一网络设备接收到第二网络设备发送的notification报文,该notification报文用于指示断开第一网络设备和第二网络设备之间的bgp邻居关系,或者,在第二预设时长内第一网络设备未接收到第二网络设备发送的update报文或keepalive报文。其中,第二网络设备发送
notification报文的原因,可以是第二网络设备需要关闭和第一网络设备之间的bgp邻居关系,也可以是第二网络设备需要更新配置之后重新建立与第一网络设备之间的bgp邻居关系,在本技术实施例中不作限定。在第四预设时长内第一网络设备未接收到第二网络设备发送的update报文或keepalive报文,具体可以通过定时器3实现,该定时器3的时长为第四预设时长(也可以称为第二预设时长),例如,该第一网络设备包括定时器3,在第一网络设备和第二网络设备之间的bgp邻居关系进入established状态且第一网络设备向第二网络设备发送keepalive报文时,启动时长为30秒的定时器3,在该定时器3超时之前,第一网络设备接收到第二网络设备发送的update报文或keepalive报文,则,定时器3重启;而当该定时器3超时,则,认为第一网络设备、第二网络设备或第一网络设备与第二网络设备之间的连接存在异常,满足第二条件,该bgp邻居关系的状态机从established状态进入idle状态。
140.由于第一网络设备和第二网络设备建立bgp邻居关系之后,会交互并保存相关的路由,那么,当该bgp邻居关系的状态机从established状态进入idle状态之后,为了给下次建立bgp邻居作准确,该方法100还可以包括:第一网络设备删除关于第二网络设备的路由。第一网络设备删除关于第二网络设备的路由,一方面,是指第一网络设备删除从第二网络设备接收的路由信息对应的第一路由;另一方面,是指第一网络设备删除established状态下第一网络设备向第二网络设备发布的路由信息对应的第二路由的状态。其中,第一路由和第二路由是泛指,例如,第一路由可以指第一网络设备上保存的由第二网络设备发送的至少一条路由,第二路由可以指第一网络设备上保存的向第二网络设备发送过的至少一条路由。
141.需要说明的是,在第一网络设备确定和第二网络设备的bgp邻居关系的状态机从established状态进入idle状态的情况下,如果需要在第一网络设备和第二网络设备之间建立bgp邻居关系,那么,该方法100还可以包括:第一网络设备确定满足第四条件时,执行该方法100中的s101~s103,建立第一网络设备和第二网络设备之间的bgp邻居关系。其中,第四条件可以包括:从established状态切换到idle开始经过预设第一时长,且第一网络设备删除完成关于第二网络设备的路由。
142.可见,通过该方法100,第一网络设备和第二网络设备之间能够通过udp方式交互的报文,建立第一网络设备与第二网络设备之间的bgp邻居关系。这样,在第一网络设备需要与第二网络设备建立bgp邻居时,无需通过复杂的流程先建立第一网络设备和第二网络设备之间的tcp连接,直接基于udp方式交互较少的报文即可实现第一网络设备和第二网络设备之间bgp邻居关系的建立,节约了建立bgp邻居需要消耗的资源,提高了建立bgp邻居的效率。
143.为了使得本技术实施例提供的建立bgp邻居的方法更加直观和清楚,下面以第一网络设备和第二网络设备包括图7所示的状态机为例,示例性的假设第一网络设备和第二网络设备之间建立bgp邻居关系的过程。
144.仍然以图2所示的包括网络设备11和网络设备12的场景为例,假设网络设备11和网络设备12之间需要建立bgp邻居,由于网络设备11和网络设备12在各状态下的处理逻辑和处理流程一致,所以,图8中以网络设备11为例,介绍基于本技术实施例提供的方法建立网络设备11和网络设备12之间的bgp邻居关系的过程中各网络设备执行的操作。如图8所
示,网络设备11在建立与第二网络设备之间的bgp邻居时执行的操作例如可以包括:
145.s21,网络设备11完成bgp配置,bgp邻居关系的状态机进入idle状态,同时,启动定时器1。
146.其中,完成bgp配置,一方面可以指配置bgp相关命令,使能bgp功能以及申请bgp资源,另一方面可以指配置网络设备11与网络设备12之间建立bgp邻居关系。
147.s22,网络设备11在定时器1超时的时刻起,bgp邻居关系的状态机进入open sent状态,同时,启动定时器2,通过udp方式向网络设备12发送open报文1,并开始等待通过udp方式接收网络设备12发送的open报文2,如果接收到没有错误的open报文2,则,bgp邻居关系的状态机进入open confirm状态,执行下述s23(图中标识为s22a);如果接收到存在错误的open报文2,则,通过udp方式向网络设备12发送用于指示网络设备11和网络设备12之间bgp邻居关系存在异常的notification报文,并回退到idle状态(图中标识为s22b);如果定时器2超时,则,继续通过udp方式向网络设备12发送open报文3,并开始等待通过udp方式接收网络设备12发送的open报文4,重启定时器2,保持open sent状态(图中标识为s22c)。
148.s23,在bgp邻居关系的状态机进入open confirm状态的同时,网络设备11通过udp方式向网络设备12发送保活keepalive报文1,启动定时器3(如10秒),并开始等待接收网络设备12发送的keepalive报文2或更新update报文,复位定时器4(如30秒),如果在定时器4超时之前接收到keepalive报文2或更新update报文,则,重启定时器4并进入established状态,执行下述s24(图中标识为s23a);如果定时器4超时或接收到网络设备12发送的notification报文,回退到dle状态(图中标识为s23b);如果定时器3超时,则,通过udp方式向网络设备12发送keepalive报文3、重启定时器3并保持open confirm状态(图中标识为s23c)。
149.s24,在bgp邻居关系的状态机进入established状态时,确定网络设备11和网络设备12之间建立好了bgp邻居关系,可以开始通过update报文实现路由的相互通告(图中标识为s24a);在进入established状态后,如果网络设备11接收到指示关闭该bgp邻居关系或指示该bgp邻居关系存在异常的notification报文,或者,定时器4超时,则,回退到idle状态(图中标识为s24b)。
150.需要说明的是,在进入established状态之后,仍然可以通过定时器4确定网络设备11和网络设备12都正常运行,即,定时器4超时之前,至少需要从网络设备12接收一条keepalive报文或update报文,接收到该keepalive报文或update报文时重启定时器4。
151.可见,对于网络设备包括图7所示的bgp邻居关系的状态机,与图1所示的基于tcp连接建立bgp邻居的过程中网络设备包括的状态机包括的6个状态相比,减少了与建立网络设备之间的tcp连接相关的connect状态和active状态,这样,本技术实施例提供的建立bgp邻居涉及的状态更少,建立bgp邻居的过程更加快速和高效,对于组网越来越复杂的场景,能够大大的节约网络部署所消耗的资源,提升网络部署的效率。
152.相应的,本技术实施例还提供了一种建立bgp邻居的装置900,该装置900具有上述图4、6或7所示的方法实施例中第一网络设备,或者图8所示的方法实施例中的网络设备11的任意功能。如图9所示。该装置900可以包括:第一发送单元901、第一接收单元902和建立单元903。
153.其中,第一发送单元901,用于基于udp方式向第二网络设备发送第一报文,第一报
文用于与第二网络设备建立bgp邻居。所述第一发送单元901可以执行图4所示的s101。
154.第一接收单元902,用于接收第二网络设备基于udp方式发送的第二报文,该第二报文用于与第一网络设备建立bgp邻居。所述第一接收单元902可以执行图4所示的s102。
155.建立单元903,用于响应于接收到第二报文,建立与第二网络设备之间的bgp邻居关系。所述建立单元903可以执行图4所示的s103。
156.在一种可能的实现方式中,第一报文为open报文,open报文包括建立bgp邻居的装置所属的自治域as标识和建立bgp邻居的装置的bgp标识。
157.作为一个示例,该装置900可以包括bgp邻居关系的状态机,该装置900还包括:设置单元和第一切换单元。其中,设置单元,用于在基于udp方式向第二网络设备发送第一报文之前,设置状态机为空闲状态;第一切换单元,用于在基于udp方式向第二网络设备发送第一报文之后,将状态机从空闲状态切换为开始报文已发送open sent状态。
158.作为另一个示例,该装置900包括bgp邻居关系的状态机,该装置900还包括:第一切换单元。第一切换单元,用于在基于udp方式向第二网络设备发送第一报文之前,将状态机从空闲状态切换为open sent状态。
159.作为又一个示例,该装置900包括bgp邻居关系的状态机,该装置900还包括:第一切换单元。其中,该第一切换单元,用于在基于udp方式向第二网络设备发送第一报文时,将状态机从空闲状态切换为open sent状态。
160.在一种可能的实现方式中,该装置900还包括:第二发送单元。该第二发送单元,用于在基于udp方式向第二网络设备发送第一报文之后,在第一预设时长内未接收到第二网络设备发送的第一报文的回复报文时,通过udp方式向第二网络设备发送open报文。
161.在一种可能的实现方式中,该装置900还包括:第二接收单元和判断单元。其中,第二接收单元,用于在基于udp方式向第二网络设备发送第一报文之后,接收第二网络设备基于udp方式发送的第三报文,第三报文用于与建立bgp邻居的装置900建立bgp邻居关系;判断单元,用于判断第三报文是否无误,第三报文无误是指第三报文所指示的第二网络设备支持的能力和第一报文所指示的建立bgp邻居的装置900支持的能力存在相同的内容。
162.其中,第三报文为open报文。
163.在一种可能的实现方式中,该装置900还包括:第四发送单元。其中,该第四发送单元,用于当第三报文无误时,基于udp方式向第二网络设备发送第四报文,第四报文用于指示建立bgp邻居的装置900可达。
164.其中,第四报文为保活keepalive报文。
165.在一种可能的实现方式中,该装置900包括bgp邻居关系的状态机,该装置900还包括:第二切换单元。该第二切换单元,用于当第三报文无误时,将状态机从open sent状态切换为开始报文已确认open confirm状态。
166.在一种可能的实现方式中,该装置900还包括:第三切换单元。该第三切换单元,用于在接收第二报文之前,在满足第一条件时,将状态机从open confirm状态切换为空闲状态,第一条件包括:建立bgp邻居的装置900接收到第一通知notification报文,第一notification报文用于指示第二网络设备不能与建立bgp邻居的装置900建立邻居关系,或者,在第二预设时长内建立bgp邻居的装置900未接收到第二网络设备发送的keepalive报文或更新update报文。
167.在一种可能的实现方式中,该装置900包括定时器,定时器的时长为第二预设时长,该装置900还包括:第一重启单元。第一重启单元,用于响应于接收到第二报文,建立bgp邻居的装置900重启定时器。
168.在一种可能的实现方式中,该装置900包括状态机,该装置900还包括:第四切换单元。第四切换单元,用于当第三报文存在错误时,将状态机从open sent状态切换为空闲状态。
169.在一种可能的实现方式中,该装置900还包括:第五发送单元。第五发送单元,用于当第三报文存在错误时,向第二网络设备发送第二通知notification报文,第二notification报文用于指示建立bgp邻居的装置900不能与第二网络设备建立bgp邻居关系。
170.其中,第二报文用于指示第二网络设备可达,第二报文为keepalive报文或更新update报文。
171.或者,第二报文用于指示第二网络设备可达,第二报文为open报文或更新update报文。
172.作为一个示例,该装置900的判断单元,还用于在建立与第二网络设备之间的bgp邻居关系之前,判断所述第二报文是否无误,该第二报文无误是指第二报文所指示的第二网络设备支持的能力和第一报文所指示的第一网络设备支持的能力存在匹配的内容。那么,当判断单元确定第二报文无误时,触发建立单元执行响应于接收到第二报文,建立与第二网络设备之间的bgp邻居关系。当判断单元确定该第二报文存在错误时,该装置的第五切换单元,用于将状态机从open sent状态切换为空闲状态。
173.在一种可能的实现方式中,该装置900还包括:第五切换单元。第五切换单元,用于在接收第二报文之前,在满足第一条件时,将状态机从open sent状态切换为空闲状态,第一条件包括:建立bgp邻居的装置900接收到第一通知notification报文,第一notification报文用于指示第二网络设备不能与建立bgp邻居的装置900建立邻居关系,或者,在第三预设时长内建立bgp邻居的装置900未接收到第二网络设备发送的open报文或更新update报文。
174.在一种可能的实现方式中,该装置900包括定时器,定时器的时长为第三预设时长,该装置900还包括:第二重启单元。其中,第二重启单元,用于响应于接收到第二报文,重启定时器。
175.在一种可能的实现方式中,该装置900包括bgp邻居关系的状态机,那么,建立单元903,具体用于:将状态机切换为已建立established状态,established状态指示建立bgp邻居的装置900和第二网络设备之间建立了bgp邻居关系。
176.在一种可能的实现方式中,该装置900还包括:第三接收单元。第三接收单元,用于在建立与第二网络设备之间的bgp邻居关系之后,接收第二网络设备发送的bgp更新update报文,bgp update报文中包括从第二网络设备向建立bgp邻居的装置900发布的路由信息。
177.在一种可能的实现方式中,该装置900还包括:第六切换单元。该第六切换单元,用于在将状态机切换为established状态后,在满足第二条件时,将状态机从established状态切换为空闲状态,第二条件包括:建立bgp邻居的装置900接收到第二notification报文,第二notification报文用于指示断开建立bgp邻居的装置900和第二网络设备之间的bgp邻
居关系,或者,在第四预设时长内建立bgp邻居的装置900未接收到第二网络设备发送的update报文或keepalive报文。
178.在一种可能的实现方式中,该装置900还包括:删除单元。该删除单元,用于在从established状态进入空闲状态之后,删除从第二网络设备接收的路由信息对应的路由。
179.需要说明的是,上述功能相同但命名中序号不同的单元,可以是一个能够实现该功能的单元,例如,上述第一发送单元901和第二发送单元可以是同一个具有发送功能的单元。
180.需要说明的是,图8所示的建立bgp邻居的装置900可以是图4所示的实施例中的第一网络设备或图8所示的示例中的网络设备11,因此,建立bgp邻居的装置900的各种具体实施例方式,可以参见图4对应的方法100以及图8对应的方法的相关介绍,本实施例不再赘述。
181.参见图10,本技术实施例提供了一种网络设备1000。该网络设备1000可以是上述任一实施例中的网络设备,例如可以是图4、6或7所示实施例中的第一网络设备,也可以是图8所示实施例中的网络设备11,网络设备1000可以实现上述实施例中第一网络设备或网络设备11的功能。该网络设备1000包括至少一个处理器1001,总线系统1002,存储器1003以及至少一个收发器1004。
182.该网络设备1000是一种硬件结构的装置,可以用于实现图9所示的建立bgp邻居的装置900中的功能模块。例如,本领域技术人员可以想到图9所示的建立bgp邻居的装置900中的建立单元903可以通过该至少一个处理器1001调用存储器1003中的代码来实现,图9所示的建立bgp邻居的装置900中的第一发送单元901和第一接收单元902可以通过该收发器1004来实现。
183.可选的,该网络设备1000还可用于实现上述任一实施例中网络设备的功能。
184.可选的,上述处理器1001可以是一个通用中央处理器(central processing unit,cpu),网络处理器(network processor,np),微处理器,特定应用集成电路(application-specific integrated circuit,asic),或一个或多个用于控制本技术方案程序执行的集成电路。
185.上述总线系统1002可包括一通路,在上述组件之间传送信息。
186.上述收发器1004,用于与其他设备或通信网络通信。
187.上述存储器1003可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
188.其中,存储器1003用于存储执行本技术方案的应用程序代码,并由处理器1001来控制执行。处理器1001用于执行存储器1003中存储的应用程序代码,从而实现本专利方法
中的功能。
189.在具体实现中,作为一种实施例,处理器1001可以包括一个或多个cpu,例如图10中的cpu0和cpu1。
190.在具体实现中,作为一种实施例,该网络设备1000可以包括多个处理器,例如图10中的处理器1001和处理器1007。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
191.图11是本技术实施例提供的另一种网络设备1100的结构示意图,网络设备1100例如可以是图2所示实施例中的网络设备11,或者也可以是图4所示实施例中的第一网络设备。
192.网络设备1100包括:主控板1110和接口板1130。
193.主控板1110也称为主处理单元(main processing unit,mpu)或路由处理卡(route processor card),主控板1110对网络设备1100中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板1110包括:中央处理器1111和存储器1112。
194.接口板1130也称为线路接口单元卡(line processing unit,lpu)、线卡(line card)或业务板。接口板1130用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、pos(packet over sonet/sdh)接口等,以太网接口例如是灵活以太网业务接口(flexible ethernet clients,flexe clients)。接口板1130包括:中央处理器1131、网络处理器1132、转发表项存储器1134和物理接口卡(ph8sical interface card,pic)1133。
195.接口板1130上的中央处理器1131用于对接口板1130进行控制管理并与主控板1110上的中央处理器1111进行通信。
196.网络处理器1132用于实现报文的转发处理。网络处理器1132的形态可以是转发芯片。具体而言,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。
197.物理接口卡1133用于实现物理层的对接功能,原始的流量由此进入接口板1130,以及处理后的报文从该物理接口卡1133发出。物理接口卡1133包括至少一个物理接口,物理接口也称物理口,物理接口卡1133对应于系统架构中的flexe物理接口。物理接口卡1133也称为子卡,可安装在接口板1130上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器1132处理。在一些实施例中,接口板1130的中央处理器1131也可执行网络处理器1132的功能,比如基于通用cpu实现软件转发,从而物理接口卡1133中不需要网络处理器1132。
198.可选地,网络设备1100包括多个接口板,例如网络设备1100还包括接口板1140,接口板1140包括:中央处理器1141、网络处理器1142、转发表项存储器1144和物理接口卡1143。
199.可选地,网络设备1100还包括交换网板1120。交换网板1120也可以称为交换网板单元(switch fabric unit,sfu)。在网络设备有多个接口板1130的情况下,交换网板1120用于完成各接口板之间的数据交换。例如,接口板1130和接口板1140之间可以通过交换网
板1120通信。
200.主控板1110和接口板1130耦合。例如。主控板1110、接口板1130和接口板1140,以及交换网板1120之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板1110和接口板1130之间建立进程间通信协议(inter-process communication,ipc)通道,主控板1110和接口板1130之间通过ipc通道进行通信。
201.在逻辑上,网络设备1100包括控制面和转发面,控制面包括主控板1110和中央处理器1131,转发面包括执行转发的各个组件,比如转发表项存储器1134、物理接口卡1133和网络处理器1132。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器1132基于控制面下发的转发表对物理接口卡1133收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器1134中。在一些实施例中,控制面和转发面可以完全分离,不在同一设备上。
202.如果网络设备1100被配置为第一网络设备,网络处理器1132可以触发物理接口卡1133基于udp方式向第二网络设备发送第一报文,并接收第二网络设备基于udp方式发送的第二报文。中央处理器1111可以响应于第二报文,建立第一网络设备和第二网络设备之间的bgp邻居关系。
203.应理解,建立bgp关系的装置900中的第一发送单元901和第一接收单元902等、以及网络设备1000中的收发器1004可以相当于网络设备1100中的物理接口卡1133或物理接口卡1143;建立bgp关系的装置900中的建立单元903等、以及网络设备1000中的处理器1001可以相当于网络设备1100中的中央处理器1111或中央处理器1131。
204.应理解,本技术实施例中接口板1140上的操作与接口板1130的操作一致,为了简洁,不再赘述。应理解,本实施例的网络设备1100可对应于上述各个方法实施例中的建立bgp邻居的装置或网络设备,该网络设备1100中的主控板1110、接口板1130和/或接口板1140可以实现上述各个方法实施例中的建立bgp邻居的装置900或网络设备1000中所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
205.应理解,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景。
206.在一些可能的实施例中,上述各网络设备或网络设备可以实现为虚拟化设备。例如,虚拟化设备可以是运行有用于发送报文功能的程序的虚拟机(英文:virtual machine,
vm),虚拟机部署在硬件设备上(例如,物理服务器)。虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。可以将虚拟机配置为图1中的各网络设备。例如,可以基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,nfv)技术来实现各网络设备或网络设备。各网络设备或网络设备为虚拟主机、虚拟路由器或虚拟交换机。本领域技术人员通过阅读本技术即可结合nfv技术在通用物理服务器上虚拟出具有上述功能的各网络设备或网络设备,此处不再赘述。
207.应理解,上述各种产品形态的网络设备,分别具有上述方法实施例中各网络设备或网络设备的任意功能,此处不再赘述。
208.本技术实施例还提供了一种芯片,包括处理器和接口电路,接口电路,用于接收指令并传输至处理器;处理器,例如可以是本技术实施例中建立bgp邻居的装置的一种具体实现形式,可以用于执行上述建立bgp邻居的方法。其中,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述任一方法实施例中的方法。
209.可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
210.可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本技术并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器rom,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
211.示例性的,该芯片系统可以是现场可编程门阵列(field programmable gate array,fpga),可以是专用集成芯片(application specific integrated circuit,asic),还可以是系统芯片(system on chip,soc),还可以是中央处理器(central processor unit,cpu),还可以是网络处理器(network processor,np),还可以是数字信号处理电路(digital signal processor,dsp),还可以是微控制器(micro controller unit,mcu),还可以是可编程控制器(programmable logic device,pld)或其他集成芯片。
212.此外,本技术实施例还提供了一种网络系统1200,参见图12。该网络系统1200可以包括第一网络设备1201和第二网络设备1202。其中,第一网络设备1201,用于基于udp方式向第二网络设备1202发送第一报文,该第一报文用于与第二网络设备1202建立bgp邻居;第二网络设备1202,用于接收第一报文,并基于udp方式向第一网络设备1201发送第二报文,该第二报文用于与第一网络设备1201建立bgp邻居;那么,第一网络设备1201,还用于响应于接收到第二报文,建立与第二网络设备1202之间的bgp邻居关系。
213.其中,第一报文可以为open报文,该open报文包括第一网络设备所属的as标识和所述第一网络设备的bgp标识。
214.在一种可能的实现方式中,第一网络设备1201存储bgp邻居关系的状态机,在第一网络设备1201基于udp方式向第二网络设备1202发送第一报文之前,该状态机为空闲状态。作为一个示例,第一网络设备1201,还用于在基于udp方式向第二网络设备1202发送第一报文之后,将状态机从空闲状态切换为开始报文已发送open sent状态。作为另一个示例,第一网络设备1201,还用于将状态机从空闲状态切换为open sent状态后,基于udp方式向第
二网络设备1202发送第一报文。作为又一个示例,第一网络设备1201,还用于基于udp方式向第二网络设备1202发送第一报文时,将状态机从空闲状态切换为open sent状态。
215.在一种可能的实现方式中,第二报文用于指示第二网络设备1202可达,该第二报文例如可以为keepalive报文或更新update报文。
216.在一种可能的实现方式中,第一网络设备1201,还用于在基于udp方式向第二网络设备1202发送第一报文之后,开始等待接收第二网络设备1202发送的open报文。如果第一网络设备1201,还用于在第一预设时长内未接收到第二网络设备1202发送的第一报文的回复报文,则,继续通过udp方式向第二网络设备1202发送open报文,直到接收到第二网络设备1202基于udp方式发送的回复报文。
217.在一种可能的实现方式中,第一网络设备1201,还用于基于udp方式向第二网络设备1202发送第一报文之后,接收第二网络设备1202基于udp方式发送的第三报文,第三报文用于与第一网络设备1201建立bgp邻居关系;那么,第一网络设备1201,还用于判断第三报文是否无误,第三报文无误是指第三报文所指示的第二网络设备1202支持的能力和第一报文所指示的第一网络设备1201支持的能力存在相同的内容。其中,第三报文可以为open报文。
218.作为一个示例,当第三报文无误时,第一网络设备1201,还用于基于udp方式向第二网络设备1202发送第四报文,该第四报文用于指示第一网络设备1201可达。其中,第四报文例如可以是为保活keepalive报文。当确定第三报文无误时,第一网络设备1201,还用于将状态机从open sent状态切换为开始报文已确认open confirm状态。
219.该示例下,第一网络设备1201,还用于在接收第二报文之前,确定满足第一条件,则,将状态机从open confirm状态切换为空闲状态,其中,该第一条件包括:第一网络设备1201接收到第一通知notification报文,第一notification报文用于指示第二网络设备1202不能与第一网络设备1201建立邻居关系,或者,在第二预设时长内第一网络设备1201未接收到第二网络设备1202发送的keepalive报文或更新update报文。
220.该示例下,该第一网络设备1201可以包括定时器,该定时器的时长可以为上述第二预设时长,那么,第一网络设备1201,还用于响应于接收到的第二报文,可以重启该定时器。
221.作为另一个示例,当第三报文存在错误时,第一网络设备1201,还用于将状态机从open sent状态切换为空闲状态。而且,当第三报文存在错误时,第一网络设备1201,还用于向第二网络设备1202发送第二通知notification报文,该第二notification报文用于指示第一网络设备1201不能与第二网络设备1202建立bgp邻居关系。
222.在一种可能的实现方式中,该第二报文例如可以为open报文或更新update报文。
223.作为一个示例,第一网络设备,还用于响应于接收到所述第二报文,在建立与第二网络设备1202之间的bgp邻居关系之前,判断所述第二报文是否无误,该第二报文无误是指第二报文所指示的第二网络设备1202支持的能力和第一报文所指示的第一网络设备1201支持的能力存在匹配的内容。那么,当确定第二报文无误时,第一网络设备1201,还用于响应于接收到第二报文,建立与第二网络设备1202之间的bgp邻居关系。当确定该第二报文存在错误时,第一网络设备1201,还用于将状态机从open sent状态切换为空闲状态。
224.作为一个示例,第一网络设备1201,还用于在接收第二报文之前,如果确定满足第
一条件时,则,将状态机从open sent状态切换为空闲状态,该第一条件包括:第一网络设备1201接收到第一通知notification报文,第一notification报文用于指示第二网络设备1202不能与第一网络设备1201建立邻居关系,或者,在第三预设时长内第一网络设备1201未接收到第二网络设备1202发送的open报文或更新update报文。该示例下,该第一网络设备1201可以包括定时器,该定时器的时长可以为上述第三预设时长,那么,第一网络设备1201,还用于响应于接收到第二报文,第一网络设备1201可以重启定时器。
225.在一些可能的实现方式中,如果第一网络设备1201存储bgp邻居关系的状态机,那么,响应于第二报文,第一网络设备1201建立与第二网络设备1202之间的bgp邻居关系,具体可以是指:第一网络设备1201将状态机切换为已建立established状态,该established状态指示第一网络设备1201和第二网络设备1202之间建立了bgp邻居关系。
226.作为一个示例,第一网络设备1201,还用于在建立与第二网络设备1202之间的bgp邻居关系之后,不断的接收第二网络设备1202发送的bgp更新update报文,bgp update报文中包括从第二网络设备1202向第一网络设备1201发布的路由信息。
227.在一些可能的实现方式中,第一网络设备1201,还用于在将状态机切换为established状态后,如果满足第二条件时,将状态机从established状态切换为空闲状态,第二条件例如可以包括:第一网络设备1201接收到第二notification报文,第二notification报文用于指示断开第一网络设备1201和第二网络设备1202之间的bgp邻居关系,或者,在第四预设时长内第一网络设备1201未接收到第二网络设备1202发送的update报文或keepalive报文。
228.作为一个示例,第一网络设备1201,还用于在从established状态进入空闲状态之后,删除从第二网络设备1202接收的路由信息对应的路由。此外,第一网络设备1201,还用于删除第一网络设备1201向第二网络设备1202发送的路由信息对应的路由的状态。
229.需要说明的是,该网络系统1200中,第二网络设备1202,用于基于udp方式向第一网络设备1201发送第五报文,该第五报文用于与第一网络设备建立bgp邻居;第一网络设备1201,用于接收第五报文,并基于udp方式向第二网络设备1202发送第六报文,该第六报文用于与第二网络设备1202建立bgp邻居;那么,第二网络设备1202,还用于响应于接收到第六报文,建立与第一网络设备1201之间的bgp邻居关系。
230.需要说明的是,图12所示的网络系统1200的相关说明,可以参见图4对应的方法100以及图8对应的方法的相关介绍,本实施例不再赘述。
231.此外,本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有程序代码或指令,当其在计算机上运行时,使得计算机执行以上图4或图8所示实施例中任意一种实现方式下的方法。
232.此外,本技术实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行前述方法100中任意一种实现方式的方法。
233.本技术实施例中提到的“第一报文”、“第一网络设备”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。
234.应理解,本技术实施例中提到的“基于根据a确定b”并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。
235.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施
例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,rom)/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本技术各个实施例或者实施例的某些部分所述的方法。
236.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例和设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
237.以上所述仅是本技术的优选实施方式,并非用于限定本技术的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献