确定下一跳的方法及装置与流程

文档序号:30172094发布日期:2022-05-26 10:47阅读:191来源:国知局
确定下一跳的方法及装置1.本技术要求于2020年10月30日提交国家知识产权局、申请号为202011193045.7、发明名称为“一种建立转发表的方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
:2.本发明涉及通信
技术领域
:,特别涉及一种确定下一跳的方法及装置。
背景技术
::3.在位索引显式复制(bitindexexplicitreplication,bier)域内,位转发入口路由器(bitforwardingingressrouter,bfir)或第一中间位转发路由器(transitbitforwardingrouter,transitbfr)可接收bier域内的其它bfr(比如第二中间bfr或位转发出口路由器(bitforwardingegressrouter,bfer))通过内部网关协议(internalgatewayprotocol,igp)泛洪的bier信息。该bier信息包括:发送该bier信息的bfr的bfr前缀(prefix)、一个或多个bfer的位转发路由器标识(bitforwardingrouteridentifier,bfr-id)和其bfrprefix。其中,bfrprefix表示该bfr在bier域内的地址。bfir或第一中间bfr可根据通过igp泛洪的bier信息获得位索引转发表(bitindexforwardingtable,bift)。bift表项包括转发位串掩码(forwardingbitmask,f-bm)和作为下一跳的bfr邻居(bfrneighbor,bfr-nbr)。f-bm包括的比特串(bitstring)中被置1的比特位与接收到的bier信息中的bfer对应。bfr-nbr中的地址为bier信息包括的发送该bier信息的bfr的bfrprefix。当bier域内存在两个中间bfr,比如第二bfr和第三bfr,发布的bier信息包括相同的bfer的参数,比如bfer的bfr-id和bfer的bierprefix,接收到来自第二bfr和第三bfr发布的bier信息的bfr,比如bfir或第一bfr,可根据最长匹配策略或等价多路径路由(equal-costmulti-pathrouting,ecmp)策略选择某个bfr发布的bier信息,目前确定下一跳的方法不够灵活。技术实现要素:4.本技术实施例提供了一种确定下一跳的方法及装置,能够提高灵活性。5.第一方面,提供一种确定下一跳的方法,其特征在于,所述方法应用于基于位索引转发路由bier域,包括:6.第三设备获取第一设备的第一bier信息、所述第一设备的属性、第二设备的第二bier信息和所述第二设备的属性,所述第一bier信息包括子域中的边缘位转发路由器bfr的位转发路由器标识bfr-id,所述第二bier信息包括所述子域中的所述边缘bfr的所述bfr-id;7.所述第三设备根据所述第一bier信息、所述第二bier信息、所述第一设备的属性和所述第二设备的属性,确定到达所述子域中的所述边缘bfr的下一跳。8.上述方法中,第三设备可基于第一设备的属性和第二设备的属性,灵活地选择到达子域的边缘bfr的下一跳,不局限于最长匹配策略或ecmp策略进行选择,提高了确定下一跳的灵活性。9.在一种可能的设计中,所述第一设备的属性和所述第二设备的属性包括第一标识,所述第一标识用于标识anycast的bfr前缀,所述方法还包括:所述第三设备在所述第一bier信息和所述第二bier信息相同,且所述第一设备的属性和所述第二设备的属性包括第一标识时,执行确定到达所述子域中所述边缘bfr的下一跳。10.在一种可能的设计中,所述第一设备的属性或所述第二设备的属性包括第一标识,所述第一标识用于标识anycast的bfr前缀,所述第三设备根据所述第一bier信息、所述第二bier信息、所述第一设备的属性和所述第二设备的属性,确定到达所述子域中的所述边缘bfr的下一跳包括:所述第三设备在所述第一bier信息和所述第二bier信息相同时,将属性包括所述第一标识的设备确定为下一跳。11.在一种可能的设计中,所述方法还包括:所述第三设备在所述第一bfr信息和所述第二bier信息相同,所述第一设备的属性和所述第二设备的属性均不包括第一标识时,输出告警,所述第一标识用于标识anycast的bfr前缀。12.在一种可能的设计中,所述第一设备的属性还包括所述第一设备的节点标识,所述第二设备的属性包括所述第二设备的节点标识,所述第三设备根据所述第一bier信息、所述第二bier信息、所述第一设备的属性和所述第二设备的属性,确定到达所述子域中的所述边缘bfr的下一跳包括:所述第三设备在所述第一bier信息与所述第二bier信息相同时,基于第一策略、所述第一设备的节点标识和所述第二设备的节点标识,确定所述第一设备和第二设备中的一个设备作为下一跳,所述第一策略包括将节点标识较大的设备作为下一跳或者将节点标识较小的设备作为下一跳。13.在一种可能的设计中,所述第一设备的属性还包括第二标识,所述第二设备的属性还包括第三标识,所述第二标识用于标识所述第一设备的优先级,所述第三标识用于标识所述第二设备的优先级,所述第三设备根据所述第一bier信息、所述第二bier信息、所述第一设备的属性和所述第二设备的属性,确定到达所述子域中的所述边缘bfr的下一跳包括:所述第三设备在所述第一bier信息与所述第二bier信息相同时,基于第二策略、所述第二标识和所述第三标识,确定所述第一设备和所述第二设备中的一个设备作为下一跳,所述第二策略包括将优先级较大的设备作为下一跳或者将优先级较小的设备作为下一跳。14.在一种可能的设计中,所述第一设备的属性包括所述第一设备的bfr前缀,所述第二设备的属性包括所述第二设备的bfr前缀,所述第一设备的bfr前缀与所述第二设备的bfr前缀不同,所述第三设备根据所述第一bier信息、所述第二bier信息、所述第一设备的属性和所述第二设备的属性,确定到达所述子域中的所述边缘bfr的下一跳包括:所述第三设备在所述第一bier信息和所述第二bier信息相同时,根据第三策略、第一链路的开销cost值和第二链路的cost值,确定所述第一设备和所述第二设备中的一个设备作为下一跳,所述第三策略包括将cost值较小的链路对端的设备作为下一跳或者将cost值较大的链路对端的设备作为下一跳,所述第一链路为所述第三设备到达所述第一设备的链路,所述第二链路为所述第三设备到达所述第二设备的链路。15.在一种可能的设计中,所述第一设备的属性包括所述第一设备的bfr前缀,所述第二设备的属性包括所述第二设备的bfr前缀,所述第一设备的bfr前缀与所述第二设备的bfr前缀不同,所述第三设备根据所述第一bier信息、所述第二bier信息、所述第一设备的属性和所述第二设备的属性,确定到达所述子域中的所述边缘bfr的下一跳包括:所述第三设备在所述第一bier信息和所述第二bier信息相同时,根据第四策略、所述第一设备的bfr前缀和所述第二设备的bfr前缀,确定所述第一设备和所述第二设备中的一个设备作为下一跳,所述第四策略包括将bfr前缀较小的设备作为下一跳或者将bfr前缀较大的设备作为下一跳。16.在一种可能的设计中,所述第一设备的属性包括所述第一设备的bfr前缀和所述第一设备的节点标识,所述第二设备的属性包括所述第二设备的bfr前缀和所述第二设备的节点标识,所述第一设备的bfr前缀与所述第二设备的bfr前缀不同,所述第三设备根据所述第一bier信息、所述第二bier信息、所述第一设备的属性和所述第二设备的属性,确定到达所述子域中的所述边缘bfr的下一跳包括:所述第三设备在所述第一bier信息和所述第二bier信息相同时,根据第一策略、所述第一设备的节点标识和所述第二节点的节点标识,确定第一设备和第二设备中的一个设备作为下一跳,所述第一策略包括将节点标识较大的设备作为下一跳或者将节点标识较小的设备作为下一跳。17.在一种可能的设计中,所述第一设备的属性包括所述第一设备的bfr前缀和第二标识,所述第二设备的属性包括所述第二设备的bfr前缀和第三标识,所述第二标识用于标识所述第一设备的优先级,所述第三标识用于标识所述第二设备的优先级,所述第一设备的bfr前缀与所述第二设备的bfr前缀不同,所述第三设备根据所述第一bier信息、所述第二bier信息、所述第一设备的属性和所述第二设备的属性,确定到达所述子域中的所述边缘bfr的下一跳包括:所述第三设备在所述第一bier信息和所述第二bier信息相同时,根据第二策略、所述第二标识和所述第三标识,确定第一设备和第二设备中的一个设备作为下一跳,所述第二策略包括将优先级较大的设备作为下一跳或者将优先级较小的设备作为下一跳。18.第二方面,提供一种确定下一跳的装置,该装置包括实现第一方面或第一方面任一种可能的设计所包括的步骤的功能的单元。19.第三方面,提供一种系统,所述系统包括如上述第二方面或第二方面任一种可能设计提供的确定下一跳的装置。20.第四方面,提供一种芯片,所述芯片包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于从所述存储器中调用并运行所述计算机指令,以执行上述第一方面或第一方面任一可能的实现方式提供的确定下一跳的方法。21.第五方面,提供一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并执行时,使得所述计算机执行上述第一方面或第一方面任一可能的实现方式提供的确定下一跳的方法。22.第六方面,提供一种计算机可读存储介质,所述计算机可读存储介质用于存储指令,所述指令中包括用于执行上述第一方面或第一方面任一可能的实现方式提供的确定下一套的方法所设计的程序。附图说明23.图1为一种网络场景示意图。24.图2为本技术实施例一提供的确定下一跳的方法的流程示意图。25.图3为本技术实施例二提供的确定下一跳的方法的流程示意图。26.图4为本技术实施例三提供的一种报文格式。27.图5为本技术实施例四提供的一种报文格式。28.图6为本技术实施例四提供的另一种报文格式。29.图7为本技术实施例五提供的一种报文格式。30.图8为本技术实施例提供的一种确定下一跳的装置的结构示意图。31.图9为本技术实施例提供的另一种确定下一跳的装置的结构示意图。具体实施方式32.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。33.图1为一种网络场景示意图。图1所示的网络场景中,r1、r2、r3、r4、r5、r11、r12、r13、r21、r22和r23表示bier域内的bfr。其中,r1、r2、r3、r4和r5处于同一igp域内,该区域可以称为区域a1。r1被配置的bfr-id的数值为1。r2被配置的bfr-id的数值为2。r3被配置的bfr-id的数值为3。r4被配置的bfr-id的数值为4。r5被配置的bfr-id的数值为5。r3、r4和r5为边缘bfr。r1和r2可作为区域边界路由器(areaborderrouter,abr)。当r1和r2不作为bfer时,r1和r2不需要配置bfr-id或者被配置的bfr-id属于无效值。r11、r12和r13处于同一igp域内,该区域可以称为区域a10。r11、r12和r13均为边缘bfr,比如bfer。r11被配置的bfr-id的数值为11。r12被配置的bfr-id的数值为12。r13被配置的bfr-id的数值为13。r21、r22和r23处于同一igp域内,该区域可以称为区域a20。r21、r22和r23均为边缘bfr,比如bfer。r21被配置的bfr-id的数值为21。r22被配置的bfr-id的数值为22。r23被配置的bfr-id的数值为23。在图1所示的场景中,r1和r2会将r11、r12、r13、r21、r22和r23的bier信息泛洪给a1域内的bfr,比如r3、r4和r5。r1和r2还会将r3、r4和r5的bier信息泛洪给a10域内的bfr,比如r11、r12和r13,以及a20域内的bfr,比如r21、r22和r23。r1和r2向a1域内的bfr发布获取的bier信息的方法,与向a10域内的bfr和a20域内的bfr发布获取的bier信息的方法相同,下述以r1和r2向a1域内的bfr发布获取的bier信息的方法为例进行说明。34.在图1所示的场景中,r1和r2可直接或间接从区域a10的bfr和区域a20的bfr获取作为边缘bfr的bfr-id,比如数值为11、12、13、21、22和23的bfr-id。r1向区域a1发布的bier信息包括:数值为11、12、13、21、22和23的bfr-id。r2向区域a1发布的bier信息包括:数值为11、12、13、21、22和23的bfr-id。其中,r1和r2可通过bfr-idrange的sub-tlv发布数值为11、12、13、21、22和23的bfr-id。bfr-idrange的sub-tlv可通过draft-ietf-bier-prefix-redistribute-00所定义的bierproxyrangesub-tlv来携带。比如:bierproxyrangesub-tlv可包括bfr-id=11和range=3,该sub-tlv表示bfr-id从11开始的3个bfr-id,即bfr-id为11、12和13这三个数值。bierproxyrangesub-tlv还可包括bfr-id=21和range=3,该sub-tlv表示bfr-id从21开始的3个bfr-id,即bfr-id为21、22和23这三个数值。当r1和r2中的一个或多个可作为bfer时,作为bfer的设备可将其自身配置的bfr-id携带在发布的bier信息中。比如,r1可作为bfer时,r1向区域a1发布的bier信息还包括r1被分配的有效的bfr-id。r2可作为bfer时,r2向区域a1发布的bier信息还包括r2被分配的有效的bfr-id。在一种可能的实现方式中,r1发布bier信息时可以使用r1的主机前缀。r2发布bier信息时可以使用r2的主机前缀。上述主机前缀在第四版互联网协议(internetprotocolversion4,ipv4)网络下是一个32位掩码的前缀,其信息为一个完整的ipv4地址。或者上述主机前缀在第六版互联网协议(internetprotocolversion6,ipv6)网络下是一个128位掩码的前缀,其信息为一个完整的ipv6地址。在另一种可能的实现方式中,r1向区域a1发布bier信息可以使用代表r1的非主机路由前缀,例如,一个64掩码的ipv6地址作为locator标识r1;或者draft-ietf-bier-prefix-redistribute-00使用一个聚合的路由或者默认路由来携带r1发布的bier信息。r2向区域a1发布bier信息可以使用代表r2的非主机路由前缀,例如一个64掩码的ipv6地址作为locator标识r2;或者draft-ietf-bier-prefix-redistribute-00使用一个聚合的路由或者默认路由来携带r2发布的bier信息。35.图1中的r1可分别接收区域a10中的r11、r12和r13发布的自身的bfr-id,接收区域a20中的r21、r22和r23发布的自身的bfr-id,还会接收r2发布的bier信息。以数值为11的bfr-id为例,r11将r11的ip地址作为bfr-prefix,与数值为11的bfr-id一起发布。例如rfc8401所定义的bier-infosub-tlv(type值为32)携带在isis的type=135、235、236和237消息中,或者rfc8444所定义的biersub-tlv(type值为9)携带在ospfv2extendedprefixtlv中。上述sub-tlv可用于携带r11的ip地址和数值为11的bfr-id。r1发布的信息可表示为(bfr-prefix=r11的ip地址,bier-info《sub-domain=0,bfr-id=11》)。r2发布的r11的bfr-id可以采用draft-ietf-bier-prefix-redistribute-00所定义的bierproxyrangesub-tlv中携带,该tlv还可携带数值为r2的ip地址的bfr-prefix。r2发布的信息可表示为(bfr-prefix=2.2.2.2,bier-info《sub-domain=0,bfr-id=2》,bfr-id-range《bfr-id-range=11to13,21to23》);其中,2.2.2.2是r2的ip地址,bfr-id=2是r2的有效bfr-id值。r1优先采用r11通过bier-infotlv或biersub-tlv发布的信息建立到达r11的位索引路由表(bitindexroutingtable,birt)表项和位索引转发表(bitindexforwardingtable,bift)表项。r1所建立的到达r11的birt表项和bift表项包括数值为11的bfr-id,下一跳均为r11的bfr-prefix,出接口均为r1连r11的接口。36.按照上述方法,r1会对bfr-id=12优先选择r12所发布的信息,建立到达bfr-id=12的birt表项和bift表项。r1所建立的到达r12的birt表项和bift表项包括数值为12的bfr-id,下一跳均为r12的bfr-prefix,出接口为r1连r12的接口。r1所建立的到达r13、r21、r22和r23的birt表项和bift表项的方法与建立上述birt表项和bift表项的方法相同,在此不再赘述。r2建立birt表项和bift表项的方法与r1所采用的方法相同,在此不再赘述。对于区域a1内的r3、r4和r5而言,上述任一设备均会收到r1所发布的bier信息和r2所发布的bier信息,当r1和r2发布的bier信息还包括r1的bfr-id时,r3、r4和r5均会根据r1发布的bfr-id=1建立到达r1的birt表项和bift表项,建立方法与上述r1采用的方法相同,此处不再赘述。当r1和r2发布的bier信息还包括r2的bfr-id时,r3、r4和r5均会根据r2发布的bfr-id=2建立到达r2的birt表项和bift表项,建立方法与上述r1采用的方法相同,此处不再赘述。birt表项包括到达bfr-id的下一跳节点信息,可以用(bfr-id,nexthop)表示,例如某一条birt表项包括(bfr-id=11,nexthop=r1),该birt表项表示到达bfr-id=11的bfer的下一跳为r1。bift表项包括到达bfr-id的下一跳节点信息以及转发位掩码(forwarding-bit-mask,fbm),可以用(bfr-id,nexthop,fbm)表示,例如某一条bift表项包括(bfr-id=11,nexthop=r1,fbm=01110000),其中fbm中的三个1bit位可以分别对应于bfr-id为11,12和13的bfer。37.对于区域a1内的r3、r4和r5而言,上述三台设备中的任一台设备会收到r1发布的bier信息和r2发布的bier信息。r1发布的bier信息和r2发布的bier信息均包括的数值为11、12、13、21、22和23的bfr-id。r3、r4或r5可根据发布数值为11、12、13、21、22和23的bfr-id的路由和最长匹配算法来确定下一跳和出端口,所选择bier信息的发布者并非性能最佳的设备,灵活性和转发性能有待提高。38.本技术实施例提供的方法,能够解决图1中r1和r2发布了相同的bfr-id的场景中,r3、r4和r5中的一台或多台如何选择性能最佳的下一跳这一问题。本技术实施例对于r1和r2均发布区域a10内的作为bfer的设备的bfr-id,区域a1中的r3和r4采用本技术实施例提供的方法选择下一跳为例进行说明。区域a1中的其它边缘bfr,比如r5所采用的方法与r3或r4采用的方法相同,本技术实施例对此不再赘述。对于r1和r2均发布区域a20内的作为bfer的设备的bfr-id,区域a1中的边缘bfr选择下一跳的方法可参见上述r3或r4所采用的方法,本技术实施例对此不再赘述。39.实施例一40.图2为本技术实施例一提供的确定下一跳方法的流程示意图。图2所示的方法中,图1中的r3和r4均会接收来自r1的属性、r2的属性、r1和r2发送的bier信息,r3或r4基于r1的属性、r2的属性、r1和r2发送的bier信息中确定下一跳。r1的属性和r2的属性的类型相同,但数值可以相同,也可以不同。r3或r4利用下一跳发送的bier信息生成用来转发bier报文的表项。用来转发bier报文的表项可以是bift表项和birt表项中的一个表项或多个表项。本技术实施例一是以r1和r2的bfr-prefix相同为例进行说明的。下面结合图1和图2,对本技术实施例一提供的确定下一跳的方法进行说明。41.s201,r1和r2使用相同的bfr-prefix来发布区域a10的边缘bfr的bfr-id。42.为了避免bier转发成环,r1和r2中的任一设备均不作为bfer使用,或者任一设备均未配置有效的bfr-id,或者任一设备均未配置非0的bfr-id时,r1和r2可被配置相同的bfr-prefix。图1所示的区域a10的边缘bfr包括r11、r12和r13。本技术实施例中的相同的bfr-prefix可用地址前缀表示,该bfr-prefix可以如rfc8401或rfc8444公开的ipv4地址或ipv6地址,或者该bfr-prefix可以是ipv6地址块。该ipv6地址块可以是64掩码的地址块。r1和r2通过内部网关协议(interiorgatewayprotocol,igp)向区域a1的r3发布的bier信息均包括数值为11、12和13的bfr-id。其中,r1和r2还通过igp向区域a1的r3发布各自的属性。r1的属性和r2的属性包括第一标识。该第一标识是用来标识为任播(anycast)的bfr-prefix。本技术实施例中r1发布的bier信息可为第一bier信息,r2发布的bier信息可为第二bier信息。其中,第一bier信息或第二bier信息包括的bfr-id可采用rfc8401或rfc8444中提及的方式发送,或者携带在draft-ietf-bier-prefix-redistribute-00的bfr-idrange中进行发送。r1和r2的bfr-prefix可通过adv-bfr-prefix字段携带发送。r1和r2的属性包括的第一标识可通过adv-anycast-flag字段携带发送。在一种可能的实现方式中,r1的属性还可包括r1的节点标识和用于标识优先级的第二标识中的一个或多个。r2的属性还可包括r2的节点标识和用于标识优先级的第三标识中的一个或多个。本技术实施例中的节点标识在中间系统到中间系统(intermediatesystemtointermediatesystem,isis)协议中是系统标识(system-id),在开放最短路径优先(openshortestpathfirst,ospf)协议中是路由标识(router-id)。上述节点标识可携带在adv-router-id字段中进行发送。上述第二标识和上述第三标识可携带在adv-admin-tag字段中进行发送。43.s202,r3根据接收到的r1的属性和r2的属性,判断是否告警,如果不进行告警,则执行s203。44.举例说明,基于图1的场景,r3收到来自r1的属性、来自r2的属性、来自r1的第一bier信息和来自r2的第二bier信息。r3收到的来自r2的第二bier信息可来自于r3与r1通信的接口和r3与r4通信的接口中的一个接口或多个接口。r3基于第一bier信息和第二bier信息确定r1和r2均可作为到达区域a10包括的边缘bfr的中间bfr。r3可判断r1的属性和r2的属性中是否存在第一标识。如果r1的属性和r2的属性均不包括第一标识,则r3确定配置错误,输出告警。如果r1的属性和r2的属性中的至少一个包括第一标识,则r3法确定配置正确,执行s203。其中,输出告警的方式可通过网络配置协议(networkconfigurationprotocol,netconf)向网管设备或者其他管理设备输出告警。45.s203,r3确定到达区域a10包括的边缘bfr的下一跳。46.在一种可能的实现方式中,当r1的属性或r2的属性包括第一标识,则r3将下一跳确定为携带有第一标识的属性对应的设备,比如:r1发布的属性包括第一标识,而r2发布的属性不包括第一标识,则r3将到达区域a10的边缘bfr的下一跳设为r1,则r3获取的与区域a10的边缘bfr对应的birt表项或bift表项所包括的下一跳为r1,出接口为r3与r1通信的接口。r2发布的属性包括第一标识,而r1发布的属性不包括第一标识,则r3将到达区域a10的边缘bfr的下一跳设备r2,则r3获取的与区域a10的边缘bfr对应的birt表项或bift表项所包括的下一跳为r2,出接口为r3上能够与r2通信的接口。在图1所示的场景中,r3上能够与r2通信的接口包括了r3与r1通信的接口和r3与r4通信的接口,具体可参见s202的内容。r3在确定能够与r2通信的接口时,可根据链路开销(cost)或者链路状态来选择能够与r2通信的接口。其中,birt表项和bifr表项可采用以下示例:47.birt表项可采用以下方式:48.(bfr-id=11,nexthop=r4)49.(bfr-id=12,nexthop=r4)50.(bfr-id=13,nexthop=r4)51.bift表项可采用以下方式:52.(bfr-id=11,nexthop=r4,fbm=01110000)53.(bfr-id=12,nexthop=r4,fbm=01110000)54.(bfr-id=13,nexthop=r4,fbm=01110000)55.在另一种可能的实现方式中,当r1的属性和r2的属性均包括第一标识,则r3可采用以下几种方式来确定下一跳:56.方式一,r1的属性包括r1的节点标识,r2的属性包括r2的节点标识,在r1的节点标识和r2的节点标识不同时,r3可根据第一策略、r1的节点标识和r2的节点标识,从r1和r2中确定出作为下一跳的设备。第一策略可以是节点标识较大的设备作为下一跳,或者节点标识较小的设备作为下一跳。57.方式二,r1的属性包括r1的节点标识和第二标识,r2的属性包括r2的节点标识和第三标识,在r1的节点标识和r2的节点标识相同时,则r3可根据第二策略、第二标识和第三标识,从r1和r2中确定出作为下一跳的设备。第二策略可以是第二标识和第三标识中优先级较大的设备作为下一跳,或者第二策略可以是第二标识和第三标识中优先级较小的设备作为下一跳。58.方式三,r1的属性包括第二标识,r2的属性包括第三标识,第二标识所标识的优先级与第三标识所标识的优先级不同,r3可根据第二策略、第二标识和第三标识,从r1和r2中确定出作为下一跳的设备。59.方式四,r1的属性包括r1的节点标识和第二标识,r2的属性包括r2的节点标识和第三标识,在第二标识所标识的优先级和第三标识所标识的优先级相同时,则r3可根据第一策略、r1的节点标识和r2的节点标识,从r1和r2中确定出作为下一跳的设备。第一策略可以是节点标识较大的设备作为下一跳,或者节点标识较小的设备作为下一跳。60.方式五,r1的属性包括r1的节点标识和第二标识,r2的属性包括r2的节点标识和第三标识,当r1的节点标识和r2的节点标识均相同,且第二标识所标识的优先级和第三标识所标识的优先级相同时,r3可以从r1和r2中选择任一设备作为下一跳。61.可选地,r3在确定了下一跳之后,可获取用于转发bier报文的表项。用于转发bier报文的表项包括的下一跳为r3所确定的下一跳。62.s204,r4根据接收到的r1的属性和r2的属性,判断是否告警,如果不进行告警,则执行s205。63.举例说明,基于图1的场景,r4收到来自r1的属性、来自r2的属性、来自r1的第一bier信息和来自r2的第二bier信息。r4基于第一bier信息和第二bier信息确定r1和r2均可作为到达区域a10包括的边缘bfr的中间bfr。r4可判断r1的属性和r2的属性中是否存在第一标识。如果r1的属性和r2的属性均不存在第一标识,则r4确定配置错误,输出告警。如果r1的属性和r2的属性中的至少一个包括第一标识,则r4确定配置正确,执行s205。其中,输出告警的方式可参见r3所采用的方式。64.s205,r4确定到达区域a10包括的边缘bfr的下一跳。65.在一种可能的实现方式中,当r1的属性或r2的属性包括第一标识,则r4将下一跳确定为携带有第一标识的属性对应的设备,比如:r1发布的r1的属性包括第一标识,而r2发布的r2的属性不包括第一标识,则r4将到达区域a10的边缘bfr的下一跳设为r1,则r4获取的与区域a10的边缘bfr对应的birt表项或bift表项所包括的下一跳为r1,出接口为r4与r1通信的接口。r2发布的r2的属性包括第一标识,而r1发布的r1的属性不包括第一标识,则r4将到达区域a10的边缘bfr的下一跳设备r2,则r4获取的与区域a10的边缘bfr对应的birt表项或bift表项所包括的下一跳为r2,出接口为r4与r2通信的接口。其中,r4确定下一跳的方法可参见s203中r3确定下一跳所采用的方式一至方式五中的任一种方式。66.可选地,r4在确定了下一跳之后,可获取用于转发bier报文的表项。用于转发bier报文的表项包括的下一跳为r4所确定的下一跳。67.本技术实施例提供的方法中,r3或r4在向区域a10发送beir组播报文时,可利用上述获取的用于转发bier报文的表项,将组播报文发送给下一跳。而到达区域a10的边缘bfr的下一跳的确定方法较为灵活,且能够对于配置错误的情况提出告警。当采用优先级比较的方法时,可根据第二策略对性能较佳的设备的优先级进行设置,以便性能较佳的节点能够被确定为下一跳。当采用节点标识比较的方法时,可根据第一策略对性能较佳的设备的节点标识进行设置,以便性能较佳的节点能够被确定为下一跳。这样,本技术实施例提供的方法还能进一步基于性能较佳的下一跳,满足组播业务的性能需求,提高转发效率。68.实施例二69.图3为本技术实施例二提供的确定下一跳方法的流程示意图。图3所示的方法中,图1中的r3和r4均会接收来自r1的属性、来自r2的属性、r1和r2发送的bier信息,r3或r4基于r1的属性和r2的属性确定下一跳。r3或r4利用下一跳发送的bier信息生成用来转发bier报文的表项。用来转发bier报文的表项可以是bift表项和birt表项中的一个表项或多个表项。本技术实施例二是以r1和r2的bfr-prefix不同为例进行说明的。下面结合图1和图3,对本技术实施例二提供的确定下一跳方法进行说明。70.s301,r1和r2使用不同的bfr-prefix来发布区域a10的边缘bfr的bfr-id。71.举例说明,r1和r2可被配置不同的bfr-prefix,r1被配置的bfr-prefix可为第一地址,r2被配置的bfr-prefix可为第二地址。实施例二的bfr-prefix的含义与实施例一相同,在此不再赘述。图1所示的区域a10的边缘bfr包括r11、r12和r13。r1通过igp向区域a1的r3发布的第一bier信息包括数值为11、12和13的bfr-id。r1通过igp向区域a1的r3发布的r1的属性包括第一地址。r2通过igp向区域a1的r3发布的第二bier信息包括数值为11、12和13的bfr-id。r2通过igp向区域a1的r3发布的r2的属性包括第二地址。其中,第一bier信息或第二bier信息包括的bfr-id可采用rfc8401或rfc8444公开的方式发送,或者携带在draft-ietf-bier-prefix-redistribute-00的bfr-idrange中进行发送。bfr-prefix可通过adv-bfr-prefix字段携带发送。72.在一种可能的实现方式中,r1的属性还可包括r1的节点标识和用于标识优先级的第二标识中的一个或多个。r1的属性还可包括r2的节点标识和用于标识优先级的第三标识中的一个或多个。实施例二中的节点标识的含义可参见实施例一的相应内容,在此不再赘述。实施二中的用于标识优先级的标识的含义可参见实施例一的相应内容,在此不再赘述。上述节点标识可携带在adv-router-id字段中进行发送。上述第二标识和上述第三标识可携带在adv-admin-tag字段中进行发送。73.s302,r3根据接收到的r1的属性和r2的属性,确定下一跳。74.举例说明,基于图1的场景,r3收到来自r1的属性、来自r2的属性、来自r1的第一bier信息和来自r2的第二bier信息。r3收到的来自r2的第二bier信息可来自于r3与r1通信的接口和r3与r4通信的接口中的一个接口或多个接口。r3基于第一bier信息和第二bier信息,确定到达区域a10包括的边缘bfr所经过的中间bfr包括r1和r2。r3可基于r1的属性和r2的属性确定下一跳。可选地,r3在确定下一跳之后,将下一跳写入与区域a10的边缘bfr对应的birt表项或bift表项中。当r3确定下一跳是r2时,可采用实施例一中的方法确定能够与r2通信的接口,在此不再赘述。75.其中,r3可采用下述任一种方式或几种方式的组合,从r1和r2中确定作为下一跳的设备,具体如下:76.方式一,r1的属性包括r1的节点标识,r2的属性包括r2的节点标识,在r1的节点标识和r2的节点标识不同时,r3可根据第一策略、r1的节点标识和r2的节点标识,从r1和r2中确定出作为下一跳的设备。第一策略可以是节点标识较大的设备作为下一跳,或者节点标识较小的设备作为下一跳。77.方式二,r1的属性包括r1的节点标识和第二标识,r2的属性包括r2的节点标识和第三标识,在r1的节点标识和r2的节点标识相同时,则r3可根据第二策略、第二标识和第三标识,从r1和r2中确定出作为下一跳的设备。第二策略可以是第二标识和第三标识中优先级较大的设备作为下一跳,或者第二策略可以是第二标识和第三标识中优先级较小的设备作为下一跳。78.方式三,r1的属性包括第二标识,r2的属性包括第三标识,第二标识所标识的优先级与第三标识所标识的优先级不同,r3可根据第二策略、第二标识和第三标识,从r1和r2中确定出作为下一跳的设备。79.方式四,r1的属性包括r1的节点标识和第二标识,r2的属性包括r2的节点标识和第三标识,在第二标识所标识的优先级和第三标识所标识的优先级相同时,则r3可根据第一策略、r1的节点标识和r2的节点标识,从r1和r2中确定出作为下一跳的设备。80.方式五,r1的属性包括r1的节点标识和第二标识,r2的属性包括r2的节点标识和第三标识,当r1的节点标识和r2的节点标识均相同,且第二标识所标识的优先级和第三标识所标识的优先级相同时,r3可以从r1和r2中确定任一设备作为下一跳。81.方式六,r1的属性包括r1到达r3的cost值,r2的属性包括r2到达r3的cost值,r3可根据第四策略、r1到达r3的cost值和r2到达r3的cost值,从r1和r2中确定出作为下一跳的设备。其中,r2到达r3的cost值和r1到达r3的cost值。第四策略为选择cost值较小的设备作为下一跳,或者选择cost值较大的设备作为下一跳。当r3到达r1的cost值和r3到达r2的cost值相同时,可采用上述方式一至方式五中的一种或几种方式的组合来确定下一跳。对于方式六而言,当r1到达r3的cost值和2到达r3的cost值不同时,第一bier信息可无需携带第二标识,第二bier信息可无需携带第三标识。当r1到达r3的cost值和2到达r3的cost值不同时,即便r1的属性包括r1的节点标识,r2的属性包括r2的节点标识,r3可不对节点标识进行识别和比较,能够降低对r3的性能需求和提高表项获取效率。82.方式七,r1的属性包括r1的bfr-prefix,r2的属性包括r2的bfr-prefix,r3可根据第五策略、r1的bfr-prefix和r2的bfr-prefix,从r1和r2中确定出作为下一跳的设备。第五策略为选择bfr-prefix较小的设备作为下一跳,或者选择bfr-prefix较大的设备作为下一跳。对于方式七而言,r1的属性可无需携带第二标识,r2的属性可无需携带第三标识;即便r1的属性包括r1的节点标识,r2的属性包括r2的节点标识,r3可不对节点标识进行识别和比较。83.举例说明,当r3采用方式六无法确定下一跳时,可采用方式七确定下一跳。或者当r3采用方式六无法确定下一跳时,可采用方式一确定下一跳。或者当r3采用方式六和方式一无法确定下一跳时,可采用方式二确定下一跳。或者当r3采用方式六、方式一和方式二无法确定下一跳时,可采用方式七或方式五确定下一跳。或者当r3采用方式六无法确定下一跳时,可采用方式三确定下一跳。或者当r3采用方式六和方式三无法确定下一跳时,可采用方式四确定下一跳。或者当r3采用方式六、方式三和方式四无法确定下一跳是,可采用方式七或方式五确定下一跳。上述是对上述方式的组合进行举例说明,还可根据上述多种方式进行其它组合,本技术实施例对此不进行限定。84.s302,r4根据接收到的r1的属性和r2的属性,确定下一跳。85.举例说明,基于图1的场景,r4收到来自r1的第一bier信息和来自r2的第二bier信息,r4还接收到r1的属性和r2的属性。r4基于第一bier信息和第二bier信息,确定到达区域a10包括的边缘bfr所经过的中间bfr包括r1和r2。r4可采用与r3所采用的方法相同的方法,来确定下一跳,在此不再赘述。可选地,r4在确定下一跳之后,将下一跳写入与区域a10的边缘bfr对应的birt表项或bift表项中。86.本技术实施例提供的方法中,r3或r4在向区域a10发送组播报文时,可利用上述获取的用于转发bier报文的表项,将组播报文发送给下一跳。而到达区域a10的边缘bfr的下一跳的确定方法较为灵活,且能够对于配置错误的情况提出告警。当采用优先级比较的方法时,可根据第二策略对性能较佳的设备的优先级进行设置,以便性能较佳的节点能够被确定为下一跳。当采用节点标识比较的方法时,可根据第一策略对性能较佳的设备的节点标识进行设置,以便性能较佳的节点能够被确定为下一跳。这样,本技术实施例提供的方法还能进一步基于性能较佳的下一跳,满足组播业务的性能需求,提高转发效率。87.实施例三88.实施例三是在配置adv-admin-tag后,根据多个消息中adv-admin-tag的大小确定某个bfr-id的birt和bift。下面结合图1所示的场景,对相关设备的配置及处理方法进行说明:89.1、在r1上进行的配置:90.#接口1_to_2和1_to_3和1_to_4运行在isis的进程1上;91.isis192.interface1_to_393.interface1_to_294.interface1_to_495.interfaceloopback12001:1:1:1::10/12896.#接口1_to_11和1_to_21运行在isis的进程2上;97.isis298.interface1_to_1199.interface1_to_21100.interfaceloopback22001:1:1:1::20/128101.#bier的配置102.bier103.‑‑sub-domain1104.‑‑‑‑bfr-id1105.‑‑‑‑bfr-prefixinterfaceloopback1[advertise-policyply_1][0106]‑‑‑‑bfr-prefixinterfaceloopback2[advertise-policyply_2][0107]##定义将要发布到isis进程1的bfr-id范围及策略;[0108]advertise-policyply_1[0109]‑‑importbfr-id-range11to13[0110]‑‑importbfr-id-range21to23[0111]##定义将要发布到isis进程2的bfr-id范围及策略;[0112]advertise-policyply_2[0113]‑‑importbfr-id-range3to5[0114]举例说明,r1上向isis1进程(对应区域a1)发布bfr-id为11、12、13、21、22和23的第一bier信息,使用的是bfr-idrangesub-tlv。r1还会向isis1进程发布本节点的bfr-id为1的信息,使用的是rfc8401所定义的bier-infosub-tlv。r1向isis1进程发布的以上信息使用loopback1的ip地址2001:1:1:1::10作为bfr-prefix。图4是一个r1所发送的is-is消息携带一个bfr-idrangesub-tlv的示例,他们都是作为isisprefixtlv(tlv类型为135、235、236和237中的一种)的子tlv存在,其中的bfr-idrangesub-tlv可以是对draft-ietf-bier-prefix-redistribute-00中所定义的bierproxyrangesub-tlv。[0115]图4所示的报文格式可以是r1所发送的is-is消息携带一个bfr-idrangesub-tlv的另一个示例,其中,bfr-idrangesub-tlv是作为isisprefixtlv(tlv类型为135、235、236和237中的一种)的子tlv存在。路由器r1发布的消息中bfr-idrangesub-tlv包含bfr-idrange为11、12、13、21、22和23;其中的bfr-idrangesub-tlv可以是对draft-ietf-bier-prefix-redistribute-00中所定义的bierproxyrangesub-tlv修改而来。同理,r1向isis2进程(对应区域a10和a20)发布bfr-id为3、4或5的信息,使用的是bfr-idrangesub-tlv。r1还会向isis2进程发布本节点的bfr-id=1信息,使用的是rfc8401所定义的bier-infosub-tlv。r1向isis2进程发布的以上信息使用loopback2的ip地址2001:1:1:1::20作为bfr-prefix。[0116]2、在r2上做如下配置:[0117]#接口2_to_4和2_to_1运行在isis的进程1上;[0118]isis1[0119]interface2_to_4[0120]interface2_to_1[0121]interfaceloopback12001:2:2:2::10/128[0122]#接口1_to_13和1_to_23运行在isis的进程2上;[0123]isis2[0124]interface2_to_13[0125]interface2_to_23[0126]interfaceloopback22001:2:2:2::20/128[0127]#bier的配置;[0128]bier[0129]‑‑sub-domain1[0130]‑‑‑‑bfr-id1[0131]‑‑‑‑bfr-prefixinterfaceloopback1[advertise-policyply_1][0132]‑‑‑‑bfr-prefixinterfaceloopback2[advertise-policyply_2][0133]##定义将要发布到isis进程1的bfr-id范围及策略;[0134]advertise-policyply_1[0135]‑‑importbfr-id-range11to13[0136]‑‑importbfr-id-range21to23[0137]##定义将要发布到isis进程2的bfr-id范围及策略;[0138]advertise-policyply_2[0139]‑‑importbfr-id-range3to5[0140]举例说明,r2上向isis1进程(对应区域a1)发布bfr-id为11、12、13、21、22和23,使用的是bfr-idrangesub-tlv。r2还会向isis1进程发布本节点的bfr-id=2信息,使用的是rfc8401所定义的bier-infosub-tlv。r2向isis1进程发布的以上信息使用loopback1的ip地址2001:2:2:2::10作为bfr-prefix。同理,r2向isis2进程(对应区域a10和a20)发布bfr-id为3、4和5的信息,使用的是bfr-idrangesub-tlv。r2还会向isis2进程发布本节点的bfr-id=2信息,使用的是rfc8401所定义的bier-infosub-tlv。r2向isis2进程发布的以上信息使用loopback2的ip地址2001:2:2:2::20作为bfr-prefix。r2所采用的报文格式可以是图4所示的报文格式,在此不再赘述。[0141]3、区域a0内的路由器建立到bfr-id为11、12、13、21、22和23的下一跳路的方法可参考实施例一或实施例二的方法,在此不再赘述。[0142]实施例四[0143]本实施例四说明通过配置adv-admin-tag的方式并根据多个消息中adv-admin-tag的大小确定某个bfr-id的birr和bift包括的下一跳。下面结合图1所示的场景对实施例四的配置进行说明。[0144]1、在r1上做如下配置:[0145]#接口1_to_2和1_to_3和1_to_4运行在isis的进程1上;[0146]isis1[0147]interface1_to_3[0148]interface1_to_2[0149]interface1_to_4[0150]interfaceloopback12001:1:1:1::10/128[0151]#接口1_to_11和1_to_21运行在isis的进程2上;[0152]isis2[0153]interface1_to_11[0154]interface1_to_21[0155]interfaceloopback22001:1:1:1::20/128[0156]#bier的配置[0157]bier[0158]‑‑sub-domain1[0159]‑‑‑‑bfr-id1[0160]‑‑‑‑bfr-prefixinterfaceloopback1[advertise-policyply_1][0161]‑‑‑‑bfr-prefixinterfaceloopback2[advertise-policyply_2][0162]##定义将要发布到isis进程1的bfr-id范围及策略;[0163]advertise-policyply_1[0164]‑‑applyadministrative-tag1[0165]‑‑importbfr-id-range11to13[0166]‑‑importbfr-id-range21to23[0167]##定义将要发布到isis进程2的bfr-id范围及策略;[0168]advertise-policyply_2[0169]‑‑applyadministrative-tag1[0170]‑‑importbfr-id-range3to5[0171]举例说明,r1上向isis1进程(对应区域a1)发布bfr-id为11、12、13、21、22和23,并携带有值为1的administrative-tag,使用的是bfr-idrangesub-tlv。r1还会向isis1进程发布本节点的bfr-id=1信息,使用的是rfc8401所定义的bier-infosub-tlv。r1向isis1进程发布的以上信息使用loopback1的ip地址2001:1:1:1::10作为bfr-prefix。图5是一个r1所发送的is-is消息携带一个administrative-tag、一个bfr-idrangesub-tlv的示例,上述参数都是作为isisprefixtlv(tlv类型为135、235、236和237中的一种)的子tlv存在。其中的administrative-tag值用来作为bfr-idrangesub-tlv所包含的bfr-id的优选区分,例如r1发布的消息中bfr-idrangesub-tlv包含bfr-id为11、12、13、21、22和23,administrative-tag值为1。bfr-idrangesub-tlv可以是对draft-ietf-bier-prefix-redistribute-00中所定义的bierproxyrangesub-tlv。[0172]图5是一个r1所发送的is-is消息携带一个administrative-tag、一个bfr-idrangesub-tlv的另一个示例。其中,bfr-idrangesub-tlv是作为isisprefixtlv(tlv类型为135、235、236和237中的一种)的子tlv存在,而administrative-tag值则定义在bfr-idrangesub-tlv中。r1发布的消息中bfr-idrangesub-tlv包含bfr-idrange为11、12、13、21、22和23,administrative-tag值为1。其中一个isisprefixtlv下包含两个bfr-idrangesub-tlv。每个bfr-idrangesub-tlv中包含一个administrativetag及一个(bfr-id,bfr-idrange)元组。其中的bfr-idrangesub-tlv可以是对draft-ietf-bier-prefix-redistribute-00中所定义的bierproxyrangesub-tlv修改而来。也可以一个isisprefixtlv下可以有一个bfr-idrangesub-tlv、该bfr-idrangesub-tlv中包含一个administrativetag及两个(bfr-id,bfr-idrange)元组,如图6所示。[0173]同理,r1向isis2进程(对应区域a10和a20)发布bfr-id为3、4或5的信息并携带有值为1的administrative-tag,使用的是bfr-idrangesub-tlv。r1还会向isis2进程发布本节点的bfr-id=1信息,使用的是rfc8401所定义的bier-infosub-tlv。r1向isis2进程发布的以上信息使用loopback2的ip地址2001:1:1:1::20作为bfr-prefix。[0174]2、在r2上做如下配置:[0175]#接口2_to_4和2_to_1运行在isis的进程1上;[0176]isis1[0177]interface2_to_4[0178]interface2_to_1[0179]interfaceloopback12001:2:2:2::10/128[0180]#接口1_to_13和1_to_23运行在isis的进程2上;[0181]isis2[0182]interface2_to_13[0183]interface2_to_23[0184]interfaceloopback22001:2:2:2::20/128[0185]#bier的配置;[0186]bier[0187]‑‑sub-domain1[0188]‑‑‑‑bfr-id1[0189]‑‑‑‑bfr-prefixinterfaceloopback1[advertise-policyply_1][0190]‑‑‑‑bfr-prefixinterfaceloopback2[advertise-policyply_2][0191]##定义将要发布到isis进程1的bfr-id范围及策略;[0192]advertise-policyply_1[0193]‑‑applyadministrative-tag2[0194]‑‑importbfr-id-range11to13[0195]‑‑importbfr-id-range21to23[0196]##定义将要发布到isis进程2的bfr-id范围及策略;[0197]advertise-policyply_2[0198]‑‑applyadministrative-tag2[0199]‑‑importbfr-id-range3to5[0200]举例说明,r2上向isis1进程(对应区域a1)发布为11、12、13、21、22和23,并携带有值为2的administrative-tag,使用的是bfr-idrangesub-tlv。r2还会向isis1进程发布本节点的bfr-id=2信息,使用的是rfc8401所定义的bier-infosub-tlv。r2向isis1进程发布的以上信息使用loopback1的ip地址2001:2:2:2::10作为bfr-prefix。同理,r2向isis2进程(对应区域a10和a20)发布bfr-id为3、4和5的信息并携带有值为2的administrative-tag,使用的是bfr-idrangesub-tlv。r2还会向isis2进程发布本节点的bfr-id=2信息,使用的是rfc8401所定义的bier-infosub-tlv。r2向isis2进程发布的以上信息使用loopback2的ip地址2001:2:2:2::20作为bfr-prefix。r2也可采用图5或图6的报文格式来发布第二bier信息和r2的属性,在此不再赘述。[0201]3、区域a0内的路由器建立到bfr-id为11、12、13、21、22和23的下一跳路由及转发信息。具体可参见实施例一或实施例二中的相应内容,在此不再赘述。[0202]实施例五[0203]实施例五通过配置anycastbfr-prefix并配置相同的bier封装相关信息的方式,根据到该bfr-prefix的路由来确定某个bfr-id的birt和bift。在本实施例中,r1和r2都没有配置有效的bfr-id值(在bierinfosub-tlv中填写的bfr-id值是一个无效值0)。下面结合图1所示的场景对配置方法进行说明。[0204]1、在r1上做如下配置:[0205]#接口1_to_2和1_to_3和1_to_4运行在isis的进程1上;[0206]isis1[0207]interface1_to_3[0208]interface1_to_2[0209]interface1_to_4[0210]interfaceloopback12001:1:1:1::aaaaanycast[0211]#接口1_to_11和1_to_21运行在isis的进程2上;[0212]isis2[0213]interface1_to_11[0214]interface1_to_21[0215]interfaceloopback22001:1:1:1::bbbbanycast[0216]#bier的配置[0217]bier[0218]‑‑sub-domain1[0219]‑‑‑‑end-biersid2001:1:1:1::ab37anycast[0220]‑‑‑‑bift-id200001anycast[0221]‑‑‑‑bfr-prefixinterfaceloopback1[advertise-policyply_1][0222]‑‑‑‑bfr-prefixinterfaceloopback2[advertise-policyply_2][0223]##定义将要发布到isis进程1的bfr-id范围及策略;[0224]advertise-policyply_1[0225]‑‑applyanycast-flag[0226]‑‑importbfr-id-range11to13[0227]‑‑importbfr-id-range21to23[0228]##定义将要发布到isis进程2的bfr-id范围及策略;[0229]advertise-policyply_2[0230]‑‑applyanycast-flag[0231]‑‑importbfr-id-range3to5[0232]其中的一些配置含义如下:[0233]interfaceloopback12001:1:1:1::aaaaanycast表示所配置的ipv6地址是一个anycast地址,用作bier信息发布的bfr-prefix。[0234]interfaceloopback22001:1:1:1::bbbbanycast表示所配置的ipv6地址是一个anycast地址,用作bier信息发布的bfr-prefix。[0235]end-biersid2001:1:1:1::ab37anycast表示用于转发bier报文时的封装信息是一个anycast的信息,本例中的end-bier是一种用于bierv6封装时的bier报文封装信息。[0236]bift-id200001anycast表示用于转发bier报文时的封装信息是一个anycast的信息,本例中的bift-id是一种用于bierv6/bier-mpls封装时的bier报文封装信息,当用在bier-mpls封装时,该bift-id值是一个mpls标签,为了支持本方案中的anycast方法,需要手工配置r1和r2上使用相同的mpls标签,也就是配置相同的bift-id值。当用在non-mpls的封装或bierv6封装时,bift-id可以是一个根据bier的sub-domain-id、bitstringlengthid(bsl)、setidentifier(si)而自动生成的值,r1和r2上根据相同的规则生成的值相同,因此可以不需要额外配置。[0237]applyanycast-flag表示发布bier信息时携带anycast标记。[0238]举例说明,r1上向isis1进程(对应区域a1)发布bfr-id为11、12、13、21、22和23,并携带有anycast标记,使用的是bfr-idrangesub-tlv;r1还会向isis1进程发布本节点的bfr-id=0信息,使用的是rfc8401所定义的bier-infosub-tlv;r1向isis1进程发布的以上信息使用loopback1的ip地址2001:1:1:1::aaaa作为bfr-prefix。图7是一个r1所发送的is-is消息携带anycast标记、一个bfr-idrangesub-tlv的示例,都是作为isisprefixtlv(tlv类型为135、235、236和237中的一种)的子tlv存在,如图7所示。其中,携带anycast标记的是使用一个由draft-ietf-lsr-isis-srv6-extensions-11基于rfc7794的prefixattributeflagssub-tlv所定义的anycast标记位(sub-tlv的标记位字段的第4个bit),该标记位用在本方案中、作为bier信息发布及相应建立bier路由和bier转发信息的方法。[0239]2、在r2上做如下配置:[0240]#接口1_to_2和1_to_3和1_to_4运行在isis的进程1上;[0241]isis1[0242]interface2_to_4[0243]interface2_to_1[0244]interfaceloopback12001:1:1:1::aaaaanycast[0245]#接口1_to_11和1_to_21运行在isis的进程2上;[0246]isis2[0247]interface2_to_13[0248]interface2_to_23[0249]interfaceloopback22001:1:1:1::bbbbanycast[0250]#bier的配置[0251]bier[0252]‑‑sub-domain1[0253]‑‑‑‑end-biersid2001:1:1:1::ab37anycast[0254]‑‑‑‑bift-id200001anycast[0255]‑‑‑‑bfr-prefixinterfaceloopback1[advertise-policyply_1][0256]‑‑‑‑bfr-prefixinterfaceloopback2[advertise-policyply_2][0257]##定义将要发布到isis进程1的bfr-id范围及策略;[0258]advertise-policyply_1[0259]‑‑applyanycast-flag[0260]‑‑importbfr-id-range11to13[0261]‑‑importbfr-id-range21to23[0262]##定义将要发布到isis进程2的bfr-id范围及策略;[0263]advertise-policyply_2[0264]‑‑applyanycast-flag[0265]‑‑importbfr-id-range3to5[0266]相关配置的含义和r1类似,不再赘述。[0267]相应的,r2上向isis1进程(对应区域a1)发布bfr-id11、12、13、21、22和23,并携带有anycast标记,使用的是bfr-idrangesub-tlv;r2还会向isis1进程发布本节点的bfr-id=0信息,使用的是rfc8401所定义的bier-infosub-tlv;r2向isis1进程发布的以上信息使用loopback1的ip地址2001:1:1:1::aaaa作为bfr-prefix,这个bfr-prefix和r1所使用的bfr-prefix相同。r3、r4和r5收到以上r1和r2发布的信息,对于bfr-id=11而言,r1和r2使用的是相同的bfr-prefix发布并且携带有anycast标记,那么r3、r4和r5都对bfr-id=11按如下方式建立转发表:到bfr-prefix=2001:1:1:1::aaaa的下一跳作为bfr-id=11的路由表和转发表的下一跳。[0268]图8为本技术实施例提供的一种确定下一跳的装置。装置800可设置于上述实施例一至实施例五中任一实施例的区域a1中除r1和r2的边缘bfr,比如r3、r4或r5。本技术是实例提及的第一设备可以是上述实施例一至实施例五中任一实施例的r1,第二设备可以是上述实施例一至实施例五中任一实施例的r2。装置800设于基于位索引转发路由bier域,包括:获取单元801和确定单元802。[0269]举例说明,获取单元801用于获取第一设备的第一bier信息、所述第一设备的属性、第二设备的第二bier信息和所述第二设备的属性,所述第一bier信息包括子域中的边缘位转发路由器bfr的位转发路由器标识bfr-id,所述第二bier信息包括所述子域中的所述边缘bfr的所述bfr-id。确定单元802用于根据所述第一bier信息、所述第二bier信息、所述第一设备的属性和所述第二设备的属性,确定到达所述子域中的所述边缘bfr的下一跳。[0270]在一种可能的实现方式中,所述第一设备的属性和所述第二设备的属性包括第一标识,所述第一标识用于标识anycast的bfr前缀,所述装置还包括:识别单元。识别单元用于在所述第一bier信息和所述第二bier信息相同,且所述第一设备的属性和所述第二设备的属性包括第一标识时,执行确定到达所述子域的所述bfr的下一跳。[0271]在一种可能的实现方式中,所述第一设备的属性或所述第二设备的属性包括第一标识,所述第一标识用于标识anycast的bfr前缀,所述确定单元802具体用于在所述第一bier信息和所述第二bier信息相同时,将属性包括所述第一标识的设备确定为下一跳。[0272]在一种可能的实现方式中,所述装置还包括:输出单元。输出单元用于确在所述第一bfr信息和所述第二bier信息相同,所述第一设备的属性和所述第二设备的属性均不包括第一标识时,输出告警。[0273]在一种可能的实现方式中,所述第一设备的属性还包括所述第一设备的节点标识,所述第二设备的属性包括所述第二设备的节点标识,所述确定单元802具体用于:在所述第一bier信息与所述第二bier信息相同时,基于第一策略、所述第一设备的节点标识和所述第二设备的节点标识,确定所述第一设备和第二设备中的一个设备作为下一跳,所述第一策略包括将节点标识较大的设备作为下一跳或者将节点标识较小的设备作为下一跳。[0274]在一种可能的实现方式中,所述第一设备的属性还包括第二标识,所述第二设备的属性还包括第三标识,所述第二标识用于标识所述第一设备的优先级,所述第三标识用于标识所述第二设备的优先级,所述确定单元802具体用于:在所述第一bier信息与所述第二bier信息相同时,基于第二策略、所述第二标识和所述第三标识,确定所述第一设备和所述第二设备中的一个设备作为下一跳,所述第二策略包括将优先级较大的设备作为下一跳或者将优先级较小的设备作为下一跳。[0275]在一种可能的实现方式中,所述第一设备的属性包括所述第一设备的bfr前缀,所述第二设备的属性包括所述第二设备的bfr前缀,所述第一设备的bfr前缀与所述第二设备的bfr前缀不同,所述确定单元802具体用于:在所述第一bier信息和所述第二bier信息相同时,根据第三策略、第一链路的开销cost值和第二链路的cost值,确定所述第一设备和所述第二设备中的一个设备作为下一跳,所述第三策略包括将cost值较小的链路对端的设备作为下一跳或者将cost值较大的链路对端的设备作为下一跳,所述第一链路为所述第三设备到达所述第一设备的链路,所述第二链路为所述第三设备到达所述第二设备的链路。[0276]在一种可能的实现方式中,所述第一设备的属性包括所述第一设备的bfr前缀,所述第二设备的属性包括所述第二设备的bfr前缀,所述第一设备的bfr前缀与所述第二设备的bfr前缀不同,所述确定单元802具体用于:在所述第一bier信息和所述第二bier信息相同时,根据第四策略、所述第一设备的bfr前缀和所述第二设备的bfr前缀,确定所述第一设备和所述第二设备中的一个设备作为下一跳,所述第四策略包括将bfr前缀较小的设备作为下一跳或者将bfr前缀较大的设备作为下一跳。[0277]在一种可能的实现方式中,所述第一设备的属性包括所述第一设备的bfr前缀和所述第一设备的节点标识,所述第二设备的属性包括所述第二设备的bfr前缀和所述第二设备的节点标识,所述第一设备的bfr前缀与所述第二设备的bfr前缀不同,所述确定单元802具体用于:在所述第一bier信息和所述第二bier信息相同时,根据第一策略、所述第一设备的节点标识和所述第二节点的节点标识,确定第一设备和第二设备中的一个设备作为下一跳,所述第一策略包括将节点标识较大的设备作为下一跳或者将节点标识较小的设备作为下一跳。[0278]在一种可能的实现方式中,所述第一设备的属性包括所述第一设备的bfr前缀和第二标识,所述第二设备的属性包括所述第二设备的bfr前缀和第三标识,所述第二标识用于标识所述第一设备的优先级,所述第三标识用于标识所述第二设备的优先级,所述第一设备的bfr前缀与所述第二设备的bfr前缀不同,所述确定单元802具体用于:在所述第一bier信息和所述第二bier信息相同时,根据第二策略、所述第二标识和所述第三标识,确定第一设备和第二设备中的一个设备作为下一跳,所述第二策略包括将优先级较大的设备作为下一跳或者将优先级较小的设备作为下一跳。[0279]图9为本技术实施例提供的确定下一跳的装置的结构示意图。图9对应的实施例提供的确定下一跳的装置900可以是图8对应的实施例提供的确定下一跳的装置800。图9对应的实施例提供的确定下一跳的装置900是从硬件结构的角度进行的描述。确定下一跳的装置900包括处理器901、存储器902、通信总线904和通信接口903。所述处理器901、所述存储器902和所述通信接口903通过通信总线904连接。所述存储器902用于存储程序。当装置900设置于实施例一至实施例五中任一实施例提及的r3或r4时,所述处理器901根据从所述存储器902中读取的程序所包括的可执行指令,执行上述实施例一至实施例五中任一实施例r3或r4执行的方法。[0280]本技术实施例提供了一种系统,所述系统包括确定下一跳的装置800。确定下一跳的装置800可用于执行实施例一至实施例五中任一实施例提及的r3或r4所执行的方法。[0281]本技术实施例提供了一种芯片。所述芯片可包括图9所示的存储器901和处理器901。所述存储器902用于存储计算机指令。所述处理器901用于从所述存储器902中调用并运行所述计算机指令,以执行实施例一至实施例五中任一实施例提及的r3或r4所执行的方法。本技术实施例提供的芯片可以设置于转发硬件上或者转发硬件包括的转发电路集成于本技术实施例提供的芯片。[0282]本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包括,例如,包括了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。[0283]本技术中“至少一项(个)”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。本技术中认为“a和/或b”包括单独a,单独b,和a+b。[0284]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0285]在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑模块划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0286]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要获取其中的部分或者全部单元来实现本实施例方案的目的。[0287]另外,在本技术各个实施例中的各模块单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件模块单元的形式实现。[0288]所述集成的单元如果以软件模块单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。[0289]本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。[0290]以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已。[0291]以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1