发明内容
本发明实施例提供一种虚连接实现的方法和设备,以避免流量中断。
为达到上述目的,本发明实施例提供一种虚连接实现的方法,应用于至少包括第一路由设备和第二路由设备的开发最短路径优先OSPF网络中,所述第一路由设备与所述第二路由设备在同一OSPF区域,该方法包括以下步骤:
在所述第一路由设备需要与所述第二路由设备建立虚连接时,所述第一路由设备获得自身与所述第二路由设备之间存在的各物理链路所对应的出接口,并从所述获得的出接口中选择一个出接口为主出接口,以及确定备出接口;
所述第一路由设备通过所述主出接口向所述第二路由设备发送第一协商报文,所述第一协商报文的源地址为所述主出接口的地址,且所述第一协商报文中携带所述备出接口的地址;用于使所述第二路由设备在与所述第一路由设备对应的虚连接邻居的信息中记录所述主出接口的地址以及所述备出接口的地址;
在所述第一路由设备与所述第二路由设备建立虚连接后,所述第一路由设备在发现所述主出接口所对应的物理链路出现故障,则,通过所述备出接口向所述第二路由设备发送第二协商报文,所述第二协商报文的源地址为所述备出接口的地址,且所述第一路由设备保持所述第二路由设备对应的虚连接邻居处于完全邻接FULL状态;其中,所述第二协商报文的源地址用于使所述第二路由设备利用所述第一路由设备对应的虚连接邻居的信息以及所述第二协商报文的源地址确定需要保持所述第一路由设备对应的虚连接邻居处于FULL状态。
所述第二路由设备利用所述第一路由设备对应的虚连接邻居的信息以及所述第二协商报文的源地址确定需要保持所述第一路由设备对应的虚连接邻居处于FULL状态,包括:
所述第二路由设备在接收到所述第二协商报文之后,如果发现所述第一路由设备对应的虚连接邻居的信息中记录有所述第二协商报文的源地址,则确定需要保持所述第一路由设备对应的虚连接邻居处于FULL状态。
所述第一路由设备在发现所述主出接口所对应的物理链路出现故障,则,通过所述备出接口向所述第二路由设备发送第二协商报文的过程,进一步包括:所述第一路由设备对所述主出接口所对应的物理链路进行双向转发检测BFD检测,并在检测到所述主出接口所对应的物理链路出现故障之后,判断当前是否存在备出接口;如果存在备出接口,所述第一路由设备通过所述备出接口向所述第二路由设备发送所述第二协商报文,并保持所述第二路由设备对应的虚连接邻居处于FULL状态;如果不存在备出接口,则所述第一路由设备使所述第二路由设备对应的虚连接邻居处于故障Down状态。
所述第一协商报文为基于OSPF协议的Hello报文,且所述第二协商报文为基于OSPF协议的Hello报文。
本发明实施例提供一种路由设备,作为第一路由设备应用于至少包括所述第一路由设备和第二路由设备的开发最短路径优先OSPF网络中,所述第一路由设备与所述第二路由设备在同一OSPF区域,所述第一路由设备包括:
获得模块,用于在所述第一路由设备需要与所述第二路由设备建立虚连接时,获得所述第一路由设备与所述第二路由设备之间存在的各物理链路所对应的出接口;
选择模块,用于从所述获得的出接口中选择一个出接口为主出接口,以及确定备出接口;
第一发送模块,用于通过所述主出接口向所述第二路由设备发送第一协商报文,所述第一协商报文的源地址为所述主出接口的地址,且所述第一协商报文中携带所述备出接口的地址;用于使所述第二路由设备在与所述第一路由设备对应的虚连接邻居的信息中记录所述主出接口的地址以及所述备出接口的地址;
第二发送模块,用于在所述第一路由设备与所述第二路由设备建立虚连接后,在发现所述主出接口所对应的物理链路出现故障,则,通过所述备出接口向所述第二路由设备发送第二协商报文,所述第二协商报文的源地址为所述备出接口的地址,且保持所述第二路由设备对应的虚连接邻居处于完全邻接FULL状态;其中,所述第二协商报文的源地址用于使所述第二路由设备利用所述第一路由设备对应的虚连接邻居的信息以及所述第二协商报文的源地址确定需要保持所述第一路由设备对应的虚连接邻居处于FULL状态。
所述第二发送模块,具体用于对所述主出接口所对应的物理链路进行双向转发检测BFD检测,并在检测到所述主出接口所对应的物理链路出现故障之后,判断当前是否存在备出接口;如果存在备出接口,通过所述备出接口向所述第二路由设备发送所述第二协商报文,并保持所述第二路由设备对应的虚连接邻居处于FULL状态;如果不存在备出接口,则使所述第二路由设备对应的虚连接邻居处于故障Down状态。
所述第一协商报文为基于OSPF协议的Hello报文,且所述第二协商报文为基于OSPF协议的Hello报文。
本发明实施例提供一种路由设备,作为第二路由设备应用于至少包括第一路由设备和所述第二路由设备的开发最短路径优先OSPF网络中,所述第一路由设备与所述第二路由设备在同一OSPF区域,所述第二路由设备包括:
第一接收模块,用于在所述第一路由设备需要与所述第二路由设备建立虚连接时,接收所述第一路由设备通过主出接口向所述第二路由设备发送的第一协商报文,所述第一协商报文的源地址为所述主出接口的地址,且所述第一协商报文中携带了备出接口的地址;
记录模块,用于在与所述第一路由设备对应的虚连接邻居的信息中记录所述主出接口的地址以及所述备出接口的地址;
第二接收模块,用于在所述第一路由设备与所述第二路由设备建立虚连接后,在所述主出接口所对应的物理链路出现故障之后,接收所述第一路由设备通过所述备出接口向所述第二路由设备发送的第二协商报文,所述第二协商报文的源地址为所述备出接口的地址;
确定模块,用于利用所述第一路由设备对应的虚连接邻居的信息以及所述第二协商报文的源地址确定需要保持所述第一路由设备对应的虚连接邻居处于FULL状态。
所述确定模块,具体用于在接收到所述第二协商报文之后,如果发现所述第一路由设备对应的虚连接邻居的信息中记录有所述第二协商报文的源地址,则确定需要保持所述第一路由设备对应的虚连接邻居处于FULL状态。
所述第一协商报文为基于OSPF协议的Hello报文,且所述第二协商报文为基于OSPF协议的Hello报文。
与现有技术相比,本发明实施例至少具有以下优点:
本发明实施例中,当在两台路由设备之间需要建立虚连接的情况下,如果发送协议报文的主出接口所对应的物理链路出现故障,则可以快速通过备出接口发送协议报文,且虚连接邻居仍可保持在FULL(完全邻接)状态,从而避免流量中断现象,并避免虚连接邻居震荡问题,减少流量的损失。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
本发明实施例提出一种虚连接实现的方法,该方法应用于包括至少两个路由设备的OSPF网络中,该至少两个路由设备在同一OSPF区域,为了方便描述,该两个路由设备可以分别为第一路由设备和第二路由设备,第一路由设备与第二路由设备之间还可以存在至少两条物理链路(为等价链路或备份链路等)。以图3为本发明实施例的应用场景示意图,则:Router A为第一路由设备,Router B为第二路由设备;或者,Router A为第二路由设备,RouterB为第一路由设备;为方便描述,以Router A为第一路由设备,Router B为第二路由设备为例,Router A和Router B之间有两条物理链路(对应于RouterC所在的物理链路和Router D所在的物理链路)。
基于上述应用场景,如图4所示,该虚连接实现的方法包括以下步骤:
步骤401,在第一路由设备需要与第二路由设备建立虚连接时,第一路由设备获得自身与第二路由设备之间存在的各物理链路所对应的出接口;在图3中,当Router A需要与Router B建立虚连接时,Router A需要获得自身与RouterB之间存在的各物理链路所对应的出接口,即接口A1和接口A2。
本发明实施例中,基于OSPF本身的区域内路由计算过程,RouterA可以获得自身与Router B之间存在的各物理链路所对应的出接口,即Router A可以获得自身与Router B之间存在的各等价链路或者备份链路所对应的出接口,具体的获得方式本发明实施例中不再详加赘述。
步骤402,第一路由设备从获得的出接口中选择一个出接口为主出接口,并确定其他出接口为备出接口;在图3中,Router A需要从接口A1和接口A2中选择一个出接口为主出接口,并确定其他出接口为备出接口;本实施例中以接口A1为主出接口,接口A2为备出接口为例。
具体实现过程中,可选择第一个路由计算出的可达对端的下一跳所对应的出接口为主出接口;此外,等价链路需要比备份链路更容易成为备出接口。
步骤403,第一路由设备通过主出接口向第二路由设备发送第一协商报文,由第二路由设备利用第一协商报文建立与第一路由设备间的虚连接邻居(具体建立过程与现有技术相同,本发明实施例中不再赘述);该第一协商报文的源地址为主出接口的地址,且第一协商报文中携带备出接口的地址;在图3中,RouterA需要通过接口A1向Router B发送第一协商报文,该第一协商报文的源地址为接口A1的地址,且第一协商报文中携带了接口A2的地址。
基于步骤401-步骤403同样的处理流程,第二路由设备也需要向第一路由设备发送报文,由第一路由设备建立与第二路由设备之间的虚连接邻居,且基于该过程,第一路由设备与第二路由设备之间建立有虚连接,且第一路由设备是第二路由设备的虚连接邻居,第二路由设备是第一路由设备的虚连接邻居;在图3所示的场景下,Router A和Router B之间建立有虚连接,且RouterA是Router B的虚连接邻居,Router B是RouterA的虚连接邻居。
本发明实施例中,该第一协商报文具体可以为基于OSPF协议的Hello报文,如图5所示的Hello报文的格式示意图,由于Hello报文的Neighbor(邻居)域并未使用,因此可以通过对该Neighbor域进行重新定义,使得Neighbor域作为承载备出接口的地址的数据域,如图6所示,为本实施例中修改后的Hello报文的格式示意图,可以在Vlink(虚连接)Backup(备)Interface(接口)域中携带出接口的地址(即接口A2的地址)。
在实际应用中,如果没有备出接口,则第一协商报文中也可以携带备出接口的地址,只是用于承载备出接口的地址的Neighbor域为空。
步骤404,第二路由设备在与第一路由设备对应的虚连接邻居的信息中记录主出接口的地址以及备出接口的地址;在图3中,Router B在收到第一协商报文后,需要在与Router A对应的虚连接邻居的信息中记录接口A1的地址和接口A2的地址。
步骤405,在第一路由设备与第二路由设备建立虚连接后,第一路由设备在发现主出接口所对应的物理链路出现故障,则,通过备出接口向第二路由设备发送第二协商报文,并保持第二路由设备对应的虚连接邻居处于FULL状态;该第二协商报文的源地址为备出接口的地址;在图3中,RouterA需要通过接口A2向Router B发送第二协商报文,保持Router B对应的虚连接邻居处于FULL状态,且该第二协商报文的源地址为接口A2的地址。
该第二协商报文具体可以为基于OSPF协议的Hello报文,该第二协商报文中可以携带其他备出接口的地址,也可以不携带其他备出接口的地址;当第二协商报文中携带其他备出接口的地址时,具体的实现方式与第一协商报文的实现相同,当第二协商报文中不携带其他备出接口的地址时,具体的实现方式与现有的Hello报文的实现相同,在此不再详加赘述。
本发明实施例中,第一路由设备对主出接口所对应的物理链路进行BFD(Bidirectionzzal Forwarding Detection,双向转发检测)检测(可以实时检测或者周期性检测);在检测到主出接口所对应的物理链路出现故障之后,第一路由设备需要判断当前是否存在备出接口;如果当前存在备出接口,则第一路由设备通过备出接口向第二路由设备发送第二协商报文,并保持第二路由设备对应的虚连接邻居处于FULL状态,如果当前不存在备出接口,则第一路由设备需要使第二路由设备对应的虚连接邻居处于Down(故障)状态。
在图3中,Router A需要对接口A1所对应的物理链路(即Router C所在的物理链路)进行BFD检测,如果检测到接口A1所对应的物理链路出现故障,则判断当前是否存在备出接口;且由于当前存在备出接口(即接口A2),因此Router A需要保持Router B对应的虚连接邻居处于FULL状态,并通过接口A2向Router B发送基于OSPF协议的Hello报文。
步骤406,第二路由设备利用第一路由设备对应的虚连接邻居的信息以及第二协商报文的源地址确定需要保持第一路由设备对应的虚连接邻居处于FULL状态。
本发明实施例中,第二路由设备在接收到第二协商报文后,如果发现第一路由设备对应的虚连接邻居的信息中记录有第二协商报文的源地址,则不对第一路由设备对应的虚连接邻居进行重建流程,即确定需要保持第一路由设备对应的虚连接邻居处于FULL状态,从而达到快速切换流量的目的,并可以避免虚连接主出接口Down时引起的虚连接震荡问题,减少流量的损失。
在图3中,Router B在接收到第二协商报文之后,将发现Router A对应的虚连接邻居的信息中记录有接口A1的地址以及接口A2的地址,且发现第二协商报文的源地址为接口A2的地址,因此确定不对RouterA对应的虚连接邻居进行重建流程,即需要保持RouterA对应的虚连接邻居处于FULL状态。
基于上述处理流程,当RouterA发现主出接口(即接口A1)所对应的物理链路出现故障之后,RouterA可以直接对路由进行相应调整,且虚连接计算的路由需要重新迭代到新的出接口(即接口A2)上,此时可以保证流量转发的通畅,OSPF网络可以继续保持稳定。
继续以图3所示的应用场景进行详细说明,在Router A和Router B之间需要建立虚连接时,Router A需要将主出接口(接口A1)的地址以及备出接口(接口A2)的地址通知给Router B,同时Router A将通过BFD检测接口A1所对应的物理链路;在Router A和Router B之间建立虚连接之后,当接口A1所对应的物理链路出现故障后,Router A将通过接口A2向Router B发送Hello报文,并将计算出来的虚连接路由都迭代到接口A2所对应的物理链路上。进一步的,Router B在收到RouterA发送的Hello报文之后,将保持虚连接邻居继续维持为FULL状态。
基于上述处理,当主出接口所在物理链路出现故障时,虚连接邻居不需要重新建立,即可以重新根据新的物理链路计算出新的路由,迭代到新的物理链路上,保证了路由的快速更新,省去了虚连接邻居中断和重新建立的时间,使流量可快速切换转发,将丢包时间限制在毫秒级。
基于与上述方法同样的发明构思,本发明还提出了一种路由设备,作为第一路由设备应用于至少包括所述第一路由设备和第二路由设备的开发最短路径优先OSPF网络中,所述第一路由设备与所述第二路由设备在同一OSPF区域,如图7所示,所述第一路由设备包括:
获得模块11,用于在所述第一路由设备需要与所述第二路由设备建立虚连接时,获得所述第一路由设备与所述第二路由设备之间存在的各物理链路所对应的出接口;
选择模块12,用于从所述获得的出接口中选择一个出接口为主出接口,以及确定备出接口;
第一发送模块13,用于通过所述主出接口向所述第二路由设备发送第一协商报文,所述第一协商报文的源地址为所述主出接口的地址,且所述第一协商报文中携带所述备出接口的地址;用于使所述第二路由设备在与所述第一路由设备对应的虚连接邻居的信息中记录所述主出接口的地址以及所述备出接口的地址;
第二发送模块14,用于在所述第一路由设备与所述第二路由设备建立虚连接后,在发现所述主出接口所对应的物理链路出现故障,则,通过所述备出接口向所述第二路由设备发送第二协商报文,所述第二协商报文的源地址为所述备出接口的地址,且保持所述第二路由设备对应的虚连接邻居处于完全邻接FULL状态;其中,所述第二协商报文的源地址用于使所述第二路由设备利用所述第一路由设备对应的虚连接邻居的信息以及所述第二协商报文的源地址确定需要保持所述第一路由设备对应的虚连接邻居处于FULL状态。
所述第二发送模块14,具体用于对所述主出接口所对应的物理链路进行双向转发检测BFD检测,并在检测到所述主出接口所对应的物理链路出现故障之后,判断当前是否存在备出接口;如果存在备出接口,通过所述备出接口向所述第二路由设备发送所述第二协商报文,并保持所述第二路由设备对应的虚连接邻居处于FULL状态;如果不存在备出接口,则使所述第二路由设备对应的虚连接邻居处于故障Down状态。
本发明实施例中,所述第一协商报文为基于OSPF协议的Hello报文,且所述第二协商报文为基于OSPF协议的Hello报文。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
基于与上述方法同样的发明构思,本发明还提出了一种路由设备,作为第二路由设备应用于至少包括第一路由设备和所述第二路由设备的开发最短路径优先OSPF网络中,所述第一路由设备与所述第二路由设备在同一OSPF区域,如图8所示,所述第二路由设备包括:
第一接收模块21,用于在所述第一路由设备需要与所述第二路由设备建立虚连接时,接收所述第一路由设备通过主出接口向所述第二路由设备发送的第一协商报文,所述第一协商报文的源地址为所述主出接口的地址,且所述第一协商报文中携带了备出接口的地址;
记录模块22,用于在与所述第一路由设备对应的虚连接邻居的信息中记录所述主出接口的地址以及所述备出接口的地址;
第二接收模块23,用于在所述第一路由设备与所述第二路由设备建立虚连接后,在所述主出接口所对应的物理链路出现故障之后,接收所述第一路由设备通过所述备出接口向所述第二路由设备发送的第二协商报文,所述第二协商报文的源地址为所述备出接口的地址;
确定模块24,用于利用所述第一路由设备对应的虚连接邻居的信息以及所述第二协商报文的源地址确定需要保持所述第一路由设备对应的虚连接邻居处于FULL状态。
所述确定模块24,具体用于在接收到所述第二协商报文之后,如果发现所述第一路由设备对应的虚连接邻居的信息中记录有所述第二协商报文的源地址,则确定需要保持所述第一路由设备对应的虚连接邻居处于FULL状态。
本发明实施例中,所述第一协商报文为基于OSPF协议的Hello报文,所述第二协商报文为基于OSPF协议的Hello报文。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。