1.本技术涉及通信技术,特别涉及一种发送保活报文的方法、设备及存储介质。
背景技术:2.bgp(border gateway protocol,边界网关协议)是一种既可以用于不同as(autonomous system,自治系统)之间,又可以用于同一as内部的动态路由协议。bgp协议使用tcp(transmission control protocol,传输控制协议)作为其传输层协议。bgp可以跨越多跳路由设备建立邻居关系(neighbor)。
3.路由设备与其他路由设备建立bgp邻居关系后,各自按照保活定时器定时发送保活报文,当指定时间内路由设备无法收到bgp邻居的保活报文时,邻居关系断开。
4.在具有多个主控板的框式通信设备中,bgp协议的主进程和备进程分别运行在主用主控板和备用主控板上,当发生主用主控板和备用主控板之间的主备倒换时,基于nsr(nonstop routing,不间断路由)技术将ospf链路状态信息从主用主控板bgp的主进程备份到备用主控板的bgp备进程的邻居信息重新恢复,从而确保bgp邻居/对等体感知不到bgp协议中断。
5.在irf(intelligesilient framework,智能弹性架构)系统中,bgp主进程和bgp备进程分别运行在主控制设备(master)和从设备(slave)设备,当发生作为主控制设备的成员设备与作为从设备的成员设备进行主备切换时,同样需要依赖nsr将bgp主进程切换到bgp备进程。和从设备bgp协议的主进程和备进程运行在不同的成员设备。
6.但是,框式路由设备或irf系统的bgp主进程和备进程切换时,bgp备进程基于提前备份好的必要的协议状态和数据启动,发送保活报文。但是当bgp路由量大、路由属性离散、路由消息多时,bgp主进程和备进程切换时间长导致bgp备进程无法及时发送保活报文,bgp邻居未收到保活报文的时间超时断开邻居关系时,引发路由震荡。
技术实现要素:7.本技术的目的在于提供一种发送保活报文的方法、设备及存储介质,使得备控制设备的bgp备进程在切换前保活报文,避免bgp邻居关系超时断开。
8.为实现上述目的,本技术提供了一种发送保活报文的方法,该方法包括,主控制设备的bgp主进程将连接bgp邻居的传输层控制协议tcp连接的tcp信息备份至备控制设备的bgp备进程;bgp备进程基于配置备份的tcp信息源ip地址、协议类型以及tcp源端口号建立备套接字socket;bgp备进程监听bgp主进程的tcp连接的主socket;bgp主进程重启并关闭主socket;bgp备进程监听到主socket关闭,激活备socket,基于tcp信息获取tcp序列号;bgp备进程使用激活的备socket通过tcp连接向bgp邻居发送保活报文;其中,保活报文的tcp序列号为获取tcp序列号加1。
9.为实现上述目的,本技术还提供了一种发送保活报文的设备,该设备包括处理器以及存储器;存储器用于存储处理器可执行指令;其中,处理器通过运行存储器中的处理器
可执行指令用以实现发送保活报文。
10.为实现上述目的,本技术还提供了一种计算机可读存储介质,用于存储处理器可执行指令,该处理器可执行指令被处理器执行时实现保活报文。
11.本技术的有益效果在于,bgp备进程升级成bgp主进程之前,bgp备进程激活备socket向bgp邻居发送tcp连接的保活报文,避免因为bgp主备进程切换时间长而导致bgp邻居长时间未通过tcp连接收到保活报文,bgp邻居关系断开。
附图说明
12.图1为本技术提供的发送保活报文方法实施例的流程图;
13.图2为本技术提供的发送保活报文方法的另一实施例的示意图;
14.图3为本发明提供的适用于图2所示保活报文发送方法的框式通信设备的示意图;
15.图4本技术实施例提供的发送保活报文的设备的示意图。
具体实施方式
16.将以多个附图所示的多个例子进行详细说明。在以下详细描述中,多个具体细节用于提供对本技术的全面理解。实例中没有详细地描述已知的方法、步骤、组件以及电路,以免使这些例子的难于理解。
17.使用的术语中,术语“包括”表示包括但不限于;术语“含有”表示包括但不限于;术语“以上”、“以内”以及“以下”包含本数;术语“大于”、“小于”表示不包含本数。术语“基于”表示至少基于其中一部分。
18.图1所示为本技术提供的一种发送保活报文的方法实施例的流程图,方法包括,
19.步骤101,主控制设备的bgp主进程将连接bgp邻居的传输层控制协议tcp连接的tcp信息备份至备控制设备的bgp备进程;
20.步骤102,bgp备进程基于配置备份的tcp信息源ip地址、协议类型以及tcp源端口号建立备socket;
21.步骤103,bgp备进程监听bgp主进程的tcp连接的主socket;
22.步骤104,bgp主进程重启并关闭主socket;
23.步骤105,bgp备进程监听到主socket关闭,激活备socket,基于tcp信息获取tcp序列号;
24.步骤106,bgp备进程使用激活的备socket通过tcp连接向bgp邻居发送保活报文;其中,保活报文的tcp序列号为获取tcp序列号加1。
25.本技术的有益效果在于,bgp备进程升级成bgp主进程之前,bgp备进程激活备socket向bgp邻居发送tcp连接的保活报文,避免因为bgp主备进程切换时间长而导致bgp邻居长时间未通过tcp连接收到保活报文,bgp邻居关系断开。
26.图2所示为本技术提供的发送保活报文方法的另一实施例的示意图。在图3所示的框式通信设备中,主控板1是运行bgp主进程的主控制设备,主控板2和3是运行bgp备进程的备控制设备;主控板2和主控板3选举通过ha协议报文选举主控板2为优选备设备,主控板2开启bgp不间断路由功能。如果主控板2性能下降,通过重新选举,主控板3被选举为新的优选备设备,则主控板2关闭bgp不间断路由功能;主控板3开启bgp不间断路由功能。
27.如果主控板3从框式通信设备被移除,则主控板2作为优选备设备,开启bgp不间断路由功能。
28.以下结合图3对图2所示的方法进行说明。
29.主控板2运行的bgp备进程确定备控制设备被选举为优选备设备角色,启动bgp不间断路由功能。
30.主控板1的bgp主进程将连接bgp邻居的传输层控制协议tcp连接的tcp信息备份至主控板2的bgp备进程。bgp备进程基于配置备份的tcp信息源ip地址、协议类型以及tcp源端口号建立备socket。
31.bgp备进程监听bgp主进程的tcp连接的主socket。本技术中,bgp备进程可以向tcp协议注册协议控制块pcb状态变化事件,通过注册的tcp协议的pcb状态变化事件监听bgp主进程的tcp协议的pcb的信息;或者,bgp备进程设置监听定时器;当监听定时器到达时,bgp备进程调用tcp接口获取bgp主进程的tcp协议的pcb的信息。
32.当主控板1的处理器运行的bgp主进程收到重启信号时执行重启,bgp主进程的主socket连接关闭,bgp主进程的bgp nsr状态由“准备(ready)”变成“关闭(closing)”。主控板2的处理器运行的bgp备进程监听到主socket关闭,bgp备进程基于备份的tcp信息获取tcp连接的五元组信息;其中,五元组信息包括作为目的ip地址的bgp邻居的ip地址、bgp邻居的不间断路由nsr的协议tcp端口号;作为源ip地址的bgp主进程的ip地址;bgp主进程的nsr协议的tcp端口号以及虚拟转发实例标识;bgp备进程将备socket和五元组信息关联;激活备socket,由于bgp协议支持多vrf(虚拟转发实例)、tcp双向连接,通过将备socket和五元组关联保证将备socket与正确唯一的tcp连接关联。
33.主控板2的bgp备进程从备份的tcp信息获取tcp序列号,以激活的备socket通过tcp连接向bgp邻居发送带有保活报文;其中,保活报文的tcp序列号在获取的备份tcp信息的tcp序列号基础上加1。主控板2的bgp备进程启动保活报文发送周期的定时器。
34.本技术是在主控板2的bgp备进程升级成bgp主进程之前,能够快速感知主控板1上tcp主socket关闭,激活备socket发送保护报文,避免主控板1和主控板2上的bgp主备进程切换时间长导致框式通信设备与bgp邻居之间的tcp连接断开,导致路由震荡。
35.主控板2的bgp备进程切换为bgp主进程,关闭bgp不间断路由功能。
36.图2的实施例除了适用于图3所示的框式通信设备以外,还可以使用irf系统。在irf系统中,主设备(master)角色的成员设备是运行bgp主进程的主控制设备,从设备(slave)角色的成员设备运行bgp备进程的备控制设备。在irf系统中,从设备中选择一个成员设备作为优选备设备。作为优选备设备的bgp备控制设备运行的bgp备进程开启bgp不间断路由功能。
37.参见图4,本技术实施例提供的发送保活报文的设备400还包括通信接口402和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。该400可以作为框式通信设备的主控卡、irf系统的成员设备。设备400的处理器401通过运行存储器403中的处理器可执行指令用以实现图2所示的保活报文发送方法。
38.本技术实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有处理器可执行指令,上述处理器可执行指令被处理器执行时实现本技术图1、图2、图3的保活报文发送方法。
39.以上所述仅为本技术的较佳实施例,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。