CN112532563B - 报文的发送方法和装置 - Google Patents
报文的发送方法和装置 Download PDFInfo
- Publication number
- CN112532563B CN112532563B CN201910874831.4A CN201910874831A CN112532563B CN 112532563 B CN112532563 B CN 112532563B CN 201910874831 A CN201910874831 A CN 201910874831A CN 112532563 B CN112532563 B CN 112532563B
- Authority
- CN
- China
- Prior art keywords
- ipv6
- network device
- address
- header
- message
- 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/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
- 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/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
- H04L12/1863—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
- H04L12/1877—Measures taken prior to transmission
-
- 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
- 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/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
-
- 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
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
本申请提供了一种报文的发送方法,该方法应用于MVPN,MVPN包括第一网络设备和第二网络设备,该方法包括:第一网络设备接收第一CE发送的第一报文,第一报文包括第一IPv6头和第一载荷,第一IPv6头中包括第一SA和第一DA;根据第一表项确定第一SA和第一DA对应的第一地址标识,第一表项包括第一SA和第一DA与第一地址标识之间的对应关系;将第一报文中的第一IPv6头更新为第二IPv6头,得到第二报文,第二IPv6头不包括第一SA字段和第一DA字段;根据第一地址标识封装第二报文,得到第一封装报文,第一封装报文包括第一地址标识,第一地址标识位于第二报文的外层;向第二网络设备发送第一封装报文。本申请提供的技术方案可以节省封装开销。
Description
技术领域
本申请涉及网络通信领域,并且更具体地,涉及报文的发送方法和装置。
背景技术
网络协议(internet protocol,IP)组播技术实现了IP网络中点到多点的高效数据传送,能够有效地节约网络带宽、降低网络负载。因此,组播业务在实时数据传送、多媒体会议、数据拷贝、交互式网络电视(internet protocol television,IPTV)、游戏和仿真等诸多方面都有广泛的应用。
在承载私网用户的互联网协议第六版(internet protocol version 6,IPv6)组播业务时,例如,虚拟专用网络-互联网协议第六版组播((virtual private network,VPN)-IPv6multicast),或者组播虚拟专用网络(multicast virtual private network,MVPN)-IPv6,入口节点会接收IPv6组播报文,并在IPv6组播报文封装一层外层封装,外层封装中包含有标识报文所属的虚拟路由转发(virtual routing forwarding,VRF)等标识信息,该封装标识与内层IPv6组播报文的源地址(source address,SA)和目的地址(destination address,DA)之间有对应关系。
传统的技术方案中,对IPv6组播报文封装之后,内层的IPv6组播报文中还包括Pv6组播报文的源地地址SA字段和目的地址DA字段,该SA字段和DA字段会占用一定的内存资源,从而存在封装开销。
因此,如何减小报文封装的开销成为当前亟需要解决的技术问题。
发明内容
本申请提供一种报文的发送方法和装置,可以将接收到的第一报文中的第一IPv6头更新为第二IPv6头,该第一IPv6头中包括源地址SA字段和目的地址DA字段,更新后的第二IPv6头中不包括源地址SA字段和目的地址DA字段,从而减小报文封装开销。
第一方面,提供了一种报文的发送方法,所述方法应用于组播虚拟专用网络MVPN,所述MVPN包括第一网络设备和第二网络设备,所述第一网络设备是所述MVPN的入口节点设备,所述第二网络设备是所述MVPN的出口节点设备,所述方法包括:所述第一网络设备接收第一用户边缘CE设备发送的第一报文,所述第一报文包括第一互联网协议第六版IPv6头和第一载荷,所述第一IPv6头中包括第一源地址SA和第一目的地址DA;所述第一网络设备根据第一表项确定所述第一SA和所述第一DA对应的第一地址标识,所述第一表项包括所述第一SA和所述第一DA与所述第一地址标识之间的对应关系,所述第一地址标识用于指示所述第一SA和所述第一DA;所述第一网络设备将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到第二报文,所述第二IPv6头不包括所述第一SA字段和所述第一DA字段,其中,第一SA字段的值和所述第一SA的值相同,所述第一DA字段的值和所述第一DA的值相同;所述第一网络设备根据所述第一地址标识封装所述第二报文,得到第一封装报文,所述第一封装报文包括所述第一地址标识,所述第一地址标识位于所述第二报文的外层;所述第一网络设备向所述第二网络设备发送所述第一封装报文。
上述技术方案中,第一网络设备可以将接收到的第一报文中的第一IPv6头更新为第二IPv6头,该第一IPv6头中包括源地址SA字段和目的地址DA字段,更新后的第二IPv6头中不包括源地址SA字段和目的地址DA字段,从而减小报文封装开销。
在一种可能的实现方式中,所述第一表项中还包括第一指示标志,所述第一指示标志用于指示所述第一网络设备将所述第一IPv6头更新为所述第二IPv6头,所述第一网络设备根据所述第一指示标志,将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到所述第二报文。
在另一种可能的实现方式中,所述第一地址标识包括第一多协议标签交换MPLS。
在另一种可能的实现方式中,所述第一地址标识还包括基于位索引显示复制BIER头。
在另一种可能的实现方式中,所述第一地址标识包括第三IPv6头,所述第三IPv6头中的SA字段中封装有第三IPv6地址,所述第三IPv6地址与所述第一SA和所述第一DA对应。
在另一种可能的实现方式中,所述第一地址标识包括第四IPv6头,所述第四IPv6头中的DA字段中封装有第四IPv6地址,所述第四IPv6地址与所述第一SA和所述第一DA对应。
在另一种可能的实现方式中,所述第一地址标识还包括IPv6扩展头,所述IPv6扩展头中包括BIER头。
在另一种可能的实现方式中,所述方法还包括:所述第一网络设备向所述第二网络设备发送所述第一表项。
在另一种可能的实现方式中,在所述第一网络设备向所述第二网络设备发送所述第一表项之前,所述方法还包括:所述第一网络设备为所述第一SA和所述第一DA分配对应的所述第一地址标识。
在另一种可能的实现方式中,所述方法还包括:所述第一网络设备接收所述第二网络设备发送的所述第一表项。
在另一种可能的实现方式中,所述第一表项中还包括所述第一SA和所述第一DA对应的虚拟路由转发VRF标识。
第二方面,提供了一种报文的发送方法,所述方法应用于组播虚拟专用网络MVPN,所述MVPN包括第一网络设备和第二网络设备,所述第一网络设备是所述MVPN的入口节点设备,所述第二网络设备是所述MVPN的出口节点设备,所述方法包括:所述第二网络设备接收所述第一网络设备发送的第一封装报文,其中,所述第一封装报文包括第二报文和第一地址标识,所述第一地址标识位于所述第二报文的外层,所述第二报文包括第二IPv6头和第一载荷,所述第二IPv6头不包括第一SA字段和第一DA字段;所述第二网络设备根据第一表项所述第一地址标识对应的所述第一SA和所述第一DA,所述第一表项包括所述第一SA和所述第一DA与所述第一地址标识之间的对应关系,所述第一地址标识用于指示所述第一SA和所述第一DA,所述第一SA的值和所述第一SA字段的值相同,所述第一DA的值和所述第一DA字段的值相同;所述第二网络设备将所述第二IPv6头更新为第一IPv6头,得到第一报文,所述第一IPv6头中包括所述第一SA字段和所述第一DA字段;所述第二网络设备根据所述第一IPv6头中所述第一SA字段和所述第一DA字段,将所述第一报文中的第一载荷发送至第二用户边缘CE设备。
在一种可能的实现方式中,所述第一表项中还包括所述第一SA和所述第一DA对应的第一指示标志,所述第一指示标志用于指示所述第一网络设备将所述第一IPv6头更新为所述第二IPv6头,所述第二网络设备根据所述第一指示标志,将所述第二IPv6头更新为第一IPv6头,得到所述第一报文。
在另一种可能的实现方式中,所述第一地址标识包括第一多标签协议交换MPLS。
在另一种可能的实现方式中,所述第一地址标识还包括基于位索引的显示复制BIER头。
在另一种可能的实现方式中,所述第一地址标识包括第三IPv6头,所述第三IPv6头中的源地址SA字段中封装有第三IPv6地址,所述第三IPv6地址与所述第一SA和所述第一DA对应。
在另一种可能的实现方式中,所述第一地址标识包括第四IPv6头,所述第四IPv6头中的目的地址DA字段中封装有第四IPv6地址,所述第四IPv6地址与所述第一SA和所述第一DA对应。
在另一种可能的实现方式中,所述第一地址标识还包括IPv6扩展头,所述IPv6扩展头中包括BIER头。
在另一种可能的实现方式中,所述方法还包括:所述第二网络设备接收所述第一网络设备发送的所述第一表项。
在另一种可能的实现方式中,所述方法还包括:所述第二网络设备向所述第一网络设备发送所述第一表项。
在另一种可能的实现方式中,在所述第二网络设备向所述第一网络设备发送所述第一表项之前,所述方法还包括:所述第二网络设备为所述第一SA和所述第一DA分配对应的所述第一地址标识。
在另一种可能的实现方式中,所述第一表项中还包括所述第一SA和所述第一DA对应的虚拟路由转发VRF标识。
第三方面,提供了一种第一网络设备,所述第一网络设备是组播虚拟专用网络MVPN的入口节点设备,所述第一网络设备包括:
接收模块,用于接收第一用户边缘CE设备发送的第一报文,所述第一报文包括第一互联网协议第六版IPv6头和第一载荷,所述第一IPv6头中包括第一源地址SA和第一目的地址DA;
确定模块,用于根据第一表项确定所述第一SA和所述第一DA对应的第一地址标识,所述第一表项包括所述第一SA和所述第一DA与所述第一地址标识之间的对应关系,所述第一地址标识用于指示所述第一SA和所述第一DA;
更新模块,用于将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到第二报文,所述第二IPv6头不包括所述第一SA字段和所述第一DA字段,其中,第一SA字段的值和所述第一SA的值相同,所述第一DA字段的值和所述第一DA的值相同;
封装模块,用于根据所述第一地址标识封装所述第二报文,得到第一封装报文,所述第一封装报文包括所述第一地址标识,所述第一地址标识位于所述第二报文的外层;
发送模块,用于向所述第二网络设备发送所述第一封装报文,所述第二网络设备是所述MVPN的出口节点设备。
上述技术方案中,第一网络设备可以将接收到的第一报文中的第一IPv6头更新为第二IPv6头,该第一IPv6头中包括源地址SA字段和目的地址DA字段,更新后的第二IPv6头中不包括源地址SA字段和目的地址DA字段,从而减小报文封装开销。
在一种可能的实现方式中,所述第一表项中还包括第一指示标志,所述第一指示标志用于指示所述第一网络设备将所述第一IPv6头更新为所述第二IPv6头,
所述更新模块具体用于:根据所述第一指示标志,将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到所述第二报文。
在另一种可能的实现方式中,所述第一地址标识包括第一多协议标签交换MPLS。
在另一种可能的实现方式中,所述第一地址标识还包括基于位索引显示复制BIER头。
在另一种可能的实现方式中,所述第一地址标识包括第三IPv6头,所述第三IPv6头中的SA字段中封装有第三IPv6地址,所述第三IPv6地址与所述第一SA和所述第一DA对应。
在另一种可能的实现方式中,所述第一地址标识包括第四IPv6头,所述第四IPv6头中的DA字段中封装有第四IPv6地址,所述第四IPv6地址与所述第一SA和所述第一DA对应。
在另一种可能的实现方式中,所述第一地址标识还包括IPv6扩展头,所述IPv6扩展头中包括BIER头。
在另一种可能的实现方式中,所述发送模块还用于:向所述第二网络设备发送所述第一表项。
在另一种可能的实现方式中,所述第一网络设备还包括:
分配模块,用于为所述第一SA和所述第一DA分配对应的所述第一地址标识。
在另一种可能的实现方式中,所述接收模块还用于:接收所述第二网络设备发送的所述第一表项。
在另一种可能的实现方式中,所述第一表项中还包括所述第一SA和所述第一DA对应的虚拟路由转发VRF标识。
第四方面,提供了一种第二网络设备,所述第二网络设备是组播虚拟专用网络MVPN的出口节点设备,所述第二网络设备包括:
接收模块,用于接收所述第一网络设备发送的第一封装报文,其中,所述第一封装报文包括第二报文和第一地址标识,所述第一地址标识位于所述第二报文的外层,所述第二报文包括第二IPv6头和第一载荷,所述第二IPv6头不包括第一SA字段和第一DA字段,所述第一网络设备是所述MVPN的入口节点设备;
确定模块,用于根据第一表项确定所述第一地址标识对应的所述第一SA和所述第一DA,所述第一表项包括所述第一SA和所述第一DA与所述第一地址标识之间的对应关系,所述第一地址标识用于指示所述第一SA和所述第一DA,所述第一SA的值和所述第一SA字段的值相同,所述第一DA的值和所述第一DA字段的值相同;
更新模块,用于将所述第二IPv6头更新为第一IPv6头,得到第一报文,所述第一IPv6头中包括所述第一SA字段和所述第一DA字段;
发送模块,用于根据所述第一IPv6头中所述第一SA字段和所述第一DA字段,将所述第一报文中的第一载荷发送至第二用户边缘CE设备。
在一种可能的实现方式中,所述第一表项中还包括所述第一SA和所述第一DA对应的第一指示标志,所述第一指示标志用于指示所述第一网络设备将所述第一IPv6头更新为所述第二IPv6头,所述第二网络设备根据所述第一指示标志,将所述第二IPv6头更新为第一IPv6头,得到所述第一报文。
在另一种可能的实现方式中,所述第一地址标识包括第一多标签协议交换MPLS。
在另一种可能的实现方式中,所述第一地址标识还包括基于位索引的显示复制BIER头。
在另一种可能的实现方式中,所述第一地址标识包括第三IPv6头,所述第三IPv6头中的源地址SA字段中封装有第三IPv6地址,所述第三IPv6地址与所述第一SA和所述第一DA对应。
在另一种可能的实现方式中,所述第一地址标识包括第四IPv6头,所述第四IPv6头中的目的地址DA字段中封装有第四IPv6地址,所述第四IPv6地址与所述第一SA和所述第一DA对应。
在另一种可能的实现方式中,所述第一地址标识还包括IPv6扩展头,所述IPv6扩展头中包括BIER头。
在另一种可能的实现方式中,所述接收模块还用于:接收所述第一网络设备发送的所述第一表项。
在另一种可能的实现方式中,所述发送模块还用于:向所述第一网络设备发送所述第一表项。
在另一种可能的实现方式中,所述第二网络设备还包括:分配模块,用于为所述第一SA和所述第一DA分配对应的所述第一地址标识。
在另一种可能的实现方式中,所述第一表项中还包括所述第一SA和所述第一DA对应的虚拟路由转发VRF标识。
第五方面,提供了一种第一网络设备,所述第一网络设备包括处理器、存储器、接口和总线。其中接口可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器、存储器和接口通过总线连接。
所述接口具体可以包括发送器和接收器,用于第一网络设备与上述实施例中的第二网络设备以及第一CE设备之间收发信息。例如,所述接口用于支持接收所述第一用户边缘CE设备发送的第一报文。又例如,所述接口用于向所述第二网络设备发送所述第一封装报文。再例如,所述接口用于向所述第二网络设备发送所述第一表项。作为举例,所述接口用于支持图9中的步骤910和步骤950。所述处理器用于执行上述实施例中由第一网络设备进行的处理。例如,所述处理器用于根据第一表项确定所述第一SA和所述第一DA对应的第一地址标识;将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到第二报文;根据所述第一地址标识封装所述第二报文,得到第一封装报文;和/或用于本文所描述的技术的其他过程。作为举例,所述处理器用于支持图9中的步骤920、步骤930和步骤940。存储器包括操作系统和应用程序,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第一网络设备的处理过程。可选的,所述存储器可以包括只读存储器(read-only memory,ROM)和随机存取存储器(random accessmemory,RAM)。其中,所述ROM包括基本输入/输出系统(basic input/output system,BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第一网络设备时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备进入正常运行状态。在第一网络设备进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法实施例中涉及第一网络设备的处理过程。
可以理解的是,在实际应用中,第一网络设备可以包含任意数量的接口,处理器或者存储器。
第六方面,提供了一种第二网络设备,所述第二网络设备包括处理器、存储器、接口和总线。其中接口可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器、存储器和接口通过总线连接。
所述接口具体可以包括发送器和接收器,用于第二网络设备与上述实施例中的第一网络设备以及第二CE设备之间收发信息。例如,所述接口用于支持接收所述第一网络设备发送的第一封装报文。又例如,所述接口用于根据所述第一IPv6头中所述第一SA和所述第一DA字段,将所述第一报文中的第一载荷发送至第二用户边缘CE设备。所述处理器用于执行上述实施例中由第二网络设备进行的处理。例如,所述处理器用于根据根据第一表项确定所述第一地址标识对应的第一SA和第一DA;将所述第二IPv6头更新为第一IPv6头,得到第一报文;和/或用于本文所描述的技术的其他过程。存储器包括操作系统和应用程序,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第二网络设备的处理过程。可选的,所述存储器可以包括只读存储器(read-only memory,ROM)和随机存取存储器(random access memory,RAM)。其中,所述ROM包括基本输入/输出系统(basic input/output system,BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第二网络设备时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第二网络设备进入正常运行状态。在第二网络设备进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法实施例中涉及第二网络设备的处理过程。
可以理解的是,在实际应用中,第二网络设备可以包含任意数量的接口,处理器或者存储器。
第七方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
第八方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
第九方面,提供了一种系统,该系统包括上述第一网络设备和第二网络设备。
附图说明
图1是适用于本申请的一种应用场景的示意性图。
图2是一种可能的IPv6报文的格式示意图。
图3是一种对IPv6报文进行MPLS封装的报文格式示意图。
图4是一种对IPv6报文进行IPv6封装的报文格式示意图。
图5是一种BIER技术的示意性组网图。
图6是一种可能的BIER头格式的示意图。
图7是一种对IPv6报文进行BIER-MPLS封装的报文格式示意图。
图8是一种对IPv6报文进行BIERv6封装的报文格式示意图。
图9是本申请实施例提供的一种报文的发送方法的示意性流程图。
图10是本申请实施例提供的另一种报文的发送方法的示意性流程图。
图11是本申请实施例提供的一种网络设备对IPv6报文进行BIER-MPLS封装的第一封装报文的格式示意图。
图12是本申请实施例提供的另一种报文的发送方法的示意性流程图。
图13是本申请实施例提供的一种网络设备对IPv6报文进行MPLS封装的第二封装报文的格式示意图。
图14是本申请实施例提供的另一种报文的发送方法的示意性流程图。
图15是本申请实施例提供的一种网络设备对IPv6报文进行BIERv6封装的第三封装报文的格式示意图。
图16是本申请实施例提供的另一种报文的发送方法的示意性流程图。
图17是本申请实施例提供的一种网络设备对IPv6报文进行IPv6封装第四封装报文的格式示意图。
图18是本申请实施例提供的一种第一网络设备1800的示意性结构图。
图19是本申请实施例提供的一种第二网络设备1900的示意性结构图。
图20是本申请实施例的第一网络设备2000的硬件结构示意图。
图21为本申请实施例的另一种第一网络设备2100的硬件结构示意图。
图22是本申请实施例的第二网络设备2200的硬件结构示意图。
图23为本申请实施例的另一种第二网络设备2300的硬件结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
网络协议(internet protocol,IP)组播技术实现了IP网络中点到多点的高效数据传送,组播流量能够有效地节约网络带宽、降低网络负载。因此,在实时数据传送、多媒体会议、数据拷贝、交互式网络电视(internet protocol television,IPTV)、游戏和仿真等诸多方面都有广泛的应用。
图1是适用于本申请的一种应用场景的示意性图。如图1所示,MVPN网络可以理解为在一个公共网络中承载虚拟专用网络(virtual private network,VPN)的组播流量。本申请实施例对公共网络不做具体限定,作为一个示例,该公共网络可以是一个运营商(service provider)的网络,例如电信运营商网络。作为另一个示例,该公共网络还可以是一个数据中心(data center)。本申请实施例对MVPN网络中传输的组播流量不做具体限定,可以是IPTV业务的流量,又如可以是多媒体会议业务的流量。
参见图1,作为示例,MVPN中可以包括网络设备A-网络设备F,上述组播流量可以是网络设备A到网络设备D、网络设备E、网络设备F的组播流量。其中,网络设备A作为MVPN中的入口节点,可以称为头节点,与用户侧设备连接,例如,与第一用户边缘(customer edge,CE)设备连接。网络设备A负责从第一CE设备接收用户组播报文,对该用户组播报文进行封装,并将该封装后的用户组播报文通过MVPN发送至网络设备D、网络设备E、网络设备F。网络设备D、网络设备E、网络设备F分别作为MVPN中的出口节点,可以分别被称为尾节点,负责从MVPN接收封装后的用户组播报文,剥掉该用户组播报文的外层封装后,将内层的用户组播报文发送给其连接的用户侧设备。例如,网络设备D负责将内层的用户组播报文发送给第二CE设备,网络设备E负责将内层的用户组播报文发送给第三CE设备,网络设备F负责将内层的用户组播报文发送给第四CE设备。
应理解,上述头节点对收到的用户组播报文加封一层外层封装,在MVPN中转发报文,在叶子节点对用户组播报文剥去外层封装,并向用户侧发送组播流量的过程,也适用于公共网络的组播流量。也就是说,上述报文发送的过程同样适用于公共网络中的组播流量。例如,可以将头节点的用户侧和尾节点的用户侧看做一个特殊的VPN。
需要说明的是,本申请实施例对MVPN中网络设备的个数不做限定,图1种是以网络设备A-网络设备F的六个网络设备为例进行描述。
网络设备A对用户组播报文进行的封装也可以称为隧道封装,该封装的实现方式有多种,本申请实施例对此不做具体限定。例如可以包括但不限于:多协议标签交换(multi-protocol label switching,MPLS)封装、IPv6封装、基于位索引的显示复制(bitindexed explicit replication,BIER)。
为了便于对本申请实施例进行描述,下面分别对上述几种封装的报文格式进行详细描述。
首先对网络设备A从第一CE设备接收到的IPv6报文的格式进行描述。参见图2,IPv6报文包括IPv6头和载荷(payload)。其中,IPv6头中可以包括如下字段:
版本号(version,Ver):长度为4bit。
传输类型(traffic class,TC):长度为8bit,用于区分不同的IPv6数据包的类别以及优先级。
流标识(flow label):长度为20bit,“流”可以理解为网络上从特定的源地址到特定的目的地址的数据包,属于同一个“流”的数据包的流标识相同。
载荷长度(payload length):长度为16bit,除IPv6基本头之外的其他部分的长度,例如IPv6扩展头和内层的用户数据报文的长度。
下一个头部(next header,NH):长度为8bit,可以理解为紧跟在IPv6基本头后面的IPv6扩展头的标识号(即IPv6扩展头的类型),其中,每一个IPv6扩展头中也包括NH字段。
跳数极限(hop limit,HL):长度为8bit,类似于IPv4的生存时间(time to live,TTL)字段。
源地址(source address,SA):长度为128bit,用于填充发送IPv6报文的用户设备的地址。
目的地址(destination address,DA):长度为128bit,用于填充接收IPv6报文的用户设备的地址。
以对IPv6报文进行MPLS封装为例。网络设备A对IPv6报文进行MPLS封装的报文格式如图3所示。参见图3,网络设备A将MPLS标签栈(label stack)封装在IPv6报文报文的外层。应理解,本申请实施例对MPLS标签栈不做具体限定。作为一个示例,MPLS标签栈可以是多个MPLS标签的集合,靠近内层IPv6头和载荷(payload)的MPLS标签可以称为栈底MPLS标签或内层MPLS标签,靠近外层的MPLS标签可以称为栈顶MPLS标签或外层MPLS标签。作为另一个示例,MPLS标签栈还可以是单个MPLS标签。
以对IPv6报文进行IPv6封装为例。网络设备A对IPv6报文进行IPv6封装的报文格式如图4所示。参见图4,网络设备A在内层IPv6报文的外层再封装一个IPv6头,此时,封装的IPv6头可以称为外层IPv6头,IPv6报文中的IPv6头可以称为内层IPv6头。外层IPv6头中的字段与内层IPv6头中的字段相同,具体的请参见上文中对IPv6报文中IPv6头中的字段的描述,此处不再赘述。需要说明的是,外层IPv6头中的SA字段填充的是网络设备A的IPv6地址,DA字段填充的是MVPN接收报文的下一跳的IPv6地址。
以对IPv6报文进行BIER封装为例。网络设备A会在IPv6报文的外层封装一个BIER头,为了便于说明,下面先对BIER封装中的相关概念进行描述。
BIER技术是一种新的用于构建组播数据转发路径的技术,该技术提出了一种新的不需要构建组播分发树的组播技术架构。如图5所示,支持BIER技术的路由器可以称为BIER转发路由器(BIER forwarding router,BFR),该BFR设备可以接收并转发BIER报文。由一个或多个BFR组成的一个组播转发域称为BIER域(BIER domain)。在BIER域的边缘,对用户的组播数据报文进行BIER封装的设备称为BIER转发入口路由器(BIER forwarding ingressrouter,BFIR),解封装BIER数据报文的设备称为BIER转发出口路由器(BIER forwardingegress router,BFER)。
在BIER域中,对每台边缘的节点(例如,BFER)可以配置一个在整个BIER子域(subdomain,SD)中全局唯一的比特位置(bit position)。作为一个示例,可以为每一个边缘的节点配置一个值作为BFR标识(BFR identification,BFR ID),例如,一个1-256之间的数值。BIER域中所有的BFR ID组成一个比特串(bit string)。用户侧的IPv6报文在BIER域中传输时需要额外封装一个特定的BIER头,BIER头中以bit string的形式标注了该用户数据流量的所有目的节点。BIER域中的中间转发节点根据转发表以及BIER头中携带的bitstring进行路由,保证用户数据流量能够发送到所有的目的地址。
一种可能的BIER头格式的示意性框图请参见图6,如图6所示,BIER头中的字段可以包括但不限于:一个长度为20bit的位索引转发表标识(bit index forwarding tableidentification,BIFT ID)、比特串长度(bit string length,BSL)、64bit(8个字节)的其他字段,例如,传输类型(traffic class,TC),栈(stack,S),生存时间(time to live,TTL),版本号(version,Ver),proto等。
为了便于理解,下面分别对BIER头中的字段进行详细描述。
(1)BIFT ID:
长度为20bit,在BIER-MPLS封装下就是一个标签(label,L)。BIFT ID可以包括子域(sub-domain,SD)/比特串长度(bit string length,BSL)/集合标识(set identifier,SI)的一个组合,不同的BIFT ID可以对应于不同的SD/BSL/SI组合。
1、子域SD
一个BIER域可以根据实际的业务场景的需求配置为不同的子域SD,每个子域SD由子域标识(sub-domain identify,SD-ID)来表示,取值为[0-255],长度为8bit。作为一个示例,可以根据业务例如,虚拟私有网(virtual private network,VPN)的不同,将BIER域配置为不同的SD。例如,VPN 1使用SD 0,VPN 1使用SD 1。
需要说明的是,多个VPN也可以使用相同的SD,BIER域中不同的SD可以在一个内部网关协议(interior gateway protocol,IGP)进程或拓扑中,也可以不在一个IGP进程或拓扑中,本申请实施例对此不做具体限定。
2、比特串长度BSL
BSL为BIER头中包括的bit string的长度。BSL可以有多种,本申请实施例对此不做具体些限定。最小的64位,依次有128位,256位,512位,1024位,2048位,最大的4096位。具体的,在报文中通过4bit来标识,例如当BSL为64位时,报文中用0001标识,当BSL为128位时,报文中用0010标识,当BSL为512位时,报文中用0100标识,当BSL为1024位时,报文中用0101标识,依次类推。
3、集合标识SI
SI可以理解为网络中的多个节点或配置的BFR ID组成的集合。作为一个示例,BSL为256bit,但是网络中有超过256个节点,或者配置的BFR ID有超过256个,则需要将这些节点或BFR ID划分为不同的集合。例如,BFR ID=1to 256的节点为集合0(set index0,或SI=0),BFR ID=257to 512的节点为集合1(set index 1,或者SI=1)。
BIER域中的BFR在接收到了BIER报文之后,可以根据BIER头中的BIFT ID确定该BIER报文属于哪个SD,使用的BSL以及转发该报文的节点或配置的BFR ID组成的集合。
(2)比特串(bit string)
bit string中的每个bit用来标识某个边缘节点BFER,例如bit string的低位(最右)的一个bit用来标识下一跳节点是BFR-ID=1对应的节点。bit string中从右往左第2个Bit用来标识下一跳节点是BFR-ID=2对应的节点。转发面转发所依据的转发表项则是根据报文中的bit string决定该报文要往哪几个下一跳发送。多个bit对应同一个下一跳的情况,转发只会往该下一跳发送一份报文。当BIER域中的BFR在接收到了包含有BIER的报文头时,根据BIER头中携带的bit string以及BIFT ID转发BIER报文。
以BIFT ID=2为例,BFR在接收到了BIER报文之后,可以根据该BIER头中的BIFTID获取该BIER报文属于SD 0,BIER头中使用的BSL为256bit,属于集合1(包括BFR ID=257to 512的节点的集合)。
本申请实施例中,节点配置的比特位置(bit position)会事先通过内部网关协议(interior gateway protocol,IGP)或者外部网关协议(border gateway protocol,BGP)在BIER域中泛洪,形成用于指导用户数据流量在BIER域中的每个节点进行转发的位索引转发表(bit index forwarding table,BIFT)。这种随着IGP或者BGP在BIER域中泛洪的信息可以称为BIER信息。BFR在接收到封装有BIER头的BIER报文时,根据BIFT来完成BIER报文到目的节点的转发。本申请实施例中内部网关协议IGP可以包括但不限于:开放式最短路径优先(open shortest path first,OSPF)协议,中间系统到中间系统(intermediate systemto intermediate system,ISIS)协议等。
(3)proto字段:
proto字段等于4代表BIER头后面的原始用户数据流量报文为IPv4报文,proto字段等于6代表BIER头后面的原始用户数据流量报文为IPv6报文。
本申请实施例中BIER封装的类型可以有多种,作为一个示例,通过多协议标签交换(multi-protocol label switching,MPLS)对BIER报文进行的封装,这种封装可以称为BIER-MPLS封装。作为另一个示例,可以通过互联网协议第6版(internet protocolversion6,IPv6)对BIER报文进行的封装,这种封装可以称为BIERv6封装。
以BIER-MPLS封装为例。网络设备A对IPv6报文进行BIER-MPLS封装的报文格式如图7所示。参见图7,网络设备A在IPv6报文的外层封装BIER头以及上游MPLS标签。具体的有关BIER头中的字段请参见图6中的描述,此处不再赘述。需要说明的是,在BIER头中的proto字段等于2,代表外层封装的BIER头后紧跟一个上游MPLS标签。
以BIERv6封装为例。网络设备A对IPv6报文进行BIERv6封装的报文格式如图8所示。参见图8,网络设备A在内层IPv6报文的外层再封装一个IPv6头和IPv6扩展头。该IPv6扩展头中包含BIER头。具体的有关BIER头中的字段请参见图6中的描述,此处不再赘述。
本申请实施例提供的报文的发送方法,可以将接收到的IPv6报文中的IPv6头更新为一个新的IPv6头,该新的IPv6头中不包括源地址SA字段和目的地址DA字段,从而减小报文封装开销。下面结合图9,对本申请实施例中提供的报文的发送方法进行详细描述。
图9是本申请实施例提供的一种报文的发送方法的示意性流程图。参见图9,该方法可以包括步骤910-950,下面分别对步骤910-950进行详细描述。
步骤910:第一网络设备接收第一用户边缘CE设备发送的第一报文,所述第一报文包括第一互联网协议第六版IPv6头和第一载荷,所述第一IPv6头中包括第一源地址SA和第一目的地址DA。
应理解,本申请实施例中第一报文可以是IPv6报文。第一网络设备可以对应于上文中的网络设备A。具体的有关第一网络设备接收第一用户边缘CE设备发送的IPv6报文的格式请参考图2中的描述,此处不再赘述。
步骤920:所述第一网络设备根据第一表项确定所述第一SA和所述第一DA对应的第一地址标识,所述第一表项包括所述第一SA和所述第一DA与所述第一地址标识之间的对应关系,所述第一地址标识用于指示所述第一SA和所述第一DA。
第一表项中第一SA和所述第一DA与所述第一地址标识之间的对应关系可以是静态配置的,或者还可以是第一网络设备为第一SA和所述第一DA分配的对应的第一地址标识,该第一网络设备将该第一表项发送给位于MPVN入口的第二网络设备,或者还可以是第二网络设备为第一SA和所述第一DA分配的对应的第一地址标识,并将该第一表项发送给第一网络设备。具体的请参见下文中实施例中的描述,此处不再赘述。
第一网络设备根据第一表项确定所述第一SA和所述第一DA对应的第一地址标识,可以理解为第一网络设备将第一SA和所述第一DA作为索引(key)值,搜索第一表项中第一SA和所述第一DA对应的第一地址标识。
步骤930:所述第一网络设备将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到第二报文,所述第二IPv6头不包括所述第一SA字段和所述第一DA字段,其中,第一SA字段的值和所述第一SA的值相同,所述第一DA字段的值和所述第一DA的值相同。
第一网络设备将所述第一报文中的所述第一IPv6头更新为第二IPv6头,可以理解为第一网络设备删除了第一IPv6头中的第一SA字段的和第一DA字段,也就是说,第二IPv6头中不包括第一SA字段和第一DA字段。
需要说明的是,本申请实施例中,第一SA字段的值和所述第一SA的值相同,所述第一DA字段的值和所述第一DA的值相同,第二IPv6头中不包括第一SA字段和第一DA字段,也可以理解为第二IPv6头中不包括第一SA的值和第一DA的值。
作为示例,更新之前的第一IPv6头可以参见图2中的描述,具体的,第一IPv6头可以包括如下字段:Ver,TC,流标识(flow label),载荷长度(payload length),NH,HL,SA,DA。更新后的第二IPv6头中不包括SA字段和DA字段,也就是说,第二IPv6头中可以包括如下字段:Ver,TC,流标识(flow label),载荷长度(payload length),NH,HL。相当于,第一网络设备删除了第一IPv6头中的SA字段和DA字段,得到第二IPv6头。
可选地,在一些实施例中,第一表项中还可以包括所述第一SA和所述第一DA对应的第一指示标志,该第一指示标志用于指示所述第一网络设备将所述第一IPv6头更新为所述第二IPv6头。第一网络设备可以第一IPv6头中的第一SA和所述第一DA搜索到对应的第一指示标志,并根据该第一指示标志将所述第一IPv6头更新为所述第二IPv6头。
步骤940:所述第一网络设备根据所述第一地址标识封装所述第二报文,得到第一封装报文,所述第一封装报文包括所述第一地址标识,所述第一地址标识位于所述第二报文的外层。
本申请实施例对第一地址标识不做具体限定。作为一个示例,该第一地址标识包括第一多标签协议交换MPLS标签。也就是说,MPLS标签对应于第一SA和所述第一DA。可选的,该第一地址标识还可以包括BIER头。也就是说,MPLS标签和BIER头对应于第一SA和所述第一DA。作为另一个示例,该第一地址标识包括第一SA和所述第一DA对应的第三IPv6头,第三IPv6头中的源地址SA字段中封装有第三IPv6地址。也就是说,第三IPv6地址对应于第一SA和第一DA。可选的,该第一地址标识还可以包括BIER头。作为另一个示例,该第一地址标识包括第一SA和所述第一DA对应的第四IPv6头,第四IPv6头中的目的地址DA字段中封装有第四IPv6地址。也就是说,第四IPv6地址对应于第一SA和第一DA。可选的,该第一地址标识还可以包括BIER头。
步骤950:所述第一网络设备向所述第二网络设备发送所述第一封装报文。
上述技术方案中,第一网络设备可以将接收到的第一报文中的第一IPv6头更新为第二IPv6头,该第一IPv6头中包括源地地址SA字段和目的地址DA字段,更新后的第二IPv6头中不包括源地址SA字段和目的地址DA字段,从而减小报文的封装开销。
下面结合不同的封装类型,对本申请实施例提供的方法的具体实现过程进行详细描述。
以对IPv6报文进行BIER-MPLS封装为例。结合图10,对报文封装和转发的具体实现方式进行详细描述。应理解,下面的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
图10所示的方法可以包括步骤1010-1060,下面分别对步骤1010-1060进行详细描述。
步骤1010:头节点A为各个组播流量分配上游MPLS标签。
头节点A可以动态地为各个组播流量分配对应的上游MPLS标签,具体的实现方式有多种。作为一个示例,本申请中头节点A可以动态地为同一个虚拟路由转发(virtualrouting forwarding,VRF)下所有的组播流量(S,G)分配相同的上游MPLS标签,例如,头节点A为VRF1分配的上游MPLS标签=1002。作为另一个示例,头节点A还可以为同一个VRF下的不同组播流量(S,G)分配不同的上游MPLS标签,例如,头节点A为VRF1下的组播流量(S1,G1)分配的上游MPLS标签=1001,为VRF1下的组播流量(S2,G2)分配的上游MPLS标签=1003。
需要说明的是,组播流量(S1,G1)中的S1用于表示头节点A向尾节点D/E/F发送的内层IPv6报文的IPv6头中的源地址(source address,SA),G1用于表示头节点A向尾节点D/E/F发送的内层IPv6报文的IPv6头中的目的地址(destination address,DA)。例如,SA=S1v6,DA=G1v6。
本申请实施例中,头节点A为各个组播流量分配好对应的上游MPLS标签之后,其本地可以保存第一表项,该第一表项包括组播流量与分配的上游MPLS标签之间的对应关系。可选地,该第一表项中还可以包括一个指示标志,该指示标志用于指示头节点A将内层IPv6报文中SA字段和DA字段删除。可选地,该第一表项中还可以包括上游MPLS标签的上下文,例如,为组播流量分配上游MPLS标签的头节点A的标识(A的IP地址和/或BFIR-ID)。可选地,该第一表项中还可以组播流量所属的VRF的标识,例如,该标识为VRF1。
应理解,组播流量所属的VRF的标识可以是VRF的名字,或者还可以是VRF的ID号的整数。作为示例而非限定,在报文发送的过程中,该VRF标识可以是满足协议要求的标识,例如,VRF标识为路由表(route-target)标识。
以头节点A为VRF1下的组播流量(S1v6,G1v6)分配的上游MPLS标签=1001为例,头节点A保存的一种可能的第一表项如下所示:
(BFIR-ID=头节点A的BFR-ID=4,上游MPLS标签=1001,VRF1标识,S1v6,G1v6,V6POPSD)
应理解,V6POPSD对应于上述的指示标志,用于指示节点A将内层IPv6报文的IPv6头中SA字段和DA字段删除。
为了便于描述,下文中以头节点A为VRF1下的组播流量(S1v6,G1v6)分配的上游MPLS标签=1001为例进行描述。
头节点A实现为各个组播流量分配对应的上游MPLS标签,并删除内层IPv6报文的IPv6头中的SA字段和DA字段的配置如下所示:
步骤1020:头节点A向尾节点传递第一表项。
头节点A可以通过边界网关协议(border gateway protocol,BGP)协议,以下也可以称为BGP-MVPN,将第一表项发送至尾节点D/E/F。
具体的,作为示例而非限定,头节点A可以通过BGP-MVPN的选择提供者组播服务接口自动发现(selective-provider multicast service interface auto-discovery,S-PMSI A-D)路由消息将第一表项发送至尾节点D/E/F。
可选地,在步骤1020之前,节点A/D/E/F之间可以相互建立BGP邻居关系。
步骤1030:尾节点保存第一表项。
以尾节点为节点E,VRF1标识为VRF1的route-target标识作为示例。尾节点E上对于VRF1配置有route-target标识。当尾节点E收到头节点A通过S-PMSI A-D路由消息发送的第一表项后,根据第一表项中VRF1标识为VRF1的route-target标识,确定和本地配置的route-target标识匹配,从而可以确定该S-PMSI A-D路由消息是对应本节点的VRF1。相应的,尾节点E可以保存S-PMSI A-D路由消息中包括的第一表项。
尾节点E保存的一种可能的第一表项如下所示:
(BFIR-ID=头节点A的BFR-ID=4,上游MPLS标签=1001,VRF1标识,S1v6,G1v6,V6POPSD)
应注意,在BIER-MPLS封装中,尾节点E在确定上述对应关系时,需要将上游MPLS标签和节点标识(称为上游标签的上下文(context))一起才能和VRF1对应。例如节点A和节点F可能都会向节点E发送S-PMSI A-D路由并携带各自分配的、但是值相同的上游MPLS标签Label=Lx,但它们各自分配的两个标签在节点E上分别代表VRF1和VRF2。节点E上收到上游MPLS标签为Lx的报文以后,需要确定该报文是来自于节点A还是节点F,再根据上游MPLS标签的节点标识(节点A的标识或节点F的标识)和标签值(Lx)确定报文属于哪个VRF。
步骤1040:尾节点接收CE设备发送的组播加入消息,并发送给头节点A。
尾节点D/E/F可以通过BGP-MVPN消息将组播加入消息发送给头节点A,该BGP-MVPN消息例如可以是组播路由(multicast route),或者还可以是叶子自动发现路由(leafauto-discovery,route,leaf A-D route)。
步骤1050:头节点A对从第一CE设备收到的IPv6报文进行封装,并发送至尾节点。
头节点A在收到尾节点D/E/F的组播加入消息之后,对从第一CE侧收到的IPv6报文进行封装。
具体的,头节点A可以根据IPv6报文的IPv6头中的SA=S1v6,DA=G1v6,以及本地保存的第一表项:(BFIR-ID=头节点A的BFR-ID=4,上游MPLS标签=1001,VRF1标识,S1v6,G1v6,V6POPSD),确定SA=S1v6,DA=G1v6对应的地址标识为BFIR-ID=4,上游MPLS标签=1001。在BIER-MPLS封装中,封装在IPv6报文外层的地址标识可以包括BIER头和上游MPLS标签,其中,BIER头中封装上游MPLS标签的上下文,例如,在BIER头中的BIFT-ID字段中封装节点的BFR-ID。因此,可以确定SA=S1v6,DA=G1v6对应的封装类型为BIER-MPLS封装。
头节点A可以根据第一表项IPv6头中的SA=S1v6,DA=G1v6对应的指示标志V6POPSD以及步骤1010中的配置,删除IPv6报文的IPv6头中的SA=S1v6字段和DA=G1v6字段,得到第二报文。
头节点A还可以根据SA=S1v6,DA=G1v6对应的地址标识,将BIER头以及上游MPLS标签=1001封装在第二报文的外层,其中,BIER头中的BIFT-ID=4,得到第一封装报文。该第一封装报文包括外层封装的地址标识和内层的第二报文。第一封装报文的格式请参见图11。
本申请实施例中头节点A可以将图11所示的第一封装报文发送至尾节点。
步骤1060:尾节点接收到头节点A发送的第一封装报文之后,解封装第一封装报文。
尾节点D/E/F接收到头节点A发送的如图11所示的第一封装报文之后,根据外层封装的地址标识为上游MPLS标签=1001,BIER头中的BIFT-ID=4,以及步骤1030中尾节点E保存的一种可能的第一表项:(BFIR-ID=头节点A的BFR-ID=4,上游MPLS标签=1001,VRF1标识,S1v6,G1v6,V6POPSD),确定上游MPLS标签=1001,BIER头中的BIFT-ID=4对应的IPv6头中的SA=S1v6,DA=G1v6。尾节点D/E/F可以将SA=S1v6,DA=G1v6填充到图11所示的第二报文中,使得第二报文中包括A=S1v6字段和DA=G1v6字段。
尾节点D/E/F剥掉第一封装报文外层的地址标识,并根据第二报文中的SA=S1v6字段和DA=G1v6字段,将包含SA=S1v6字段和DA=G1v6字段的第二报文发送至与其连接的用户侧。
本申请实施例中的BIER-MPLS封装报文如图11所示,第二报文中的IPv6头中不包括SA=S1v6字段和DA=G1v6字段,相比较于图7所示的封装报文,由于删除了IPv6头中SA字段和DA字段,因此,减小了SA字段和DA所占用的存储空间,从而减小了报文的封装开销。
下面以对IPv6报文进行MPLS封装为例。结合图12,对报文封装和转发的具体实现方式进行详细描述。应理解,下面的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
图12所示的方法可以包括步骤1210-1250,下面分别对步骤1210-1250进行详细描述。
为了便于描述,下面以尾节点为节点E作为示例进行说明。
步骤1210:尾节点E为各个组播流量分配对应的下游MPLS标签。
尾节点E可以动态地为各个组播流量分配对应的下游MPLS标签,具体的实现方式有多种。作为一个示例,本申请中尾节点E可以动态地为同一个VRF下所有的组播流量(S,G)分配相同的下游MPLS标签,例如,尾节点E为VRF1分配的下游MPLS标签=1002。作另一个示例,尾节点E还可以为同一个VRF下的不同组播流量(S,G)分配不同的下游MPLS标签,例如,尾节点E为VRF1下的组播流量(S1,G1)分配的下游MPLS标签=1004,为VRF1下的组播流量(S2,G2)分配的下游MPLS标签=1005。
本申请实施例中,尾节点E为各个组播流量分配好对应的下游MPLS标签之后,其本地可以保存第二表项,该第二表项包括组播流量与分配的下游MPLS标签之间的对应关系。可选地,该第二表项中还可以包括一个指示标志,该指示标志用于指示头节点A删除内层IPv6报文的IPv6头中的SA字段和DA字段。可选地,该第二表项中还可以组播流量所属的VRF的标识,例如,该标识为VRF1。
以尾节点E动态地为VRF1下的组播流量(S1v6,G1v6)分配的下游MPLS标签=1004为例,尾节点E保存的一种可能的第二表项如下所示:
(下游MPLS标签=1004,VRF1,S1v6,G1v6,V6POPSD)
应理解,V6POPSD对应于上述的指示标志,具体的有关指示标志请参考上文图10中的描述,此处不再赘述。
为了便于描述,下文中以尾节点E为VRF1下的组播流量(S1v6,G1v6)分配的下游MPLS标签=1004为例进行描述。
本申请实施例中尾节点E可以动态地为VRF下的组播流量分配对应的下游MPLS标签,其具体的配置如下所示:
步骤1220:尾节点E向头节点A传递第二表项。
尾节点E可以通过BGP协议(以下也可以称为BGP-MVPN)将步骤1210中的第二表项发送至头节点A。具体的,作为示例而非限定,尾节点E可以通过BGP-MVPN的Leaf A-D路由消息将第二表项发送至头节点A。
可选地,在步骤1220之前,节点A/D/E/F之间可以相互建立BGP邻居关系。
步骤1230:头节点A保存第二表项。
以VRF1标识为VRF1的route-target标识作为示例。头节点A上对于VRF1配置有route-target标识。当头节点A收到尾节点E通过Leaf A-D路由消息发送的第二表项后,根据第二表项中VRF1标识为VRF1的route-target标识,确定和本地配置的route-target标识匹配,从而可以确定该Leaf A-D路由消息是对应本节点的VRF1。相应的,头节点A可以保存Leaf A-D路由消息中包括的第二表项。
头节点A保存的一种可能的第二表项如下所示:
(下游MPLS标签=1004,VRF1,S1v6,G1v6,V6POPSD)
步骤1240:头节点A对从第一CE设备收到的IPv6报文进行封装,并发送至尾节点E。
头节点A在收到尾节点D/E/F的组播加入消息之后,对从第一CE侧收到的IPv6报文进行封装。
具体的,头节点A可以根据IPv6报文的IPv6头中的SA=S1v6,DA=G1v6,以及本地保存的第二表项:(下游MPLS标签=1004,VRF1,S1v6,G1v6,V6POPSD),确定SA=S1v6,DA=G1v6对应的地址标识为下游MPLS标签=1004。由于在MPLS封装中,封装在IPv6报文外层的地址标识可以是MPLS标签,因此,可以确定SA=S1v6,DA=G1v6对应的封装类型为MPLS封装。
头节点A可以根据第二表项IPv6头中的SA=S1v6,DA=G1v6对应的指示标志V6POPSD以及本地配置,删除IPv6报文的IPv6头中的SA=S1v6字段和DA=G1v6字段,得到第二报文。
头节点A还可以根据SA=S1v6,DA=G1v6对应的地址标识,将下游MPLS标签=1004封装在第二报文的外层的MPLS标签栈中,得到第二封装报文。该第二封装报文包括外层封装的地址标识和内层的第二报文。第二封装报文的格式请参见图13。
头节点A实现将内层IPv6报文的IPv6头中的SA字段和DA字段删除的配置如下所示:
本申请实施例中头节点A可以将图13所示的第二封装报文发送至尾节点E。
步骤1250:尾节点E接收到头节点A发送的第二封装报文之后,解封装第二封装报文。
尾节点E接收到头节点A发送的如图13所示的第二封装报文之后,根据外层封装的MPLS标签栈中包含下游MPLS标签=1004,以及步骤1210中尾节点E保存的一种可能的第二表项:(下游MPLS标签=1004,VRF1,S1v6,G1v6,V6POPSD),确定下游MPLS标签=1004对应的IPv6头中的SA=S1v6,DA=G1v6。尾节点E可以将SA=S1v6,DA=G1v6填充到图13所示的第二报文中,使得第二报文包括SA=S1v6字段和DA=G1v6字段。
尾节点E剥掉第二封装报文外层的地址标识,并根据第二报文中的SA=S1v6字段和DA=G1v6字段,将SA=S1v6字段和DA=G1v6字段的第二报文发送至与其连接的用户侧。
本申请实施例中的MPLS封装报文如图13所示,第二报文中的IPv6头中不包括SA=S1v6字段和DA=G1v6字段,相比较于图3所示的MPLS封装报文,由于删除了IPv6头中SA字段和DA字段,因此,减小了SA字段和DA字段所占用的存储空间,从而减小了报文的封装开销。
下面结合图14,以对IPv6报文进行BIERv6封装为例。对报文封装和转发的具体实现方式进行详细描述。应理解,下面的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
图14所示的方法可以包括步骤1410-1460,下面分别对步骤1410-1460进行详细描述。
步骤1410:头节点A为各个组播流量确定对应的第一IPv6地址。
本申请实施例中头节点A可以为各个组播流量(S,G)确定对应的第一IPv6地址,该第一IPv6地址可以填充在外层IPv6头中的源地址SA字段中。
本申请实施例中头节点A为各个组播流量确定对应的第一IPv6地址的具体实现方式有多种。作为一个示例,头节点A可以动态地从地址范围内为VRF下的组播流量分配对应的第一IPv6地址。作为另一个示例,可以提前在头节点A和尾节点上分别静态配置各个组播流量对应的第一IPv6地址。下面分别对上述两种实现方式进行详细描述。
以头节点A可以动态地从地址范围内为尾节点分配VRF下的组播流量对应的第一IPv6地址为例。头节点A中的配置如下所示:
应理解,作为一个示例,本申请中头节点A可以动态地为同一个VRF下所有的组播流量(S,G)分配相同的第一IPv6地址,例如,头节点A为VRF1分配的第一IPv6地址=2001:A:1:1::1001。作另一个示例,头节点A还可以为同一个VRF下的不同组播流量(S,G)分配不同的第一IPv6地址,例如,头节点A为VRF1下的组播流量(S1,G1)分配的第一IPv6地址=2001:A:1:1::1001,为VRF1下的组播流量(S2,G2)分配的第一IPv6地址=2001:A:1:1::1002。
为了便于描述,下文中以头节点A为VRF1下的组播流量(S1v6,G1v6)分配的第一IPv6地址=2001:A:1:1::1001为例进行描述。
以在头节点A和尾节点上分别静态配置各个组播流量对应的第一IPv6地址为例。头节点A和尾节点分别配置内层IPv6头中的源地址SA、目的地址DA与外层IPv6头中的第一IPv6地址之间的对应关系。例如,头节点A和尾节点分别配置外层IPv6头中的SA地址段、内层IPv6头中的DA地址段、内层IPv6头中的SA地址段、内层IPv6头中DA映射到外层IPv6头中DA的规则、内层IPv6头中SA映射到外层IPv6头中DA的规则。
作为示例而非限定,假设外层IPv6头中的SA地址段为2001:x:x:x::/64,内层IPv6头中DA地址段为FF05:y:y:y:y:y::/96,内层IPv6头中SA地址段为2002:z:z:z:z:z::/96,内层IPv6头中DA映射到外层IPv6头中SA的规则为:将内层IPv6头中DA地址段中后32bit映射到外层IPv6头中SA的[97-128]位,内层IPv6头中SA映射到外层IPv6头中SA的规则为:将内层IPv6头中SA地址段中后32bit映射到外层IPv6头中SA的[65-96]位。例如,内层IPv6头中的SA=2002:z:z:z:z:z:0000:0001,内层IPv6头中的DA=FF05:y:y:y:y:y:0000:0002。根据映射规则,头节点A根据内层IPv6头中的DA和SA确定为VRF1下的组播流量(S1,G1)对应的IPv6地址,即外层IPv6头中SA=2001:x:x:x:0000:0001:0000:0002。
本申请实施例中,头节点A为各个组播流量确定对应的第一IPv6地址之后,其本地可以保存第三表项,该第三表项包括组播流量与第一IPv6地址之间的对应关系。可选地,该第一表项中还可以包括一个指示标志,该指示标志用于指示头节点A将内层IPv6报文的IPv6头中的SA字段和DA字段删除。可选地,该第一表项中还可以组播流量所属的VRF的标识,例如,该标识为VRF1。可选地,该第一表项中还可以第一IPv6地址的上下文,例如,为组播流量确定对应的第一IPv6地址的头节点A的标识(A的IP地址和/或BFIR-ID)。
为了便于描述,下文中以头节点A为VRF1下的组播流量(S1,G1)分配的第一IPv6地址=2001:A:1:1::1001,S1为S1v6,G1为G1v6作为示例述。头节点A保存的一种可能的第三表项如下所示:
(BFIR-ID=头节点A的BFR-ID=4,第一IPv6地址=2001:A:1:1::1001,VRF1,S1v6,G1v6,V6POPSD)
步骤1420:头节点A向尾节点传递第三表项。
头节点A可以通过BGP协议,以下也可以称为BGP-MVPN,将第三表项发送至尾节点D/E/F。具体的,作为示例而非限定,头节点A可以通过BGP-MVPN的S-PMSI A-D路由消息将第三表项发送至尾节点D/E/F。
可选地,在步骤1420之前,节点A/D/E/F之间可以相互建立BGP邻居关系。
步骤1430:尾节点保存第三表项。
以尾节点为节点E,VRF1标识为VRF1的route-target标识作为示例。尾节点E上对于VRF1配置有route-target标识。当尾节点E收到头节点A通过S-PMSI A-D路由消息发送的第三表项后,根据第三表项中VRF1标识为VRF1的route-target标识,确定和本地配置的route-target标识匹配,从而可以确定该S-PMSI A-D路由消息是对应本节点的VRF1。相应的,尾节点E可以保存S-PMSI A-D路由消息中包括的第三表项。
尾节点E保存的一种可能的第三表项如下所示:
(BFIR-ID=头节点A的BFR-ID=4,第一IPv6地址=2001:A:1:1::1001,VRF1,S1v6,G1v6,V6POPSD)
应理解,使用第一Ipv6地址可以唯一标识一个VPN。例如节点A和节点F可能都会向节点D分别发送S-PMSI A-D route消息,该分别发送的S-PMSI A-D route消息携带的与VRF1对应的第一Ipv6地址各不相同。节点D根据报文中的第一Ipv6地址确定报文属于哪个VRF。
步骤1440:尾节点接收CE侧发送的组播加入消息,并发送给头节点A。
尾节点D/E/F可以通过BGP-MVPN消息发送给头节点A,该BGP-MVPN消息例如可以是C-multicast route,或者还可以是Leaf A-D route。
步骤1450:头节点A对从第一CE设备收到的IPv6报文进行封装,并发送至尾节点。
头节点A在收到尾节点D/E/F的组播加入消息之后,对从第一CE侧收到的IPv6报文进行封装。
具体的,头节点A可以根据IPv6报文的IPv6头中的SA=S1v6,DA=G1v6,以及本地保存的第三表项:(BFIR-ID=头节点A的BFR-ID=4,第一IPv6地址=2001:A:1:1::1001,VRF1,S1v6,G1v6,V6POPSD),确定SA=S1v6,DA=G1v6对应的地址标识为BFIR-ID=4,第一IPv6地址=2001:A:1:1::1001。由于在BIERv6封装中,封装在IPv6报文外层的地址标识可以包括外层IPv6头和IPv6扩展头,其中,外层IPv6头中的SA字段填充第一IPv6地址,IPv6扩展头中包含BIER头,BIER头中封装第一IPv6地址的上下文,例如,在BIER头中的BIFT-ID字段中封装节点的BFR-ID。因此,可以确定SA=S1v6,DA=G1v6对应的封装类型为BIERv6封装。
头节点A可以根据第一表项IPv6头中的SA=S1v6,DA=G1v6对应的指示标志V6POPSD以及步骤1410中的配置,删除IPv6报文的IPv6头中的SA=S1v6字段和DA=G1v6字段,得到第二报文。
头节点A还可以根据SA=S1v6,DA=G1v6对应的地址标识,将外层IPv6头和包括BIER头的IPv6扩展头封装在第二报文的外层,得到第三封装报文。具体的,可以将BFIR-ID=4填充在IPv6扩展头中的BIER头中,将第一IPv6地址=2001:A:1:1::1001填充在外层IPv6头中的SA字段,得到的第三封装报文的格式请参见图15。
本申请实施例中头节点A可以将图15所示的第三封装报文发送至尾节点。
步骤1460:尾节点接收到头节点A发送的第三封装报文之后,解封装第三封装报文。
尾节点D/E/F接收到头节点A发送的如图15所示的第三封装报文之后,根据外层封装的地址标识为第一IPv6地址=2001:A:1:1::1001,IPv6扩展头的BIER头中的BIFT-ID=4,以及步骤1430中尾节点E保存的一种可能的第三表项:(BFIR-ID=头节点A的BFR-ID=4,第一IPv6地址=2001:A:1:1::1001,VRF1,S1v6,G1v6,V6POPSD),确定第一IPv6地址=2001:A:1:1::1001,BIFT-ID=4对应的IPv6头中的SA=S1v6,DA=G1v6。尾节点D/E/F可以将SA=S1v6,DA=G1v6填充到图15所示的第二报文中,使得第二报文包括SA=S1v6字段和DA=G1v6字段。
尾节点D/E/F剥掉第一封装报文外层的地址标识,并根据第二报文中的SA=S1v6字段和DA=G1v6字段,将包括SA=S1v6字段和DA=G1v6字段的第二报文发送至与其连接的用户侧。
本申请实施例中的BIERv6封装报文如图15所示,第二报文中的IPv6头中不包括SA=S1v6字段和DA=G1v6字段,相比较于图8所示的封装报文,由于删除了IPv6头中SA字段和DA字段,因此,减小了SA字段和DA字段所占用的存储空间,从而减小了报文的封装开销。
下面以对IPv6报文进行IPv6封装为例。结合图16,对报文封装和转发的具体实现方式进行详细描述。应理解,下面的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
图16所示的方法可以包括步骤1610-1660,下面分别对步骤1610-1660进行详细描述。
应理解,为了便于描述,下面以尾节点为节点E为例进行说明。
步骤1610:尾节点E为各个组播流量确定对应的第二IPv6地址。
本申请实施例中尾节点E为各个组播流量确定对应的对应的第二IPv6地址,该第二IPv6地址可以填充在外层IPv6头中的目的地址DA字段中。
本申请实施例中尾节点E为各个组播流量确定对应的第二IPv6地址的具体实现方式有多种。作为一个示例,尾节点E可以动态地从地址范围内为VRF下的组播流量分配对应的第二IPv6地址。作为另一个示例,可以提前在头节点A和尾节点上分别静态配置各个组播流量对应的第二IPv6地址。下面分别对上述两种实现方式进行详细描述。
以尾节点E可以动态地从地址范围内为头节点A分配VRF下的组播流量对应的第二IPv6地址为例。尾节点E中的配置如下所示:
应理解,作为一个示例,本申请中尾节点E可以动态地为同一个VRF下所有的组播流量(S,G)分配相同的第二IPv6地址,例如,尾节点E为VRF1分配的第二IPv6地址=2001:E:1:1:0:1:0:1001。作另一个示例,尾节点E还可以为同一个VRF下的不同组播流量(S,G)分配不同的第二IPv6地址,例如,尾节点E为VRF1下的组播流量(S1,G1)分配的第二IPv6地址=2001:E:1:1:0:1:0:1001,为VRF1下的组播流量(S2,G2)分配的第二IPv6地址=2001:E:1:1:0:1:0:1002。
本申请实施例中,尾节点E为各个组播流量确定对应的第二IPv6地址之后,其本地可以保存第四表项,该第四表项包括组播流量与第二IPv6地址之间的对应关系。可选地,该第四表项中还可以包括一个指示标志,该指示标志用于指示头节点A将内层IPv6报文的IPv6头中的SA字段和DA字段删除。可选地,该第四表项中还可以组播流量所属的VRF的标识,例如,该标识为VRF1。
为了便于描述,下文中以尾节点E为VRF1下的组播流量(S1v6,G1v6)分配的第二IPv6地址=2001:E:1:1:0:1:0:1001为例进行描述。尾节点E保存的一种可能的第四表项如下所示:
(第二IPv6地址=2001:E:1:1:0:1:0:1001,VRF1,S1v6,G1v6,V6POPSD)
步骤1620:尾节点E向头节点A传递第四表项。
尾节点E可以通过BGP协议(以下也可以称为BGP-MVPN)将第四表项发送至头节点A。具体的,作为示例而非限定,尾节点E可以通过BGP-MVPN的Leaf A-D路由消息将将第四表项发送至头节点A。
可选地,在步骤1620之前,节点A/D/E/F之间可以相互建立BGP邻居关系。
步骤1630:头节点A保存第四表项。
以VRF1标识为VRF1的route-target标识作为示例。头节点A上对于VRF1配置有route-target标识。当头节点A收到尾节点E通过Leaf A-D路由消息发送的第四表项后,根据第四表项VRF1标识为VRF1的route-target标识,确定和本地配置的route-target标识匹配,可以确定该Leaf A-D路由消息是对应本节点的VRF1。相应的,头节点A可以根据Leaf A-D路由消息中包括的第四表项。
头节点A保存的一种可能的第四表项如下所示:
(第二IPv6地址=2001:E:1:1:0:1:0:1001,VRF1,S1v6,G1v6,V6POPSD)
步骤1640:头节点A对从第一CE设备收到的IPv6报文进行封装,并发送至尾节点E。
头节点A可以对从CE侧收到的IPv6报文进行封装。具体的,头节点A可以根据IPv6报文的IPv6头中的SA=S1v6,DA=G1v6,以及本地保存的第四表项:(第二IPv6地址=2001:E:1:1:0:1:0:1001,VRF1,S1v6,G1v6,V6POPSD),确定SA=S1v6,DA=G1v6对应的地址标识为第二IPv6地址=2001:E:1:1:0:1:0:1001。由于在IPv6封装中,封装在IPv6报文外层的地址标识可以为外层IPv6头,外层IPv6头中的DA字段填充第二IPv6地址。因此,可以确定SA=S1v6,DA=G1v6对应的封装类型为IPv6封装。
头节点A可以根据第四表项IPv6头中的SA=S1v6,DA=G1v6对应的指示标志V6POPSD以及步骤1410中的配置,删除IPv6报文的IPv6头中的SA=S1v6字段和DA=G1v6字段,得到第二报文。
头节点A还可以根据SA=S1v6,DA=G1v6对应的地址标识,将第二IPv6地址=2001:E:1:1:0:1:0:1001封装在外层IPv6头中的DA字段中,得到第四封装报文。该第四封装报文包括外层封装的地址标识和内层的第二报文。第四封装报文的格式请参见图17。
头节点A实现删除内层IPv6报文的IPv6头中的SA字段和DA字段的配置如下所示:
本申请实施例中头节点A可以将图17所示的第四封装报文发送至尾节点E。
步骤1650:尾节点E接收到头节点A发送的第四封装报文之后,解封装第四封装报文。
尾节点E接收到头节点A发送的如图17所示的第二封装报文之后,根据外层IPv6头的目的地址DA字段填充的是第二IPv6地址=2001:E:1:1:0:1:0:1001,以及步骤1610中尾节点E保存的一种可能的第四表项:(第二IPv6地址=2001:E:1:1:0:1:0:1001,VRF1,S1v6,G1v6,V6POPSD),确定第二IPv6地址=2001:E:1:1:0:1:0:1001对应的IPv6头中的SA=S1v6,DA=G1v6。尾节点E可以将SA=S1v6,DA=G1v6填充到图17所示的第二报文中,使得第二报文包括SA=S1v6字段和DA=G1v6字段。
尾节点E剥掉第二封装报文外层的地址标识,并根据第二报文中的SA=S1v6字段和DA=G1v6字段,将包含SA=S1v6字段和DA=G1v6字段的第二报文发送至与其连接的用户侧。
本申请实施例中的IPv6封装报文如图17所示,第二报文中的IPv6头中不包括SA=S1v6字段和DA=G1v6字段,相比较于图4所示的IPv6封装报文,由于删除了IPv6头中SA字段和DA字段,因此,减小了SA字段和DA字段所占用的存储空间,从而减小了报文的封装开销。
还需要说明的是,本申请实施例中提供的方法同样适用单播或者未使用BGP消息的场景,只要头尾节点上分别建立上述表项即可。
上文结合图1至图17,详细描述了本申请实施例提供的方法,下面将结合图18至图20,详细描述本申请的装置的实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图18是本申请实施例提供的一种第一网络设备1800的示意性结构图。图18所示的该第一网络设备1800可以执行上述实施例的方法中第一网络设备执行的相应步骤。所述第一网络设备1800是MVPN中的入口节点,所述MVPN还包括第二网络设备。如图18所示,所述第一网络设备1800包括接收模块1810,确定模块1820,更新模块1830,封装模块1840,发送模块1850。
接收模块1810,用于接收第一用户边缘CE设备发送的第一报文,所述第一报文包括第一互联网协议第六版IPv6头和第一载荷,所述第一IPv6头中包括第一源地址SA和第一目的地址DA;
确定模块1820,用于根据第一表项确定所述第一SA和所述第一DA对应的第一地址标识,所述第一表项包括所述第一SA和所述第一DA与所述第一地址标识之间的对应关系,所述第一地址标识用于指示所述第一SA和所述第一DA;
更新模块1830,用于将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到第二报文,所述第二IPv6头不包括所述第一SA字段和所述第一DA字段,其中,第一SA字段的值和所述第一SA的值相同,所述第一DA字段的值和所述第一DA的值相同;
封装模块1840,用于根据所述第一地址标识封装所述第二报文,得到第一封装报文,所述第一封装报文包括所述第一地址标识,所述第一地址标识位于所述第二报文的外层。
发送模块1850,用于向所述第二网络设备发送所述第一封装报文。
可选的,所述第一表项中还包括第一指示标志,所述第一指示标志用于指示所述第一网络设备将所述第一IPv6头更新为所述第二IPv6头,
所述更新模块具体用于:根据所述第一指示标志,将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到所述第二报文。
可选的,所述第一地址标识包括第一多协议标签交换MPLS。
可选的,所述第一地址标识还包括基于位索引显示复制BIER头。
可选的,所述第一地址标识包括第三IPv6头,所述第三IPv6头中的SA字段中封装有第三IPv6地址,所述第三IPv6地址与所述第一SA和所述第一DA对应。
可选的,所述第一地址标识包括第四IPv6头,所述第四IPv6头中的DA字段中封装有第四IPv6地址,所述第四IPv6地址与所述第一SA和所述第一DA对应。
可选的,所述第一地址标识还包括IPv6扩展头,所述IPv6扩展头中包括BIER头。
可选的,所述发送模块1850还用于:向所述第二网络设备发送所述第一表项。
可选的,所述第一网络设备1800还包括:
分配模块1860,用于为所述第一SA和所述第一DA分配对应的所述第一地址标识。
可选的,所述接收模块1810还用于:接收所述第二网络设备发送的所述第一表项。
可选的,所述第一表项中还包括所述第一SA和所述第一DA对应的虚拟路由转发VRF标识。
图19是本申请实施例提供的一种第二网络设备1900的示意性结构图。图19所示的该第二网络设备1900可以执行上述实施例的方法中第二网络设备执行的相应步骤。所述第二网络设备1900是MVPN中的出口节点,所述MVPN还包括第一网络设备。如图19所示,所述第二网络设备1900包括接收模块1910,确定模块1920,更新模块1930,发送模块1940。
接收模块1910,用于接收所述第一网络设备发送的第一封装报文,其中,所述第一封装报文包括第二报文和第一地址标识,所述第一地址标识位于所述第二报文的外层,所述第二报文包括第二IPv6头和第一载荷,所述第二IPv6头不包括第一SA字段和第一DA字段;
确定模块1920,用于根据第一表项确定所述第一地址标识对应的所述第一SA和所述第一DA,所述第一表项包括所述第一SA和所述第一DA与所述第一地址标识之间的对应关系,所述第一地址标识用于指示所述第一SA和所述第一DA,所述第一SA的值和所述第一SA字段的值相同,所述第一DA的值和所述第一DA字段的值相同;
更新模块1930,用于将所述第二IPv6头更新为第一IPv6头,得到第一报文,所述第一IPv6头中包括所述第一SA字段和所述第一DA字段;
发送模块1940,用于根据所述第一IPv6头中所述第一SA字段和所述第一DA字段,将所述第一报文中的第一载荷发送至第二用户边缘CE设备。
可选的,所述第一表项中还包括所述第一SA和所述第一DA对应的第一指示标志,所述第一指示标志用于指示所述第一网络设备将所述第一IPv6头更新为所述第二IPv6头,所述第二网络设备根据所述第一指示标志,将所述第二IPv6头更新为第一IPv6头,得到所述第一报文。
可选的,所述第一地址标识包括第一多标签协议交换MPLS。
可选的,所述第一地址标识还包括基于位索引的显示复制BIER头。
可选的,所述第一地址标识包括第三IPv6头,所述第三IPv6头中的源地址SA字段中封装有第三IPv6地址,所述第三IPv6地址与所述第一SA和所述第一DA对应。
可选的,所述第一地址标识包括第四IPv6头,所述第四IPv6头中的目的地址DA字段中封装有第四IPv6地址,所述第四IPv6地址与所述第一SA和所述第一DA对应。
可选的,所述第一地址标识还包括IPv6扩展头,所述IPv6扩展头中包括BIER头。
可选的,所述接收模块1910还用于:接收所述第一网络设备发送的所述第一表项。
可选的,所述发送模块1940还用于:向所述第一网络设备发送所述第一表项。
可选的,所述第二网络设备1900还包括:分配模块1950,用于为所述第一SA和所述第一DA分配对应的所述第一地址标识。
可选的,所述第一表项中还包括所述第一SA和所述第一DA对应的虚拟路由转发VRF标识。
图20是本申请实施例的第一网络设备2000的硬件结构示意图。图20所示第一网络设备2000可以执行上述实施例的方法中第一网络设备执行的相应步骤。
如图20所示,所述第一网络设备2000包括处理器2001、存储器2002、接口2003和总线2004。其中接口2003可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2001、存储器2002和接口2003通过总线2004连接。
所述接口2003具体可以包括发送器和接收器,用于第一网络设备与上述实施例中的第二网络设备以及第一CE设备之间收发信息。例如,所述接口2003用于支持接收所述第一用户边缘CE设备发送的第一报文。又例如,所述接口2003用于向所述第二网络设备发送所述第一封装报文。再例如,所述接口2003用于向所述第二网络设备发送所述第一表项。作为举例,所述接口2003用于支持图9中的步骤910和步骤950。所述处理器2001用于执行上述实施例中由第一网络设备进行的处理。例如,所述处理器2001用于根据第一表项确定所述第一SA和所述第一DA对应的第一地址标识;将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到第二报文;根据所述第一地址标识封装所述第二报文,得到第一封装报文;和/或用于本文所描述的技术的其他过程。作为举例,所述处理器2001用于支持图9中的步骤920、步骤930和步骤940。存储器2002包括操作系统20021和应用程序20022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第一网络设备的处理过程。可选的,所述存储器2002可以包括只读存储器(read-onlymemory,ROM)和随机存取存储器(random access memory,RAM)。其中,所述ROM包括基本输入/输出系统(basic input/output system,BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第一网络设备2000时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备2000进入正常运行状态。在第一网络设备2000进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法实施例中涉及第一网络设备2000的处理过程。
可以理解的是,图20仅仅示出了第一网络设备2000的简化设计。在实际应用中,第一网络设备可以包含任意数量的接口,处理器或者存储器。
图21为本申请实施例的另一种第一网络设备2100的硬件结构示意图。图21所示的第一网络设备2100可以执行上述实施例的方法中第一网络设备执行的相应步骤。
如图21所述,第一网络设备2100包括:主控板2110、接口板2130、交换网板2120和接口板2140。主控板2110、接口板2130和2140,以及交换网板2120之间通过系统总线与系统背板相连实现互通。其中,主控板2110用于完成系统管理、设备维护、协议处理等功能。交换网板2120用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2130和2140用于提供各种业务接口(例如,POS接口、GE接口、ATM接口等),并实现数据包的转发。
接口板2130可以包括中央处理器2131、转发表项存储器2134、物理接口卡2133和网络处理器2132。其中,中央处理器2131用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2134用于保存表项,例如,上文中的第一表项、第二表项、第三表项、第四表项。物理接口卡2133用于完成流量的接收和发送。网络存储器2132用于根据所述表项控制物理接口卡2133收发流量。
具体的,物理接口卡2133用于接收所述第一用户边缘CE设备发送的第一报文,物理接口卡2133接收到所述第一用户边缘CE设备发送的第一报文后,将所述第一报文由经由中央处理器2131发送到中央处理器2111,中央处理器2111处理所述第一报文。
中央处理器2111还用于根据根据第一表项确定所述第一SA和所述第一DA对应的第一地址标识。中央处理器2111还用于将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到第二报文。中央处理器2111还用于根据所述第一地址标识封装所述第二报文,得到第一封装报文。
中央处理器2111还用于控制网络存储器2132获取转发表项存储器2134中的第一表项,并且,中央处理器2131还用于控制网络存储器2132经由物理接口卡2133向所述第一网络设备发送第一报文。中央处理器2131还用于控制网络存储器2132经由物理接口卡2133向所述第二网络设备发送所述第一表项。
应理解,本申请实施例中接口板2140上的操作与所述接口板2130的操作一致,为了简洁,不再赘述。应理解,本实施例的第一网络设备2100可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。
此外,需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第一网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第一网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,第一网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第一网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
图22是本申请实施例的第二网络设备2200的硬件结构示意图。图22所示第二网络设备2200可以执行上述实施例的方法中第二网络设备执行的相应步骤。
如图22所示,所述第二网络设备2200包括处理器2201、存储器2202、接口2203和总线2204。其中接口2203可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2201、存储器2202和接口2203通过总线2204连接。
所述接口2203具体可以包括发送器和接收器,用于第二网络设备与上述实施例中的第一网络设备以及第二CE设备之间收发信息。例如,所述接口2203用于支持接收所述第一网络设备发送的第一封装报文。又例如,所述接口2203用于根据所述第一IPv6头中所述第一SA和所述第一DA字段,将所述第一报文中的第一载荷发送至第二用户边缘CE设备。所述处理器2201用于执行上述实施例中由第二网络设备进行的处理。例如,所述处理器2201用于根据根据第一表项确定所述第一地址标识对应的第一SA和第一DA;将所述第二IPv6头更新为第一IPv6头,得到第一报文;和/或用于本文所描述的技术的其他过程。存储器2202包括操作系统22021和应用程序22022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第二网络设备的处理过程。可选的,所述存储器2202可以包括只读存储器(read-only memory,ROM)和随机存取存储器(randomaccess memory,RAM)。其中,所述ROM包括基本输入/输出系统(basic input/outputsystem,BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第二网络设备2200时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第二网络设备2200进入正常运行状态。在第二网络设备2200进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法实施例中涉及第二网络设备2200的处理过程。
可以理解的是,图22仅仅示出了第二网络设备2200的简化设计。在实际应用中,第二网络设备可以包含任意数量的接口,处理器或者存储器。
图23为本申请实施例的另一种第二网络设备2300的硬件结构示意图。图23所示的第二网络设备230可以执行上述实施例的方法中第二网络设备执行的相应步骤。
如图23所述,第二网络设备230包括:主控板2310、接口板2330、交换网板2320和接口板2340。主控板2310、接口板2330和2340,以及交换网板2320之间通过系统总线与系统背板相连实现互通。其中,主控板2310用于完成系统管理、设备维护、协议处理等功能。交换网板2320用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2330和2340用于提供各种业务接口(例如,POS接口、GE接口、ATM接口等),并实现数据包的转发。
接口板2330可以包括中央处理器2331、转发表项存储器2334、物理接口卡2333和网络处理器2332。其中,中央处理器2331用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2334用于保存表项,例如,上文中的第一表项、第二表项、第三表项、第四表项。物理接口卡2333用于完成流量的接收和发送。网络存储器2332用于根据所述表项控制物理接口卡2333收发流量。
具体的,物理接口卡2333用于接收所述第一网络设备发送的第一封装报文,物理接口卡2333接收到所述第一网络设备发送的第一封装报后,将所述第一封装报文经由中央处理器2331发送到中央处理器2311,中央处理器2311处理所述第一封装报文。
中央处理器2311还用于根据第一表项确定所述第一地址标识对应的第一SA和第一DA;中央处理器2311还用于将所述第二IPv6头更新为第一IPv6头,得到第一报文。
中央处理器2311还用于控制网络存储器2332获取转发表项存储器2334中的第一表项,并且,中央处理器2331还用于控制网络存储器2332经由物理接口卡2333向所述第二网络设备发送第一封装报。中央处理器2331还用于控制网络存储器2332经由物理接口卡2333向所述第二用户边缘CE设备发送第一报文中的第一载荷发送至第二用户边缘CE设备。
应理解,本申请实施例中接口板2340上的操作与所述接口板2330的操作一致,为了简洁,不再赘述。应理解,本实施例的第二网络设备2300可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。
此外,需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第二网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第二网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,第二网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第二网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
本申请实施例还提供了计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行上述任一方面的任意可能的实现方式中的方法的指令。该可读介质可以是只读存储器(read-only memory,ROM)或随机存取存储器(random access memory,RAM),本申请实施例对此不做限制。
本申请实施例还提供了一种计算机程序产品,应用于第一网络设备或第二网络设备中,该计算机程序产品包括:计算机程序代码,当该计算机程序代码被计算机运行时,使得该计算机执行上述任一方面的任意可能的实现方式中的方法。
本申请实施例还提供了一种芯片系统,应用于第一网络设备或第二网络设备中,该芯片系统包括:至少一个处理器、至少一个存储器和接口电路,所述接口电路负责所述芯片系统与外界的信息交互,所述至少一个存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述至少一个处理器执行,以进行上述各个方面的所述的方法中所述第一网络设备或第二网络设备的操作。
本申请实施例还提供了一种计算机程序产品,应用于第一网络设备或第二网络设备中,所述计算机程序产品包括一系列指令,当所述指令被运行时,以进行上述各个方面的所述的方法中所述第一网络设备或第二网络设备的操作。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (40)
1.一种报文的发送方法,其特征在于,所述方法应用于组播虚拟专用网络MVPN,所述MVPN包括第一网络设备和第二网络设备,所述第一网络设备是所述MVPN的入口节点设备,所述第二网络设备是所述MVPN的出口节点设备,所述方法包括:
所述第一网络设备接收第一用户边缘CE设备发送的第一报文,所述第一报文包括第一互联网协议第六版IPv6头和第一载荷,所述第一IPv6头中包括第一源地址SA和第一目的地址DA;
所述第一网络设备根据第一表项确定所述第一SA和所述第一DA对应的第一地址标识,所述第一表项包括所述第一SA和所述第一DA与所述第一地址标识之间的对应关系,所述第一地址标识用于指示所述第一SA和所述第一DA;
所述第一网络设备将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到第二报文,所述第二IPv6头不包括第一SA字段和第一DA字段,其中,第一SA字段的值和所述第一SA的值相同,所述第一DA字段的值和所述第一DA的值相同;
所述第一网络设备根据所述第一地址标识封装所述第二报文,得到第一封装报文,所述第一封装报文包括所述第一地址标识,所述第一地址标识位于所述第二报文的外层;
所述第一网络设备向所述第二网络设备发送所述第一封装报文。
2.根据权利要求1所述的方法,其特征在于,所述第一表项中还包括第一指示标志,所述第一指示标志用于指示所述第一网络设备将所述第一IPv6头更新为所述第二IPv6头,
所述第一网络设备将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到第二报文,包括:
所述第一网络设备根据所述第一指示标志,将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到所述第二报文。
3.根据权利要求1或2所述的方法,其特征在于,所述第一地址标识包括第一多协议标签交换MPLS。
4.根据权利要求3所述的方法,其特征在于,所述第一地址标识还包括基于位索引显示复制BIER头。
5.根据权利要求1或2所述的方法,其特征在于,所述第一地址标识包括第三IPv6头,所述第三IPv6头中的SA字段中封装有第三IPv6地址,所述第三IPv6地址与所述第一SA和所述第一DA对应。
6.根据权利要求1或2所述的方法,其特征在于,所述第一地址标识包括第四IPv6头,所述第四IPv6头中的DA字段中封装有第四IPv6地址,所述第四IPv6地址与所述第一SA和所述第一DA对应。
7.根据权利要求1或2所述的方法,其特征在于,所述第一地址标识还包括IPv6扩展头,所述IPv6扩展头中包括BIER头。
8.根据权利要求1或2所述的方法,其特征在于,在所述第一网络设备向所述第二网络设备发送所述第一表项之前,所述方法还包括:
所述第一网络设备为所述第一SA和所述第一DA分配对应的所述第一地址标识。
9.根据权利要求1或2所述的方法,其特征在于,所述第一表项中还包括所述第一SA和所述第一DA对应的虚拟路由转发VRF标识。
10.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述第一网络设备向所述第二网络设备发送所述第一表项。
11.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述第一网络设备接收所述第二网络设备发送的所述第一表项。
12.一种报文的发送方法,其特征在于,所述方法应用于组播虚拟专用网络MVPN,所述MVPN包括第一网络设备和第二网络设备,所述第一网络设备是所述MVPN的入口节点设备,所述第二网络设备是所述MVPN的出口节点设备,所述方法包括:
所述第二网络设备接收所述第一网络设备发送的第一封装报文,其中,所述第一封装报文包括第二报文和第一地址标识,所述第一地址标识位于所述第二报文的外层,所述第二报文包括第二IPv6头和第一载荷,所述第二IPv6头不包括第一SA字段和第一DA字段;
所述第二网络设备根据第一表项确定所述第一地址标识对应的第一SA和第一DA,所述第一表项包括所述第一SA和所述第一DA与所述第一地址标识之间的对应关系,所述第一地址标识用于指示所述第一SA和所述第一DA,所述第一SA的值和所述第一SA字段的值相同,所述第一DA的值和所述第一DA字段的值相同;
所述第二网络设备将所述第二IPv6头更新为第一IPv6头,得到第一报文,所述第一IPv6头中包括所述第一SA字段和所述第一DA字段;
所述第二网络设备根据所述第一IPv6头中所述第一SA和所述第一DA字段,将所述第一报文中的第一载荷发送至第二用户边缘CE设备。
13.根据权利要求12所述的方法,其特征在于,所述第一表项中还包括所述第一SA和所述第一DA对应的第一指示标志,所述第一指示标志用于指示所述第一网络设备将所述第一IPv6头更新为所述第二IPv6头,
所述第二网络设备将所述第二IPv6头更新为第一IPv6头,得到第一报文,包括:
所述第二网络设备根据所述第一指示标志,将所述第二IPv6头更新为第一IPv6头,得到所述第一报文。
14.根据权利要求12或13所述的方法,其特征在于,所述第一地址标识包括第一多标签协议交换MPLS。
15.根据权利要求14所述的方法,其特征在于,所述第一地址标识还包括基于位索引的显示复制BIER头。
16.根据权利要求12或13所述的方法,其特征在于,所述第一地址标识包括第三IPv6头,所述第三IPv6头中的源地址SA字段中封装有第三IPv6地址,所述第三IPv6地址与所述第一SA和所述第一DA对应。
17.根据权利要求12或13所述的方法,其特征在于,所述第一地址标识包括第四IPv6头,所述第四IPv6头中的目的地址DA字段中封装有第四IPv6地址,所述第四IPv6地址与所述第一SA和所述第一DA对应。
18.根据权利要求12或13所述的方法,其特征在于,所述第一地址标识还包括IPv6扩展头,所述IPv6扩展头中包括BIER头。
19.根据权利要求12或13所述的方法,其特征在于,在所述第二网络设备向所述第一网络设备发送所述第一表项之前,所述方法还包括:
所述第二网络设备为所述第一SA和所述第一DA分配对应的所述第一地址标识。
20.根据权利要求12或13所述的方法,其特征在于,所述第一表项中还包括所述第一SA和所述第一DA对应的虚拟路由转发VRF标识。
21.根据权利要求12或13所述的方法,其特征在于,所述方法还包括:
所述第二网络设备接收所述第一网络设备发送的所述第一表项。
22.根据权利要求12或13所述的方法,其特征在于,所述方法还包括:
所述第二网络设备向所述第一网络设备发送所述第一表项。
23.一种第一网络设备,其特征在于,所述第一网络设备是组播虚拟专用网络MVPN的入口节点设备,所述第一网络设备包括:
接收模块,用于接收第一用户边缘CE设备发送的第一报文,所述第一报文包括第一互联网协议第六版IPv6头和第一载荷,所述第一IPv6头中包括第一源地址SA和第一目的地址DA;
确定模块,用于根据第一表项确定所述第一SA和所述第一DA对应的第一地址标识,所述第一表项包括所述第一SA和所述第一DA与所述第一地址标识之间的对应关系,所述第一地址标识用于指示所述第一SA和所述第一DA;
更新模块,用于将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到第二报文,所述第二IPv6头不包括第一SA字段和第一DA字段,其中,第一SA字段的值和所述第一SA的值相同,所述第一DA字段的值和所述第一DA的值相同;
封装模块,用于根据所述第一地址标识封装所述第二报文,得到第一封装报文,所述第一封装报文包括所述第一地址标识,所述第一地址标识位于所述第二报文的外层;
发送模块,用于向第二网络设备发送所述第一封装报文,其中,所述第二网络设备是所述MVPN的出口节点设备。
24.根据权利要求23所述的第一网络设备,其特征在于,所述第一表项中还包括第一指示标志,所述第一指示标志用于指示所述第一网络设备将所述第一IPv6头更新为所述第二IPv6头,
所述更新模块具体用于:根据所述第一指示标志,将所述第一报文中的所述第一IPv6头更新为第二IPv6头,得到所述第二报文。
25.根据权利要求23或24所述的第一网络设备,其特征在于,所述第一地址标识包括第一多协议标签交换MPLS。
26.根据权利要求25所述的第一网络设备,其特征在于,所述第一地址标识还包括基于位索引显示复制BIER头。
27.根据权利要求23或24所述的第一网络设备,其特征在于,所述第一地址标识包括第三IPv6头,所述第三IPv6头中的SA字段中封装有第三IPv6地址,所述第三IPv6地址与所述第一SA和所述第一DA对应。
28.根据权利要求23或24所述的第一网络设备,其特征在于,所述第一地址标识包括第四IPv6头,所述第四IPv6头中的DA字段中封装有第四IPv6地址,所述第四IPv6地址与所述第一SA和所述第一DA对应。
29.根据权利要求23或24所述的第一网络设备,其特征在于,所述第一地址标识还包括IPv6扩展头,所述IPv6扩展头中包括BIER头。
30.根据权利要求23或24所述的第一网络设备,其特征在于,所述第一网络设备还包括:
分配模块,用于为所述第一SA和所述第一DA分配对应的所述第一地址标识。
31.根据权利要求23或24所述的第一网络设备,其特征在于,所述第一表项中还包括所述第一SA和所述第一DA对应的虚拟路由转发VRF标识。
32.一种第二网络设备,其特征在于,所述第二网络设备是组播虚拟专用网络MVPN的出口节点设备,所述第二网络设备包括:
接收模块,用于接收第一网络设备发送的第一封装报文,其中,所述第一封装报文包括第二报文和第一地址标识,所述第一地址标识位于所述第二报文的外层,所述第二报文包括第二IPv6头和第一载荷,所述第二IPv6头不包括第一SA字段和第一DA字段,所述第一网络设备是所述MVPN的入口节点设备;
确定模块,用于根据第一表项确定所述第一地址标识对应的第一SA和第一DA,所述第一表项包括所述第一SA和所述第一DA与所述第一地址标识之间的对应关系,所述第一地址标识用于指示所述第一SA和所述第一DA,所述第一SA的值和所述第一SA字段的值相同,所述第一DA的值和所述第一DA字段的值相同;
更新模块,用于将所述第二IPv6头更新为第一IPv6头,得到第一报文,所述第一IPv6头中包括所述第一SA字段和所述第一DA字段;
发送模块,用于根据所述第一IPv6头中所述第一SA和所述第一DA字段,将所述第一报文中的第一载荷发送至第二用户边缘CE设备。
33.根据权利要求32所述的第二网络设备,其特征在于,所述第一表项中还包括所述第一SA和所述第一DA对应的第一指示标志,所述第一指示标志用于指示所述第一网络设备将所述第一IPv6头更新为所述第二IPv6头,
所述更新模块具体用于:根据所述第一指示标志,将所述第二IPv6头更新为第一IPv6头,得到所述第一报文。
34.根据权利要求32或33所述的第二网络设备,其特征在于,所述第一地址标识包括第一多标签协议交换MPLS。
35.根据权利要求34所述的第二网络设备,其特征在于,所述第一地址标识还包括基于位索引的显示复制BIER头。
36.根据权利要求32或33所述的第二网络设备,其特征在于,所述第一地址标识包括第三IPv6头,所述第三IPv6头中的源地址SA字段中封装有第三IPv6地址,所述第三IPv6地址与所述第一SA和所述第一DA对应。
37.根据权利要求32或33所述的第二网络设备,其特征在于,所述第一地址标识包括第四IPv6头,所述第四IPv6头中的目的地址DA字段中封装有第四IPv6地址,所述第四IPv6地址与所述第一SA和所述第一DA对应。
38.根据权利要求32或33所述的第二网络设备,其特征在于,所述第一地址标识还包括IPv6扩展头,所述IPv6扩展头中包括BIER头。
39.根据权利要求32或33所述的第二网络设备,其特征在于,所述第二网络设备还包括:
分配模块,用于为所述第一SA和所述第一DA分配对应的所述第一地址标识。
40.根据权利要求32或33所述的第二网络设备,其特征在于,所述第一表项中还包括所述第一SA和所述第一DA对应的虚拟路由转发VRF标识。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910874831.4A CN112532563B (zh) | 2019-09-17 | 2019-09-17 | 报文的发送方法和装置 |
PCT/CN2020/115702 WO2021052381A1 (zh) | 2019-09-17 | 2020-09-16 | 报文的发送方法和装置 |
EP20866716.2A EP4024807A4 (en) | 2019-09-17 | 2020-09-16 | METHOD OF SENDING MESSAGE AND DEVICE |
US17/695,488 US20220200820A1 (en) | 2019-09-17 | 2022-03-15 | Packet Sending Method and Apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910874831.4A CN112532563B (zh) | 2019-09-17 | 2019-09-17 | 报文的发送方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112532563A CN112532563A (zh) | 2021-03-19 |
CN112532563B true CN112532563B (zh) | 2022-04-05 |
Family
ID=74884311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910874831.4A Active CN112532563B (zh) | 2019-09-17 | 2019-09-17 | 报文的发送方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220200820A1 (zh) |
EP (1) | EP4024807A4 (zh) |
CN (1) | CN112532563B (zh) |
WO (1) | WO2021052381A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113595912B (zh) * | 2021-07-05 | 2022-11-11 | 北京邮电大学 | 5GLAN中基于IPv6扩展报头的一对多通信方法及装置 |
US20240031326A1 (en) * | 2022-07-21 | 2024-01-25 | Tailscale Inc. | Management of communications for overlapping subnets using ipv6 addressing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459606A (zh) * | 2008-12-31 | 2009-06-17 | 华为技术有限公司 | 一种组播虚拟私有网络的外联网组网方法、系统和装置 |
CN102170389A (zh) * | 2010-02-26 | 2011-08-31 | 中兴通讯股份有限公司 | 数据报文传输方法及接入设备 |
WO2013056447A1 (zh) * | 2011-10-20 | 2013-04-25 | 华为技术有限公司 | 用于发送和接收IPv6数据包的方法和装置 |
CN108696492A (zh) * | 2017-04-12 | 2018-10-23 | 联芯科技有限公司 | Ip报文的处理方法与装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10147755B4 (de) * | 2001-09-27 | 2004-06-17 | Siemens Ag | Verfahren und Vorrichtungen zur Header-Kompression in paketorientierten Netzwerken |
US7894458B2 (en) * | 2004-04-28 | 2011-02-22 | Beijing Jiaxun Feihong Electrical Co., Ltd. | System and communication method of IP telecommunication network and its application |
US7570604B1 (en) * | 2004-08-30 | 2009-08-04 | Juniper Networks, Inc. | Multicast data trees for virtual private local area network (LAN) service multicast |
US8379623B2 (en) * | 2007-07-10 | 2013-02-19 | Motorola Solutions, Inc. | Combining mobile VPN and internet protocol |
US7894450B2 (en) * | 2007-12-31 | 2011-02-22 | Nortel Network, Ltd. | Implementation of VPNs over a link state protocol controlled ethernet network |
US8339973B1 (en) * | 2010-09-07 | 2012-12-25 | Juniper Networks, Inc. | Multicast traceroute over MPLS/BGP IP multicast VPN |
US10506083B2 (en) * | 2017-06-27 | 2019-12-10 | Cisco Technology, Inc. | Segment routing gateway storing segment routing encapsulating header used in encapsulating and forwarding of returned native packet |
-
2019
- 2019-09-17 CN CN201910874831.4A patent/CN112532563B/zh active Active
-
2020
- 2020-09-16 EP EP20866716.2A patent/EP4024807A4/en active Pending
- 2020-09-16 WO PCT/CN2020/115702 patent/WO2021052381A1/zh unknown
-
2022
- 2022-03-15 US US17/695,488 patent/US20220200820A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459606A (zh) * | 2008-12-31 | 2009-06-17 | 华为技术有限公司 | 一种组播虚拟私有网络的外联网组网方法、系统和装置 |
CN102170389A (zh) * | 2010-02-26 | 2011-08-31 | 中兴通讯股份有限公司 | 数据报文传输方法及接入设备 |
WO2013056447A1 (zh) * | 2011-10-20 | 2013-04-25 | 华为技术有限公司 | 用于发送和接收IPv6数据包的方法和装置 |
CN108696492A (zh) * | 2017-04-12 | 2018-10-23 | 联芯科技有限公司 | Ip报文的处理方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
US20220200820A1 (en) | 2022-06-23 |
EP4024807A4 (en) | 2022-11-02 |
CN112532563A (zh) | 2021-03-19 |
WO2021052381A1 (zh) | 2021-03-25 |
EP4024807A1 (en) | 2022-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110784411B (zh) | 建立bier转发表项的方法、装置和系统 | |
CN111147383B (zh) | 报文转发的方法、发送报文的装置和接收报文的装置 | |
EP4231597A1 (en) | Method for forwarding bier message, and device and system | |
JPWO2006095508A1 (ja) | フラッディング抑制方法 | |
CN112511444A (zh) | 一种组播流量传输方法、装置、通信节点及存储介质 | |
CN113114576B (zh) | 报文发送的方法、设备和系统 | |
CN114465920B (zh) | 确定对应关系的方法、装置以及系统 | |
CN110474829B (zh) | 传输报文的方法和装置 | |
CN108429680A (zh) | 一种基于虚拟私有云的路由配置方法、系统、介质及设备 | |
US20220200820A1 (en) | Packet Sending Method and Apparatus | |
CN113973082A (zh) | 一种报文处理方法及网络设备 | |
US20210359879A1 (en) | Packet forwarding method and network device | |
US20230155930A1 (en) | Packet Processing Method and Network Device | |
CN112822097A (zh) | 报文转发的方法、第一网络设备以及第一设备组 | |
KR20230017324A (ko) | Bier 멀티캐스트 트래픽 통계 수집 방법, 디바이스 및 시스템 | |
CN108768845B (zh) | 一种多归属主机路由同步方法及装置 | |
JP7273125B2 (ja) | BIERv6パケットを送信するための方法および第1のネットワークデバイス | |
WO2021129023A1 (zh) | 报文发送的方法、设备和系统 | |
CN113285878B (zh) | 负载分担的方法、第一网络设备 | |
JP2024504845A (ja) | パケット処理方法および関連装置 | |
CN114598644A (zh) | Bier报文转发的方法、设备以及系统 | |
CN114006780A (zh) | 报文转发的方法、设备以及系统 | |
CN113542112A (zh) | 一种报文转发方法及网络设备 | |
CN115695293A (zh) | 一种报文处理方法以及网络设备 | |
CN117097656A (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 |