发明内容
本发明实施例提供一种IS-IS网络中的邻居关系建立方法和设备,以使得超过255个的广播链路上也能够建立IS-IS邻居关系。
为了达到上述目的,本发明实施例提供一种中间***到中间***IS-IS网络中的邻居关系建立方法,该方法包括以下步骤:
本端设备在需要与新广播链路的对端设备建立邻居关系且确定当前广播链路数量已经达到预设数值时,向所述对端设备发送的第一IIH报文中携带的***标识为所述本端设备的虚拟***标识;由所述对端设备利用所述第一IIH报文中携带的虚拟***标识建立所述对端设备与所述本端设备的虚拟***之间的邻居关系;
所述本端设备接收来自所述对端设备的第二IIH报文,并在所述本端设备的虚拟***与所述对端设备之间建立邻居关系。
所述本端设备在所述本端设备的虚拟***与所述对端设备之间建立邻居关系,具体包括:
如果所述第二IIH报文中携带的***标识为所述对端设备的虚拟***标识,所述本端设备在所述本端设备的虚拟***与所述对端设备的虚拟***之间建立邻居关系;
如果所述第二IIH报文中携带的***标识为所述对端设备的真实***标识,所述本端设备在所述本端设备的虚拟***与所述对端设备的真实***之间建立邻居关系。
所述方法还包括:所述本端设备在所述本端设备的虚拟***与所述本端设备的真实***之间建立点对点P2P邻居关系,且所述本端设备的虚拟***与所述本端设备的真实***之间的链路开销cost值为0。
所述本端设备在所述本端设备的虚拟***与所述对端设备之间建立邻居关系之后,所述方法还包括:
所述本端设备生成的链路状态协议数据单元LSP中,包括所述本端设备的虚拟***与所述本端设备的真实***之间建立P2P邻居关系所需的LSP,以及所述本端设备的虚拟***与所述对端设备之间建立邻居关系所需的LSP;
所述本端设备向所述对端设备发送所述生成的LSP,由所述对端设备利用所述LSP进行拓扑计算以及路由计算;
所述本端设备接收来自所述对端设备的LSP,并由所述本端设备的真实***利用收到的LSP进行拓扑计算以及路由计算。
本发明实施例提供一种中间***到中间***IS-IS网络中的邻居关系建立设备,在IS-IS网络中作为本端设备,所述本端设备具体包括:
发送模块,用于在需要与新广播链路的对端设备建立邻居关系且确定当前广播链路数量已经达到预设数值时,向所述对端设备发送的第一IIH报文中携带的***标识为所述本端设备的虚拟***标识;由所述对端设备利用所述第一IIH报文中携带的虚拟***标识建立所述对端设备与所述本端设备的虚拟***之间的邻居关系;
建立模块,用于接收来自所述对端设备的第二IIH报文,并在所述本端设备的虚拟***与所述对端设备之间建立邻居关系。
所述建立模块,具体用于当所述第二IIH报文中携带的***标识为所述对端设备的虚拟***标识时,在所述本端设备的虚拟***与所述对端设备的虚拟***之间建立邻居关系;当所述第二IIH报文中携带的***标识为所述对端设备的真实***标识时,在所述本端设备的虚拟***与所述对端设备的真实***之间建立邻居关系。
所述建立模块,还用于在所述本端设备的虚拟***与所述本端设备的真实***之间建立点对点P2P邻居关系,且所述本端设备的虚拟***与所述本端设备的真实***之间的链路开销cost值为0。
所述发送模块,还用于在生成的链路状态协议数据单元LSP中,包括所述本端设备的虚拟***与所述本端设备的真实***之间建立P2P邻居关系所需的LSP,所述本端设备的虚拟***与所述对端设备之间建立邻居关系所需的LSP;以及,向所述对端设备发送所述生成的LSP,由所述对端设备利用所述LSP进行拓扑计算以及路由计算;以及,接收来自所述对端设备的LSP,并由所述本端设备的真实***利用收到的LSP进行拓扑计算以及路由计算。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,通过在IS-IS广播网中使能伪节点扩展功能,使得设备之间能够利用虚拟***建立邻居关系,并使得超过255个的广播链路上也能够建立IS-IS邻居关系,从而消除IS-IS对于广播网邻居数量的限制,减少IS-IS广播网应用限制。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有技术中存在的问题(由于用于标识伪节点的字段只有一个字节,每个伪节点标识一个新的广播链路,从而导致IS-IS广播链路的数量只有255个),本发明实施例提供一种IS-IS网络中的邻居关系建立方法,该方法应用于包括本端设备和广播链路的对端设备的IS-IS网络中,且在本端设备上使能有伪节点扩展功能,并使用本发明实施例提供的技术方案进行扩展,使得超过255个广播链路的新广播链路上也能够建立IS-IS邻居关系。
本发明实施例中,本端设备上使能了伪节点扩展功能后,本端设备在具备真实***(即采用本方案之前设备上已经存在的***)的基础上,当确定广播链路数量达到预设数值(如255)时,本端设备还需要使能虚拟***能力,以得到本端设备的虚拟***(即采用本方案之后设备上重新虚拟的***,虚拟***可以为多个);以本端设备的真实***为System A,本端设备的虚拟***为V-System A为例进行后续说明。
如图1所示,该IS-IS网络中的邻居关系建立方法包括以下步骤:
步骤101,本端设备在需要与新广播链路的对端设备建立邻居关系且确定当前广播链路数量已经达到预设数值时,向对端设备发送IIH报文(即IS-ISHello报文);其中,该IIH报文中携带的***标识(System ID)为本端设备的虚拟***标识(如:V-System A)。
本发明实施例的一种优选实施方式中,本端设备在确定广播链路数量未达到预设数值(如255)时,当需要与新广播链路的对端设备建立邻居关系时,将本端设备的真实***标识(如System A)添加到IIH报文的***标识中,并向对端设备发送该IIH报文。本端设备在确定广播链路数量已经达到预设数值(如255)时,当需要与新广播链路的对端设备建立邻居关系时,确定本端设备的虚拟***标识(如V-System A),并将本端设备的虚拟***标识添加到IIH报文的***标识中,并向对端设备发送携带的***标识为本端设备的虚拟***标识的IIH报文。
在具体的实现方式中,IIH报文的头部信息主要包括PDU(Protocol DataUnit,协议数据单元)Type(类型)字段、Circuit Type字段、Source ID(源标识)字段、Priority(优先级)字段和LAN ID(局域网标识)字段。其中:
PDU Type字段:表示报文类型,取值为15或者16,表示该IIH报文为Level-1的Hello报文或者Level-2的Hello报文。
Circuit Type:表示路由器类型,00保留,01表示L1的路由器,10表示L2的路由器,11表示L1的路由器或者L2的路由器。
Source ID:表示发送IIH报文的路由器的System ID,此时为V-System A。
Priority:表示选举DIS的优先级。
LAN ID:表示广播链路ID,包括System ID和一字节的Circuit ID(用于标识伪节点ID);其中,System ID为V-System A。
步骤102,对端设备在收到本端设备的IIH报文后,利用IIH报文中携带的虚拟***标识建立对端设备与本端设备的虚拟***之间的邻居关系。
具体的,对端设备在收到本端设备的IIH报文后,获知本端设备需要与对端设备建立邻居关系,并对来自本端设备的IIH报文进行检查;在IIH报文检查通过后,对端设备与IIH报文中携带的Source ID字段中填充的System ID(即虚拟***标识V-System A)对应的虚拟***建立邻居关系。
步骤103,对端设备向本端设备发送IIH报文,由本端设备接收来自对端设备的IIH报文,并在本端设备的虚拟***与对端设备之间建立邻居关系。
具体的,本端设备在收到对端设备的IIH报文后,对来自对端设备的IIH报文进行检查;在IIH报文检查通过后,本端设备与IIH报文中携带的SourceID字段中填充的System ID对应的真实***或者虚拟***建立邻居关系。
本发明实施例中,本端设备或者对端设备在收到IIH报文后,还需要根据IIH报文中携带的Priority字段中填充的内容选举出广播网的DIS,并在IIH报文中携带的LAN ID字段中填充该DIS的System ID和Circuit ID。
本发明实施例中,针对对端设备上使能伪节点扩展功能和未使能伪节点扩展功能,在本端设备的虚拟***与对端设备之间建立邻居关系,具体包括:
情况一、对端设备上使能有伪节点扩展功能,此时,对端设备在具备真实***(即采用本方案之前对端设备上已经存在的***)的基础上,当确定广播链路数量达到预设数值(如255)时,对端设备还需要使能虚拟***能力,以得到对端设备的虚拟***(即采用本方案之后对端设备上重新虚拟的***,虚拟***可以为多个);以对端设备的真实***为System B,对端设备的虚拟***为V-System B为例进行后续说明。
该情况下,来自对端设备的IIH报文中携带的***标识可能为对端设备的虚拟***标识,也可能为对端设备的真实***标识。当IIH报文中携带的***标识为对端设备的虚拟***标识时,本端设备在本端设备的虚拟***与对端设备的虚拟***之间建立邻居关系(即与IIH报文中携带的Source ID字段中填充的System ID(即虚拟***标识V-System B)对应的虚拟***建立邻居关系);当IIH报文中携带的***标识为对端设备的真实***标识时,本端设备在本端设备的虚拟***与对端设备的真实***之间建立邻居关系(即与IIH报文中携带的Source ID字段中填充的System ID(即真实***标识System B)。
情况二、对端设备上未使能有伪节点扩展功能,此时,对端设备只具备真实***(即采用本方案之前对端设备上已经存在的***)。该情况下,来自对端设备的IIH报文中携带的***标识只可能为对端设备的真实***标识,因此,当IIH报文中携带的***标识为对端设备的真实***标识时,本端设备在本端设备的虚拟***与对端设备的真实***之间建立邻居关系(即与IIH报文中携带的Source ID字段中填充的System ID(即真实***标识System B)。
以下结合具体的应用对上述两种情况进行详细说明。
一、本端设备的真实***为System A,本端设备的虚拟***为V-SystemA;对端设备的真实***为System B,对端设备的虚拟***为V-System B。
本端设备使能伪节点扩展功能,在新广播链路的接口上使能IS-IS,如果当前本端设备上IS-IS广播链路使能数已经达到255个,则在本端设备与新广播链路的对端设备建立邻居关系时,本端设备发送的IIH报文中的Source ID填充为V-System A,LAN ID字段填充为V-System A+伪节点号(该伪节点号为1个字节,从1开始,因此,每增加一个虚拟***,可以增加255个伪节点号,即可以增加255个新广播链路用于建立IS-IS广播网邻居);如果当前本端设备上IS-IS广播链路使能数未达到255个,则在本端设备与新广播链路的对端设备建立邻居关系时,本端设备按照原有IIH封装及原有邻居建立流程进行处理,即IIH报文中的Source ID填充System A。
对端设备使能伪节点扩展功能,在新广播链路的接口上使能IS-IS,如果当前对端设备上IS-IS广播链路使能数已经达到255个,则在对端设备与新广播链路的本端设备建立邻居关系时,对端设备发送的IIH报文中的Source ID填充为V-System B,LAN ID字段填充为V-System B+伪节点号;如果当前对端设备上IS-IS广播链路使能数未达到255个,则在对端设备与新广播链路的本端设备建立邻居关系时,对端设备按照原有IIH封装及原有邻居建立流程进行处理,即IIH报文中的Source ID填充System B。
基于上述分析,假设本端设备上IS-IS广播链路使能数已经达到255个,对端设备上IS-IS广播链路使能数已经达到255个;则:在本端设备与新广播链路的对端设备建立邻居关系时,本端设备发送的IIH报文中的Source ID填充为V-System A,LAN ID字段填充为V-System A+伪节点号;对端设备在收到来自本端设备的IIH报文时,检查IIH报文中的各个字段通过,对端设备的V-System B与本端设备的V-System A的邻居状态达到Init状态;对端设备向本端设备回复的IIH报文中,包含对端设备的MAC(Media Access Control,介质访问控制)地址信息,且该IIH报文中的Source ID填充为V-System B,LAN ID字段填充为V-System B+伪节点号。
本端设备在收到来自对端设备的IIH报文时,检查IIH报文中的各个字段通过,且收到的IIH报文中携带有对端设备的MAC地址信息,则本端设备的V-System A与对端设备的V-System B的邻居状态达到UP状态;本端设备向对端设备回复的IIH报文中,包含本端设备的MAC地址信息,且该IIH报文中的Source ID填充为V-System A,LAN ID字段填充为V-System A+伪节点号。
对端设备在收到来自本端设备的IIH报文时,检查IIH报文中的各个字段通过,且收到的IIH报文中携带有本端设备的MAC地址信息,则对端设备的V-System B与本端设备的V-System A的邻居状态达到UP状态。
由于本端设备的V-System A与对端设备的V-System B的邻居状态达到UP状态,对端设备的V-System B与本端设备的V-System A的邻居状态达到UP状态,因此本端设备的虚拟***与对端设备的虚拟***之间建立邻居关系。
二、本端设备的真实***为System A,本端设备的虚拟***为V-SystemA;对端设备的真实***为System B。
本端设备使能伪节点扩展功能,在新广播链路的接口上使能IS-IS,如果当前本端设备上IS-IS广播链路使能数已经达到255个,则在本端设备与新广播链路的对端设备建立邻居关系时,本端设备发送的IIH报文中的Source ID填充为V-System A,LAN ID字段填充为V-System A+伪节点号;如果当前本端设备上IS-IS广播链路使能数未达到255个,则在本端设备与新广播链路的对端设备建立邻居关系时,本端设备按照原有IIH封装及原有邻居建立流程进行处理,即IIH报文中的Source ID填充System A。
对端设备未使能伪节点扩展功能,在新广播链路的接口上使能IS-IS,其按照原有IIH封装及原有邻居建立流程进行处理,即IIH报文中的Source ID填充System B。
基于上述分析,假设本端设备上IS-IS广播链路使能数已经达到255个,对端设备上IS-IS广播链路使能数未达到255个;则:在本端设备与新广播链路的对端设备建立邻居关系时,本端设备发送的IIH报文中的Source ID填充为V-System A,LAN ID字段填充为V-System A+伪节点号;对端设备在收到来自本端设备的IIH报文时,检查IIH报文中的各个字段通过,对端设备的System B与本端设备的V-System A的邻居状态达到Init状态;对端设备向本端设备回复的IIH报文中,包含对端设备的MAC地址信息,且该IIH报文中的Source ID填充为System B,LAN ID字段填充为System B+伪节点号。
本端设备在收到来自对端设备的IIH报文时,检查IIH报文中的各个字段通过,且收到的IIH报文中携带有对端设备的MAC地址信息,则本端设备的V-System A与对端设备的System B的邻居状态达到UP状态;本端设备向对端设备回复的IIH报文中,包含本端设备的MAC地址信息,且该IIH报文中的Source ID填充为V-System A,LAN ID字段填充为V-System A+伪节点号。
对端设备在收到来自本端设备的IIH报文时,检查IIH报文中的各个字段通过,且收到的IIH报文中携带有本端设备的MAC地址信息,则对端设备的System B与本端设备的V-System A的邻居状态达到UP状态。
由于本端设备的V-System A与对端设备的System B的邻居状态达到UP状态,对端设备的System B与本端设备的V-System A的邻居状态达到UP状态,因此本端设备的虚拟***与对端设备的真实***之间建立邻居关系。
针对上述情况一和情况二,本端设备在收到IIH报文后,还需要根据IIH报文中携带的Priority字段中填充的内容以及MAC地址信息,选举出广播链路的DIS,并在IIH报文中携带的LAN ID字段中填充该DIS的System ID和伪节点ID。对端设备在收到IIH报文后,还需要根据IIH报文中携带的Priority字段中填充的内容以及MAC地址信息,选举出广播链路的DIS,并在IIH报文中携带的LAN ID字段中填充该DIS的System ID和伪节点ID。
本发明实施例中,本端设备上使能了虚拟***能力时,本端设备还需要在本端设备的虚拟***与本端设备的真实***之间建立P2P(点对点)邻居关系(即System A与V-System A的P2P邻居关系,对外不可见),且本端设备的虚拟***与本端设备的真实***之间的链路Cost(开销)值为0。
进一步的,本端设备在本端设备的虚拟***与对端设备之间建立邻居关系之后,本端设备在生成的LSP中,还需要包括本端设备的虚拟***与本端设备的真实***之间建立P2P邻居关系所需的LSP,以及本端设备的虚拟***与对端设备之间建立邻居关系所需的LSP;之后,本端设备向对端设备发送生成的LSP,由对端设备利用该LSP进行拓扑计算以及路由计算。
进一步的,本端设备在接收到来自对端设备的LSP时,需要由本端设备的真实***利用收到的LSP进行拓扑计算以及路由计算。
以下结合本端设备的V-System A与对端设备的V-System B之间建立邻居关系,对LSP生成过程进行进一步的详细说明。
对于本端设备上LSP生成情况,System A生成LSP,维护System A与V-System A的邻居关系(即增加System A的邻居为V-System A,System A与V-System A之间的链路cost值为0),V-System A生成V-System A与V-SystemB建立邻居以及路由计算所需的LSP。对于对端设备的LSP生成情况,SystemB生成LSP,维护System B与V-System B的邻居关系(即增加System B的邻居为V-System B,System B与V-System B之间的链路cost值为0),V-SystemB生成V-System B与V-System A建立邻居以及路由计算所需的LSP。
以下结合本端设备的V-System A与对端设备的System B之间建立邻居关系,对拓扑计算过程和路由计算过程进行进一步的详细说明。
如图2所示,为本端设备与对端设备存在等价链路的组网示意图,本端设备与对端设备之间有两条广播链路;对端设备的System B通过g0/1接口和本端设备的System A建立IS-IS邻居关系,其链路cost值为10;对端设备的System B通过g0/2接口和本端设备的V-System A建立IS-IS邻居关系,其链路cost值为10;此外,本端设备的System A和本端设备的V-System A之间内部维护一个P2P邻居关系,其链路cost值为0。
基于此,对端设备的System B根据SPF算法,以对端设备的System B为源,计算出来的拓扑如图3所示。由于System A和V-System A之间的链路cost值为0,因此,对于对端设备的System B来说,到达System A的路径存在两条等价链路;进一步的,在路由计算时,当本端设备发布路由时,在对端设备根据计算出来的拓扑,会生成两条到达本端设备的等价路由。
此外,在本端设备和对端设备都没有使能伪节点扩展功能时,本端设备的System A和对端设备的System B建立两个邻居,对端设备的System B根据SPF算法,计算出来的拓扑如图4所示。从图4中可以看出,对端设备的System B计算出到达本端设备的System A的路径存在两条等价链路。
通过上述对比可以看出,本端设备使能伪节点扩展功能以及本端设备未使能伪节点扩展功能的情况下,拓扑计算和路由计算的结果没有差别,不会影响原有拓扑计算和路由计算,可以直接复用原有拓扑计算和路由计算流程。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种中间***到中间***IS-IS网络中的邻居关系建立设备,在IS-IS网络中作为本端设备,如图5所示,所述本端设备具体包括:
发送模块11,用于在需要与新广播链路的对端设备建立邻居关系且确定当前广播链路数量已经达到预设数值时,向所述对端设备发送的第一IIH报文中携带的***标识为所述本端设备的虚拟***标识;由所述对端设备利用所述第一IIH报文中携带的虚拟***标识建立所述对端设备与所述本端设备的虚拟***之间的邻居关系;
建立模块12,用于接收来自所述对端设备的第二IIH报文,并在所述本端设备的虚拟***与所述对端设备之间建立邻居关系。
所述建立模块12,具体用于当所述第二IIH报文中携带的***标识为所述对端设备的虚拟***标识时,在所述本端设备的虚拟***与所述对端设备的虚拟***之间建立邻居关系;当所述第二IIH报文中携带的***标识为所述对端设备的真实***标识时,在所述本端设备的虚拟***与所述对端设备的真实***之间建立邻居关系。
所述建立模块12,还用于在所述本端设备的虚拟***与所述本端设备的真实***之间建立点对点P2P邻居关系,且所述本端设备的虚拟***与所述本端设备的真实***之间的链路开销cost值为0。
所述发送模块11,还用于在生成的链路状态协议数据单元LSP中,包括所述本端设备的虚拟***与所述本端设备的真实***之间建立P2P邻居关系所需的LSP,所述本端设备的虚拟***与所述对端设备之间建立邻居关系所需的LSP;以及,向所述对端设备发送所述生成的LSP,由所述对端设备利用所述LSP进行拓扑计算以及路由计算;以及,接收来自所述对端设备的LSP,并由所述本端设备的真实***利用收到的LSP进行拓扑计算以及路由计算。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。