CN117478503A - 一种组播配置方法及装置 - Google Patents
一种组播配置方法及装置 Download PDFInfo
- Publication number
- CN117478503A CN117478503A CN202211512828.6A CN202211512828A CN117478503A CN 117478503 A CN117478503 A CN 117478503A CN 202211512828 A CN202211512828 A CN 202211512828A CN 117478503 A CN117478503 A CN 117478503A
- Authority
- CN
- China
- Prior art keywords
- network device
- vpn
- bier
- tunnel
- multicast
- 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 88
- 238000012545 processing Methods 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 9
- 230000010076 replication Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 abstract description 6
- 229920006235 chlorinated polyethylene elastomer Polymers 0.000 description 205
- 238000005538 encapsulation Methods 0.000 description 101
- 238000010586 diagram Methods 0.000 description 53
- 230000005540 biological transmission Effects 0.000 description 25
- 238000000136 cloud-point extraction Methods 0.000 description 17
- 238000011144 upstream manufacturing Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 101100042631 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SIN3 gene Proteins 0.000 description 13
- 230000011664 signaling Effects 0.000 description 12
- 230000006855 networking Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000002955 isolation Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- HRULVFRXEOZUMJ-UHFFFAOYSA-K potassium;disodium;2-(4-chloro-2-methylphenoxy)propanoate;methyl-dioxido-oxo-$l^{5}-arsane Chemical compound [Na+].[Na+].[K+].C[As]([O-])([O-])=O.[O-]C(=O)C(C)OC1=CC=C(Cl)C=C1C HRULVFRXEOZUMJ-UHFFFAOYSA-K 0.000 description 6
- 235000008694 Humulus lupulus Nutrition 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004806 packaging method and process Methods 0.000 description 5
- 101000935846 Magnetospirillum magnetotacticum Bacterioferritin subunit 1 Proteins 0.000 description 4
- 101000935838 Magnetospirillum magnetotacticum Putative bacterioferritin subunit 2 Proteins 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 101100339496 Caenorhabditis elegans hop-1 gene Proteins 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- HEEACTTWORLLPM-UHFFFAOYSA-N 2-(1h-imidazol-5-yl)ethanol Chemical compound OCCC1=CNC=N1 HEEACTTWORLLPM-UHFFFAOYSA-N 0.000 description 1
- 241000854350 Enicospilus group Species 0.000 description 1
- 238000006424 Flood reaction Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 239000002957 persistent organic pollutant Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种组播配置方法及装置,属于数据通信领域。本申请通过在VPN内通告BFR prefix以及用于标识SD‑WAN隧道的参数,能够指示了BIER与SD‑WAN之间具有关联关系,即,如果需要到达某个BFR prefix,则要经过SD‑WAN隧道,因此有助于在SD‑WAN中基于BIER转发数据报文,使得SD‑WAN网络中的中间节点能够根据报文中比特串的置位情况,实现报文的复制转发,而无需感知组播组状态,也无需为每条组播数据流分别建立一个组播分发树,从而节省了SD‑WAN场景下转发组播流所占用的资源。
Description
本申请要求于2022年7月21日提交的申请号为202210865496.3、发明名称为“一种配置组播的方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据通信领域,特别涉及一种组播配置方法及装置。
背景技术
软件定义广域网(software-defined wide area network,SD-WAN)是一种实现不同站点之间跨广域网进行数据通信的技术。
目前在SD-WAN中部署组播业务时,通常在SD-WAN中每个站点内每个网络设备的WAN接口上部署PIM协议。各个网络设备首先基于协议无关组播(protocol independentmulticast,PIM)协议在WAN中传输PIM控制消息。各个网络设备基于PIM协议为每一个组播流建立组播分发树,并保存组播流的状态,基于组播分发树以及组播流的状态转发组播流。当有新的组播接收者加入时,则网络设备将加入消息逐跳传递给组播源连接的网络设备。
在SD-WAN场景下采用上述方法来部署组播业务时,作为中间节点的网络设备需要建立组播分发树并保存组播流的状态,导致占用的资源过多。
发明内容
本申请提供了一种组播配置方法及装置,能够节省SD-WAN场景下转发组播流所占用的资源。该技术方案如下。
第一方面,提供了一种组播配置方法,包括:虚拟专用网VPN内的第一网络设备获得第一参数集,该第一参数集包括该第一网络设备的比特转发路由器前缀BFR prefix以及用于标识软件定义广域网SD-WAN隧道的参数,该第一网络设备为该SD-WAN隧道的端点;该第一网络设备在该VPN内发送该第一参数集。
上述第一方面提供的方法中,转发设备通过在VPN内通告BFR prefix以及用于标识SD-WAN隧道的参数,能够指示了BIER与SD-WAN之间具有关联关系,即,如果需要到达某个BFR prefix,则要经过SD-WAN隧道,因此有助于在SD-WAN中基于BIER转发数据报文,使得SD-WAN网络中的中间节点能够根据报文中比特串的置位情况,实现报文的复制转发,而无需感知组播组状态,也无需为每条组播数据流分别建立一个组播分发树,从而节省了SD-WAN场景下转发组播流所占用的资源。
在一些实施方式中,该第一参数集还包括该第一网络设备的BIER转发路由器标识符BFR-ID。
在一些实施方式中,该第一网络设备的BFR prefix为该第一网络设备在该VPN内的私网互联网协议IP地址。
通过将VPN内的私网IP地址作为BFR prefix,使得路由可达至该私网IP地址的设备才会接收到第一参数集,从而实现将参数集的发送范围限制为VPN内。
在一些实施方式中,该第一参数集还包括该第一网络设备的比特串长度BSL、该第一网络设备的集合标识最大值max-SI、该第一网络设备所在的BIER子域的ID、该第一网络设备的比特索引转发表标识BIFT-ID以及该VPN的标识中的一个或多个。
在一些实施方式中,该用于标识SD-WAN隧道的参数包括第一隧道类型以及第一信息,该第一隧道类型用于标识隧道的类型为SD-WAN隧道,该第一信息用于确定该SD-WAN隧道。
在一些实施方式中,该第一信息包括该第一网络设备所处的站点的标识或者该第一网络设备的用户端设备标识CPE ID中至少一项。
在一些实施方式中,该第一网络设备在该VPN内发送该第一参数集,包括:
该第一网络设备向该VPN内的第二网络设备发送该第一参数集,该第二网络设备为该SD-WAN隧道的另一个端点;或者,
该第一网络设备向路由反射器RR发送该第一参数集,以使该RR将该第一参数集反射至该VPN内的第二网络设备,该第二网络设备为该SD-WAN隧道的另一个端点。
在一些实施方式中,该第一网络设备在该VPN内发送该第一参数集,包括:该第一网络设备在该VPN内发送第一通告报文,该第一通告报文包括第一地址族标识以及该第一参数集,该第一地址族标识用于标识边界网关协议以太虚拟专用网络BGP EVPN或者边界网关协议虚拟专用网络基于比特位的显式复制BGP VPN BIER。
在一些实施方式中,该方法还包括:该第一网络设备获得第二参数集,该第二参数集包括组播源组信息、该第一网络设备的BFR prefix以及第二隧道类型,该第二隧道类型用于标识该第一网络设备与该VPN内第二网络设备之间的隧道为VPN BIER隧道;
该第一网络设备向该第二网络设备发送该第二参数集。
在一些实施方式中,该第二参数集还包括该第一网络设备的比特转发路由器BFR-ID、该VPN的标识、该第二网络设备所处的站点的标识以及该第二网络设备的CPE ID中的一个或多个。
在一些实施方式中,该第一网络设备向该第二网络设备发送该第二参数集,包括:该第一网络设备向该第二网络设备发送第二通告报文,该第二通告报文包括第二地址族标识以及该第二参数集,该第二地址族标识用于标识下一代组播虚拟专用网络NG MVPN或者BGP EVPN。
在一些实施方式中,该第二通告报文包括组播提供商服务接口隧道属性PTA属性,该PTA属性包括MPLS标签MPLS label字段,该MPLS label字段包括该VPN的标识。
在一些实施方式中,该第一网络设备获得第二参数集之前,该方法还包括:该第一网络设备接收来自该VPN内组播接收者的加入消息,该加入消息包括该组播源组信息;或者,该第一网络设备接收来自该VPN内组播接收者的离开消息,该离开消息包括该组播源组信息。
第二方面,提供了一种处理组播报文的方法,包括:
虚拟专用网VPN内的第一网络设备接收第一组播数据报文;该第一网络设备基于该第一组播数据报文和第一参数集,获得第二组播数据报文,该第一参数集包括该VPN内第二网络设备的比特转发路由器前缀BFR prefix以及用于标识软件定义广域网SD-WAN隧道的参数,该第二网络设备为该SD-WAN隧道的端点,该第二组播数据报文包括第一报文头、第二报文头和该第一组播数据报文的载荷,该第一报文头包括基于该用于标识SD-WAN隧道的参数获得的该第二网络设备的IP地址,该第二报文头包括基于该第二网络设备的BFRprefix获取的基于比特位的显式复制BIER参数;该第一网络设备通过该SD-WAN隧道向该第二网络设备发送该第二组播数据报文。
通过第二方面提供的方法,实现了SD-WAN和BIER组播结合的报文转发方式,使得BIER封装的组播数据可以穿越传输网络转发,SD-WAN网络中的中间节点能够根据报文中比特串的置位情况,实现报文的复制转发,而无需感知组播组状态,也无需为每条组播数据流分别建立一个组播分发树,从而节省了SD-WAN场景下转发组播流所占用的资源。
在一些实施方式中,该第一参数集还包括:该第二网络设备的BIER转发路由器标识符BFR-ID、该第二网络设备的比特串长度BSL、该第二网络设备的集合标识最大值max-SI、该第二网络设备所在的BIER子域的ID、该第二网络设备的比特索引转发表标识BIFT-ID以及该VPN的标识中的一个或多个。
在一些实施方式中,该BIER参数包括与该第二网络设备的BFR prefix对应的比特串bitstring、与该第二网络设备的BFR prefix对应的BIER-MPLS标签、与该第二网络设备的BFR prefix对应的互联网协议第6版IPv6地址其中的一个或多个。
在一些实施方式中,该用于标识SD-WAN隧道的参数包括隧道类型以及用于确定该SD-WAN隧道的信息,该隧道类型用于标识隧道的类型为SD-WAN隧道。
在一些实施方式中,该用于确定该SD-WAN隧道的信息包括该第二网络设备所处的站点的标识或者该第二网络设备的用户端设备标识CPE ID中至少一项。
在一些实施方式中,该第一报文头包括协议类型字段,该协议类型字段用于标识携带该BIER参数的该第二报文头。
在一些实施方式中,该第一报文头还包括该VPN的ID。
第三方面,提供了一种组播配置装置,设于虚拟专用网VPN内的第一网络设备,包括:处理单元,用于获得第一参数集,该第一参数集包括该第一网络设备的比特转发路由器前缀BFR prefix以及用于标识软件定义广域网SD-WAN隧道的参数,该第一网络设备为该SD-WAN隧道的端点;发送单元,用于在该VPN内发送该第一参数集。
在一些实施方式中,该第一参数集还包括该第一网络设备的BIER转发路由器标识符BFR-ID。
在一些实施方式中,该第一网络设备的BFR prefix为该第一网络设备在该VPN内的私网互联网协议IP地址。
在一些实施方式中,该第一参数集还包括该第一网络设备的比特串长度BSL、该第一网络设备的集合标识最大值max-SI、该第一网络设备所在的BIER子域的ID、该第一网络设备的比特索引转发表标识BIFT-ID以及该VPN的标识中的一个或多个。
在一些实施方式中,该用于标识SD-WAN隧道的参数包括第一隧道类型以及第一信息,该第一隧道类型用于标识隧道的类型为SD-WAN隧道,该第一信息用于确定该SD-WAN隧道。
在一些实施方式中,该第一信息包括该第一网络设备所处的站点的标识或者该第一网络设备的用户端设备标识CPE ID中至少一项。
在一些实施方式中,该发送单元,用于向该VPN内的第二网络设备发送该第一参数集,该第二网络设备为该SD-WAN隧道的另一个端点;或者,向路由反射器RR发送该第一参数集,以使该RR将该第一参数集反射至该VPN内的第二网络设备,该第二网络设备为该SD-WAN隧道的另一个端点。
在一些实施方式中,该发送单元,用于在该VPN内发送第一通告报文,该第一通告报文包括第一地址族标识以及该第一参数集,该第一地址族标识用于标识边界网关协议以太虚拟专用网络BGP EVPN或者边界网关协议虚拟专用网络基于比特位的显式复制BGP VPNBIER。
在一些实施方式中,该处理单元,还用于获得第二参数集,该第二参数集包括组播源组信息、该第一网络设备的BFR prefix以及第二隧道类型,该第二隧道类型用于标识该第一网络设备与该VPN内第二网络设备之间的隧道为VPN BIER隧道;该发送单元,用于向该第二网络设备发送该第二参数集。
在一些实施方式中,该第二参数集还包括该第一网络设备的比特转发路由器BFR-ID、该VPN的标识、该第二网络设备所处的站点的标识以及该第二网络设备的CPE ID中的一个或多个。
在一些实施方式中,该发送单元,用于向该第二网络设备发送第二通告报文,该第二通告报文包括第二地址族标识以及该第二参数集,该第二地址族标识用于标识下一代组播虚拟专用网络NG MVPN或者BGP EVPN。
在一些实施方式中,该第二通告报文包括组播提供商服务接口隧道属性PTA属性,该PTA属性包括MPLS标签MPLS label字段,该MPLS label字段包括该VPN的标识。
在一些实施方式中,该装置还包括:接收单元,用于接收来自该VPN内组播接收者的加入消息,该加入消息包括该组播源组信息;或者,接收来自该VPN内组播接收者的离开消息,该离开消息包括该组播源组信息。
第四方面,提供了一种处理组播报文的装置,设于虚拟专用网VPN内的第一网络设备,包括:接收单元,用于接收第一组播数据报文;处理单元,用于基于该第一组播数据报文和第一参数集,获得第二组播数据报文,该第一参数集包括该VPN内第二网络设备的比特转发路由器前缀BFR prefix以及用于标识软件定义广域网SD-WAN隧道的参数,该第二网络设备为该SD-WAN隧道的端点,该第二组播数据报文包括第一报文头、第二报文头和该第一组播数据报文的载荷,该第一报文头包括基于该用于标识SD-WAN隧道的参数获得的该第二网络设备的IP地址,该第二报文头包括基于该第二网络设备的BFR prefix获取的基于比特位的显式复制BIER参数;发送单元,用于通过该SD-WAN隧道向该第二网络设备发送该第二组播数据报文。
在一些实施方式中,该第一参数集还包括:该第二网络设备的BIER转发路由器标识符BFR-ID、该第二网络设备的比特串长度BSL、该第二网络设备的集合标识最大值max-SI、该第二网络设备所在的BIER子域的ID、该第二网络设备的比特索引转发表标识BIFT-ID以及该VPN的标识中的一个或多个。
在一些实施方式中,该BIER参数包括与该第二网络设备的BFR prefix对应的比特串bitstring、与该第二网络设备的BFR prefix对应的BIER-MPLS标签、与该第二网络设备的BFR prefix对应的互联网协议第6版IPv6地址其中的一个或多个。
在一些实施方式中,该用于标识SD-WAN隧道的参数包括隧道类型以及用于确定该SD-WAN隧道的信息,该隧道类型用于标识隧道的类型为SD-WAN隧道。
在一些实施方式中,该用于确定该SD-WAN隧道的信息包括该第二网络设备所处的站点的标识或者该第二网络设备的用户端设备标识CPE ID中至少一项。
在一些实施方式中,该第一报文头包括协议类型字段,该协议类型字段用于标识携带该BIER参数的该第二报文头。
在一些实施方式中,该第一报文头还包括该VPN的ID。
第五方面,提供了一种网络设备,该网络设备包括处理器和网络接口,该网络设备通过该处理器和该网络接口,执行上述第一方面或第一方面任一种可选方式所提供的方法。
第六方面,提供了一种网络设备,该网络设备包括处理器和网络接口,该网络设备通过该处理器和该网络接口,执行上述第二方面或第二方面任一种可选方式所提供的方法。
第七方面,提供了一种网络系统,该系统包括如第三方面或者第三方面任一种实施方式中的装置以及如第四方面或者第四方面任一种实施方式中的装置。
第八方面,提供了一种网络系统,该系统包括如第五方面中的设备以及如第六方面中的设备。
第九方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行如上述第一方面或第一方面任一种可选方式所提供的方法。
第十方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行如上述第二方面或第二方面任一种可选方式所提供的方法。
第十一方面,提供了一种计算机程序产品,该计算机程序产品包括一个或多个计算机程序指令,当该计算机程序指令被计算机加载并运行时,使得该计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
第十二方面,提供了一种计算机程序产品,该计算机程序产品包括一个或多个计算机程序指令,当该计算机程序指令被计算机加载并运行时,使得该计算机执行上述第二方面或第二方面任一种可选方式所提供的方法。
第十三方面,提供一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现如上述第一方面或第一方面的任一可选方式所提供的方法。
第十四方面,提供一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现如上述第二方面或第二方面任一种可选方式所提供的方法。
附图说明
图1是本申请实施例提供的一种应用场景的示意图;
图2是本申请实施例提供的另一种应用场景的示意图;
图3是本申请实施例提供的一种网络拓扑的示意图;
图4是本申请实施例提供的一种逻辑功能架构示意图;
图5是本申请实施例提供的一种组播配置方法的流程图;
图6是本申请实施例提供的另一种组播配置方法的流程图;
图7是本申请提供的一种处理组播数据报文的方法的流程图;
图8是本申请实施例提供的一种BGP EVPN IP prefix路由NLRI格式示意图;
图9是本申请实施例提供的一种BGP BIER VPN prefix路由NLRI格式示意图;
图10是本申请实施例提供的一种第一通告报文中BIER业务封装属性字段格式示意图;
图11是本申请实施例提供的一种第一通告报文中SD-WAN封装扩展团体属性以及color扩展团体属性的示意图;
图12是本申请实施例提供的一种MVPN或EVPN路由VPN BIER PTA字段格式示意图;
图13是本申请实施例提供的一种BGP EVPN S-PMSI A-D路由NLRI格式示意图;
图14是本申请实施例提供的一种BGP EVPN leaf A-D路由NLRI格式示意图;
图15是本申请实施例提供的一种BGP EVPN SMET路由NLRI格式示意图;
图16是本申请实施例提供的一种通告加入时使用的报文格式示意图;
图17是本申请实施例提供的另一种通告加入时使用的报文格式示意图;
图18是本申请实施例提供的一种组播数据报文的封装格式示意图;
图19是本申请实施例提供的一种满足RFC8296定义的BIER头的封装格式示意图;
图20是本申请实施例提供的一种BIERv6封装格式示意图;
图21是本申请实施例提供的另一种BIERv6封装格式示意图;
图22是本申请实施例提供的一种BIERin6的封装格式示意图;
图23是本申请实施例提供的另一种BIERin6的封装格式示意图;
图24是本申请实施例提供的一种G-BIER的封装格式示意图;
图25是本申请实施例提供的一种GRE扩展头的封装格式;
图26是本申请实施例提供的一种SD-WAN头的通用的封装格式示意图;
图27是本申请实施例提供的一种VXLAN头的封装格式示意图;
图28是本申请实施例提供的一种VXLAN-GPE头的封装格式示意图;
图29是本申请实施例提供的一种GENEVE头的封装格式示意图;
图30是本申请实施例提供的一种IPsec头的封装格式示意图;
图31是本申请实施例提供的一种站点内主备保护的场景的示意图;
图32是本申请实施例提供的另一种站点内主备保护的场景的示意图;
图33是本申请实施例提供的一种网络部署场景的示意图;
图34是本申请实施例提供的另一种网络部署场景的示意图;
图35是本申请实施例提供的一种组播配置装置的结构示意图;
图36是本申请实施例提供的一种处理组播报文的装置的结构示意图;
图37是本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合图对本申请实施方式作进一步地详细描述。
下面对本申请实施例涉及的一些术语概念做解释说明。
(1)SD-WAN
SD-WAN是将软件定义网络(software defined networking,SDN)技术应用到WAN场景中的一种虚拟专用网络(virtual private network,VPN)技术。SD-WAN技术旨在帮助用户降低广域网的开支、提升网络连接的灵活性,为分散在广阔地理范围内的企业网络、数据中心网络等提供安全可靠的互联服务。SD-WAN的典型特征在于,在站点的边缘设备之间建立端到端的互联网协议覆盖(internet protocol overlay,IP overlay)隧道,实现SD-WAN underlay(基础)传输网络的独立性。具体地,各个站点的边缘设备通过IP overlay隧道技术或者二层overlay隧道技术,在underlay传输网络的基础上,构建IP overlay隧道,该IP overlay隧道称为SD-WAN隧道。SD-WAN隧道的源互联网协议(internet protocol,IP)地址和目的IP地址分别为两个站点的CPE的IP地址,具体为设备的WAN接口配置的IP地址。例如,站点1的CPE1与站点2的CPE2之间建立了一条SD-WAN隧道,站点1的CPE1与站点2的CPE2是这条SD-WAN隧道的端点。SD-WAN隧道的源IP地址是站点1的CPE的IP地址,具体是站点1的CPE的WAN接口配置的IP地址。SD-WAN隧道的目的IP地址是站点2的CPE的IP地址,具体是站点2的CPE的WAN接口配置的IP地址。因此传输网络内的中间节点通过和站点的边缘设备直连链路的路由在传输网络内发布,隧道报文即可在传输网络中路由转发直到目的站点的边缘设备。
(2)传输网络(transport network,TN)
TN是指SD-WAN的underlay网络(SD-WAN基础网络)。TN是运营商提供的广域接入网络,即WAN侧网络。TN用于承载SD-WAN的overlay网络,实现站点之间的互联。TN包括而不限于MPLS网络、互联网(Internet)、运营商专线网络、长期演进(long term evolution,LTE,即4G)、5G或者企业自建网络。传输网络可以通过传输网络标识(TN ID)或传输网络的名称来标识。
(3)SD-WAN隧道
SD-WAN隧道是指两个站点的边缘设备之间的逻辑通道。不同站点之间通过SD-WAN隧道传输数据报文,实现不同站点之间的互联。SD-WAN隧道的物理出接口是设备上的WAN接口,该WAN接口所属的TN在同一个路由域(routing domain,RD)内,即SD-WAN隧道两端的WAN接口可以在underlay网络层面互通。两个站点可以通过多个不同运营商的TN进行互联,因此站点之间可以建立多个不同的SD-WAN隧道。
(4)SD-WAN overlay网络
SD-WAN overlay网络是指SD-WAN隧道构成的网络。SD-WAN overlay网络是基于传输网络构建的。
(5)用户侧设备(customer premise equipment,CPE)
CPE是指站点的边缘设备,是SD-WAN中主要的设备角色之一。CPE用于根据路由以及隧道信息建立SD-WAN隧道,通过SD-WAN隧道转发数据报文。
(6)传输网络端口(transport network port,TNP)
TNP也称为传输隧道端点(transport tunnel endpoint,TTE),TNP是指CPE上接入传输网络的WAN接口,即SD-WAN隧道的端点设备的接口。TNP信息主要包括site ID、传输网络标识、WAN接口的IP地址和隧道封装(tunnel encapsulation)类型等。两个站点的CPE之间通过发布彼此的TPN信息,可以建立SD-WAN隧道。例如,站点1的CPE1接收到站点2的CPE2发布的TNP信息后,CPE1将CPE2的TNP信息保存至SD-WAN隧道转发表中。例如,CPE 1上的SD-WAN隧道转发表的表项(即后文中第三对应关系)中包含site ID字段、出接口字段和下一跳字段,site ID字段包括CPE2发送的TNP信息中的site ID,即站点2的site ID。出接口字段为CPE 1本端的TNP信息中的WAN接口。下一跳字段包括CPE2的TNP信息中的IP地址,即CPE2的WAN接口的IP地址。在数据报文转发阶段,当CPE1需要向站点2的CPE2转发数据报文时,比如CPE查找VPN BIER转发表(第一对应关系)中的下一跳字段,发现VPN BIER转发表中下一跳字段的内容并不是直连下一跳的IP地址,而是站点2的site ID,为了获得下一跳的IP地址,CPE1以站点2的site ID为索引,继续查找其他转发表项(即所谓的迭代),然后CPE1发现站点2的site ID匹配到第三对应关系中的site ID字段,所以基于第三对应关系中的下一跳字段和出接口字段转发数据报文。例如,CPE1在数据报文外层封装IP头,IP头中的源IP地址为CPE1的TNP信息中的IP地址,即CPE1的WAN接口的IP地址,IP头中的目的IP地址为CPE2的TNP信息中的IP地址,即CPE2的WAN接口的IP地址,然后CPE1通过CPE1的WAN接口发送数据报文。
(7)站点标识(site ID)
site ID用于在SD-WAN网络中标识一个站点。site ID通常是一个数字或一串数字。site ID例如根据SD-WAN网络中站点的总数量分配。可选地,site ID由控制器为SD-WAN中每个站点统一分配。例如,控制器按照从小到大的顺序为每个站点分配site ID。例如,一个SD-WAN网络中包括三个站点,则控制器为三个站点分配的site ID例如分别为1、2和3,又如分别为111、222和333。在一个站点包括多个CPE的情况下,同一个站点内每个CPE的siteID通常是相同的。
(8)用户端设备标识(CPE ID)
CPE ID也称SD-WAN device ID(SD-WAN设备标识),用于在SD-WAN网络中标识一个CPE。CPE ID通常是设备的一个IP地址。例如,CPE ID是设备上一个环回(loopback)接口的IP地址。例如,CPE ID是一个互联网协议第4版(internet protocol version 4,IPv4)地址或者互联网协议第6版(internet protocol version 6,IPv6)地址。可选地,CPE ID由控制器为SD-WAN中每个CPE统一分配。
(9)传输网络端口标识(TNP ID)
TNP ID为包含site ID、CPE ID和WAN接口IP地址的集合。例如,TNP ID由site ID、CPE ID和WAN接口IP地址拼接得到,又如,TNP ID为根据site ID、CPE ID和WAN接口IP地址生成的哈希值。
(10)路由反射器(route reflector,RR)
RR用于在CPE之间反射路由信息以及SD-WAN隧道的信息。RR可作为区域控制器使用。
(11)路由域(routing domain,RD)
RD是指彼此之间路由可达的不同传输网络构成的区域,例如运营商A提供的传输网络和运营商B提供的传输网络,彼此能够路由可达,则认为这2个传输网络位于同一个RD内。位于同一个RD内的CPE之间或CPE与RR之间可以建立SDWAN隧道。
(12)SD-WAN中的租户隔离
在SD-WAN组网中,可以使用VPN实例为租户提供隔离功能。在控制平面,CPE之间交互的以太虚拟专用网络(ethernet virtual private network,EVPN)路由中携带VN ID标识不同租户的私网路由,每个VPN实例之间互相独立,拥有自己的转发表和路由表。在数据平面:租户通过CPE接入网络,CPE通过该接口上关联的VPN实例识别租户所属的VPN。查找该VPN实例的转发表,为租户报文添加SDWAN封装后,将报文转发到远端CPE。SD-WAN封装中携带VPN的标识,用来标识租户所属的VPN。当远端CPE收到报文后,可以根据VPN的标识识别出报文所属的VPN。远端CPE查找该VPN实例的转发表,将报文转发给租户。
(13)基于比特位的显式复制(bit indexed explicit replication,BIER)
BIER是一种新型的组播转发技术,通过将组播报文要到达的目的节点集合以比特串的方式封装在报文头部发送,使得网络中间节点无需感知组播业务和维护组播流状态。BIER的效果包括而不限于:第一,具有良好的组播业务扩展性;BFR上采用BIER技术建立的BIFT是独立于具体的组播业务的公共转发表,使得网络中间节点无需感知组播业务,不需要维护特定组播业务的组播流状态。公网组播和私网组播报文均可通过BIFT转发,具有良好的组播业务扩展性。第二,简化业务部署和运维。由于网络中间节点不感知组播业务,因此部署组播业务通常不涉及中间节点,组播业务变化对中间节点的影响较小,简化了网络的部署和运维。第三,利于软件定义网络(software defined network,SDN)架构网络演进。具体的,部署组播业务不需要操作网络中间节点,只需在入口节点为组播报文添加上指示后续组播复制的BIER头。BIER头中携带标识组播出口节点的比特串,中间节点根据比特串实现组播复制和转发,从而有利于SDN架构网络的演进。
(14)比特转发路由器(bit forwarding router,BFR)
BFR是指支持BIER转发的设备。BFR的产品形态包括而不限于路由器、交换机、防火墙或者他网络设备。BFR分为比特转发入口路由器(bit forwarding ingress router,BFIR)、中间BFR(transit BFR)以及比特转发出口路由器(bit forwarding egressrouter,BFER)。
(15)BIER网络
BIER网络是指支持BIER转发的逻辑区域,一个BIER网络包括多个BFR。可选地,一个BIER网络为一个BIER域,或者一个BIER网络为一个BIER子域。
(16)BIER域(BIER domain)
BIER域是指在一个路由域或者管理域内所有BFR的集合。
(17)BIER子域(BIER sub-domain)。
一个BIER域可以划分为一个或者多个BIER子域,BIER子域BIER子域也可简称为SD。每个BIER子域通过一个唯一的子域标识(sub-domain ID)来标识。
(18)BFIR
BFIR是组播数据流进入BIER网络所经过的节点。BFIR用于对进入BIER网络的组播数据报文进行BIER封装,得到包含组播数据报文以及BIER头的BIER报文。
(19)transit BFR
transit BFR是组播数据报文在BIER网络中转发的中间节点,用于基于比特串对BIER报文进行转发。transit BFR是BIER网络中可选部署的设备。在一些实施例中,在BIER网络中部署BFIR和BFER,而不部署transit BFR。例如,BFIR和BFER物理直连;又如,BFIR和BFER通过一条IP链路相连,BFER是BFIR的下一跳;又如,BFIR和BFER通过一跳或多跳不支持BIER的节点相连,BFIR发送BIER报文后,BIER报文通过BIER头外层的MPLS封装或者IPv6单播路由,穿越不支持BIER的节点到达BFER。
在部署transit BFR的实施例中,一个BIER网络中部署的transit BFR的数量包括多种情况,下面以两种情况举例说明。在一些实施例中,一个BIER网络中部署一个transitBFR,该transit BFR在BIER转发路径中位于BFIR与BFER之间,BIER报文从BFIR经由该transit BFR转发至BFER。在另一些实施例中,一个BIER网络中部署两个或两个以上的transit BFR,不同的transit BFR之间具有上下跳的关系,BIER报文从BFIR经由一个transit BFR转发至另一个transit BFR,再从另一个transit BFR转发至BFER。例如,在BIER网络中部署BFIR、transit BFR 1、transit BFR 2和BFER,BIER报文的转发路径为BFIR→transit BFR 1→transit BFR 2→BFER。
transit BFR是BIER网络中可选部署的设备。在一些实施例中,在BIER网络中部署BFIR和BFER,而不部署transit BFR。例如,BFIR和BFER物理直连,BFER是BFIR的下一跳;又如,BFIR和BFER通过一跳或多跳支持BIER的节点相连;又如,BFIR和BFER通过一跳或多跳不支持BIER的节点相连,BFIR发送BIER报文后,BIER报文通过BIER头外层的MPLS封装或者IPv6单播路由,穿越不支持BIER的节点到达BFER。
在部署transit BFR的实施例中,一个BIER网络中部署的transit BFR的数量包括多种情况,下面以两种情况举例说明。
在一些实施例中,一个BIER网络中部署一个transit BFR,该transit BFR在BIER转发路径中位于BFIR与BFER之间,BIER报文从BFIR经由该transit BFR转发至BFER。
在另一些实施例中,一个BIER网络中部署两个或两个以上的transit BFR,不同的transit BFR之间具有上下跳的关系,BIER报文从BFIR经由一个transit BFR转发至另一个transit BFR,再从另一个transit BFR转发至BFER。例如,在BIER网络中部署BFIR、transitBFR 1、transit BFR 2和BFER,BIER报文的转发路径为BFIR→transit BFR 1→transitBFR 2→BFER。
(20)BFER
BFER是组播数据流出BIER网络所经过的节点,用于对BIER报文进行解封装,将得到的组播数据报文转发给组播接收者。
(21)边缘BFR
边缘BFR是指BIER网络中位于边缘的BFR,边缘BFR是BFIR和BFER的统称。
(22)比特转发路由器标识符(bit forwarding router identifier,BFR-ID)
针对BFR-ID的作用,BFR-ID用于在一个BIER网络(如一个BIER子域或者一个BIER域)中标识位于该BIER网络边缘的BFR。
针对BFR-ID的形式,BFR-ID通常是一个整数,例如是一个处于1到65535范围内的正整数。
针对BFR-ID与比特串的关系,在一些实施例中,一个BFR-ID对应于比特串中一个比特位。例如,BFR-ID为1,对应于比特串中最右一位(或者说最低位);BFR-ID为2,对应于比特串中从右往左数的第2位(或者说次低位);依次类推,BFR-ID为i,对应于比特串中从右往左数的第i位,其中i为正整数。
针对BFR-ID的含义,如果一个报文携带的比特串中包含一个设备的BFR-ID,或者说该设备的BFR-ID对应的比特位置位,表示该设备是报文的目的BFER。
(23)BFR prefix(BFR前缀)
BFR prefix是指BFR的一个IP地址。可选地,BFR prefix是BFR上一个loopback接口的IP地址。例如,BFR prefix是一个BIER网络中路由可达的IP地址。例如,BFR prefix是一个32位的IPv4地址;又如,BFR prefix是一个128位的IPv6地址。可选地,在BIERv4场景下,使用设备的一个IPv4地址作为BFR prefix;在BIERv6场景下,使用设备的一个IPv6地址作为BFR prefix。
(24)集合标识(Set Identifier,SI)
SI是指BFR-ID所属的集合的标识。SI的形式通常是一个或一串数字。例如,一个BIER网络中包括集合0和集合1,集合0包括BFR-ID为1至256的BFR,集合1包括BFR-ID为257至512的BFR,则BFR-ID为1至256的BFR中每个BFR的SI为0,BFR-ID为257至512的BFR中每个BFR的SI为1。
(25)SI最大值(max SI,也称max-SI,MAX-SI或MAX SI)
max-SI是指集合标识(SI)的最大值。
(26)比特串(bit string)
比特串用于标识BIER报文的目的BFER集合。比特串从最低位(即右数第一位)开始,每一个比特位对应一个BFR-ID。比特位置1,表示该比特位对应的BFR-ID所标识的BFER为组播数据报文的目的BFER。
(27)比特串长度(bit string length,BSL)
BSL是指比特串的长度。例如,如果BSL为64,表示比特串的长度是64个比特。
(28)比特索引路由表(bit index routing table,BIRT)
BIRT用于指示一个BIER网络中一个BFER的BFR prefix、该BFER的BFR-ID以及转发路径上到达该BFER的下一跳之间的对应关系。BIRT的详细定义可参考RFC 8279中第6.3节的介绍。
(29)比特索引转发表(bit index forwarding table,BIFT)
BIFT是基于BIER产生的转发表。BIFT用来表示通过BFR邻居能到达的各BFER节点,包括Nbr(BFR Neighbor,BFR邻居)和转发比特掩码(forwarding bit mask,F-BM)。每一张BIFT通常由三元组(BSL,SD,SI)确定。例如,BIFT是BFR将BIRT表项中经过相同邻居不同表项进行合并生成。可选地,BIFT的每条表项包括一个BFR邻居和对应的F-BM。在本申请的一些实施例中,BIFT的每条表项还包括site ID或者CPE ID。
(30)位索引转发表标识(BIFT-ID)
BIFT-ID用于标识一个BIFT。BIFT-ID通常根据BSL、SD和SI这三个参数确定。例如,BIFT-ID由BSL、SD和SI这三个参数拼接得到。又如,BIFT-ID为对BSL、SD和SI这三个参数经过哈希计算得到的哈希值。
(31)BFR邻居(BFR neighbour,BFR Nbr)
BFR邻居表示下一跳BFR。可选地,BFR邻居通过下一跳BFR的BFR prefix表示。
(32)转发比特掩码(F-BM)
F-BM用于表示BFR向BFR邻居复制发送组播数据报文时,通过该BFR邻居能到达的BIER网络的BFER的集合。F-BM例如是BFR通过将该BFR邻居所能到达的所有BFER的比特串进行或操作得到。F-BM使用一个比特串来表示,并且F-BM和报文转发所使用的比特串长度相同。例如,报文中携带的比特串的长度为256比特,F-BM的长度也为256比特。在报文转发的过程中,报文中携带的比特串会和F-BM进行与(AND)操作。
(33)BIER转发方式
在BIER网络中,数据报文是根据比特串进行复制和转发的。具体地,当一个BFR获得携带比特串的数据报文后,会对比特串与BIFT中每行表项中的F-BM按位相与,根据相与的结果决策下一步的动作。例如,如果BIFT中有一行表项中F-BM与比特串相与的结果非0,且该F-BM对应的下一跳不是自己,则会向F-BM对应的下一跳发送数据报文。如果BIFT中有k行表项中的F-BM与比特串相与的结果均非0,且k个F-BM中每个F-BM对应的下一跳均不是自己,则会复制数据报文,以获得复制后的k份数据报文,向k个F-BM中每个F-BM对应的下一跳发送数据报文。如果比特串与BIFT中一行表项中的F-BM相与的结果非0,且该F-BM对应的下一跳是自己,也即是比特串中只有自己的BFR-ID置位,这种情况表明本节点正是数据报文的BFER,则结束BIER转发,解封装数据报文中的BIER头,根据组播路由表将原始的数据报文发送给组播接收者。
数据报文在BIER网络中转发的过程中,数据报文中携带的比特串的取值可能会发生更新。例如,一个BFR向一个下一跳发送的数据报文中携带的比特串,是该BFR接收到的数据报文中携带的比特串与该下一跳对应的F-BM相与后的结果。例如,第一BFR的BIFT中存在两个F-BM,第一F-BM对应第一下一跳,第二F-BM对应第二下一跳。第一BFR接收到数据报文1,数据报文1中携带的比特串与第一F-BM和第二F-BM相与后均非零。第一BFR复制数据报文1,获得两份复制后的数据报文,分别为数据报文2和数据报文3。数据报文2中的比特串为数据报文1中的比特串与第一F-BM相与后的结果,相当于去掉了比特串中第二下一跳对应的BFR-ID。第一BFR将数据报文2发送至第一下一跳。数据报文3中的比特串为数据报文1中的比特串与第二F-BM相与后的结果,相当于去掉了比特串中第一下一跳对应的BFR-ID。第一BFR将数据报文3发送至第二下一跳。
(34)End.BIER地址
为了支持基于IPv6的报文转发,BIERv6中定义了一种新类型的SID,称为End.BIER地址。End.BIER地址作为IPv6目的地址,指示设备的转发平面处理报文中的BIERv6头。每个节点在接收并处理BIERv6报文时,将下一跳节点的End.BIER SID封装为BIERv6头外层的IPv6目的地址,并通过BIERv6头中的比特串指示组播报文目的BFER集合。End.BIER SID还能够很好地利用IPv6单播路由的可达性,跨越不支持BIERv6的IPv6节点。End.BIER SID通常包括两部分:定位(locator)和其他比特位。locator表示一个BIERv6转发节点。locator具有定位功能,节点配置locator之后,控制面设备会生成一条locator网段路由,并且通过IGP在SRv6域内扩散。网络里其他节点通过locator网段路由就可以定位到本节点,同时本节点发布的所有SRv6 SID也都可以通过该条locator网段路由到达。End.BIER SID可以将报文引导到指定的BFR,BFR接收到一个组播报文,识别出报文目的地址为本地的End.BIERSID,判定为按BIERv6流程转发。
(35)组播组
组播组是指用IP组播地址进行标识的一个集合。当组播接收者(如主机或其他需要接收组播数据报文的设备),加入一个组播组,就成为了组播组的成员,可以识别并接收发往该组播组的组播数据报文。
(36)组播源
一个组播源可以同时向多个组播组发送数据,多个组播源也可以同时向一个组播组发送报文。
(37)组播组成员
组播组成员是指加入了组播组的主机或者其他设备,组播组中的成员是动态的,例如,主机可以在任何时刻加入或离开组播组。
(38)组播路由器
组播路由器是指组播转发功能的设备,如路由器或交换机。组播路由器分为根节点、中间节点和叶子节点。根节点与组播源相连,根节点为组播数据报文的转发路径中第一跳路由器。叶子节点与组播接收者相连,叶子节点为组播数据报文的转发路径中最后一跳路由器。中间节点位于根节点和叶子节点之间,用于将来自根节点的组播数据报文转发至叶子节点。在基于BIER实现组播转发的情况下,根节点为BFIR,中间节点为中间BFR,叶子节点为BFER。
(39)互联网组管理协议(internet group management protocol,IGMP)
IGMP是TCP/IP协议族中负责IPv4组播成员管理的协议。IGMP用来在组播接收者和与其直接相邻的组播路由器之间建立和维护组播组成员关系。IGMP通过在组播接收者和组播路由器之间交互IGMP报文实现组成员管理功能,IGMP报文封装在IP报文中。IGMP报文包括而不限于成员报告(report)报文、成员离开(leave)报文、普遍组查询报文(generalquery)、特定组查询报文(group-specific query)以及特定源组查询报文(group-and-source-specific query)。成员报告报文是指组播接收者向查询器发送的报告报文,用于申请加入某个组播组或者应答查询报文。成员离开报文为组播接收者离开组播组时主动向查询器发送的报文,用于宣告自己离开了某个组播组。普遍组查询报文是指查询器向共享网络上所有主机和路由器发送的查询报文,用于了解哪些组播组存在成员。特定组查询报文是指查询器向共享网段内指定组播组发送的查询报文,用于查询该组播组是否存在成员。查询器通常是组播接收者连接的组播路由器,查询器用于发送查询报文,并接收主机反馈的成员报告报文和成员离开报文,以此来了解与接收报文的接口连接的网段上有哪些组播组存在接收者(即组成员)。
(40)(S,G)或(*,G)
组播路由表中通常分为(S,G)路由表项或(*,G)路由表项。S表示组播源(source)。在组播路由表中,S通常通过组播源的IP地址表示。G表示组播组(group),在组播路由表中,G通常通过组播组的组播IP地址表示。*表示任意。(S,G)路由表项表示知道组播组也知道组播源的表项。(*,G)表示知道组播组而不知道组播源的表项。
(41)VPN
VPN是指一个虚拟的专用网络。VPN是一种私有网络,也可以称为用户网络、私网或者用户侧网络。本申请实施例中的VPN包括而不限于三层VPN(L3 VPN)或者二层VPN(L2VPN)。
(42)VPN的标识
VPN的标识用于标识一个VPN。例如,VPN的标识为VPN标识符(virtual networkidentifier virtual network identifier,VN-ID)或者路由标识符(routedistinguisher,RD)。
(43)VPN BIER
VPN BIER是指一个VPN内的BIER网络。例如,VPN BIER是一个VPN内的BIER子域。
(44)站点(site)
站点是指包含具有IP连通性的至少一个设备的逻辑区域,站点内不同设备之间的IP连通性通常不需要通过运营商网络实现。例如,公司A的X省部署了总部网络,公司A在Y省部署了分支网络,公司A期望通过运营商网络使得了总部网络与分支网络互通,在这一场景下,可以构建一个VPN,如VPN 1,将总部网络部署为VPN 1的站点1,将分支网络部署为VPN 1的站点2,站点1与站点2处于同一个VPN内,站点1与站点2可以通过运营商网络传输数据报文。site与VPN的关系也可以这样理解:对于多个连接到同一运营商网络的site,通过制定策略,可以将它们划分为不同的集合(set),只有属于相同集合的site之间才能通过运营商网络互访,这种集合就是VPN。
在一些实施例中,在站点中部署有一个或多个CPE。在同一个站点中部署多个CPE的场景下,同一个站点中不同CPE的site ID相同。站点也是SD-WAN网络的组成部分。
(45)路由迭代
路由表项中需要有直连的下一跳才能够用于指导转发,但是路由表项中的下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程就叫做路由迭代。例如,边界网关协议(border gateway protocol,BGP)路由的下一跳一般是非直连的对端loopback地址,不能指导转发,需要进行迭代,即根据以BGP学习到的下一跳为目的地址在IP路由表中查找,当找到一条具有直连的下一跳、出接口信息的路由后,将直连的下一跳、出接口填入至路由表中并生成对应的转发表项。
(46)隧道迭代
为了将私网流量通过公网传递到另一端,需要有一条公网隧道承载私网流量,因此需要根据目的IP前缀进行路由迭代,查找合适的隧道,当隧道迭代成功,将路由放入对应的VPN实例路由表,将路由迭代到相应的隧道的过程叫做隧道迭代。例如,对于BGP私网路由,需要隧道进行转发,路由的下一跳一般是远端站点的边缘设备的loopback地址,不能指导转发,也需要进行路由迭代,即在隧道列表中查找到达该loopback地址的隧道,将该隧道信息填入路由表中并生成对应的转发表项。在一种可能的实现中,当隧道迭代成功后,保留该隧道的标识。当转发VPN的报文时,根据隧道的标识查找对应的隧道,然后从隧道上发送出去。
(47)隧道
隧道泛指一个虚拟的连接,或者说一条虚拟的通路,使得具有该隧道封装格式的数据报文能够在该通路上传输。隧道的两个端点设备分别对数据报文封装隧道头并解封装隧道头。例如,对于GRE封装而言,隧道的入口节点对数据报文封装隧道头,隧道的出口节点解封装隧道头,恢复数据报文原始的格式。
(48)运营商组播业务接口隧道属性(provider multicast service interfacetunnel attribute,PTA)
运营商组播业务接口(provider multicast service interface,PMSI)是指运营商网络中用来传递私网组播数据报文的通道。PTA用于携带创建PMSI所需的信息。为了支持下一代组播VPN(next generation MVPN,NG MVPN over BIER),在BGP MVPN业务中,可以通过一个BIER类型的PTA携带建立BIER转发路径所需要的信息,PTA的细节可参考RFC8556。
(49)组播路由表和组播转发表
组播网络中设备根据扮演的不同角色,可以维护不同类型的表项,例如组播协议路由表、组播路由表、组播转发表、IGMP组表项以及IGMP路由表。组播协议路由表是运行各种组播路由协议时由各个协议自己维护的表项,是组播路由和转发的基础。本申请实施例所针对的组播协议路由表例如为BIER路由表(BIRT)或者BIER转发表(BIFT)。组播路由表用于保存在设备支持多种组播协议的情况下,从多种组播协议生成的路由信息中根据开销或者其他参数选择出的路由信息。组播转发表是依据组播路由表生成的用于指导组播数据转发的表项。
(50)loopback(环回)接口
loopback接口是转发设备上一种虚拟接口。当loopback接口创建后,除非手工关闭该接口,否则其物理层通常处于up状态。在BGP协议中,可以将发送BGP报文的源接口配置成loopback接口,从而保证BGP会话不受物理接口故障的影响。
(51)tunnel(隧道)接口
tunnel接口是转发设备上一种虚拟接口。隧道两端的设备利用tunnel发送报文、识别并处理来自隧道的报文。Tunnel接口的参数包括tunnel接口的名称、tunnel接口的IP地址、tunnel接口的隧道协议、tunnel的源地址以及tunnel的目的地址等。
(52)下一代组播虚拟专用网络(next generation multicast virtual privatenetwork,NG MVPN)
NG MVPN是IP组播数据流量穿越VPN的新一代框架,为了使处于同一个组播VPN(multicast VPN,MVPN)的不同PE之间能够进行控制消息交互并创建私网组播数据通道,每个PE都需要发现属于同一MVPN的其他PE,NG MVPN采用BGP的方式实现自动发现,并定义了新的地址族,即BGP-MVPN地址族。NG MVPN路由信息是携带在BGP update消息中。NG MVPN进行MVPN客户组播路由的传递和公网隧道建立是通过BGP-MVPN定义的控制消息实现的。BGP-MVPN定义了7种类型的控制消息,7种控制消息代表6种MVPN路由类型,其中类型6和类型7主要是发起私网用户加入和指导组播数据流量传递,类型1到5主要是进行MVPN成员的自动发现和协助MPLS进行P2MP隧道的建立。类型6和类型7称之为MVPN客户组播路由(MVPNcustomers'multicast routing information,C-multicast路由,C表示Customer),类型1到5称之为叶子通告路由(leaf A-D route)。
(53)叶子通告路由(leaf A-D route)
leaf A-D route用来回应PMSI属性中flags字段为1的1类路由自治系统域内包含运营商组播业务接口自动发现路由(intra autonomous system inclusive providermulticast service interface auto discovery route,Intra-AS I-PMSI A-D route)和回应3类路由S-PMSI A-D route,表示在叶子节点存在建立S-PMSI隧道的请求,协助根节点完成隧道信息收集。
(54)地址族(address family)标识
地址族标识是MP-BGP中用于区分不同网络层信息的编号。地址族标识的形式例如是一个数字或者一串数字。地址族标识包括而不限于地址族标识符(address familyidentifier,AFI)或者子地址族标识符(subsequent address family identifier,SAFI)其中的一个或多个。例如,地址族标识包括取值为25的AFI以及取值为70的SAFI,取值为25的AFI以及取值为70的SAFI标识边界网关协议以太虚拟专用网络(border gatewayprotocol virtual private network,BGP EVPN)。
下面对本申请实施例的应用场景举例说明。
本申请实施例应用于SD-WAN网络中部署组播业务的场景,具体应用于在SD-WAN网络中同一个VPN内部署组播业务的场景。根据本申请一些实施例,在SD-WAN网络中的VPN内部署BIER,基于BIER实现组播业务,从而提供了基于SD-WAN的VPN BIER机制,使得来自VPN内组播源的组播数据流可以通过BIER以及SD-WAN隧道,穿越广域网,到达该VPN内的组播接收者。
本申请实施例适用的组网场景包括很多种,下面结合两种组网场景举例说明。
组网场景一、部署根节点以及叶子节点,未部署中间节点。
图1是本申请实施例提供的一种应用场景的示意图,图1所示的应用场景包括转发设备A、转发设备B以及转发设备C。转发设备A、转发设备B以及转发设备C位于同一个BIER网络(如同一个BIER子域)中,并且,转发设备A、转发设备B以及转发设备C均位于VPN1中。转发设备A位于VPN 1内的站点A,转发设备A与组播源相连。转发设备B和转发设备C均位于VPN1内的站点B。转发设备B接入组播接收者A,转发设备C接入组播接收者A和组播接收者B。转发设备A的WAN接口211和转发设备B的WAN接口212建立了SD-WAN隧道21。也即是,SD-WAN隧道21的2个端点设备分别为转发设备A以及转发设备B。转发设备A的WAN接口221和转发设备C的WAN接口222建立了SD-WAN隧道22。也即是,SD-WAN隧道22的2个端点设备分别为转发设备A以及转发设备C。可选地,还部署RR,RR与转发设备A、转发设备B以及转发设备C通过网络相连。
组网场景二、部署根节点、叶子节点以及中间节点。
可选地,请参考图2,图2是对部署根节点、叶子节点和中间节点的具体示例。图2在图1所示的场景的基础上,进一步还包括转发设备D。转发设备D位于VPN1内的站点C中。转发设备A的WAN接口311和转发设备D的WAN接口312建立了SD-WAN隧道31。转发设备D的WAN接口321和转发设备B的WAN接口322建立了SD-WAN隧道32。转发设备D的WAN接口331和转发设备B的WAN接口332建立了SD-WAN隧道33。
在不同协议中,设备角色的定义有所区别。在BIER协议中,设备的角色主要分为三种:BFIR、transit BFR以及BFER。例如,在图2所示的场景中,转发设备A为BFIR,转发设备D为transit BFR,转发设备B和转发设备C为BFER。在组播协议中,设备的角色主要分为根节点(或者称为头节点)、中间节点和叶子节点。例如,在图2所示的场景中,转发设备A为根节点,转发设备D为中间节点,转发设备B和转发设备C为叶子节点。在SD-WAN协议中,设备的角色主要分为CPE和RR。例如,在图2所示的场景中,转发设备A、转发设备D、转发设备B和转发设备C均为CPE,或者转发设备A、转发设备D、转发设备B和转发设备C其中的一个设备同时为CPE和RR,而其他的3个设备为CPE。
下面对本申请实施例提供的逻辑功能架构举例说明。
图4是本申请实施例提供的逻辑功能架构示意图,如图4所示,该功能架构包括SD-WAN隧道层、VPN BIER层以及组播私网层。
SD-WAN隧道层为VPN BIER层的基础,用于通过SD-WAN转发方式来转发组播数据流。
VPN BIER层用于基于BIER转发VPN内的组播数据报文。具体地,VPN BIER层引入了VPN BIER机制,使得VPN内的组播数据流量穿越运营商网络。例如,在运营商网络骨干CPE和企业或用户分支接入网络CPE上LAN侧部署VPN内BIER功能,形成多租户隔离的SD-WANoverlay BIER拓扑,将租户的组播业务部署在VPN BIER之上,实现SD-WAN单跳或多跳网络服务点(point of presence,POP)的BIER组播业务。
组播私网层用于组播业务在控制面的信息交互,例如通过BGP MVPN或EVPN组播路由传递overlay组播加入信息以及退出信息,用于组播业务引流和组播VPN BIER隧道建立,实现组播用户一跳加入。一跳加入是指叶子节点通过与根节点之间的BGP peer关系,向根节点发送BGP信令从而加入组播组,或者叶子节点通过与RR之间的BGP peer关系,向RR发送BGP信令,RR再通过与根节点的BGP peer关系向根节点转发BGP信令从而加入组播组。相较于PIM中,叶子节点向叶子节点的上一跳节点发送控制信令,然后每一跳节点逐跳向上游发送控制信令,直至控制信令到达根节点从而加入组播组的方式而言,由于表示加入的BGP信令只需叶子节点以及根节点感知,或者只需叶子节点、根节点以及RR感知,而无需转发路径中每一跳节点感知,因此实现了一跳加入,减少了转发用于表示加入的BGP信令占用的带宽。
针对SD-WAN隧道与VPN BIER隧道之间的关系,VPN BIER隧道是基于SD-WAN隧道建立的BIER转发路径。VPN BIER隧道是虚拟的隧道。一条VPN BIER隧道可以经过多条SD-WAN隧道。而SD-WAN隧道通常是站点之间端到端的隧道,SD-WAN隧道可以经过传输网络内的多个节点。例如,请参考图3,图3所示的场景中,VPN BIER隧道是指从转发设备A经过转发设备D到转发设备B。VPN BIER隧道的根节点为转发设备A,中间节点为转发设备D,叶子节点为转发设备B。
VPN BIER隧道是基于SD-WAN隧道31以及SD-WAN隧道32建立的。SD-WAN隧道31的2个端点分别是转发设备A与转发设备D,SD-WAN隧道31在传输网络1经过了多跳节点。SD-WAN隧道32的2个端点分别是转发设备B与转发设备D,SD-WAN隧道32在传输网络2经过了多跳节点。
下面对本申请实施例的方法流程举例说明。
本申请的一些实施例涉及如上三层逻辑架构中不同层的控制面配置过程,为了区分描述不同层相关的参数,将VPN BIER层相关的参数集合称为第一参数集,将组播私网层相关的参数集合称为第二参数集,将SD-WAN隧道层相关的参数集合称为第三参数集。
当VPN内一个转发设备上配置上述三层中任意一层相关的参数后,可以在VPN内通告配置的参数。而当VPN内一个转发设备接收到该VPN内另一个转发设备通告的如上三层中任意一层相关的参数后,可以根据接收到的参数获得对应层的对应关系,以便在接收到组播数据报文时通过该对应关系转发组播数据报文。
可选地,转发设备以表项的形式保存获得的对应关系。例如,一个对应关系是转发设备上一张表中的一行表项或者多行表项的集合。转发设备上的表通常分为路由信息库(routing information base,RIB)和转发信息库(forwarding information base,FIB)。对应关系具体形式可以是采用RIB表中的表项或者FIB表中表项。
为了区分描述不同层使用的对应关系,本申请实施例后续将与VPN BIER层相关的对应关系称为第一对应关系,将与组播私网层相关的对应关系称为第二对应关系,将与SD-WAN隧道层相关的对应关系称为第三对应关系。
可选地,转发设备通过不同类型的表项分别保存如上三种对应关系。例如,以上三种对应关系保存在设备上三张独立的表中。例如,第一对应关系是BIER转发表(BIFT)或者BIER路由表(BIRT)中的一条表项,第二对应关系是组播路由表中的一条表项或者组播转发表中一条表项,第三对应关系是SD-WAN隧道转发表中的一条表项。可替代地,转发设备通过一种类型的表项保存如上三种对应关系中的至少两种对应关系,也即是,如上三种对应关系中的至少两种对应关系集成为同一张表中。本实施例对如上三种对应关系是相互独立的不同表还是集成为一张表不做限定。
一个转发设备可以同时保存如上三种对应关系,也可以仅保存如上三种对应关系中的一种对应关系或者两种对应关系。例如,对于作为中间节点的转发设备来说,由于中间节点通常无需维护组播业务的状态,因此作为中间节点的转发设备可以无需保存上述第二对应关系。作为根节点的转发设备可以保存第一对应关系、第二对应关系以及第三对应关系,作为叶子节点的转发设备可以保存第一对应关系、第二对应关系以及第三对应关系。
在如上三种对应关系通过不同类型的表项保存的情况下,如上三种对应关系可以通过路由迭代的方式联系在一起。路由迭代的基本概念可参考上文概念解释部分的描述。本申请的一些实施例中,路由迭代泛指转发设备查询一种对应关系,以获得查询结果后,转发设备根据该查询结果能够确定去查询另一种对应关系。
以从第一对应关系迭代至第三对应关系为例,上述第一对应关系包括与标识SD-WAN隧道的参数匹配的下一跳,从而实现在VPN BIER层指向SD-WAN,使得作为根节点、中间节点或者叶子节点在根据比特串查找第一对应关系时,根据下一跳能够确定要通过SD-WAN隧道转发组播数据报文,则进一步查找第三对应关系以获得出接口和下一跳。例如,上述第一对应关系中的下一跳字段或者出接口字段的内容为SD-WAN隧道的对端设备所处的站点的site ID,因此查找第一对应关系后,根据对端设备所处的站点的site ID会进一步查找到第三对应关系。
以从第二对应关系迭代至第一对应关系为例,例如,上述第二对应关系包括标识VPN BIER隧道的参数,从而实现在组播私网层指向VPN BIER,使得作为根节点的转发设备接收到组播数据报文,查找第二对应关系时,根据下一跳能够确定要通过VPN BIER隧道转发组播数据报文,则进一步查找第一对应关系以获得出接口和下一跳。
下面通过图5所示实施例对VPN BIER层的参数配置以及获取对应关系的过程举例说明,图5实施例以VPN内第一转发设备在VPN内通告参数的流程为例描述。
第一转发设备的角色包括多种情况。在一些实施例中,第一转发设备是根节点。例如,在图2所示场景中,第一转发设备是转发设备A。在另一些实施例中,第一转发设备是叶子节点。例如,在图2所示场景中,第一转发设备是转发设备B或者转发设备C。在另一些实施例中,第一转发设备是中间节点。例如,在图2所示场景中,第一转发设备是转发设备D。
第一转发设备为SD-WAN隧道的端点。例如,在图2所示场景中,第一转发设备是转发设备A,第一转发设备是SD-WAN隧道31的入口节点。或者,第一转发设备是转发设备D,第一转发设备是SD-WAN隧道31的出口节点,同时也是SD-WAN隧道32的入口节点,同时也是SD-WAN隧道33的入口节点。或者,第一转发设备是转发设备B,第一转发设备是SD-WAN隧道32的出口节点。
图5是本申请实施例提供的一种组播配置方法的流程图。图5所示方法包括以下步骤S501至步骤S504。
步骤S501,VPN内的第一转发设备获得第一参数集。
第一参数集包括第一转发设备的BFR prefix以及用于标识SD-WAN隧道的参数。
第一转发设备通过通告自己的BFR prefix,第一,能够标识第一参数集的来源是第一转发设备,使得接收到第一参数集的设备能够知道第一参数集是属于第一转发设备的;第二,如果第一转发设备后续需要发送其他参数,以第一参数集为例,通过在第一参数集中携带BFR prefix,可以指示第一参数集中的参数与第一参数集中的参数都是第一转发设备发送的,相当于隐含指示了BFR prefix与SD-WAN隧道的参数具有对应关系;第三,接收到BFR prefix的设备可以将BFR prefix作为目的地址,计算到达BFR prefix的出接口和下一跳,从而生成到达该BFR prefix的路由,进而实现建立BIER网络内节点之间邻居关系以及节点之间的BIER转发路径。第四,这种方式与BIER的标准协议兼容,实现复杂度较低。具体的,BIER的标准协议中提出的发布BIER参数的报文封装格式中,通常会在报文中携带一个可达性TLV(reachability prefix TLV,如RFC 5308定义的TLV 236或者RFC 5120定义的TLV 237),在该可达性TLV中携带BFR prefix,在该可达性TLV的子TLV(如BIER info subTLV)中携带BIER的其他参数。本申请的一些实施例中,可以在报文中的可达性TLV中携带BFR prefix,在可达性TLV中的子TLV中携带BFR prefix之外的其他参数,从而复用BIER在发布参数时已有的报文封装格式。
由于将BFR prefix以及SD-WAN隧道的参数一起通告,能够指示了BIER与SD-WAN之间具有关联关系,即,如果需要到达某个BFR prefix,则要经过SD-WAN隧道,从而实现BIER与SD-WAN相结合。例如,第一转发设备的BFR prefix为1.1.1.1,第一转发设备在VPN内通告BFR prefix:1.1.1.1以及SD-WAN隧道的参数后,VPN内其他BFR接收到参数后,可以知道当需要将数据报文转发至以1.1.1.1为目的前缀的设备时,需要通过SD-WAN隧道转发数据报文。
在一些实施方式中,上述第一参数集中的第一转发设备的BFR prefix为第一转发设备在VPN内的私网IP地址。例如,在第一转发设备上配置VPN 1,将VPN 1的私网IP地址配置为第一转发设备的BFR prefix。可选地,第一转发设备的BFR prefix为第一转发设备在VPN内的私网IPv4地址,或者为第一转发设备在VPN内的私网IPv6地址。
通过将VPN内的私网IP地址作为BFR prefix,使得路由可达至该私网IP地址的设备才会接收到第一参数集,从而实现将参数集的发送范围限制为VPN内。例如,将VPN1内的私网IP地址配置为第一转发设备的BFR prefix,那么第一转发设备发送包含该BFR prefix的参数集时,路由可达至VPN 1的BFR会接收参数集,而路由不可达至VPN 1的BFR不会接收到参数集。
在一些实施例中,第一转发设备为叶子节点,第一参数集还包括作为叶子节点的第一转发设备的BFR-ID。
第一转发设备通过通告自己的BFR-ID,当第一转发设备需要接收组播数据报文时,通过将报文中比特串与第一转发设备对应的BFR-ID置位,即可指示报文要转发至第一转发设备。因此,SD-WAN网络中的中间节点根据比特串,即可实现报文的复制转发,而无需感知组播组状态,也无需为每条组播数据流分别建立一个组播分发树,从而节省中间节点由于维护组播分发树所需保存的组播表项,因此节省了中间节点的存储资源,也避免中间节点由于建立组播分发树而造成的开销。此外,当组播数据流的目的接收者发生变化时,可以通过更新比特串来灵活地更新组播数据流的转发路径,而无需对大量组播分发树执行撤销和重建操作,从而提高了网络的可扩展性和灵活性。
在一些实施例中,第一参数集还包括第一网络设备的BSL、第一网络设备的max-SI、第一网络设备所在的BIER子域的ID、第一网络设备的BIFT-ID以及VPN的标识中的一个或多个。
用于标识SD-WAN隧道的参数包括很多种形式。例如,上述用于标识SD-WAN隧道的参数的形式是一个或一串数字组成的编号,比如上述用于标识SD-WAN隧道的参数是1、2或3,或者111、222或者333。又如,上述用于标识SD-WAN隧道的参数是第一转发设备的IP地址,例如上述用于标识SD-WAN隧道的参数是IPv4地址;或者,上述用于标识SD-WAN隧道的参数是IPv6地址。例如,转发设备上配置了与SD-WAN隧道绑定的loopback接口,上述用于标识SD-WAN隧道的参数是SD-WAN隧道绑定的loopback接口的IP地址。又如,转发设备上配置了与SD-WAN隧道绑定的tunnel接口,上述用于标识SD-WAN隧道的参数是SD-WAN隧道绑定的tunnel接口的IP地址。再如,上述用于标识SD-WAN隧道的参数是一个字符串,例如,上述用于标识SD-WAN隧道的参数为SD-WAN隧道绑定的tunnel接口的名称,或者为SD-WAN隧道绑定的隧道协议的名称。再如,上述用于标识SD-WAN隧道的参数为字符串“SD-WAN”。
在一些实施例中,用于标识SD-WAN隧道的参数包括第一隧道类型以及第一信息。
第一隧道类型标识SD-WAN隧道。例如,第一隧道类型的形式是一个数字,该数字表示SD-WAN隧道。又如,第一隧道类型的形式是一个字符串,比如为“SD-WAN”。第一转发设备通过通告第一隧道类型,使得第一参数集的接收端能够知道,当向第一转发设备转发数据报文时,要通过SD-WAN隧道发送数据报文。
第一信息用于确定SD-WAN隧道。例如,第一信息包括第一转发设备所处的站点的标识或者第一转发设备的CPE ID中至少一项。
可替代地,第一信息为能够在SD-WAN网络中标识第一转发设备的其他信息,例如为第一转发设备的TNP信息。可替代地,第一信息为SD-WAN隧道的标签。SD-WAN隧道的标签用于标识一条SD-WAN隧道。SD-WAN隧道的标签的形式可以是MPLS标签,也可以是SRv6 SID,也可以是源站点的标识、源TNP的标识、目的站点的标识、目的TNP的标识的组合。
针对第一转发设备如何获得第一参数集,下面通过四种方式对第一转发设备获得第一参数集的方式举例说明。
获得方式一、静态配置
例如,网络管理员通过命令行或者web界面等方式,对第一转发设备执行配置操作,输入上述第一参数集。第一转发设备响应于网络管理员的配置操作,获得网络管理员输入的第一参数集。
获得方式二、控制器下发
例如,由控制器为第一转发设备分配第一参数集。控制器向第一转发设备发送第一参数集。第一转发设备接收控制器发送的第一参数集。控制器发送第一参数集所基于的协议包括而不限于网络配置协议(network configuration protocol,NETCOF)、简单网络管理协议(simple network management protocol,SNMP)、遥测(telemetry)、表述性状态转移原则(representational state transfer,RESTful)或者BGP链路状态(BGP link-state,BGP-LS)等。
获得方式三、根节点分配
例如,由根节点为每个叶子节点分配对应的参数集,获得作为叶子节点的第一转发设备的第一参数集。根节点向第一转发设备发送第一参数集。第一转发设备接收控制器发送的第一参数集。
获得方式四、第一转发设备自动生成本端的参数集。
例如,由第一转发设备根据设定的规则或者算法生成第一参数集。
上文结合四种方式,整体性的介绍了如何获得第一参数集的实现方式,下面针对具体如何确定第一参数集可能包含的参数举例说明,下面描述的确定参数的执行主体可以是网络管理员,也可以是控制器,或者是根节点,或者是第一转发设备自己,本实施例对确定参数的执行主体不做限定。
针对确定BFR-ID的实现方式,在一些实施例中,为一个BIER网络中每个BFER分配一个对应的BFR-ID,同一个BIER网络中不同BFER的BFR-ID不同。例如,如果一个BIER网络有3个BFER,则为3个BFER分配的BFR-ID分别为1、2和3。对于transit BFR而言,通常无需为transit BFR分配BFR-ID。可替代地,将transit BFR的BFR-ID分配为0。对于BFIR而言,可选地,不为BFIR分配对应的BFR-ID。可替代地,将BFIR的BFR-ID配置为0。或者,不仅为BFER分配对应的BFR-ID,也为BFIR分配一个对应的BFR-ID。在为BFIR分配BFR-ID的情况下,BFIR的BFR-ID与同一个BIER网络中每个BFER的BFR-ID不同。在一些实施例中,BFR-ID是基于BIER网络中BFER的数量确定的。例如,如果BIER网络中BFER的数量小于64,则在1-64的范围内依次为每个BFER分配BFR-ID。如果BIER网络中BFER的数量大于64且小于128台,则在1-128的范围内依次为每个BFER分配BFR-ID。
针对确定BSL的实现方式,在一些实施例中,从BIER的标准协议中规定的BSL的参考取值中,选择一个值作为BSL。目前,BIER的标准协议中BSL的参考取值包括64、128、512、1028、2048和4096中。在一些实施例中,收集BIER网络的拓扑,基于BIER网络的拓扑确定BFER的数量,选择一个大于BFER的数量的值,作为BSL。例如,从BIER的标准协议中规定的BSL的参考取值中,选择一个大于BFER的数量且与BFER数量最相近的值作为BSL。例如,如果BIER网络中BFER的数量小于64,则选择64作为BSL;如果BIER网络中BFER的数量大于64且小于128,则选择128作为BSL。
针对确定BFR prefix的实现方式,在一些实施例中,从第一转发设备的出接口中,选择一个loopback接口的IP地址作为BFR prefix。
步骤S502、第一转发设备在VPN内发送第一参数集。
通过将第一转发设备部署在VPN内,第一参数集的发送范围限定在VPN内部,能够达到的效果包括而不限于以下三个方面。
第一,有助于实现租户隔离。
在数据通信领域中,租户隔离是指不同VPN的转发表之间相互隔离,设备为每个VPN维护独立的转发表。相较于在公网发送参数集,导致参数集扩散至公网所有设备,进而造成要考虑公网内所有设备的参数建立BIER转发表而言,本实施例通过在VPN内发送参数集,有助于建立VPN对应的BIER转发表,由于建立BIER转发表时不需要考虑VPN外部设备的参数,从而实现不同VPN的BIER转发表相互独立,支持基于租户的BIER拓扑部署。
第二,有助于减少比特串的长度,提高转发性能。
在公网内部署BIER网络时,由公网内的BFR在公网中泛洪BIER信息时,由于公网内需要转发各个用户的流量,公网中需要部署的设备数量很多,组网规模很大,导致需要为大量设备分配BFR-ID。并且,为了让比特串足以表示每个设备是否具有接收组播流量的需求,比特串也需要很长。而比特串过长,会导致报文开销较大,此外,由于BIER转发过程中,设备通常会使用比特串中的每一个比特与F-BM中的每一个比特按位相与,因此比特串过长也会影响设备的转发性能。
而本实施例通过将BFR的部署位置限定在VPN内,可以根据VPN内的设备数量确定BFR-ID和比特串的长度,而由于一个VPN内BFR的数量比较少,因此BFR-ID的规划能够更集中,比特串的长度能够更短,所以减少了报文开销,提高设备的转发性能。例如,用户租用了一个VPN,部署了3个站点,组播源在站点A,组播接收者分布在站点B和站点C。在这一场景下,可以将站点A内一台设备配置为BFIR,将站点B内一台设备配置为BFER,站点C内一台设备配置为BFER,那么VPN内BFER的数量只有2个,BFR-ID分别配置为1和2即可,比特串的长度可以取协议推荐的BSL的最小值。
第三,可扩展性更好。
由于将参数集的发送范围限定在VPN内,当VPN发生扩容,比如VPN内新增一个站点时,不需要将新增站点的参数集发送给VPN外部的设备,而是将新增站点的参数集发送给VPN内部署的BFR即可,因此便于扩容,组网的灵活性和可扩展性更好。
针对发送第一参数集采用的方式,在一些实施例中,第一转发设备生成第一通告报文,第一通告报文包括上述第一参数集,第一转发设备在VPN内发送第一通告报文。也即是,将上述第一参数集中每个参数通过一个报文发布至VPN内。
针对发送第一参数集所基于的协议,即上述第一通告报文的协议类型,在一些实施例中,上述第一通告报文为BGP报文。进一步地,上述第一通告报文例如为BGP update报文。
在一些实施例中,上述第一通告报文包括第一地址族标识以及第一参数集。第一地址族标识包括而不限于AFI或者SAFI其中的一个或多个。在一些实施例中,第一地址族标识用于标识BGP EVPN。在另一些实施例中,第一地址族标识用于标识BGP VPN BIER。第一通告报文的具体格式可参考后文图8至图10的描述。
在SD-WAN隧道的端点设备之间通告参数集的场景下,由于参数集需要从一个站点跨越SD-WAN隧道所基于的传输网络到达另一个站点,而IGP或者私有协议由于不支持跨设备建立对等体(peer)关系,采用IGP泛洪参数集时,参数集需要在传输网络内部逐跳传输,导致占用网络带宽。而本实施例中,通过使用BGP来通告上述第一参数集,由于BGP允许跨设备建立peer关系,即两个IP层非直连的设备能够通过TCP建立peer关系,然后基于peer关系传递参数,因此参数集能够从一个站点跨越传输网络到达另一个站点,从而降低通告参数对传输网络的带宽占用,提高性能。此外,由于BGP提供了丰富的路径属性,本申请的一些可选的实施例中,可以利用路径属性实现控制参数的接收与发送等功能,从而适配更丰富的场景。
在VPN内的设备之间通告参数的场景下,由于BGP EVPN以及BGP VPN BIER这两种地址族,正是用来支持通告VPN内的信息或者说私网信息的,因此使用BGP EVPN以及BGPVPN BIER来通告上述第一参数集,与标准协议对BGP EVPN以及BGP VPN BIER定义的用途匹配,兼容性好。
针对发送第一参数集所基于的报文封装格式,在一些实施例中,上述第一通告报文包括NLRI字段以及一个或多个路径属性(path attribute)字段,NLRI字段携带BFRprefix以及VPN的标识其中的一个或多个,一个或多个路径属性(path attribute)字段携带BFR-ID、BSL、max-SI、BIER子域的ID、BIFT-ID以及SD-WAN隧道的参数其中的一个或多个。进一步地,上述路径属性例如为BGP传递路径属性(BGP transitive path attribute)。进一步地,上述路径属性例如为BGP扩展团体属性。
在一些实施例中,通过不同的路径属性字段分别携带BIER相关的参数以及SD-WAN隧道的参数。例如,上述第一通告报文包括第一扩展团体属性字段、第二扩展团体属性字段以及第三扩展团体属性字段,第一扩展团体属性字段包括BFR-ID、BSL、max-SI、subdomain-ID以及BIFT-ID其中的一个或多个,第二扩展团体属性字段包括第一隧道类型,第三扩展团体属性字段包括第一信息。第一扩展团体属性字段例如是BIER业务封装属性字段。第二扩展团体属性字段例如是SD-WAN封装属性字段。第三扩展团体属性字段例如是SD-WAN color属性字段。
以上通过步骤S502,针对一个转发设备如何将自己的参数集发送至所属VPN内另一个转发设备进行了举例说明,在一些实施例中,转发设备采用泛洪(flood)的方式在VPN内发送参数集。例如,第一转发设备不仅在VPN内发送本设备的第一参数集,如果第一转发设备接收到来自于VPN内其他BFR的参数集,第一转发设备也在VPN内发送其他BFR的参数集。又如,第一转发设备不仅向VPN内第二转发设备发送自己的第一参数集,还向VPN内除了第一转发设备自己、第二转发设备之外的其他所有BFR发送第一参数集。通过采用泛洪的方式发送参数集,实现VPN内每个BFR获得该VPN内所有BFR的参数集,以便VPN内所有BFR的参数集获得VPN内BIER网络的拓扑,便于计算从本节点到BIER网络中任意一个BFR的BIER转发路径,实现VPN内BIER转发路径计算。
步骤S503、VPN内的第二转发设备在VPN内接收第一参数集。
第一转发设备和第二转发设备位于同一个VPN内。第一转发设备和第二转发设备的角色包括多种情况。在一些实施例中,第一转发设备为根节点,第二转发设备为中间节点或者叶子节点。在另一些实施例中,第一转发设备为叶子节点,第二转发设备为根节点或者中间节点。在再一些实施例中,第一转发设备和第二转发设备为两跳不同的中间节点,本实施例对第一转发设备和第二转发设备的角色不做限定。
步骤S504、第二转发设备基于第一参数集获得第一对应关系。
第一对应关系用于转发目的叶子节点包括第一转发设备的组播数据报文。例如,第一对应关系是第二转发设备中BIFT中的表项。又如,第一对应关系是第二转发设备上BIRT中的表项。
在一些实施例中,第一对应关系包括第一转发设备的BFR-ID匹配的F-BM以及标识SD-WAN隧道的参数。可选地,第一对应关系还包括与第一转发设备的BFR-prefix匹配的下一跳。
上述第一转发设备的BFR-ID匹配的F-BM的形式例如是一个比特串。例如,F-BM中第一转发设备的BFR-ID对应的比特位置位。
上述与第一转发设备的BFR-prefix匹配的下一跳的数据形式包括多种实现方式。例如,第一对应关系中与第一转发设备的BFR-prefix匹配的下一跳包括下一跳所处的站点的标识、下一跳的CPE ID、第二转发设备上到达该下一跳的第一出接口、下一跳的第二出接口其中的任意一项或者多项的组合。
第一出接口是第二转发设备上与第一转发设备的BFR-prefix匹配的下一跳通信的接口。第一出接口例如是与SD-WAN隧道绑定的接口。例如,第一出接口是第二转发设备上与SD-WAN隧道绑定的loopback接口,又如是第二转发设备上与SD-WAN隧道绑定的tunnel接口。再如,第一出接口是第二转发设备上SD-WAN隧道对应的TNP。第二出接口是第一转发设备的BFR-prefix匹配的下一跳上与第二转发设备通信的接口。第二出接口例如是与SD-WAN隧道绑定的接口。例如,第二出接口是下一跳上与SD-WAN隧道绑定的loopback接口,又如是下一跳上与SD-WAN隧道绑定的tunnel接口,再如是下一跳上与SD-WAN隧道对应的TNP。
上述与第一转发设备的BFR-prefix匹配的下一跳在第一对应关系中所处的字段包括多种方式。可选地,第一对应关系包括BFR-NBR字段,BFR-NBR字段包括上述与第一转发设备的BFR-prefix匹配的下一跳。或者,第一对应关系包括BFR-NBR字段和第一字段,BFR-NBR字段包括与第一转发设备的BFR-prefix匹配的下一跳的BFR-prefix,第一字段包括与第一转发设备的BFR-prefix匹配的下一跳。例如,第一字段的字段名为下一跳。
例如,第一转发设备的BFR-ID为2,第一转发设备的BFR prefix为10.1.1.1,标识SD-WAN隧道的参数的值为SD-WAN。第二转发设备根据第一转发设备的BFR prefix订阅路由,确定到达第一转发设备的下一跳为第三转发设备,第三转发设备位于site 3中,site 3的site ID为333。第三转发设备的CPE ID为10.3.3.3。此外,第二转发设备确定第一转发设备的BFR-ID匹配的F-BM为0010。
在这一示例下,第二转发设备在BIFT中生成了表项例如包括如下表1示出的条目或者表2示出的条目。表1和表2均是对第一对应关系的举例说明,表1的含义是,如果接收到的报文中的比特串与F-BM(0010)相与后非全0,则需要通过SD-WAN隧道向site ID为333的下一跳转发报文。表2的含义是,如果接收到的报文中的比特串与F-BM(0010)相与后非全0,则需要通过SD-WAN隧道向CPE ID为10.3.3.3的下一跳转发报文。
表1
F-BM | 下一跳(BFR-NBR) | 出接口 |
0010 | 333 | SD-WAN |
表2
F-BM | 下一跳(BFR-NBR) | 出接口 |
0010 | 10.3.3.3 | SD-WAN |
上表中F-BM的长度为4是简化示意,F-BM的长度通常和比特串长度相等,设备上F-BM的长度以实际为准。
可选地,第一对应关系还包括第一转发设备所处的VPN的标识。例如,上述第一参数集还包括第一转发设备所处的VPN的标识,第二转发设备根据VPN的标识生成上述第一对应关系。例如,第一转发设备所处的VPN的标识为1,则第二转发设备在BIFT中生成了表项例如包括如下表3示出的条目或者表4示出的条目。表3和表4均是对第一对应关系的举例说明,表3的含义是,如果接收到的报文包括VPN 1的标识(1),且报文中的比特串与F-BM(0010)相与后非全0,则需要通过SD-WAN隧道向site ID为333的下一跳转发报文。表4的含义是,如果接收到的报文包括VPN 1的标识(1),且比特串与F-BM(0010)相与后非全0,则需要通过SD-WAN隧道向CPE ID为10.3.3.3的下一跳转发报文。可替代地,第二转发设备不是将VPN的标识添加至第一对应关系,而是确定第二转发设备上与VPN绑定的入接口,将第一对应关系添加至与VPN绑定的入接口对应的路由表中。
表3
VPN | F-BM | 下一跳(BFR-NBR) | 出接口 |
1 | 0010 | 333 | SD-WAN |
表4
VPN | F-BM | 下一跳(BFR-NBR) | 出接口 |
1 | 0010 | 10.3.3.3 | SD-WAN |
可选地,第一对应关系还包括第一转发设备的BSL、第一转发设备的max-SI、第一转发设备所在的BIER子域的ID以及第一转发设备的BIFT-ID中的一个或多个。
本实施例提供的方法,转发设备通过在VPN内通告BFR prefix以及用于标识SD-WAN隧道的参数,能够指示了BIER与SD-WAN之间具有关联关系,即,如果需要到达某个BFRprefix,则要经过SD-WAN隧道,因此有助于在SD-WAN中基于BIER转发数据报文,使得SD-WAN网络中的中间节点能够根据报文中比特串的置位情况,实现报文的复制转发,而无需感知组播组状态,也无需为每条组播数据流分别建立一个组播分发树。
以上通过图5实施例对VPN BIER层的配置进行了说明,下面对组播私网层的配置进行举例说明。
组播私网层的配置涉及根节点和叶子节点的控制面交互的流程。根节点通过与叶子节点进行交互,获知组播数据流需要发送给哪些目的叶子节点,根节点将目的叶子节点的BFR-ID合并,就获得了指定的组播源组信息对应的比特串,从而实现建立VPN BIER隧道。
所谓建立VPN BIER隧道,是指根节点获得了组播源组信息、标识VPN BIER隧道的隧道类型以及比特串之间的对应关系。通过获得这种对应关系后,当接收到包含组播源组信息的组播数据报文时,根节点通过查找该对应关系,获得了标识VPN BIER隧道的隧道类型以及比特串,根节点根据标识VPN BIER隧道的隧道类型,确定要在VPN BIER类型的路径上转发组播数据报文,则根据比特串,执行BIER转发流程,实现组播数据报文引导至VPNBIER隧道。
进一步地,由于叶子节点将组播源组信息以及BFR-ID一起通告给根节点,简化了叶子节点和根节点的信令交互流程,节省了根节点和叶子节点处理和收发控制面报文的开销,也节省了公网中传递控制面报文占用的网络带宽。
具体地,在传统的组播VPN技术(如NG MVPN)中,当叶子节点接收到来自组播接收者的加入消息时,首先,叶子节点和根节点之间会交互C-multicast路由,使得根节点获知指定组播源组信息对应组播数据流需要发送给哪些目的叶子节点。之后,根节点和叶子节点通过交互Intra-AS I-PMSI A-D route、S-PMSI A-D route以及leaf A-D route传递BIER参数(BFR-ID、BFR-prefix以及子域标识);之后,根节点根据leaf A-D route中的BIER参数建立BIER转发路径。
对这种信令交互流程分析可见,C-multicast路由要求携带组播源组信息而不要求携带BIER参数,leaf A-D route要求携带BIER参数而通常不携带组播源组信息。由于C-multicast路由、Intra-AS I-PMSI A-D route、S-PMSI A-D route以及leaf A-D route是通过在公网中分别传递BGP Update报文实现的。根节点需要和叶子节点分别交互传递携带BIER参数的BGP Update报文以及携带组播源组信息的BGP Update报文,才能获得建立BIER转发路径所需的信息(组播源组信息和BIER参数),导致处理和收发报文的开销大。公网中要先后分别传递携带BIER参数的BGP Update报文以及携带组播源组信息的BGP Update报文,也导致占用的带宽资源较大。而本申请的一些可选实施例中,由于叶子节点在接收到加入消息后,将组播源组信息和BIER参数通过同一个通告报文一起传递给根节点,相当于将建立BIER转发路径所需的信息(组播源组信息和BIER参数)都告诉给了根节点,因此根节点和叶子节点后续无需单独交互Intra-AS I-PMSI A-D route、S-PMSI A-D route以及leafA-D route来传递BIER参数,从而节省交互Intra-AS I-PMSI A-D route、S-PMSI A-Droute以及leaf A-D route带来的信令开销和带宽资源。
下面通过图6所示实施例对组播私网层的参数配置以及获取对应关系的过程举例说明,图6实施例以VPN内第一转发设备向VPN内第二转发设备通告参数的流程为例描述。图6所示实施例中,第一转发设备是叶子节点,第二转发设备是根节点,第一转发设备和第二转发设备处于同一个VPN内。
图6是本申请实施例提供的一种组播配置方法的流程图。图6所示方法包括以下步骤S601至步骤S604。
步骤S601,VPN内的第一转发设备获得第二参数集。
第二参数集包括组播源组信息、第一转发设备的BFR-ID以及第二隧道类型。
组播源组信息用于标识组播数据流对应的组播组,可选地还标识组播数据流的组播源。在一些实施例中,组播源组信息包括组播源地址和组播组的地址。在另一些实施例中,组播源组信息包括组播汇聚点(RP)的地址和组播组的地址。
针对获得组播源组信息的方式,在一些实施例中,第一转发设备接收来自VPN内组播接收者的加入消息。第一转发设备从加入消息中获得组播源组信息。加入消息包括组播源组信息。上述加入消息例如是IGMP报文,比如是IGMP中的成员报告报文,又如是PIM报文。在另一些实施例中,第一转发设备接收来自VPN内组播接收者的离开消息,离开消息包括组播源组信息。
第二隧道类型用于标识第一转发设备与第一转发设备之间的隧道为VPN BIER隧道。例如,第二隧道类型为一个字符串,比如是“VPN BIER”,或者是一个标识VPN BIER隧道的数字。可选地,第一转发设备根据控制面配置获得第二隧道类型。
可选地,第二参数集还包括第一转发设备的BFR prefix。
可选地,第二参数集还包括第一转发设备的max-SI、第一转发设备所处的BIER子域的ID以及第一转发设备的BSL其中的一个或多个。
可选地,第二参数集还包括第一转发设备所处的VPN的标识。
可选地,第二参数集还包括作为根节点的第二转发设备所处的站点的标识或者第二转发设备的CPE ID。
步骤S602,VPN内的第一转发设备向VPN内第二转发设备发送第二参数集。
在一些实施例中,第一转发设备生成第二通告报文,第二通告报文包括第二参数集,第一转发设备向第二转发设备发送第二通告报文。第二通告报文包括第二地址族标识以及第二参数集,第二地址族标识用于标识NG MVPN或者BGP EVPN。第二地址族标识包括而不限于AFI或者SAFI其中的一个或多个。在一些实施例中第二地址族标识用于标识NGMVPN。在另一些实施例中,第二地址族标识用于标识BGP EVPN。第二通告报文的具体格式可参考后文图12至图17的描述。
例如,第二通告报文包括PTA属性以及虚拟路由转发路由器入口VRI(virtualrouter forwarding router import,VRF router import,VRI)属性。PTA属性中包括第二隧道类型、第一转发设备所处的VPN的标识、第一转发设备的BFR-ID、第一转发设备的max-SI、第一转发设备所处的BIER子域的ID以及第一转发设备的BSL。VRI属性包括VPN的标识,以及第二转发设备所处的站点的标识或者第二转发设备的CPE ID。可选地,PTA属性包括MPLS标签(MPLS label)字段,MPLS label字段包括VPN的标识。
步骤S603,第二转发设备在VPN内接收第二参数集。
步骤S604,第二转发设备基于第二参数集获得第二对应关系。
在一些实施例中,第二对应关系包括组播源组信息、第二隧道类型以及与第一转发设备的BFR-ID匹配的第一比特串。例如,第二对应关系如下表5所示。
表5
(S,G) | tunnel type | 比特串 |
S1,G1 | VPN BIER | 0111 |
在一些实施例中,第二对应关系包括两张独立的表中的条目。例如,第二对应关系包括第四对应关系和第五对应关系。第四对应关系是第二转发设备上组播转发表中的表项,第四对应关系包括组播源组信息和第二转发设备上第二出接口。第二出接口是虚拟出接口。第五对应关系是第二出接口绑定的转发表。第五对应关系包括第二出接口、第二隧道类型以及与第一转发设备的BFR-ID匹配的第一比特串。例如,请参考下表6和表7,表6是对第四对应关系的具体示例,表7是第五对应关系的具体示例。表6的含义是,当接收到组播数据报文时,如果组播数据报文中的组播源地址为S1且组播组地址为G1,则要通过接口1转发组播数据报文。接口1为一个虚拟的出接口,接口1用于迭代至表7。表7的含义是,当发现出接口为接口1时,要基于比特串0111,通过隧道类型为VPN BIER的路径转发组播数据报文。
表6
表7
出接口 | tunnel type | 比特串 |
接口1 | VPN BIER | 0111 |
本实施例提供的方法,叶子节点通过在通告加入或者退出时携带BIER参数,以便根节点使用BIER参数实现建立VPN BIER隧道。
以上对控制面的配置进行了介绍,下面对基于上述控制面的配置处理数据报文的流程举例说明。
图7是本申请提供的一种处理组播数据报文的方法的流程图。图7所示方法的交互主体包括组播源、根节点、中间节点、叶子节点以及组播接收者。组播源、根节点、中间节点、叶子节点以及组播接收者位于同一个VPN内。根节点位于VPN内的第一站点,中间节点位于VPN内的第二站点,叶子节点位于VPN内的第三站点。根节点和中间节点之间存在第一SD-WAN隧道。中间节点和叶子节点之间存在第二SD-WAN隧道。换句话说,第一SD-WAN隧道的2个端点是根节点和中间节点。第二SD-WAN隧道的2个端点是中间节点和叶子节点。
图7所示方法包括以下步骤S700至步骤S706。
步骤S700,组播源发送第一组播数据报文。
例如,组播源位于VPN内。又如,组播源位于公网,组播源通过与VPN绑定的出接口发送第一组播数据报文,使得第一组播数据报文到达BFIR。
步骤S701,VPN内第一站点内的BFIR接收第一组播数据报文。
第一组播数据报文包括组播源组信息。例如,第一组播数据报文中的源地址包括组播源地址,第一组播数据报文中的目的地址包括组播组地址。
步骤S702,BFIR基于第一组播数据报文,获得第二组播数据报文。
第二组播数据报文是由第一组播数据报文经过BIER封装和SD-WAN隧道封装后得到的数据报文。
第二组播数据报文包括第一报文头、第二报文头和第一组播数据报文的载荷。第一报文头是指SD-WAN隧道封装中要求携带的报文头。第二报文头是指BIER封装中要求携带的报文头。通过封装第一报文头,使得组播数据报文能够从SD-WAN隧道的一个端点穿越传输网络转发至SD-WAN隧道的另一个端点。通过封装第二报文头,使得组播数据报文能够从一跳BFR到达下一跳BFR。由于既携带第一报文头,又携带第二报文头,相当于给组播数据报文添加了两层隧道封装,因此组播数据报文能够从作为SD-WAN隧道一端的BFR穿越传输网络,到达作为SD-WAN隧道另一个端点的BFR。
下面对第二组播数据报文中第一报文头和第二报文头举例说明,第二组播数据报文的封装格式的实施细节可参考后文标题“组播数据报文的封装格式”后的描述。
一、第一报文头
第一报文头可以是任意一种IP overlay隧道头。例如,第一报文头包括一个隧道头以及一个IP头。IP头封装于隧道头的外层,用于通过IP路由的方式在SD-WAN隧道所基于的传输网络内逐跳转发。
第一报文头的类型包括多种情况。例如,第一报文头包括GRE扩展头以及IP头。又如,第一报文头包括GRE头以及IP头。例如,第一报文头包括VXLAN头以及IP头。例如,第一报文头包括VXLAN-GPE头以及IP头。例如,第一报文头包括GENEVE头以及IP头。第一报文头中IP头之外的部分也可以称为SD-WAN头。第一报文头的格式的更多细节可参考后文中标题“SD-WAN头”后的描述。
第一报文头包括SD-WAN相关的参数。例如,第二组播数据报文中的第一报文头包含第一SD-WAN隧道的2个端点设备的IP地址,即BFIR的IP地址以及transit BFR的IP地址。例如,第一报文头包括源地址字段和目的地址字段。第一报文头中的源地址字段包括BFIR的IP地址。第一报文头中的目的地址字段包括transit BFR的IP地址。例如,BFIR通过第一WAN接口与transit BFR的第二WAN接口建立第一SD-WAN隧道。第一报文头中的源地址包括BFIR的第一WAN接口的IP地址。第二报文头中的目的地址包括transit BFR的第二WAN接口的IP地址。
由于第二组播数据报文中第一报文头的目的地址字段携带transit BFR的IP地址,因此报文在第一SD-WAN隧道所基于的传输网络内传输时,传输网络内的设备基于transit BFR的IP地址,采用IP路由的方式,能够将第二组播数据报文逐跳转发至transitBFR,实现第二组播数据报文穿越传输网络。
在一些实施例中,第二组播数据报文中的第一报文头包含第一SD-WAN隧道的2个端点设备的IPv4地址,例如。第一报文头中的源地址字段包括BFIR的IPv4地址。第一报文头中的目的地址字段包括transit BFR的IPv4地址。通过这种方式,支持第一SD-WAN隧道所基于的传输网络为IPv4网络的场景,使得传输网络中的各个IPv4节点根据transit BFR的IPv4地址,能够将第二组播数据报文转发至transit BFR。
在一些实施例中,第二组播数据报文中的第一报文头包含第一SD-WAN隧道的2个端点设备的IPv6地址。例如。第一报文头中的源地址字段包括BFIR的IPv6地址。第一报文头中的目的地址字段包括transit BFR的IPv6地址。通过这种方式,支持第一SD-WAN隧道所基于的传输网络为IPv6网络的场景,使得传输网络中的各个IPv6节点根据transit BFR的IPv6地址,能够将第二组播数据报文转发至transit BFR。SD-WAN隧道的端点位于站点内。例如,第一SD-WAN隧道的2个端点设备为站点1内的BFIR以及站点2内的transit BFR。
针对BFIR封装第一报文头时,BFIR如何获得第一报文头所需携带的transit BFR的IP地址,在一些实施例中,BFIR根据用于标识第一SD-WAN隧道的参数以及第三对应关系,获得transit BFR的IP地址。例如,BFIR以用于标识第一SD-WAN隧道的参数为索引,查询第三对应关系,获得用于标识第一SD-WAN隧道的参数对应的目的IP地址,作为第一报文头中的目的IP地址。
BFIR保存的第三对应关系包括用于标识第一SD-WAN隧道的参数以及transit BFR的IP地址。例如,第三对应关系包括transit BFR的site ID以及transit BFR的IP地址。又如,第三对应关系包括transit BFR的CPE ID以及transit BFR的IP地址。又如,第三对应关系包括第一SD-WAN隧道的标签以及transit BFR的IP地址。
以用于标识第一SD-WAN隧道的参数为transit BFR的site ID为例,例如,transitBFR位于第二站点,第二站点的site ID为2,第三对应关系如下表8所示,BFIR根据site ID为2,查询表8,得到源IP地址为10.5.5.6,目的IP地址为10.1.1.1,因此BFIR在第一报文头中的源IP地址填10.5.5.6,在第一报文头中的目的IP地址填10.1.1.1。
表8
site ID | 源IP | 目的IP |
2 | 10.5.5.6 | 10.1.1.1 |
以用于标识第一SD-WAN隧道的参数为transit BFR的CPE ID为例,例如,BFIR根据transit BFR的CPE ID以及第三对应关系,获得transit BFR的IP地址。例如,transit BFR的CPE ID为10.2.2.2,第三对应关系如下表9所示,BFIR根据CPE ID为10.2.2.2,查询表9,得到源IP地址为10.5.5.6,目的IP地址为10.1.1.1,因此BFIR在第一报文头中的源IP地址填10.5.5.6,在第一报文头中的目的IP地址填10.1.1.1。
表9
CPE ID | 源IP | 目的IP |
10.2.2.2 | 10.5.5.6 | 10.1.1.1 |
以用于标识第一SD-WAN隧道的参数为第一SD-WAN隧道的标签为例,例如,BFIR根据第一SD-WAN隧道的标签以及第三对应关系,获得transit BFR的IP地址。例如第一SD-WAN隧道的标签为201,第三对应关系如下表10所示,BFIR根据如第一SD-WAN隧道的标签为201,查询表10,得到源IP地址为10.5.5.6,目的IP地址为10.1.1.1,因此BFIR在第一报文头中的源IP地址填10.5.5.6,在第一报文头中的目的IP地址填10.1.1.1。
表10
SD-WAN隧道的标签 | 源IP | 目的IP |
201 | 10.5.5.6 | 10.1.1.1 |
针对BFIR如何确定要封装第一报文头,或者说如何确定要通过SD-WAN隧道转发接收到的组播数据报文,可选地,BFIR根据BFER的BFR-ID匹配的第一比特串以及第一对应关系,获得标识第一SD-WAN隧道的参数。BFIR根据标识第一SD-WAN隧道的参数,确定要通过第一SD-WAN隧道转发组播数据报文,或者说要迭代至第一SD-WAN隧道,因此BFIR执行封装上述第一报文头以及查询第三对应关系的步骤。例如,BFIR使用第一比特串查询BIFT,使用第一比特串与BIFT中每条表项中的F-BM分别进行与操作。如果BIFT中一条表项中的F-BM与第一比特串与操作的结果非全0,也即是第一比特串命中了BIFT中一条表项,则BFIR继续读取该表项中F-BM对应的出接口和下一跳,从F-BM对应的出接口或者下一跳中获得上述标识第一SD-WAN隧道的参数。
例如,BFIR获得的第一比特串为0110,BFIR使用第一比特串查询上文中的表1,确定第一比特串0110与表1中F-BM0010相与后非全0,则继续读取表1中的出接口和下一跳,BFIR确定出接口为“SD-WAN”,下一跳为site 3的site ID“333”,则BFIR根据site3的siteID“333”查询第三对应关系。
BFIR如何获得BFER的BFR-ID匹配的第一比特串可参考后文的描述。
在一些实施例中,第一报文头还包括VPN的标识。第一报文头如何携带VPN的标识可参考后文标题“SD-WAN头”后的描述。由于第一报文头中携带了VPN的标识,第一,标识组播数据报文属于哪个VPN,以便BFER在对应的VPN内查找组播路由表转发报文,进而有助于租户隔离;第二,第二报文头中无需携带上游的VPN标签,因此避免了携带VPN标签带来的局限性,例如避免由于携带VPN标签导致仅适用于MPLS网络。
针对BFIR如何获得VPN的标识,在一些实施例中,BFIR基于组播源组信息以及第二对应关系,获得VPN的标识。例如,第二对应关系不仅包括组播源组信息、第二隧道类型以及与BFER的BFR-ID匹配的第一比特串,还包括VPN的标识,BFIR通过查找第二对应关系,获得VPN的标识。可替代地,BFIR不是通过查找对应关系的方式获得VPN的标识,而是建立入接口与VPN之间的绑定关系。BFIR根据接收到第一组播数据报文的接口,确定该接口绑定的VPN的标识。
二、第二报文头
第二报文头可以是任意一种BIER封装中携带比特串的报文头。例如,第二报文头包括而不限于RFC8296定义的BIER头、BIERv6头、BIERin6头以及G-BIER头其中任一项。第二报文头封装于第一报文头的内层。第二报文头的格式的更多细节可参考后文中标题“BIER头”后的描述。
第二组播数据报文中的第二报文头包括第一BIER参数。例如,第一BIER参数包括BFER的BFR-ID对应的第二比特串。由于第二报文头中携带了BFER的BFR-ID对应的比特串,因此transit BFR根据第二报文头中比特串的置位情况,能够确定要将报文转发至BFER。
针对BFIR封装第二报文头时,BFIR如何获得第二报文头所需携带的第二比特串,在一些实施例中,BFIR根据BFER的BFR-ID匹配的第一比特串以及第一对应关系,获得第二比特串。第二比特串是基于第一比特串以及第一对应关系中的F-BM获得的。例如,第二比特串是基于第一比特串与第一对应关系中的F-BM进行与操作获得的。
针对BFIR如何获得BFER的BFR-ID匹配的第一比特串,在一些实施例中,BFIR从第一组播数据报文中获得组播源组信息。BFIR基于组播源组信息以及第二对应关系,获得第一比特串。第二对应关系包括组播源组信息、第二隧道类型以及与第一转发设备的BFR-ID匹配的第一比特串。
以上描述的获得第二比特串的过程例如通过两次查表实现。例如,先查找组播转发表,获得第一比特串,再查找BIFT,获得第二比特串。作为示例,第一组播数据报文中的组播源地址为S1,组播组地址为G1。BFIR根据组播源组信息(S1,G1),查找组播转发表。BFIR确定(S1,G1)命中组播转发表了如表5所示的条目,因此BFIR根据表5中的第一比特串0111,进一步查找BIFT中的表项。BFIR根据第一比特串0111与BIFT中的F-BM相与,获得第二比特串。
可替代地,将BFIR上查询BIFT以及查询组播转发表简化为一次查表。例如,BFIR上根据组播源组信息,查找到组播源组信息对应的比特串后,BFIR将组播源组信息对应的比特串作为要封装至第二报文头的比特串,省略根据组播源组信息对应的比特串查找BIFT的步骤。或者,BFIR不是通过查表的方式获得要封装至第二报文头的比特串,而是在接收到组播数据报文时,生成要封装至第二报文头的比特串。例如,BFIR根据组播源组信息,查找目的BFER集合中每个目的BFER的BFR-ID,根据BFER集合中每个目的BFER的BFR-ID以及比特串长度生成比特串,将生成的比特串封装至第二报文头中。
作为BFIR的设备可能保存有多种类型的隧道的参数,比如,设备使能了多种组播协议,设备上既有BIER类型的隧道参数,也有PIM类型的隧道参数。又如,设备上既保存了公网BIER类型的隧道参数,也有VPN BIER类型的隧道参数。针对如何确定要通过VPN BIER隧道转发组播数据报文,或者说如何确定需要执行BIER转发流程,可选地,BFIR基于组播源组信息以及第二对应关系,获得第二隧道类型。BFIR根据第二隧道类型,确定第一组播数据报文所需经过的隧道类型为VPN BIER隧道,因此BFIR执行上述获得第二比特串以及封装第二报文头的步骤。
在一些实施例中,第二报文头中的第一BIER参数还包括BIFT-ID。例如,第二组播数据报文中的第二报文头包含transit BFR的BIFT-ID。由于第二报文头中携带了transitBFR的BIFT-ID,因此transit BFR根据第二报文头中的BIFT-ID,能够找到对应的BIER转发表,以便根据比特串与该BIER转发表中的F-BM执行BIER转发流程。
针对BFIR如何获得transit BFR的BIFT-ID,在一些实施例中,BFIR从第一组播数据报文中获得组播源组信息。BFIR基于组播源组信息以及第二对应关系,获得transit BFR的BIFT-ID。例如,第二对应关系不仅包括以上描述的组播源组信息、第二隧道类型以及第一比特串,还包括transit BFR的BIFT-ID,BFIR通过查找第二对应关系,在获得第二隧道类型以及第一比特串时,也获得了transit BFR的BIFT-ID。又如,第二对应关系不仅包括以上描述的组播源组信息、第二隧道类型以及第一比特串,还包括transit BFR的BSL、transitBFR的SD和transit BFR的SI,BFIR根据通过查找第二对应关系,获得transit BFR的BSL、transit BFR的SD和transit BFR的SI,BFIR根据BSL、SD和SI确定transit BFR的BIFT-ID。
在一些实施例中,第二报文头中的第一BIER参数还包括End.BIER地址。又如,第二组播数据报文中的第二报文头包含transit BFR的End.BIER地址。由于第二报文头中携带了transit BFR的End.BIER地址,而End.BIER地址与transit BFR保存的BIER转发的指令绑定,因此transit BFR根据第二报文头中的End.BIER地址,能够确定要通过BIER方式转发报文。此外,由于End.BIER地址的形式是IPv6地址,因此利用IPv6单播路由的可达性,能够跨越不支持BIER转发的IPv6节点。
针对BFIR如何获得transit BFR的End.BIER地址,在一些实施例中,BFIR从第一组播数据报文中获得组播源组信息。BFIR基于组播源组信息以及第二对应关系,获得transitBFR的End.BIER地址。例如,第二对应关系不仅包括以上描述的组播源组信息、第二隧道类型以及第一比特串,还包括transit BFR的End.BIER地址,BFIR通过查找第二对应关系,在获得第二隧道类型以及第一比特串时,也获得了transit BFR的End.BIER地址。
以上描述的获得第二组播数据报文的特征可以任意结合。作为一种结合方式的示例,BFIR接收到第一组播数据报文时,首先根据接收到第一组播数据报文的入接口绑定的VPN以及第一组播数据报文中的组播源组信息,查找该VPN对应的组播转发表(第二对应关系),从组播转发表中获得组播源组信息对应的隧道类型、BSL、SD、SI以及第一比特串。BFIR根据隧道类型为VPN BIER隧道,确定要走BIER转发。BFIR根据第一比特串,向第一组播数据报文封装第二报文头。之后,BFIR根据BSL、SD、SI,获得BIFT-ID。BFIR根据第一比特串,查找BIFT-ID对应的BIFT。BFIR根据第一比特串与BIFT中的第一F-BM进行与操作。BFIR根据第一比特串与BIFT中的第一F-BM相与非全0,确定要向第一F-BM对应的下一跳转发报文,并将第二报文头中的比特串从第一比特串更新为第一比特串与BIFT中的第一F-BM相与的结果(第二比特串)。BFIR根据BIFT中第一F-BM对应于标识第一SD-WAN隧道的参数,确定要通过第一SD-WAN隧道转发报文。BFIR根据BIFT中第一F-BM对应的下一跳所处的站点标识、CPE ID或者第一SD-WAN隧道的标签,查找SD-WAN隧道连接表(第三对应关系),获得BFIR的WAN接口的IP地址以及下一跳的WAN接口的IP地址。BFIR根据获得的IP地址以及VPN的标识,向第二报文头外层封装第一报文头。第一报文头中源地址为BFIR的WAN接口的IP地址,目的地址为下一跳的WAN接口的IP地址,并携带VPN的标识。
步骤S703,BFIR发送第二组播数据报文。
例如,BFIR通过第一SD-WAN隧道发送第二组播数据报文。例如,BFIR通过用于建立第一SD-WAN隧道的WAN接口发送第二组播数据报文。
步骤S704,VPN内第二站点的transit BFR接收第二组播数据报文。第二组播数据报文包括与BFER的BFR-ID对应的第一比特串。
例如,transit BFR通过第一SD-WAN隧道接收第二组播数据报文。例如,transitBFR通过用于建立第一SD-WAN隧道的WAN接口接收第二组播数据报文。
步骤S705,transit BFR基于第二组播数据报文和第一对应关系,获得第三组播数据报文。
第三组播数据报文包括第一报文头、第二报文头和第二组播数据报文的载荷。
第三组播数据报文中第一报文头和第二报文头可参考上文对第二组播数据报文的描述,下面重点说明第三组播数据报文的报文头与第二组播数据报文的报文头携带的参数的区别。
第三组播数据报文中的第一报文头包含第二SD-WAN隧道的2个端点设备的IP地址,即transit BFR的IP地址以及BFER的IP地址。例如,第一报文头包括源地址字段和目的地址字段。第一报文头中的源地址字段包括transit BFR的IP地址。第一报文头中的目的地址字段包括BFER的IP地址。例如,transit BFR通过第三WAN接口与BFER的第四WAN接口建立第二SD-WAN隧道。第三组播数据报文中的第一报文头中的源地址包括transit BFR的第三WAN接口的IP地址。第三组播数据报文中的第一报文头中的目的地址包括BFER的第四WAN接口的IP地址。
由于第三组播数据报文中第一报文头的目的地址字段携带BFER的IP地址,因此报文在第二SD-WAN隧道所基于的传输网络内传输时,传输网络内的设备基于BFER的IP地址,采用IP路由的方式,能够将第二组播数据报文逐跳转发至BFER的IP地址,实现第三组播数据报文穿越传输网络。
第三组播数据报文中第一报文头中的源地址和目的地址可以是IPv4地址,也可以是IPv6地址。
可选地,transit BFR解封装第二组播数据报文中第一报文头,根据第二SD-WAN隧道的2个端点设备的IP地址生成新的第一报文头,封装生成的第一报文头。或者,transitBFR根据第二SD-WAN隧道的2个端点设备的IP地址,更新第二组播数据报文中第一报文头的源地址和目的地址。
针对transit BFR封装第一报文头时,transit BFR如何获得第一报文头所需携带的BFER的IP地址,在一些实施例中,transit BFR根据用于标识第二SD-WAN隧道的参数以及第三对应关系,获得BFER的IP地址。例如,transit BFR以用于标识第二SD-WAN隧道的参数为索引,查询第三对应关系,获得用于标识第二SD-WAN隧道的参数对应的目的IP地址,作为第一报文头中的目的IP地址。
transit BFR保存的第三对应关系包括用于标识第二SD-WAN隧道的参数以及BFER的IP地址。例如,第三对应关系包括BFER的site ID以及BFER的IP地址。又如,第三对应关系包括BFER的CPE ID以及BFER的IP地址。又如,第三对应关系包括第二SD-WAN隧道的标签以及BFER的IP地址。
以用于标识第二SD-WAN隧道的参数为BFER的site ID为例,例如,BFER位于第三站点,第三站点的site ID为3,第三对应关系如下表11所示,transit BFR根据site ID为3,查询表11,得到源IP地址为10.2.2.2,目的IP地址为10.3.3.3,因此transit BFR将第一报文头中的源IP地址更新为10.2.2.2,将第一报文头中的目的IP地址更新为10.3.3.3。
表11
site ID | 源IP | 目的IP |
3 | 10.2.2.2 | 10.3.3.3 |
第三组播数据报文中的第二报文头包括第二BIER参数。在一些实施例中,第二BIER参数是基于第一BIER参数以及transit BFR保存的对应关系获得的。例如,transitBFR根据查表获得的BIER参数,更新第二报文头原本携带的BIER参数。
例如,第二BIER参数包括BFER的BFR-ID对应的第三比特串。第三比特串是基于第二组播数据报文中第二报文头中的第二比特串以及第一对应关系中的F-BM获得的。例如,transit BFR解析第二组播数据报文中第二报文头,获得第二比特串;transit BFR基于第二比特串查找第一对应关系,对第二比特串与第一对应关系中的F-BM进行与操作,获得第三比特串。
针对transit BFR如何确定要通过SD-WAN隧道转发接收到的组播数据报文,可选地,transit BFR根据BFER的BFR-ID匹配的第二比特串以及第一对应关系,获得标识第二SD-WAN隧道的参数。transit BFR根据标识第二SD-WAN隧道的参数,确定要通过第二SD-WAN隧道转发组播数据报文,或者说要迭代至第二SD-WAN隧道,因此transit BFR执行封查询第三对应关系的步骤。例如,transit BFR使用第二比特串查询BIFT,基于第二比特串与BIFT中每条表项中的F-BM分别进行与操作。如果BIFT中一条表项中的F-BM与第二比特串与操作的结果非全0,也即是第二比特串命中了BIFT中一条表项,则transit BFR继续读取该表项中F-BM对应的出接口和下一跳,从F-BM对应的出接口或者下一跳中获得上述标识第二SD-WAN隧道的参数。
为了实现租户隔离,transit BFR上可能存在多个VPN的转发表,每个转发表保存对应VPN的表项。针对这一场景,transit BFR可以从第二组播数据报文中的第一报文头获得VPN的标识,基于VPN的标识以及第一对应关系,获得上述第三比特串。
作为示例,transit BFR接收到第二组播数据报文时,首先解封装第二组播数据报文中的第一报文头,获得第一报文头中VPN的标识,然后解析第二组播数据报文中的第二报文头,获得第二报文头中的比特串以及SD。然后transit BFR根据VPN的标识查找BIFT,使用第二报文头中的比特串与BIFT中的F-BM进行与操作,如果与操作的结果非全0则转发报文。
步骤S706,transit BFR发送第三组播数据报文。
例如,transit BFR通过第二SD-WAN隧道发送第三组播数据报文。例如,transitBFR通过用于建立第二SD-WAN隧道的WAN接口发送第三组播数据报文。
步骤S707,VPN内第三站点的BFER接收第三组播数据报文。
例如,BFER通过第二SD-WAN隧道发送第三组播数据报文。例如,BFER通过用于建立第二SD-WAN隧道的WAN接口接收第三组播数据报文。
步骤S708,VPN内第三站点内BFER基于第三组播数据报文,获得第四组播数据报文。
例如,BFER解封装第三组播数据报文中的第一报文头以及第二报文头,获得第四组播数据报文。
例如,BFER首先解封装第一报文头,获得第一报文头中VPN的标识。然后BFER解析第二报文头,获得第二报文头中的第三比特串。BFER根据VPN的标识查找BIFT,使用第三比特串与BIFT中的F-BM进行与操作,确定第三比特串与BFER本节点的BFR-ID对应的比特串匹配,则解封装第二报文头,并根据VPN的标识以及组播源组信息查找VPN对应的组播转发表,获得组播源组信息对应的出接口,通过该出接口发送第四组播数据报文。
步骤S709,BFER向组播接收者发送第四组播数据报文。
本实施例提供的方法,通过使用SD-WAN和BIER组播结合的报文转发方式,使得BIER封装的组播数据可以穿越传输网络(公网Internet或MPLS网络),不需要公网支持组播转发。
控制面报文的封装格式
下面对通告第一参数集所基于的报文封装格式举例说明,以下描述的报文格式是上述实施例中第一通告报文格式的具体示例。
方式一、使用BGP EVPN IP prefix路由通告第一参数集。
图8是本申请实施例提供的一种BGP EVPN IP prefix路由NLRI格式示意图。第一通告报文例如具有图8所示的格式。图8所示的NLRI中,路由标识符(Route Distinguisher,RD)字段包括发送第一参数集的设备上部署BIER的L3VPN实例(即BIER网络所在的VPN)配置的路由标识符(RD)值。以太网分段标识(Ethernet Segment Identifier)为PE与某一CE的连接定义的唯一标识。IP prefix Length字段包括L3 VPN下配置的BFR prefix的长度。IPprefix字段包括L3VPN下配置的BFR prefix。网关IP地址(gateway IP address,GW IPAddress)字段包括默认网关地址。MPLS label字段包括部署BIER的L3VPN实例配置的VN-ID。
方式二:使用BGP BIER VPN地址族路由通告第一参数集。
图9是本申请实施例提供的一种BGP BIER VPN prefix路由NLRI格式示意图。第一通告报文例如具有图9所示的格式。图9所示的NLRI字段中,路由标识符(RD)字段包括发送第一参数集的设备上部署BIER的L3VPN实例(即BIER网络所在的VPN)配置的路由标识符(RD)值。IP prefix Length字段包括VPN内BFR prefix的长度,根据RFC 8279,该值固定为32(IPv4)或128(IPv6)。IP prefix字段包括VPN内的BFR prefix。
图10是对上述第一通告报文中BIER业务封装属性字段的具体示例。如图10中(a)所示,BIER业务封装属性字段包括一个sub-TLV,sub-TLV中的value字段包括BFR-ID以及sub domain-ID。图10中(a)所示的sub-TLV包含图10中(b)示出的sub-sub-TLV。sub-sub-TLV包含BSL、max-SI以及BIFT-ID。
图11中(a)是对第一通告报文中SD-WAN封装扩展团体属性的格式的具体示例。如图11中(a)所示,SD-WAN封装扩展团体属性包括隧道类型(tunnel type)字段,隧道类型字段的取值标识SD-WAN隧道。图11中(b)是对第一通告报文中color扩展团体属性的格式的具体示例。如图11中(b)所示,color扩展团体属性包括颜色值(color value)字段,颜色值字段的取值为site ID或者CPE ID。
下面对通告第二参数集所基于的报文封装格式举例说明,参见下述方式一至方式三,以下描述的报文格式是上述实施例中第二通告报文格式的具体示例。
方式一、使用标准的NG MVPN通告第二参数集。
VPN内部署标准的NG MVPN。叶子节点使用MVPN C-multicast路由向根节点通告overlay组播加入。I-PMSI隧道或S-PMSI隧道迭代VPN内BIER子域。MVPN x-PMSI AD路由和leaf A-D路由携带PTA字段,叶子节点使用VPN内BIER参数填充PTA字段。
例如,请参考图12,图12示出了MVPN或EVPN路由VPN BIER PTA字段格式示意图。第二通告报文例如具有图12示出的格式。图12中PTA字段的关键信息填充如下。
flag字段包括发送第二参数集的设备上部署BIER的L3VPN实例配置的路由标识符(RD)值。
tunnel type:标识隧道类型为VPN BIER。
MPLS label:L3VPN下配置的VN-ID。
BIER子域标识(sub-domain-id):运营商组播业务接口(inclusive providermulticast service interface,I-PMSI)隧道或选择性组播业务接口(selectiveprovider multicast service interface,S-PMSI)隧道关联的VPN BIER sub-domain。
BFR-ID:I-PMSI或S-PMSI隧道关联的VPN BIER BFR-ID。
BFR-prefix:I-PMSI或S-PMSI隧道关联的VPN BIER BFR-prefix地址。
方式二、使用BGP EVPN通告第二参数集。
使用扩展的BGP EVPN路由,用于三层加入通告和隧道建立:x-PMSI AD路由、leafA-D路由或选择性组播以太网标签路由(selective multicast ethernet tag route,SMET)路由。路由NLRI中的组播源地址和组播组地址用于承载组播源组信息,Originator地址填充叶子节点的组播标识,如MVPN-ID或EVPN源地址(EVPN source)。BGP EVPN路由携带PTA字段,封装同方式一。
图13是BGP EVPN S-PMSI A-D路由NLRI格式示意图,S-PMSI A-D路由的格式可参考图13。
图14是BGP EVPN leaf A-D路由NLRI格式示意图。leaf A-D的格式可参考图14,图14中Route Key部分为SPMSI A-D。
图15是BGP EVPN SMET路由NLRI格式示意图,SMET路由的格式可参考图15。
方式三、使用NG MVPN地址族扩展的新类型路由通告第二参数集。
NG MVPN地址族扩展新增一种类型(type)路由,用于C-Multicast路由的通告,不需要leaf-AD路由,新增路由关键信息为:(*,G)加入路由的关键字(key)包括路由标识符(RD)、Source AS、RP、G和Originating Router Address;(S,G)加入路由的关键字包括路由标识符(RD)、Source AS、S、G和Originating Router Address。
不管(*,G)还是(S,G)都需要携带VRI属性和PTA(PMSI tunnel attribute)属性。扩展路由的格式例如图16或者图17所示。图16是(*,G)加入路由的NLRI的格式示意图,图17是(S,G)加入路由的NLRI的格式示意图。扩展路由新增两个扩展团体属性。
VRI属性:发送的组播路由中携带VRI属性,VRI属性的内容为site ID和VNID,取值为组播源或者RP的扩展团体属性携带的site ID,BGP传递过程中该值不改变,VNID标示私网。VRI属性用于路由交叉,只有路由中携带的site ID和上游站点的site ID一样,上游站点才能将路由导入到路由表中;用于上游站点将路由导入到组播路由表中的校验。
PTA字段承载子域标识、BSL或者BFR-ID,其中子域标识、BSL或者BFR-ID用于计算比特串,用于指导数据报文转发。
组播数据报文的封装格式
下面对本申请实施例中组播数据报文的封装格式举例说明,以下描述的BIER头是第二报文头的具体示例,以下描述的SD-WAN头以及外层IP头的组合是第一报文头的具体示例。
在一些实施例中,当组播源发送的组播数据报文进入VPN内的BIER网络时,由BIER网络中的根节点向组播数据报文添加BIER头、SD-WAN头以及外层IP头。当组播数据报文到达该VPN内的BIER网络中的BFER时,由叶子节点解封装BIER头、SD-WAN头以及外层IP头,得到组播数据报文。
例如,请参考图18,图18是组播数据报文整体的封装格式的具体示例。如图18所示,组播数据报文包括原始的组播数据报文(载荷)、封装于原始的组播数据报文外层的BIER头、封装于BIER头外层的SD-WAN头以及封装于SD-WAN头外层的IP头。下面对组播数据报文中的各个头分别介绍,再对组播数据报文中可选部分举例说明。
一、BIER头
本申请实施例提供的数据报文封装格式中,BIER头可以是任一种包含比特串的报文头。BIER头的封装格式包括多种实现方式。例如,BIER头的封装格式包括而不限于满足RFC8296定义的封装格式的BIER头、BIERv6封装格式中的BIER头、BIERin6封装格式中的BIER头以及G-BIER封装格式中的BIER头。下面对这四种封装格式的BIER头分别进行举例说明。
BIER头的封装格式1:满足RFC8296定义的封装格式的BIER头
图19示出了一种满足RFC8296定义的BIER头的封装格式示意图。图19所示的BIER头是图18所示的组播数据报文中的BIER头的具体示例。图19所示的BIER头中各个字段的含义如下所示。
(1)MPLS标签(MPLS label)或者BIFT-ID(non MPLS label,非MPLS label)字段
当BIER所基于的underlay协议为MPLS时,该字段可以包括MPLS标签。该MPLS标签例如是BIER-MPLS Label。BIER-MPLS Label是指根据BSL、sub-domain ID和SI分配的标签,用于索引BIER转发表。
当BIER所基于的underlay协议为MPLS之外的其他协议时,该字段可以包括用于标识BIFT的BIFT-ID。BIFT-ID根据BSL、sub-domain ID和SI确定。
(2)流量等级(Traffic Class,TC)
TC字段用于QoS。
(3)标签栈底标识(S)
S字段是1比特的标签栈底标识,同MPLS封装的S比特,该字段的具体使用可参考RFC3032。
(4)TTL
TTL字段为8比特,在MPLS封装时作TTL使用,该字段的具体使用可参考RFC3032。
(5)Nibble
Nibble字段占4比特,合法取值为0101。如果BFR收到的BIER报文的这个字段不是0101,可以丢弃报文。
(6)版本(ver)
版本号字段占4比特,可以表示版本号。
(7)BSL
BSL字段占4比特,BSL字段的取值例如为1~7来代表不同比特串长度。BSL字段的取值与比特串长度的对应关系例如如下。
当BSL字段的取值为1时,表示比特串长度为64比特。
当BSL字段的取值为2时,表示比特串长度为128比特。
当BSL字段的取值为3时,表示比特串长度为256比特。
当BSL字段的取值为4时,表示比特串长度为512比特。
当BSL字段的取值为5时,表示比特串长度为1024比特。
当BSL字段的取值为6时,表示比特串长度为2048比特。
当BSL字段的取值为7时,表示比特串长度为4096比特。
(8)Entropy
Entropy字段的长度例如为20比特。可选地,Entropy字段用来在存在等价路径时,进行路径的选择。可选地,拥有相同比特串和Entropy值的报文,选择同一条路径。
(9)OAM
OAM字段的长度例如为2比特,缺省为0,可用于OAM功能,不影响转发和QoS。
(10)保留(Rsv)字段
保留字段例如为2比特,缺省时保留字段的取值为0。
(11)DSCP
DSCP的长度例如为6比特,可选地表示报文自身的优先等级,可选地用于决定报文传输的优先程度。
(12)协议类型(proto)
协议类型字段例如是6比特,用于标识BIER头后面紧跟的报文类型。
(13)BFIR ID字段
BFIR ID字段例如占16比特,BFIR ID字段包括BFIR的BFR-ID。
(14)比特串
比特串中每一个比特位与一个BFER的BFR-ID对应。例如,如果比特位设置为1,则表示报文要转发给对应的BFER。
BIER头的封装格式2:BIERv6封装格式中的BIER头
在BIERv6封装格式中,组播数据报文的外层封装有IPv6基本头以及IPv6扩展头,BIER头封装于该IPv6扩展头的内部。包含BIER头的IPv6扩展头也称为BIERv6头或者BIERv6封装。
携带BIER头的IPv6扩展头包括多种实现方式。可选地,BIER头封装于DOH(Destination Options Header,目的选项头)的内部。可替代地,BIER头封装于DOH之外其他类型的IPv6扩展头内部。例如,BIER头封装于SRH或者HBH的内部。
BIER头在IPv6扩展头中的携带位置包括多种方式。可选地,BIER头封装于IPv6扩展头的选项中。例如,BIER头封装于DOH的选项中。例如,DOH包括选项,选项包括选项类型字段、选项长度字段以及选项数据字段,选项数据字段包括BIER头,选项类型字段标识BIER。
以BIER头封装于DOH,将包含BIER头的DOH称为BIERv6头为例,请参考图20,图20是本申请提供的一种BIERv6封装格式示意图,图20所示的BIERv6头是图18所示的组播数据报文中的BIER头的具体示例,图20所示的IPv6基本头封装于BIER头外层、SD-WAN头内层。
针对BIERv6封装格式中IPv6基本头的内容,IPv6基本头中SA字段为VPN BIER隧道的源地址,即VPN内BFIR的IP地址。在组播数据报文在传输网络中转发的过程中,IPv6基本头中SA字段可选地保持不变。IPv6基本头中DA字段为用于BIER转发的End.BIER SID,该地址在BIER网络内路由可达。在一些实施例中,BIERv6头为该IPv6基本头的下一个头,IPv6基本头中下一个头(next header)字段的值为60,60标识DOH,即包含BIER头的DOH。在另一些实施例中,如图21所示,BIERv6头与IPv6基本头之间还存在一个或多个IPv6扩展头,BIERv6头的上一个IPv6扩展头中next header字段的值为60。
图20或者图21所示的BIERv6头中各个字段的含义如下所示。
(1)Next Header
Next Header字段例如占8比特,用来标识下一个报文头的类型。
(2)Hdr Ext Len
Hdr Ext Len字段例如占8比特,用来标识IPv6扩展头的长度,即BIERv6头的长度。
(3)Option Type
Option Type字段例如占8比特,用来标识选项类型为BIERv6。
(4)BIFT-ID
BIFT-ID字段例如占20比特,用于标识唯一标识一张BIFT。
(5)流量等级(Traffic Class,TC)
TC字段用于QoS。
(6)S
S字段占1比特,S字段为保留字段。
(7)TTL
TTL例如占8比特。TTL表示报文经过BIERv6转发处理的跳数。每经过一个BIERv6转发节点后,TTL值减1。当TTL为0时,报文被丢弃。
(8)Nibble
Nibble例如占4比特。Nibble字段例如是保留字段,例如填0。
(9)Version
Version例如占4比特,例如标识BIERv6报文的版本号。
(10)BSL
BSL字段占4比特,BSL字段的取值例如为1~7来代表不同比特串长度。BSL字段的取值与比特串长度的对应关系例如如下。
当BSL字段的取值为1时,表示比特串长度为64比特。
当BSL字段的取值为2时,表示比特串长度为128比特。
当BSL字段的取值为3时,表示比特串长度为256比特。
当BSL字段的取值为4时,表示比特串长度为512比特。
当BSL字段的取值为5时,表示比特串长度为1024比特。
当BSL字段的取值为6时,表示比特串长度为2048比特。
当BSL字段的取值为7时,表示比特串长度为4096比特。
(11)Entropy
Entropy字段的长度例如为20比特。可选地,Entropy字段用来在存在等价路径时,进行路径的选择。可选地,拥有相同比特串和Entropy值的报文,选择同一条路径。
(12)OAM
OAM字段的长度例如为2比特,缺省为0,可选地,用于OAM功能。
(13)保留(Rsv)字段
保留字段例如为2比特,缺省时保留字段的取值为0。
(14)DSCP
DSCP的长度例如为6比特,可选地表示报文自身的优先等级,可选地用于决定报文传输的优先程度。
(15)协议类型(proto)
协议类型字段例如是6比特,用于标识BIERv6头后面紧跟的报文类型。
(16)BFIR ID字段
BFIR ID字段例如占16比特,为BFIR的BFR-ID。
(17)比特串
比特串中每一个比特位与一个BFER的BFR-ID对应。例如,如果比特位设置为1,则表示报文要转发给对应的BFER。
BIER头的封装格式3:BIERin6封装格式中的BIER头
BIERin6的封装格式在BIER头外封装IP头,IPv6基本头中SA字段包括VPN内BFIR的IP地址。IPv6基本头中DA字段包括下一跳BFR的IPv6链路本地地址(link-local address),该地址在BIER网络内路由可达。
例如,请参考图22或图23,图22和图23均是BIERin6的封装格式示意图。图22中IPv6基本头的内容可参考上文对BIERv6的描述。图22中BIER头封装于IPv6基本头的内层。IPv6基本头中下一个头(next header)字段的值指示BIER头。
BIER头的封装格式4:G-BIER封装格式中的BIER头
G-BIER(Generalized BIER,通用位索引显式复制)是一种适用于IPv6网络的通用BIER封装方案,它根据IPv6网络的特点对RFC定义的标准的BIER头进行适配性修改,与IPv6实现了更好的融合。
图24是本申请实施例提供的一种G-BIER封装格式示意图。
如图24所示,在G-BIER封装格式中,组播数据报文的外层封装有IPv6基本头以及IPv6扩展头,BIER头封装于该IPv6扩展头的内部。
G-BIER封装格式中,IPv6基本头中源地址为BFIR的组播服务源地址,该源地址由BFIR的前缀地址和组播服务ID值共同生成。BFIR的前缀地址用来标识BFIR的网络位置,组播服务ID用来标识不同的MVPN实例。组播报文在转发过程中,该源地址保持不变。
IPv6基本头中目的地址为用于BIER转发的MPRA(Multicast Policy ReservedAddress,组播策略保留地址),该地址在BIER网络内路由可达。当BFR收到IPv6报文中的目的地址为本地配置MPRA,则表示需要对该报文采用BIER方式转发。
图24所示的G-BIER封装格式中的BIER头中各个字段的含义如下所示。
(1)Next Header
Next Header字段例如占8比特,用来标识下一个报文头的类型。
(2)Hdr Ext Len
Hdr Ext Len字段例如占8比特,用来标识IPv6扩展头的长度。
(3)Option Type
Option Type字段例如占8比特,用来标识选项类型为G-BIER。
(4)Option Length
Option Length字段例如占8比特,用来标识选项长度。
(5)BSL
BSL字段占4比特,BSL字段的取值例如为1~7来代表不同比特串长度。BSL字段的取值与比特串长度的对应关系例如如下。
当BSL字段的取值为1时,表示比特串长度为64比特。
当BSL字段的取值为2时,表示比特串长度为128比特。
当BSL字段的取值为3时,表示比特串长度为256比特。
当BSL字段的取值为4时,表示比特串长度为512比特。
当BSL字段的取值为5时,表示比特串长度为1024比特。
当BSL字段的取值为6时,表示比特串长度为2048比特。
当BSL字段的取值为7时,表示比特串长度为4096比特。
(6)SD
SD字段例如占8比特,SD字段的值为BIER子域的ID。
(7)SI
SI字段例如占8比特,SI字段的值为BFR所属的集合标识。
(8)Rsv
Rsv字段为保留字段。
(9)TTL
TTL字段为8比特,TTL字段和IP报文中的TTL意义相同,可以用来防止环路。
(10)版本号(version)
Version字段例如占4比特。
(11)Entropy
Entropy字段的长度例如为20比特。可选地,Entropy字段用来在存在等价路径时,进行路径的选择。可选地,拥有相同比特串和Entropy值的报文,选择同一条路径。
(12)OAM
OAM字段的长度例如为2比特,缺省为0,可选地,用于OAM功能。
(13)保留(Rsv)字段
保留字段例如为2比特,缺省时保留字段的取值为0。
(14)DSCP
DSCP的长度例如为6比特,可选地表示报文自身的优先等级,可选地用于决定报文传输的优先程度。
(15)比特串
比特串中每一个比特位与一个BFER的BFR-ID对应。
二、SD-WAN头
本申请实施例提供的数据报文封装格式中,SD-WAN头可以是任意一种支持L3 VPN隧道建立的报文头。例如,SD-WAN头包括而不限于GRE扩展头或者GRE头。或者,SD-WAN头可以是任意一种支持L2 VPN隧道建立的报文头。例如,SD-WAN头包括而不限于虚拟扩展局域网(Virtual Extensible Local Area Network,VXLAN)头、基于VXLAN通用协议(VXLANGeneric Protocol Encapsulation,VXLAN-GPE)或者通用网络虚拟化封装(GenericNetwork Virtualization Encapsulation,GENEVE)头。
在一些实施例中,SD-WAN头包括BFR所处的VPN的标识(如VN-ID),在采用这种封装格式的情况下,BIER头之后(或者说BIER头的内层、组播数据报文的外层)不需要封装上游分配的VPN标签,因为SD-WAN头中携带的VPN的标识已经可以标识VPN,从而有助于节省报文开销。
以SD-WAN头为GRE扩展头为例,请参考图25,图25是对SD-WAN头为GRE扩展头时的封装格式的具体示例。GRE扩展头包括key字段和Protocol Type字段。key字段包括SD-WAN隧道绑定的VPN所配置的VN-ID,即BFR所处的VPN的VN-ID。Protocol Type字段用于标识SD-WAN头内层的封装格式为BIER封装格式。例如,在BIER头为满足RFC8296定义的封装格式的BIER头的情况下,GRE扩展头中Protocol Type标识BIER。例如,在BIER头为BIERv6封装格式中的BIER头的情况下,GRE扩展头中Protocol Type标识BIERv6。例如,在BIER头为BIERin6封装格式中的BIER头的情况下,GRE扩展头中Protocol Type标识BIERin6。例如,在BIER头为G-BIER封装格式中的BIER头的情况下,GRE扩展头中Protocol Type标识G-BIER。
图26是本申请实施例提供的另一种SD-WAN头的通用的封装格式示意图。图26所示的SD-WAN头包括Type字段、Length字段、Protocol字段以及VN ID字段。Type字段表示报文的类型。例如,Type字段取值为1时,表示控制报文;Type字段取值为2时,表示数据报文。Protocol字段表示SDWAN头内层的数据报文的类型。例如,在BIER头为满足RFC8296定义的封装格式的BIER头的情况下,Protocol字段标识BIER。例如,在BIER头为BIERv6封装格式中的BIER头的情况下,Protocol字段标识BIERv6。例如,在BIER头为BIERin6封装格式中的BIER头的情况下,Protocol字段标识BIERin6。例如,在BIER头为G-BIER封装格式中的BIER头的情况下,Protocol字段标识G-BIER。Length字段表示SDWAN头的长度。VN ID字段表示数据报文绑定的VPN的VPN的标识,即BFR所在的VPN的标识。
以SD-WAN头为VXLAN头为例,请参考图27,图27是对SD-WAN头为VXLAN头时的封装格式的具体示例。VXLAN头中VNI字段包括组播数据报文绑定的VPN的VPN的标识,即BFR所在的VPN的标识。可以使用VXLAN头外层封装的IPv6基本头中Next header字段指示BIER。
以SD-WAN头为VXLAN-GPE头为例,请参考图28,图28是对SD-WAN头为VXLAN-GPE头的封装格式的具体示例。VXLAN-GPE头中VNI字段包括组播数据报文绑定的VPN的VPN的标识,即BIER网络中的BFR所在的VPN的标识。VXLAN-GPE头中next protocol字段表示VXLAN-GPE头内层的数据报文的类型。例如,在BIER头为满足RFC8296定义的封装格式的BIER头的情况下,Next protocol字段标识BIER。例如,在BIER头为BIERv6封装格式中的BIER头的情况下,Next protocol字段标识BIERv6。例如,在BIER头为BIERin6封装格式中的BIER头的情况下,Next protocol字段标识BIERin6。例如,在BIER头为G-BIER封装格式中的BIER头的情况下,Next protocol字段标识G-BIER。Length字段表示SDWAN头的长度。VN ID字段表示数据报文绑定的VPN的VPN的标识,即BFR所在的VPN的标识。
以SD-WAN头为GENEVE头为例,请参考图29,图29是对SD-WAN头为GENEVE头的封装格式的具体示例。GENEVE头中VNI字段包括组播数据报文绑定的VPN的VPN的标识,即BIER网络中的BFR所在的VPN的标识。GENEVE头中Protocol Type标识BIER。例如,在BIER头为BIERv6封装格式中的BIER头的情况下,GENEVE头中Protocol Type标识BIERv6。例如,在BIER头为BIERin6封装格式中的BIER头的情况下,GENEVE头中Protocol Type标识BIERin6。例如,在BIER头为G-BIER封装格式中的BIER头的情况下,GENEVE头中Protocol Type标识G-BIER。
三、SD-WAN头外层的IP头
SD-WAN头外层的IP头中源地址和目的地址是用于建立SD-WAN隧道所使用的IP地址。例如,如果第一BFR与第二BFR建立了一条SD-WAN隧道,第一BFR要通过该SD-WAN隧道向第二BFR转发组播数据报文时,第一BFR发送的组播数据报文中外层的IP头源地址为第一BFR上WAN接口的IP地址,即第一BFR发送组播数据报文时使用的物理出接口的IP地址。外层SD-WAN头外层的IP头中目的地址为第二BFR上WAN接口的IP地址,即第二BFR接收组播数据报文时使用的物理出接口的IP地址。
SD-WAN头外层的IP头包括而不限于IPv4头或者IPv6头。具体地,在SD-WAN头外层的IP头为IPv4头的情况下,SD-WAN头外层的IPv4头源地址为BFIR上WAN接口的IPv4地址,SD-WAN头外层的IPv4头中目的地址为BFER上WAN接口的IPv4地址。在SD-WAN头外层的IP头为IPv6头的情况下,SD-WAN头外层的IPv6头中的源地址为BFIR上WAN接口的IPv6地址,SD-WAN头外层的IPv6头中的目的地址为BFER上WAN接口的IPv6地址。
例如,数据报文的封装格式包括IP头、SD-WAN头、BIER头和组播数据报文。又如,数据报文的封装格式包括IP头、SD-WAN头和IPv6报文,该IPv6报文包括IPv6头、BIER头和组播数据报文。
四、IPsec头和IPsec尾
IPsec头和IPsec尾是组播数据报文中可选封装的部分。例如,如果需要保障SD-WAN隧道传输的数据的机密性和安全性,则在BFIR和BFER上部署SD-WAN over IPSec,BFIR在SD-WAN头的外层封装IPsec头,在组播数据报文后封装IPSec尾。在BFIR和BFER上没有部署SD-WAN over IPSec的情况下,BFIR可以无需封装IPsec头和IPSec尾。可选地,上述IPsec头为ESP头,上述IPsec尾为ESP尾。IPsec头的格式可参考图30。
本申请的一些实施例中,还提供了站点内site内主备流量保护的方式,下面进行具体说明。
site内主备流量保护包括下述方式一和方式二。
方式一、site内主CPE和备CPE配置不同的BFR-ID和BFR prefix。
如图31所示,组播接收者1单归接入CPE 6,组播接收者2双归接入CPE 5和CPE 6,配置接入侧主备备份。站点3内CPE 5和CPE 6配置不同的BFR-ID和BFR prefix。例如,站点3内CPE 5配置了BFR-ID为5,并配置了BFR prefix为10.5.5.5。站点3内CPE 6配置了BFR-ID为6,并配置了BFR prefix为10.6.6.6。主备备份是指同一个站点内两台设备之间互相备份加入信息。比如,CPE 5获得了组播接收者2的加入信息后,CPE 5将组播接收者2的加入信息同步至CPE 6,使得CPE 5和CPE 6上都保存了组播接收者2的加入信息。CPE 5和CPE 6之间的链路部署VPN BIER over IGP。CPE 5和CPE 6使用SD、BSL、SI拼接的方式分配到相同的BIFT-ID。
方式1包括以下步骤1至步骤7。
步骤1,发往组播接收者1的组播数据报文经SD-WAN隧道到达CPE 6。与CPE 6处于同一个VPN的上游BFR迭代site ID后,随机选择右侧隧道,或者,与CPE 6处于同一个VPN的上游BFR迭代具体router ID(即CPE ID),比如CPE 6的loopback口的IP地址后,将组播数据报文发送给CPE 6,CPE 6剥离GRE头和BIER头,使得组播数据报文出两层隧道后直接转发给接收者1。例如,图31中CPE 3接收到组播数据报文后,CPE 3基于组播数据报文中比特串查找BIFT,确定比特串命中BIFT中一条表项中的F-BM,则CPE 3读取BIFT中与该F-BM对应的出接口或者下一跳,从而获得site 3的site ID。之后,CPE 3根据site 3的site ID查找SD-WAN隧道转发表,CPE 3根据site 3的site ID命中SD-WAN隧道转发表的表项,读取SD-WAN隧道转发表中与site 3的site ID对应的下一跳。site 3的site ID对应的下一跳包括CPE 5和CPE 6,CPE 3从CPE 5和CPE 6中随机选一个下一跳,选中CPE 6。
步骤2,发往组播接收者1的组播数据报文经SD-WAN隧道到达CPE 5。具体的,与CPE5处于同一个VPN的上游BFR迭代site ID后随机选择左侧隧道,或者与CPE 5处于同一个VPN的上游BFR迭代具体router ID(即CPE ID),比如CPE 5的loopback口的IP地址后,将组播数据报文发送给CPE 5。CPE 5剥离GRE头后根据BIER头的目的BFR-ID 6迭代下一跳为CPE 6,经site内CPE之间的链路转发给CPE 6,剥离BIER头后查找MVPN客户组播路由转发给组播接收者1。
步骤3,发往组播接收者2的组播数据报文经SD-WAN隧道到达CPE 5。具体的,与CPE5处于同一个VPN的上游BFR迭代site ID后随机选择左侧隧道,或者与CPE 5处于同一个VPN的上游BFR迭代router ID(即CPE ID),比如CPE 5的loopback口的IP地址后,将组播数据报文发送给CPE 5。CPE 5剥离GRE头和BIER头后,由主链路(例如为CPE 5的LAN侧链路)转发给组播接收者2。
步骤4,发往组播接收者2的组播数据报文经SD-WAN隧道到达CPE 6。与CPE 6处于同一个VPN的上游BFR迭代site ID后随机选择右侧隧道,或者与CPE 6处于同一个VPN的上游BFR迭代具体router ID((即CPE ID),比如CPE 6的router ID后,将组播数据报文发送给CPE 6,CPE 6剥离GRE头后,根据BIER头中比特串指示的目的BFR-ID 5迭代下一跳为CPE 5,经site内CPE之间的链路转发给CPE 5,剥离BIER头后查找MVPN客户组播路由,由主链路转发给组播接收者2。
步骤5,发往组播接收者2的组播数据报文根据BIER头中包含本节点的BFR-ID 6对应的比特串,剥离GRE头和BIER头后,在CPE 6LAN侧备份路径阻塞,不会转发给组播接收者。
步骤6,作为主设备的CPE 5LAN侧链路故障后,CPE 6升主,CPE 6负责将组播数据报文转发给组播接收者2。
步骤7,作为主设备的CPE 5故障后,SD-WAN隧道侧接收的组播数据报文全部通过CPE 6到达组播接收者2。
回切流程类似,不再详述。
BIERv6和上述流程类型,不同点为:部署不同的End.BIER地址,CPE 5和CPE 6之间的链路部署私网BIERv6 over IGP。
方式2:site内主备CPE配置相同的BFR-ID和BFR prefix。
如图32所示,组播接收者1单归接入CPE 6,组播接收者2双归接入CPE 5和CPE 6,配置接入侧主备备份。site内CPE配置相同的BFR-ID和BFR prefix。CPE 5和CPE 6之间的链路不部署VPN内的BIER,部署传统overlay组播,如PIM或IGMP/MLD。方式2包括以下步骤1至步骤3。
步骤1,发往单归或双归接入接收者的组播数据报文,经上游SD-WAN隧道随机到达CPE 5或CPE 6任意一侧(同方式1)。
步骤2,接收到组播数据报文的CPE剥离GRE头和BIER头,通过overlay组播转发给对端CPE。
步骤3,主CPE或者单归CPE负责将组播数据报文转发给LAN侧接收者。
BIERv6和上述流程类似,不同点为,还会在同一个site内主CPE和备CPE上部署相同的End.BIER地址。
下面结合四个实例举例说明。
实例1
图33是实例1的网络部署场景的示意图,如图33所示,组播源位于站点5内CPE100所在LAN侧接口接入的网络。组播接收者位于站点3内CPE6所在LAN侧接口接入的网络。站点3内主CPE与备CPE配置不同的BFR-ID,并且主CPE与备CPE配置不同的BFR prefix;site之间使用VPN BIER over EVPN泛洪VPN内每个BFR的BIER信息;根节点和叶子节点之间通过部署根据标准RFC实现的NG-MVPN,当接收到加入消息时,通过NG-MVPN传递VPN内overlay组播加入信息。实例1包括以下步骤1至步骤4。
步骤1:underlay SD-WAN隧道建立。
步骤1包括以下步骤(1-1)至步骤(1-3)。
步骤(1-1)通过SD-WAN EVPN方式部署跨internet或MPLS网络的SD-WAN网络。分别为各site中每个CPE的WAN接口配置IP地址,同时将公网loopback口的IP地址配置为CPEID,使用CPE ID建立BGP SD-WAN peer和BGP EVPN peer。
例如,站点3中CPE 5的WAN接口的IP地址配置为10.33.33.33,站点3中CPE 5的CPEID配置为33.33.33.33。站点3中CPE 6的WAN接口的IP地址配置为10.3.3.3,站点3中CPE 6的CPE ID配置为3.3.3.3。site 2中CPE 4的WAN接口的IP地址配置为10.2.2.2,site 2中CPE 4的CPE ID配置为2.2.2.2。
步骤(1-2)CPE和RR之间通过DTLS机制和BGP SD-WAN地址族,建立DTLS管理通道和BGP控制通道。
步骤(1-3)CPE和RR之间通过BGP EVPN地址族建立SD-WAN单播业务数据通道(即SD-WAN隧道)。站点5和站点3中部署L3VPN,配置相同的VN ID;LAN侧AC接口和WAN侧SD-WAN隧道接口均绑定此VPN。
步骤2:overlay VPN BIER隧道建立。
步骤2包括以下步骤(2-1)至步骤(2-3)。
步骤(2-1)各个site部署VPN内BIER,分别配置VPN内BFR prefix和VPN内的BFR-ID,例如,CPE5的配置如下所示。
ip vpn-instance vpn1//配置业务VPN;
ipv4-family
route-distinguisher 200:1
vpn-target 3:3both
vn-id 1//VPN绑定的VNID;
#
interface loopback1
ip binding vpn-instance vpn1//VPN BIER使用的prefix接口;
ip address 10.5.5.5 255.255.255.255
#
bier vpn-instance vpn1//VPN内BIER;
sub-domain 0
BFR-ID 5
BFR prefix interface loopback1
protocol evpn-sdwan//使用EVPN SD-WAN路由泛洪BIER信息;
encapsulation-type bier bsl 256max-si 2//使用BIER封装格式;
#
步骤(2-2)VPN内各个CPE上部署VPN BIER over BGP EVPN,通过BGP EVPN IPprefix路由通告BFR prefix,携带BIER封装扩展团体属性、SD-WAN封装扩展团体属性和color扩展团体属性。例如,CPE5的配置如下所示。
bgp 100
peer 10.2.2.2as-number 100
peer 10.2.2.2connect-interface loopback0
#
ipv4-family vpn-instance vpn1
import-route direct
import-route bier//发布VPN内BIER信息;
advertise l2vpn evpn
#
l2vpn-family evpn
undo policy vpn-target
peer 10.2.2.2enable
peer 10.2.2.2advertise encap-type sd-wan//发布SD-WAN EVPN路由;
#
ipv4-family sd-wan
peer 10.2.2.2 enable;
#
#
步骤(2-3)各CPE之间通过RR反射BGP EVPN BIER路由学习VPN内BIER邻居,并根据BGP EVPN BIER路由携带的扩展团体属性,计算出以site ID为下一跳的BIER路由表。例如,site5中CPE100学习到的BIER路由表如下表12所示。
表12
VPN的标识 | BFR prefix | BFR-ID | 下一跳 |
1 | 10.5.5.5 | 5 | 站点1 |
1 | 10.6.6.6 | 6 | 站点1 |
步骤3:overlay组播加入。
各site的CPE之间通过NG-MVPN x-PMSI路由和leaf-AD路由携带VPN BIER类型的PTA属性,学习到各自的BFR-ID。站点3中CPE6基于LAN侧接口接收到的组播加入消息,获得MVPN C-Multicast路由,通过RR反射给站点5中CPE100。CPE 100将CPE6的BFR-ID学习为VPNBIER隧道的叶子节点。配置示例如下。
ip vpn-instance vpn1//配置业务VPN;
ipv4-family
route-distinguisher 200:1
vpn-target 3:3both
multicast routing-enable
mvpn
sender-enable
c-multicast signaling bgp
ipmsi-tunnel
vpn bier sd 0bsl 64//配置组播隧道迭代VPN BIER;
vn-id 1//VPN绑定的VNID
#
步骤4:组播数据报文转发。
步骤4包括以下步骤(4-1)至步骤(4-3)。
步骤(4-1)CPE100接收LAN侧VPN内的组播数据报文,根据VPN内叶子节点集合的BFR-ID,获得比特串,向组播数据报文封装BIER头,根据比特串查找VPN内BIER转发表。若BIER转发表中比特串对应的下一跳为site ID,则以site ID为索引,进一步查找SD-WAN隧道连接表。或者,若BIER转发表中比特串对应的下一跳为CPE ID,则以CPE ID为索引,进一步查找SD-WAN隧道连接表。之后,在BIER头外层,继续封装GRE头和外层IP头以及MAC头,进一步转发组播数据报文。GRE头部中key字段包括VPN下配置的VNID。对于下一跳站点site存在主隧道和备隧道的情况,随机选择其中一条隧道。
例如,站点5中CPE100的SD-WAN隧道连接表例如下表13所示,表13中的源IP地址为CPE 100中WAN接口的IP地址,也是CPE100在GRE头外层封装的IP头中的源IP地址。表13中的目的IP地址为与CPE 100建立SD-WAN隧道的远端site中CPE的WAN接口的IP地址,也是CPE100在GRE头外层封装的IP头中的目的IP地址。
表13
site ID | 源IP | 目的IP |
1 | 10.5.5.6 | 10.1.1.1 |
2 | 10.5.5.6 | 10.2.2.2 |
3 | 10.5.5.6 | 10.3.3.3 |
步骤(4-2)组播数据报文根据外层IP头中的IP地址,如IPv4地址或者IPv6地址,通过IP路由逐跳转发。当组播数据报文到达某一跳site中的CPE后,CPE根据SD-WAN隧道连接表,命中对应的SD-WAN隧道和对应的VPN,进一步查找VPN内BIER转发表项。如果本节点的BFR-ID与转发表项中的F-BM不匹配,则确定本节点是中间节点,更新BIER头中的比特串后,再根据BIER转发迭代下一跳。
步骤(4-3)报文到达叶子站点后,解封装SD-WAN头(如GRE头),如果本节点的BFR-ID与转发表项中的F-BM匹配,解封装BIER头,进一步查找VPN内MVPN客户组播路由表项转发。如果本节点的BFR-ID与转发表项中的F-BM不匹配,则继续根据VPN内BIER转发表项,迭代下一跳是本site内对端CPE,更新比特串后,不再封装GRE头,直接转发给对端CPE。
实例2
实例2的网络部署场景可参考图33,实例2包括以下步骤1至步骤4。
步骤1:underlay SD-WAN隧道建立:同实例1。
步骤2:overlay BIER VPN隧道建立。
使用BGP BIER VPN地址族路由发布VPN内BFR prefix、BIER封装扩展团体属性、SD-WAN封装扩展团体属性和color扩展团体属性。
bier vpn-instance vpn1//VPN内BIER
sub-domain 0
BFR-ID 1
BFR prefix interface loopback1
protocol bgp//使用BGP BIER VPN路由泛洪BIER信息
encapsulation-type bier bsl 256max-si 2//使用BIER封装格式
#
bgp 100
peer 10.2.2.2as-number 100
peer 10.2.2.2connect-interface loopback0
#
ipv4-family bier-vpn//使用BGP BIER VPN地址族
peer 10.2.2.2enable
#
步骤3:overlay组播加入:
各站点内CPE之间通过BGP EVPN IMET路由携带PTA属性学到各自的BFR-ID。站点3中CPE6基于LAN侧接口接收到的组播加入消息,获得BGP EVPN SMET路由,通过RR反射给site5中CPE100。CPE100将CPE6学习为VPN BIER隧道的叶子节点。
步骤4:组播数据报文转发:
非叶子站点之间的流量转发同实例1。
当组播数据报文到达叶子站点时,无论从两个SD-WAN隧道中的哪一个到达叶子站点中任意一个CPE,叶子站点内接收到组播数据报文的CPE都会剥离GRE头和BIER头,相当于组播数据报文出两层隧道。并且,接收到组播数据报文的CPE会通过overlay传统组播的方式,转发一份组播数据报文给同站点内对端CPE。
主CPE或者单归CPE将组播数据报文转发给LAN侧的组播接收者。
上述实例1和实例2可以作为BIER-MPLS场景下的方法流程,下面对BIERv6的场景下的方法流程举例说明,参见实例3和实例4。
实例3
图34是实例3的网络部署场景的示意图,如图34所示,组播源位于站点5内CPE100所在LAN侧接口接入的网络。组播接收者位于站点3内CPE6所在LAN侧接口接入的网络。站点3内主备CPE部署不同的End.BIER地址、BFR-ID和BFR prefix;站点之间使用VPN BIERv6over EVPN泛洪VPN BIERv6拓扑信息;根站点和叶子站点之间通过部署标准NG-MVPN传递私网overlay组播加入信息。
步骤1:建立underlay SD-WAN隧道。步骤1可参考实例1。
步骤2:overlay BIERv6 VPN隧道建立。
步骤2包括以下步骤(2-1)至步骤(2-3)。
步骤(2-1)各个站点部署VPN内BIERv6,分别配置VPN内End.BIER地址、BFR prefix和BFR-ID。例如,站点3内CPE5的配置如下所示。
ip vpn-instance vpn1//配置业务VPN
ipv4-family
route-distinguisher 200:1
vpn-target 3:3both
vn-id 1//VPN绑定的VNID
#
interface loopback1
ip binding vpn-instance vpn1//VPN BIERv6使用的prefix接口
ipv6 enable
ipv6 address 10::6/128
#
bier vpn-instance vpn1//VPN内BIERv6
sub-domain 0ipv6
BFR-ID 5
BFR prefix interface loopback1
protocol evpn-sdwan//使用EVPN SD-WAN路由泛洪BIER信息
end-bier locator XXX sid 8::8
encapsulation-type bierv6 bsl 256max-si 2//使用BIERv6封装格式
#
步骤(2-2)在VPN内各个CPE上部署VPN BIERv6 over BGP EVPN,CPE之间通过BGPEVPN IP prefix路由通告BFR prefix,携带BIER封装扩展团体属性、SD-WAN封装扩展团体属性和color扩展团体属性。
例如,CPE5的配置如下所示。
bgp 100
peer 10::2as-number 100
peer 10::2connect-interface loopback0
#
ipv4-family vpn-instance vpn1
import-route direct
import-route bier//发布VPN BIER路由
advertise l2vpn evpn
#
l2vpn-family evpn
undo policy vpn-target
peer 10::2enable
peer 10::2advertise encap-type sd-wan//发布SD-WAN EVPN路由
#
ipv4-family sd-wan
peer 10::2enable
#
#
步骤(2-3)各CPE之间通过RR反射BGP EVPN BIER路由学习VPN内BFR邻居,并根据路由携带的扩展团体属性,计算出以site ID为下一跳的BIER路由表(以单播路由迭代到site ID为例)。例如站点5中CPE100学习到的BIER路由表如下表14所示。
表14
VPN的标识 | BFR prefix | BFR-ID | 下一跳 |
1 | 10::6 | 5 | 站点1 |
1 | 10::7 | 6 | 站点1 |
步骤3:overlay组播加入,同实例1。
步骤4:组播数据报文转发。
步骤4包括以下步骤(4-1)至步骤(4-3)。
步骤(4-1)CPE100接收到LAN侧VPN的组播数据报文时,根据VPN内叶子节点集合的BFR-ID,获得比特串,向组播数据报文封装BIER头,查找VPN内BIERv6的BIER转发表。若BIER转发表中比特串对应的下一跳为site ID,则以site ID为索引,进一步查找SD-WAN隧道连接表。或者,若BIER转发表中比特串对应的下一跳为CPE ID,则以CPE ID为索引,进一步查找表15示出的SD-WAN隧道连接表。之后,在BIERv6头外层,继续封装GRE头和外层IP头以及MAC头,进一步转发组播数据报文。其中,GRE头中key字段包括VPN下配置的VNID。对于下一跳站点存在主隧道和备隧道的情况,随机选择其中一条隧道。
表15
site ID | 源IP | 目的IP |
1 | 10::5 | 10::1 |
2 | 10::5 | 10::2 |
3 | 10::5 | 10::3 |
步骤(4-2)组播数据报文根据外层IP头中的目的IP地址,路由逐跳转发,到达某一跳site中的CPE后,根据SD-WAN解封装表命中对应的SD-WAN隧道和对应的VPN,进一步查找VPN内BIERv6转发表项,如果本节点的BFR-ID与转发表项中的F-BM不匹配,则确定本节点是中间节点,更新BIER头中的比特串后,再根据BIER转发迭代下一跳。
步骤(4-3)报文到达叶子站点后,叶子站点中的CPE解封装SD-WAN GRE头。如果本节点的BFR-ID与转发表项中的F-BM匹配,则解封装BIER头,进一步查找VPN内MVPN客户组播路由表项转发。如果本节点的BFR-ID与转发表项中的F-BM不匹配,则继续根据VPN内BIERv6转发表项,迭代下一跳是本site内对端CPE,更新比特串后,不再封装GRE头,直接转发给对端CPE。
实例4
实例4的网络部署场景可参考图34,实例4包括以下步骤。
步骤1:建立underlay SD-WAN隧道,步骤1可参考实例1的描述。
步骤2:建立overlay BIERv6 VPN隧道。
使用BGP BIER VPN地址族路由发布VPN内BFR prefix,携带BIER封装扩展团体属性、SD-WAN封装扩展团体属性和color扩展团体属性。
bier vpn-instance vpn1//VPN下BIERv6;
sub-domain 0ipv6
BFR-ID 1
BFR prefix interface loopback1
protocol bgp//使用BGP BIER VPN路由泛洪BIER信息;
end-bier locator XXX sid 8::8
encapsulation-type bierv6 bsl 256max-si 2//使用BIERv6封装格式;
#
bgp 100
peer 10::2as-number 100
peer 10::2connect-interface loopback0
#
Ipv6-family bier-vpn//使用BGP IPv6 BIER VPN地址族;
peer 10::2enable
#
步骤3:overlay组播加入。
站点3中CPE6接收LAN侧接口的组播加入消息,获得BGP EVPN路由,路由携带PTA属性和VRI属性,通过RR反射给site5中CPE100。CPE100将CPE6学习为VPN BIER隧道的叶子节点,并根据PTA携带的BFR-ID计算出比特串。
步骤4:组播数据报文转发。
非叶子站点之间的组播数据报文转发同实例3。
组播数据报文到达叶子站点时,无论从两个隧道中的哪一个到达任意一个CPE,叶子站点内接收到组播数据报文的CPE都会剥离GRE头和BIER头,相当于组播数据报文出两层隧道。并且,接收到组播数据报文的CPE会通过overlay传统组播的方式,转发一份原始组播数据报文至同site内对端CPE。主CPE或者单归CPE负责将组播数据报文转发给LAN侧的组播接收者。
附图35是本申请实施例提供的一种组播配置装置700的结构示意图,装置700设于VPN内的第一网络设备,包括:处理单元701,用于获得第一参数集,该第一参数集包括该第一网络设备的比特转发路由器前缀BFR prefix以及用于标识软件定义广域网SD-WAN隧道的参数,该第一网络设备为该SD-WAN隧道的端点;发送单元702,用于在该VPN内发送该第一参数集。
在一些实施方式中,该第一参数集还包括该第一网络设备的BIER转发路由器标识符BFR-ID。
在一些实施方式中,该第一网络设备的BFR prefix为该第一网络设备在该VPN内的私网互联网协议IP地址。
在一些实施方式中,该第一参数集还包括该第一网络设备的比特串长度BSL、该第一网络设备的集合标识最大值max-SI、该第一网络设备所在的BIER子域的ID、该第一网络设备的比特索引转发表标识BIFT-ID以及该VPN的标识中的一个或多个。
在一些实施方式中,该用于标识SD-WAN隧道的参数包括第一隧道类型以及第一信息,该第一隧道类型用于标识隧道的类型为SD-WAN隧道,该第一信息用于确定该SD-WAN隧道。
在一些实施方式中,该第一信息包括该第一网络设备所处的站点的标识或者该第一网络设备的用户端设备标识CPE ID中至少一项。
在一些实施方式中,该发送单元702,用于向该VPN内的第二网络设备发送该第一参数集,该第二网络设备为该SD-WAN隧道的另一个端点;或者,向路由反射器RR发送该第一参数集,以使该RR将该第一参数集反射至该VPN内的第二网络设备,该第二网络设备为该SD-WAN隧道的另一个端点。
在一些实施方式中,该发送单元702,用于在该VPN内发送第一通告报文,该第一通告报文包括第一地址族标识以及该第一参数集,该第一地址族标识用于标识边界网关协议以太虚拟专用网络BGP EVPN或者边界网关协议虚拟专用网络基于比特位的显式复制BGPVPN BIER。
在一些实施方式中,该处理单元701,还用于获得第二参数集,该第二参数集包括组播源组信息、该第一网络设备的BFR prefix以及第二隧道类型,该第二隧道类型用于标识该第一网络设备与该VPN内第二网络设备之间的隧道为VPN BIER隧道;该发送单元702,用于向该第二网络设备发送该第二参数集。
在一些实施方式中,该第二参数集还包括该第一网络设备的比特转发路由器BFR-ID、该VPN的标识、该第二网络设备所处的站点的标识以及该第二网络设备的CPE ID中的一个或多个。
在一些实施方式中,该发送单元702,用于向该第二网络设备发送第二通告报文,该第二通告报文包括第二地址族标识以及该第二参数集,该第二地址族标识用于标识下一代组播虚拟专用网络NG MVPN或者BGP EVPN。
在一些实施方式中,该第二通告报文包括组播提供商服务接口隧道属性PTA属性,该PTA属性包括MPLS标签MPLS label字段,该MPLS label字段包括该VPN的标识。
在一些实施方式中,该装置还包括:
接收单元,用于接收来自该VPN内组播接收者的加入消息,该加入消息包括该组播源组信息;或者,接收来自该VPN内组播接收者的离开消息,该离开消息包括该组播源组信息。
附图35所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
装置700中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。
下面结合后文描述的网络设备900,描述使用硬件或软件来实现装置700中的各个功能单元的一些可能实现方式。
在采用软件实现的情况下,例如,上述处理单元701是由附图37中的至少一个处理器901读取存储器902中存储的程序代码后,生成的软件功能单元来实现。
在采用硬件实现的情况下,例如,附图35中上述各个单元由网络设备中的不同硬件分别实现,例如处理单元701由附图37中的至少一个处理器901中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,或者采用现场可编程门阵列(field-programmable gate array,FPGA)、或协处理器等可编程器件来完成。发送单元702由附图37中的网络接口903实现。
附图36是本申请实施例提供的一种处理组播报文的装置800的结构示意图,装置800设于VPN内的第一网络设备,包括:接收单元801,用于接收第一组播数据报文;处理单元802,用于基于该第一组播数据报文和第一参数集,获得第二组播数据报文,该第一参数集包括该VPN内第二网络设备的比特转发路由器前缀BFR prefix以及用于标识软件定义广域网SD-WAN隧道的参数,该第二网络设备为该SD-WAN隧道的端点,该第二组播数据报文包括第一报文头、第二报文头和该第一组播数据报文的载荷,该第一报文头包括基于该用于标识SD-WAN隧道的参数获得的该第二网络设备的IP地址,该第二报文头包括基于该第二网络设备的BFR prefix获取的基于比特位的显式复制BIER参数;
发送单元803,用于通过该SD-WAN隧道向该第二网络设备发送该第二组播数据报文。
在一些实施方式中,该第一参数集还包括:该第二网络设备的BIER转发路由器标识符BFR-ID、该第二网络设备的比特串长度BSL、该第二网络设备的集合标识最大值max-SI、该第二网络设备所在的BIER子域的ID、该第二网络设备的比特索引转发表标识BIFT-ID以及该VPN的标识中的一个或多个。
在一些实施方式中,该BIER参数包括与该第二网络设备的BFR prefix对应的比特串bitstring、与该第二网络设备的BFR prefix对应的BIER-MPLS标签、与该第二网络设备的BFR prefix对应的互联网协议第6版IPv6地址其中的一个或多个。
在一些实施方式中,该用于标识SD-WAN隧道的参数包括隧道类型以及用于确定该SD-WAN隧道的信息,该隧道类型用于标识隧道的类型为SD-WAN隧道。
在一些实施方式中,该用于确定该SD-WAN隧道的信息包括该第二网络设备所处的站点的标识或者该第二网络设备的用户端设备标识CPE ID中至少一项。
在一些实施方式中,该第一报文头包括协议类型字段,该协议类型字段用于标识携带该BIER参数的该第二报文头。
在一些实施方式中,该第一报文头还包括该VPN的ID。
附图36所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
装置800中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。
下面结合后文描述的网络设备900,描述使用硬件或软件来实现装置800中的各个功能单元的一些可能实现方式。
在采用软件实现的情况下,例如,上述处理单元802是由附图37中的至少一个处理器901读取存储器902中存储的程序代码后,生成的软件功能单元来实现。
在采用硬件实现的情况下,例如,附图36中上述各个单元由网络设备中的不同硬件分别实现,例如处理单元802由附图37中的至少一个处理器901中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,或者采用现场可编程门阵列(field-programmable gate array,FPGA)、或协处理器等可编程器件来完成。接收单元801和发送单元803由附图37中的网络接口903实现。
附图37是本申请实施例提供的一种网络设备900的结构示意图。
网络设备900包括至少一个处理器901、存储器902以及至少一个网络接口903。
处理器901例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器901包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器902例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。可选地,存储器902独立存在,并通过内部连接904与处理器901相连接。或者,可选地存储器902和处理器901集成在一起。
网络接口903使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口903例如包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络网络接口或其组合等。
在一些实施例中,处理器901包括一个或多个CPU,如附图37中所示的CPU0和CPU1。
在一些实施例中,网络设备900可选地包括多个处理器,如附图37中所示的处理器901和处理器905。这些处理器中的每一个例如是一个单核处理器(single-CPU),又如是一个多核处理器(multi-CPU)。这里的处理器可选地指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在一些实施例中,网络设备900还包括内部连接904。处理器901、存储器902以及至少一个网络接口903通过内部连接904连接。内部连接904包括通路,在上述组件之间传送信息。可选地,内部连接904是单板或总线。可选地,内部连接904分为地址总线、数据总线、控制总线等。
在一些实施例中,网络设备900还包括输入输出接口906。输入输出接口906连接到内部连接904上。
可选地,处理器901通过读取存储器902中保存的程序代码实现上述实施例中的方法,或者,处理器901通过内部存储的程序代码实现上述实施例中的方法。在处理器901通过读取存储器902中保存的程序代码实现上述实施例中的方法的情况下,存储器902中保存实现本申请实施例提供的方法的程序代码910。
处理器901实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可互相参考,每个实施例重点说明的都是与其他实施例的不同之处。
A参考B,指的是A与B相同或者A为B的简单变形。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序,也不能理解为指示或暗示相对重要性。例如,第一参数集和第二参数集用于区别不同的参数集,而不是用于描述参数集的特定顺序,也不能理解为第一参数集比第二参数集更重要。
本申请实施例,除非另有说明,“至少一个”的含义是指一个或多个,“多个”的含义是指两个或两个以上。例如,多个参数集是指两个或两个以上的参数集。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例描述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (44)
1.一种组播配置方法,其特征在于,包括:
虚拟专用网VPN内的第一网络设备获得第一参数集,所述第一参数集包括所述第一网络设备的比特转发路由器前缀BFR prefix以及用于标识软件定义广域网SD-WAN隧道的参数,所述第一网络设备为所述SD-WAN隧道的端点;
所述第一网络设备在所述VPN内发送所述第一参数集。
2.根据权利要求1所述的方法,其特征在于,所述第一参数集还包括所述第一网络设备的BIER转发路由器标识符BFR-ID。
3.根据权利要求1或2所述的方法,其特征在于,所述第一网络设备的BFR prefix为所述第一网络设备在所述VPN内的私网互联网协议IP地址。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一参数集还包括所述第一网络设备的比特串长度BSL、所述第一网络设备的集合标识最大值max-SI、所述第一网络设备所在的BIER子域的ID、所述第一网络设备的比特索引转发表标识BIFT-ID以及所述VPN的标识中的一个或多个。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述用于标识SD-WAN隧道的参数包括第一隧道类型以及第一信息,所述第一隧道类型用于标识隧道的类型为SD-WAN隧道,所述第一信息用于确定所述SD-WAN隧道。
6.根据权利要求5所述的方法,其特征在于,所述第一信息包括所述第一网络设备所处的站点的标识或者所述第一网络设备的用户端设备标识CPE ID中至少一项。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一网络设备在所述VPN内发送所述第一参数集,包括:
所述第一网络设备向所述VPN内的第二网络设备发送所述第一参数集,所述第二网络设备为所述SD-WAN隧道的另一个端点;或者,
所述第一网络设备向路由反射器RR发送所述第一参数集,以使所述RR将所述第一参数集反射至所述VPN内的第二网络设备,所述第二网络设备为所述SD-WAN隧道的另一个端点。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述第一网络设备在所述VPN内发送所述第一参数集,包括:
所述第一网络设备在所述VPN内发送第一通告报文,所述第一通告报文包括第一地址族标识以及所述第一参数集,所述第一地址族标识用于标识边界网关协议以太虚拟专用网络BGP EVPN或者边界网关协议虚拟专用网络基于比特位的显式复制BGP VPN BIER。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一网络设备获得第二参数集,所述第二参数集包括组播源组信息、所述第一网络设备的BFR prefix以及第二隧道类型,所述第二隧道类型用于标识所述第一网络设备与所述VPN内第二网络设备之间的隧道为VPN BIER隧道;
所述第一网络设备向所述第二网络设备发送所述第二参数集。
10.根据权利要求9所述的方法,其特征在于,所述第二参数集还包括所述第一网络设备的比特转发路由器BFR-ID、所述VPN的标识、所述第二网络设备所处的站点的标识以及所述第二网络设备的CPE ID中的一个或多个。
11.根据权利要求9或10所述的方法,其特征在于,所述第一网络设备向所述第二网络设备发送所述第二参数集,包括:
所述第一网络设备向所述第二网络设备发送第二通告报文,所述第二通告报文包括第二地址族标识以及所述第二参数集,所述第二地址族标识用于标识下一代组播虚拟专用网络NG MVPN或者BGP EVPN。
12.根据权利要求11所述的方法,其特征在于,所述第二通告报文包括组播提供商服务接口隧道属性PTA属性,所述PTA属性包括MPLS标签MPLS label字段,所述MPLS label字段包括所述VPN的标识。
13.根据权利要求9至12中任一项所述的方法,其特征在于,所述第一网络设备获得第二参数集之前,所述方法还包括:
所述第一网络设备接收来自所述VPN内组播接收者的加入消息,所述加入消息包括所述组播源组信息;或者,
所述第一网络设备接收来自所述VPN内组播接收者的离开消息,所述离开消息包括所述组播源组信息。
14.一种处理组播报文的方法,其特征在于,包括:
虚拟专用网VPN内的第一网络设备接收第一组播数据报文;
所述第一网络设备基于所述第一组播数据报文和第一参数集,获得第二组播数据报文,所述第一参数集包括所述VPN内第二网络设备的比特转发路由器前缀BFR prefix以及用于标识软件定义广域网SD-WAN隧道的参数,所述第二网络设备为所述SD-WAN隧道的端点,所述第二组播数据报文包括第一报文头、第二报文头和所述第一组播数据报文的载荷,所述第一报文头包括基于所述用于标识SD-WAN隧道的参数获得的所述第二网络设备的IP地址,所述第二报文头包括基于所述第二网络设备的BFR prefix获取的基于比特位的显式复制BIER参数;
所述第一网络设备通过所述SD-WAN隧道向所述第二网络设备发送所述第二组播数据报文。
15.根据权利要求14所述的方法,其特征在于,所述第一参数集还包括:所述第二网络设备的BIER转发路由器标识符BFR-ID、所述第二网络设备的比特串长度BSL、所述第二网络设备的集合标识最大值max-SI、所述第二网络设备所在的BIER子域的ID、所述第二网络设备的比特索引转发表标识BIFT-ID以及所述VPN的标识中的一个或多个。
16.根据权利要求14或15所述的方法,其特征在于,所述BIER参数包括与所述第二网络设备的BFR prefix对应的比特串bitstring、与所述第二网络设备的BFR prefix对应的BIER-MPLS标签、与所述第二网络设备的BFR prefix对应的互联网协议第6版IPv6地址其中的一个或多个。
17.根据权利要求14至16中任一项所述的方法,其特征在于,所述用于标识SD-WAN隧道的参数包括隧道类型以及用于确定所述SD-WAN隧道的信息,所述隧道类型用于标识隧道的类型为SD-WAN隧道。
18.根据权利要求17所述的方法,其特征在于,所述用于确定所述SD-WAN隧道的信息包括所述第二网络设备所处的站点的标识或者所述第二网络设备的用户端设备标识CPE ID中至少一项。
19.根据权利要求14至18中任一所述的方法,其特征在于,所述第一报文头包括协议类型字段,所述协议类型字段用于标识携带所述BIER参数的所述第二报文头。
20.根据权利要求15所述的方法,其特征在于,所述第一报文头还包括所述VPN的ID。
21.一种组播配置装置,其特征在于,设于虚拟专用网VPN内的第一网络设备,包括:
处理单元,用于获得第一参数集,所述第一参数集包括所述第一网络设备的比特转发路由器前缀BFR prefix以及用于标识软件定义广域网SD-WAN隧道的参数,所述第一网络设备为所述SD-WAN隧道的端点;
发送单元,用于在所述VPN内发送所述第一参数集。
22.根据权利要求21所述的装置,其特征在于,所述第一参数集还包括所述第一网络设备的BIER转发路由器标识符BFR-ID。
23.根据权利要求21或22所述的装置,其特征在于,所述第一网络设备的BFR prefix为所述第一网络设备在所述VPN内的私网互联网协议IP地址。
24.根据权利要求21至23中任一项所述的装置,其特征在于,所述第一参数集还包括所述第一网络设备的比特串长度BSL、所述第一网络设备的集合标识最大值max-SI、所述第一网络设备所在的BIER子域的ID、所述第一网络设备的比特索引转发表标识BIFT-ID以及所述VPN的标识中的一个或多个。
25.根据权利要求21至24中任一项所述的装置,其特征在于,所述用于标识SD-WAN隧道的参数包括第一隧道类型以及第一信息,所述第一隧道类型用于标识隧道的类型为SD-WAN隧道,所述第一信息用于确定所述SD-WAN隧道。
26.根据权利要求25所述的装置,其特征在于,所述第一信息包括所述第一网络设备所处的站点的标识或者所述第一网络设备的用户端设备标识CPE ID中至少一项。
27.根据权利要求21至26中任一项所述的装置,其特征在于,所述发送单元,用于向所述VPN内的第二网络设备发送所述第一参数集,所述第二网络设备为所述SD-WAN隧道的另一个端点;或者,向路由反射器RR发送所述第一参数集,以使所述RR将所述第一参数集反射至所述VPN内的第二网络设备,所述第二网络设备为所述SD-WAN隧道的另一个端点。
28.根据权利要求21至27中任一项所述的装置,其特征在于,所述发送单元,用于在所述VPN内发送第一通告报文,所述第一通告报文包括第一地址族标识以及所述第一参数集,所述第一地址族标识用于标识边界网关协议以太虚拟专用网络BGP EVPN或者边界网关协议虚拟专用网络基于比特位的显式复制BGP VPN BIER。
29.根据权利要求21所述的装置,其特征在于,所述处理单元,还用于获得第二参数集,所述第二参数集包括组播源组信息、所述第一网络设备的BFR prefix以及第二隧道类型,所述第二隧道类型用于标识所述第一网络设备与所述VPN内第二网络设备之间的隧道为VPN BIER隧道;所述发送单元,用于向所述第二网络设备发送所述第二参数集。
30.根据权利要求29所述的装置,其特征在于,所述第二参数集还包括所述第一网络设备的比特转发路由器BFR-ID、所述VPN的标识、所述第二网络设备所处的站点的标识以及所述第二网络设备的CPE ID中的一个或多个。
31.根据权利要求29或30所述的装置,其特征在于,所述发送单元,用于向所述第二网络设备发送第二通告报文,所述第二通告报文包括第二地址族标识以及所述第二参数集,所述第二地址族标识用于标识下一代组播虚拟专用网络NG MVPN或者BGP EVPN。
32.根据权利要求31所述的装置,其特征在于,所述第二通告报文包括组播提供商服务接口隧道属性PTA属性,所述PTA属性包括MPLS标签MPLS label字段,所述MPLS label字段包括所述VPN的标识。
33.根据权利要求29至32中任一项所述的装置,其特征在于,所述装置还包括:
接收单元,用于接收来自所述VPN内组播接收者的加入消息,所述加入消息包括所述组播源组信息;或者,接收来自所述VPN内组播接收者的离开消息,所述离开消息包括所述组播源组信息。
34.一种处理组播报文的装置,其特征在于,设于虚拟专用网VPN内的第一网络设备,包括:
接收单元,用于接收第一组播数据报文;
处理单元,用于基于所述第一组播数据报文和第一参数集,获得第二组播数据报文,所述第一参数集包括所述VPN内第二网络设备的比特转发路由器前缀BFR prefix以及用于标识软件定义广域网SD-WAN隧道的参数,所述第二网络设备为所述SD-WAN隧道的端点,所述第二组播数据报文包括第一报文头、第二报文头和所述第一组播数据报文的载荷,所述第一报文头包括基于所述用于标识SD-WAN隧道的参数获得的所述第二网络设备的IP地址,所述第二报文头包括基于所述第二网络设备的BFR prefix获取的基于比特位的显式复制BIER参数;
发送单元,用于通过所述SD-WAN隧道向所述第二网络设备发送所述第二组播数据报文。
35.根据权利要求34所述的装置,其特征在于,所述第一参数集还包括:所述第二网络设备的BIER转发路由器标识符BFR-ID、所述第二网络设备的比特串长度BSL、所述第二网络设备的集合标识最大值max-SI、所述第二网络设备所在的BIER子域的ID、所述第二网络设备的比特索引转发表标识BIFT-ID以及所述VPN的标识中的一个或多个。
36.根据权利要求34或35所述的装置,其特征在于,所述BIER参数包括与所述第二网络设备的BFR prefix对应的比特串bitstring、与所述第二网络设备的BFR prefix对应的BIER-MPLS标签、与所述第二网络设备的BFR prefix对应的互联网协议第6版IPv6地址其中的一个或多个。
37.根据权利要求34至36中任一项所述的装置,其特征在于,所述用于标识SD-WAN隧道的参数包括隧道类型以及用于确定所述SD-WAN隧道的信息,所述隧道类型用于标识隧道的类型为SD-WAN隧道。
38.根据权利要求37所述的装置,其特征在于,所述用于确定所述SD-WAN隧道的信息包括所述第二网络设备所处的站点的标识或者所述第二网络设备的用户端设备标识CPE ID中至少一项。
39.根据权利要求34至38中任一所述的装置,其特征在于,所述第一报文头包括协议类型字段,所述协议类型字段用于标识携带所述BIER参数的所述第二报文头。
40.根据权利要求35所述的装置,其特征在于,所述第一报文头还包括所述VPN的ID。
41.一种网络设备,其特征在于,所述网络设备包括处理器和网络接口,所述网络设备通过所述处理器和所述网络接口,执行如权利要求1至权利要求20中任一项由第一网络设备执行的方法。
42.一种网络系统,其特征在于,所述系统包括如权利要求21至33中任一项所述的装置以及如权利要求34至40中任一项所述的装置。
43.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令在计算机上运行时,使得计算机执行如权利要求1-20中任一项所述的方法。
44.一种计算机程序产品,其特征在于,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行权利要求1-20中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/098480 WO2024016869A1 (zh) | 2022-07-21 | 2023-06-06 | 一种组播配置方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022108654963 | 2022-07-21 | ||
CN202210865496 | 2022-07-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117478503A true CN117478503A (zh) | 2024-01-30 |
Family
ID=89631788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211512828.6A Pending CN117478503A (zh) | 2022-07-21 | 2022-11-28 | 一种组播配置方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117478503A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117812027A (zh) * | 2024-02-29 | 2024-04-02 | 北京极客天成科技有限公司 | Rdma加速组播方法、装置、设备及存储介质 |
-
2022
- 2022-11-28 CN CN202211512828.6A patent/CN117478503A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117812027A (zh) * | 2024-02-29 | 2024-04-02 | 北京极客天成科技有限公司 | Rdma加速组播方法、装置、设备及存储介质 |
CN117812027B (zh) * | 2024-02-29 | 2024-04-30 | 北京极客天成科技有限公司 | Rdma加速组播方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111147383B (zh) | 报文转发的方法、发送报文的装置和接收报文的装置 | |
EP3896923A1 (en) | Bier packet sending method and apparatus | |
CN108574630B (zh) | Evpn报文处理方法、设备及系统 | |
CN108574639B (zh) | Evpn报文处理方法、设备及系统 | |
CN111865898B (zh) | 基于流规则协议的通信方法、设备和系统 | |
CN106059924B (zh) | 一种管理信息的方法,装置及系统 | |
US8553581B2 (en) | Method and apparatus for provisioning a network element | |
US9148300B2 (en) | Method and system for telecommunications including self-organizing scalable Ethernet using IS-IS hierarchy | |
CN107968750B (zh) | 报文传输方法、装置及节点 | |
CN110912796B (zh) | 一种通信方法、设备和系统 | |
EP2690820A2 (en) | Method, apparatus and system for mapping service instance | |
US8442072B2 (en) | Method of preventing transport leaks in hybrid switching networks by extension of the link layer discovery protocol (LLDP) | |
EP3528441B1 (en) | Message forwarding | |
CN106572021B (zh) | 一种实现网络虚拟化叠加的方法与网络虚拟化边缘节点 | |
CN108964940A (zh) | 消息发送方法及装置、存储介质 | |
WO2018058639A1 (zh) | 伪线负载分担的方法和设备 | |
US20230318974A1 (en) | BIER Packet Forwarding Method, Device, and System | |
CN117640399A (zh) | 通信方法及相关装置 | |
CN113037883B (zh) | 一种mac地址表项的更新方法及装置 | |
CN117478503A (zh) | 一种组播配置方法及装置 | |
CN114598635A (zh) | 报文传输的方法和装置 | |
US11784919B2 (en) | Method for sending BIERv6 packet and first network device | |
WO2024016869A1 (zh) | 一种组播配置方法及装置 | |
WO2024007762A1 (zh) | 一种路由发布方法、通信方法及装置 | |
CN103595609B (zh) | Trill网络互联方法、系统及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |