CN117955845A - 拓扑信息的上报方法、装置、设备及存储介质 - Google Patents
拓扑信息的上报方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117955845A CN117955845A CN202211348460.4A CN202211348460A CN117955845A CN 117955845 A CN117955845 A CN 117955845A CN 202211348460 A CN202211348460 A CN 202211348460A CN 117955845 A CN117955845 A CN 117955845A
- Authority
- CN
- China
- Prior art keywords
- node
- reporting
- nodes
- domain
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000004891 communication Methods 0.000 claims abstract description 30
- ABEXEQSGABRUHS-UHFFFAOYSA-N 16-methylheptadecyl 16-methylheptadecanoate Chemical compound CC(C)CCCCCCCCCCCCCCCOC(=O)CCCCCCCCCCCCCCC(C)C ABEXEQSGABRUHS-UHFFFAOYSA-N 0.000 claims description 27
- 241000764238 Isis Species 0.000 claims description 27
- 238000005417 image-selected in vivo spectroscopy Methods 0.000 claims description 27
- 238000012739 integrated shape imaging system Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 24
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 13
- 238000012163 sequencing technique Methods 0.000 description 12
- 230000003287 optical effect Effects 0.000 description 10
- 230000003068 static effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 239000000047 product Substances 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000006424 Flood reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Abstract
本申请公开了一种拓扑信息的上报方法、装置、设备及存储介质,涉及通信技术领域。网络设备获取使能BGP‑LS能力的多个节点分别对应的上报参考信息,多个节点中的每个节点收集有所在域内的拓扑信息;基于多个节点分别对应的上报参考信息在多个节点中选择满足上报条件的目标节点,通过目标节点上报目标节点对应的目标域内的拓扑信息,目标域为目标节点所在域内的至少一个域。该方法对于网络中多个节点均使能BGP‑LS能力,保证了部署一致性,能够避免由部署不统一导致的部署错误,然后根据上报参考信息能够动态选择用来上报拓扑信息的目标节点,能够避免由所有节点均上报导致的拓扑信息冗余,也就降低了用于汇总拓扑信息的设备的汇总压力。
Description
技术领域
本申请涉及通信技术领域,特别涉及拓扑信息的上报方法、装置、设备及存储介质。
背景技术
边界网关协议(border gatewayprotocol,BGP)是运行于传输控制协议(transmission control protocol,TCP)上的一种自治系统(autonomous system,AS)的路由协议。BGP链路状态(BGP link state,BGP-LS)协议是一种收集网络拓扑的方式,用于将内部网关协议(interior gateway protocol,IGP)发现的拓扑信息汇总后发送给控制器。
相关技术中,将网络中的各个节点使能BGP-LS能力,则网络中的各个节点均通过BGP-LS协议上报拓扑信息,进而需要对整网节点上报的拓扑信息进行汇总。或者,通过在网络中人工选择部分节点使能BGP-LS能力,则使能BGP-LS能力的部分节点上报拓扑信息,仅对部分节点上报的拓扑信息进行汇总。
但是,由于网络中的IGP通常跨进程部署,因此,对于由整网节点上报的方式,同一个IGP进程中的多个节点上报的拓扑信息是相同的,产生了大量冗余的拓扑信息,增大了汇总压力。对于由部分节点上报的方式,虽然能够避免拓扑信息的上报冗余问题,但是由于网络中节点是否使能BGP-LS能力的部署不同,导致部署时容易出现错误。此外,如果部分节点选择错误或者部分节点出现故障时,会导致无法上报或者上报的拓扑信息不完整。
发明内容
本申请提供了一种拓扑信息的上报方法、装置、设备及存储介质,用于动态选择节点上报拓扑信息。
第一方面,提供了一种拓扑信息的上报方法,以网络设备执行该方法为例,网络设备获取使能BGP-LS能力的多个节点分别对应的上报参考信息,多个节点中的每个节点收集有所在域内的拓扑信息;基于多个节点分别对应的上报参考信息在多个节点中选择满足上报条件的目标节点,通过目标节点上报目标节点对应的目标域内的拓扑信息,目标域为目标节点所在域内的至少一个域。
该方法对于网络中多个节点均使能BGP-LS能力,保证了部署一致性,能够避免由部署不统一导致的部署错误,然后根据上报参考信息能够动态选择用来上报拓扑信息的目标节点,能够避免由所有节点均上报导致的拓扑信息冗余,也就降低了用于汇总拓扑信息的设备的汇总压力。
在一种可能的实施方式中,多个节点建立有BGP-LS邻居,上报参考信息包括优先级级别,多个节点属于至少一个域;基于多个节点分别对应的上报参考信息在多个节点中选择满足上报条件的目标节点的方式可以为,对于至少一个域中的任一域包括的多个第一节点,根据各个第一节点的优先级级别确定多个第一节点的第一上报顺序,第一上报顺序用于指示多个第一节点中被选择为目标节点的先后顺序,上报条件为在第一上报顺序中的位置位于前N位,第一上报顺序中第N位与第N+1位不是并列排序,N为正整数;将第一上报顺序中排在前N位的节点作为任一域对应的参考节点;将至少一个域分别对应的参考节点作为目标节点。
由此,通过确定每一个域内对应的参考节点以获取到目标节点,使得目标节点上报的拓扑信息能够覆盖所有域,能够保证拓扑信息上报的完整性。
在一种可能的实施方式中,上报参考信息还包括用于指示是否为边界节点的第一信息、用于指示是否使能互联网协议第4版(internet protocol version 4,IPv4)BGP-LS的第二信息、用于指示是否使能互联网协议第6版(internet protocol version 6,IPv6)BGP-LS的第三信息或节点标识中的至少一种;根据各个第一节点的优先级级别确定多个第一节点的第一上报顺序的过程可以为,根据各个第一节点的优先级级别确定多个第一节点的第一顺序;当第一顺序中第N位与第N+1位是并列排序时,根据第一顺序以及第一信息、第二信息、第三信息、各个第一节点的节点标识中的至少一种,依次确定多个第一节点的第二顺序,直至第二顺序中第N位与第N+1位不是并列排序,将第二顺序作为第一上报顺序。
在一种可能的实施方式中,上报参考信息还包括节点所在域的域标识或节点标识中的至少一种;根据各个第一节点的优先级级别确定多个第一节点的第一上报顺序,包括:根据各个第一节点的优先级级别确定多个第一节点的第一顺序;当第一顺序中第N位与第N+1位是并列排序时,根据第一顺序以及各个第一节点在至少一个域中的出现次数、各个第一节点的节点标识中的至少一种,依次确定多个第一节点的第三顺序,直至第三顺序中第N位与第N+1位不是并列排序,将第三顺序作为第一上报顺序,第一节点在至少一个域中的出现次数根据第一节点所在域的域标识的数量确定得到。
由此,提供了两种能够基于上报参考信息获取得到第一上报顺序的方式,通过排序的方式获取上报顺序,上报顺序能够指示优先上报的节点的先后顺序,使得根据上报顺序中选择的前N位的参考节点更准确,更符合拓扑结构中用于上报拓扑信息的节点要求。
在一种可能的实施方式中,依旧在多个节点之间建立有BGP-LS邻居,上报参考信息包括优先级级别,多个节点属于至少一个域的情况下,除了单独获取每一域对应的参考节点以获取目标节点之外,还可以根据多个节点分别对应的优先级级别确定多个节点的第二上报顺序,第二上报顺序用于指示多个节点中被选择为目标节点的先后顺序,上报条件为在第二上报顺序中排在前M位,第二上报顺序中第M位与第M+1位不是并列排序,M为正整数;将第二上报顺序中排在前M位的节点作为目标节点。由此,无需针对每一域进行排序选择参考节点,提高了确定目标节点的效率。
在一种可能的实施方式中,在通过目标节点上报目标节点对应的目标域内的拓扑信息之后,还可以判断上报的拓扑信息是否少于多个节点对应的所有域的拓扑信息,当上报的拓扑信息少于多个节点对应的拓扑信息时,获取上报的拓扑信息与多个节点的拓扑信息之间相差的参考拓扑信息;根据参考拓扑信息包括的节点的上报参考信息再次确定目标节点,通过再次确定的目标节点上报对应的拓扑信息,直至上报的拓扑信息的总和大于等于多个节点对应的拓扑信息。由此,通过递进上报拓扑信息的方式,能够确保上报的拓扑信息能够覆盖所有域,保证拓扑信息上报的完整性,还能够提高上报效率。
在一种可能的实施方式中,上报参考信息还包括节点所在域的域标识或节点标识中的至少一种;参见上述确定第一上报顺序的方式,根据多个节点分别对应的优先级级别确定多个节点的第二上报顺序可以为,根据多个节点分别对应的优先级级别确定多个节点的第四顺序;当第四顺序中第M位与第M+1位是并列排序时,根据第四顺序以及各个节点在至少一个域中的出现次数、各个节点的节点标识中的至少一种,依次确定多个节点的第五顺序,直至第五顺序中第M位与第M+1位不是并列排序,将第五顺序作为第二上报顺序,各个节点在至少一个域中的出现次数根据各个节点所在域的域标识的数量确定得到。
在一种可能的实施方式中,当执行该方法的网络设备为决策节点,决策节点为多个节点中的任一节点或反射路由器;通过目标节点上报目标节点对应的目标域内的拓扑信息的方式可以为,决策节点发送第二报文,第二报文包括目标节点的节点标识和目标节点对应的目标域的域标识,第二报文用于目标节点在接收到第二报文后,上报目标域内的拓扑信息。通过发送第二报文的方式来触发目标节点进行拓扑信息的上报,实现了动态确定上报节点的效果。
在一种可能的实施方式中,在通过目标节点上报目标节点对应的目标域内的拓扑信息之后,当多个节点的上报参考信息变更或者目标节点故障中的至少一种情况发生时,基于变更后的上报参考信息或者未发生故障的节点的上报参考信息中的至少一种,重新在多个节点中选择满足上报条件的目标节点,通过重新选择的目标节点上报重新选择的目标节点对应的目标域内的拓扑信息。由此,使得在当前用来上报拓扑信息的部分节点发生故障时,能够进行动态切换到其他节点继续上报拓扑信息,以确保拓扑信息的上报稳定性和准确性。
在一种可能的实施方式中,获取使能BGP-LS能力的多个节点分别对应的上报参考信息的方式可以为,获取使能BGP-LS能力的多个节点生成的第一报文,任一节点生成的第一报文包括任一节点的上报参考信息;基于多个节点生成的第一报文分别包括的上报参考信息,获取多个节点分别对应的上报参考信息。其中,第一报文可以为中间系统到中间系统(intermediate system to intermediate system,ISIS)报文、开放式最短路由优先(openshortestpath first,OSPF)报文或者网络层可达信息(network layer reachableinformation,NLRI)报文。通过多个节点在不同协议下的报文传输能够获取到多个节点分别对应的上报参考信息,使得获取上报参考信息的方式更灵活,也使得该方法能够应用于不同的协议场景下。
第二方面,提供了一种拓扑信息的上报装置,应用于网络设备,该装置包括:
获取模块,用于获取使能BGP-LS能力的多个节点分别对应的上报参考信息,多个节点中的每个节点收集有所在域内的拓扑信息;
选择模块,用于基于多个节点分别对应的上报参考信息在多个节点中选择满足上报条件的目标节点;
上报模块,用于通过目标节点上报目标节点对应的目标域内的拓扑信息,目标域为目标节点所在域内的至少一个域。
在一种可能的实施方式中,多个节点建立有BGP-LS邻居,上报参考信息包括优先级级别,多个节点属于至少一个域;
选择模块,用于对于至少一个域中的任一域包括的多个第一节点,根据各个第一节点的优先级级别确定多个第一节点的第一上报顺序,第一上报顺序用于指示多个第一节点中被选择为目标节点的先后顺序,上报条件为在第一上报顺序中的位置位于前N位,第一上报顺序中第N位与第N+1位不是并列排序,N为正整数;将第一上报顺序中排在前N位的节点作为任一域对应的参考节点;将至少一个域分别对应的参考节点作为目标节点。
在一种可能的实施方式中,上报参考信息还包括用于指示是否为边界节点的第一信息、用于指示是否使能IPv4 BGP-LS的第二信息、用于指示是否使能IPv6 BGP-LS的第三信息或节点标识中的至少一种;
选择模块,用于根据各个第一节点的优先级级别确定多个第一节点的第一顺序;当第一顺序中第N位与第N+1位是并列排序时,根据第一顺序以及第一信息、第二信息、第三信息、各个第一节点的节点标识中的至少一种,依次确定多个第一节点的第二顺序,直至第二顺序中第N位与第N+1位不是并列排序,将第二顺序作为第一上报顺序。
在一种可能的实施方式中,上报参考信息还包括节点所在域的域标识或节点标识中的至少一种;
选择模块,用于根据各个第一节点的优先级级别确定多个第一节点的第一顺序;当第一顺序中第N位与第N+1位是并列排序时,根据第一顺序以及各个第一节点在至少一个域中的出现次数、各个第一节点的节点标识中的至少一种,依次确定多个第一节点的第三顺序,直至第三顺序中第N位与第N+1位不是并列排序,将第三顺序作为第一上报顺序,第一节点在至少一个域中的出现次数根据第一节点所在域的域标识的数量确定得到。
在一种可能的实施方式中,多个节点之间建立有BGP-LS邻居,上报参考信息包括优先级级别,多个节点属于至少一个域;
选择模块,用于根据多个节点分别对应的优先级级别确定多个节点的第二上报顺序,第二上报顺序用于指示多个节点中被选择为目标节点的先后顺序,上报条件为在第二上报顺序中排在前M位,第二上报顺序中第M位与第M+1位不是并列排序,M为正整数;将第二上报顺序中排在前M位的节点作为目标节点。
在一种可能的实施方式中,上报参考信息还包括节点所在域的域标识或节点标识中的至少一种;选择模块,用于根据多个节点分别对应的优先级级别确定多个节点的第四顺序;当第四顺序中第M位与第M+1位是并列排序时,根据第四顺序以及各个节点在至少一个域中的出现次数、各个节点的节点标识中的至少一种,依次确定多个节点的第五顺序,直至第五顺序中第M位与第M+1位不是并列排序,将第五顺序作为第二上报顺序,各个节点在至少一个域中的出现次数根据各个节点所在域的域标识的数量确定得到。
在一种可能的实施方式中,获取模块,还用于当上报的拓扑信息少于多个节点对应的拓扑信息时,获取上报的拓扑信息与多个节点的拓扑信息之间相差的参考拓扑信息;
选择模块,还用于根据参考拓扑信息包括的节点的上报参考信息再次确定目标节点,通过再次确定的目标节点上报对应的拓扑信息,直至上报的拓扑信息的总和大于等于多个节点对应的拓扑信息。
在一种可能的实施方式中,网络设备为决策节点,决策节点为多个节点中的任一节点或反射路由器;
上报模块,用于发送第二报文,第二报文包括目标节点的节点标识和目标节点对应的目标域的域标识,第二报文用于目标节点在接收到第二报文后,上报目标域内的拓扑信息。
在一种可能的实施方式中,该装置还包括:
重新选择模块,用于当多个节点的上报参考信息变更或者目标节点故障中的至少一种情况发生时,基于变更后的上报参考信息或者未发生故障的节点的上报参考信息中的至少一种,重新在多个节点中选择满足上报条件的目标节点,通过重新选择的目标节点上报重新选择的目标节点对应的目标域内的拓扑信息。
在一种可能的实施方式中,获取模块,用于获取使能BGP-LS能力的多个节点生成的第一报文,第一报文为ISIS报文、OSPF报文或者NLRI报文,任一节点生成的第一报文包括任一节点的上报参考信息;基于多个节点生成的第一报文分别包括的上报参考信息,获取多个节点分别对应的上报参考信息。
第三方面,提供了一种网络设备,该网络设备包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条程序指令或代码,所述至少一条程序指令或代码由所述处理器加载并执行,以使所述网络设备实现如上第一方面或第一方面任一所述的拓扑信息的上报方法。
可选地,所述处理器为一个或多个,所述存储器为一个或多个。
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
第四方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该通信装置执行第一方面或第一方面的任一种可能的实施方式中的方法。
第五方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行,以使计算机实现上述第一方面或第一方面的任一种可能的实施方式中的方法。
第六方面,提供了一种计算机程序(产品),所述计算机程序(产品)包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行上述各方面中的方法。
第七方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述各方面中的方法。
第八方面,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述各方面中的方法。
应当理解的是,本申请的第二方面至第八方面技术方案及对应的可能的实施方式所取得的有益效果可以参见上述对第一方面及其对应的可能的实施方式的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种网络拓扑的关系图;
图2为本申请实施例提供的一种拓扑信息的上报方法的流程图;
图3为本申请实施例提供的一种TLV字段的示意图;
图4为本申请实施例提供的一种flags字段的示意图;
图5为本申请实施例提供的一种LSA报文的示意图;
图6为本申请实施例提供的一种NLRI报文的示意图;
图7为本申请实施例提供的一种拓扑信息的上报装置的结构示意图;
图8为本申请实施例提供的一种网络设备的结构示意图;
图9为本申请实施例提供的另一种网络设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在通信技术领域,BGP-LS作为一种收集网络拓扑(topo)的方式,通过对网络中的节点使能BGP-LS能力,以将网络的拓扑信息汇总后上报给上层的控制器。其中,网络的拓扑信息用于获取网络的拓扑结构,拓扑结构能够反映网络中各个节点之间的结构关系。例如,将网络中的计算机或通信设备等节点抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是网络的拓扑结构。
但是,若将网络中的各个节点均使能BGP-LS能力,由网络中的各个节点来上报拓扑信息,会使得同一个IGP进程中的节点上报的拓扑信息是相同的,产生大量冗余的拓扑信息;若人工配置网络中的部分节点使能BGP-LS能力,如果部分节点在配置时节点选择错误导致配置有误或者部分节点出现故障无法上报,都会导致上报的拓扑信息不全或者无法上报。
因此,本申请实施例提供了一种拓扑信息的上报方法,该方法对于网络中各个节点均使能BGP-LS能力,保证了部署一致性,然后在各个节点中动态确定用来上报拓扑信息的部分节点。并且,若当前用来上报拓扑信息的部分节点发生故障,能够进行动态切换到其他节点继续上报拓扑信息,以确保拓扑信息的上报稳定性和准确性。
示例性地,参见图1,图1为本申请实施例提供的一种网络拓扑的关系图。如图1所示,该网络拓扑属于同一个自治域,其中包括控制器、路由反射器(route reflector,RR),节点C1-节点C6和跨域的节点A1-节点A6。可选地,控制器可以为网络控制引擎(networkcontrol engine,NCE),节点A1-节点A6可以为区域边界路由器(areaborder router,ABR)或者自治系统边界路由器(autonomous system boundary router,ASBR),节点C1-节点C6可以为路由器。同一个自治系统中的两个或多个对等实体之间运行的BGP被称为互联网BGP(internal BGP,IBGP),RR用于将从IBGP对等体学到的路由反射到其他IBGP对等体的节点。
在图1所示的网络拓扑中,IGP跨4个进程部署,一个进程对应本申请实施例中的一个域,则域指的是同一IGP进程中的各个节点之间能够相互泛洪的区域。其中,节点A1-节点A6以及RR位于同一个域,称为域100;节点A1、节点A2、节点C1、节点C2位于同一个域,称为域1;节点A3、节点A4、节点C3、节点C4位于同一个域,称为域2;节点A5、节点A6、节点C5、节点C6位于同一个域,称为域3。所有节点的IGP均建立了BGP-LS邻居。示例性地,在ISIS协议中,域100可以称为ISIS进程100。
在本申请实施例中,各个节点均能够通过IGP协议收集所在域内的拓扑信息,使能BGP-LS能力的节点将收集的拓扑信息发送给RR,RR将汇总后的整网拓扑信息发送给控制器。例如,节点A1位于域100和域1内,则节点A1能够收集域100内的拓扑信息100和域1内的拓扑信息1。同理,节点A3能够收集域100内的拓扑信息100和域2内的拓扑信息2。因此,若节点A1-节点A6均上报收集的拓扑信息,则上报的拓扑信息100是相同的,即RR会接收多份冗余的拓扑信息100,导致RR的汇总压力较大。
在相关技术中,如图1所示,对于边缘的域1、域2和域3,将节点A1-节点A6使能BGP-LS能力,用于上报域1、域2和域3内的拓扑信息。对于核心的域100,选择节点A1和节点A5使能BGP-LS能力,用于上报域100内的拓扑信息,以避免域100内的全部节点同时上报。但是,相关技术中的方法使得各个节点的部署不统一,是否使能BGP-LS能力需要人为控制,导致部署时容易出错,且当选择的部分节点同时故障,会造成网络的拓扑信息无法上报。
本申请实施例提供了一种拓扑信息的上报方法,可应用于图1所示的实施环境中,示例性地,以网络设备执行该方法为例,网络设备可以为图1所示的节点C1-节点C6、跨域的节点A1-节点A6中的任一节点,或者网络设备也可以为图1所示的RR。参见图2,图2为本申请实施例提供的一种拓扑信息的上报方法的流程图,该方法包括但不限于如下步骤201和步骤202。
步骤201,获取使能BGP-LS能力的多个节点分别对应的上报参考信息,多个节点中的每个节点收集有所在域内的拓扑信息。
在本申请实施例中,可以将网络中的各个节点均使能BGP-LS能力,以使得网络中的各个节点的部署保持一致,减少由选择部分节点时选择错误节点导致的部署错误的发生。由此,获取使能BGP-LS能力的多个节点分别对应的上报参考信息可以为,获取网络中的各个节点分别对应的上报参考信息。使能BGP-LS能力的节点是指建立了BGP邻居,能够根据建立的BGP邻居上报收集的拓扑信息的节点。多个节点中的每个节点通过IGP域内的泛洪过程能够收集所在域内的拓扑信息。
在一种可能的实施方式中,获取使能BGP-LS能力的多个节点分别对应的上报参考信息,包括:获取使能BGP-LS能力的多个节点生成的第一报文,任一节点生成的第一报文包括任一节点的上报参考信息;基于多个节点生成的第一报文分别包括的上报参考信息,获取多个节点分别对应的上报参考信息。上报参考信息是指在多个节点中动态选择用于上报拓扑信息的目标节点时作为参考因素的信息值。
其中,针对不同协议获取的第一报文的类型不同。可选地,在BGP协议下,第一报文可以为NLRI报文,即基于建立的BGP邻居在BGP域内通告NLRI报文的方式,获取BGP域内的多个节点分别对应的上报参考信息;在IGP协议下,IGP协议包括ISIS协议和OSPF协议,第一报文可以为ISIS报文或者OSPF报文,即基于IGP邻居在IGP域内泛洪ISIS报文或者OSPF报文的方式,获取IGP域内的多个节点分别对应的上报参考信息。
示例性地,以网络设备为网络中的任一节点为例,在IGP协议下,网络设备能够生成网络设备对应的第一报文,并在IGP域内进行泛洪,网络设备之外的任一节点能够生成任一节点对应的第一报文也在IGP域内进行泛洪,则网络设备通过泛洪过程能够接收到其他任一节点发送的第一报文,由此,网络设备能够获取到网络设备所在IGP域内的多个节点生成的第一报文。
又一示例性地,以网络设备为网络中的RR为例,在BGP协议下,网络中的各个节点能够生成对应的第一报文并发送给网络设备,则网络设备能够接收到网络中的各个节点发送的第一报文,由此,网络设备能够获取到该BGP域内的多个节点生成的第一报文。
步骤202,基于多个节点分别对应的上报参考信息在多个节点中选择满足上报条件的目标节点,通过目标节点上报目标节点对应的目标域内的拓扑信息,目标域为目标节点所在域内的至少一个域。
在获取到多个节点分别对应的上报参考信息之后,即可根据多个节点分别对应的上报参考信息判断多个节点中由哪些节点也即目标节点来上报哪个域内的拓扑信息,能够使得上报地拓扑信息既不会重复冗余又能够覆盖网络的所有拓扑信息。
在一种可能的实施方式中,可以为网络中的各个节点配置对应的优先级级别,优先级级别用于指示确定该节点为目标节点的期望程度,或者说优先级级别为被选择成目标节点的级别,即优先选择优先级级别高的节点作为目标节点,因此,上报参考信息可以包括优先级级别。本申请实施例不对配置优先级级别的方式进行限定,例如,可以根据不同节点在拓扑结构中的位置确定不同节点的不同优先级,或者,根据不同节点在拓扑结构中的稳定性确定不同节点的不同优先级。
由于多个节点属于至少一个域,进而基于多个节点分别对应的上报参考信息在多个节点中选择满足上报条件的目标节点的方式可以为,对于至少一个域中的任一域包括的多个第一节点,根据各个第一节点的优先级级别确定多个第一节点的第一上报顺序,第一上报顺序用于指示多个第一节点中被选择为目标节点的先后顺序,上报条件为在第一上报顺序中的位置位于前N位,第一上报顺序中第N位与第N+1位不是并列排序;将第一上报顺序中排在前N位的节点作为任一域对应的参考节点,N为正整数;将至少一个域分别对应的参考节点作为目标节点。通过确定每一个域内对应的参考节点以获取到目标节点,使得目标节点上报的拓扑信息能够覆盖所有域,提高了拓扑信息上报的完整性。
可选地,当第一上报顺序指示的多个第一节点中被选择为目标节点的先后顺序是从前往后排列的,则上报条件为在第一上报顺序中的位置位于前N位;当第一上报顺序指示的多个第一节点中被选择为目标节点的先后顺序是从后往前排列的,则上报条件为在第一上报顺序中的位置位于后N位。
其中,在根据各个第一节点的优先级级别确定多个第一节点的第一上报顺序时,可能存在排在前N位的优先级级别相同的情况。在该情况下,上报参考信息还包括节点所在域的域标识或节点标识中的至少一种;根据任一第一节点所在域的域标识的数量确定该任一第一节点在至少一个域中的出现次数,根据各个第一节点的优先级级别先确定多个第一节点的第一顺序,例如按照优先级级别的大小顺序对多个第一节点排序,得到第一排序;当第一顺序中第N位与第N+1位是并列排序时,根据第一顺序以及各个第一节点在至少一个域中的出现次数、各个第一节点的节点标识中的至少一种,依次确定多个第一节点的第三顺序,直至第三顺序中第N位与第N+1位不是并列排序,将第三顺序作为第一上报顺序。
在本申请实施例中,根据第一顺序以及各个第一节点在至少一个域中的出现次数、各个第一节点的节点标识中的至少一种,依次确定多个第一节点的第三顺序的过程可以为,先根据第一顺序以及各个第一节点在至少一个域中的出现次数确定多个第一节点的第三顺序,例如,对于第一顺序中优先级级别相同的节点按照出现次数的大小顺序再次进行排序,得到第一轮的第三顺序,当该第一轮的第三顺序中第N位与第N+1位不是并列排序,则将该第一轮的第三顺序作为第一上报顺序;当该第一轮的第三顺序中第N位与第N+1位仍然是并列排序,对于第一轮的第三顺序中出现次数相同的节点按照节点标识的大小顺序再次进行排序,得到第二轮的第三顺序,由于不同节点之间的节点标识是不同的,则第二轮的第三顺序中第N位与第N+1位应该不是并列排序,则将该第二轮的第三顺序作为第一上报顺序。
或者,上报参考信息还可以包括用于指示是否为边界节点的第一信息、用于指示是否使能IPv4 BGP-LS的第二信息,用于指示是否使能IPv6 BGP-LS的第三信息或节点标识中的至少一种;根据各个第一节点的优先级级别确定多个第一节点的第一上报顺序,包括:根据各个第一节点的优先级级别确定多个第一节点的第一顺序;当第一顺序中第N位与第N+1位是并列排序时,根据第一顺序以及第一信息、第二信息、第三信息、各个第一节点的节点标识中的至少一种,依次确定多个第一节点的第二顺序,直至第二顺序中第N位与第N+1位不是并列排序,将第二顺序作为第一上报顺序。
其中,根据第一顺序以及第一信息、第二信息、第三信息、各个第一节点的节点标识中的至少一种,依次确定多个第一节点的第二顺序的过程,与上述根据第一顺序以及各个第一节点在至少一个域中的出现次数、各个第一节点的节点标识中的至少一种,依次确定多个第一节点的第三顺序的过程类似,此处不再赘述。对于第一信息、第二信息、第三信息的顺序本申请实施例不进行限定,可以先基于第一信息进行第一轮排序,再基于第二信息进行第二轮排序,最后基于第三信息进行第三轮排序;也可以先基于第二信息进行第一轮排序,再基于第三信息进行第二轮排序,最后基于第一信息进行第三轮排序。
以网络设备为图1中的节点C1为例,节点C1位于一个域,即域1,在IGP协议下,节点C1能够获取该域1内的所有节点(节点C1、节点C2、节点A1、节点A2)对应的上报参考信息。当上报参考信息包括优先级级别时,节点C1根据节点C1、节点C2、节点A1、节点A2分别对应的优先级级别进行排序,当N为1时,则将节点C1、节点C2、节点A1、节点A2中的最高优先级对应的节点作为域1对应的参考节点。
例如,当节点C1和节点A2的优先级级别相同,则可以判断节点C1和节点A2是否为边界节点,进而将是边界节点的节点A1作为参考节点。由此,由于边界节点同时位于至少两个域,因此通过选择边界节点能够使得一次上报至少两个域的拓扑信息,提高上报效果。又例如,当节点A1和节点A2的优先级级别相同,由于节点A1和节点A2均为边界节点,则可以判断节点C1和节点A2是否均使能了IPv4 BGP-LS和IPv6 BGP-LS,将均使能IPv4BGP-LS和IPv6BGP-LS的节点作为参考节点。由于通过选择均使能IPv4 BGP-LS和IPv6BGP-LS的节点能够使得一次上报IPv4和IPv6对应的拓扑信息,提高上报效果。
在本申请实施例中,针对每一个域均会确定对应的参考节点,则在哪个域内确定的参考节点,参考节点对应的参考域即为哪个域。由此,目标节点对应的目标域即为目标节点包括的至少一个参考节点分别对应的参考域,目标节点包括的至少一个参考节点与目标域包括的至少一个参考域一一对应。
在一种可能的实施方式中,除了上述分别在每一个域内选择参考节点进而得到目标节点的方式之外,还可以不针对每一个域一一获取对应的参考节点,直接基于多个域包括的多个节点选择目标节点。在该情况下,同样的,上报参考信息包括优先级级别,多个节点属于至少一个域;基于多个节点分别对应的上报参考信息在多个节点中选择满足上报条件的目标节点的方式为,根据多个节点分别对应的优先级级别确定多个节点的第二上报顺序,第二上报顺序用于指示多个节点中被选择为目标节点的先后顺序,上报条件为在第二上报顺序中排在前M位,第二上报顺序中第M位与第M+1位不是并列排序,M为正整数;将第二上报顺序中排在前M位的节点作为目标节点。M与N可以相同或不同。
可选地,上报参考信息还包括节点所在域的域标识或节点标识中的至少一种;根据多个节点分别对应的优先级级别确定多个节点的第二上报顺序,包括:根据各个节点所在域的域标识的数量确定各个节点在至少一个域中的出现次数,根据多个节点分别对应的优先级级别确定多个节点的第四顺序;当第四顺序中第M位与第M+1位是并列排序时,根据第四顺序以及各个节点在至少一个域中的出现次数、各个节点的节点标识中的至少一种,依次确定多个节点的第五顺序,直至第五顺序中第M位与第M+1位不是并列排序,将第五顺序作为第二上报顺序。可以看出确定第二上报顺序与上述第一上报顺序的方式原理相同,此处不再赘述。
在该方式下,由于不区分不同域的选择目标节点,则目标节点上报的拓扑信息可能不覆盖所有域的拓扑信息。则在通过目标节点上报目标节点对应的目标域内的拓扑信息之后,还可以判断上报的拓扑信息是否少于多个节点对应的拓扑信息。当上报的拓扑信息少于多个节点对应的拓扑信息时,获取上报的拓扑信息与多个节点的拓扑信息之间相差的参考拓扑信息;根据参考拓扑信息包括的节点的上报参考信息再次确定目标节点,通过再次确定的目标节点上报对应的拓扑信息,直至上报的拓扑信息的总和大于等于多个节点对应的拓扑信息。
其中,在每次确定得到目标节点时,还会确定得到对应的目标域,例如,在第一次确定目标节点时,可以将目标节点所在域中的所有域作为目标域,以尽可能多的上报不同域的节点信息,在非第一次确定目标节点时,可以将目标节点所在域中的还没有上报过的域作为目标域,以尽可能少的上报相同域的节点信息,导致上报的拓扑信息重复。
综上,通过上述不同方式,均能够基于多个节点分别对应的上报参考信息确定目标节点,由此,即可通过目标节点上报目标节点对应的目标域内的拓扑信息,由于该目标节点为优先级级别高的节点或者同时位于多个域的节点或者同时使能IPv4 BGP-LS和IPv6BGP-LS的节点,使得通过目标节点来上报拓扑信息能够提高上报效果,由于选择的目标节点的数量小于多个节点的总数量,则减少了拓扑信息的上报冗余。
在IGP协议下,作为执行主体的网络设备可以为多个节点中的任一节点,则多个节点中的每一个节点可以同时执行本申请实施例提供的方法,每一个节点能够确定自身节点所在域内的目标节点,当确定的目标节点包括自身节点时,则执行拓扑信息的上报,当确定的目标节点不包括自身节点时,则不上报拓扑信息。
在BGP协议下,作为执行主体的网络设备为网络中的决策节点,决策节点可以为多个节点中的任一节点或反射路由器;通过目标节点上报目标节点对应的目标域内的拓扑信息的方式为,发送第二报文,第二报文包括目标节点的节点标识和目标节点对应的目标域的域标识,第二报文用于目标节点在接收到第二报文后,上报目标域内的拓扑信息。例如,第二报文为NLRI报文,网络设备发送的第二报文可以BGP域内通告,以使得目标节点能够接收到该第二报文,目标节点之外的节点接收到第二报文时,解析第二报文发现目标节点的节点标识不是自身则不进行处理。
此外,通过目标节点上报目标节点对应的目标域内的拓扑信息之后,当多个节点的上报参考信息变更或者目标节点故障中的至少一种情况发生时,基于变更后的上报参考信息或者未发生故障的节点的上报参考信息中的至少一种,重新在多个节点中选择满足上报条件的目标节点,通过重新选择的目标节点上报重新选择的目标节点对应的目标域内的拓扑信息。
可选地,可以撤销之前已经上报的拓扑信息,防止拓扑信息的冗余。在通过发送第二报文告知目标节点上报的方式下,也可以撤销发送的第二报文,然后重新发送第三报文,第三报文包括重新确定的目标节点的节点标识和重新确定的目标节点对应的目标域的域标识,第三报文用于重新确定的目标节点在接收到第三报文后,上报重新确定的目标域内的拓扑信息。
下面,以在IGP协议的基础上进行协议扩展,以使得扩展后的IGP协议具有上报参考信息的通告功能为例,对本申请实施例提供的拓扑信息的上报方法进行举例说明。其中,IGP协议可以为ISIS协议或OSPF协议。
对于ISIS协议,扩展方式可以为在ISIS报文中新增类型(type)、长度(length)、值(value)字段(简称TLV字段),用于携带节点的上报参考信息,该新增的TLV字段可以称为路由功能子TLV(router capability subtlv)。
示例性地,参见图3所示的router capability subtlv字段,其中,value字段可以包括标志(flags)字段和优先级(priority)字段。flags字段可以包括如图4所示的4个字节(B、A、F和S),B置位表示节点建立了BGP-LS邻居,B没有置位表示节点没有建立BGP-LS邻居或者邻居状态为非建立(establish);A置位表示节点为ABR或者ASBR,A没有置位表示节点不为ABR或者ASBR;F置位表示使能了ISIS IPv4的BGP-LS能力,F没有置位表示没有使能ISIS IPv4的BGP-LS能力;S置位表示使能了ISIS IPv6的BGP-LS能力,S没有置位表示没有使能ISIS IPv6的BGP-LS能力。置位指的是字节的值为1,没有置位指的是字节的值为0。priority字段用来携带为节点配置的优先级级别,当没有为节点配置优先级级别时,priority字段默认为0。
对于OSPF协议,扩展方式可以为基于OSPF协议新增一种类型的链路状态通告(link status notification,LSA)报文,新增的LSA报文即为本申请实施例中的OSPF报文,用于携带节点的上报参考信息。
示例性地,参见图5所示的LSA报文,该LSA报文包括OSPF协议通用的LSA报文头的数据字段。其中,LSA报文头包括链路状态老化时间(LS Age)字段:表示LSA生存的时间,链路状态类型(LS Type)字段:标识LSA的格式和功能,链路状态标识(Link State ID)字段:代表该LSA报文所描述的链路的标识;通告路由器(Advertising Router)字段:代表生成和通告该LSA报文的路由器的标识;链路状态序列号(LS sequence number)字段:代表该LSA更新的次数;链路状态校验(LS checksum)字段:起校验作用;长度(length):代表长度。LSType字段、Link State ID字段和Advertising Router字段能够共同标识一条LSA。
数据字段可以包括flags字段和priority字段。flags字段和priority字段的具体内容可参见上述图3中的介绍,不同之处在于,F置位表示使能了第2版OSPF(OSPF version2,OSPFV2)的BGP-LS能力,F没有置位表示没有使能OSPFV2的BGP-LS能力;S置位表示使能了第3版OSPF(OSPF version 3,OSPFV3)的BGP-LS能力,S没有置位表示没有使能OSPFV3的BGP-LS能力。其中,OSPFV2用于IPv4网络,OSPFV3用于IPv6网络。
在完成ISIS协议或OSPF协议的扩展后,即可通过在域内泛洪上述ISIS报文或者LSA报文来通告本节点的上报参考信息。例如,节点打开使能BGP-LS能力的开关后,在节点未上报对应的拓扑信息之前,各个节点在IGP域内洪泛携带上报参考信息的ISIS报文或者OSPF报文,进而使得同一域内的各个节点均能够获取到各个节点的上报参考信息。同一域内的各个节点根据获取到的各个节点的上报参考信息以及优先上报的排序规则,能够得到相同的各个节点的上报顺序。
在本申请实施例中,优先上报的排序规则可以为,首先优先选择B置位的节点,其次优先选择priority值大的节点,再次优先选择A置位的节点,接下来优先选择F和S同时置位的优先,最后优先选择节点标识的值较大的节点。对于同一域内的节点会为各个节点设置对应的节点标识,不同节点的节点标识不同。对于节点标识的设置方式不进行限定,例如,可以按照1、2、3...的顺序进行标识。
示例性地,以图1所示的域100为例,对获取域100内的各个节点的上报顺序为例进行说明。其中,节点A1-节点A6在ISIS IPv4和ISIS IPv6中分别使能BGP-LS能力,节点A6配置优先级级别为100,其余节点不配置优先级级别。初始状态节点A1-节点A6先不向BGP协议上报拓扑信息,节点A1-节点A6在域100内分别洪泛自身的上报参考信息。由于节点A1-节点A6均为ASBR节点,均建立了BGP-LS邻居,上报参考信息中的flags字段的置位情况为B、A、F、S均置位。则在节点A1-节点A6的ISIS报文或OSPF报文在域内中洪泛后,节点A1-节点A6均收到其他节点的上报参考信息。
根据优先上报的排序规则对节点A1-节点A6进行排序。首先对比节点A1-节点A6的flag B均为置位,其次对比priority的值,值最大的节点A6排名第一。然后对于priority相同的节点A1-节点A5,对比flagA均为置位,对比flag F和flag S同时均为置位,最后对比节点标识,按照节点A5、节点A4、节点A3、节点A2和节点A1的大小顺序进行排序。由此,能够生成表1所示的BGP-LS能力列表,即域100内的各个节点的上报顺序,表1中从下到上的排列顺序对应优先上报的排列顺序。其中,真(TRUE)代表置位。
表1
对于每一节点而言,由于获取到的各个节点的上报参考信息以及优先上报的排序规则均是相同的,则每一节点均能够生成表1所示的BGP-LS能力列表。每一节点根据自身在BGP-LS能力列表中的排序位置,判断是否将拓扑信息上报给BGP协议,如果自身排序位置满足顺序条件,则上报域100内的拓扑信息,如果自身排序位置不满足顺序条件,则不上报域100内的拓扑信息。
顺序条件可以根据应用场景灵活调整,例如,顺序条件可以为排在优先上报的前1、2或3位。由于在表1中优先上报的顺序是从小往上进行排列的,则优先选择节点A6来上报域100内的拓扑信息,其次选择节点A5来上报域100内的拓扑信息。当顺序条件为排在优先上报的前2位时,节点A5和节点A6判断自身排序位置满足顺序条件,节点A5和节点A6会上报域100内的拓扑信息;同理,节点A1-节点A4判断自身排序位置不满足顺序条件,节点A1-节点A4不会上报域100内的拓扑信息。
在本申请实施例中,若节点的上报参考信息变更,例如,节点配置的优先级级别变更或者节点的flags置位变更,会导致表1所示的BGP-LS能力列表的排序结果发生变化。以节点A6配置的优先级级别由100变更为50,节点A1配置的优先级级别由不配置变更为100,则变更后的BGP-LS能力列表如表2所示。
表2
如表2所示,满足排序条件的节点由节点A6和节点A5变更为节点A1和节点A6。基于同样的原理,节点A1和节点A6判断自身排序位置满足顺序条件,节点A1和节点A6会上报收集的域100内的拓扑信息。原来由节点A5上报的域100内的拓扑信息会被撤销。
通过上述过程能够实现域100内的拓扑信息的动态上报,基于同样的原理,也能够实现域1、域2或域3内的拓扑信息的动态上报,进而实现整网拓扑信息的上报。
由此,通过在ISIS协议或OSPF协议基础上的协议扩展,使ISIS报文新增Routercapability subtlv字段或者使OSPF协议新增LSA报文,实现了节点的上报参考信息的通告功能。通过通告的上报参考信息各个节点能够获取相同的BGP-LS能力列表,进而使得各个节点设备能够根据自身在BGP-LS能力列表中的排序结果动态确定是否上报拓扑信息。在BGP-LS能力列表的排序结果发生变更时,也能够动态切换不同节点进行拓扑信息的上报。
下面,以在BGP协议的基础上进行协议扩展,以使得扩展后的BGP协议具有上报参考信息的通告功能为例,对本申请实施例提供的拓扑信息的上报方法进行举例说明。
BGP-LS协议已经定义的链路状态NLRI包括:节点NLRI(node NLRI)用来携带节点信息,链路NLRI(linkNLRI)用来携带链路信息,IPv4拓扑前缀NLRI(IPv4 topology prefixNLRI)用来携带IPv4前缀相关信息,IPv6拓扑前缀NLRI(IPv6 topology prefix NLRI)用来携带IPv6前缀相关信息。在此基础上,本申请实施例新增协商NLRI(negotiation NLRI)用来携带节点的上报参考信息,该negotiationNLRI即对应本申请实施例中的NLRI报文。
以图6所示的negotiation NLRI报文为例进行说明。其中,negotiation NLRI报文包括协议标识(protocol-ID),占1个字节,例如,protocol-ID为ISIS,OSPF,OSPFV3或BGP等;标识符(identifier),占8个字节,在运行ISIS、OSPF多实例或OSPFV3多实例时,用于标识不同的协议实例;本地节点描述符(local node descriptors),由一系列的节点描述符subtlv组成的可变字段,可以与node NLRI或link NLRI中的定义相同;协商描述符(negotiation descriptors),由一系列的协商描述subtlv组成的可变字段,用于通告动态确定的上报节点。
上述协商描述符negotiation descriptors可以包括但不限于优先级(priority)、链路状态域标识(ls-area-id)、协商节点标识(negotiation-node-id)、协商域标识(negotiation-area-id)、协商IGP标识(negotiation-IGP-id)或flag N等。
其中,priority占1个字节,用于标识协商的优先级级别;ls-area-id占4个字节,用于标识BGP-LS中的不同IGP域,同一个IGP域内的节点使用相同的ls-area-id;negotiation-area-id占4个字节,用于指示目标节点需要上报拓扑信息的目标域的域标识;negotiation-node-id占4个字节,用于指示决策节点选择的目标节点的节点标识;negotiation-IGP-id占4个字节,用于指示目标节点的节点标识以及目标节点需要上报拓扑信息的目标域的域标识;flag N占1个字节,flag N置位表示初始生成的negotiationNLRI报文,即在确定得到目标节点之前生成的negotiation NLRI报文,flag N没有置位表示在确定目标节点之后生成的negotiation NLRI报文;其余字节保留。
在完成BGP协议的扩展后,BGP-LS在通告node NLRI、linkNLRI、IPv4topologyprefix NLRI以及IPv6 topology prefix NLRI之前,先通告negotiation NLRI报文,negotiation NLRI报文经过RR反射给网络中的其他节点。示例性地,该negotiationNLRI报文携带在BGP更新(update)消息中,通过BGP-LS邻居进行发布,以使接收整网的BGPupdate消息的节点获取到各个节点的negotiation NLRI报文中的上报参考信息,该接收整网的BGP update消息的节点即为决策节点。其中,BGP update消息用于在对等体之间交换路由信息。
在本申请实施例中,决策节点接收整网所有的flagN为0的negotiation NLRI报文,以获取到各个节点的上报参考信息。进而根据各个节点的上报参考信息和优先上报的排序规则生成BGP-LS能力列表,基于BGP-LS能力列表确定用于上报的目标节点。可选地,优先上报的排序规则可以为,首先优先选择priority值大的节点,再次优先选择同时位于多个域内的节点,最后优先选择节点标识的值较大的节点。
决策节点将目标节点的节点信息作为路由属性携带在Negotiation NLRI报文中再次进行通告,携带目标节点的节点信息的NegotiationNLRI报文中的flagN为1。各个节点在接收到flagN为1的Negotiation NLRI报文后,根据目标节点的节点信息是否包括自身确定是否需要上报。如果目标节点的节点信息包含自身的节点信息,则上报拓扑信息,如果目标节点的节点信息不包含自身的节点信息,则不进行处理。
对于扩展BGP协议下的上述上报拓扑信息的方式,包括但不限于如下两种方案。方案一,区分不同域,通过静态设置ls-area-id的方式,使得BGP能够识别同一个域内的节点,进而对同一个域内的节点进行优先上报的排序,能够为每一个域确定对应的目标节点。方案二,不区分不同域,先在所有节点中选择一个目标节点进行上报,即先汇总一轮拓扑信息,根据已经汇总的拓扑信息判断下一轮需要上报的节点,一轮一轮的完成整网拓扑信息的汇总。
在方案一中,通过静态配置的方式,为不同的IGP域配置不同的ls-area-id,同一IGP域内的节点配置相同的ls-area-id,不同IGP域内的节点配置不同的ls-area-id。例如,在图1中,节点A1在域100中配置的ls-area-id为id100,节点A1在域1中配置的ls-area-id为id1。
示例性地,在图1所示的网络拓扑中,将RR作为决策节点,节点A6配置priority为100,其余节点不配置priority为例。初始状态,节点A1-节点A6、节点C1-节点C6中的各个节点生成NegotiationNLRI报文,以通过Negotiation NLRI报文携带自身的上报参考信息,然后向RR发布生成的Negotiation NLRI报文。在该情况下,Negotiation NLRI报文的可选字段negotiation descriptors可以包括自身的priority以及flag N未置位为0。
RR接收各个节点发布的flag N为0的Negotiation NLRI报文,根据上述优先上报的排序规则,分别获取各个域内的上报顺序。对于id100域内的节点A1-节点A6,节点A6的priority最大,则节点A6排名第一。其余的节点A1-节点A5的priority相同,则对比节点A1-节点A5在多个域内出现的次数,其中,节点A1和节点A2出现在id100和id1中,节点A3和节点A4出现在id100和id2中,节点A5出现在id100和id3中,则节点A1-节点A5在多个域内出现的次数相同为2次。最后对比节点标识,按照节点A5、节点A4、节点A3、节点A2和节点A1的大小顺序进行排序,A5排名第二。
同样的,对于id1域内的节点A1、节点A2、节点C1和节点C2,首先对比各个节点的priority相同。然后对比各个节点在多个域中出现的次数,节点A1和节点A2均在多个域中出现了2次,节点C1和节点C2均在多个域中出现了1次,则节点A1和节点A2排在节点C1和节点C2之前。最后对比点A1和节点A2的节点标识,A2大于A1。因此,在id1域内节点A2排名第一、节点A1排名第二。按照相同的方法可以确定,在id2域内节点A3排名第一、节点A3排名第二,在id3域内节点A6排名第一、节点A5排名第二。由此,RR能够生成如表3所示的BGP-LS能力列表,表3中对于同一域标识,从下到上的排列顺序对应优先上报的排列顺序。
表3
/>
以将各个域内排名第一的节点为目标节点为例,RR在id100内确定节点A6为目标节点之后,生成id100对应的NegotiationNLRI报文。在该情况下,NegotiationNLRI报文的可选字段negotiation descriptors可以包括ls-area-id、negotiation-area-id和flagN。其中,ls-area-id的值设置为id100,negotiation-area-id的值设置为A6,flag N置位为1。按照相同的方法,RR分别生成id1、id2、id3对应的NegotiationNLRI报文,并设置对应的路由属性。由此能够生成4个flag N置位为1的NegotiationNLRI报文。
RR将该4个flag N置位为1的Negotiation NLRI报文发布给网络中的各个节点,以使各个节点均能够接收到4个flag N置位为1的Negotiation NLRI报文。以节点A6为例,节点A6基于接收的4个Negotiation NLRI报文中的flag N为1,对该4个Negotiation NLRI报文进行解析,并确定存在2个Negotiation NLRI报文携带的negotiation-node-id为自身即A6,且ls-area-id分别为id100和id3,则节点A6上报id100对应的域100的拓扑信息以及id3对应的域3内的拓扑信息。示例性地,节点A6通告域100以及域3对应的node NLRI报文/linkNLRI报文/IPv4 topologyprefix NLRI报文/IPv6 topologyprefix NLRI报文。
同理,节点A2上报id2对应的域1的拓扑信息,节点A4上报id2对应的域2的拓扑信息。节点A1、节点A3、节点A5设备没有收到包含自身的节点标识的flag N置位为1的Negotiation NLRI报文,则不上报。
在方案二中,通过静态配置的方式,为不同IGP域内的同一节点配置对应的IGP-id。例如,在图1中,节点A1在域100中配置的IGP-id为A1-id100,节点A1在域1中配置的IGP-id为A1-id1。
以图1所示的网络拓扑中,仍以将RR作为决策节点,节点A6配置priority为100,其余节点不配置priority为例。初始状态,节点A1-节点A6、节点C1-节点C6中的各个节点生成Negotiation NLRI报文,以通过Negotiation NLRI报文携带自身的上报参考信息,然后向RR发布生成的NegotiationNLRI报文。
在该情况下,Negotiation NLRI报文的可选字段negotiation descriptors可以包括自身的priority以及flag N未置位为0。RR接收各个节点发布的flag N为0的Negotiation NLRI报文,可以生成如表4所示的第一BGP-LS能力列表。
表4
根据上述优先上报的排序规则,在不区分不同域的情况下,在表4中确定节点A6的priority的值最大,则节点A6排名第一,即目标节点为节点A6。RR基于节点A6对应的node-id和igp-id生成2个Negotiation NLRI报文。在该情况下,2个Negotiation NLRI报文的可选字段negotiation descriptors可以包括negotiation-node-id、negotiation-IGP-id和flag N。例如,negotiation-node-id的值设置为A6,flag N置位为1,其中一个negotiation-IGP-id的值设置为A6-id100,另一个negotiation-IGP-id的值设置为A6-id3。由此能够生成2个flag N置位为1的NegotiationNLRI报文。
在RR将该2个flag N置位为1的Negotiation NLRI报文发布给网络中的各个节点之后,节点A6接收并解析该2个NegotiationNLRI报文,确定该2个Negotiation NLRI报文携带的negotiation-node-id为自身即A6,且negotiation-IGP-id分别为A6-id100和A6-id3,则节点A6上报域100对应的拓扑信息以及域3对应的拓扑信息。示例性地,节点A6通告域100以及域3对应的node NLRI报文/linkNLRI报文/IPv4 topology prefix NLRI报文/IPv6topologyprefix NLRI报文。决策节点RR在接收到节点A6上报的拓扑信息后,解析汇总节点A6上报的拓扑信息,可以生成如表5所示的第一拓扑列表。
表5
决策节点RR对比表4所示的第一BGP-LS能力列表和表5所示的第一拓扑列表,根据表4和表5之间的信息差,可以生成如表6所示的第一BGP-LS能力列表。表6中的节点条目为表4中包括但表5中不包括的节点条目,即通过上一节点上报的拓扑信息之后,距离汇总整网拓扑还差的条目信息。
表6
根据上述优先上报的排序规则,继续在表6中确定各个节点的priority的值相同且在不同域出现的次数相同为1,则确定节点标识的值最大的节点C4排名第一,即目标节点为节点C4。RR基于节点C4对应的node-id和igp-id生成1个Negotiation NLRI报文。在该情况下,Negotiation NLRI报文的可选字段negotiation descriptors中的negotiation-node-id的值设置为C4,flag N置位为1,negotiation-IGP-id的值设置为C4-id2。由此能够生成1个flag N置位为1的Negotiation NLRI报文。
在RR将该1个flag N置位为1的Negotiation NLRI报文发布给网络中的各个节点之后,节点C4接收并解析该Negotiation NLRI报文,确定该Negotiation NLRI报文携带的negotiation-node-id为自身即C4,且negotiation-IGP-id分别为C4-id2,则节点C4上报域2对应的拓扑信息。示例性地,节点C4通告域2对应的node NLRI报文/link NLRI报文/IPv4topology prefix NLRI报文/IPv6 topology prefix NLRI报文。决策节点RR在接收到节点C4上报的拓扑信息后,解析汇总节点C4上报的拓扑信息,可以对表5所示的第一拓扑列表进行补充,得到如表7所示的第二拓扑列表。
表7
决策节点RR再次对比表4所示的第一BGP-LS能力列表和表7所示的第二拓扑列表,根据表4和表7之间的信息差,可以生成如表8所示的第三BGP-LS能力列表。
表8
同理,根据上述优先上报的排序规则,继续在表8中确定各个节点的priority的值相同且在不同域出现的次数相同为1,则确定节点标识的值最大的节点C2排名第一,即目标节点为节点C1。RR基于节点C2对应的node-id和igp-id生成1个Negotiation NLRI报文。在该情况下,NegotiationNLRI报文的可选字段negotiation descriptors中的negotiation-node-id的值设置为C2,flag N置位为1,negotiation-IGP-id的值设置为C2-id1。由此能够生成1个flag N置位为1的NegotiationNLRI报文。
在RR将该1个flag N置位为1的Negotiation NLRI报文发布给网络中的各个节点之后,节点C2接收并解析该Negotiation NLRI报文,确定该Negotiation NLRI报文携带的negotiation-node-id为自身即C2,且negotiation-IGP-id分别为C2-id1,则节点C2上报域1对应的拓扑信息。示例性地,节点C2通告域1对应的node NLRI报文/link NLRI报文/IPv4topology prefix NLRI报文/IPv6 topology prefix NLRI报文。决策节点RR在接收到节点C2上报的拓扑信息后,解析汇总节点C2上报的拓扑信息,可以对表7所示的第一拓扑列表进行补充,得到如表9所示的第三拓扑列表。
表9
决策节点RR再次对比表4所示的第一BGP-LS能力列表和表9所示的第三拓扑列表,根据表4和表9之间的信息差,确定表4中不存在表9未包含的节点条目,整网拓扑信息汇总完成,将汇总后的拓扑信息上送至控制器。
在本申请实施例中,若节点的上报参考信息变更,例如,节点配置的优先级级别变更或者节点的拓扑结构变更,会导致对表3或表4所示的BGP-LS能力列表的排序结果发生变化。则决策节点重新生成变更后对应的NegotiationNLRI报文,撤销变更前已经发布的Negotiation NLRI报文,由变更后的目标节点接收重新发布的Negotiation NLRI报文,并上报对应的拓扑信息。变更前的目标节点接收携带多协议不可达NLRI的update消息,取消生成node NLRI报文/linkNLRI报文/IPv4 topology prefixNLRI报文/IPv6 topologyprefixNLRI报文,并撤销已经发布的node NLRI报文/link NLRI报文/IPv4 topologyprefix NLRI报文/IPv6 topology prefix NLRI报文。
以上介绍了本申请实施例的拓扑信息的上报方法,与上述方法对应,本申请实施例还提供了拓扑信息的上报装置。图7是本申请实施例提供的一种拓扑信息的上报装置的结构示意图,该装置应用于网络设备,该网络设备可以为上述图1所示的任一节点或RR。基于图7所示的如下多个模块,该图7所示的拓扑信息的上报装置能够执行网络设备所执行的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图7所示,该装置包括:
获取模块701,用于获取使能BGP-LS能力的多个节点分别对应的上报参考信息,多个节点中的每个节点收集有所在域内的拓扑信息;
选择模块702,用于基于多个节点分别对应的上报参考信息在多个节点中选择满足上报条件的目标节点;
上报模块703,用于通过目标节点上报目标节点对应的目标域内的拓扑信息,目标域为目标节点所在域内的至少一个域。
在一种可能的实施方式中,多个节点建立有BGP-LS邻居,上报参考信息包括优先级级别,多个节点属于至少一个域;
选择模块702,用于对于至少一个域中的任一域包括的多个第一节点,根据各个第一节点的优先级级别确定多个第一节点的第一上报顺序,第一上报顺序用于指示多个第一节点中被选择为目标节点的先后顺序,上报条件为在第一上报顺序中的位置位于前N位,第一上报顺序中第N位与第N+1位不是并列排序,N为正整数;将第一上报顺序中排在前N位的节点作为任一域对应的参考节点;将至少一个域分别对应的参考节点作为目标节点。
在一种可能的实施方式中,上报参考信息还包括用于指示是否为边界节点的第一信息、用于指示是否使能IPv4 BGP-LS的第二信息、用于指示是否使能IPv6 BGP-LS的第三信息或节点标识中的至少一种;
选择模块702,用于根据各个第一节点的优先级级别确定多个第一节点的第一顺序;当第一顺序中第N位与第N+1位是并列排序时,根据第一顺序以及第一信息、第二信息、第三信息、各个第一节点的节点标识中的至少一种,依次确定多个第一节点的第二顺序,直至第二顺序中第N位与第N+1位不是并列排序,将第二顺序作为第一上报顺序。
在一种可能的实施方式中,上报参考信息还包括节点所在域的域标识或节点标识中的至少一种;
选择模块702,用于根据各个第一节点的优先级级别确定多个第一节点的第一顺序;当第一顺序中第N位与第N+1位是并列排序时,根据第一顺序以及各个第一节点在至少一个域中的出现次数、各个第一节点的节点标识中的至少一种,依次确定多个第一节点的第三顺序,直至第三顺序中第N位与第N+1位不是并列排序,将第三顺序作为第一上报顺序,第一节点在至少一个域中的出现次数根据第一节点所在域的域标识的数量确定得到。
在一种可能的实施方式中,多个节点之间建立有BGP-LS邻居,上报参考信息包括优先级级别,多个节点属于至少一个域;
选择模块702,用于根据多个节点分别对应的优先级级别确定多个节点的第二上报顺序,第二上报顺序用于指示多个节点中被选择为目标节点的先后顺序,上报条件为在第二上报顺序中排在前M位,第二上报顺序中第M位与第M+1位不是并列排序,M为正整数;将第二上报顺序中排在前M位的节点作为目标节点。
在一种可能的实施方式中,上报参考信息还包括节点所在域的域标识或节点标识中的至少一种;
选择模块702,用于根据多个节点分别对应的优先级级别确定多个节点的第四顺序;当第四顺序中第M位与第M+1位是并列排序时,根据第四顺序以及各个节点在至少一个域中的出现次数、各个节点的节点标识中的至少一种,依次确定多个节点的第五顺序,直至第五顺序中第M位与第M+1位不是并列排序,将第五顺序作为第二上报顺序,各个节点在至少一个域中的出现次数根据各个节点所在域的域标识的数量确定得到。
在一种可能的实施方式中,获取模块701,还用于当上报的拓扑信息少于多个节点对应的拓扑信息时,获取上报的拓扑信息与多个节点的拓扑信息之间相差的参考拓扑信息;
选择模块702,还用于根据参考拓扑信息包括的节点的上报参考信息再次确定目标节点,通过再次确定的目标节点上报对应的拓扑信息,直至上报的拓扑信息的总和大于等于多个节点对应的拓扑信息。
在一种可能的实施方式中,网络设备为决策节点,决策节点为多个节点中的任一节点或反射路由器;
上报模块703,用于发送第二报文,第二报文包括目标节点的节点标识和目标节点对应的目标域的域标识,第二报文用于目标节点在接收到第二报文后,上报目标域内的拓扑信息。
在一种可能的实施方式中,该装置还包括:
重新选择模块,用于当多个节点的上报参考信息变更或者目标节点故障中的至少一种情况发生时,基于变更后的上报参考信息或者未发生故障的节点的上报参考信息中的至少一种,重新在多个节点中选择满足上报条件的目标节点,通过重新选择的目标节点上报重新选择的目标节点对应的目标域内的拓扑信息。
在一种可能的实施方式中,获取模块701,用于获取使能BGP-LS能力的多个节点生成的第一报文,第一报文为ISIS报文、OSPF报文或者NLRI报文,任一节点生成的第一报文包括任一节点的上报参考信息;基于多个节点生成的第一报文分别包括的上报参考信息,获取多个节点分别对应的上报参考信息。
该装置对于网络中多个节点均使能BGP-LS能力,保证了部署一致性,能够避免由部署不统一导致的部署错误,然后根据上报参考信息能够动态选择用来上报拓扑信息的目标节点,能够避免由所有节点均上报导致的拓扑信息冗余,也就降低了用于汇总拓扑信息的设备的汇总压力。
应理解的是,上述图7提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
参见图8,图8示出了本申请一个示例性实施例提供的网络设备2000的结构示意图。图8所示的网络设备2000用于执行上述图2所示的拓扑信息的上报方法所涉及的操作。该网络设备2000例如是交换机、路由器等,该网络设备2000可以由一般性的总线体系结构来实现。
如图8所示,网络设备2000包括至少一个处理器2001、存储器2003以及至少一个通信接口2004。
处理器2001例如是通用中央处理器(central processing unit,CPU)、数字信号处理器(digital signalprocessor,DSP)、网络处理器(networkprocesser,NP)、图形处理器(Graphics ProcessingUnit,GPU)、神经网络处理器(neural-networkprocessingunits,NPU)、数据处理单元(DataProcessing Unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器2001包括专用集成电路(application-specificintegratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种逻辑方框、模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
可选的,网络设备2000还包括总线。总线用于在网络设备2000的各组件之间传送信息。总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extendedindustry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003例如是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasableprogrammable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器2003例如是独立存在,并通过总线与处理器2001相连接。存储器2003也可以和处理器2001集成在一起。
通信接口2004使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(radio access network,RAN)或无线局域网(wirelesslocal area networks,WLAN)等。通信接口2004可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口2004可以为以太(Ethernet)接口、快速以太(Fast Ethernet,FE)接口、千兆以太(Gigabit Ethernet,GE)接口,异步传输模式(Asynchronous TransferMode,ATM)接口,无线局域网(wireless local areanetworks,WLAN)接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本申请实施例中,通信接口2004可以用于网络设备2000与其他设备进行通信。
在具体实现中,作为一种实施例,处理器2001可以包括一个或多个CPU,如图8中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核(single-core CPU)处理器,也可以是一个多核(multi-core CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备2000可以包括多个处理器,如图8中所示的处理器2001和处理器2005。这些处理器中的每一个可以是一个单核处理器(single-core CPU),也可以是一个多核处理器(multi-core CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备2000还可以包括输出设备和输入设备。输出设备和处理器2001通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquidcrystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器2001通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器2003用于存储执行本申请方案的程序代码2010,处理器2001可以执行存储器2003中存储的程序代码2010。也即是,网络设备2000可以通过处理器2001以及存储器2003中的程序代码2010,来实现方法实施例提供的拓扑信息的上报方法。程序代码2010中可以包括一个或多个软件模块。可选地,处理器2001自身也可以存储执行本申请方案的程序代码或指令。
在具体实施例中,本申请实施例的网络设备2000可对应于上述各个方法实施例中的第一网络设备,网络设备2000中的处理器2001读取存储器2003中的指令,使图8所示的网络设备2000能够执行网络设备所执行的全部或部分操作。
具体的,处理器2001用于获取使能BGP-LS能力的多个节点分别对应的上报参考信息,多个节点中的每个节点收集有所在域内的拓扑信息;基于多个节点分别对应的上报参考信息在多个节点中选择满足上报条件的目标节点,通过目标节点上报目标节点对应的目标域内的拓扑信息,目标域为目标节点所在域内的至少一个域。
其他可选的实施方式,为了简洁,在此不再赘述。
网络设备2000还可以对应于上述图7所示的拓扑信息的上报装置,拓扑信息的上报装置中的每个功能模块采用网络设备2000的软件实现。换句话说,拓扑信息的上报装置包括的功能模块为网络设备2000的处理器2001读取存储器2003中存储的程序代码2010后生成的。
其中,图2所示的拓扑信息的上报方法的各步骤通过网络设备2000的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
参见图9,图9示出了本申请另一个示例性实施例提供的网络设备2100的结构示意图,图9所示的网络设备2100用于执行上述图2所示的拓扑信息的上报方法所涉及的全部或部分操作。该网络设备2100例如是交换机、路由器等,该网络设备2100可以由一般性的总线体系结构来实现。
如图9所示,网络设备2100包括:主控板2110和接口板2130。
主控板也称为主处理单元(mainprocessing unit,MPU)或路由处理卡(routeprocessor card),主控板2110用于对网络设备2100中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板2110包括:中央处理器2111和存储器2112。
接口板2130也称为线路接口单元(line processing unit,LPU)、线卡(linecard)或业务板。接口板2130用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、POS(Packet over SONET/SDH)接口等,以太网接口例如是灵活以太网业务接口(Flexible Ethernet Clients,FlexE Clients)。接口板2130包括:中央处理器2131网络处理器2132、转发表项存储器2134和物理接口卡(physical interface card,PIC)2133。
接口板2130上的中央处理器2131用于对接口板2130进行控制管理并与主控板2110上的中央处理器2111进行通信。
网络处理器2132用于实现报文的转发处理。网络处理器2132的形态可以是转发芯片。转发芯片可以是网络处理器(networkprocessor,NP)。在一些实施例中,转发芯片可以通过专用集成电路(application-specific integrated circuit,ASIC)或现场可编程门阵列(field programmable gate array,FPGA)实现。具体而言,网络处理器2132用于基于转发表项存储器2134保存的转发表转发接收到的报文,如果报文的目的地址为网络设备2100的地址,则将该报文上送至CPU(如中央处理器2131)处理;如果报文的目的地址不是网络设备2100的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理可以包括:报文入接口的处理,转发表查找;下行报文的处理可以包括:转发表查找等等。在一些实施例中,中央处理器也可执行转发芯片的功能,比如基于通用CPU实现软件转发,从而接口板中不需要转发芯片。
物理接口卡2133用于实现物理层的对接功能,原始的流量由此进入接口板2130,以及处理后的报文从该物理接口卡2133发出。物理接口卡2133也称为子卡,可安装在接口板2130上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器2132处理。在一些实施例中,中央处理器2131也可执行网络处理器2132的功能,比如基于通用CPU实现软件转发,从而物理接口卡2133中不需要网络处理器2132。
可选地,网络设备2100包括多个接口板,例如网络设备2100还包括接口板2140,接口板2140包括:中央处理器2141、网络处理器2142、转发表项存储器2144和物理接口卡2143。接口板2140中各部件的功能和实现方式与接口板2130相同或相似,在此不再赘述。
可选地,网络设备2100还包括交换网板2120。交换网板2120也可以称为交换网板单元(switch fabric unit,SFU)。在网络设备2100有多个接口板的情况下,交换网板2120用于完成各接口板之间的数据交换。例如,接口板2130和接口板2140之间可以通过交换网板2120通信。
主控板2110和接口板耦合。例如。主控板2110、接口板2130和接口板2140,以及交换网板2120之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板2110和接口板2130及接口板2140之间建立进程间通信协议(inter-processcommunication,IPC)通道,主控板2110和接口板2130及接口板2140之间通过IPC通道进行通信。
在逻辑上,网络设备2100包括控制面和转发面,控制面包括主控板2110和中央处理器2111,转发面包括执行转发的各个组件,比如转发表项存储器2134、物理接口卡2133和网络处理器2132。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护网络设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器2132基于控制面下发的转发表对物理接口卡2133收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器2134中。在有些实施例中,控制面和转发面可以完全分离,不在同一网络设备上。
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的网络设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态网络设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
在具体实施例中,网络设备2100对应于上述图7所示的应用于网络设备的拓扑信息的上报装置。在一些实施例中,图7所示的拓扑信息的上报装置中的获取模块701和选择模块702相当于网络设备2100中的中央处理器2111或网络处理器2132,上报模块703相当于网络设备2100中的物理接口卡2133。
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行网络设备所需执行的方法。
应理解的是,上述处理器可以是CPU,还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本申请实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行,以使计算机实现如上任一的拓扑信息的上报方法。
本申请实施例还提供了一种计算机程序(产品),当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。
本申请实施例还提供了一种芯片,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行如上任一的拓扑信息的上报方法。
本申请实施例还提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行如上任一的拓扑信息的上报方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和模块,能够以软件、硬件、固件或者其任意组合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。作为示例,本申请实施例的方法可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。
用于实现本申请实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
在本申请实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。
信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的情况下,第一图像可以被称为第二图像,并且类似地,第二图像可以被称为第一图像。第一图像和第二图像都可以是图像,并且在某些情况下,可以是单独且不同的图像。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“系统”和“网络”经常可互换使用。
应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,术语“若”和“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
以上描述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (23)
1.一种拓扑信息的上报方法,其特征在于,应用于网络设备,所述方法包括:
获取使能边界网关协议链路状态BGP-LS能力的多个节点分别对应的上报参考信息,所述多个节点中的每个节点收集有所在域内的拓扑信息;
基于所述多个节点分别对应的上报参考信息在所述多个节点中选择满足上报条件的目标节点,通过所述目标节点上报所述目标节点对应的目标域内的拓扑信息,所述目标域为所述目标节点所在域内的至少一个域。
2.根据权利要求1所述的方法,其特征在于,所述多个节点建立有BGP-LS邻居,所述上报参考信息包括优先级级别,所述多个节点属于至少一个域;
所述基于所述多个节点分别对应的上报参考信息在所述多个节点中选择满足上报条件的目标节点,包括:
对于所述至少一个域中的任一域包括的多个第一节点,根据各个第一节点的优先级级别确定所述多个第一节点的第一上报顺序,所述第一上报顺序用于指示所述多个第一节点中被选择为所述目标节点的先后顺序,所述上报条件为在所述第一上报顺序中的位置位于前N位,所述第一上报顺序中第N位与第N+1位不是并列排序,N为正整数;
将所述第一上报顺序中排在前N位的节点作为所述任一域对应的参考节点;
将所述至少一个域分别对应的参考节点作为所述目标节点。
3.根据权利要求2所述的方法,其特征在于,所述上报参考信息还包括用于指示是否为边界节点的第一信息、用于指示是否使能互联网通信协议第四版IPv4 BGP-LS的第二信息、用于指示是否使能互联网通信协议第六版IPv6 BGP-LS的第三信息或节点标识中的至少一种;
所述根据各个第一节点的优先级级别确定所述多个第一节点的第一上报顺序,包括:
根据各个第一节点的优先级级别确定所述多个第一节点的第一顺序;
当所述第一顺序中所述第N位与所述第N+1位是并列排序时,根据所述第一顺序以及所述第一信息、所述第二信息、所述第三信息、各个第一节点的节点标识中的至少一种,依次确定所述多个第一节点的第二顺序,直至所述第二顺序中所述第N位与所述第N+1位不是并列排序,将所述第二顺序作为所述第一上报顺序。
4.根据权利要求2所述的方法,其特征在于,所述上报参考信息还包括节点所在域的域标识或节点标识中的至少一种;所述根据各个第一节点的优先级级别确定所述多个第一节点的第一上报顺序,包括:
根据各个第一节点的优先级级别确定所述多个第一节点的第一顺序;
当所述第一顺序中所述第N位与所述第N+1位是并列排序时,根据所述第一顺序以及所述各个第一节点在所述至少一个域中的出现次数、所述各个第一节点的节点标识中的至少一种,依次确定所述多个第一节点的第三顺序,直至所述第三顺序中所述第N位与所述第N+1位不是并列排序,将所述第三顺序作为所述第一上报顺序,所述第一节点在所述至少一个域中的出现次数根据所述第一节点所在域的域标识的数量确定得到。
5.根据权利要求1所述的方法,其特征在于,所述多个节点之间建立有BGP-LS邻居,所述上报参考信息包括优先级级别,所述多个节点属于至少一个域;
所述基于所述多个节点分别对应的上报参考信息在所述多个节点中选择满足上报条件的目标节点,包括:
根据所述多个节点分别对应的优先级级别确定所述多个节点的第二上报顺序,所述第二上报顺序用于指示所述多个节点中被选择为所述目标节点的先后顺序,所述上报条件为在所述第二上报顺序中排在前M位,所述第二上报顺序中第M位与第M+1位不是并列排序,M为正整数;
将所述第二上报顺序中排在前M位的节点作为所述目标节点。
6.根据权利要求5所述的方法,其特征在于,所述上报参考信息还包括节点所在域的域标识或节点标识中的至少一种;所述根据所述多个节点分别对应的优先级级别确定所述多个节点的第二上报顺序,包括:
根据多个节点分别对应的优先级级别确定所述多个节点的第四顺序;
当所述第四顺序中所述第M位与所述第M+1位是并列排序时,根据所述第四顺序以及所述各个节点在所述至少一个域中的出现次数、所述各个节点的节点标识中的至少一种,依次确定所述多个节点的第五顺序,直至所述第五顺序中所述第M位与所述第M+1位不是并列排序,将所述第五顺序作为所述第二上报顺序,所述各个节点在所述至少一个域中的出现次数根据所述各个节点所在域的域标识的数量确定得到。
7.根据权利要求5或6所述的方法,其特征在于,所述通过所述目标节点上报所述目标节点对应的目标域内的拓扑信息之后,还包括:
当上报的拓扑信息少于所述多个节点对应的拓扑信息时,获取所述上报的拓扑信息与所述多个节点的拓扑信息之间相差的参考拓扑信息;
根据所述参考拓扑信息包括的节点的上报参考信息再次确定目标节点,通过再次确定的目标节点上报对应的拓扑信息,直至上报的拓扑信息的总和大于等于所述多个节点对应的拓扑信息。
8.根据权利要求4-7任一所述的方法,其特征在于,所述网络设备为决策节点,所述决策节点为所述多个节点中的任一节点或反射路由器;
所述通过所述目标节点上报所述目标节点对应的目标域内的拓扑信息,包括:
发送第二报文,所述第二报文包括所述目标节点的节点标识和所述目标节点对应的目标域的域标识,所述第二报文用于所述目标节点在接收到所述第二报文后,上报所述目标域内的拓扑信息。
9.根据权利要求1-8任一所述的方法,其特征在于,所述通过所述目标节点上报所述目标节点对应的目标域内的拓扑信息之后,还包括:
当所述多个节点的上报参考信息变更或者所述目标节点故障中的至少一种情况发生时,基于变更后的上报参考信息或者未发生故障的节点的上报参考信息中的至少一种,重新在所述多个节点中选择满足所述上报条件的目标节点,通过重新选择的目标节点上报所述重新选择的目标节点对应的目标域内的拓扑信息。
10.根据权利要求1-9任一所述的方法,其特征在于,所述获取使能边界网关协议链路状态BGP-LS能力的多个节点分别对应的上报参考信息,包括:
获取使能BGP-LS能力的多个节点生成的第一报文,所述第一报文为中间系统到中间系统ISIS报文、开放式最短路径优先OSPF报文或者网络层可达信息NLRI报文,任一节点生成的第一报文包括所述任一节点的上报参考信息;
基于所述多个节点生成的第一报文分别包括的上报参考信息,获取所述多个节点分别对应的上报参考信息。
11.一种拓扑信息的上报装置,其特征在于,应用于网络设备,所述装置包括:
获取模块,用于获取使能边界网关协议链路状态BGP-LS能力的多个节点分别对应的上报参考信息,所述多个节点中的每个节点收集有所在域内的拓扑信息;
选择模块,用于基于所述多个节点分别对应的上报参考信息在所述多个节点中选择满足上报条件的目标节点;
上报模块,用于通过所述目标节点上报所述目标节点对应的目标域内的拓扑信息,所述目标域为所述目标节点所在域内的至少一个域。
12.根据权利要求11所述的装置,其特征在于,所述多个节点建立有BGP-LS邻居,所述上报参考信息包括优先级级别,所述多个节点属于至少一个域;
所述选择模块,用于对于所述至少一个域中的任一域包括的多个第一节点,根据各个第一节点的优先级级别确定所述多个第一节点的第一上报顺序,所述第一上报顺序用于指示所述多个第一节点中被选择为所述目标节点的先后顺序,所述上报条件为在所述第一上报顺序中的位置位于前N位,所述第一上报顺序中第N位与第N+1位不是并列排序,N为正整数;将所述第一上报顺序中排在前N位的节点作为所述任一域对应的参考节点;将所述至少一个域分别对应的参考节点作为所述目标节点。
13.根据权利要求12所述的装置,其特征在于,所述上报参考信息还包括用于指示是否为边界节点的第一信息、用于指示是否使能互联网通信协议第四版IPv4 BGP-LS的第二信息、用于指示是否使能互联网通信协议第六版IPv6 BGP-LS的第三信息或节点标识中的至少一种;
所述选择模块,用于根据各个第一节点的优先级级别确定所述多个第一节点的第一顺序;当所述第一顺序中所述第N位与所述第N+1位是并列排序时,根据所述第一顺序以及所述第一信息、所述第二信息、所述第三信息、各个第一节点的节点标识中的至少一种,依次确定所述多个第一节点的第二顺序,直至所述第二顺序中所述第N位与所述第N+1位不是并列排序,将所述第二顺序作为所述第一上报顺序。
14.根据权利要求12所述的装置,其特征在于,所述上报参考信息还包括节点所在域的域标识或节点标识中的至少一种;
所述选择模块,用于根据各个第一节点的优先级级别确定所述多个第一节点的第一顺序;当所述第一顺序中所述第N位与所述第N+1位是并列排序时,根据所述第一顺序以及所述各个第一节点在所述至少一个域中的出现次数、所述各个第一节点的节点标识中的至少一种,依次确定所述多个第一节点的第三顺序,直至所述第三顺序中所述第N位与所述第N+1位不是并列排序,将所述第三顺序作为所述第一上报顺序,所述第一节点在所述至少一个域中的出现次数根据所述第一节点所在域的域标识的数量确定得到。
15.根据权利要求11所述的装置,其特征在于,所述多个节点之间建立有BGP-LS邻居,所述上报参考信息包括优先级级别,所述多个节点属于至少一个域;
所述选择模块,用于根据所述多个节点分别对应的优先级级别确定所述多个节点的第二上报顺序,所述第二上报顺序用于指示所述多个节点中被选择为所述目标节点的先后顺序,所述上报条件为在所述第二上报顺序中排在前M位,所述第二上报顺序中第M位与第M+1位不是并列排序,M为正整数;将所述第二上报顺序中排在前M位的节点作为所述目标节点。
16.根据权利要求15所述的装置,其特征在于,所述上报参考信息还包括节点所在域的域标识或节点标识中的至少一种;
所述选择模块,用于根据多个节点分别对应的优先级级别确定所述多个节点的第四顺序;当所述第四顺序中所述第M位与所述第M+1位是并列排序时,根据所述第四顺序以及所述各个节点在所述至少一个域中的出现次数、所述各个节点的节点标识中的至少一种,依次确定所述多个节点的第五顺序,直至所述第五顺序中所述第M位与所述第M+1位不是并列排序,将所述第五顺序作为所述第二上报顺序,所述各个节点在所述至少一个域中的出现次数根据所述各个节点所在域的域标识的数量确定得到。
17.根据权利要求15或16所述的装置,其特征在于,所述获取模块,还用于当上报的拓扑信息少于所述多个节点对应的拓扑信息时,获取所述上报的拓扑信息与所述多个节点的拓扑信息之间相差的参考拓扑信息;
所述选择模块,还用于根据所述参考拓扑信息包括的节点的上报参考信息再次确定目标节点,通过再次确定的目标节点上报对应的拓扑信息,直至上报的拓扑信息的总和大于等于所述多个节点对应的拓扑信息。
18.根据权利要求14-17任一所述的装置,其特征在于,所述网络设备为决策节点,所述决策节点为所述多个节点中的任一节点或反射路由器;
所述上报模块,用于发送第二报文,所述第二报文包括所述目标节点的节点标识和所述目标节点对应的目标域的域标识,所述第二报文用于所述目标节点在接收到所述第二报文后,上报所述目标域内的拓扑信息。
19.根据权利要求11-18任一所述的装置,其特征在于,所述装置还包括:
重新选择模块,用于当所述多个节点的上报参考信息变更或者所述目标节点故障中的至少一种情况发生时,基于变更后的上报参考信息或者未发生故障的节点的上报参考信息中的至少一种,重新在所述多个节点中选择满足所述上报条件的目标节点,通过重新选择的目标节点上报所述重新选择的目标节点对应的目标域内的拓扑信息。
20.根据权利要求11-19任一所述的装置,其特征在于,所述获取模块,用于获取使能BGP-LS能力的多个节点生成的第一报文,所述第一报文为中间系统到中间系统ISIS报文、开放式最短路径优先OSPF报文或者网络层可达信息NLRI报文,任一节点生成的第一报文包括所述任一节点的上报参考信息;基于所述多个节点生成的第一报文分别包括的上报参考信息,获取所述多个节点分别对应的上报参考信息。
21.一种网络设备,其特征在于,所述网络设备包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条程序指令或代码,所述至少一条程序指令或代码由所述处理器加载并执行,以使所述网络设备实现权利要求1-10中任一所述的拓扑信息的上报方法。
22.一种计算机可读存储介质,其特征在于,所述计算机存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行,以使计算机实现如权利要求1-10中任一所述的拓扑信息的上报方法。
23.一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序代码,所述计算机程序代码由计算机加载并执行,以使所述计算机实现权利要求1-10中任一所述的拓扑信息的上报方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211348460.4A CN117955845A (zh) | 2022-10-31 | 2022-10-31 | 拓扑信息的上报方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211348460.4A CN117955845A (zh) | 2022-10-31 | 2022-10-31 | 拓扑信息的上报方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117955845A true CN117955845A (zh) | 2024-04-30 |
Family
ID=90796984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211348460.4A Pending CN117955845A (zh) | 2022-10-31 | 2022-10-31 | 拓扑信息的上报方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117955845A (zh) |
-
2022
- 2022-10-31 CN CN202211348460.4A patent/CN117955845A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9698994B2 (en) | Loop detection and repair in a multicast tree | |
CN113300949B (zh) | 转发报文的方法、发布路由信息的方法、装置及系统 | |
US20230122099A1 (en) | Packet Forwarding Method, Device, and System | |
CN112868214B (zh) | 分组内的协调负载转移oam记录 | |
US20230300070A1 (en) | Packet Sending Method, Device, and System | |
US20220255857A1 (en) | Packet Processing Method, Network Node, and System | |
US20220345404A1 (en) | Packet sending method, routing entry generation method, apparatus, and storage medium | |
CN114465943B (zh) | 拓扑信息的发布方法、网络拓扑收集方法及设备 | |
US20230291684A1 (en) | Packet transmission method and apparatus, device, and computer-readable storage medium | |
CN114650255B (zh) | 报文处理方法及网络设备 | |
US20230344751A1 (en) | Route Processing Method, Related Apparatus, and Network System | |
WO2022188530A1 (zh) | 一种路由处理方法及网络设备 | |
EP4207640A1 (en) | Path identifier allocation method, system, apparatus and device, and storage medium | |
CN117955845A (zh) | 拓扑信息的上报方法、装置、设备及存储介质 | |
CN114006854A (zh) | 通信方法及网络设备 | |
CN114629834B (zh) | 通信方法及装置 | |
US20230336458A1 (en) | Route Transmission Method and Apparatus | |
CN114025025B (zh) | SRv6 SID的发布方法及网络设备 | |
US20230224245A1 (en) | Packet Transmission Method and Apparatus | |
EP4369690A1 (en) | Method and apparatus for transmitting network layer readable information, device, system, and medium | |
CN113872843B (zh) | 一种路由生成方法、路由处理方法及装置 | |
US20230269174A1 (en) | Route Advertisement Method, Route Loop Check Method, and Device | |
CN115118651A (zh) | 用于获取路径的方法和装置 | |
CN114422435A (zh) | 接口地址的通告方法、网络设备可达性的校验方法及设备 | |
CN115473840A (zh) | 一种报文发布方法、转发路径处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |