CN113595913B - 报文转发的方法、发送报文的装置和接收报文的装置 - Google Patents
报文转发的方法、发送报文的装置和接收报文的装置 Download PDFInfo
- Publication number
- CN113595913B CN113595913B CN202110736240.8A CN202110736240A CN113595913B CN 113595913 B CN113595913 B CN 113595913B CN 202110736240 A CN202110736240 A CN 202110736240A CN 113595913 B CN113595913 B CN 113595913B
- Authority
- CN
- China
- Prior art keywords
- node
- ipv6 address
- message
- ipv6
- bier
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- 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/40—Bus networks
- H04L12/407—Bus networks with decentralised control
- H04L12/413—Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection (CSMA-CD)
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/32—Flooding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/806—Broadcast or multicast traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
Abstract
本申请提供了一种报文转发的方法、发送报文的装置和接收报文的装置。该方法包括:在控制面上第一节点配置第一VPN的第一标识和第一IPv6地址,其中,第一标识与第一IPv6地址对应,第一节点将第一标识和第一IPv6地址携带在第一指示消息中发送给第二节点,第二节点首先根据本地配置的第一VPN的信息以及第一指示消息中的第一标识,确定在第二节点中与第一标识满足预设对应关系的第二标识,然后建立第一IPv6地址和第二标识间的对应关系。在转发面上第一节点基于第一IPv6地址封装属于第一VPN的组播数据报文,得到待转发的BIER报文并发送,能够提高封装以及转发报文的性能。
Description
本申请是于2018年11月2日提交中国专利局、申请号为CN 201811301263.0、发明名称为“报文转发的方法、发送报文的装置和接收报文的装置”的中国专利申请的分案申请。
技术领域
本申请涉及通信领域,并且更具体地,涉及一种报文转发的方法、发送报文的装置和接收报文的装置。
背景技术
互联网协议(Internet protocol,IP)组播技术实现了IP网络中点到多点的高效数据传送,能够有效地节约网络带宽、降低网络负载,所以IP组播技术在实时数据传送、多媒体会议、数据拷贝、互联协议电视(Internet protocol television,IPTV)、游戏和仿真等诸多方面都有广泛的应用。目前,组播技术一般采用无关组播(protocol independentmulticast,PIM)协议或组播源发现协议(multicast source discovery protocol,MSDP)协议等实现,这些组播协议的一个共同的特点是需要构建一种控制平面组播树,利用这种组播树将网络平面逻辑处理为树状,以实现组播转发的点到多点的数据转发和环路避免等,这种以构建分发树为核心的组播路由协议的中间节点需要维护复杂的组播转发信息的状态,随着网络规模的越来越大,在组播数据流量与日俱增的情况下,这种组播技术面临越来越大的成本和运维方面的挑战。
为此,业界提出了一种新的用于构建组播转发路径的技术,称为基于位索引的显式复制(bit indexed explicit replication,BIER)技术,该技术提出了一种新的不需要构建组播分发树的组播技术架构。支持BIER技术的路由器称为比特转发路由器(bit-forwarding router,BFR),由BFR组成的一个组播转发域称为BIER域(可以称为BIERdomain),在BIER域的边缘,对用户的组播数据进行封装和转发的路由器称为入口位索引转发路由器(bit-forwarding ingress router,BFIR),解封装BIER文的边缘BFR设备称为出口位索引转发路由器(bit-forwarding egress router,BFER),组播数据由BFIR封装进入BIER域,在BIER域中依赖于BIER报文的头部进行转发,而经由一个或者多个BFER设备离开BIER域,在BIER域中,接收并转发BIER报文的设备称为该组播数据的传输位索引转发路由器(BIER Forwarding Router BFR)。一个BFR根据封装和解封装报文的不同可以既是BFIR角色,又可以是BFER角色。
在现有技术中对于基于比特索引的显式复制BIER的组播虚拟专用网(virtualprivate network,VPN),仍然使用现有的机制。即,需要基于虚拟专用网络标签值(virtualprivate network label,VpnLabel)字段进行BIER报文的封装和解封装,从而降低了BIER报文的封装和解封装性能。因此,如何提高BIER报文的封装和解封装性能,进而提高BIER报文转发的性能成为亟待解决的问题。
发明内容
本申请提供一种报文转发的方法和节点,能够提高BIER报文的封装和解封装以及BIER报文转发性能。
第一方面,提供了一种报文转发的方法,应用于基于比特索引的显式复制BIER的组播虚拟专用网VPN中,包括:第一节点配置第一虚拟专用网VPN的第一标识和第一互联网协议第6版IPv6地址该第一IPv6地址与该第一标识对应,该第一节点向第二节点发送第一指示消息,该第一指示消息用于指示该第二节点建立该第一IPv6地址与第二标识间的对应关系,该第一指示消息包括该第一标识和该第一IPv6地址,该第二标识为该第二节点中与该第一标识满足预设对应关系的标识;该第一节点接收属于所述第一VPN的组播数据报文;该第一节点根据该组播数据报文所属的第一VPN和第一标识所对应的该第一IPv6地址,获取该第一IPv6地址;该第一节点基于该第一IPv6地址封装该组播数据报文,得到待转发的BIER报文并发送,所述待转发的BIER报文包括所述第一IPv6地址。
本申请提供的报文转发的方法,在控制面上由第一节点为第一VPN配置的第一标识和第一IPv6地址,并通过第一指示消息将第一标识和第一IPv6地址发送给第二节点,其中,第一标识与第一IPv6地址对应。使得,第二节点能够基于本地为第一VPN配置的第二标识与第一标识之间满足的预设对应关系,进一步确定第一IPv6地址与第二标识之间的对应关系。在转发面上,第一节点在通过第一VPN对应的接口接收到属于第一VPN的报文组播数据报文时,通过第一标识与第一IPv6地址对应获取第一IPv6地址,并基于该第一IPv6地址封装该组播数据报文,得到待转发的BIER报文,将该BIER报文发送给第二节点。无需基于虚拟专用网标签VpnLabel进行报文封装,提高了第一节点封装BIER报文以及发送BIER报文的性能。
应理解,上述的第一、第二只是为了区分不同的节点,不对本申请保护范围构成限定。其中,第一节点为报文转发链路上封装报文的节点,第二节点为报文转发链路上解封装报文的节点,也可以称第一节点为头节点、头设备或是封装报文的路由设备,也可以称第二节点为尾节点、尾设备或是解封装报文的路由设备。
还应理解,第一节点确定上述的组播数据报文应该发送给第二节点,是因为该组播数据报文中携带的组播数据报文的源地址和所述组播数据报文的组地址,而第二节点向第一节点发送源地址和组地址,其中,组播数据报文的源地址与第二节点发送的源地址相同,组播数据报文的组地址与第二节点发送的组地址相同,第一节点获知第二节点为对该组播数据报文感兴趣的节点,因而确定该组播报文需要发送给第二节点。
还应理解,本申请实施例是从一个第二节点出发说明,报文转发和解封装的。实际上,第一节点可以将组播数据报文发送给多个第二节点,即,可以有多个第二节点对该组播数据报文感兴趣,但是每个第二节点执行的动作与上述第二节点类似,所以这里不再赘述。
结合第一方面,在第一方面的某些实现方式中,该第一节点基于该第一IPv6地址封装该组播数据报文之前,该方法还包括:该第一节点接收该第二节点发送的第二指示消息,该第二指示消息包括该第二节点的IPv6地址;该第一节点根据该第二指示消息以及预设配置信息,获取代理节点的IPv6地址,该预设配置信息包括该第二节点的IPv6地址与该代理节点的IPv6地址之间的对应关系;该第一节点基于该第一IPv6地址封装该组播数据报文,得到待转发的BIER报文并发送包括:该第一节点在该组播数据报文外层封装IPv6头,获得该待转发的BIER报文,该IPv6头的源地址为该第一IPv6地址,该IPv6头的目的地址为该代理节点的IPv6地址;该第一节点根据该IPv6头,通过该代理节点向该第二节点发送该待转发的BIER报文。本申请提供的报文转发的方法,在第一节点对组播数据报文进行封装之前,第一节点还接收到第二节点发送的第二指示消息,根据第二指示消息以及本地的预设配置信息,确定转发报文的路径。其中,预设配置信息包括第二节点的IPv6地址与代理节点的IPv6地址之间的对应关系时,第一节点封装该组播数据报文,在该组播数据报文外层封装IPv6头。其中,在本申请中,可以称报文外层封装的IPv6头为外层IPv6头,外层IPv6头携带的源地址为所述第一IPv6地址、目的地址为所述代理节点的IPv6地址。第一节点能够配置到达第二节点的代理节点的地址,并且根据该配置进行封装。
应理解,上述的第二节点的IPv6地址与代理节点的IPv6地址之间的对应关系指的是,根据该对应关系获知通过代理节点将BIER报文转发至第二节点。其中,针对代理节点来说,可以通过该代理节点向多个第二节点转发BIER报文。也就是说,上述的预设配置信息能够指示通过代理节点将BIER报文转发至第二节点,但是在本申请中并不限定通过代理节点只能将BIER报文转发至第二节点。
结合第一方面,在第一方面的某些实现方式中,在该第一节点基于该第一IPv6地址封装该组播数据报文之前,该方法还包括:该第一节点接收该第二节点发送的第二指示消息该第二指示消息包括该第二节点的IPv6地址;该第一节点根据该第二指示消息以及预设配置信息,获取指定节点的IPv6地址和代理节点的IPv6地址,该预设配置信息包括该第二节点的IPv6地址、该指定节点的IPv6地址和该代理节点的IPv6地址之间的对应关系;该第一节点基于该第一IPv6地址封装该组播数据报文,得到待转发的BIER报文并发送包括:该第一节点在该组播数据报文外层封装分段路由头SRH,该SRH携带地址列表,该地址列表包括该指定节点的IPv6地址以及该代理节点的IPv6地址;该第一节点在该SRH外层封装IPv6头,得到该待转发的BIER报文,该IPv6头的源地址为该第一IPv6地址,该IPv6头的目的地址为该指定节点的IPv6地址;该第一节点根据该SRH和该IPv6头,通过该指定节点和该代理节点向该第二节点发送该待转发的BIER报文。
本申请提供的报文转发的方法,第一节点还可以配置到达代理节点的指定节点的地址,并且根据该配置封装报文。提供灵活的配置方案。
结合第一方面,在第一方面的某些实现方式中,该第二指示消息包括:边界网关协议组播虚拟专用网BGP-MVPN消息。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:第一节点封装指示该第二节点的预设信息,其中,第一节点封装指示该第二节点的预设信息包括:第一节点封装IPv6扩展头Destination Option Header,该IPv6 Destination Option Header包括BIER头,该BIER头携带指示该第二节点的预设信息;或者,该第一节点封装BIER扩展头,该BIER扩展头携带指示该第二节点的预设信息,其中,BIER扩展头为新增的一种IPv6扩展头。
本申请提供的报文转发的方法,第一节点封装指示该第二节点的预设信息可以是在已有的IPv6扩展头上进一步扩展,或者是定义新的IPv6扩展头用于封装指示该第二节点的预设信息。为封装指示该第二节点的预设信息提供多种选择方案,提高封装报文的灵活性。
结合第一方面,在第一方面的某些实现方式中,所述第一指示消息包括以下消息中的至少一种:BGP-MVPN路由BGP-MVPN route消息、BGP-VPN路由BGP-VPN route消息或BGP以太虚拟专用网络路由BGP-EVPN route消息。
第二方面,提供了一种报文转发的方法,应用于基于比特索引的显式复制BIER的组播虚拟专用网VPN中,包括:第二节点接收来自第一节点的第一指示消息,该第一指示消息包括第一VPN的第一标识和第一IPv6地址,该第一标识与该第一IPv6地址对应;该第二节点根据该第一IPv6地址和所述第一标识,建立该第一IPv6地址与第二标识间的对应关系,该第二标识为该第二节点中与该第一标识满足预设对应关系的标识;该第二节点接收来自第一节点的BIER报文,该BIER报文包括该第一IPv6地址以及组播数据报文;该第二节点根据该第一IPv6地址以及该第一IPv6地址与第二标识的对应关系,向该第二标识对应的接口发送该组播数据报文。
本申请提供的报文转发的方法,在控制面上第二节点基于本地配置的第一VPN的第二标识,以及接收到的第一指示消息中携带的第一标识和第一IPv6地址。确定第一IPv6地址与第二标识间的对应关系。在转发面上,第二节点接收到BIER报文之后,根据该BIER报文中携带的第一IPv6地址,确定向该第二标识对应的接口发送BIER报文中携带的组播数据报文。第二节点在解封装报文的过程中无需基于VpnLabel确定向第二标识对应的接口发送播数据报文,提高了解封装报文的性能。
结合第二方面,在第二方面的某些实现方式中,该第二节点接收来自该第一节点的BIER报文之前,该方法还包括:该第二节点向该第一节点发送第二指示信息,该第二指示信息包括该第二节点的IPv6地址。
本申请提供的报文转发的方法,第二节点需要向第一节点发送组播加入报文。使得第一节点能够获知第二节点感兴趣的组播数据报文。
结合第二方面,在第二方面的某些实现方式中,该第二节点根据该第一IPv6地址以及该对应关系,向该第二标识对应的接口发送该组播数据报文包括:该第二节点根据该第一IPv6地址以及该对应关系,获得该第二标识;该第二节点确定该组播数据报文包括组播源的地址和组播组的地址之后,获得该第二标识对应的至少一个接口并通过该至少一个接口发送该组播数据报文,该组播源的地址为该第二节点所需接收的组播源的地址,该组播组的地址为该第二节点所加入的组播组的地址该。
本申请提供的报文转发的方法,第二节点解封装接收到的BIER报文时,首先根据该BIER报文中携带的指示该第二节点的预设信息,确定该BIER报文是由第二节点进行解封装,具体地,第二节点根据控制面上建立的第一IPv6地址与该第二标识间的对应关系以及BIER报文中携带的第一IPv6地址,进一步地确定该BIER报文中携带的组播数据报文应该向第二标识对应的接口发送;再确定向第二标识对应的接口发送组播数据报文之后,还需要根据BIER报文内层IPv6或IPv4头携带的源地址和目的地址,确定向第二标识对应的接口中的哪些接口发送组播数据报文。根据本申请提供的报文转发的方法,第二节点在确定向本地哪个标识对应的接口发送组播数据报文的过程中,只需根据在控制面建立的第一IPv6地址与该第二标识间的对应关系以及BIER报文中携带的第一IPv6地址,进行确定,简化了确定过程,提高了解封装报文的性能。
结合第二方面,在第二方面的某些实现方式中,该第二指示消息包括:BGP-MVPN消息。
结合第二方面,在第二方面的某些实现方式中,该第一指示消息包括以下消息中的至少一种:BGP-MVPN route消息、BGP-VPN route消息或BGP-EVPN route。
第三方面,提供了一种发送报文的装置,该发送报文的装置可以用来执行第一方面及第一方面的任意可能的实现方式中的第一节点的操作。具体地,该发送报文的装置包括用于执行上述第一方面所描述的步骤或功能相对应的部件(means)可以是第一方面的第一节点。所述步骤或功能可以通过软件实现,或硬件实现,或者通过硬件和软件结合来实现。
第四方面,提供了一种接收报文的装置,该接收报文的装置可以用来执行第二方面及第二方面的任意可能的实现方式中的第二节点的操作。具体地,该接收报文的装置包括用于执行上述第二方面所描述的步骤或功能相对应的部件(means)可以是第二方面的第二节点。所述步骤或功能可以通过软件实现,或硬件实现,或者通过硬件和软件结合来实现。
第五方面,提供了一种报文转发的设备,报文转发的设备的结构中包括处理器。该处理器被配置为支持报文转发的设备执行上述第一方面或第二方面及其各种实现方式中的功能,在一个可能的设计中,该报文转发的设备还可以包括通信接口,用于支持组播转发的设备接收或发送信息。
在一个可能的设计中,该报文转发的设备还可以包括存储器,该存储器用于与处理器耦合,保存报文转发的设备中必要的程序指令和数据。
或者说,该报文转发的设备包括存储器和处理器,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得报文转发的设备执行上述第一方面或第二方面中及其各种实现方式中的任一种报文转发的方法。
第六方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被运行时,使得计算机执行上述第一方面或第二方面中任一种可能实现方式中的报文转发的方法。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,所述程序使得计算机中的服务器执行上述第一方面或第二方面及其各种实现方式中的任一种报文转发的方法。
或者说,该计算机可读存储介质用于储存为上述服务器所用的计算机软件指令,其包含用于执行上述第一方面或第二方面中任一种可能实现方式中任一种报文转发的方法所设计的程序。
第八方面,提供了一种芯片系统,该芯片系统包括处理器,用于支持计算机中的服务器实现上述第一方面或第二方面及其各种实现方式中所涉及的功能。
本申请实施例的报文转发的方法以及节点。通过在控制面上建立第一IPv6地址与第二标识间的对应关系,在转发面上首先第一节点封装BIER报文的时候无需基于VpnLabel,只需将第一IPv6地址作为BIER报文外层IPv6头的源地址进行封装,在第二节点上基于控制面建立的第一IPv6地址与所述第二标识间的对应关系以及接收到的BIER报文中携带的第一IPv6地址,即能够确定该BIER报文中携带的组播数据报文应该向与第一IPv6地址存在对应关系的第二标识对应的接口发送,进而提高了封装BIER报文以及解封装BIER报文的性能。
附图说明
图1是BIER报文转发架构示意图。
图2是本申请实施例提供的一种BIER报文的头格式的示意图。
图3是本申请实施例提供的一种Ipv6扩展头的格式的示意图。
图4是本申请实施例提供的一种报文转发的方法的示意图。
图5中(a)-(c)是本申请实施例提供的第一节点封装的不同的BIER报文格式的示意图。
图6中(a)和(b)是本申请实施例提供的具体实施例一示意图。
图7是本申请实施例提供的具体实施例二示意图。
图8是本申请实施例提供的一种发送报文的装置的结构示意图。
图9是本申请实施例提供的另一种发送报文的装置的结构示意图。
图10是本申请实施例提供的一种接收报文的装置的结构示意图。
图11是本申请实施例提供的另一种接收报文的装置的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请实施例的技术方案可以应用于组播虚拟专用网(virtual privatenetwork,VPN)中的支持互联网协议第6版(internet protocol version 6,IPv6)功能、分段路由第6版(segment routing version 6,SRv6)功能或BIER IPv6转发功能中的一种或多种功能的节点中。其中,SRv6功能包含IPv6功能,BIER IPv6转发功能包括BIER IPv6报文的封装、BIER IPv6报文的转发、BIER IPv6报文的解封装和发送。在本申请中也可以称BIERIPv6报文为BIER报文。
具体的,上述节点可以是路由器或是交换机等能够实现BIER报文的封装、BIER报文转发以及BIER报文解封装的节点。其中,上述节点也可以称之为网元或设备或其他名称。
需要说明的是,上述的VPN可以是multicast VPN,具体地multicast VPN为虚拟专用网络部署组播,该虚拟专用网络可以是三层虚拟专用网络(layer 3virtual privatenetwork,L3VPN)、以太虚拟专用网络(Ethernet virtual private network,EVPN),也可以是公网中的部分站点部署组播。其中,私有网络L3VPN/EVPN/公网部署组播有一些通用的协议和方法。例如,L3VPN部署组播时使用边界网关协议组播虚拟专用网(border gatewayprotocol-multicast virtual private network,BGP-MVPN)地址族消息;EVPN部署组播时使用边界网关协议以太虚拟专用网络(border gateway protocol-Ethernet virtualprivate network,BGP-EVPN)地址族;公网部署组播时也使用BGP-MVPN地址族消息,只是使用特殊的标识,将公网也看做一个特殊的L3VPN或虚拟转发路由(virtual routingforwarding,VRF)标识出来。
图1是BIER报文转发架构示意图。该示意图包括两个不同的BIER域(如图1所示的BIER域1和BIER域2)、在BIER域1和BIER域2的边缘,对组播数据进行封装的边缘BFR节点为BFIR(如图1所示的BFIR1~BFIR4)、对BIER报文进行解封装的边缘BFR节点为BFER(如图1所示的BFER1~BFER4)。
其中,BFIR可以称之为入口位索引转发路由器、头节点、转发设备等;BFER可以称之为出口位索引转发路由器、尾节点、叶子节点或接收设备等。
具体的,组播数据报文通过BFIR进行封装,得到待转发的BIER报文。BIER报文进入BIER域,在BIER域中依赖BIER报文的头部进行BIER报文的转发,BIER报文经由一个或者多个BFER设备离开BIER域。在BIER域中,接收并转发BIER报文的设备称为该BIER报文的传输位索引转发路由器(即,transit BFR)。其中,一个BFR根据封装和解封装报文的不同可以既是BFIR角色,又可以是BFER角色。
例如,图1中的BFR1在接收组播数据报文,并封装组播数据报文,得到待转发的BIER报文时,为BFIR;BFR1在接收BIER报文,并解封装所述BIER报文时,为BFER。
为了更好地理解本申请实施例提供的报文转发的方法、发送报文的装置和接收报文的装置,下面首先介绍本申请实施例中会涉及的几个基本的概念。
1、BIER技术。
BIER技术是从2014年底开始在国际互联网工程任务组(the internetengineering task force,IETF)上讨论产生的一种组播技术,BIER技术的简要说明如下:
首先,提出BIER域(BIER domain)的概念,BIER Domain是一个运行BIER控制面协议的域。
例如,一个运行内部网关协议(interior gateway protocol,IGP)的域可以是一个BIER domain,但多个运行IGP的域则不能是一个BIER domain。本申请中运行IGP的域称为IGP域,例如,图1所示的BIER域1可以为IGP域1,BIER域2可以为IGP域2。
具体地,一个BIER domain内,可以划分多个子域(Sub-domain)。
例如,一个BIER domain划分为3个Sub-domain(分别为Sub-domain#1、Sub-domain#2、Sub-domain#3)。其中,Sub-domain#1包含BIER Domain内所有的节点以及所有的链路;Sub-domain#2包含BIER Domain内所有的节点及第一部分的链路;Sub-domain#3包含BIER Domain内所有的节点中的部分节点及第二部分的链路,其中,第一部分的链路和第二部分的链路为BIER Domain内所有的链路的第一部分和第二部分。
应理解,针对BIER Domain内的相关信息配置及其作用域,通常是以Sub-domain为粒度、对Sub-domain生效的。
上述Sub-domain内的每个边缘节点都配置一个值作为BIER转发路由器标识(BIERforwarding router identify,BFR-ID)。
例如,为Sub-domain#1内的每个边缘节点分别配置一个1~256中的一个值,分别作为Sub-domain#1内每个边缘节点的BFR-ID;为Sub-domain#2内的每个边缘节点分别配置一个1~256中的一个值,分别作为Sub-domain#2内每个边缘节点的BFR-ID。
其中,Sub-domain内的每个节点的配置信息会通过IGP泛洪的方式在IGP域内泛洪。具体地,各个节点的配置信息包括节点的IP地址、节点所属的子域、节点所属的子域对应的基于比特的转发表标识(Bit Index Forwarding Table identify,BIFT-ID)以及节点的BFR-ID。
应理解,边缘节点有BFR-ID而中间节点没有BFR-ID,但是中间节点有节点的IP地址、节点所属的子域以及节点所属的子域对应的BIFT-ID信息。
IGP泛洪的方式,指的是IGP域内的各个节点将配置信息广播在所属的IGP域内,且IGP域内的所有节点均接受并保存其他节点的配置信息。进一步地,IGP域内各个节点根据现有技术中的IGP里通用的算法,计算得到BIER报文到达边缘节点之后的下一跳节点的信息。一个IGP域内的各个节点都已知每个BFR-ID对应着哪个Sub-domain内的哪个节点。IGP域内的各个节点通过控制面建立转发表,该转发表的建立过程与现有技术中控制面建立转发表类似,这里不再赘述。
IGP域内的各个节点通过控制面建立转发表之后,IGP域内的各个节点可在转发面上利用该转发表中的对应关系来转发BIER报文。其中,BIER报文中的比特串(BitString)中的每个Bit的值用来标识该BIER报文的下一跳节点。
例如,BitString中的最低位(最右)的一个Bit用来标识BIER报文的下一跳节点是BFR-ID=1对应的节点;BitString中的从右往左的第2个Bit用来标识BIER报文的下一跳节点是BFR-ID=2对应的节点。
下面以一个具体的例子进行简单说明BitString如何指示BIER报文的下一跳节点。
假设BitString一共为4比特,并规定当BitString中的Bit值为1时,表示转发BIER报文,Bit值为0时,表示不转发BIER报文:
当BitString为0001,转发面根据BIER报文中的BitString决定BIER报文要往BFR-ID=1对应的节点发送;当BitString为0011,转发面根据BIER报文中的BitString决定BIER报文要往BFR-ID=1对应的节点以及BFR-ID=2对应的节点发送。
进一步地,当BIER报文中的BitString中的多个Bit对应同一个下一跳节点时,只需向该下一跳节点发送一份该BIER报文。
例如,BitString中的最低的两个Bit用来标识BIER报文的下一跳节点是BFR-ID=1对应的节点。假设BitString一共为4比特,并规定当BitString中的Bit值为1时,表示转发BIER报文,Bit值为0时,表示不转发BIER报文:
当BitString为0011,转发面根据BIER报文中的BitString决定BIER报文要往BFR-ID=1对应的节点发送,并且只需向BFR-ID=1对应的节点发送一份该BIER报文。这是因为在遍历到0011最低的比特时,确定向BFR-ID=1对应的节点发送该BIER报文,同时最低的比特紧接着的右边的一个比特被洗去,不会接着遍历,而是直接遍历从右往左的第三个比特。
应理解,上述如何根据BIER报文中BitString确定BIER报文的下一跳节点以及BitString的比特数只是举例的形式,不对本申请构成限定,具体地BitString的作用与现有技术中的BitString类似,这里不再赘述。
由上所述,转发面根据BIER报文中的BitString决定报文的转发,则在转发面上实现BIER报文转发的关键是BIER报文的头格式,下面结合附图简单介绍BIER报文的头格式。
图2是本申请实施例提供的一种BIER报文的头格式的示意图。该示意图包括一个32bit(4个字节)的BIER标签(BIER-label)或BIFT标识(BIFT-ID)值,32bit中前20bit为BIER-label值或BIFT-ID值,后12bit为BIER-label或BIFT-ID的其它信息(如图2中第一行所示)。
具体地,BIER-label或BIFT-ID的其它信息包括图2中第一行所示的流量类型(traffic class,TC)、标签栈栈底标记(bottom of stack,S)、一个封包在网络上可以存活的时间(time to live,TTL)等信息。
应理解,上述BIER-label或BIFT-ID时不同场景下的对于BIER报文的头格式20bit的两种不同的称呼。因为,BIER报文的转发中BIER头是在某一个扩展头头之后的,BIER头之后再封装数据包。
分为以下两种情况:
1、BIER头封装在MPLS的标签栈里面,或者说封装在以太网后面,例如,在以太链路上且以太类型为0x8847指示以太网后面的封装为MPLS封装。标签栈里面的第一个为BIER标签,那么BIFT-ID实际上就是一个MPLS的标签,称为BIER-label;
2、BIER头不封装在MPLS标签栈里面,例如,在以太链路上且以太类型为0xAB37指示以太网后面的封装为非MPLS的BIER封装。那么,BIFT-ID不是MPLS的标签,直接为BIFT-ID。
综上,Non-MPLS场景下称为BIFT-ID,MPLS场景下称为BIFT-lable。
该示意图所示的BIER报文的头格式还包括64bit(8个字节)的其它字段(如图2中第二行和第三行所示)。具体地,其它字段包括图2中的第二行和第三行所示的:半字节(Nibble)、版本(version,Ver)、比特串长度(bit string length,BSL)、信息熵(Entropy)、操作维护管理(operationadministration and maintenance,OAM)、修订标准版(revisedstandard version,Rsv)、差分服务代码点(differentiated services code point,DSCP)、协议(protocol,Proto)、入口位索引转发路由器标识(bit-forwarding ingressrouter identify,BFIR-ID)等字段。
该示意图所示的BIER报文的头格式还包括BitString。具体地,BitString的长度可以是64bit、128bit或256bit等不同的长度(根据BitString的长度不同图2中的n的值不同,当BitString的长度为64bit时,n=1即BitString为图2中的第四行和第五行)。图2中第一行所示的BIER-label或BIFT-ID的值可用来确定BitString的长度。
2、IPv6技术。
IPv6是互联网协议的第6版,之前广泛应用的互联网协议是互联网协议第4版(internet protocol version4,IPv4)。IPv6和IPv4相比一个比较大的区别是:
IPv6将IPv6头分为IPv6基本头(IPv6 Header)和IPv6扩展头(IPv6 ExtensionHeader)。其中,IPv6本身定义了一些IPv6扩展头,这些扩展头里面还可以进一步扩展。
例如,通过类型长度和值(type length value,TLV)方式对IPv6中现有定义的IPv6扩展头进一步扩展。一定情况下也允许扩展增加新的IPv6扩展头,但IPv6协议建议在现有的IPv6扩展头上进行扩展,而不建议增加新的IPv6扩展头。
还例如,分段路由第6版(Segment Routing version6)就是在现有的Ipv6扩展头(类型为路由头部(Routing Header))上扩展的一种子类型,而不是新增定义的一种和Ipv6扩展头和Routing Header并列的Ipv6扩展头类型。
应理解,IPv6协议不建议增加新的IPv6扩展头,而是建议在现有的IPv6扩展头上进行进一步地扩展。但是在理由充分的前提下仍然可以新增IPv6扩展头。
具体地,各种Ipv6扩展头大体上都是如图3所示的格式,图3所示的格式可以表示目前Ipv6已经定义的多种扩展头,以及后续可能新增定义的Ipv6扩展头的格式。
图3是本申请实施例提供的一种Ipv6扩展头的格式的示意图。该示意图包括下一个头(Next Header)格式。Ipv6扩展头中的Next Header标明了Ipv6扩展头之后还有一个特定类型的扩展头,如此便可支持多个扩展头。此外,Ipv6扩展头中的Next Header也可以指定一个上层协议(upper layer protocol,ULP)。
例如,Next Header指定ULP为传输控制协议(transmission control protocol,TCP)或者用户数据报协议(user datagram protocol,UDP),表示其头部后面跟着的是TCP或UDP头及报文。
应理解,Ipv6基本头中也可以包括上述的Next Header,标明了Ipv6基本头之后还有一个特定类型的Ipv6扩展头以及指定一个上层协议,与Ipv6扩展头中的Next Header类似,这里不再赘述。
该示意图还包括扩展头长度(header extension length,Hdr Ext Len)用于指示Ipv6扩展头的长度。
该示意图还包括特殊头数据(header-specific data)。
下面结合图1简单介绍现有技术中BIER报文的转发的过程。
现有技术中的一种BIER报文转发的方法包括:新增定义一种IPv6扩展头,称该新增的IPv6扩展头称为BIER扩展头(BIER extension header)。在BIER扩展头中携带转发BIER报文所需要的信息,例如,上述的BitString信息等。
具体地,头节点接收组播数据报文,组播数据报文携带所述组播数据报文的源地址和所述组播数据报文的组地址。头节点该组播数据报文封装在IPv6基本头和BIER扩展头中,生成待转发的BIER报文。
其中,转发的BIER报文的IPv6基本头中的IPv6目的地址(IPv6 destinationaddress)使用该组播数据报文的组地址,该组地址用于标识有多个尾节点对该组地址感兴趣,即该头节点需要将目的地址为该组地址的BIER报文复制转发至该多个尾节点。
例如,尾节点#1、尾节点#2以及尾节点#3分别向头节点#1发送消息,指示尾节点#1、尾节点#2以及尾节点#3对组地址#1感兴趣。则,头节点#1将目的地址为组地址#1的BIER报文复制转发至尾节点#1、尾节点#2以及尾节点#3。
进一步地,该头节点通过查询BIER报文后面的BIER扩展头中的BitString等信息确定将BIER报文发送到哪些尾节点,并且通过查询BitString信息和头节点中建立的BIER转发表确定怎么发送到这些尾节点。
例如,上述头节点#1查询BIER报文后面的BIER扩展头中的BitString等信息确定将BIER报文发送到尾节点#1和尾节点#2,并通过查询BIER转发表确定转发路径。
具体地,在图1的BIER域1中BFIR1和BFIR2为入口位索引转发路由器,BFER1和BFER2为出口位索引转发路由器;BIER域2中BFIR3和BFIR4为入口位索引转发路由器,BFER3和BFER4为出口位索引转发路由器。
假设,BIER域1只划分为Sub-domain#1属于IGP域1,BIER域2只划分为Sub-domain#2属于IGP域2。且,在Sub-domain#1内BFER1、BFER2的BFR-ID分别为BFR-ID=1和BFR-ID=2。在Sub-domain#2内BFER3、BFER4的BFR-ID分别为BFR-ID=1和BFR-ID=2。
当BFIR1为上述头节点#1,BFER1、BFER2以及BFER3分别为上述的尾节点#1、尾节点#2以及尾节点#3时,BFIR1根据从BFER1、BFER2以及BFER3接收到的消息,确定BFER1、BFER2以及BFER3均对组地址#1感兴趣。则,BFIR1接收到携带该组地址#1的组播数据报文时,对该组播数据报文进行报文封装,得到待转发的BIER报文。并且,该待转发的BIER报文的IPv6基本头中的IPv6 destination address使用组地址#1。
进一步地,BFIR1通过查询BIER报文后面的BIER扩展头中的BitString、BIFT-ID、Sub-domain等信息,确定该BIER报文需要转发至Sub-domain#1内的BFR-ID=1对应的BFER1,以及Sub-domain#2内的BFR-ID=1对应的BFER3。具体地,BFIR1根据BIER转发表确定该BIER报文在Sub-domain#1内经由中间节点转发至BFER1;由Sub-domain#1内的中间节点和边缘节点(BFER1或BFER2)将BIER报文转发至BFER3。具体地转发路径由转发表确定。
上述的BIER报文转发的方式,需要将转发BIER报文所需的BitString等信息封装在BIER Extension Header的IPv6扩展头中,并且该IPv6扩展头是一个新增的IPv6扩展头,而不是在已有的IPv6扩展头上的进一步扩展。而在RFC8200中明确说明,不推荐新增定义IPv6扩展头,而推荐使用现有的IPv6扩展头,还特别提出,推荐使用在IPv6目的选项头(Destination Option Header)上进行进一步扩展,其中,IPv6 Destination OptionHeader为一种IPv6扩展头。
也就是说在协议规定下,上述的BIER报文转发的方法不是IPv6协议推荐的方法。
为了适应IPv6协议的规定,现有技术中还提出另一种BIER报文转发的方法。在已有的IPv6扩展头Destination Option Header里新增定义一种类型长度和值(type lengthvalue,TLV),称为BIER类型长度和值(BIER type length value,BIER TLV)。在BIER TLV中存放BIER报文转发所需要的信息,包括上述的BitString信息等。
进一步地,该BIER报文转发的方法还提出了如何将BIER报文通过SRv6隧道进行转发。下面从头节点、尾节点以及中间节点几个方面简单介绍该BIER报文转发的方法是如何通过SRV6的隧道进行转发的:
首先,头节点将包含BIER头的IPv6 Destination Option Header放在分段路由头部(segment routing header,SRH)的后面。其中,SRH和IPv6 Destination Option Header均为现有的IPv6的扩展头,SRH在IPv6 Destination Option Header前面。
其次,在SRH隧道的端点上,端点通过IPv6头部的特定IPv6 Destination Address地址预定义动作,负责将SRH从IP头部剥离,并将SRH中包含的组播IPv6地址拷贝到IPv6头部的IPv6 Destination Address中。其中,SRH隧道的端点可以称为中间节点,为转发报文的路由器。
应理解,单播的SRV6技术,报文经由SRV6的隧道进行转发时可以带SRH,也可以不带SRH。但是上述的BIER报文转发的方法,报文经由SRV6的隧道进行转发时一定携带SRH,并将组地址放在SRH中,这么做的好处包括:
SRV6的隧道端点可以无需跟组播组地址做一一对应,也就是说隧道端点是一个IPv6Destination Address地址预定义动作,无需考虑具体的组播组地址,而是接收到报文时将组地址拷贝到IPv6头部的IPv6 Destination Address中即可。
头节点再根据此IPv6 Destination Address,进行BIER IPv6的转发,即读取IPv6头部后面的Destination Option Header里的BIER头,根据BIER头里的BitString等信息,将BIER报文往一个或多个接口复制发送。
这种BIER报文转发的方法,应用于基于比特索引的显式复制BIER的组播虚拟专用网(multicast virtual private network over BIER,multicast VPN over BIER)中时,仍然使用现有的机制。现有机制最关键的是,尾节点需要根据VpnLabel确定接收到的报文属于尾节点中的哪一个虚拟转发路由(virtual routing forwarding,VRF)。其中,VRF的概念跟虚拟专用网络(virtual private network,VPN的概念相对应),每一个VPN对应一个VRF。MVPN的含义就是VPN里面的组播,所以在MVPN over BIER的场景下需要使用现有机制,这个现有机制实际上就是根据报文获取该报文属于哪一个VRF。
例如,利用BIER头部协议字段=2(Proto=2),标识BIER头部后面的报文为虚拟专用网络标签+互联网协议(virtual private network+internet protocol,VpnLabel+IP)报文。
这意味着,在BIER报文的整个IPv6头和Destination Option Header头部之后的报文。首先是一个总长为4字节的字段,该4字节中有20bit的虚拟专用网络标签值(virtualprivate network label,VpnLabel)字段。该4字节之后是IPv4或IPv6报文。
还意味着,在尾节点收到该报文以后,要根据上述的VpnLabel值以及报文中BIER头里的其它字段(具体的,根据图2所示BIER头里的BIFT-ID、BFIR-ID两个字段),才能确定该报文属于尾节点中的哪一个虚拟转发和路由(virtual routing and forwarding,VRF),然后再根据VpnLabel字段后面的IPv4或IPv6头部的源IP、目的IP及前述VRF才能确定报文要往该VRF的哪些接口复制发送。
上述报文转发的方法是基于BIER头部后面的VpnLabel确定报文属于尾节点中的哪个VRF进而进行MVPN over BIER的转发。其特点是:
在BIER头中使用一个Proto值(例如2)表示BIER头后面是一个VpnLabel,再根据VpnLabel确定报文属于哪个VRF。具体地,BIER头后是VpnLabel,而VpnLabel之后是私网IP报文。尾节点接收到报文之后,首先根据BIER头部BIFT-ID获知报文属于哪个Sub-domain,然后再根据Sub-domain以及BIER头部BFIR-ID获知报文来自于哪个头节点,最后尾节点根据VpnLabel信息确定该报文对应尾节点中的哪个VRF。
因为报文中的VpnLabel是头节点分配的,头节点分配VpnLabel信息,并通过控制面传给尾节点,进而尾节点根据头节点以及头节点分配的VpnLabel才能知道报文在尾节点中对应的VRF。则,头节点需要分配VpnLabel,且头节点封装的报文中一定要有头节点的信息以及头节点分配的VpnLabel信息。
综上所述,在控制面头节点需要将上述的VpnLabel、BFIR-ID以及Sub-domain之间的对应关系通知尾节点,尾节点保存对应关系;然后在转发面,头节点发送数据报文,尾节点根据该对应关系确定该报文对应尾节点中的哪一个VRF。
具体原理是:在控制面multicast VPN中的头节点需要配置和multicast VPN中的尾节点一样的Sub-domain及不同的BFR-ID(头节点的BFR-ID称为BFIR-ID)。
头节点需要生成一个VpnLabel值,然后将这三者(Sub-domain、BFR-ID以及VpnLabel)的信息连同VPN标识的信息发送给尾节点,尾节点再根据消息中的VPN标识和尾节点的VRF对应,建立Sub-domain、BFIR-ID以及VpnLabel与尾节点中的VRF的对应关系,这样报文到达尾节点时,尾节点才能根据报文中的BIFT-ID获得Sub-domain,再根据报文中的BFIR-ID、VpnLabel一起确定报文属于哪个VRF。
这种根据Sub-domain、BFR-ID以及VpnLabel三个字段才能确定报文属于哪一个VRF的缺点在于,multicast VPN中的头节点的配置和信息的生成复杂,multicast VPN中的尾节点建立转发表复杂,同时报文中需要携带一个VpnLabel,降低报文转发的性能。
上述的BIER报文转发的方法首先要求使用现有的BIER头的Proto字段,标识后面的BIER载荷类型及区分该BIER载荷属于哪个VRF实例。
例如,Proto=2标识BIER载荷类型为上游节点分配的VpnLabel开头的报文。而VpnLabel用于进一步区分该报文是哪一个VRF的IPv4报文或哪一个VRF的IPv6报文,是要和BIER头的其它字段一起才能完成。例如,VpnLabel和BIER头里面的BIFT-ID及BFIR-ID共同完成该区分。这是因为:
VpnLabel是由上游节点分配的,而头节点的信息需要通过BFIR-ID及其Sub-domain才能完成(BFIR-ID在特定的Sub-domain下才有意义)。
例如,头节点通过边界网关协议(border gateway protocol,BGP)发送消息给尾节点,消息中包含有头节点的VRF的标识,具体地,头节点的VRF的标识为在BGP-MVPN地址族中通过路由表(Route Target)标识、头节点的BFIR-ID及Sub-domain、头节点对该VRF分配的VpnLabel。
尾节点根据头节点发来的消息中的VRF标识与尾节点配置的VRF的标识进行匹配确定该消息属于哪个VRF,从而知道(Sub-domain、BFIR-ID、VpnLabel)对应尾节点的哪个VRF,再根据接收到的报文中的BIER头部的BIFT-ID获知Sub-domain,根据报文中BIER头部的BFIR-ID字段、报文中的VpnLabel字段,确定报文属于哪个VRF。
该方法中,获知报文属于哪个VRF需要通过将头节点、尾节点配置在一个BIER的Sub-domain、头节点配置该Sub-domain中唯一的BFIR-ID、头节点分配VpnLabel、并且将这三个信息及VRF的标识(例如,在BGP-MVPN协议中通过Route Target扩展团体属性)发送给各尾节点,才能在尾节点上建立识别报文VRF的转发表。
其缺点在于:
1、需要在头节点分配VpnLabel,并封装在报文中,占用4个字节。在封装上IPv6/SRv6和多协定标签交换(multiple protocol label switching,MPLS)标签的混合,和现有的SRv6-VPN的技术方案中的封装形式相比较,差异较大,因为SRv6-VPN中没有任何MPLS标签。
2、需要在头节点配置BFIR-ID。在跨域部署BIER IPv6组播的情况下尤其困难,因为需要将头节点、尾节点配置在一个BIER的Sub-domain中、头节点配置该Sub-domain中唯一的BFIR-ID。而BIER的Sub-domain通常是在一个IGP域中,才能方便的配置该域的唯一的BFIR-ID;跨IGP域配置头节点和尾节点处于同一Sub-domain及不同的BFR-ID,困难之一是要避免产生配置冲突。
为了解决上述BIER报文转发方法存在的问题,本申请提出一种报文转发的方法、发送报文的装置和接收报文的装置,能够提高发送报文的性能。
下面结合图4详细介绍本申请实施例提供的报文转发的方法。
本申请实施例提供的报文转发的方法适用于图1所示的场景。具体地,应用于基于比特索引的显式复制BIER的组播虚拟专用网multicast VPN中。
下面从节点之间交互的角度详细说明本申请实施例提供的报文转发的方法。
图4是本申请实施例提供的一种报文转发的方法的示意图。该示意图包括S110-S180八个步骤,下面详细介绍这八个步骤。
S110,第一节点配置VPN的信息。
第一节点配置第一虚拟专用网VPN的第一标识和第一互联网协议第6版IPv6地址,其中,所述第一VPN为多个VPN中的任意一个VPN,所述第一IPv6地址与所述第一标识对应。
应理解,第一节点为接收组播数据报文,并对该组播数据报文进行封装的节点。例如,图1中所示的BFIR1~BFIR4,本申请中可以称之为第一节点、头节点、第一设备、头设备、第一网元、发送网元等。
需要说明的是,multicast VPN指的在VPN上部署组播,并且VPN与VRF一一对应。也就是说,上述的第一节点配置第一VPN的第一标识,也可以称为第一节点配置第一VPN的第一VRF的标识。在下文中,第一VRF的标识即上述的第一标识。则,第一节点配置第一VPN的第一VRF的标识和第一IPv6地址指的是,第一节点需要为多个VPN分别配置不同的VRF的标识和IPv6地址。
本申请实施例中从第一节点为任意一个VPN配置VRF的标识和IPv6地址出发进行说明,具有普遍意义。并且第一节点为第一VPN配置的第一IPv6地址,称为第一节点的第一IPv6地址,为全网唯一的IPv6地址。
例如,某个运营商的网络建立有A、B、C三个站点,能够支撑多个客户,那么每个客户在三个站点都分别有该客户自己的网络。假设为两个客户,即一个客户在A、B、C三个站点都有自己的网络,另一个客户在A、B、C三个站点也都有自己的网络,则有两个VPN,每个VPN都A、B、C三个站点。进而在A站点需要为VPN1分配VRF1的标识以及IPV6 Addr1;为VPN2分配VRF2的标识以及IPV6 Addr2。其中,IPV6 Addr指的是IPv6地址。
需要重点注意的是,上述的第一IPv6地址与所述第一VRF的标识对应指的是,多个IPv6地址与多个VRF的标识一一对应。其中,因为VRF的标识即标识VRF的,那么多个IPv6地址与多个VRF的标识一一对应,也可以理解为多个IPv6地址与多个VRF一一对应,不同的VRF与不同的IPv6地址一一对应。也就是说,在第一节点中,已经确定了第一节点中的不同的VRF分别对应的IPv6地址。
进一步地,在第一节点中还可以配置预设配置信息。例如,第一节点可以配置报文转发的路径。具体地,包括:
预设配置信息包括代理节点的IPv6地址与第二节点的IPv6地址之间的对应关系,指示报文经由代理节点转发至第二节点。其中,代理节点的IPv6地址与第二节点的IPv6地址之间的对应关系可以是代理节点的IPv6地址与第二节点的IPv6地址之间的一一对应关系,或者,代理节点的IPv6地址与多个第二节点的IPv6地址之间的对应关系。可以理解,该代理节点可以向多个第二节点转发BIER报文。
应理解,第二节点为接收BIER报文的节点。例如,图1中所示的BFER1~BFER4,本申请中可以称之为第二节点、尾节点、叶子节点、第二设备、尾设备、第二网元、接收网元等。
或者,预设配置信息还包括第二节点的IPv6地址、指定节点的IPv6地址和代理节点的IPv6地址之间的对应关。指示BIER报文经由指定节点转发至所述代理节点再由代理节点转发至第二节点。
也就是说,在本申请中第一节点在控制面可以配置相关的预设配置信息,指示报文转发的路径。
S120,第二节点配置VPN的信息。
第二节点配置第一虚拟专用网VPN的第二标识和第二互联网协议第6版IPv6地址以及所述第二节点的标识,所述第一VPN为多个VPN中的任意一个VPN。
需要说明的是,由前文所述VPN与VRF一一对应。也就是说,第二节点配置第一VPN的第二标识,也可以称为第二节点配置第一VPN的第二VRF的标识。在下文中,第二VRF的标识即上述的第二标识。
结合S110中的第一节点配置的第一VPN的信息,可以理解为在进行报文转发之前。第一节点和第二节点针对多个VPN分别配置该多个VPN对应的VRF的标识和IPv6地址。
例如,一共有两个VPN(VPN#1和VPN#2)。第一节点为VPN#1配置VRF#1的标识以及IPv6地址#1,并且IPv6地址#1与VRF#1的标识对应;第二节点为VPN#1配置VRF#1’的标识以及IPv6地址#1’,并且可选地,IPv6地址#1’与VRF#1’的标识相对应;第一节点为VPN#2配置VRF#2的标识以及IPv6地址#2,并且IPv6地址#2与VRF#2对应;第二节点为VPN#2配置VRF#2’的标识以及IPv6地址#2’,并且可选地,IPv6地址#2’与VRF#2’的标识相对应。
可选地,在一些实施例中,第二节点的标识可以是上文所述的BFR-ID。即,在第二节点所属的IGP内为第二节点配置的BFR-ID。进一步地,由于第二节点为解封装报文的节点,则为第二节点配置的BFR-ID为BFER-ID。
可选地,在另一些实施例中,第二节点的标识可以是与上述BFR-ID满足一一对应关系的信息。即,根据该信息以及对应关系能够唯一确定BFR-ID;或者,第二节点的标识可以是其他能够标识第二节点的信息,这里不再一一列举。
S130,第一节点向第二节点发送第一指示消息。
第一指示消息用于指示第二节点建立第一IPv6地址与第二标识间的对应关系,其中,第一指示消息包括第一VPN的第一标识和第一IPv6地址,第二标识为第二节点中与第一标识满足预设对应关系的标识。
应理解,第二节点建立第一IPv6地址与第二标识间的对应关系,是为了在接收到报文的时候,确定向本地哪个VRF对应的接口发送报文。那么,上述的第一IPv6地址与第二VRF的标识的一一对应关系,可以理解为第一IPv6地址与第二VRF的一一对应关系。并且第一IPv6地址与第二标识间的对应关系为一种一一对应关系,即,根据第一IPv6地址能够获知唯一的第二标识。
其中,第二标识与第一标识满足预设对应关系可以是以下可能中的任意一种:
可能一:第二VRF为第二节点中与第一VRF的标识一样的VRF。例如,第一VRF的标识为“1:1”,则,第二VRF为第二节点中标识为“1:1”的VRF;
可能二:第二VRF为第二节点中与第一VRF的标识满足包含关系的VRF。例如,第一VRF的标识为“1:1”,则,第二VRF为第二节点中标识为“1:1和1:2”的VRF。其中,标识之间满足包含关系理解为第二VRF的标识为一个标识列表包括多个标识,而第一VRF的标识为一个属于第二VRF标识列表中的一个标识,或者,第一VRF的标识为另一个标识列表,且该标识列表为第二VRF的标识列表中的一部分或全部。
或者,第二VRF的标识与第一VRF的标识存在其他的预设对应关系。
应理解,本申请实施例中第一指示消息中携带的第一标识能够用于确定第二标识,具体地,通过某种预设对应关系确定的,本申请对此并不限制。
具体地,第二节点接收到第一指示消息之后,基于第一指示消息以及本地配置的信息确定第一IPv6地址与第二VRF间的对应关系包括:
首先,第二节点根据第一指示消息中携带的第一VRF的标识,以及本地存储的第一VRF的标识和第二VRF的标识之间的预设对应关系,确定第二VRF。例如,可以是上述的将第二节点中与第一VRF的标识一样的VRF确定为第二VRF,或者将第二节点中的VRF中标识包括第一VRF的标识的VRF确定为第二VRF。应理解,第一VRF的标识与第二VRF的标识之间存在的预设对应关系可以是系统预先设定的,也可以是第一节点与第二节点约定的,本申请对此并不限制。本申请中只需限定第二节点在获知第一VRF的标识之后,能够在第二节点中确定出第二VRF;
其次,由于第一指示消息中还携带有第一IPv6地址,且在第一节点侧第一IPv6地址与第一VRF的标识相对应。进而,第二节点在确定第二VRF之后,能够进一步确定第一IPv6地址与第二VRF间的对应关系。
可选地,在一些实施例中,上述第一指示消息为BGP-MVPN路由(BGP-MVPN route)消息。上述第一IPv6地址、第一标识封装在所述BGP-MVPN route消息中。
具体地,第一IPv6地址、第一标识封装在所述BGP-MVPN route消息中可以是:第一标识为<RouteTarget扩展团体属性>、第一IPv6地址为<第一节点Addr1>。其中,<第一节点Addr1>可以携带在BGP-MVPN route消息的MP_REACH_NLRI属性中、PTA属性中或者其它新增的属性中。
可选地,在另一些实施例中,上述第一指示消息为BGP-VPN路由(BGP-VPN route)消息。上述第一IPv6地址、第一标识封装在所述BGP-VPN route消息中。
具体地,第一IPv6地址、第一VRF的信息封装在所述BGP-VPN route消息中可以是:第一标识为<RouteTarget扩展团体属性>、第一IPv6地址为<第一节点Addr1>。其中,<第一节点Addr1>可以携带在BGP-VPN route消息的BGP-Prefix SID属性中的SRv6-VPN SID TLV中。
可选地,在另一些实施例中,上述第一指示消息为BGP以太虚拟专用网络路由(BGP-Ethernet virtual private network route,BGP-EVPN route)消息。上述第一IPv6地址、第一标识封装在所述BGP-EVPN route消息中。
具体地,第一IPv6地址、第一标识封装在所述BGP-EVPN route消息中可以是:第一标识为<RouteTarget扩展团体属性>、第一IPv6地址为<第一节点Addr1>。其中,<第一节点Addr1>可以携带在BGP-EVPN route消息的属性中。
或者,上述第一指示消息还可以为其他消息,这里不再一一列举说明。
应理解,图4还应该包括S140,第二节点向第一节点发送第二指示消息。
第二指示消息用于指示第二节点为组播数据报文的接收者,第二指示消息可以理解为组播加入报文。第二指示消息包括第二节点的IPv6地址,其中,第二节点的IPv6地址以及第一节点本地的预设配置信息能够确定报文的转发路径。
第二指示消息还包括源地址、组地址和第二节点的标识。其中,源地址为第二节点所需接收的组播源的地址,组地址为第二节点所加入的组播组的地址。
可选地,在一些实施例中,当第一节点属于第一IGP域,第二节点属于第二IGP域,第一IGP域与所述第二IGP域相异时,上述第二指示消息还可以包括代理节点的IPv6地址,例如,所述代理节点属于所述第二IGP域。
应理解,上述代理节点可以是第二IGP域的边缘节点或是中间节点,还可以称之为代理设备、转发报文的节点等。
在此情况下,第二指示消息能够指示待转发的BIER报文经由所述代理节点转发至第二节点。
可选地,在一些实施例中,当第一节点属于第一IGP域,第二节点属于第二IGP域,第一IGP域与所述第二IGP域相异时,上述第二指示消息还包括S120中所述的第二IPv6地址。
在此情况下,第二指示消息以及上述的第一节点中配置的预设配置信息能够指示待转发的BIER报文经由所述代理节点转发至所述尾节点,其中,所述预设配置信息包括所述第二IPv6地址与所述代理节点的IPv6地址的对应关系。
可选地,在一些实施例中,上述预设配置信息还可以指示待转发的BIER报文到达上述代理节点需要通过指定节点。其中,指定节点指的是BIER报文到达代理节点需要通过的节点,例如,该指定节点可以为第一IGP域内的边缘节点或是中间节点。
应理解,本申请中的第一节点、第二节点、代理节点以及指定节点等称呼均为便于区分而定义的称呼,不应对本申请构成任何限定,本申请并不排除在现有或未来的协议中使用其他的名称来替代上述各个名称的可能。
可选地,在一些实施例中,第二指示消息为BGP-MVPN消息。
上述S110-S140主要介绍控制面上,第一节点和第二节点的信息交互以及第二节点所建立的对应关系。下面结合图4中的S150-S180详细介绍BIER报文的封装、BIER报文的转发以及BIER报文的解封装的过程。
S150,第一节点接收组播数据报文。
组播数据报文携带所述组播数据报文的源地址和所述组播数据报文的组地址。具体地,第一节点根据接收该组播数据报文的接口,能够确定该组播数据报文所属的VRF。为了清楚地描述,与上文控制面保持统一,假设该组播数据报文属于上述的第一VRF,即该组播数据报文属于第一VPN。
S160,第一节点封装组播数据报文。
首先,第一节点根据S150中所述的组播数据报文属于第一VPN以及S110中配置的第一VPN的第一标识和第一IPv6地址,由于第一标识与第一IPv6地址对应,所以第一节点能够获取第一IPv6地址。
其次,第一节点基于获取得到的第一IPv6地址封装该组播数据报文,得到待转发的BIER报文。其中,所述待转发的BIER报文由外层IPv6头、指示所述第二节点的预设信息、内层IPv6或IPv4头以及负荷组成。其中,指示所述第二节点的预设信息可以是上文所述的Bitstring信息,根据该Bitstring信息能够确定第二节点。
下面,结合图5详细说明第一节点如何封装组播数据报文。图5是本申请实施例提供的一种报文格式示意图。
应理解,第一节点根据S140中接收到的第二节点发送的第二指示消息,能够确定该组播报文需要发送给第二节点。因为,该组播数据报文包括组播源的地址为所述第二节点所需接收的组播源的地址,该组播数据报文包括的组播组的地址为所述第二节点所加入的组播组的地址,而第二节点发送的第二指示消息中包括第二节点所需接收的组播源的地址和第二节点所加入的组播组的地址,因而第一节点确定该组播报文需要发送给第二节点,进一步地,对接收到的组播报文进行封装。
具体地,第一节点封装组播数据报文包括以下几种情况:
情况一:
第一节点和第二节点属于不同的IGP域,例如,图4中S140所述的,第一节点属于第一IGP域,第二节点属于第二IGP域,第一IGP域与所述第二IGP域相异。第一节点封装组播数据报文得到的BIER报文,需要经过代理节点转发至第二节点。
则,所述第一节点封装的BIER报文的具体报文格式如图5(a)所示,该示意图包括两大部分(如图5(a)中所述的节点部分以及报文格式部分)。下面结合图5(a)详细说明第一节点如何封装组播数据报文,得到待转发的BIER报文的。
首先,第一节点从组播源接收组播数据报文,该组播数据报文的格式(如图5(a)中的格式一所示)包括:IPv6或IPv4头(如果该组播数据报文为IPv6报文,即IPv6头;如果该组播数据报文为IPv4报文,即IPv4头),该组播数据报文的源地址为组播数据报文的源地址,该组播数据报文的目的地址为组播数据报文的组地址,最后是报文的负荷。
其次,第一节点对该组播数据报文进行封装,得到待转发的BIER报文的,具体包括:
第一节点在所述组播数据报文外层封装IPv6头,该IPv6头为BIER报文的最外层的IPv6头可以称为外层IPv6头,以下称第一节点在所述组播数据报文外层封装IPv6头为第一节点封装外层IPv6头。
所述外层IPv6头携带的源地址为上述S110中的第一IPv6地址、目的地址为所述代理节点的IPv6地址。其中,代理节点的IPv6地址可以是携带在第二节点向第一节点发送的第二指示消息中,或者,是第一节点本地进行配置的。上述S140中已经详细说明,这里不再赘述。
第一节点在所述组播数据报文外层封装IPv6扩展头Destination OptionHeader,所述IPv6 Destination Option Header包括BIER头,所述BIER头携带指示所述第二节点的预设信息;或者,第一节点在所述组播数据报文外层封装BIER扩展头,所述BIER扩展头携带指示所述第二节点的预设信息。
其中,第一节点封装IPv6扩展头Destination Option Header,所述IPv6Destination Option Header包括BIER头,可以理解为没有新定义新的IPv6扩展头,而是在IPv6Destination Option Header下进一步扩展;封装BIER扩展头,可以理解为新定义一种IPv6扩展头,并将BIER报文所需要的信息携带在新的IPv6扩展头中。也就是说,本申请实施例中,对于如何封装前文所述BitString等信息,并不限制,可以是对现有扩展头进一步扩展,或是定义一种新的扩展头。
第一节点封装内层IPv6或IPv4头,所述内层IPv6或IPv4头携带的源地址为所述组播数据报文的源地址、目的地址为所述组播数据报文的组地址;
最后将组播数据报文的负荷作为待转发的BIER报文的负荷为,即,将原始组播数据报文的IP报文作为上述外层IPv6报文的负荷。
具体地,上述第一节点封装组播数据报文的过程中无需封装虚拟专用网标签VpnLabel。即,与现有技术中转发BIER报文的方法相比,本申请中在控制面上第一节点无需配置或生成VpnLabel字段,并将该VpnLabel的信息发送给第二节点,进一步地,在转发面第一节点无需封装该VpnLabel字段。
应理解,上述情况一所述的封装组播数据报文中,第一节点封装内层IPv6或IPv4头,以及外层IPv6报文的负荷,比较图5(a)中格式一和图5(a)中格式二可知,该封装其实就是在待转发的BIER报文中封装接收到的组播数据报文。进而,在组播数据报文外层封装外层IPv6头以及IPv6扩展头或者BIER扩展头。
具体地,第一节点封装该组播数据报文,得到的待转发的BIER报文的格式(如图5(a)中格式二所示)。其中,待转发的BIER报文在到达代理节点之前还可以经由第一IGP域中的其他节点转发,但是在情况一中待转发的BIER在经由第一IGP域中的中间节点或是边缘节点转发时,报文格式不发生变化,如图5(a)中第一节点和中间节点以及边缘节点之间的虚线所示,当报文经由所示中间节点以及边缘节点转发时,报文格式为第一节点封装之后的报文格式(图5(a)中指向报文格式二的虚线表示报文格式还是格式二所示的形式)。
进一步地,在该情况一下,代理节点在接收到上述的BIER报文之后,需要将BIER报文的外层IPv6头部的目的地址为单播地址(如图5(a)中格式二所示的代理节点的IPv6地址)更换为组播组地址。其中,该组播组地址与上述的组播数据报文的组地址概念不同,简单解释为:
该组播组地址为运营商的网络规划的,而组播数据报文的组地址为客户私有的。具体地该组播组地址为IPv6地址,组播数据报文的组地址可以为IPv6或IPv4地址。
情况二:
第一节点和第二节点属于不同的IGP域,例如,图4中S140所述的,第一节点属于第一IGP域,第二节点属于第二IGP域,第一IGP域与所述第二IGP域相异。第一节点封装组播数据报文得到的BIER报文,需要经过代理节点和指定节点转发至第二节点。图4中S140中所述的指定节点属于所述第一IGP域。
则,所述第一节点封装的BIER报文的具体报文格式如图5(b)所示,该示意图包括两大部分(如图5(b)中所述的节点部分以及报文格式部分)。下面结合图5(b)详细说明第一节点如何封装组播数据报文,得到待转发的BIER报文的。
首先,第一节点从组播源接收组播数据报文,该组播数据报文的格式(如图5(b)中的格式一所示)包括:IPv6或IPv4头(如果该组播数据报文为IPv6报文,即IPv6头;如果该组播数据报文为IPv4报文,即IPv4头),该组播数据报文的源地址为组播数据报文的源地址,该组播数据报文的目的地址为组播数据报文的组地址,最后是报文的负荷。
其次,第一节点对该组播数据报文进行封装,得到待转发的BIER报文的,具体包括:
第一节点在SRH外层封装外层IPv6头,所述外层IPv6头携带的源地址为上述S110中的第一IPv6地址、目的地址为所述指定节点的IPv6地址。其中,指定节点的IPv6地址信息由第一节点配置的预设配置信息信息指示。
第一节点在所述组播数据报文外层封装SRH,所述SRH携带的地址列表(SID list,SL)包括所述指定节点的IPv6地址以及所述代理节点的IPv6地址。
应理解,SRH携带的地址列表中,还可以包括除所述指定节点的IPv6地址以及所述代理节点的IPv6地址之外的地址。本申请实施例中,对此并不限制。
第一节点封装IPv6扩展头Destination Option Header,所述IPv6 DestinationOption Header包括BIER头,所述BIER头携带指示所述第二节点的预设信息;或者,第一节点封装BIER扩展头,所述BIER扩展头带指示所述第二节点的预设信息。
第一节点封装内层IPv6或IPv4头,所述内层IPv6或IPv4头携带的源地址为所述组播数据报文的源地址、目的地址为所述组播数据报文的组地址;
最后将组播数据报文的负荷作为待转发的BIER报文的负荷为,即,将原始组播数据报文的IP报文作为上述外层IPv6报文的负荷。
应理解,上述情况二封装组播数据报文中,第一节点封装内层IPv6或IPv4头,以及外层IPv6报文的负荷,比较图5(b)中格式一和图5(b)中格式二可知,该封装其实就是在待转发的BIER报文中封装接收到的组播数据报文。进而,在组播数据报文外层封装IPv6扩展头或者BIER扩展头,再在IPv6 Destination Option Header或者BIER扩展头外封装SRH,最后在SRH外层封装外层IPv6头。
具体地,第一节点封装该组播数据报文,得到的待转发的BIER报文的格式(如图5(b)中格式二所示)。其中,待转发的BIER在到达指定节点之前还可以经由第一IGP域中的其他节点转发,但是在情况二中待转发的BIER在经由第一IGP域中的中间节点或是边缘节点转发到达指定节点之前,报文格式不发生变化,如图5(b)中第一节点和中间节点之间的虚线所示,当报文经由所示中间节点转发时,报文格式为第一节点封装之后的报文格式(图5(b)中指向报文格式二的虚线表示报文格式还是格式二所示的形式)。
进一步地,在该情况二下,指定节点在接收到BIER报文之后,指定节点根据SRH携带的地址列表将外层IPv6头部的目的地址为指定节点的IPv6地址更换为代理节点的IPv6地址。代理节点在从指定节点接收到BIER报文之后,需要将BIER报文的外层IPv6头部的目的地址为单播地址(如图5(b)中格式三所示的代理节点的IPv6地址)更换为组播组地址。
还应理解,在该情况二下,代理节点或者指定节点在接收到上述的BIER报文之后,需要将SRH剥离。具体地,剥离SRH包括:
将SRH中包括一个按顺序放置的地址列表,并用指针指示当前到达地址列表中的哪一个地址,当报文到达某个节点时,移动指针(理解为指针值减1)。例如,上述待转发BIER报文的IPv6头中封装的为指定节点的IPv6地址,SRH封装的地址列表为指定节点的IPv6地址-代理节点的IPv6地址,指针值为1。则,报文到达指定节点时,移动指针后为0,此时指定节点可以不弹出SRH,当报文到达代理节点时指针为0,SRH被剥离;或者,报文到达指定节点时,移动指针变为0后由指定节点剥离SRH,则此时代理节点无需再剥离SRH了。
情况三:
第一节点和第二节点属于相同的IGP域。
则,所述第一节点封装的BIER报文的具报文格式如图5(c)所示,该示意图包括两大部分(如图5(c)中所述的节点部分以及报文格式部分)。下面结合图5(c)详细说明第一节点如何封装组播数据报文,得到待转发的BIER报文的。
首先,第一节点从组播源接收组播数据报文,该组播数据报文的格式(如图5(c)中的格式一所示)包括:IPv6或IPv4头(如果该组播数据报文为IPv6报文,即IPv6头;如果该组播数据报文为IPv4报文,即IPv4头),该组播数据报文的源地址为组播数据报文的源地址,该组播数据报文的目的地址为组播数据报文的组地址,最后是报文的负荷。
其次,第一节点对该组播数据报文进行封装,得到待转发的BIER报文的,具体包括:
第一节点封装外层IPv6头,所述外层IPv6头携带的源地址为上述S110中的第一IPv6地址、目的地址为组地址。
第一节点封装IPv6扩展头Destination Option Header,所述IPv6 DestinationOption Header包括BIER头,所述BIER头携带指示所述第二节点的预设信息;或者,第一节点封装BIER扩展头,所述BIER扩展头带指示所述第二节点的预设信息。
第一节点封装内层IPv6或IPv4头,所述内层IPv6或IPv4头携带的源地址为所述组播数据报文的源地址、目的地址为所述组播数据报文的组地址;
最后将组播数据报文的负荷作为待转发的BIER报文的负荷为,即,将原始组播数据报文的IP报文作为上述外层IPv6报文的负荷。
具体地,第一节点封装该组播数据报文,得到的待转发的BIER报文的格式(如图5(c)中格式二所示)。其中,待转发的BIER在到第二节点之前还可以经由第一IGP域中的其他节点转发,但是在情况三中待转发的BIER在经由第一IGP域中其他节点转发时,报文格式不发生变化,如图5(c)中第一节点和中间节点以及边缘节点之间的虚线所示,当报文经由所示中间节点以及边缘节点转发时,报文格式为第一节点封装之后的报文格式(图5(c)中指向报文格式二的虚线表示报文格式还是格式二所示的形式)。
S170,第一节点向第二节点发送BIER报文。
具体地,包括以下三种情况:
情况一:
与S160中的情况一对应,第一节点根据所述外层IPv6头,通过代理节点向所述第二节点发送所述待转发的BIER报文。应理解,本申请中对于IGP域的中间节点并没有详细说明,实际报文转发流程可选地还包括,通过中间节点的转发。
情况二:
与S160中的情况二对应,第一节点根据所述SRH和所述外层IPv6头,通过所述指定节点和所述代理节点向所述第二节点发送所述待转发的BIER报文。其中,所述待转发的BIER报文经由指定节点转发至代理节点,再由代理节点转发至第二节点。
情况三:
与S160中的情况三对应,所述待转发的BIER报文由第一节点发送至第二节点,中间为未经过代理节点以及指定节点。
S180,第二节点解封装BIER报文。
第二节点获取BIER头中携带的预设信息,所述预设信息指示所述第二节点。即,第二节点获知该报文是发送给自己的。
第二节点根据所述预设信息确定解封装所述BIER报文;
第二节点根据所述BIER报文的外层IPv6头携带的所述第一IPv6地址,以及S110中确定的第一IPv6地址与第二标识间的对应关系,确定所述BIER报文中携带的组播数据报文需要向第二VRF对应的接口发送;
第二节点根据BIER报文的内层IPv6或IPv4头携带的源地址为所述组播数据报文的源地址、目的地址为所述组播数据报文的组地址,确定所述组播数据报文在所述第二VRF对应的至少一个接口上发送。
具体地,第二节点确定所述组播数据报文包括组播源的地址和组播组的地址之后,获得所述第二标识对应的至少一个接口,并通过至少一个接口发送所述组播数据报文,组播源的地址为第二节点所需接收的组播源的地址,组播组的地址为所述第二节点所加入的组播组的地址。其中,组播源的地址可以称为源地址,组播组的地址可以称为组地址。
应理解,上述的确定组播数据报文在第二VRF对应的至少一个接口上发送包括:确定组播数据报文在第二标识对应的至少一个接口上发送,由于第二标识其实可以理解为第二VRF的标识,那么进一步地可以确定组播数据报文在第二VRF对应的至少一个接口上发送。
上面结合图4和图5详细介绍了本申请提供的报文转发的方法在控制面和转发面的实现。下面集合具体的实施例说明,实际BIER报文转发时如何运用本申请提供的报文转发的方法。
具体实施例中涉及的节点以及这些节点具有的功能如下表-表1所示。
图6是本申请实施例提供的具体实施例一示意图。包括图6(a)和图6(b)。该示意图包括属于IGP域1的3个节点(如图6所示的PE1、P10以及BR1)、属于IGP域2的3个节点(如图6所示的PE2、P20以及BR2)、IGP域1外与IGP域1内PE1相连接的节点CE1以及IGP域2外与IGP域2内PE2相连接的节点CE2。
具体地,在图6中,CE1是有组播数据报文需要转发的节点,称为组播数据报文源节点。例如,可以是终端设备或网络设备。PE1是一个支持BIER IPv6封装的路由器。例如,PE1从CE1上接收组播数据报文,PE1能对该组播数据报文封装外层IPv6头、BIER IPv6头(即,IPv6 Destination Option Header)并在一些情况下可选地封装SRH。
在图6中,BR2是一个支持SRv6及BIER IPv6转发的路由器。例如,上述封装后得到的BIER报文中携带的目的单播地址为BR2,该目的单播地址是一个本地的段标识(segmentidentifier,SID),BR2能够根据该SID将SRH剥去,并将IPv6头部的目的地址更换为组播组地址。进而,BR2对该BIER报文按照BIER IPv6进行转发。即,根据组播组地址检查Destination Option Header里的BIER TLV,并根据BIER TLV里的BitString信息将报文复制发送出去。
其中,组播数据报文的封装节点PE1(图4和图5中所示的第一节点的具体形式)属于IGP域1,BIER报文的解封装节点PE2(图4和图5中所示的第二节点的具体形式)属于IGP域2。
需要说明的是,在每个IGP域内的接口启动IGP协议;两个域之间的节点(如图6所示的BR1和BR2)称为域边缘节点,域边缘节点之间不启动IGP协议。因为BIER报文的转发建立是要通过IGP协议建立起来的,也就是只在一个IGP域内。并且BIER的Sub-domain也是在一个IGP域内。
转发报文之前,控制面需要在PE2中建立IPv6地址与VRF的对应关系,以使得PE2接收到报文时,能够根据IPv6地址与VRF的对应关系确定接收到的报文属于PE2中的哪一个VRF,再根据报文中的其他信息确定往VRF的哪些接口发送报文。
具体地,控制面建立IPv6地址与VRF的对应关系主要包括以下几个步骤:
步骤一:在本实施例中只为PE2所属的IGP域2内的各个节点配置Sub-domain、BFR-ID等信息。不为PE1所属的IGP域1内的各个节点配置对应的Sub-domain、BFR-ID等信息。可以理解为,在本申请实施例中,只需要为解封装报文的节点所属的IGP域内的各个节点配置对应的Sub-domain、BFR-ID等信息。
具体地,PE2所属的IGP域2内可以划分BIER IPv6的Sub-domain,例如,IGP域2内的所有节点属于同一个Sub-domain。给PE2配置BFR-ID=1,在报文的BitString中使用000001表示报文只需要发送给PE2这个节点,PE2所属的Sub-domain内各个节点建立BIER IPv6转发表。其中,各个节点建立转发表的过程与现有技术中同一个Sub-domain内的各个节点建立建立转发表的过程类似,这里不再赘述。
进一步地,在PE2上配置VPN#1的标识和IPv6地址分别为VRF#2的标识和IPv6地址#2,IPv6地址#2也可以称为PE2的IPv6地址。
步骤二:在PE1上配置VPN#1的标识和IPv6地址分别为VRF#1的标识和IPv6地址#1,其中,IPv6地址#1与VRF#1的标识相对应,IPv6地址#1也可以称为PE1的IPv6地址。具体地,不同的VRF的标识与不同的IPv6地址一一对应。
步骤三:PE1将包括VRF#1的标识和IPv6地址#1的第一指示消息发送给PE2。
可选地,PE1将VRF#1的标识和IPv6地址#1封装在BGP-MVPN route消息中发送给PE2;或者,
PE1将VRF#1的标识和IPv6地址#1封装在BGP-VPN route消息发送给PE22;或者,PE1将VRF#1的标识和IPv6地址#1封装在BGP-EVPN route消息发送给PE2。
步骤三:PE2接收第一指示消息,并建立IPv6地址与本地VRF的对应关系。
例如,PE2接收到PE1发来的BGP-MVPN route消息,并根据PE1发来的消息中的VRF#1的标识与PE2中配置的VRF的标识进行匹配,确定该消息属于VRF#2,从而知道IPv6#1对应PE2中的VRF#2。其中,VRF#1的标识与PE2中配置的VRF的标识进行匹配可以为,VRF#1的标识与VRF#2的标识一致,所以确定VRF#2与IPv6#1对应。
具体地,PE2收到的PE1的消息,是BGP-MVPN route消息时,其中包含有PE1的VRF#1的标识<RouteTarget扩展团体属性>、PE1的IPv6地址<PE1 Addr1>。
当PE2收到的PE1的消息,是BGP-VPN route消息时,其中包含有PE1的VRF#1的标识<RouteTarget扩展团体属性>、PE1的IPv6地址<PE1 Addr1>。
PE1发给PE2的消息中携带的PE1的IPv6地址<PE1 Addr1>:
可以携带在BGP-MVPN消息的MP_REACH_NLRI属性中、PTA属性中,或者其它新增的属性中。
也可以携带在BGP VPN消息的BGP-Prefix SID属性中的SRv6-VPN SID TLV中(参见draft-ietf-idr-bgp-prefix-sid-27和draft-dawra-idr-srv6-vpn-04),而把组播流的源地址X和目的地址mcastX的信息包含在BGP-MVPN消息中。
也可以携带在BGP-EVPN消息的属性中。
步骤四:PE1接收第二指示消息,确定PE2为解封装报文的节点。
例如,PE1可以通过PE2发送给PE1的BGP-MVPN消息携带的参数,获知组播数据报文的接收者PE2及其代理节点BR。例如,BGP-MVPN消息包含有源地址X和组地址mcastX,PE2的BFR-ID值、PE2的IPv6地址<PE2 Addr1>。PE1可以通过PE2发送给PE1的BGP-MVPN消息及PE1上的本地配置的预设配置信息,获知组播数据报文的接收者PE2及其代理节点BR2。例如,BGP-MVPN消息包含有包含组播数据报文的源地址X和组地址mcastX、PE2的IPv6地址、PE2的BFR-ID,在PE1上配置PE2的IPv6地址所对应的代理节点BR2的IPv6地址信息<BR2 Addr1>。
应理解,当控制面建立完成不同的IPv6地址与不同的PE2中的VRF之间的一一对应关系之后。可以进行转发面上的报文转发,具体地报文转发包括以下几个步骤:
步骤一:PE1接收从CE1发出的组播数据报文,所述组播数据报文携带的源地址(source address,SA)为所述组播数据报文的源地址(X)、目的地址(destinationaddress,DA)为所述组播数据报文的组地址(mcastX)。
步骤二:PE1封装组播数据报文,得到待转发的BIER报文。
PE1先封装外层IPv6头(其源地址为IPv6地址#1)、再封装Destination OptionHeader,最后将原始组播数据报文的IP报文作为外层IPv6报文的负荷。其中,PE1无需与前文中所述的BIER报文转发的方法一样,封装VpnLabel。
根据报文转发路径不同,PE1进行报文封装包括以下几种情况:
情况一:BIER报文经由BR2转发至PE2。
PE1封装外层(outer)IPv6头,外层IPv6头携带的源地址为IPv6#1地址,目的地址为BR2的IPv6地址(BR2 IPv6地址);
PE1封装IPv6 Destination Option Header,其中,IPv6 Destination OptionHeader包括BIER头,BIER头携带Bitstring信息(BIER information,BIER Info)000001,协议字段=4或者6(Proto=4或6);或者,PE1封装BIER扩展头(BIER extension header),BIER扩展头BIER Info为000001;
PE1不封装VpnLabel(No VpnLabel),封装内层(inner)IPv6或IPv4头,内层IPv6或IPv4头携带的源地址为所述组播数据报文的源地址、目的地址为所述组播数据报文的组地址;
BIER报文的负荷(playload)为原始组播数据报文的IP报文。
在该情况下,第一节点封装的BIER报文如图6(a)中的格式二所示。图6(a)中Hdr为Header的简写。
情况二:BIER报文经由BR1转发BR2,再由BR2转发至PE2。
PE1封装外层IPv6头,外层IPv6头携带的源地址为IPv6#1地址,目的地址为BR1的地址信息(例如,图6(b)所示的BR1 IPv6地址);
PE1封装SRH,SRH携带的地址列表(SL)包括BR1的地址信息(BR1 IPv6地址)和BR2的地址信息(BR2 IPv6地址);
PE1封装IPv6 Destination Option Header,其中,IPv6 Destination OptionHeader包括BIER头,BIER头携带Bitstring信息000001,Proto=4或6;或者,PE1封装BIER扩展头,BIER扩展头携带Bitstring信息000001;
PE1不封装VpnLabel,封装内层IPv6或IPv4头,内层IPv6或IPv4头携带的源地址为所述组播数据报文的源地址、目的地址为所述组播数据报文的组地址;
BIER报文的负荷为原始组播数据报文的IP报文。
在该情况下,第一节点封装的BIER报文如图6(b)中的格式二所示。图6(b)中Hdr为Header的简写。
在情况二下,BR2接收到报文之后,将SRH剥去,并将BIER报文的IPv6头部的目的地址更换为组播组地址(mcastY)。
具体地,BIER报文经由BR1转发BR2可以是PE1配置指定到达代理节点BR2需要通过BR1节点。则在PE1封装的时候会封装一个SRH,SRH携带的地址列表包含指定的BR1节点及最终的BR2节点的地址信息,而IPv6的目的地址则填写BR1节点。BR1节点支持SRv6功能,会将SRH的BR2节点地址拷贝到IPv6头部目的地址中,并往BR2节点复制。
步骤三:PE2解封装BIER报文。
PE2收到BIER报文后,根据报文中的BitString=000001,确定报文需要转发至BFR-ID=1的节点,而在上述配置信息过程中,PE2配置BFR-ID=1。从而决定对接收到的BIER报文进行解封装,具体地,解封装包括:
PE2根据外层IPv6头部的源地址IPv6地址#1,确定报文属于VRF#2;
PE2再根据外层IPv6 Destination Option Header后面的内层IP报文的源和目的地址,将报文往VRF#2的相应的出接口复制发送。
图6中介绍了当PE1和PE2位于不同的IGP域时,报文的转发流程。下面结合图7详细介绍当报文的封装节点和解封节点位于同一个IGP域时,报文的转发流程。
图7是本申请实施例提供的具体实施例二示意图。该示意图包括属于IGP域1的3个节点(如图7所示的PE2、P20以及BR2)、IGP域1外与IGP域1边缘节点PE2相连接的节点CE1。
具体地,在图7中,CE1是有组播数据报文需要转发的节点,例如,可以是终端设备或网络设备。BR2是一个支持BIER IPv6封装的路由器。例如,BR2从CE1上接收组播数据报文,BR2能对该组播数据报文封装外层IPv6头、BIER IPv6头(即,IPv6 Destination OptionHeader)。
其中,实施例二中控制面建立IPv6地址与VRF的对应关系与图6中所示的不相同的一点是,无需为BR2配置BFR-ID,其他控制面过程类似这里不再赘述。
转发面上的报文转发,具体地报文转发包括以下几个步骤:
步骤一:BR2接收从CE1发出的组播数据报文,所述组播数据报文携带所述组播数据报文的源地址(SA<X>)和所述组播数据报文的组地址(DA<mcastX>)。
步骤二:BR2封装组播数据报文,得到待转发的BIER报文。
BR2先封装外层IPv6头(其源地址为IPv6#1地址)、再封装Destination OptionHeader,最后将原始组播数据报文的IP报文作为外层IPv6报文的负荷。其中,BR2无需与前文中所述的BIER报文转发的方法一样,封装VpnLabel。
具体封装流程包括:
BR2封装外层IPv6头,外层IPv6头携带的源地址为IPv6#1地址,目的地址为组地址(DA<mcastY>);
BR2封装IPv6 Destination Option Header,其中,IPv6 Destination OptionHeader包括BIER头,BIER头携带Bitstring信息000001,Proto=4或者6;或者,PE1封装BIER扩展头,BIER扩展头携带Bitstring信息000001;
BR2不封装VpnLabel,封装内层IPv6或IPv4头,内层IPv6或IPv4头携带的源地址为所述组播数据报文的源地址、目的地址为所述组播数据报文的组地址;
BIER报文的负荷为原始组播数据报文的IP报文。
在该情况下,第一节点封装的BIER报文如图7中的格式二所示。图7中Hdr为Header的简写。
步骤三:PE2解封装BIER报文。
PE2收到BIER报文后,根据报文中的BitString=000001,确定报文需要转发至BFR-ID=1的节点,而在上述配置信息过程中,PE2配置BFR-ID=1。从而决定对接收到的BIER报文进行解封装,具体地,解封装包括:
PE2根据外层IPv6头部的源地址IPv6地址#1,确定报文属于VRF#2;
PE2再根据外层IPv6 Destination Option Header后面的内层IP报文的源和目的地址,将报文往VRF#2的相应的出接口复制发送。
综上所述,本申请实施例提供的报文转发的方法:首先,在控制面上,头节点中多个IPv6地址与多个VRF一一对应,并将IPv6地址与VRF的标识携带在消息中发送给尾节点,尾节点建立转发表项只需基于IPv6地址与VRF的标识,简化了尾节点建立转发表项的过程;其次,在转发面头节点在封装发送BIER IPv6的报文时,无需在内层IP报文之前封装VpnLabel,以及尾节点对接收到的IPv6 BIER报文,根据IPv6地址获知报文属于尾节点中的哪个VRF,再根据内层报文确定报文往该VRF的相应的出接口复制发送,提高了报文转发的性能。
上面结合图4-图7详细介绍了本申请实施例提供的报文转发的方法,下面结合图8-图11详细介绍本申请实施例提供的发送报文的装置以及接收报文的装置。
图8为本申请实施例提供的一种发送报文的装置的结构示意图。该发送报文的装置为上述的multicast VPN中封装报文的节点,包括处理单元810、接收单元820和发送单元830。
处理单元810,用于配置第一虚拟专用网VPN的第一标识和第一互联网协议第6版IPv6地址,所述第一IPv6地址与所述第一标识对应,以及在接收属于所述第一VPN的组播数据报文之后,根据所述组播数据报文所属的所述第一VPN和所述第一标识所对应的第一IPv6地址,获取所述第一IPv6地址并基于所述第一IPv6地址封装所述组播数据报文,得到待转发的BIER报文。
发送单元830,用于向第二节点发送第一指示消息,所述第一指示消息用于指示所述第二节点建立所述第一IPv6地址与第二标识间的对应关系,所述第一指示消息包括所述第一标识和所述第一IPv6地址,所述第二标识为所述第二节点中与所述第一标识满足预设对应关系的标识,以及向第二节点发送所述待转发的BIER报文。
接收单元820,用于接收组播数据报文以及接收所述第二节点发送的第二指示消息。
图8所示的发送报文的装置和方法实施例中的第一节点完全对应,图8所示的发送报文的装置的相应单元用于执行图4-图7所示的方法实施例中由第一节点执行的相应步骤。
其中,图8所示的发送报文的装置中的接收单元820执行方法实施例中接收的步骤。例如,执行图4中从第二节点接收第二指示消息的S140。处理单元810执行方法实施例中第一节点内部实现或处理的步骤。例如,执行图4中配置VPN信息的S110以及封装组播数据报文的S160。发送单元830执行方法实施例中发送的步骤。例如,执行图4中向第二节点发送第一指示消息的S130。
可选地,接收单元820和发送单元830可以组成收发单元,同时具有接收和发送的功能。其中,处理单元820可以是处理器。接收单元820和发送单元830组成的收发单元可以是通信接口。
图9为本申请实施例提供的另一种发送报文的装置的结构示意图。图9所示的发送报文的装置,可以包括:处理器910、存储器920和通信接口930。处理器910、存储器920和通信接口930可通过通信总线940连接。处理器910包括至少一个物理处理器,通信接口930包括至少一个物理接口。存储器930用于存储程序、第一节点的IP地址等信息。
图9所示的发送报文的装置和图8所示的发送报文的装置可以为BIER络中的同一台BFIR。例如,为图6中的PE1。图8为从逻辑的角度显示了所述发送报文的装置包括的内容,图9为从物理的角度显示了所述发送报文的装置包括的内容。图8中的接收单元820和发送单元830可通过图9中的通信接口930实现,图8中的处理单元810可通过图9中的处理器910实现。
所述处理器910根据从所述存储器920中读取的程序所包括的可执行指令,执行图8中的处理单元810的操作。
所述通信接口930执行图8中的接收单元820和发送单元830的操作。
图10为本申请实施例提供的一种接收报文的装置的结构示意图。该接收报文的装置为上述的multicast VPN中解封装报文的节点,包括处理单元1010、接收单元1020和发送单元1030。
接收单元1020,用于接收来自第一节点的第一指示消息,所述第一指示消息包括第一VPN的第一标识和第一IPv6地址,所述第一标识与所述第一IPv6地址对应,以及接收来自所述第一节点的BIER报文,所述BIER报文包括所述第一IPv6地址以及组播数据报文。
处理单元1010,用于根据所述第一IPv6地址和所述第一标识,建立所述第一IPv6地址与第二标识间的对应关系,其中,所述第二标识为所述第二节点中与所述第一标识满足预设对应关系的标识,以及根据所述第一IPv6地址以及所述第一IPv6地址与第二标识的对应关系,确定发送单元向所述第二标识对应的接口发送所述组播数据报文。
发送单元1030,用于向所述第二标识对应的接口发送所述组播数据报文。
图10所示的接收报文的装置和方法实施例中的第二节点完全对应,图10所示的接收报文的装置的相应单元用于执行图4-图7所示的方法实施例中由第二节点执行的相应步骤。
其中,图10所示的接收报文的装置中的接收单元1020执行方法实施例中接收的步骤。例如,执行图4中从第一节点接收第一指示消息的S130。处理单元1010执行方法实施例中第二节点内部实现或处理的步骤。例如,执行图4中配置VPN信息的S120以及解封装BIER报文的S180。发送单元1030执行方法实施例中发送的步骤。例如,执行图4中向第一节点发送第二指示消息的S140。
可选地,接收单元1020和发送单元1030可以组成收发单元,同时具有接收和发送的功能。其中,处理单元1010可以是处理器。接收单元1020和发送单元1030组成的收发单元可以是通信接口。
图11为本申请实施例提供的另一种接收报文的装置的结构示意图。图11所示的接收报文的装置,可以包括:处理器1110、存储器1120和通信接口1130。处理器1110、存储器1120和通信接口1130可通过通信总线1140连接。处理器1110包括至少一个物理处理器,通信接口1130包括至少一个物理接口。存储器1130用于存储程序、第二节点的IP地址等信息。
图11所示的接收报文的装置和图10所示的接收报文的装置可以为BIER络中的同一台BFIR。例如,为图6中的PE2。图10为从逻辑的角度显示了所述接收报文的装置包括的内容,图11为从物理的角度显示了所述接收报文的装置包括的内容。图10中的接收单元1020和发送单元1030可通过图11中的通信接口1130实现,图10中的处理单元1010可通过图11中的处理器1110实现。
所述处理器1110根据从所述存储器1120中读取的程序所包括的可执行指令,执行图10中的处理单元1010的操作。
所述通信接口1130执行图10中的接收单元1020和发送单元1030的操作。
本申请实施例还提供一种报文转发的设备,其包括前述的一个或多个第一节点和第二节点。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行上述如图4-图7所示的方法中第一节点执行的各个步骤。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行上述如图4-图7所示的方法中第二节点执行的各个步骤。
本申请还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行如图4-图7所示的方法中第一节点执行的各个步骤。
本申请还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行如图4-图7所示的方法中第二节点执行的各个步骤。
本申请还提供一种芯片,包括处理器。该处理器用于读取并运行存储器中存储的计算机程序,以执行本申请提供的报文转发的方法中由第一节点执行的相应操作和/或流程。可选地,该芯片还包括存储器,该存储器与该处理器通过电路或电线与存储器连接,处理器用于读取并执行该存储器中的计算机程序。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理。该通信接口可以是输入输出接口。
本申请还提供一种芯片,包括处理器。该处理器用于调用并运行存储器中存储的计算机程序,以执行本申请提供的报文转发的方法中由第二节点执行的相应操作和/或流程。可选地,该芯片还包括存储器,该存储器与该处理器通过电路或电线与存储器连接,处理器用于读取并执行该存储器中的计算机程序。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理。该通信接口可以是输入输出接口。
以上各实施例中,处理器可以为中央处理器(central processing unit,CPU)、微处理器、特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请技术方案程序执行的集成电路等。例如,处理器可以是数字信号处理器设备、微处理器设备、模数转换器、数模转换器等。处理器可以根据这些设备各自的功能而在这些设备之间分配终端设备或网络设备的控制和信号处理的功能。此外,处理器可以具有操作一个或多个软件程序的功能,软件程序可以存储在存储器中。处理器的所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
存储器可以是只读存储器(read-only memory,ROM)、可存储静态信息和指令的其它类型的静态存储设备、随机存取存储器(random access memory,RAM)或可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质等。
可选的,上述实施例中涉及的存储器与存储器可以是物理上相互独立的单元,或者,存储器也可以和处理器集成在一起。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元也可以不是物理上分开的,作为单元显示的部件也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请技术方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。
Claims (24)
1.一种报文转发的方法,应用于基于比特索引的显式复制BIER的组播虚拟专用网VPN中,其特征在于,包括:
第一节点接收组播数据报文;
所述第一节点根据所述组播数据报文所属的第一VPN,获取第一第六版因特网协议IPv6地址;
所述第一节点基于所述第一IPv6地址和所述组播数据报文,获得BIER报文并发送,所述BIER报文包括所述第一IPv6地址和所述组播数据报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一节点接收第二节点发送的所述第二节点的IPv6地址;
所述第一节点根据所述第二节点的IPv6地址以及第一对应关系,获取代理节点的IPv6地址,所述第一对应关系包括所述第二节点的IPv6地址与所述代理节点的IPv6地址之间的对应关系;
所述第一节点基于所述第一IPv6地址和所述组播数据报文,获得BIER报文并发送包括:所述第一节点基于所述第一IPv6地址、所述代理节点的IPv6地址和所述组播数据报文,获得所述BIER报文,所述BIER报文包括IPv6头,所述IPv6头中的源地址为所述第一IPv6地址,所述IPv6头中的目的地址为所述代理节点的IPv6地址;所述第一节点向所述代理节点发送所述BIER报文。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一节点接收第二节点发送的所述第二节点的IPv6地址;
所述第一节点根据所述第二节点的IPv6地址以及第二对应关系,获取指定节点的IPv6地址,所述第二对应关系包括所述第二节点的IPv6地址和所述指定节点的IPv6地址;
所述第一节点基于所述第一IPv6地址和所述组播数据报文,获得BIER报文并发送包括:所述第一节点基于所述第一IPv6地址和所述指定节点的IPv6地址,获得所述BIER报文,所述BIER报文包括IPv6头,所述IPv6头中的源地址为所述第一IPv6地址,所述IPv6头中的目的地址为所述指定节点的IPv6地址;所述第一节点向所述指定节点发送所述BIER报文。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一节点接收第二节点发送的所述第二节点的IPv6地址;
所述第一节点根据所述第二节点的IPv6地址以及第二对应关系,获取指定节点的IPv6地址和代理节点的IPv6地址,所述第二对应关系包括所述第二节点的IPv6地址、所述指定节点的IPv6地址和所述代理节点的IPv6地址;
所述第一节点基于所述第一IPv6地址和所述组播数据报文,获得BIER报文并发送包括:所述第一节点基于所述第一IPv6地址、所述指定节点的IPv6地址和所述代理节点的IPv6地址,获得所述BIER报文,所述BIER报文包括IPv6头和分段路由头SRH,所述SRH包括所述指定节点的IPv6地址和所述代理节点的IPv6地址,所述IPv6头中的源地址为所述第一IPv6地址,所述IPv6头中的目的地址为所述指定节点的IPv6地址;所述第一节点向所述指定节点发送所述BIER报文。
5.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
所述第一节点获取第三对应关系,所述第三对应关系包括所述第一VPN的标识和所述第一IPv6地址。
6.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
所述第一节点向第二节点发送所述第一VPN的标识和所述第一IPv6地址。
7.一种报文转发的方法,应用于基于比特索引的显式复制BIER的组播虚拟专用网VPN中,其特征在于,包括:
第二节点接收来自第一节点的BIER报文,所述BIER报文包括第一第六版因特网协议IPv6地址以及组播数据报文;
第二节点根据所述第一IPv6地址,经由所述第一IPv6地址确定的VPN对应的接口发送所述组播数据报文。
8.根据权利要求7所述的方法,其特征在于,所述第二节点接收来自第一节点的BIER报文包括:所述第二节点接收代理节点发送的所述BIER报文;或者
所述第二节点接收指定节点发送的所述BIER报文。
9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
所述第二节点向所述第一节点发送所述第二节点的IPv6地址。
10.根据权利要求7或8所述的方法,其特征在于,第二节点根据所述第一IPv6地址,经由所述第一IPv6地址确定的VPN对应的接口发送所述组播数据报文包括:
所述第二节点根据所述第一IPv6地址和对应关系确定第一VPN的第一标识,所述对应关系包括所述第一IPv6地址和所述第一VPN的第一标识;
所述第二节点基于所述第一VPN的标识所对应的至少一个接口,发送所述组播数据报文。
11.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
所述第二节点接收来自第一节点的所述第一IPv6地址和第一VPN的第二标识;
所述第二节点基于所述第一VPN的第二标识获取所述第一VPN的第一标识;
所述第二节点基于所述第一IPv6地址和所述第一VPN的第一标识,获取对应关系,所述对应关系包括所述第一IPv6地址和所述第一VPN的第一标识。
12.一种发送报文的装置,设置于基于比特索引的显式复制BIER的组播虚拟专用网VPN中的第一节点,其特征在于,所述装置包括:
接收单元,用于接收组播数据报文;
处理单元,用于根据所述组播数据报文所属的所述第一VPN获取所述第一第六版因特网协议IPv6地址,基于所述第一IPv6地址和所述组播数据报文获得BIER报文,所述BIER报文包括所述第一IPv6地址和所述组播数据报文;
发送单元,用于发送所述BIER报文。
13.根据权利要求12所述的装置,其特征在于,
所述接收单元还用于接收第二节点发送的所述第二节点的IPv6地址;
所述处理单元还用于根据所述第二节点的IPv6地址以及第一对应关系,获取代理节点的IPv6地址,所述第一对应关系包括所述第二节点的IPv6地址与所述代理节点的IPv6地址之间的对应关系;
所述处理单元具体用于:基于所述第一IPv6地址、所述代理节点的IPv6地址和所述组播数据报文,获得所述BIER报文,所述BIER报文包括IPv6头,所述IPv6头中的源地址为所述第一IPv6地址,所述IPv6头中的目的地址为所述代理节点的IPv6地址;
所述发送单元具体用于向所述代理节点发送所述BIER报文。
14.根据权利要求12所述的装置,其特征在于,
所述接收单元还用于接收第二节点发送的所述第二节点的IPv6地址;
所述处理单元还用于根据所述第二节点的IPv6地址以及第二对应关系,获取指定节点的IPv6地址,所述第二对应关系包括所述第二节点的IPv6地址和所述指定节点的IPv6地址;
所述处理单元具体用于:基于所述第一IPv6地址和所述指定节点的IPv6地址,获得所述BIER报文,所述BIER报文包括IPv6头,所述IPv6头中的源地址为所述第一IPv6地址,所述IPv6头中的目的地址为所述指定节点的IPv6地址;
所述发送单元具体用于向所述指定节点发送所述BIER报文。
15.根据权利要求12所述的装置,其特征在于,
所述接收单元还用于接收第二节点发送的所述第二节点的IPv6地址;
所述处理单元还用于根据所述第二节点的IPv6地址以及第二对应关系,获取指定节点的IPv6地址和代理节点的IPv6地址,所述第二对应关系包括所述第二节点的IPv6地址、所述指定节点的IPv6地址和所述代理节点的IPv6地址;
所述处理单元具体用于:基于所述第一IPv6地址、所述指定节点的IPv6地址和所述代理节点的IPv6地址,获得所述BIER报文,所述BIER报文包括IPv6头和分段路由头SRH,所述SRH包括所述指定节点的IPv6地址和所述代理节点的IPv6地址,所述IPv6头中的源地址为所述第一IPv6地址,所述IPv6头中的目的地址为所述指定节点的IPv6地址;
所述发送单元具体用于向所述指定节点发送所述BIER报文。
16.根据权利要求12至15任一所述的装置,其特征在于,
所述处理单元还用于获取第三对应关系,所述第三对应关系包括所述第一VPN的标识和所述第一IPv6地址。
17.根据权利要求12至15任一所述的装置,其特征在于,
所述发送单元还用于向第二节点发送所述第一VPN的标识和所述第一IPv6地址。
18.一种接收报文的装置,设置于基于比特索引的显式复制BIER的组播虚拟专用网VPN中的第二节点,其特征在于,所述装置包括:
接收单元,用于接收来自第一节点的BIER报文,所述BIER报文包括第一第六版因特网协议IPv6地址以及组播数据报文;
处理单元,用于根据所述第一IPv6地址,经由所述第一IPv6地址确定的VPN对应的接口发送所述组播数据报文。
19.根据权利要求18所述的装置,其特征在于,所述接收单元具体用于:
接收代理节点发送的所述BIER报文;或者
接收指定节点发送的所述BIER报文。
20.根据权利要求18或19所述的装置,其特征在于,所述装置还包括:
发送单元,用于向所述第一节点发送所述第二节点IPv6地址。
21.根据权利要求18或19所述的装置,其特征在于,所述处理单元具体用于:
根据所述第一IPv6地址和对应关系确定第一VPN的第一标识,所述对应关系包括所述第一IPv6地址和所述第一VPN的第一标识;
基于所述第一VPN的标识所对应的至少一个接口,发送所述组播数据报文。
22.根据权利要求18或19所述的装置,其特征在于,
所述接收单元还用于接收来自第一节点的所述第一IPv6地址和第一VPN的第二标识;
所述处理单元还用于:基于所述第一VPN的第二标识获取所述第一VPN的第一标识;基于所述第一IPv6地址和所述第一VPN的第一标识,获取对应关系,所述对应关系包括所述第一IPv6地址和所述第一VPN的第一标识。
23.一种计算机可读存储介质,包括计算机程序,当其在计算机上运行时,使得所述计算机执行如权利要求1至6中任一项所述的方法或执行如权利要求7至11中任一项所述的方法。
24.一种芯片系统,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片系统的设备执行如权利要求1至6中任一项所述的方法或执行如权利要求7至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110736240.8A CN113595913B (zh) | 2018-11-02 | 2018-11-02 | 报文转发的方法、发送报文的装置和接收报文的装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811301263.0A CN111147383B (zh) | 2018-11-02 | 2018-11-02 | 报文转发的方法、发送报文的装置和接收报文的装置 |
CN202110736240.8A CN113595913B (zh) | 2018-11-02 | 2018-11-02 | 报文转发的方法、发送报文的装置和接收报文的装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811301263.0A Division CN111147383B (zh) | 2018-11-02 | 2018-11-02 | 报文转发的方法、发送报文的装置和接收报文的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113595913A CN113595913A (zh) | 2021-11-02 |
CN113595913B true CN113595913B (zh) | 2023-02-14 |
Family
ID=70462433
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811301263.0A Active CN111147383B (zh) | 2018-11-02 | 2018-11-02 | 报文转发的方法、发送报文的装置和接收报文的装置 |
CN202110736240.8A Active CN113595913B (zh) | 2018-11-02 | 2018-11-02 | 报文转发的方法、发送报文的装置和接收报文的装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811301263.0A Active CN111147383B (zh) | 2018-11-02 | 2018-11-02 | 报文转发的方法、发送报文的装置和接收报文的装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210266189A1 (zh) |
EP (1) | EP3863237A4 (zh) |
JP (1) | JP7208386B2 (zh) |
CN (2) | CN111147383B (zh) |
WO (1) | WO2020088696A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210266255A1 (en) * | 2020-02-24 | 2021-08-26 | Cisco Technology, Inc. | Vrf segregation for shared services in multi-fabric cloud networks |
CN112511365A (zh) * | 2020-03-24 | 2021-03-16 | 中兴通讯股份有限公司 | 一种性能测量方法、装置、设备和存储介质 |
CN113765791B (zh) * | 2020-06-02 | 2023-01-13 | 华为技术有限公司 | 一种确定处理能力的方法、节点和系统 |
CN114095305A (zh) * | 2020-07-21 | 2022-02-25 | 华为技术有限公司 | Bier报文转发的方法、设备以及系统 |
CN112491706A (zh) * | 2020-07-31 | 2021-03-12 | 中兴通讯股份有限公司 | 数据报文的处理方法及装置、存储介质、电子装置 |
CN112187648B (zh) * | 2020-08-24 | 2022-02-15 | 中盈优创资讯科技有限公司 | 组播报文转发方法及装置 |
CN112491718A (zh) * | 2020-08-31 | 2021-03-12 | 中兴通讯股份有限公司 | 报文头的处理方法及装置、存储介质、电子装置 |
CN114598634A (zh) * | 2020-12-02 | 2022-06-07 | 华为技术有限公司 | 报文传输的方法、获取对应关系的方法、装置及系统 |
CN114598644A (zh) * | 2020-12-02 | 2022-06-07 | 华为技术有限公司 | Bier报文转发的方法、设备以及系统 |
CN114666259A (zh) * | 2020-12-22 | 2022-06-24 | 华为技术有限公司 | 报文传输的方法、装置、设备、存储介质及系统 |
CN114915589A (zh) * | 2021-02-10 | 2022-08-16 | 华为技术有限公司 | 报文传输方法及装置 |
WO2022198560A1 (zh) * | 2021-03-25 | 2022-09-29 | 新华三技术有限公司 | 随流检测方法和电子设备 |
CN115277552A (zh) * | 2021-04-30 | 2022-11-01 | 华为技术有限公司 | 传输报文的方法、装置及设备 |
CN115412399A (zh) * | 2021-05-10 | 2022-11-29 | 中兴通讯股份有限公司 | 数据转发方法、装置、存储介质和电子装置 |
CN115834480A (zh) * | 2021-09-16 | 2023-03-21 | 华为技术有限公司 | 获取能力、发送能力信息的方法、装置、系统及存储介质 |
CN115022232B (zh) * | 2022-07-06 | 2023-05-16 | 中国联合网络通信集团有限公司 | 组播组的管理方法、装置、设备及存储介质 |
CN115277720A (zh) * | 2022-07-06 | 2022-11-01 | 中国联合网络通信集团有限公司 | 组播组的管理方法、装置、设备及存储介质 |
WO2024016869A1 (zh) * | 2022-07-21 | 2024-01-25 | 华为技术有限公司 | 一种组播配置方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141525A (zh) * | 2015-06-30 | 2015-12-09 | 杭州华三通信技术有限公司 | IPv6路由查找方法及装置 |
CN107645446A (zh) * | 2016-07-21 | 2018-01-30 | 中兴通讯股份有限公司 | 一种信息确定方法和装置 |
CN108632150A (zh) * | 2017-03-22 | 2018-10-09 | 中兴通讯股份有限公司 | 一种信息传递方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3859591B2 (ja) * | 2000-06-16 | 2006-12-20 | 富士通株式会社 | Vpn収容機能を含む通信装置 |
JP4181513B2 (ja) * | 2004-02-19 | 2008-11-19 | 日本電信電話株式会社 | Vpnマルチキャストパケット転送方法及びそれを用いたネットワークシステム並びにそれを構成する装置及びプログラム |
CN104285413B (zh) * | 2012-02-21 | 2018-02-16 | 华为技术有限公司 | 一种数据包转换装置及方法 |
US9438432B2 (en) * | 2013-09-17 | 2016-09-06 | Cisco Technology, Inc. | Bit indexed explicit replication packet encapsulation |
CN105556899B (zh) * | 2013-09-17 | 2019-08-13 | 思科技术公司 | 用于执行位索引显式复制的系统和方法 |
US9749410B2 (en) * | 2014-11-18 | 2017-08-29 | Cisco Technology, Inc. | Using bit index explicit replication (BIER) in low-power and lossy networks |
US9544240B1 (en) * | 2015-07-13 | 2017-01-10 | Telefonaktiebolaget L M Ericsson (Publ) | MTU discovery over multicast path using bit indexed explicit replication |
CN106572017B (zh) * | 2015-10-09 | 2021-06-15 | 中兴通讯股份有限公司 | Bier信息的发送方法、接收方法及装置 |
CN106572023B (zh) * | 2015-10-12 | 2020-08-11 | 中兴通讯股份有限公司 | 一种实现比特位索引显示复制的方法及比特位转发路由器 |
CN106656524A (zh) * | 2015-10-30 | 2017-05-10 | 中兴通讯股份有限公司 | 一种bier控制信息的传输方法、装置和系统 |
CN106656794B (zh) * | 2015-10-30 | 2021-02-09 | 中兴通讯股份有限公司 | 一种报文传输方法及装置 |
CN105530159B (zh) * | 2016-01-19 | 2018-12-18 | 武汉烽火网络有限责任公司 | 一种实现跨IPv6和IPv4的VPN互访的方法和系统 |
CN107623630B (zh) * | 2016-07-13 | 2021-04-06 | 中兴通讯股份有限公司 | 一种位索引显式复制信息传递方法和装置 |
CN109995634B (zh) * | 2017-12-29 | 2021-08-17 | 中兴通讯股份有限公司 | 一种组播虚拟专用网络的承载方法和设备 |
-
2018
- 2018-11-02 CN CN201811301263.0A patent/CN111147383B/zh active Active
- 2018-11-02 CN CN202110736240.8A patent/CN113595913B/zh active Active
-
2019
- 2019-12-25 WO PCT/CN2019/128112 patent/WO2020088696A1/zh unknown
- 2019-12-25 EP EP19879381.2A patent/EP3863237A4/en active Pending
- 2019-12-25 JP JP2021524217A patent/JP7208386B2/ja active Active
-
2021
- 2021-04-27 US US17/241,464 patent/US20210266189A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141525A (zh) * | 2015-06-30 | 2015-12-09 | 杭州华三通信技术有限公司 | IPv6路由查找方法及装置 |
CN107645446A (zh) * | 2016-07-21 | 2018-01-30 | 中兴通讯股份有限公司 | 一种信息确定方法和装置 |
CN108632150A (zh) * | 2017-03-22 | 2018-10-09 | 中兴通讯股份有限公司 | 一种信息传递方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP7208386B2 (ja) | 2023-01-18 |
EP3863237A1 (en) | 2021-08-11 |
CN113595913A (zh) | 2021-11-02 |
US20210266189A1 (en) | 2021-08-26 |
JP2022506679A (ja) | 2022-01-17 |
EP3863237A4 (en) | 2021-12-15 |
WO2020088696A1 (zh) | 2020-05-07 |
CN111147383B (zh) | 2021-06-29 |
CN111147383A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113595913B (zh) | 报文转发的方法、发送报文的装置和接收报文的装置 | |
CN109218178B (zh) | 一种报文处理方法及网络设备 | |
CN110784411B (zh) | 建立bier转发表项的方法、装置和系统 | |
CN111669330B (zh) | 一种bier报文的发送方法和装置 | |
CN110832813B (zh) | 使用分段路由的以太网虚拟专用网 | |
EP3720066A1 (en) | Packet sending and processing method and apparatus, pe node, and node | |
WO2019105462A1 (zh) | 报文的发送、处理方法及装置,pe节点,节点 | |
US20230155932A1 (en) | Multicast traffic transmission method and apparatus, communication node, and storage medium | |
WO2022100554A1 (zh) | Bier报文转发的方法、设备以及系统 | |
WO2021068641A1 (zh) | 基于IPv6网络的虚拟专用网络组播方法及电子设备 | |
WO2006101823A2 (en) | System and method for routing isis traffic through unidirectional links of a computer network | |
US11362954B2 (en) | Tunneling inter-domain stateless internet protocol multicast packets | |
CN108964940A (zh) | 消息发送方法及装置、存储介质 | |
WO2022117018A1 (zh) | 报文传输的方法和装置 | |
CN112532563B (zh) | 报文的发送方法和装置 | |
WO2022116895A1 (zh) | Bier报文转发的方法、设备以及系统 | |
CN117478503A (zh) | 一种组播配置方法及装置 | |
WO2021129023A1 (zh) | 报文发送的方法、设备和系统 | |
CN116112416A (zh) | 报文转发方法、电子设备及存储介质 | |
WO2024016869A1 (zh) | 一种组播配置方法及装置 | |
EP4246917A1 (en) | Message transmission method, method for acquiring correspondence, and apparatus and system | |
WO2024007762A1 (zh) | 一种路由发布方法、通信方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |