CN109218258B - 数据包传输方法及网关设备 - Google Patents
数据包传输方法及网关设备 Download PDFInfo
- Publication number
- CN109218258B CN109218258B CN201710527601.1A CN201710527601A CN109218258B CN 109218258 B CN109218258 B CN 109218258B CN 201710527601 A CN201710527601 A CN 201710527601A CN 109218258 B CN109218258 B CN 109218258B
- Authority
- CN
- China
- Prior art keywords
- edge gateway
- mpls label
- gateway device
- equipment
- address
- 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
- 238000000034 method Methods 0.000 title claims abstract description 138
- 230000005540 biological transmission Effects 0.000 title abstract description 73
- 238000013507 mapping Methods 0.000 claims description 259
- 238000005538 encapsulation Methods 0.000 claims description 139
- 238000004806 packaging method and process Methods 0.000 claims description 57
- 238000012545 processing Methods 0.000 abstract description 28
- 238000013461 design Methods 0.000 description 88
- 238000004891 communication Methods 0.000 description 28
- 230000009286 beneficial effect Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 14
- 230000000694 effects Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 5
- 101100079127 Arabidopsis thaliana NAC082 gene Proteins 0.000 description 4
- 101100079128 Arabidopsis thaliana NAC083 gene Proteins 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Classifications
-
- 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
- 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
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- 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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
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
本申请实施例提供一种数据包传输方法及网关设备,该方法包括:非边缘网关设备依次解封接收到的封装数据包的底层包头以及封装MPLS标签栈的最外层MPLS标签,并根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的IP地址;进一步地,根据下一跳设备的IP地址,对剩余封装MPLS标签栈重新封装底层包头,得到新的封装数据包,并将新的封装数据包发送给下一跳设备。可见,非边缘网关设备只需获取封装MPLS标签栈的最外层MPLS标签,并直接根据最外层MPLS标签进行查询,便可确定非边缘网关设备的下一跳设备,从而减少了非边缘网关设备处理数据包的工作量,提高了数据包的转发效率。
Description
技术领域
本申请涉及网络技术,尤其涉及一种数据包传输方法及网关设备。
背景技术
随着网络技术的发展,网络虚拟化叠加(Network Virtualization Overlays,NVO)应运而生。NVO指采用隧道封装和虚拟化技术,在一个底层物理网络(UnderlayNetwork)上形成的一个或多个虚拟化叠加网络(Overlay Networks)。
在多个数据中心互联,尤其是混合云场景下,常常出现多个虚拟化叠加网络互联的情况。图1为虚拟化叠加网络互联场景的结构示意图,如图1所示,假设两个采用虚拟可扩展局域网(Virtual eXtensible Local Area Network,VxLAN)封装格式的虚拟化叠加网络,通过一个采用以太层虚拟私网(Ethernet Virtual Private Network,E-VPN)封装格式的虚拟化叠加网络相连,形成一个虚拟网络。假设租户系统(Tenant System,TS)1和TS2同属该虚拟网络,3个虚拟化叠加网络的虚拟网络标识(Virtual Machine,VNI)(从左至右)依次为VNI3、VNI2、和VNI1。下面以TS1(即源租户系统)向TS2(即目标租户系统)发送一个媒体访问控制层(Media Access Control,MAC)数据包(目的MAC地址包括TS2的MAC地址)为例,具体通信流程如下:
(1)网络虚拟化边缘设备(Network Virtualization Edge,NVE)1接收到TS1发送的MAC数据包后,根据TS1所属虚拟化叠加网络的VNI(即VNI1)以及TS2的MAC地址(即MAC数据包的目的MAC地址)查询第一映射表,确定GW1的网际互联协议(Internet Protocol,IP)地址;进一步地,NVE1在MAC数据包外封装VxLAN包头,其中VxLAN包头中的VNI字段包括VNI1;以及在VxLAN包头外封装用户数据报协议(User Datagram Protocol,UDP)包头和IP包头,其中IP包头的目的IP字段包括GW1的IP地址;进一步地,NVE1将封装后的MAC数据包发送给GW1;
(2)GW1在接收到封装后的MAC数据包后,依次剥去IP包头、UDP包头以及VxLAN包头,获取到VxLAN包头中的VNI(即VNI1)以及内层的MAC数据包的目的MAC地址(即TS2的MAC地址);进一步地,GW1根据VNI1和目的MAC地址查询第二映射表,确定GW2的IP地址进而获得GW2的IP地址对应的多协议外部网关协议(Multiple Protocol L Switching,MPLS)公网标签;进一步地,GW1在MAC数据包外封装私网MPLS标签(其中私网MPLS标签的标签字段包括VNI2),以及GW1在私网MPLS标签外封装公网MPLS标签(其中公网MPLS标签的标签字段包括GW2的MPLS公网标签);进一步地,GW1将重新封装后的MAC数据包发送给GW2;
(3)GW2在接收到重新封装后的MAC数据包后,依次剥去公网MPLS标签以及私网MPLS标签,获取到私网MPLS标签中的VNI(即VNI2)以及内层的MAC数据包的目的MAC地址(即TS2的MAC地址);进一步地,GW2根据VNI2和目的MAC地址查询第三映射表,确定NVE2的IP地址;进一步地,GW2在MAC数据包外封装VxLAN包头(其中VxLAN包头的VNI字段包括VNI3),以及GW2在VxLAN包头外封装UDP包头和IP包头,其中IP包头的目的IP字段包括NVE2的IP地址;进一步地,GW2将重新封装后的MAC数据包发送给NVE2;
(4)NVE2在接收到重新封装后的MAC数据包后,依次剥去IP包头、UDP包头以及VxLAN包头,获取到VxLAN包头中的VNI(即VNI3)以及内层的MAC数据包的目的MAC地址(即TS2的MAC地址);进一步地,NVE2根据VNI3和目的MAC地址查询第四映射表,确定TS2对应的数据转发接口,并将MAC数据包通过数据转发接口发送给TS2。
可见,现有技术中,各网关设备转发封装后的MAC数据包时,都需要读取封装后的MAC数据包中内层的MAC数据包的目的MAC地址,增加了各网关设备处理数据包的工作量,降低了数据包的转发效率。
发明内容
本申请实施例提供一种数据包传输方法及网关设备,减少了非边缘网关设备处理数据包的工作量,从而提高了数据包的转发效率。
第一方面,本申请实施例提供一种数据包传输方法,包括:
非边缘网关设备将接收到的封装数据包,依次解封封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈的最外层MPLS标签;其中,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈以及底层包头;封装MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;最外层MPLS标签包括:非边缘网关设备为下一跳设备所分配的MPLS标签;
非边缘网关设备根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的网际互联协议IP地址;其中,转发信息包括:最外层MPLS标签与非边缘网关设备的下一跳设备的IP地址之间的映射关系;
非边缘网关设备根据非边缘网关设备的下一跳设备的IP地址,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,得到新的封装数据包,并将新的封装数据包发送给非边缘网关设备的下一跳设备。
通过第一方面提供的数据包传输方法,非边缘网关设备通过依次解封接收到的封装数据包的底层包头以及封装MPLS标签栈的最外层MPLS标签,以及根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的网际互联协议IP地址;进一步地,非边缘网关设备根据非边缘网关设备的下一跳设备的IP地址,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,得到新的封装数据包,并将新的封装数据包发送给非边缘网关设备的下一跳设备。可见,本申请实施例提供的数据包传输方法中,非边缘网关设备只需获取封装MPLS标签栈的最外层MPLS标签,并直接根据最外层MPLS标签进行查询,便可确定非边缘网关设备的下一跳设备,从而减少了非边缘网关设备处理数据包的工作量,提高了数据包的转发效率。
在一个可能的设计中,若非边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,重新封装的底层包头包括:IP包头和用户数据报协议UDP包头,IP包头中的目的IP地址为非边缘网关设备的下一跳设备的IP地址。
在一个可能的设计中,若非边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,非边缘网关设备根据非边缘网关设备的下一跳设备的IP地址,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,包括:
非边缘网关设备根据非边缘网关设备的下一跳设备的IP地址以及映射信息,确定非边缘网关设备的下一跳设备对应的公网MPLS标签;其中,映射信息包括:非边缘网关设备的下一跳设备的IP地址与非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
非边缘网关设备根据非边缘网关设备的下一跳设备的公网MPLS标签,对剩余封装MPLS标签栈重新封装底层包头,底层包头中包括非边缘网关设备的的下一跳设备的公网MPLS标签。
在一个可能的设计中,所述方法,还包括:
非边缘网关设备接收非边缘网关设备的下一跳设备发送的目标终端设备的第一可达信息;其中,第一可达信息包括:目标终端设备的MAC地址、非边缘网关设备的下一跳设备的IP地址、以及非边缘网关设备的下一跳设备至边缘网关设备之间的各网关设备所分配的MPLS标签;
非边缘网关设备向非边缘网关设备的上一跳设备发送目标终端设备的第二可达信息;其中,第二可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址、以及非边缘网关设备至边缘网关设备之间的各网关设备所分配的MPLS标签。
在一个可能的设计中,目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;
目标终端设备的第二可达信息携带于第二MP-BGP消息中。
在一个可能的设计中,目标终端设备的第一可达信息位于第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;
目标终端设备的第二可达信息位于第二MP-BGP消息中的E-VPN NLRI字段。
第二方面,本申请实施例提供一种数据包传输方法,包括:
与源终端设备相连的边缘网关设备根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的网际互联协议IP地址以及多协议外部网关协议MPLS标签栈;其中,非边缘网关设备为边缘网关设备的下一跳设备;标识信息包括:边缘网关设备根据从源终端设备接收到的媒体访问控制层MAC数据包所获取的目标终端设备的MAC地址,以及源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;第一映射信息包括:标识信息与非边缘网关设备的IP地址以及MPLS标签栈之间的映射关系;MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;
与源终端设备相连的边缘网关设备根据非边缘网关设备的IP地址以及MPLS标签栈,对MAC数据包进行封装,得到封装数据包,并将封装数据包发送给非边缘网关设备。
通过第二方面提供的数据包传输方法,与源终端设备相连的边缘网关设备通过根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的IP地址以及MPLS标签栈;进一步地,与源终端设备相连的边缘网关设备根据非边缘网关设备的IP地址以及MPLS标签栈,对MAC数据包进行封装,得到封装数据包,并将封装数据包发送给非边缘网关设备;以便非边缘网关设备通过依次解封接收到的封装数据包的底层包头以及封装MPLS标签栈的最外层MPLS标签,以及根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的IP地址,进一步地根据非边缘网关设备的下一跳设备的IP地址,对剩余封装MPLS标签栈重新封装底层包头,并将重新封装的数据包发送给非边缘网关设备的下一跳设备。可见,本申请实施例提供的数据包传输方法中,非边缘网关设备只需获取封装MPLS标签栈的最外层MPLS标签,并直接根据最外层MPLS标签进行查询,便可确定非边缘网关设备的下一跳设备,从而减少了非边缘网关设备处理数据包的工作量,提高了数据包的转发效率。
在一个可能的设计中,与源终端设备相连的边缘网关设备根据非边缘网关设备的IP地址以及MPLS标签栈,对MAC数据包进行封装,包括:
与源终端设备相连的边缘网关设备根据MPLS标签栈对MAC数据包按顺序依次封装:与目标终端设备相连的边缘网关设备至非边缘网关设备之间的各网关设备所分配的MPLS标签,形成封装MPLS标签栈;
与源终端设备相连的边缘网关设备根据非边缘网关设备的IP地址,对封装MPLS标签栈封装底层包头。
在一个可能的设计中,若与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,底层包头包括:IP包头和用户数据报协议UDP包头,IP包头中的目的IP地址为非边缘网关设备的IP地址。
在一个可能的设计中,若与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,与源终端设备相连的边缘网关设备根据非边缘网关设备的IP地址,对封装MPLS标签栈封装底层包头,包括:
与源终端设备相连的边缘网关设备根据非边缘网关设备的IP地址以及第二映射信息,确定非边缘网关设备的公网MPLS标签;其中,第二映射信息包括:非边缘网关设备的IP地址与非边缘网关设备的公网MPLS标签之间的映射关系;
与源终端设备相连的边缘网关设备根据非边缘网关设备的公网MPLS标签,对封装MPLS标签栈封装底层包头,底层包头中包括非边缘网关设备的公网MPLS标签。
在一个可能的设计中,所述方法,还包括:
与源终端设备相连的边缘网关设备接收非边缘网关设备发送的目标终端设备的可达信息;其中,目标终端设备的可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址以及MPLS标签栈。
在一个可能的设计中,目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,目标终端设备的可达信息位于MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
第三方面,本申请实施例提供一种数据包传输方法,包括:
与目标终端设备相连的边缘网关设备将从非边缘网关设备接收到的封装数据包,依次解封封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈;其中,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈以及底层包头;封装MPLS标签栈包括:边缘网关设备为目标终端设备所分配的MPLS标签;
边缘网关设备根据MAC数据包中的目标终端设备的MAC地址、封装MPLS标签栈中的MPLS标签、以及映射信息,确定数据包转发接口;其中,映射信息包括:目标终端设备的MAC地址、封装MPLS标签栈中的MPLS标签与数据包转发接口之间的映射关系;
边缘网关设备将MAC数据包通过数据转发接口发送给目标终端设备。
通过第三方面提供的数据包传输方法,与目标终端设备相连的边缘网关设备将从非边缘网关设备接收到的封装数据包,依次解封封装数据包的底层包头以及封装MPLS标签栈,其中,封装数据包为非边缘网关设备将从非边缘网关设备的上一跳设备接收到的封装数据包依次解封底层包头以及封装MPLS标签栈的最外层MPLS标签,并根据最外层MPLS标签以及转发信息,确定与目标终端设备相连的边缘网关设备的IP地址,以及根据IP地址对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头所得到的数据包;进一步地,边缘网关设备根据MAC数据包中的目标终端设备的MAC地址、封装MPLS标签栈中的MPLS标签、以及映射信息,确定数据包转发接口,并将MAC数据包通过数据转发接口发送给目标终端设备。可见,本申请实施例提供的数据包传输方法中,非边缘网关设备只需获取封装MPLS标签栈的最外层MPLS标签,并直接根据最外层MPLS标签进行查询,便可确定非边缘网关设备的下一跳设备,从而减少了非边缘网关设备处理数据包的工作量,提高了数据包的转发效率。
在一个可能的设计中,所述方法,还包括:
边缘网关设备向非边缘网关设备发送目标终端设备的可达信息;其中,目标终端设备的可达信息包括:目标终端设备的MAC地址、边缘网关设备的IP地址、以及边缘网关设备为目标终端设备所分配的MPLS标签。
在一个可能的设计中,目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,目标终端设备的可达信息位于MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
第四方面,本申请实施例提供一种网关设备,网关设备为非边缘网关设备,非边缘网关设备包括:
解封模块,用于将接收到的封装数据包,依次解封封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈的最外层MPLS标签;其中,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈以及底层包头;封装MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;最外层MPLS标签包括:非边缘网关设备为下一跳设备所分配的MPLS标签;
确定模块,用于根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的网际互联协议IP地址;其中,转发信息包括:最外层MPLS标签与非边缘网关设备的下一跳设备的IP地址之间的映射关系;
封装模块,用于根据非边缘网关设备的下一跳设备的IP地址,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,得到新的封装数据包;
第一发送模块,用于将新的封装数据包发送给非边缘网关设备的下一跳设备。
在一个可能的设计中,若非边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,重新封装的底层包头包括:IP包头和用户数据报协议UDP包头,IP包头中的目的IP地址为非边缘网关设备的下一跳设备的IP地址。
在一个可能的设计中,若非边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,封装模块,包括:
确定单元,用于根据非边缘网关设备的下一跳设备的IP地址以及映射信息,确定非边缘网关设备的下一跳设备对应的公网MPLS标签;其中,映射信息包括:非边缘网关设备的下一跳设备的IP地址与非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
封装单元,用于根据非边缘网关设备的下一跳设备的公网MPLS标签,对剩余封装MPLS标签栈重新封装底层包头,底层包头中包括非边缘网关设备的的下一跳设备的公网MPLS标签。
在一个可能的设计中,非边缘网关设备,还包括:
接收模块,用于接收非边缘网关设备的下一跳设备发送的目标终端设备的第一可达信息;其中,第一可达信息包括:目标终端设备的MAC地址、非边缘网关设备的下一跳设备的IP地址、以及非边缘网关设备的下一跳设备至边缘网关设备之间的各网关设备所分配的MPLS标签;
第二发送模块,用于向非边缘网关设备的上一跳设备发送目标终端设备的第二可达信息;其中,第二可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址、以及非边缘网关设备至边缘网关设备之间的各网关设备所分配的MPLS标签。
在一个可能的设计中,目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;
目标终端设备的第二可达信息携带于第二MP-BGP消息中。
在一个可能的设计中,目标终端设备的第一可达信息位于第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;
目标终端设备的第二可达信息位于第二MP-BGP消息中的E-VPN NLRI字段。
上述第四方面的实施方式所提供的非边缘网关设备,其有益效果可以参见上述第一方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第五方面,本申请实施例提供一种网关设备,网关设备为与源终端设备相连的边缘网关设备,边缘网关设备包括:
确定模块,用于根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的网际互联协议IP地址以及多协议外部网关协议MPLS标签栈;其中,非边缘网关设备为边缘网关设备的下一跳设备;标识信息包括:边缘网关设备根据从源终端设备接收到的媒体访问控制层MAC数据包所获取的目标终端设备的MAC地址,以及源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;第一映射信息包括:标识信息与非边缘网关设备的IP地址以及MPLS标签栈之间的映射关系;MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;
封装模块,用于根据非边缘网关设备的IP地址以及MPLS标签栈,对MAC数据包进行封装,得到封装数据包;
发送模块,用于将封装数据包发送给非边缘网关设备。
在一个可能的设计中,封装模块,包括:
第一封装单元,用于根据MPLS标签栈对MAC数据包按顺序依次封装:与目标终端设备相连的边缘网关设备至非边缘网关设备之间的各网关设备所分配的MPLS标签,形成封装MPLS标签栈;
第二封装单元,用于根据非边缘网关设备的IP地址,对封装MPLS标签栈封装底层包头。
在一个可能的设计中,若与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,底层包头包括:IP包头和用户数据报协议UDP包头,IP包头中的目的IP地址为非边缘网关设备的IP地址。
在一个可能的设计中,若与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,第二封装单元具体用于:
根据非边缘网关设备的IP地址以及第二映射信息,确定非边缘网关设备的公网MPLS标签;其中,第二映射信息包括:非边缘网关设备的IP地址与非边缘网关设备的公网MPLS标签之间的映射关系;
根据非边缘网关设备的公网MPLS标签,对封装MPLS标签栈封装底层包头,底层包头中包括非边缘网关设备的公网MPLS标签。
在一个可能的设计中,与源终端设备相连的边缘网关设备,还包括:
接收模块,用于接收非边缘网关设备发送的目标终端设备的可达信息;其中,目标终端设备的可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址以及MPLS标签栈。
在一个可能的设计中,目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,目标终端设备的可达信息位于MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
上述第五方面的实施方式所提供的与源终端设备相连的边缘网关设备,其有益效果可以参见上述第二方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第六方面,本申请实施例提供一种网关设备,网关设备为与目标终端设备相连的边缘网关设备,边缘网关设备包括:
解封模块,用于将从非边缘网关设备接收到的封装数据包,依次解封封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈;其中,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈以及底层包头;封装MPLS标签栈包括:边缘网关设备为目标终端设备所分配的MPLS标签;
确定模块,用于根据MAC数据包中的目标终端设备的MAC地址、封装MPLS标签栈中的MPLS标签、以及映射信息,确定数据包转发接口;其中,映射信息包括:目标终端设备的MAC地址、封装MPLS标签栈中的MPLS标签与数据包转发接口之间的映射关系;
第一发送模块,用于将MAC数据包通过数据转发接口发送给目标终端设备。
在一个可能的设计中,边缘网关设备,还包括:
第二发送模块,用于向非边缘网关设备发送目标终端设备的可达信息;其中,目标终端设备的可达信息包括:目标终端设备的MAC地址、边缘网关设备的IP地址、以及边缘网关设备为目标终端设备所分配的MPLS标签。
在一个可能的设计中,目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,目标终端设备的可达信息位于MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
上述第六方面的实施方式所提供的与目标终端设备相连的边缘网关设备,其有益效果可以参见上述第三方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第七方面,本申请实施例提供一种网关设备,网关设备为非边缘网关设备,非边缘网关设备包括:存储器、处理器和收发器;
其中,存储器用于存储程序指令;
处理器用于调用存储器中的程序指令执行下述步骤:
将接收到的封装数据包,依次解封封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈的最外层MPLS标签;其中,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈以及底层包头;封装MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;最外层MPLS标签包括:非边缘网关设备为下一跳设备所分配的MPLS标签;
根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的网际互联协议IP地址;其中,转发信息包括:最外层MPLS标签与非边缘网关设备的下一跳设备的IP地址之间的映射关系;
根据非边缘网关设备的下一跳设备的IP地址,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,得到新的封装数据包;
收发器用于将新的封装数据包发送给非边缘网关设备的下一跳设备。
在一个可能的设计中,若非边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,重新封装的底层包头包括:IP包头和用户数据报协议UDP包头,IP包头中的目的IP地址为非边缘网关设备的下一跳设备的IP地址。
在一个可能的设计中,若非边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,处理器具体用于:
根据非边缘网关设备的下一跳设备的IP地址以及映射信息,确定非边缘网关设备的下一跳设备对应的公网MPLS标签;其中,映射信息包括:非边缘网关设备的下一跳设备的IP地址与非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
根据非边缘网关设备的下一跳设备的公网MPLS标签,对剩余封装MPLS标签栈重新封装底层包头,底层包头中包括非边缘网关设备的的下一跳设备的公网MPLS标签。
在一个可能的设计中,收发器还用于:
接收非边缘网关设备的下一跳设备发送的目标终端设备的第一可达信息;其中,第一可达信息包括:目标终端设备的MAC地址、非边缘网关设备的下一跳设备的IP地址、以及非边缘网关设备的下一跳设备至边缘网关设备之间的各网关设备所分配的MPLS标签;
向非边缘网关设备的上一跳设备发送目标终端设备的第二可达信息;其中,第二可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址、以及非边缘网关设备至边缘网关设备之间的各网关设备所分配的MPLS标签。
在一个可能的设计中,目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;
目标终端设备的第二可达信息携带于第二MP-BGP消息中。
在一个可能的设计中,目标终端设备的第一可达信息位于第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;
目标终端设备的第二可达信息位于第二MP-BGP消息中的E-VPN NLRI字段。
上述第七方面的实施方式所提供的非边缘网关设备,其有益效果可以参见上述第一方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第八方面,本申请实施例提供一种网关设备,网关设备为与源终端设备相连的边缘网关设备,边缘网关设备包括:存储器、处理器和收发器;
其中,存储器用于存储程序指令;
处理器用于调用存储器中的程序指令执行下述步骤:
根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的网际互联协议IP地址以及多协议外部网关协议MPLS标签栈;其中,非边缘网关设备为边缘网关设备的下一跳设备;标识信息包括:边缘网关设备根据从源终端设备接收到的媒体访问控制层MAC数据包所获取的目标终端设备的MAC地址,以及源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;第一映射信息包括:标识信息与非边缘网关设备的IP地址以及MPLS标签栈之间的映射关系;MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;
根据非边缘网关设备的IP地址以及MPLS标签栈,对MAC数据包进行封装,得到封装数据包;
收发器用于将封装数据包发送给非边缘网关设备。
在一个可能的设计中,处理器具体用于:
根据MPLS标签栈对MAC数据包按顺序依次封装:与目标终端设备相连的边缘网关设备至非边缘网关设备之间的各网关设备所分配的MPLS标签,形成封装MPLS标签栈;
根据非边缘网关设备的IP地址,对封装MPLS标签栈封装底层包头。
在一个可能的设计中,若与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,底层包头包括:IP包头和用户数据报协议UDP包头,IP包头中的目的IP地址为非边缘网关设备的IP地址。
在一个可能的设计中,若与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,处理器具体用于:
根据非边缘网关设备的IP地址以及第二映射信息,确定非边缘网关设备的公网MPLS标签;其中,第二映射信息包括:非边缘网关设备的IP地址与非边缘网关设备的公网MPLS标签之间的映射关系;
根据非边缘网关设备的公网MPLS标签,对封装MPLS标签栈封装底层包头,底层包头中包括非边缘网关设备的公网MPLS标签。
在一个可能的设计中,收发器还用于:
接收非边缘网关设备发送的目标终端设备的可达信息;其中,目标终端设备的可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址以及MPLS标签栈。
在一个可能的设计中,目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,目标终端设备的可达信息位于MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
上述第八方面的实施方式所提供的与源终端设备相连的边缘网关设备,其有益效果可以参见上述第二方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第九方面,本申请实施例提供一种网关设备,网关设备为与目标终端设备相连的边缘网关设备,边缘网关设备包括:存储器、处理器和收发器;
其中,存储器用于存储程序指令;
处理器用于调用存储器中的程序指令执行下述步骤:
将从非边缘网关设备接收到的封装数据包,依次解封封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈;其中,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈以及底层包头;封装MPLS标签栈包括:边缘网关设备为目标终端设备所分配的MPLS标签;
根据MAC数据包中的目标终端设备的MAC地址、封装MPLS标签栈中的MPLS标签、以及映射信息,确定数据包转发接口;其中,映射信息包括:目标终端设备的MAC地址、封装MPLS标签栈中的MPLS标签与数据包转发接口之间的映射关系;
收发器用于将MAC数据包通过数据转发接口发送给目标终端设备。
在一个可能的设计中,收发器还用于:
向非边缘网关设备发送目标终端设备的可达信息;其中,目标终端设备的可达信息包括:目标终端设备的MAC地址、边缘网关设备的IP地址、以及边缘网关设备为目标终端设备所分配的MPLS标签。
在一个可能的设计中,目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,目标终端设备的可达信息位于MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
上述第六方面的实施方式所提供的与目标终端设备相连的边缘网关设备,其有益效果可以参见上述第三方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第十方面,本申请实施例提供一种数据包传输方法,包括:
非边缘网关设备将接收到的封装数据包,依次解封封装数据包的底层包头、虚拟化包头以及封装多协议外部网关协议MPLS标签栈的最外层MPLS标签;其中,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈、虚拟化包头以及底层包头;封装MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签;虚拟化包头包括:非边缘网关设备为目标终端设备所分配的MPLS标签;最外层MPLS标签包括:非边缘网关设备为下一跳设备所分配的MPLS标签;
非边缘网关设备根据非边缘网关设备为目标终端设备所分配的MPLS标签以及第一映射信息,确定非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签;第一映射信息包括:非边缘网关设备为目标终端设备所分配的MPLS标签,与非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签之间的映射关系;
非边缘网关设备根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的网际互联协议IP地址;其中,转发信息包括:最外层MPLS标签与非边缘网关设备的下一跳设备的IP地址之间的映射关系;
非边缘网关设备根据非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装虚拟化包头;
非边缘网关设备根据非边缘网关设备的下一跳设备的IP地址,对重新封装的虚拟化包头重新封装底层包头,得到新的封装数据包,并将新的封装数据包发送给非边缘网关设备的下一跳设备。
通过第十方面提供的数据包传输方法,非边缘网关设备通过依次解封接收到的封装数据包的底层包头、虚拟化包头以及封装MPLS标签栈的最外层MPLS标签;进一步地,非边缘网关设备根据非边缘网关设备为目标终端设备所分配的MPLS标签以及第一映射信息,确定非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签,以及根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的IP地址;进一步地,非边缘网关设备根据非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装虚拟化包头,以及根据非边缘网关设备的下一跳设备的IP地址,对重新封装的虚拟化包头重新封装底层包头,得到新的封装数据包,并将新的封装数据包发送给非边缘网关设备的下一跳设备。可见,本申请实施例提供的数据包传输方法中,非边缘网关设备只需获取封装MPLS标签栈的最外层MPLS标签,并直接根据最外层MPLS标签进行查询,便可确定非边缘网关设备的下一跳设备,从而减少了非边缘网关设备处理数据包的工作量,提高了数据包的转发效率。
在一个可能的设计中,若非边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,重新封装的虚拟化包头为VxLAN包头,VxLAN包头中的虚拟网络标识VNI字段包含非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签;
对应地,重新封装的底层包头包括:IP包头和用户数据报协议UDP包头,IP包头中的目的IP地址为非边缘网关设备的下一跳设备的IP地址。
在一个可能的设计中,若非边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,重新封装的虚拟化包头中包括私网MPLS标签,私网MPLS标签为非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签;
对应地,非边缘网关设备根据非边缘网关设备的下一跳设备的IP地址,对重新封装的虚拟化包头重新封装底层包头,包括:
非边缘网关设备根据非边缘网关设备的下一跳设备的IP地址以及第二映射信息,确定非边缘网关设备的下一跳设备对应的公网MPLS标签;其中,第二映射信息包括:非边缘网关设备的下一跳设备的IP地址与非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
非边缘网关设备根据非边缘网关设备的下一跳设备的公网MPLS标签,对重新封装的虚拟化包头重新封装底层包头,底层包头中包括非边缘网关设备的下一跳设备的公网MPLS标签。
在一个可能的设计中,所述方法,还包括:
非边缘网关设备接收非边缘网关设备的下一跳设备发送的目标终端设备的第一可达信息;其中,目标终端设备的第一可达信息包括:目标终端设备的MAC地址、非边缘网关设备的下一跳设备的IP地址、非边缘网关设备的下一跳设备至边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签、以及非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签;
非边缘网关设备向非边缘网关设备的上一跳设备发送目标终端设备的第二可达信息;其中,目标终端设备的第二可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址、非边缘网关设备至边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签、以及非边缘网关设备为目标网络设备所分配的MPLS标签。
在一个可能的设计中,目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;
目标终端设备的第二可达信息携带于第二MP-BGP消息中。
在一个可能的设计中,目标终端设备的第一可达信息位于第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;
目标终端设备的第二可达信息位于第二MP-BGP消息中的E-VPN NLRI字段。
第十一方面,本申请实施例提供一种数据包传输方法,包括:
与源终端设备相连的边缘网关设备根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的网际互联协议IP地址以及多协议外部网关协议MPLS标签栈;其中,非边缘网关设备为边缘网关设备的下一跳设备;标识信息包括:边缘网关设备根据从源终端设备接收到的媒体访问控制层MAC数据包所获取的目标终端设备的MAC地址,以及源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;第一映射信息包括:标识信息与非边缘网关设备的IP地址以及MPLS标签栈之间的映射关系;MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签以及非边缘网关设备为目标终端设备所分配的MPLS标签;
与源终端设备相连的边缘网关设备根据非边缘网关设备的IP地址以及MPLS标签栈,对MAC数据包进行封装,得到封装数据包,并将封装数据包发送给非边缘网关设备。
通过第十一方面提供的数据包传输方法,与源终端设备相连的边缘网关设备根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的IP地址以及MPLS标签栈;进一步地,与源终端设备相连的边缘网关设备根据非边缘网关设备的IP地址以及MPLS标签栈,对MAC数据包进行封装,得到封装数据包,并将封装数据包发送给非边缘网关设备;以便非边缘网关设备通过依次解封接收到的封装数据包的底层包头、虚拟化包头以及封装MPLS标签栈的最外层MPLS标签,进一步地非边缘网关设备根据非边缘网关设备为目标终端设备所分配的MPLS标签以及第一映射信息,确定非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签,以及根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的IP地址,进一步地非边缘网关设备根据非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签,对剩余封装MPLS标签栈重新封装虚拟化包头,以及根据非边缘网关设备的下一跳设备的IP地址,对重新封装的虚拟化包头重新封装底层包头,得到新的封装数据包,并将新的封装数据包发送给非边缘网关设备的下一跳设备。可见,本申请实施例提供的数据包传输方法中,非边缘网关设备只需获取封装MPLS标签栈的最外层MPLS标签,并直接根据最外层MPLS标签进行查询,便可确定非边缘网关设备的下一跳设备,从而减少了非边缘网关设备处理数据包的工作量,提高了数据包的转发效率。
在一个可能的设计中,与源终端设备相连的边缘网关设备根据非边缘网关设备的下一跳设备的IP地址以及MPLS标签栈,对MAC数据包进行封装,包括:
与源终端设备相连的边缘网关设备根据MPLS标签栈对MAC数据包按顺序依次封装:与目标终端设备相连的边缘网关设备的上一跳设备至非边缘网关设备之间的各网关设备所分配的MPLS标签,形成封装MPLS标签栈;
与源终端设备相连的边缘网关设备根据非边缘网关设备为目标终端设备所分配的标签,对封装MPLS标签栈封装虚拟化包头;
与源终端设备相连的边缘网关设备根据非边缘网关设备的IP地址,对虚拟化包头封装底层包头。
在一个可能的设计中,若与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,虚拟化包头为VxLAN包头,VxLAN包头中的VNI字段包含非边缘网关设备为目标终端设备所分配的标签;
对应地,底层包头包括:IP包头和用户数据报协议UDP包头,IP包头中的目的IP地址为非边缘网关设备的IP地址。
在一个可能的设计中,若与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,虚拟化包头中包括私网标签,私网标签为非边缘网关设备为目标终端设备所分配的标签;
对应地,与源终端设备相连的边缘网关设备根据非边缘网关设备的IP地址,对虚拟化包头封装底层包头,包括:
与源终端设备相连的边缘网关设备根据非边缘网关设备的IP地址以及第二映射信息,确定非边缘网关设备的公网MPLS标签;其中,第二映射信息包括:非边缘网关设备的IP地址与非边缘网关设备的公网MPLS标签之间的映射关系;
与源终端设备相连的边缘网关设备根据非边缘网关设备的公网MPLS标签,对虚拟化包头封装底层包头,底层包头中包括非边缘网关设备的公网MPLS标签。
在一个可能的设计中,所述方法,还包括:
与源终端设备相连的边缘网关设备接收非边缘网关设备发送的目标终端设备的可达信息;其中,目标终端设备的可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址以及MPLS标签栈。
在一个可能的设计中,目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,目标终端设备的可达信息位于MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
第十二方面,本申请实施例提供一种数据包传输方法,包括:
与目标终端设备相连的边缘网关设备将从非边缘网关设备接收到的封装数据包,依次解封封装数据包的底层包头以及虚拟化包头;其中,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、虚拟化包头以及底层包头;虚拟化包头包括:边缘网关设备为目标终端设备所分配的MPLS标签;
边缘网关设备根据MAC数据包中的目标终端设备的MAC地址、虚拟化包头中的MPLS标签、以及映射信息,确定数据包转发接口;其中,映射信息包括:目标终端设备的MAC地址、虚拟化包头中的MPLS标签与数据转发接口之间的映射关系;
边缘网关设备将MAC数据包通过数据转发接口发送给目标终端设备。
通过第十二方面提供的数据包传输方法,与目标终端设备相连的边缘网关设备将从非边缘网关设备接收到的封装数据包,依次解封封装数据包的底层包头以及虚拟化包头,其中,封装数据包为非边缘网关设备将从非边缘网关设备的上一跳设备接收到的封装数据包依次解封底层包头、虚拟化包头以及封装MPLS标签栈的最外层MPLS标签,并根据非边缘网关设备为目标终端设备所分配的MPLS标签以及第一映射信息,确定非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签,以及根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的IP地址,进一步地根据非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装虚拟化包头,以及根据非边缘网关设备的下一跳设备的IP地址,对重新封装的虚拟化包头重新封装底层包头所得到的数据包;进一步地,与目标终端设备相连的边缘网关设备根据MAC数据包中的目标终端设备的MAC地址、虚拟化包头中的MPLS标签、以及映射信息,确定数据包转发接口,并将MAC数据包通过数据转发接口发送给目标终端设备。可见,本申请实施例提供的数据包传输方法中,非边缘网关设备只需获取封装MPLS标签栈的最外层MPLS标签,并直接根据最外层MPLS标签进行查询,便可确定非边缘网关设备的下一跳设备,从而减少了非边缘网关设备处理数据包的工作量,提高了数据包的转发效率。
在一个可能的设计中,所述方法,还包括:
边缘网关设备向非边缘网关设备发送目标终端设备的可达信息;其中,目标终端设备的可达信息包括:目标终端设备的MAC地址、边缘网关设备的IP地址、以及边缘网关设备为目标终端设备所分配的MPLS标签。
在一个可能的设计中,目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,目标终端设备的可达信息位于MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
第十三方面,本申请实施例提供一种网关设备,网关设备为非边缘网关设备,非边缘网关设备包括:
解封模块,用于将接收到的封装数据包,依次解封封装数据包的底层包头、虚拟化包头以及封装多协议外部网关协议MPLS标签栈的最外层MPLS标签;其中,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈、虚拟化包头以及底层包头;封装MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签;虚拟化包头包括:非边缘网关设备为目标终端设备所分配的MPLS标签;最外层MPLS标签包括:非边缘网关设备为下一跳设备所分配的MPLS标签;
第一确定模块,用于根据非边缘网关设备为目标终端设备所分配的MPLS标签以及第一映射信息,确定非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签;第一映射信息包括:非边缘网关设备为目标终端设备所分配的MPLS标签,与非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签之间的映射关系;
第二确定模块,用于根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的网际互联协议IP地址;其中,转发信息包括:最外层MPLS标签与非边缘网关设备的下一跳设备的IP地址之间的映射关系;
第一封装模块,用于根据非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装虚拟化包头;
第二封装模块,用于根据非边缘网关设备的下一跳设备的IP地址,对重新封装的虚拟化包头重新封装底层包头,得到新的封装数据包;
第一发送模块,用于将新的封装数据包发送给非边缘网关设备的下一跳设备。
在一个可能的设计中,若非边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,重新封装的虚拟化包头为VxLAN包头,VxLAN包头中的虚拟网络标识VNI字段包含非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签;
对应地,重新封装的底层包头包括:IP包头和用户数据报协议UDP包头,IP包头中的目的IP地址为非边缘网关设备的下一跳设备的IP地址。
在一个可能的设计中,若非边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,重新封装的虚拟化包头中包括私网MPLS标签,私网MPLS标签为非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签;
对应地,第二封装模块,包括:
确定单元,用于根据非边缘网关设备的下一跳设备的IP地址以及第二映射信息,确定非边缘网关设备的下一跳设备对应的公网MPLS标签;其中,第二映射信息包括:非边缘网关设备的下一跳设备的IP地址与非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
封装单元,用于根据非边缘网关设备的下一跳设备的公网MPLS标签,对重新封装的虚拟化包头重新封装底层包头,底层包头中包括非边缘网关设备的下一跳设备的公网MPLS标签。
在一个可能的设计中,非边缘网关设备,还包括:
接收模块,用于接收非边缘网关设备的下一跳设备发送的目标终端设备的第一可达信息;其中,目标终端设备的第一可达信息包括:目标终端设备的MAC地址、非边缘网关设备的下一跳设备的IP地址、非边缘网关设备的下一跳设备至边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签、以及非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签;
第二发送模块,用于向非边缘网关设备的上一跳设备发送目标终端设备的第二可达信息;其中,目标终端设备的第二可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址、非边缘网关设备至边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签、以及非边缘网关设备为目标网络设备所分配的MPLS标签。
在一个可能的设计中,目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;
目标终端设备的第二可达信息携带于第二MP-BGP消息中。
在一个可能的设计中,目标终端设备的第一可达信息位于第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;
目标终端设备的第二可达信息位于第二MP-BGP消息中的E-VPN NLRI字段。
上述第十三方面的实施方式所提供的非边缘网关设备,其有益效果可以参见上述第十方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第十四方面,本申请实施例提供一种网关设备,网关设备为与源终端设备相连的边缘网关设备,边缘网关设备包括:
确定模块,用于根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的网际互联协议IP地址以及多协议外部网关协议MPLS标签栈;其中,非边缘网关设备为边缘网关设备的下一跳设备;标识信息包括:边缘网关设备根据从源终端设备接收到的媒体访问控制层MAC数据包所获取的目标终端设备的MAC地址,以及源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;第一映射信息包括:标识信息与非边缘网关设备的IP地址以及MPLS标签栈之间的映射关系;MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签以及非边缘网关设备为目标终端设备所分配的MPLS标签;
封装模块,用于根据非边缘网关设备的IP地址以及MPLS标签栈,对MAC数据包进行封装,得到封装数据包;
发送模块,用于将封装数据包发送给非边缘网关设备。
在一个可能的设计中,封装模块,包括:
第一封装单元,用于根据MPLS标签栈对MAC数据包按顺序依次封装:与目标终端设备相连的边缘网关设备的上一跳设备至非边缘网关设备之间的各网关设备所分配的MPLS标签,形成封装MPLS标签栈;
第二封装单元,用于根据非边缘网关设备为目标终端设备所分配的标签,对封装MPLS标签栈封装虚拟化包头;
第三封装单元,用于根据非边缘网关设备的IP地址,对虚拟化包头封装底层包头。
在一个可能的设计中,若与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,虚拟化包头为VxLAN包头,VxLAN包头中的VNI字段包含非边缘网关设备为目标终端设备所分配的标签;
对应地,底层包头包括:IP包头和用户数据报协议UDP包头,IP包头中的目的IP地址为非边缘网关设备的IP地址。
在一个可能的设计中,若与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,虚拟化包头中包括私网标签,私网标签为非边缘网关设备为目标终端设备所分配的标签;
对应地,第三封装单元具体用于:
根据非边缘网关设备的IP地址以及第二映射信息,确定非边缘网关设备的公网MPLS标签;其中,第二映射信息包括:非边缘网关设备的IP地址与非边缘网关设备的公网MPLS标签之间的映射关系;
根据非边缘网关设备的公网MPLS标签,对虚拟化包头封装底层包头,底层包头中包括非边缘网关设备的公网MPLS标签。
在一个可能的设计中,与源终端设备相连的边缘网关设备,还包括:
接收模块,用于接收非边缘网关设备发送的目标终端设备的可达信息;其中,目标终端设备的可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址以及MPLS标签栈。
在一个可能的设计中,目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,目标终端设备的可达信息位于MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
上述第十四方面的实施方式所提供的与源终端设备相连的边缘网关设备,其有益效果可以参见上述第十一方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第十五方面,本申请实施例提供一种网关设备,网关设备为与目标终端设备相连的边缘网关设备,边缘网关设备包括:
解封模块,用于将从非边缘网关设备接收到的封装数据包,依次解封封装数据包的底层包头以及虚拟化包头;其中,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、虚拟化包头以及底层包头;虚拟化包头包括:边缘网关设备为目标终端设备所分配的MPLS标签;
确定模块,用于根据MAC数据包中的目标终端设备的MAC地址、虚拟化包头中的MPLS标签、以及映射信息,确定数据包转发接口;其中,映射信息包括:目标终端设备的MAC地址、虚拟化包头中的MPLS标签与数据转发接口之间的映射关系;
第一发送模块,用于将MAC数据包通过数据转发接口发送给目标终端设备。
在一个可能的设计中,边缘网关设备,还包括:
第二发送模块,用于向非边缘网关设备发送目标终端设备的可达信息;其中,目标终端设备的可达信息包括:目标终端设备的MAC地址、边缘网关设备的IP地址、以及边缘网关设备为目标终端设备所分配的MPLS标签。
在一个可能的设计中,目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,目标终端设备的可达信息位于MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
上述第十五方面的实施方式所提供的与目标终端设备相连的边缘网关设备,其有益效果可以参见上述第十二方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第十六方面,本申请实施例提供一种网关设备,网关设备为非边缘网关设备,非边缘网关设备包括:存储器、处理器和收发器;
处理器用于调用存储器中的程序指令执行下述步骤:
将接收到的封装数据包,依次解封封装数据包的底层包头、虚拟化包头以及封装多协议外部网关协议MPLS标签栈的最外层MPLS标签;其中,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈、虚拟化包头以及底层包头;封装MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签;虚拟化包头包括:非边缘网关设备为目标终端设备所分配的MPLS标签;最外层MPLS标签包括:非边缘网关设备为下一跳设备所分配的MPLS标签;
根据非边缘网关设备为目标终端设备所分配的MPLS标签以及第一映射信息,确定非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签;第一映射信息包括:非边缘网关设备为目标终端设备所分配的MPLS标签,与非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签之间的映射关系;
根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的网际互联协议IP地址;其中,转发信息包括:最外层MPLS标签与非边缘网关设备的下一跳设备的IP地址之间的映射关系;
根据非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装虚拟化包头;
根据非边缘网关设备的下一跳设备的IP地址,对重新封装的虚拟化包头重新封装底层包头,得到新的封装数据包;
收发器用于将新的封装数据包发送给非边缘网关设备的下一跳设备。
在一个可能的设计中,若非边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,重新封装的虚拟化包头为VxLAN包头,VxLAN包头中的虚拟网络标识VNI字段包含非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签;
对应地,重新封装的底层包头包括:IP包头和用户数据报协议UDP包头,IP包头中的目的IP地址为非边缘网关设备的下一跳设备的IP地址。
在一个可能的设计中,若非边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,重新封装的虚拟化包头中包括私网MPLS标签,私网MPLS标签为非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签;
对应地,处理器具体用于:
根据非边缘网关设备的下一跳设备的IP地址以及第二映射信息,确定非边缘网关设备的下一跳设备对应的公网MPLS标签;其中,第二映射信息包括:非边缘网关设备的下一跳设备的IP地址与非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
根据非边缘网关设备的下一跳设备的公网MPLS标签,对重新封装的虚拟化包头重新封装底层包头,底层包头中包括非边缘网关设备的下一跳设备的公网MPLS标签。
在一个可能的设计中,收发器还用于:
接收非边缘网关设备的下一跳设备发送的目标终端设备的第一可达信息;其中,目标终端设备的第一可达信息包括:目标终端设备的MAC地址、非边缘网关设备的下一跳设备的IP地址、非边缘网关设备的下一跳设备至边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签、以及非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签;
向非边缘网关设备的上一跳设备发送目标终端设备的第二可达信息;其中,目标终端设备的第二可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址、非边缘网关设备至边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签、以及非边缘网关设备为目标网络设备所分配的MPLS标签。
在一个可能的设计中,目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;
目标终端设备的第二可达信息携带于第二MP-BGP消息中。
在一个可能的设计中,目标终端设备的第一可达信息位于第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;
目标终端设备的第二可达信息位于第二MP-BGP消息中的E-VPN NLRI字段。
上述第十六方面的实施方式所提供的非边缘网关设备,其有益效果可以参见上述第十方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第十七方面,本申请实施例提供一种网关设备,网关设备为与源终端设备相连的边缘网关设备,边缘网关设备包括:存储器、处理器和收发器;
其中,存储器用于存储程序指令;
处理器用于调用存储器中的程序指令执行下述步骤:
根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的网际互联协议IP地址以及多协议外部网关协议MPLS标签栈;其中,非边缘网关设备为边缘网关设备的下一跳设备;标识信息包括:边缘网关设备根据从源终端设备接收到的媒体访问控制层MAC数据包所获取的目标终端设备的MAC地址,以及源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;第一映射信息包括:标识信息与非边缘网关设备的IP地址以及MPLS标签栈之间的映射关系;MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签以及非边缘网关设备为目标终端设备所分配的MPLS标签;
根据非边缘网关设备的IP地址以及MPLS标签栈,对MAC数据包进行封装,得到封装数据包;
收发器用于将封装数据包发送给非边缘网关设备。
在一个可能的设计中,处理器具体用于:
根据MPLS标签栈对MAC数据包按顺序依次封装:与目标终端设备相连的边缘网关设备的上一跳设备至非边缘网关设备之间的各网关设备所分配的MPLS标签,形成封装MPLS标签栈;
根据非边缘网关设备为目标终端设备所分配的标签,对封装MPLS标签栈封装虚拟化包头;
根据非边缘网关设备的IP地址,对虚拟化包头封装底层包头。
在一个可能的设计中,若与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,虚拟化包头为VxLAN包头,VxLAN包头中的VNI字段包含非边缘网关设备为目标终端设备所分配的标签;
对应地,底层包头包括:IP包头和用户数据报协议UDP包头,IP包头中的目的IP地址为非边缘网关设备的IP地址。
在一个可能的设计中,若与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,虚拟化包头中包括私网标签,私网标签为非边缘网关设备为目标终端设备所分配的标签;
对应地,处理器具体用于:
根据非边缘网关设备的IP地址以及第二映射信息,确定非边缘网关设备的公网MPLS标签;其中,第二映射信息包括:非边缘网关设备的IP地址与非边缘网关设备的公网MPLS标签之间的映射关系;
根据非边缘网关设备的公网MPLS标签,对虚拟化包头封装底层包头,底层包头中包括非边缘网关设备的公网MPLS标签。
在一个可能的设计中,收发器还用于:
接收非边缘网关设备发送的目标终端设备的可达信息;其中,目标终端设备的可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址以及MPLS标签栈。
在一个可能的设计中,目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,目标终端设备的可达信息位于MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
上述第十七方面的实施方式所提供的与源终端设备相连的边缘网关设备,其有益效果可以参见上述第十一方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第十八方面,本申请实施例提供一种网关设备,网关设备为与目标终端设备相连的边缘网关设备,边缘网关设备包括:存储器、处理器和收发器;
其中,存储器用于存储程序指令;
处理器用于调用存储器中的程序指令执行下述步骤:
将从非边缘网关设备接收到的封装数据包,依次解封封装数据包的底层包头以及虚拟化包头;其中,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、虚拟化包头以及底层包头;虚拟化包头包括:边缘网关设备为目标终端设备所分配的MPLS标签;
根据MAC数据包中的目标终端设备的MAC地址、虚拟化包头中的MPLS标签、以及映射信息,确定数据包转发接口;其中,映射信息包括:目标终端设备的MAC地址、虚拟化包头中的MPLS标签与数据转发接口之间的映射关系;
收发器用于将MAC数据包通过数据转发接口发送给目标终端设备。
在一个可能的设计中,收发器还用于:
向非边缘网关设备发送目标终端设备的可达信息;其中,目标终端设备的可达信息包括:目标终端设备的MAC地址、边缘网关设备的IP地址、以及边缘网关设备为目标终端设备所分配的MPLS标签。
在一个可能的设计中,目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,目标终端设备的可达信息位于MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
上述第十八方面的实施方式所提供的与目标终端设备相连的边缘网关设备,其有益效果可以参见上述第十二方面的各可能的实施方式所带来的有益效果,在此不再赘述。
本申请第十九方面提供一种网关设备,包括用于执行以上第一方面至第三方面、第十方面至第十二方面中任一方面所描述的任意一种方法的至少一个处理元件(或芯片)。
本申请第二十方面提供一种程序,该程序在被处理器执行时用于执行以上第一方面至第三方面、第十方面至第十二方面中任一方面所描述的任意一种方法。
本申请第二十一方面提供一种程序产品,例如计算机可读存储介质,包括第二十方面的程序。
本申请第二十二方面提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面至第三方面、第十方面至第十二方面中任一方面所描述的任意一种方法。
附图说明
图1为虚拟化叠加网络互联场景的结构示意图;
图2为本申请实施例中虚拟网络的结构示意图;
图3A为本申请提供的数据包传输方法实施例一的流程示意图;
图3B为本申请提供的数据包传输方法实施例一的网络结构示意图;
图4为本申请提供的数据包传输方法实施例四的流程示意图;
图5A为本申请提供的数据包传输方法实施例五的流程示意图;
图5B为本申请提供的数据包传输方法实施例五的网络结构示意图;
图6为本申请提供的数据包传输方法实施例八的流程示意图;
图7为本申请提供的网关设备实施例一的流程示意图;
图8为本申请提供的网关设备实施例二的流程示意图;
图9为本申请提供的网关设备实施例三的流程示意图;
图10为本申请提供的网关设备实施例五的流程示意图;
图11为本申请提供的网关设备实施例七的流程示意图。
具体实施方式
对本申请实施例中所涉及的部分词汇和应用场景进行解释说明。
本申请实施例中涉及多协议外部网关协议(Multiprotocol Border GatewayProtocol,MP-BGP)定义的多协议(Multiprotocol)BGP属性(即如表1所示的MP_REACH_NLRI字段,类型码Type=14),其中,MP_可达性(REACH)_网络层可达性信息(Network LayerReachability Information,NLRI)字段的主要功能是在MP-BGP消息中承载其它协议类型(例如IP-VPN、E-VPN等)信息。
表1、MP_REACH_NLRI字段的格式
参数名称 | 字节数 |
AFI | 2 |
SAFI | 1 |
下一跳设备网络地址的长度 | 1 |
下一跳设备网络地址 | 可变 |
保留 | 1 |
NLRI | 可变 |
可选地,当MP_REACH_NLRI字段中的地址族标识(Address Family Identifier,AFI)字段等于25且后续地址族标识(Subsequent Address Family Identifier,SAFI)字段等于70时,该MP_REACH_NLRI字段用于通告E-VPN协议信息。此时,NLRI字段格式为表2所示的E-VPN NLRI字段。
表2、E-VPN NLRI字段的格式
参数名称 | 字节数 |
RT | 1 |
长度 | 1 |
RTS | 可变 |
其中,E-VPN NLRI字段中的路由类型细节(Route Type specific,RTS)字段的具体格式随着路由类型(Route Type,RT)字段所取数值的不同而变化。现有技术中,E-VPNNLRI字段当前定义了4个Route Type,分别为:(1)Route Type=1:以太网自动发现路由(Ethernet Auto-Discovery(A-D)route)、(2)Route Type=2:MAC/IP通告路由(Advertisement route)、(3)Route Type=3:多播以太网标签路由(Inclusive MulticastEthernet Tag route)、(4)Route Type=4:以太网路段路由(Ethernet Segment route)。
例如,当Route Type=2时,E-VPN NLRI字段中的Route Type specific的具体格式如表3所示。此时,该MP-BGP消息用来在E-VPN的控制平面通告用户侧边缘设备(CustomerEdge,CE)的MAC地址及其对应的私网MPLS标签。
表3、Route Type specific字段的格式一
参数名称 | 字节数 |
RD | 8 |
ESI | 10 |
ETI | 4 |
MAC地址长度 | 1 |
MAC地址 | 6 |
IP地址长度 | 1 |
IP地址 | 0、4、16 |
MPLS标签1 | 3 |
MPLS标签2 | 0、3 |
其中各参数含义如下:
路由域(Routing Domain,RD):唯一标识一个虚拟化实例(虚拟化网络);
以太网段标识符(Ethernet Segment Identifier,ESI):用于在同一PE下防环路;
以太网标签ID(Ethernet Tag ID,ETI):用于在PE侧划分VLAN时使用,类似于VLAN标签;
MAC地址长度(Address Length):用于指示MAC地址长度;
MAC地址:用于指示MAC地址;
IP地址长度:用于指示IP地址长度;
IP地址:用于指示IP地址。
本申请实施例中,为了实现在E-VPN的控制平面通告目标终端设备的可达信息,通过在E-VPN NLRI字段中新增Route Type,例如Route Type=5:自治域间MAC/IP通告路由(Inter-AS MAC/IP Advertisement Route),用于通告目标终端设备的可达信息。具体的可实现方式参见本申请下述实施例二中所述。
为了便于描述,本申请实施例中涉及的与源终端设备相连的边缘网关设备称之为第一边缘网关设备,以及与目标终端设备相连的边缘网关设备称之为第二边缘网关设备。
本申请实施例中涉及的下一跳设备均是指沿源终端设备至目标终端设备方向(或者沿封装数据包的转发方向)的下一跳设备。
本申请实施例中涉及的上一跳设备均是指沿源终端设备至目标终端设备方向(或者沿封装数据包的转发方向)的上一跳设备。
本申请提供的数据包传输方法及网关设备,可以适用于如图1所示的虚拟化叠加网络互联场景,当然,也可以适用于如图1所示的其它等效或变形的虚拟网络场景,本申请实施例中对此并不作限制。
本申请涉及的每个虚拟化叠加网络均使用单独的网络地址空间,各虚拟化叠加网络之间的流量相互隔离,从而允许多租户共用一张物理网络。每个虚拟化叠加网络拥有一个全网唯一的VNI。可选地,虚拟化叠加网络采用的隧道封装格式可以包括但不限于下述格式:MPLS E-VPN、VxLAN、通用路由封装网络虚拟化(Network Virtualization usingGenericRouting Encapsulation,NVGRE)。
图2为本申请实施例中虚拟网络的结构示意图,如图2所示,虚拟网络主要由以下3部分组成:
(1)底层物理网络:由普通的IP或MPLS路由器组成,形成一张连通的IP或MPLS网络;
(2)NVE:用于维护TS与VNI之间的对应关系、TS与NVE之间的对应关系、以及负责底层(Underlay)包头的封装/解封装操作。如图2所示,NVE包括:NVE1、NVE2和NVE3。可选地,NVE可以是E-VPN技术中的提供商侧边缘设备(Provider Edge,PE),或者VxLAN技术中的VxLAN隧道端点(VXLAN Tunnel End Point,VTEP);当然,NVE还可以为其它形式的设备,本申请实施例中对此并不作限制。实际应用中,虚拟机监视器(Hypervisor)和虚拟交换机(Open vSwitch)常常扮演NVE的角色。
(3)TS:本申请实施例中所涉及的TS可以为网络终端设备(或者简称为终端设备),例如虚拟机(Virtual Machine,VM)。如图2所示,TS1和TS2属于虚拟化叠加网络A,TS3和TS4属于虚拟化叠加网络B。每个TS只能属于一个虚拟网络,同一个虚拟网络的TS之间可以直接通信。
在多个数据中心互联,尤其是混合云场景下,常常出现多个虚拟化叠加网络互联的情况。如图1所示,为一个典型的虚拟化叠加网络互联场景。其中,三个虚拟化叠加网络通过两个NVE以及两个网关(Gateway,GW)互联,形成一个虚拟网络。通常情况下,属于同一个虚拟网络的各TS(如图1中的TS1和TS2)可能位于不同的虚拟化叠加网络中,并且各TS(如TS1和TS2)之间通常需要进行通信。因此,TS1与TS2之间的各网关设备如何正确地转发TS1与TS2之间的数据包是亟待解决的技术问题。
现有技术中,各网关设备转发封装后的MAC数据包时都需要读取封装后的MAC数据包中内层的MAC数据包的目的MAC地址,增加了各网关设备处理数据包的工作量,降低了数据包的转发效率。
因此,本申请提供的数据包传输方法及网关设备,旨在解决现有技术中数据包转发效率较低的技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图3A为本申请提供的数据包传输方法实施例一的流程示意图,图3B为本申请提供的数据包传输方法实施例一的网络结构示意图。结合图3A和图3B所示,本实施例的方法可以包括:
步骤S301、第一边缘网关设备根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的IP地址以及MPLS标签栈。
本步骤中,第一边缘网关设备(即与源终端设备相连的边缘网关设备)根据第一边缘网关设备中的第一映射信息以及所获取的标识信息,确定非边缘网关设备(为第一边缘网关设备的下一跳设备)的IP地址以及MPLS标签栈。
其中,标识信息包括:第一边缘网关设备根据从源终端设备接收到的MAC数据包(MAC数据包中携带目标终端设备的MAC地址)所获取的目标终端设备的MAC地址,以及源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;第一边缘网关设备中的第一映射信息包括:标识信息与非边缘网关设备的IP地址以及MPLS标签栈之间的映射关系;MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备(即第二边缘网关设备)之间的各网关设备所分配的MPLS标签。
可选地,本申请实施例涉及的源终端设备可以为TS1、第一边缘网关设备可以为NVE1、目标终端设备可以为TS2、第二边缘网关设备可以为NVE2。本申请实施例中步骤S301-步骤S302中涉及的非边缘网关设备(即第一边缘网关设备的下一跳设备)可以为GW1。当然,在本申请实施例的数据包传输方法应用于其它虚拟网络场景时,源终端设备、第一边缘网关设备、非边缘网关设备、目标终端设备以及第二边缘网关设备等也可以为其它设备,本申请实施例中对此并不作限制。
可选地,MPLS标签栈可以包括:非边缘网关设备(如GW1)至第二边缘网关设备(如NVE2)之间的各网关设备为下一跳设备所分配的MPLS标签;例如:GW1为GW2分配的MPLS标签(如L GW2)、GW2为NVE2分配的标签(如L NVE2)、NVE2为TS2分配的MPLS标签(如L TS2)。当然,MPLS标签栈还可以包括:非边缘网关设备至第二边缘网关设备之间的各网关设备按照其它分配方式所分配的MPLS标签,本申请实施例中对此并不作限制。
可选地,第一边缘网关设备可以根据用于接收MAC数据包的接口以及预设映射信息,确定源终端设备所属虚拟化叠加网络的VNI;当然,第一边缘网关设备还可以通过其它方式确定源终端设备所属虚拟化叠加网络的VNI,本申请实施例中对此并不作限制。
可选地,第一边缘网关设备可以根据从非边缘网关设备接收的目标终端设备的可达信息以及源终端设备所属虚拟化叠加网络的VNI,生成第一映射信息。其中,目标终端设备的可达信息可以包括:目标终端设备的MAC地址、非边缘网关设备的IP地址以及MPLS标签栈。其中,目标终端设备的可达信息的获取方式可参见下述数据包传输方法实施例二中的相关内容。
可选地,第一映射信息可以以表格形式存储于第一边缘网关设备中,当然也可以其它形式存储于第一边缘网关设备中,本申请实施例中对此并不作限制。
当然,第一边缘网关设备还可以通过其它方式获取到第一映射信息,本申请实施例中对此并不作限制。
步骤S302、第一边缘网关设备根据非边缘网关设备的IP地址以及MPLS标签栈,对MAC数据包进行封装,得到封装数据包,并将封装数据包发送给非边缘网关设备。
本步骤中,第一边缘网关设备根据非边缘网关设备的IP地址以及MPLS标签栈,依次为MAC数据包封装MPLS标签栈以及底层包头,得到封装数据包,并将封装数据包发送给非边缘网关设备。可选地,底层包头包括但不限于:IP包头和UDP包头、公网MPLS标签。可选地,底层包头的类型可以基于第一边缘网关设备所属的虚拟化叠加网络所采用的封装格式进行适应性变化;例如:若第一边缘网关设备所属的虚拟化叠加网络采用VxLAN封装格式,底层包头包括:IP包头和UDP包头;若第一边缘网关设备所属的虚拟化叠加网络采用E-VPN封装格式,底层包头中包括非边缘网关设备的公网MPLS标签。
可选地,第一边缘网关设备根据MPLS标签栈对MAC数据包依次按顺序封装:第二边缘网关设备至非边缘网关设备之间的各网关设备所分配的MPLS标签(例如各网关设备为其下一跳设备所分配的MPLS标签),形成封装MPLS标签栈。例如:封装MPLS标签栈的底层MPLS标签至顶层MPLS标签依次为:NVE2为TS2分配的MPLS标签(如L TS2)、GW2为NVE2分配的MPLS标签(如L NVE2)以及GW1为GW2分配的MPLS标签(如L GW2)。
进一步地,第一边缘网关设备根据非边缘网关设备的IP地址,对封装MPLS标签栈封装底层包头。可选地,根据第一边缘网关设备所属的虚拟化叠加网络所采用的封装格式的不同,根据非边缘网关设备的IP地址,对封装MPLS标签栈封装底层包头,可以至少通过如下两种可实现方式:
第一种可实现方式:若第一边缘网关设备所属的虚拟化叠加网络采用VxLAN封装格式,底层包头包括:IP包头和UDP包头,IP包头中的目的IP地址为非边缘网关设备的IP地址。
第二种可实现方式:若第一边缘网关设备所属的虚拟化叠加网络采用E-VPN封装格式,第一边缘网关设备根据非边缘网关设备的IP地址以及第一边缘网关设备中的第二映射信息,确定非边缘网关设备的公网MPLS标签。其中,第二映射信息包括:非边缘网关设备的IP地址与非边缘网关设备的公网MPLS标签之间的映射关系;
第一边缘网关设备根据非边缘网关设备的公网MPLS标签,对封装MPLS标签栈封装底层包头,所述底层包头中包括非边缘网关设备的公网MPLS标签。
可选地,第二映射信息可以以表格形式存储于第一边缘网关设备中,当然也可以其它形式存储于第一边缘网关设备中,本申请实施例中对此并不作限制。
当然,根据非边缘网关设备的IP地址,对封装MPLS标签栈封装底层包头,还可以采用其它可实现方式,本申请实施例中对此并不作限制。
步骤S303、非边缘网关设备将接收到的封装数据包,依次解封封装数据包的底层包头以及封装MPLS标签栈的最外层MPLS标签。
本步骤中,非边缘网关设备从非边缘网关设备的上一跳设备接收到封装数据包,可选地,非边缘网关设备的上一跳设备可以为第一边缘网关设备(此时,非边缘网关设备可以为GW1),或者,非边缘网关设备的上一跳设备可以为另一非边缘网关设备(此时,非边缘网关设备可以为GW2,另一非边缘网关设备可以为GW1)。考虑到非边缘网关设备为GW1或GW2,其所执行的操作类似,因此,本申请实施例中下述部分以非边缘网关设备为GW1为例进行解释说明。
进一步地,非边缘网关设备依次解封封装数据包的底层包头以及封装MPLS标签栈的最外层MPLS标签。
可选地,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包(MAC数据包中携带目标终端设备的MAC地址)、封装MPLS标签栈以及底层包头;封装MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备(即第二边缘网关设备)之间的各网关设备所分配的MPLS标签;最外层MPLS标签包括:非边缘网关设备为下一跳设备所分配的MPLS标签。可选地,封装MPLS标签栈可以包括:非边缘网关设备至第二边缘网关设备之间的各网关设备为下一跳设备所分配的MPLS标签;例如GW1为GW2分配的MPLS标签、GW2为NVE2分配的标签、NVE2为TS2分配的MPLS标签。
可选地,封装MPLS标签栈的底层MPLS标签至顶层MPLS标签依次可以为:第二边缘网关设备(如NVE2)至非边缘网关设备(如GW1)之间的各网关设备为下一跳设备所分配的MPLS标签;例如NVE2为TS2分配的MPLS标签(如L TS2)、GW2为NVE2分配的标签(如L NVE2)以及GW1为GW2分配的MPLS标签(如L GW2)。其中,最外层MPLS标签(或顶层MPLS标签)包括:非边缘网关设备(如GW1)为下一跳设备(如GW2)所分配的MPLS标签(如L GW2)。
可选地,根据非边缘网关设备的上一跳设备(如NVE1)所属的虚拟化叠加网络所采用的封装格式的不同,封装数据包中的底层包头可以包括但不限于:IP包头和UDP包头(IP包头中的目的IP地址为非边缘网关设备的IP地址)、非边缘网关设备的公网MPLS标签。
步骤S304、非边缘网关设备根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的IP地址。
本步骤中,非边缘网关设备根据最外层MPLS标签(即非边缘网关设备为下一跳设备所分配的MPLS标签)以及非边缘网关设备中的转发信息,确定非边缘网关设备的下一跳设备(如GW2)的IP地址。其中,非边缘网关设备中的转发信息包括:最外层MPLS标签(即非边缘网关设备为下一跳设备所分配的MPLS标签)与非边缘网关设备的下一跳设备的IP地址之间的映射关系。
可选地,转发信息可以以表格形式存储于非边缘网关设备中,当然也可以其它形式存储于非边缘网关设备中,本申请实施例中对此并不作限制。
步骤S305、非边缘网关设备根据非边缘网关设备的下一跳设备的IP地址,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,得到新的封装数据包,并将新的封装数据包发送给非边缘网关设备的下一跳设备。
本步骤中,非边缘网关设备根据非边缘网关设备的下一跳设备的IP地址,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈(剩余封装MPLS标签栈的底层MPLS标签至顶层MPLS标签依次为:第二边缘网关设备至非边缘网关设备的下一跳设备之间的各网关设备为下一跳设备所分配的MPLS标签,例如NVE2为TS2分配的MPLS标签以及GW2为NVE2分配的标签)重新封装底层包头,以得到新的封装数据包。可选地,根据非边缘网关设备所属的虚拟化叠加网络所采用的封装格式的不同,根据非边缘网关设备的下一跳设备的IP地址,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,可以至少通过如下两种可实现方式:
第一种可实现方式:若非边缘网关设备所属的虚拟化叠加网络采用VxLAN封装格式,重新封装的底层包头包括:IP包头和UDP包头,IP包头中的目的IP地址为非边缘网关设备的下一跳设备(如GW2)的IP地址。
第二种可实现方式,若非边缘网关设备所属的虚拟化叠加网络采用E-VPN封装格式,非边缘网关设备根据非边缘网关设备的下一跳设备(如GW2)的IP地址以及非边缘网关设备中的映射信息,确定非边缘网关设备的下一跳设备(如GW2)对应的公网MPLS标签。其中,非边缘网关设备中的映射信息包括:非边缘网关设备的下一跳设备的IP地址与非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
非边缘网关设备根据非边缘网关设备的下一跳设备(如GW2)的公网MPLS标签,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,底层包头中包括非边缘网关设备的下一跳设备(如GW2)的公网MPLS标签。
可选地,映射信息可以以表格形式存储于非边缘网关设备中,当然也可以其它形式存储于非边缘网关设备中,本申请实施例中对此并不作限制。
当然,根据非边缘网关设备的下一跳设备的IP地址,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,还可以采用其它可实现方式,本申请实施例中对此并不作限制。
可选地,若非边缘网关设备为GW1,则非边缘网关设备的下一跳设备可以为GW2,对应地,GW2对接收到的封装数据包的处理步骤可以参见步骤S303-步骤S305,此处不再赘述;若非边缘网关设备为GW2,则非边缘网关设备的下一跳设备可以为NVE2,对应地,NVE2对接收到的封装数据包的处理步骤可以参加下述步骤S306-步骤S308。
步骤S306、第二边缘网关设备将从非边缘网关设备接收到的封装数据包,依次解封封装数据包的底层包头以及封装MPLS标签栈。
本步骤中,第二边缘网关设备(即与目标终端设备相连的边缘网关设备)接收第二边缘网关设备的上一跳设备(即非边缘网关设备,例如GW2)所发送的封装数据包(即非边缘网关设备将从非边缘网关设备的上一跳设备发送的封装数据包解封之后又重新封装后所得到的新的封装数据包),并将接收到的封装数据包依次解封封装数据包的底层包头以及封装MPLS标签栈。
可选地,封装数据包的封装次序依次包括:MAC数据包(MAC数据包中携带目标终端设备的MAC地址)、封装MPLS标签栈(即非边缘网关设备将从非边缘网关设备的上一跳设备发送的封装数据包解封之后的剩余封装MPLS标签栈)以及底层包头;封装MPLS标签栈包括:第二边缘网关设备为目标终端设备(如TS2)所分配的MPLS标签(如L TS2)。
可选地,根据第二边缘网关设备的上一跳设备(如GW2)所属的虚拟化叠加网络所采用的封装格式的不同,封装数据包中的底层包头可以包括但不限于:IP包头和UDP包头(IP包头中的目的IP地址为第二边缘网关设备的IP地址)、第二边缘网关设备的公网MPLS标签。
步骤S307、第二边缘网关设备根据MAC数据包中的目标终端设备的MAC地址、封装MPLS标签栈中的MPLS标签、以及映射信息,确定数据包转发接口。
本步骤中,第二边缘网关设备在依次解封封装数据包的底层包头以及封装MPLS标签栈后,根据MAC数据包的内层中所包含的目标终端设备的MAC地址、封装MPLS标签栈中的MPLS标签(即第二边缘网关设备为目标终端设备所分配的MPLS标签)、以及第二边缘网关设备中的映射信息,确定数据包转发接口。其中,第二边缘网关设备中的映射信息包括:目标终端设备的MAC地址、封装MPLS标签栈中的MPLS标签(即第二边缘网关设备为目标终端设备所分配的MPLS标签)与数据包转发接口之间的映射关系。
可选地,映射信息可以以表格形式存储于第二边缘网关设备中,当然也可以其它形式存储于第二边缘网关设备中,本申请实施例中对此并不作限制。
步骤S308、第二边缘网关设备将MAC数据包通过数据转发接口发送给目标终端设备。
综上所述,本申请实施例提供的数据包传输方法,非边缘网关设备只需获取封装MPLS标签栈的最外层MPLS标签,并直接根据最外层MPLS标签进行查询,便可确定非边缘网关设备的下一跳设备。可见,相比与现有技术中,非边缘网关设备在转发MAC数据包时无需读取内层MAC数据包的目的MAC地址,从而减少了非边缘网关设备处理数据包的工作量,提高了数据包的转发效率。
本申请提供的数据包传输方法实施例二中,在上述实施例的基础上,对第一边缘网关设备如何获取目标终端设备的可达信息的过程进行详细描述。结合图3B所示,本实施例的方法可以包括:
步骤S1、第二边缘网关设备向非边缘网关设备发送目标终端设备的可达信息。
本步骤中,第二边缘网关设备(如NVE2)向第二边缘网关设备的上一跳设备(即非边缘网关设备,例如GW2)发送目标终端设备的可达信息。其中,目标终端设备的可达信息可以包括:目标终端设备(如TS2)的MAC地址、第二边缘网关设备(如NVE2)的IP地址、以及第二边缘网关设备为目标终端设备所分配的MPLS标签(如L TS2)。
可选地,目标终端设备的可达信息可携带于MP-BGP消息中。
可选地,目标终端设备的可达信息可位于MP-BGP消息中的E-VPN网络层可达性信息(Network Layer Reachability Information,NLRI)字段。可选地,通过在E-VPN NLRI字段中新增Route Type(如Route Type=5:Inter-AS MAC/IP Advertisement Route),用于通告目标终端设备的可达信息。对应地,E-VPN NLRI字段中的Route Type specific字段的具体格式如下表4所示:
表4、Route Type specific字段的格式二
其中部分参数含义如下:
MAC地址:用于指示MAC地址,例如目标终端设备的MAC地址;
IP地址:用于指示IP地址,例如第二边缘网关设备的IP地址;
标签栈长度(L Stack Length):标签栈的长度;
标签栈:用于指示标签。可选地,标签栈中包括:第二边缘网关设备为目标终端设备所分配的MPLS标签。
当然,目标终端设备的可达信息也可位于MP-BGP消息中的其它字段,或者,目标终端设备的可达信息也可携带于其它消息中,本申请实施例中对此并不作限制。
步骤S2、非边缘网关设备接收非边缘网关设备的下一跳设备发送的目标终端设备的可达信息。
可选地,非边缘网关设备的下一跳设备可以为第二边缘网关设备(此时,非边缘网关设备可以为GW2),或者,非边缘网关设备的下一跳设备可以为另一非边缘网关设备(此时,非边缘网关设备可以为GW1,另一非边缘网关设备可以为GW2)。考虑到非边缘网关设备为GW1或GW2,其所执行的操作类似,因此,本申请实施例中下述部分以非边缘网关设备为GW1为例进行解释说明。
为了便于区别,非边缘网关设备接收到的目标终端设备的可达信息称之为第一可达信息,可选地,目标终端设备的第一可达信息包括:目标终端设备的MAC地址、非边缘网关设备(如GW1)的下一跳设备(如GW2)的IP地址、以及非边缘网关设备的下一跳设备(如GW2)至第二边缘网关设备(如NVE2)之间的各网关设备所分配的MPLS标签(例如各网关设备为下一跳设备所分配的MPLS标签)。例如,目标终端设备的第一可达信息中包括:GW2为NVE2分配的MPLS标签(如L NVE2)、以及NVE2为TS2分配的MPLS标签(如L TS2)。
步骤S3、非边缘网关设备向非边缘网关设备的上一跳设备发送目标终端设备的可达信息。
为了便于区别,非边缘网关设备向非边缘网关设备的上一跳设备所发送的目标终端设备的可达信息称之为第二可达信息。
本步骤中,非边缘网关设备(如GW1)向非边缘网关设备的上一跳设备(如NVE1)发送目标终端设备的第二可达信息。可选地,目标终端设备的第二可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址、以及非边缘网关设备至第二边缘网关设备之间的各网关设备所分配的MPLS标签(例如各网关设备为下一跳设备所分配的MPLS标签)。例如,目标终端设备的第二可达信息中包括:GW1为GW2分配的MPLS标签、GW2为NVE2分配的MPLS标签、以及NVE2为TS2分配的MPLS标签。
可选地,目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;和/或,目标终端设备的第二可达信息携带于第二MP-BGP消息中。例如,第一MP-BGP消息可以为非边缘网关设备的下一跳设备向非边缘网关设备所发送的MP-BGP消息;第二MP-BGP消息可以为非边缘网关设备向非边缘网关设备的上一跳设备所发送的MP-BGP消息。
可选地,目标终端设备的第一可达信息位于第一MP-BGP消息中的E-VPN NLRI字段;和/或,目标终端设备的第二可达信息位于第二MP-BGP消息中的E-VPN NLRI字段。具体的,目标终端设备的第一可达信息和/或第二可达信息的携带方式,可参见上述步骤S1中关于目标终端设备的可达信息的携带方式,此处不再赘述。
步骤S4、第一边缘网关设备接收非边缘网关设备发送的目标终端设备的可达信息。
本步骤中,第一边缘网关设备(如NVE1)接收第一边缘网关设备的下一跳设备(即非边缘网关设备,如GW1)所发送的目标终端设备的可达信息(例如步骤S中的目标终端设备的第二可达信息)。其中,目标终端设备的可达信息可以包括:目标终端设备的MAC地址、非边缘网关设备(如GW1)的IP地址、以及MPLS标签栈。可选地,MPLS标签栈可以包括:非边缘网关设备(如GW1)至第二边缘网关设备(如NVE2)之间的各网关设备为下一跳设备所分配的MPLS标签,具体的可参见上述图3A所示实施例中步骤S301中关于MPLS标签栈的记载,此处不再赘述。
可选地,第一边缘网关设备所接收的目标终端设备的可达信息可位于多协议外部网关协议MP-BGP消息中的E-VPN NLRI字段;当然,该目标终端设备的可达信息还可位于MP-BGP消息中的其它字段,或者携带于其它消息中,本申请实施例中对此并不作限制。
综上所述,本申请实施例提供的数据包传输方法,第一边缘网关设备可以获取到目标终端设备的MAC地址以及MPLS标签栈,以便将封装后的MAC数据包(包含封装MPLS标签栈)发送给非边缘网关设备,进一步地,非边缘网关设备在获取封装MPLS标签栈的最外层MPLS标签后,便可直接根据最外层MPLS标签进行查询,以确定非边缘网关设备的下一跳设备。可见,相比与现有技术中,非边缘网关设备在转发MAC数据包时无需读取内层MAC数据包的目的MAC地址,从而减少了非边缘网关设备处理数据包的工作量,大大提高了数据包的转发效率。
本申请提供的数据包传输方法实施例三中,在上述实施例二的基础上,对NVE1如何获取TS2的可达信息的过程进行详细描述。结合图3B所示,本实施例的方法可以包括:
步骤S1、NVE2向GW2发送TS2的可达信息1。
其中,TS2的可达信息1包括:TS2的MAC地址、NVE2的IP地址、NVE2为TS2分配的MPLS标签(如L TS2)。
可选地,TS2的可达信息1可位于MP-BGP消息中的E-VPN NLRI字段;其中,如表4所示,E-VPN NLRI字段中Route Type specific字段所包括的MAC地址包括TS2的MAC地址、IP地址包括NVE2的IP地址、标签栈包括:NVE2为TS2分配的MPLS标签(如L TS2);对应地,标签栈长度占3字节。
步骤S2、GW2向GW1发送TS2的可达信息2。
本步骤中,GW2在接收到NVE2发送的TS2的可达信息1后,向GW1发送TS2的可达信息2(即对TS2的可达信息1修改后得到的可达信息)。其中,TS2的可达信息2包括:TS2的MAC地址、GW2的IP地址、NVE2为TS2分配的MPLS标签(如L TS2)以及GW2为NVE2分配的MPLS标签(如L NVE2)。
可选地,TS2的可达信息2可以位于MP-BGP消息中E-VPN NLRI字段;其中,如表4所示,E-VPN NLRI字段中Route Type specific字段所包括的IP地址包括GW2的IP地址、标签栈包括:NVE2为TS2分配的MPLS标签以及GW2为NVE2分配的MPLS标签;对应地,标签栈长度占6字节。
步骤S3、GW1向NVE1发送TS2的可达信息3。
本步骤中,GW1在接收到GW2发送的TS的可达信息2后,向NVE1发送TS2的可达信息3(即对TS2的可达信息2修改后得到的可达信息)。其中,TS2的可达信息3包括:TS2的MAC地址、GW1的IP地址、NVE2为TS2分配的MPLS标签(如L TS2)、GW2为NVE2分配的MPLS标签(如LNVE2)以及GW1为GW2分配的MPLS标签(如L GW2)。可选地,NVE2为TS2分配的MPLS标签(如LTS2)、GW2为NVE2分配的MPLS标签(如L NVE2)以及GW1为GW2分配的MPLS标签(如L GW2)组成TS2至NVE1之间链路对应的MPLS标签栈。
可选地,TS2的可达信息3可以位于MP-BGP消息中E-VPN NLRI字段;其中,如表4所示,E-VPN NLRI字段中Route Type specific字段所包括的IP地址包括GW1的IP地址、标签栈包括:NVE2为TS2分配的MPLS标签(如L TS2)、GW2为NVE2分配的MPLS标签(如L NVE2)、以及GW1为GW2分配的MPLS标签(如L GW2);对应地,标签栈长度占9字节。
综上所述,本申请实施例提供的数据包传输方法,通过TS2至TS1之间链路中的每个网关设备为沿TS1至TS2方向的下一跳设备分配MPLS标签,并向该网关设备的上一跳设备发送TS2的可达信息,以便该网关设备的上一跳设备可以获取到TS2的MAC地址、该网关设备的IP地址以及NVE2至该网关设备之间的各网关设备为下一跳设备所分配的MPLS标签。
图4为本申请提供的数据包传输方法实施例四的流程示意图。在上述实施例的基础上,结合图3B和图4所示,本实施例的方法可以包括:
步骤S401、NVE1接收TS1发送的MAC数据包。
其中,MAC数据包的目的MAC地址为TS2的MAC地址。
步骤S402、NVE1根据第一映射信息以及所获取的标识信息,确定GW1的IP地址以及MPLS标签栈。
可选地,标识信息包括:TS2的MAC地址以及TS1所属虚拟化叠加网络的VNI(如第一VNI);NVE1中的第一映射信息包括:标识信息与GW1的IP地址以及MPLS标签栈之间的映射关系。其中,MPLS标签栈包括:GW1至NVE2之间的各网关设备为下一跳设备所分配的MPLS标签,例如:GW1为GW2分配的MPLS标签(如L GW2)、GW2为NVE2分配的标签(如L NVE2)、NVE2为TS2分配的MPLS标签(如L TS2)。
可选地,NVE1可以根据用于接收MAC数据包的接口以及预设映射信息,确定TS1所属虚拟化叠加网络的VNI;当然,NVE1还可以通过其它方式确定TS1所属虚拟化叠加网络的VNI,本申请实施例中对此并不作限制。
步骤S403、NVE1根据GW1的IP地址以及MPLS标签栈,对MAC数据包进行封装,得到封装数据包1,并将封装数据包1发送给GW1。
本步骤中,NVE1根据MPLS标签栈在MAC数据包外部依次按顺序封装:NVE2至GW1之间的各网关设备为下一跳设备所分配的MPLS标签(例如NVE2为TS2分配的MPLS标签、GW2为NVE2分配的标签、GW1为GW2分配的MPLS标签),形成封装MPLS标签栈。进一步地,NVE1根据GW1的IP地址在封装MPLS标签栈的外部封装底层包头(即IP包头和UDP包头),得到封装数据包1,其中,IP包头中的目的IP地址为GW1的IP地址。进一步地,NVE1将封装数据包1发送给GW1。
步骤S404、GW1依次解封封装数据包1的底层包头以及封装MPLS标签栈的最外层MPLS标签。
本步骤中,GW1在接收到NVE1发送的封装数据包1后,依次解封封装数据包1的底层包头(即IP包头和UDP包头)以及封装MPLS标签栈的最外层MPLS标签;其中,最外层MPLS标签包括:GW1为GW2分配的MPLS标签(如L GW2)。
步骤S405、GW1根据最外层MPLS标签以及GW1中的转发信息确定GW2的IP地址,并根据GW2的IP地址以及GW1中的映射信息确定GW2对应的公网MPLS标签。
其中,GW1中的转发信息包括:GW1为GW2分配的MPLS标签与GW2的IP地址之间的映射关系;GW1中的映射信息包括:GW2的IP地址与GW2的公网MPLS标签之间的映射关系。
步骤S406、GW1根据GW2的公网MPLS标签,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,得到封装数据包2,并将封装数据包2发送给GW2。
本步骤中,GW1根据GW2的公网MPLS标签,在封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈的外部重新封装底层包头(底层包头中包括GW2的公网MPLS标签),得到封装数据包2,并将封装数据包2发送给GW2。其中,剩余封装MPLS标签栈的底层MPLS标签至顶层MPLS标签依次为:NVE2为TS2分配的MPLS标签(如L TS2)、GW2为NVE2分配的标签(如L NVE2)。
步骤S407、GW2将从GW1接收到的封装数据包2,依次解封封装数据包2的底层包头以及封装MPLS标签栈的最外层MPLS标签。
可选地,封装数据包2的底层包头中包括GW2的公网MPLS标签以及封装MPLS标签栈(即上述步骤S406中的剩余封装MPLS标签栈)的底层MPLS标签至顶层MPLS标签依次为:NVE2为TS2分配的MPLS标签(如L TS2)、GW2为NVE2分配的标签(如L NVE2);其中,封装MPLS标签栈的最外层MPLS标签包括:GW2为NVE2分配的标签(如L NVE2)。
步骤S408、GW2根据最外层MPLS标签以及GW2中的转发信息确定NVE2的IP地址。
其中,GW2中的转发信息包括:GW2为NVE2分配的标签(即GW2为NVE2分配的标签)与NVE2的IP地址之间的映射关系。
步骤S409、GW2根据NVE2的IP地址,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,得到封装数据包3,并将封装数据包3发送给NVE2。
本步骤中,GW2根据NVE2的IP地址,在封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈的外部重新封装底层包头(即IP包头和UDP包头,IP包头中的目的IP地址为NVE2的IP地址),得到封装数据包3,并将封装数据包3发送给NVE2。其中,剩余封装MPLS标签栈仅包括:NVE2为TS2分配的MPLS标签(如L TS2)。
步骤S410、NVE2将从GW2接收到的封装数据包3,依次解封封装数据包3的底层包头以及封装MPLS标签栈。
本步骤中,NVE2依次解封封装数据包3的底层包头以及封装MPLS标签栈(即上述步骤S409中的剩余封装MPLS标签栈),以获取到封装数据包3的内层中所包含的MAC数据包(目的MAC地址为TS2的MAC地址)。可选地,底层包头包括:IP包头和UDP包头,IP包头中的目的IP地址为NVE2的IP地址;封装MPLS标签栈仅包括:NVE2为TS2分配的MPLS标签(如L TS2)。
步骤S411、NVE2根据MAC数据包中的TS2的MAC地址、NVE2为TS2分配的MPLS标签、以及映射信息,确定数据包转发接口,并将MAC数据包通过数据转发接口发送给TS2。
其中,NVE2中的映射信息包括:TS2的MAC地址、NVE2为TS2分配的MPLS标签与数据包转发接口之间的映射关系。
综上所述,本申请实施例提供的数据包传输方法,非边缘网关设备(如GW1和/或GW2)只需获取封装MPLS标签栈的最外层MPLS标签,并直接根据最外层MPLS标签进行查询,便可确定非边缘网关设备的下一跳设备。可见,相比与现有技术中,非边缘网关设备在转发MAC数据包时无需读取内层MAC数据包的目的MAC地址,从而减少了非边缘网关设备处理数据包的工作量,提高了数据包的转发效率。
图5A为本申请提供的数据包传输方法实施例五的流程示意图,图5B为本申请提供的数据包传输方法实施例五的网络结构示意图。结合图5A和图5B所示,本实施例的方法可以包括:
步骤S501、第一边缘网关设备根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的IP地址以及MPLS标签栈。
本步骤中,第一边缘网关设备(即与源终端设备相连的边缘网关设备)根据第一边缘网关设备中的第一映射信息以及所获取的标识信息,确定非边缘网关设备(为第一边缘网关设备的下一跳设备)的IP地址以及MPLS标签栈。
其中,标识信息包括:第一边缘网关设备根据从源终端设备接收到的MAC数据包(MAC数据包中携带目标终端设备的MAC地址)所获取的目标终端设备的MAC地址,以及源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;第一边缘网关设备中的第一映射信息包括:标识信息与非边缘网关设备的IP地址以及所述MPLS标签栈之间的映射关系;MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备(即第二边缘网关设备)的上一跳设备之间的各网关设备所分配的MPLS标签以及非边缘网关设备为目标终端设备所分配的MPLS标签。
可选地,本申请实施例涉及的源终端设备可以为TS1、第一边缘网关设备可以为NVE1、目标终端设备可以为TS2、第二边缘网关设备可以为NVE2。本申请实施例中步骤S501-步骤S502中涉及的非边缘网关设备(即第一边缘网关设备的下一跳设备)可以为GW1。当然,在本申请实施例的数据包传输方法应用于其它虚拟网络场景时,源终端设备、第一边缘网关设备、非边缘网关设备、目标终端设备以及第二边缘网关设备等也可以为其它设备,本申请实施例中对此并不作限制。
可选地,MPLS标签栈可以包括:非边缘网关设备(如GW1)至第二边缘网关设备的上一跳设备(如GW2)之间的各网关设备为下一跳设备所分配的MPLS标签以及非边缘网关设备(如GW1)为目标终端设备所分配的MPLS标签;例如:GW1为GW2分配的MPLS标签(如L GW2)、GW2为NVE2分配的MPLS标签(如L NVE2)、以及GW1为TS2分配的MPLS标签(如L”TS2)。当然,MPLS标签栈还可以包括:非边缘网关设备至第二边缘网关设备的上一跳设备之间的各网关设备按照其它分配方式所分配的MPLS标签,本申请实施例中对此并不作限制。
可选地,第一边缘网关设备可以根据用于接收MAC数据包的接口以及预设映射信息,确定源终端设备所属虚拟化叠加网络的VNI;当然,第一边缘网关设备还可以通过其它方式确定源终端设备所属虚拟化叠加网络的VNI,本申请实施例中对此并不作限制。
可选地,第一边缘网关设备可以根据从边缘网关设备接收的目标终端设备(如TS2)的可达信息以及源终端设备所属虚拟化叠加网络的VNI,生成第一映射信息。其中,目标终端设备的可达信息可以包括:目标终端设备的MAC地址、非边缘网关设备的IP地址以及MPLS标签栈。其中,目标终端设备(如TS2)的可达信息的获取方式可参见下述数据包传输方法实施例六中的相关内容。
可选地,第一映射信息可以以表格形式存储于第一边缘网关设备中,当然也可以其它形式存储于第一边缘网关设备中,本申请实施例中对此并不作限制。
当然,第一边缘网关设备还可以通过其它方式获取到第一映射信息,本申请实施例中对此并不作限制。
步骤S502、第一边缘网关设备根据非边缘网关设备的IP地址以及MPLS标签栈,对MAC数据包进行封装,得到封装数据包,并将封装数据包发送给非边缘网关设备。
本步骤中,第一边缘网关设备根据非边缘网关设备的IP地址以及MPLS标签栈,依次为MAC数据包封装MPLS标签栈、虚拟化包头以及底层包头,得到封装数据包,并将封装数据包发送给非边缘网关设备。
可选地,虚拟化包头和/或底层包头可以基于第一边缘网关设备所属的虚拟化叠加网络所采用的封装格式进行适应性变化。例如:若第一边缘网关设备所属的虚拟化叠加网络采用VxLAN封装格式,虚拟化包头为VxLAN包头(VxLAN包头中的VNI字段包含非边缘网关设备为目标终端设备所分配的标签),对应地,底层包头包括:IP包头和UDP包头;若第一边缘网关设备所属的虚拟化叠加网络采用E-VPN封装格式,虚拟化包头中包括私网标签(私网标签为非边缘网关设备为目标终端设备所分配的标签),对应地,底层包头中包括非边缘网关设备的公网MPLS标签。
可选地,第一边缘网关设备根据MPLS标签栈对MAC数据包按顺序依次封装:第二边缘网关设备的上一跳设备(如GW2)至非边缘网关设备(如GW1)之间的各网关设备所分配的MPLS标签(例如各网关设备为其下一跳设备所分配的MPLS标签),形成封装MPLS标签栈。例如:封装MPLS标签栈的底层MPLS标签至顶层MPLS标签依次为:GW2为NVE2分配的MPLS标签(如L NVE2)以及GW1为GW2分配的MPLS标签(如L GW2)。
进一步地,第一边缘网关设备根据非边缘网关设备(如GW1)为目标终端设备所分配的标签,对封装MPLS标签栈封装虚拟化包头。可选地,若第一边缘网关设备所属的NVO采用VxLAN封装格式,虚拟化包头为VxLAN包头,VxLAN包头中的VNI字段包含非边缘网关设备(如GW1)为目标终端设备(如TS2)所分配的标签(如L”TS2);若虚拟化包头中包括私网标签,私网标签为非边缘网关设备为目标终端设备所分配的标签(如L”TS2)。
进一步地,第一边缘网关设备根据非边缘网关设备的IP地址,对虚拟化包头封装底层包头。可选地,根据第一边缘网关设备所属的虚拟化叠加网络所采用的封装格式的不同,根据非边缘网关设备的IP地址,对虚拟化包头封装底层包头,可以至少通过如下两种可实现方式:
第一种可实现方式:若第一边缘网关设备所属的虚拟化叠加网络采用VxLAN封装格式,底层包头包括:IP包头和UDP包头,IP包头中的目的IP地址为非边缘网关设备(如GW1)的IP地址。
第二种可实现方式:若第一边缘网关设备所属的虚拟化叠加网络采用E-VPN封装格式,第一边缘网关设备根据非边缘网关设备的IP地址以及第一边缘网关设备中的第二映射信息,确定非边缘网关设备的公网MPLS标签。其中,第二映射信息包括:非边缘网关设备的IP地址与非边缘网关设备的公网MPLS标签之间的映射关系;
第一边缘网关设备根据非边缘网关设备的公网MPLS标签,对虚拟化包头封装底层包头,底层包头中包括非边缘网关设备的公网MPLS标签。
可选地,第二映射信息可以以表格形式存储于第一边缘网关设备中,当然也可以其它形式存储于第一边缘网关设备中,本申请实施例中对此并不作限制。
当然,根据非边缘网关设备的IP地址,对虚拟化包头封装底层包头,还可以采用其它可实现方式,本申请实施例中对此并不作限制。
步骤S503、非边缘网关设备将接收到的封装数据包,依次解封封装数据包的底层包头、虚拟化包头以及封装MPLS标签栈的最外层MPLS标签。
本步骤中,非边缘网关设备从非边缘网关设备的上一跳设备接收到的封装数据包,可选地,非边缘网关设备的上一跳设备可以为第一边缘网关设备(此时,非边缘网关设备可以为GW1),或者,非边缘网关设备的上一跳设备可以为另一非边缘网关设备(此时,非边缘网关设备可以为GW2,另一非边缘网关设备可以为GW1)。考虑到非边缘网关设备为GW1或GW2,其所执行的操作类似,因此,本申请实施例中下述部分以非边缘网关设备为GW1为例进行解释说明。
进一步地,非边缘网关设备依次解封封装数据包的底层包头、虚拟化包头以及封装MPLS标签栈的最外层MPLS标签。
可选地,封装数据包的封装次序依次包括:媒体访问控制层MAC数据包(MAC数据包中携带目标终端设备的MAC地址)、封装MPLS标签栈、虚拟化包头以及底层包头;封装MPLS标签栈包括:非边缘网关设备至与目标终端设备相连的边缘网关设备(即第二边缘网关设备)的上一跳设备之间的各网关设备所分配的MPLS标签;虚拟化包头包括:非边缘网关设备为目标终端设备所分配的MPLS标签;最外层MPLS标签包括:非边缘网关设备为下一跳设备所分配的MPLS标签。可选地,封装MPLS标签栈可以包括:非边缘网关设备(如GW1)至第二边缘网关设备的上一跳设备(如GW2)之间的各网关设备为下一跳设备所分配的MPLS标签;例如GW1为GW2分配的MPLS标签(如L GW2)以及GW2为NVE2分配的标签(如L NVE2)。
可选地,封装MPLS标签栈的底层MPLS标签至顶层MPLS标签依次为:第二边缘网关设备的上一跳设备(如GW2)至非边缘网关设备(如GW1)之间的各网关设备为下一跳设备所分配的MPLS标签;例如:GW2为NVE2分配的MPLS标签(如L NVE2)、以及GW1为GW2分配的MPLS标签(如L GW2)。其中,最外层MPLS标签(或顶层MPLS标签)包括:非边缘网关设备(如GW1)为下一跳设备(如GW2)所分配的MPLS标签。
可选地,根据非边缘网关设备(如GW1)的上一跳设备网关设备(如NVE1)所属的虚拟化叠加网络所采用的封装格式的不同,封装数据包中的虚拟化包头可以包括但不限于:VxLAN包头(VxLAN包头中的VNI字段包含非边缘网关设备为目标终端设备所分配的标签)、私网标签(即非边缘网关设备为目标终端设备所分配的标签)。
可选地,根据非边缘网关设备(如GW1)的上一跳设备网关设备(如NVE1)所属的虚拟化叠加网络所采用的封装格式的不同,底层包头可以包括但不限于:IP包头和UDP包头(IP包头中的目的IP地址为非边缘网关设备的IP地址)、非边缘网关设备的公网MPLS标签。
步骤S504、非边缘网关设备根据非边缘网关设备为目标终端设备所分配的MPLS标签以及第一映射信息,确定非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签。
本步骤中,非边缘网关设备根据非边缘网关设备为目标终端设备所分配的MPLS标签(即虚拟化包头中携带的内容)以及非边缘网关设备中的第二映射信息,确定非边缘网关设备的下一跳设备(如GW2)为目标网络设备所分配的MPLS标签。其中,第一映射信息包括:非边缘网关设备(如GW1)为目标终端设备(如TS2)所分配的MPLS标签(如L”TS2),与非边缘网关设备的下一跳设备(如GW2)为目标网络设备(如TS2)所分配的MPLS标签(如L’TS2)之间的映射关系。
可选地,第一映射信息可以以表格形式存储于非边缘网关设备中,当然也可以其它形式存储于非边缘网关设备中,本申请实施例中对此并不作限制。
步骤S505、非边缘网关设备根据最外层MPLS标签以及转发信息,确定非边缘网关设备的下一跳设备的IP地址。
本步骤中,非边缘网关设备根据最外层MPLS标签(即非边缘网关设备为下一跳设备所分配的MPLS标签)以及非边缘网关设备中的转发信息,确定非边缘网关设备的下一跳设备(如GW2)的IP地址。其中,非边缘网关设备中的转发信息包括:最外层MPLS标签(即非边缘网关设备为下一跳设备所分配的MPLS标签)与非边缘网关设备的下一跳设备的IP地址之间的映射关系。
可选地,转发信息可以以表格形式存储于非边缘网关设备中,当然也可以其它形式存储于非边缘网关设备中,本申请实施例中对此并不作限制。
步骤S506、非边缘网关设备根据非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装虚拟化包头。
本步骤中,非边缘网关设备根据非边缘网关设备的下一跳设备(如GW2)为目标网络设备所分配的MPLS标签(如L’TS2),对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈(剩余封装MPLS标签栈的底层MPLS标签至顶层MPLS标签依次为:第二边缘网关设备的上一跳设备至非边缘网关设备的下一跳设备之间的各网关设备为下一跳设备所分配的MPLS标签)重新封装虚拟化包头。
可选地,基于非边缘网关设备所属的虚拟化叠加网络所采用的封装格式的不同,重新封装的虚拟化包头可以至少通过如下两种可实现方式:
第一种可实现方式:若非边缘网关设备所属的虚拟化叠加网络采用VxLAN封装格式,重新封装的虚拟化包头为VxLAN包头,VxLAN包头中的VNI字段包含非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签。
第二种可实现方式:若非边缘网关设备所属的虚拟化叠加网络采用E-VPN封装格式,重新封装的虚拟化包头中包括私网MPLS标签,私网MPLS标签为非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签。
步骤S507、非边缘网关设备根据非边缘网关设备的下一跳设备的IP地址,对重新封装的虚拟化包头重新封装底层包头,得到新的封装数据包,并将新的封装数据包发送给非边缘网关设备的下一跳设备。
可选地,根据非边缘网关设备所属的虚拟化叠加网络所采用的封装格式的不同,根据非边缘网关设备的下一跳设备的IP地址,对重新封装的虚拟化包头重新封装底层包头,可以至少通过如下两种可实现方式:
第一种可实现方式:若非边缘网关设备所属的虚拟化叠加网络采用VxLAN封装格式,重新封装的底层包头包括:IP包头和UDP包头,IP包头中的目的IP地址为非边缘网关设备的下一跳设备的IP地址。
第二种可实现方式:若非边缘网关设备所属的虚拟化叠加网络采用E-VPN封装格式,非边缘网关设备根据非边缘网关设备的下一跳设备(如GW2)的IP地址以及非边缘网关设备中的第二映射信息,确定非边缘网关设备的下一跳设备对应的公网MPLS标签。其中,第二映射信息包括:非边缘网关设备的下一跳设备的IP地址与非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
非边缘网关设备根据非边缘网关设备的下一跳设备的公网MPLS标签,对重新封装的虚拟化包头重新封装底层包头,底层包头中包括非边缘网关设备的下一跳设备的公网MPLS标签。
可选地,第二映射信息可以以表格形式存储于非边缘网关设备中,当然也可以其它形式存储于非边缘网关设备中,本申请实施例中对此并不作限制。
当然,根据非边缘网关设备的下一跳设备的IP地址,对重新封装的虚拟化包头重新封装底层包头,还可以采用其它可实现方式,本申请实施例中对此并不作限制。
可选地,若非边缘网关设备为GW1,则非边缘网关设备的下一跳设备可以为GW2,对应地,GW2对接收到的封装数据包的处理步骤可以参见步骤S503-步骤S507,此处不再赘述;若非边缘网关设备为GW2,则非边缘网关设备的下一跳设备可以为NVE2,对应地,NVE2对接收到的封装数据包的处理步骤可以参加下述步骤S508-步骤S510。
步骤S508、第二边缘网关设备将从非边缘网关设备接收到的封装数据包,依次解封封装数据包的底层包头以及虚拟化包头。
本步骤中,第二边缘网关设备(即与目标终端设备相连的边缘网关设备)接收第二边缘网关设备的上一跳设备(即非边缘网关设备,例如GW2)所发送的封装数据包(即非边缘网关设备将从非边缘网关设备的上一跳设备发送的封装数据包解封之后又重新封装后所得到的新的封装数据包),并将接收到的封装数据包依次解封封装数据包的底层包头以及虚拟化包头。
可选地,封装数据包的封装次序依次包括:MAC数据包(MAC数据包中携带目标终端设备的MAC地址)、虚拟化包头以及底层包头;虚拟化包头包括:第二边缘网关设备为目标终端设备所分配的MPLS标签。
可选地,根据第二边缘网关设备的上一跳设备网关设备(如GW2)所属的虚拟化叠加网络所采用的封装格式的不同,封装数据包中的虚拟化包头的类型以及底层包头的类型不同,具体的格式参见上述步骤S506-步骤S507,此处不再赘述。
步骤S509、第二边缘网关设备根据MAC数据包中的目标终端设备的MAC地址、虚拟化包头中的MPLS标签、以及映射信息,确定数据包转发接口。
本步骤中,第二边缘网关设备在依次解封封装数据包的底层包头以及虚拟化包头后,根据MAC数据包的内层中所包含的目标终端设备的MAC地址、虚拟化包头中包含的MPLS标签(即第二边缘网关设备为目标终端设备所分配的MPLS标签,如LTS2)、以及第二边缘网关设备中的映射信息,确定数据包转发接口。其中,第二边缘网关设备中的映射信息包括:目标终端设备的MAC地址、虚拟化包头中的MPLS标签(即第二边缘网关设备为目标终端设备所分配的MPLS标签)与数据转发接口之间的映射关系。
可选地,映射信息可以以表格形式存储于第二边缘网关设备中,当然也可以其它形式存储于第二边缘网关设备中,本申请实施例中对此并不作限制。
步骤S510、第二边缘网关设备将MAC数据包通过数据转发接口发送给目标终端设备。
综上所述,本申请实施例提供的数据包传输方法,非边缘网关设备只需获取封装MPLS标签栈的最外层MPLS标签,并直接根据最外层MPLS标签进行查询,便可确定非边缘网关设备的下一跳设备。可见,相比与现有技术中,非边缘网关设备在转发MAC数据包时无需读取内层MAC数据包的目的MAC地址,从而减少了非边缘网关设备处理数据包的工作量,提高了数据包的转发效率。
本申请提供的数据包传输方法实施例六中,在上述实施例五的基础上,对第一边缘网关设备如何获取目标终端设备的可达信息的过程进行详细描述。结合图5B所示,本实施例的方法可以包括:
步骤S1、第二边缘网关设备向非边缘网关设备发送目标终端设备的可达信息。
本步骤中,第二边缘网关设备(如NVE2)向第二边缘网关设备的上一跳设备(即非边缘网关设备,例如GW2)发送目标终端设备的可达信息。其中,目标终端设备的可达信息可以包括:目标终端设备(如TS2)的MAC地址、第二边缘网关设备(如NVE2)的IP地址、以及第二边缘网关设备为目标终端设备所分配的MPLS标签(如L TS2)。
可选地,目标终端设备的可达信息可携带于MP-BGP消息中。
可选地,目标终端设备的可达信息可位于MP-BGP消息中的E-VPN NLRI字段。可选地,通过在E-VPN NLRI字段中新增Route Type(如Route Type=5:Inter-AS MAC/IPAdvertisement Route),用于通告目标终端设备的可达信息。具体的可参见本申请上述数据包传输方法实施例二中的步骤S1的相关记载,此处不再赘述。
当然,目标终端设备的可达信息也可位于MP-BGP消息中的其它字段,或者,目标终端设备的可达信息也可携带于其它消息中,本申请实施例中对此并不作限制。
步骤S2、非边缘网关设备接收非边缘网关设备的下一跳设备发送的目标终端设备的可达信息。
可选地,非边缘网关设备的下一跳设备可以为第二边缘网关设备(此时,非边缘网关设备可以为GW2),或者,非边缘网关设备的下一跳设备可以为另一非边缘网关设备(此时,非边缘网关设备可以为GW1,另一非边缘网关设备可以为GW2)。考虑到非边缘网关设备为GW1或GW2,其所执行的操作类似,因此,本申请实施例中下述部分以非边缘网关设备为GW1为例进行解释说明。
为了便于区别,非边缘网关设备接收到的目标终端设备的可达信息称之为第一可达信息,可选地,目标终端设备的第一可达信息包括:目标终端设备的MAC地址、非边缘网关设备(如GW1)的下一跳设备(如GW2)的IP地址、非边缘网关设备的下一跳设备至第二边缘网关设备的上一跳设备(如GW2)之间的各网关设备所分配的MPLS标签、以及非边缘网关设备的下一跳设备为目标网络设备所分配的MPLS标签。例如,目标终端设备的第一可达信息中可以包括:GW2为NVE2分配的MPLS标签(如L NVE2)、以及GW2为TS2分配的MPLS标签(如L’TS2)。
步骤S3、非边缘网关设备向非边缘网关设备的上一跳设备发送目标终端设备的可达信息。
为了便于区别,非边缘网关设备向非边缘网关设备的上一跳设备所发送的目标终端设备的可达信息称之为第二可达信息。
本步骤中,非边缘网关设备(如GW1)向非边缘网关设备的上一跳设备(如NVE1)发送目标终端设备的第二可达信息。可选地,目标终端设备的第二可达信息包括:目标终端设备的MAC地址、非边缘网关设备的IP地址、非边缘网关设备(如GW1)至第二边缘网关设备的上一跳设备(如GW2)之间的各网关设备所分配的MPLS标签(例如各网关设备为下一跳设备所分配的MPLS标签)、以及非边缘网关设备(如GW1)为目标网络设备所分配的MPLS标签(如L”TS2)。例如,非边缘网关设备(如GW1)至第二边缘网关设备的上一跳设备(例如GW2)之间的各网关设备所分配的MPLS标签可以包括:GW1为GW2分配的MPLS标签(如L GW2)以及GW2为NVE2分配的MPLS标签(如L NVE2)。
可选地,目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;和/或,目标终端设备的第二可达信息携带于第二MP-BGP消息中。例如,第一MP-BGP消息可以为非边缘网关设备的下一跳设备向非边缘网关设备所发送的MP-BGP消息;第二MP-BGP消息可以为非边缘网关设备向非边缘网关设备的上一跳设备所发送的MP-BGP消息。
可选地,目标终端设备的第一可达信息位于第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;和/或,目标终端设备的第二可达信息位于第二MP-BGP消息中的E-VPNNLRI字段。具体的,目标终端设备的第一可达信息和/或第二可达信息的携带方式,可参见上述数据包传输方法实施例二中的步骤S1中关于目标终端设备的可达信息的携带方式,此处不再赘述。
步骤S4、第一边缘网关设备接收非边缘网关设备发送的目标终端设备的可达信息。
本步骤中,第一边缘网关设备(如NVE1)接收第一边缘网关设备的下一跳设备(即非边缘网关设备,例如GW1)所发送的目标终端设备的可达信息(例如步骤S3中的目标终端设备的第二可达信息)。其中,目标终端设备的可达信息可以包括:目标终端设备的MAC地址、非边缘网关设备的IP地址以及MPLS标签栈。可选地,MPLS标签栈可以包括:非边缘网关设备(如GW1)至第二边缘网关设备的上一跳设备(如GW2)之间的各网关设备为下一跳设备所分配的MPLS标签以及非边缘网关设备(如GW1)为目标终端设备所分配的MPLS标签,具体的可参见上述图5A所示实施例中步骤S501中关于MPLS标签栈的记载,此处不再赘述。
可选地,第一边缘网关设备所接收的目标终端设备的可达信息可位于MP-BGP消息中的E-VPN NLRI字段;当然,该目标终端设备的可达信息还可位于MP-BGP消息中的其它字段,或者携带于其它消息中,本申请实施例中对此并不作限制。
综上所述,本申请实施例提供的数据包传输方法,第一边缘网关设备可以获取到目标终端设备的MAC地址以及MPLS标签栈,以便将封装后的MAC数据包(包含封装MPLS标签栈)发送给非边缘网关设备,进一步地,非边缘网关设备在获取封装MPLS标签栈的最外层MPLS标签后,便可直接根据最外层MPLS标签进行查询,以确定非边缘网关设备的下一跳设备。可见,相比与现有技术中,非边缘网关设备在转发MAC数据包时无需读取内层MAC数据包的目的MAC地址,从而减少了非边缘网关设备处理数据包的工作量,提高了数据包的转发效率。
本申请提供的数据包传输方法实施例七中,在上述实施例六的基础上,对NVE1如何获取TS2的可达信息的过程进行详细描述。结合图5B所示,本实施例的方法可以包括:
步骤S1、NVE2向GW2发送TS2的可达信息1。
其中,TS2的可达信息1包括:TS2的MAC地址、NVE2的IP地址、NVE2为TS2分配的MPLS标签(如L TS2)。
可选地,TS2的可达信息1可以位于MP-BGP消息中的E-VPN NLRI字段;其中,如表4所示,E-VPN NLRI字段中Route Type specific字段所包括的MAC地址包括TS2的MAC地址、IP地址包括NVE2的IP地址、标签栈包括:NVE2为TS2分配的MPLS标签(如L TS2);对应地,标签栈长度占3字节。
步骤S2、GW2向GW1发送TS2的可达信息2。
本步骤中,GW2在接收到NVE2发送的TS2的可达信息1后,向GW1发送TS2的可达信息2(即对TS2的可达信息1修改后得到的可达信息)。其中,TS2的可达信息2包括:TS2的MAC地址、GW2的IP地址、GW2为NVE2分配的MPLS标签(如L NVE2)、以及GW2为TS2分配的MPLS标签(如L’TS2)。
可选地,TS2的可达信息2可以位于MP-BGP消息中E-VPN NLRI字段;其中,如表4所示,E-VPN NLRI字段中Route Type specific字段所包括的IP地址包括GW2的IP地址、标签栈包括:GW2为NVE2分配的MPLS标签、以及GW2为TS2分配的MPLS标签;对应地,标签栈长度占6字节。
步骤S3、GW1向NVE1发送TS2的可达信息3。
本步骤中,GW1在接收到GW2发送的TS2的可达信息2后,向NVE1发送TS2的可达信息3(即对TS2的可达信息2修改后得到的可达信息)。其中,TS2的可达信息3包括:TS2的MAC地址、GW1的IP地址、GW2为NVE2分配的MPLS标签(如L NVE2)、GW1为GW2分配的MPLS标签(如LGW2)以及GW1为TS2分配的MPLS标签(如L”TS2)。可选地,GW2为NVE2分配的MPLS标签(如LNVE2)、GW1为GW2分配的MPLS标签(如L GW2)以及GW1为TS2分配的MPLS标签(如L”TS2)组成TS2至NVE1之间链路对应的MPLS标签栈。
可选地,TS2的可达信息3可以位于MP-BGP消息中E-VPN NLRI字段;其中,如表4所示,E-VPN NLRI字段中Route Type specific字段所包括的IP地址包括GW1的IP地址、标签栈包括:GW2为NVE2分配的MPLS标签(如L NVE2)、GW1为GW2分配的MPLS标签(如L GW2)以及GW1为TS2分配的MPLS标签(如L”TS2);对应地,标签栈长度占9字节。
综上所述,本申请实施例提供的数据包传输方法,通过TS2至TS1之间链路中的每个网关设备为沿TS1至TS2方向的下一跳设备分配MPLS标签以及为TS2分配MPLS标签,并向该网关设备的上一跳设备发送TS2的可达信息,以便该网关设备的上一跳设备可以获取到TS2的MAC地址、该网关设备的IP地址、GW2至该网关设备之间的各网关设备为下一跳设备所分配的MPLS标签以及该网关设备为TS2分配的MPLS标签。
图6为本申请提供的数据包传输方法实施例八的流程示意图。在上述实施例的基础上,结合图5B和图6所示,本实施例的方法可以包括:
步骤S601、NVE1接收TS1发送的MAC数据包。
其中,MAC数据包的目的MAC地址为TS2的MAC地址。
步骤S602、NVE1根据第一映射信息以及所获取的标识信息,确定GW1的IP地址以及MPLS标签栈。
可选地,标识信息包括:TS2的MAC地址以及TS1所属虚拟化叠加网络的VNI(如第一VNI);NVE1中的第一映射信息包括:标识信息与GW1的IP地址以及MPLS标签栈之间的映射关系。其中,MPLS标签栈包括:GW1至GW2之间的各网关设备为下一跳设备所分配的MPLS标签、以及GW1为TS2分配的MPLS标签;例如:MPLS标签栈可以包括:GW1为GW2分配的MPLS标签(如LGW2)、GW2为NVE2分配的标签(如LNVE2)、GW1为TS2分配的MPLS标签(如L”TS2)。
可选地,NVE1可以根据用于接收MAC数据包的接口以及预设映射信息,确定TS1所属虚拟化叠加网络的VNI;当然,NVE1还可以通过其它方式确定TS1所属虚拟化叠加网络的VNI,本申请实施例中对此并不作限制。
步骤S603、NVE1根据GW1的IP地址以及MPLS标签栈,对MAC数据包进行封装,得到封装数据包1,并将封装数据包1发送给GW1。
本步骤中,NVE1根据MPLS标签栈在MAC数据包外部依次按顺序封装:GW2至GW1之间的各网关设备为下一跳设备所分配的MPLS标签(例如GW2为NVE2分配的标签、GW1为GW2分配的MPLS标签),形成封装MPLS标签栈。进一步地,NVE1根据MPLS标签栈中包括的GW1为TS2分配的MPLS标签,在封装MPLS标签栈的外部封装虚拟化包头(即VxLAN包头),VxLAN包头中的VNI字段包含GW1为TS2分配的MPLS标签(如L”TS2)。进一步地,NVE1根据GW1的IP地址在虚拟化包头的外部封装底层包头(即IP包头和UDP包头),得到封装数据包1,其中,IP包头中的目的IP地址为GW1的IP地址。进一步地,NVE1将封装数据包1发送给GW1。
步骤S604、GW1依次解封封装数据包1的底层包头、虚拟化包头以及封装MPLS标签栈的最外层MPLS标签。
本步骤中,GW1在接收到NVE1发送的封装数据包1后,依次解封封装数据包1的底层包头(即IP包头和UDP包头)、虚拟化包头以及封装MPLS标签栈的最外层MPLS标签;其中,虚拟化包头(即VxLAN包头),VxLAN包头中的VNI字段包含GW1为TS2分配的MPLS标签(如L”TS2);最外层MPLS标签包括:GW1为GW2分配的MPLS标签(如L GW2)。
步骤S605、GW1根据虚拟化包头中携带的GW1为TS2分配的MPLS标签以及GW1中的第一映射信息,确定GW2为TS2所分配的MPLS标签、根据最外层MPLS标签以及GW1中的转发信息确定GW2的IP地址,并根据GW2的IP地址以及GW1中的第二映射信息确定GW2对应的公网MPLS标签。
其中,GW1中的第一映射信息包括:GW1为TS2所分配的MPLS标签(如L”TS2),与GW2为TS2所分配的MPLS标签(如L’TS2)之间的映射关系;GW1中的转发信息包括:GW1为GW2分配的MPLS标签与GW2的IP地址之间的映射关系;GW1中的第二映射信息包括:GW2的IP地址与GW2的公网MPLS标签之间的映射关系。
步骤S606、GW1根据GW2为TS2所分配的MPLS标签,对封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈重新封装虚拟化包头。
本步骤中,GW1根据GW2为TS2所分配的MPLS标签(如L’TS2),在封装MPLS标签栈中除最外层MPLS标签之外的剩余封装MPLS标签栈的外部重新封装虚拟化包头(包括私网MPLS标签,私网MPLS标签为GW2为TS2所分配的MPLS标签,如L’TS2);其中,剩余封装MPLS标签栈仅包括:GW2为NVE2所分配的MPLS标签(如L NVE2)。
步骤S607、GW1根据GW2的公网MPLS标签,对重新封装的虚拟化包头重新封装底层包头,得到封装数据包2,并将封装数据包2发送给GW2。
其中,底层包头中包括GW2的公网MPLS标签。
步骤S608、GW2将从GW1接收到的封装数据包2,依次解封封装数据包2的底层包头、虚拟化包头以及封装MPLS标签栈的最外层MPLS标签。
可选地,封装数据包2的底层包头中包括GW2的公网MPLS标签、虚拟化包头包括私网MPLS标签(私网MPLS标签为GW2为TS2所分配的MPLS标签,如L’TS2)、以及封装MPLS标签栈(即上述步骤S606中的剩余封装MPLS标签栈)的最外层MPLS标签。其中,封装MPLS标签栈仅包括:GW2为NVE2所分配的MPLS标签(如L NVE2);即GW2在解封封装MPLS标签栈的最外层MPLS标签后,可获取到内层的MAC数据包。
步骤S609、GW2根据虚拟化包头中携带的GW2为TS2所分配的MPLS标签以及GW2中的第一映射信息,确定NVE2为TS2所分配的MPLS标签、根据最外层MPLS标签以及GW2中的转发信息确定NVE2的IP地址。
其中,GW2中的第一映射信息包括:GW2为TS2所分配的MPLS标签(如L’TS2),与NVE2为TS2所分配的MPLS标签(如L TS2)之间的映射关系;GW2中的转发信息包括:GW2为NVE2分配的MPLS标签与NVE2的IP地址之间的映射关系。
步骤S610、GW2根据NVE2为TS2所分配的MPLS标签,对MAC数据包重新封装虚拟化包头。
本步骤中,GW2根据NVE2为TS2所分配的MPLS标签(如L TS2),在初始MAC数据包的外部重新封装虚拟化包头(即VxLAN包头,VxLAN包头中的VNI字段包含NVE2为TS2所分配的MPLS标签)。
步骤S611、GW2根据NVE2的IP地址,对重新封装的虚拟化包头重新封装底层包头,得到封装数据包3,并将封装数据包3发送给NVE2。
其中,底层包头包括:IP包头和UDP包头,IP包头中的目的IP地址为NVE2的IP地址。
步骤S612、NVE2将从GW2接收到的封装数据包3,依次解封封装数据包3的底层包头以及虚拟化包头。
本步骤中,NVE2将从GW2接收到的封装数据包3,依次解封封装数据包3的底层包头以及虚拟化包头,以获取到封装数据包3的内层中所包含的MAC数据包。可选地,虚拟化包头(即VxLAN包头,VxLAN包头中的VNI字段包含NVE2为TS2所分配的MPLS标签);底层包头包括:IP包头和UDP包头,IP包头中的目的IP地址为NVE2的IP地址。
步骤S613、NVE2根据MAC数据包中的TS2的MAC地址、NVE2为TS2分配的MPLS标签、以及映射信息,确定数据包转发接口,并将MAC数据包通过数据转发接口发送给TS2。
其中,NVE2中的映射信息包括:TS2的MAC地址、NVE2为TS2分配的MPLS标签与数据转发接口之间的映射关系。
综上所述,本申请实施例提供的数据包传输方法,非边缘网关设备(如GW1和/或GW2)只需获取封装MPLS标签栈的最外层MPLS标签,并直接根据最外层MPLS标签进行查询,便可确定非边缘网关设备的下一跳设备。可见,相比与现有技术中,非边缘网关设备在转发MAC数据包时无需读取内层MAC数据包的目的MAC地址,从而减少了非边缘网关设备处理数据包的工作量,提高了数据包的转发效率。
图7为本申请提供的网关设备实施例一的流程示意图。可选地,本申请提供的网关设备可以为非边缘网关设备。如图7所示,本实施例提供的非边缘网关设备70,包括:解封模块701、确定模块702、封装模块703以及第一发送模块704。
其中,解封模块701,用于将接收到的封装数据包,依次解封所述封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈的最外层MPLS标签;其中,所述封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、所述封装MPLS标签栈以及所述底层包头;所述封装MPLS标签栈包括:所述非边缘网关设备至与目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;所述最外层MPLS标签包括:所述非边缘网关设备为下一跳设备所分配的MPLS标签;
确定模块702,用于根据所述最外层MPLS标签以及转发信息,确定所述非边缘网关设备的下一跳设备的网际互联协议IP地址;其中,所述转发信息包括:所述最外层MPLS标签与所述非边缘网关设备的下一跳设备的IP地址之间的映射关系;
封装模块703,用于根据所述非边缘网关设备的下一跳设备的IP地址,对所述封装MPLS标签栈中除所述最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,得到新的封装数据包;
第一发送模块704,用于将所述新的封装数据包发送给所述非边缘网关设备的下一跳设备。
可选地,若所述非边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,重新封装的所述底层包头包括:IP包头和用户数据报协议UDP包头,所述IP包头中的目的IP地址为所述非边缘网关设备的下一跳设备的IP地址。
可选地,若所述非边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,所述封装模块703,包括:
确定单元,用于根据所述非边缘网关设备的下一跳设备的IP地址以及映射信息,确定所述非边缘网关设备的下一跳设备对应的公网MPLS标签;其中,所述映射信息包括:所述非边缘网关设备的下一跳设备的IP地址与所述非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
封装单元,用于根据所述非边缘网关设备的下一跳设备的公网MPLS标签,对所述剩余封装MPLS标签栈重新封装底层包头,所述底层包头中包括所述非边缘网关设备的的下一跳设备的公网MPLS标签。
可选地,所述非边缘网关设备70,还包括:
接收模块,用于接收所述非边缘网关设备的下一跳设备发送的所述目标终端设备的第一可达信息;其中,所述第一可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的下一跳设备的IP地址、以及所述非边缘网关设备的下一跳设备至所述边缘网关设备之间的各网关设备所分配的MPLS标签;
第二发送模块,用于向所述非边缘网关设备的上一跳设备发送所述目标终端设备的第二可达信息;其中,所述第二可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的IP地址、以及所述非边缘网关设备至所述边缘网关设备之间的各网关设备所分配的MPLS标签。
可选地,所述目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;
所述目标终端设备的第二可达信息携带于第二MP-BGP消息中。
可选地,所述目标终端设备的第一可达信息位于所述第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;
所述目标终端设备的第二可达信息位于所述第二MP-BGP消息中的E-VPN NLRI字段。
本实施例的非边缘网关设备70,可以用于执行本申请上述数据包传输方法实施例一至实施例四中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本申请提供的网关设备实施例二的流程示意图。可选地,本申请提供的网关设备可以为非边缘网关设备。如图8所示,本实施例提供的非边缘网关设备80,包括:存储器801、处理器802、收发器803和至少一个通信总线804。
其中,通信总线804用于实现元件之间的通信连接。存储器801可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器801中可以存储程序指令,用于完成各种处理功能以及实现本申请上述数据包传输方法实施例一至实施例四中任意实施例的方法步骤。收发器803可以为相应的具有通信功能的输出/输出接口。处理器802用于调用所述存储器801中的程序指令执行下述步骤:
将接收到的封装数据包,依次解封所述封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈的最外层MPLS标签;其中,所述封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、所述封装MPLS标签栈以及所述底层包头;所述封装MPLS标签栈包括:所述非边缘网关设备至与目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;所述最外层MPLS标签包括:所述非边缘网关设备为下一跳设备所分配的MPLS标签;
根据所述最外层MPLS标签以及转发信息,确定所述非边缘网关设备的下一跳设备的网际互联协议IP地址;其中,所述转发信息包括:所述最外层MPLS标签与所述非边缘网关设备的下一跳设备的IP地址之间的映射关系;
根据所述非边缘网关设备的下一跳设备的IP地址,对所述封装MPLS标签栈中除所述最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,得到新的封装数据包;
所述收发器803用于将所述新的封装数据包发送给所述非边缘网关设备的下一跳设备。
可选地,若所述非边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,重新封装的所述底层包头包括:IP包头和用户数据报协议UDP包头,所述IP包头中的目的IP地址为所述非边缘网关设备的下一跳设备的IP地址。
可选地,若所述非边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,所述处理器802具体用于:
根据所述非边缘网关设备的下一跳设备的IP地址以及映射信息,确定所述非边缘网关设备的下一跳设备对应的公网MPLS标签;其中,所述映射信息包括:所述非边缘网关设备的下一跳设备的IP地址与所述非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
根据所述非边缘网关设备的下一跳设备的公网MPLS标签,对所述剩余封装MPLS标签栈重新封装底层包头,所述底层包头中包括所述非边缘网关设备的的下一跳设备的公网MPLS标签。
可选地,所述收发器803还用于:
接收所述非边缘网关设备的下一跳设备发送的所述目标终端设备的第一可达信息;其中,所述第一可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的下一跳设备的IP地址、以及所述非边缘网关设备的下一跳设备至所述边缘网关设备之间的各网关设备所分配的MPLS标签;
向所述非边缘网关设备的上一跳设备发送所述目标终端设备的第二可达信息;其中,所述第二可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的IP地址、以及所述非边缘网关设备至所述边缘网关设备之间的各网关设备所分配的MPLS标签。
可选地,所述目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;
所述目标终端设备的第二可达信息携带于第二MP-BGP消息中。
可选地,所述目标终端设备的第一可达信息位于所述第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;
所述目标终端设备的第二可达信息位于所述第二MP-BGP消息中的E-VPN NLRI字段。
本实施例的非边缘网关设备,可以用于执行本申请上述数据包传输方法实施例一至实施例四中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为本申请提供的网关设备实施例三的流程示意图。可选地,本申请提供的网关设备可以为与源终端设备相连的边缘网关设备。如图9所示,本实施例提供的与源终端设备相连的边缘网关设备90,包括:确定模块901、封装模块902以及发送模块903。
其中,确定模块901,用于根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的网际互联协议IP地址以及多协议外部网关协议MPLS标签栈;其中,所述非边缘网关设备为所述边缘网关设备的下一跳设备;所述标识信息包括:所述边缘网关设备根据从所述源终端设备接收到的媒体访问控制层MAC数据包所获取的目标终端设备的MAC地址,以及所述源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;所述第一映射信息包括:所述标识信息与所述非边缘网关设备的IP地址以及所述MPLS标签栈之间的映射关系;所述MPLS标签栈包括:所述非边缘网关设备至与所述目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;
封装模块902,用于根据所述非边缘网关设备的IP地址以及所述MPLS标签栈,对所述MAC数据包进行封装,得到封装数据包;
发送模块903,用于将所述封装数据包发送给所述非边缘网关设备。
可选地,所述封装模块902,包括:
第一封装单元,用于根据所述MPLS标签栈对所述MAC数据包按顺序依次封装:所述与目标终端设备相连的边缘网关设备至所述非边缘网关设备之间的各网关设备所分配的MPLS标签,形成封装MPLS标签栈;
第二封装单元,用于根据所述非边缘网关设备的IP地址,对所述封装MPLS标签栈封装底层包头。
可选地,若所述与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,所述底层包头包括:IP包头和用户数据报协议UDP包头,所述IP包头中的目的IP地址为所述非边缘网关设备的IP地址。
可选地,若所述与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,所述第二封装单元具体用于:
根据所述非边缘网关设备的IP地址以及第二映射信息,确定所述非边缘网关设备的公网MPLS标签;其中,所述第二映射信息包括:所述非边缘网关设备的IP地址与所述非边缘网关设备的公网MPLS标签之间的映射关系;
根据所述非边缘网关设备的公网MPLS标签,对所述封装MPLS标签栈封装底层包头,所述底层包头中包括所述非边缘网关设备的公网MPLS标签。
可选地,所述与源终端设备相连的边缘网关设备90,还包括:
接收模块,用于接收所述非边缘网关设备发送的所述目标终端设备的可达信息;其中,所述目标终端设备的可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的IP地址以及所述MPLS标签栈。
可选地,所述目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
可选地,所述目标终端设备的可达信息位于所述MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
本实施例的与源终端设备相连的边缘网关设备90,可以用于执行本申请上述数据包传输方法实施例一至实施例四中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本申请的网关设备实施例四所提供的网关设备可以为与源终端设备相连的边缘网关设备。可选地,所述边缘网关设备包括:存储器、处理器、收发器和至少一个通信总线。可选地,所述与源终端设备相连的边缘网关设备的结构示意图参见图8所示。
其中,所述通信总线用于实现元件之间的通信连接。所述存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,所述存储器中可以存储程序指令,用于完成各种处理功能以及实现本申请上述数据包传输方法实施例一至实施例四中任意实施例的方法步骤。所述收发器可以为相应的具有通信功能的输出/输出接口。所述处理器用于调用所述存储器中的程序指令执行下述步骤:
根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的网际互联协议IP地址以及多协议外部网关协议MPLS标签栈;其中,所述非边缘网关设备为所述边缘网关设备的下一跳设备;所述标识信息包括:所述边缘网关设备根据从所述源终端设备接收到的媒体访问控制层MAC数据包所获取的目标终端设备的MAC地址,以及所述源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;所述第一映射信息包括:所述标识信息与所述非边缘网关设备的IP地址以及所述MPLS标签栈之间的映射关系;所述MPLS标签栈包括:所述非边缘网关设备至与所述目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;
根据所述非边缘网关设备的IP地址以及所述MPLS标签栈,对所述MAC数据包进行封装,得到封装数据包;
所述收发器用于将所述封装数据包发送给所述非边缘网关设备。
可选地,所述处理器具体用于:
根据所述MPLS标签栈对所述MAC数据包按顺序依次封装:所述与目标终端设备相连的边缘网关设备至所述非边缘网关设备之间的各网关设备所分配的MPLS标签,形成封装MPLS标签栈;
根据所述非边缘网关设备的IP地址,对所述封装MPLS标签栈封装底层包头。
可选地,若所述与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,所述底层包头包括:IP包头和用户数据报协议UDP包头,所述IP包头中的目的IP地址为所述非边缘网关设备的IP地址。
可选地,若所述与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,所述处理器具体用于:
根据所述非边缘网关设备的IP地址以及第二映射信息,确定所述非边缘网关设备的公网MPLS标签;其中,所述第二映射信息包括:所述非边缘网关设备的IP地址与所述非边缘网关设备的公网MPLS标签之间的映射关系;
根据所述非边缘网关设备的公网MPLS标签,对所述封装MPLS标签栈封装底层包头,所述底层包头中包括所述非边缘网关设备的公网MPLS标签。
可选地,所述收发器还用于:
接收所述非边缘网关设备发送的所述目标终端设备的可达信息;其中,所述目标终端设备的可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的IP地址以及所述MPLS标签栈。
可选地,所述目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
可选地,所述目标终端设备的可达信息位于所述MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
本实施例的与源终端设备相连的边缘网关设备,可以用于执行本申请上述数据包传输方法实施例一至实施例四中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本申请提供的网关设备实施例五的流程示意图。可选地,本申请提供的网关设备可以为与目标终端设备相连的边缘网关设备。如图10所示,本实施例提供的与目标终端设备相连的边缘网关设备100,包括:解封模块1001、确定模块1002以及第一发送模块1003。
其中,解封模块1001,用于将从非边缘网关设备接收到的封装数据包,依次解封所述封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈;其中,所述封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈以及底层包头;所述封装MPLS标签栈包括:所述边缘网关设备为所述目标终端设备所分配的MPLS标签;
确定模块1002,用于根据所述MAC数据包中的所述目标终端设备的MAC地址、所述封装MPLS标签栈中的MPLS标签、以及映射信息,确定数据包转发接口;其中,所述映射信息包括:所述目标终端设备的MAC地址、所述封装MPLS标签栈中的MPLS标签与所述数据包转发接口之间的映射关系;
第一发送模块1003,用于将所述MAC数据包通过所述数据转发接口发送给所述目标终端设备。
可选地,所述与目标终端设备相连的边缘网关设备100,还包括:
第二发送模块,用于向所述非边缘网关设备发送所述目标终端设备的可达信息;其中,所述目标终端设备的可达信息包括:所述目标终端设备的MAC地址、所述边缘网关设备的IP地址、以及所述边缘网关设备为所述目标终端设备所分配的MPLS标签。
可选地,所述目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
可选地,所述目标终端设备的可达信息位于所述MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
本实施例的与目标终端设备相连的边缘网关设备100,可以用于执行本申请上述数据包传输方法实施例一至实施例四中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本申请的网关设备实施例六所提供的网关设备可以为与目标终端设备相连的边缘网关设备。可选地,所述边缘网关设备包括:存储器、处理器、收发器和至少一个通信总线。可选地,所述与目标终端设备相连的边缘网关设备的结构示意图参见图8所示。
其中,所述通信总线用于实现元件之间的通信连接。所述存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,所述存储器中可以存储程序指令,用于完成各种处理功能以及实现本申请上述数据包传输方法实施例一至实施例四中任意实施例的方法步骤。所述收发器可以为相应的具有通信功能的输出/输出接口。所述处理器用于调用所述存储器中的程序指令执行下述步骤:
将从非边缘网关设备接收到的封装数据包,依次解封所述封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈;其中,所述封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈以及底层包头;所述封装MPLS标签栈包括:所述边缘网关设备为所述目标终端设备所分配的MPLS标签;
根据所述MAC数据包中的所述目标终端设备的MAC地址、所述封装MPLS标签栈中的MPLS标签、以及映射信息,确定数据包转发接口;其中,所述映射信息包括:所述目标终端设备的MAC地址、所述封装MPLS标签栈中的MPLS标签与所述数据包转发接口之间的映射关系;
所述收发器用于将所述MAC数据包通过所述数据转发接口发送给所述目标终端设备。
可选地,所述收发器还用于:
向所述非边缘网关设备发送所述目标终端设备的可达信息;其中,所述目标终端设备的可达信息包括:所述目标终端设备的MAC地址、所述边缘网关设备的IP地址、以及所述边缘网关设备为所述目标终端设备所分配的MPLS标签。
可选地,所述目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
可选地,所述目标终端设备的可达信息位于所述MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
本实施例的与目标终端设备相连的边缘网关设备,可以用于执行本申请上述数据包传输方法实施例一至实施例四中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本申请提供的网关设备实施例七的流程示意图。可选地,本申请提供的网关设备可以为非边缘网关设备。如图11所示,本实施例提供的非边缘网关设备110,包括:解封模块1101、第一确定模块1102、第二确定模块1103、第一封装模块1104、第二封装模块1105以及第一发送模块1106。
其中,解封模块1101,用于将接收到的封装数据包,依次解封所述封装数据包的底层包头、虚拟化包头以及封装多协议外部网关协议MPLS标签栈的最外层MPLS标签;其中,所述封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、所述封装MPLS标签栈、所述虚拟化包头以及所述底层包头;所述封装MPLS标签栈包括:所述非边缘网关设备至与目标终端设备相连的边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签;所述虚拟化包头包括:所述非边缘网关设备为所述目标终端设备所分配的MPLS标签;所述最外层MPLS标签包括:所述非边缘网关设备为下一跳设备所分配的MPLS标签;
第一确定模块1102,用于根据所述非边缘网关设备为所述目标终端设备所分配的MPLS标签以及第一映射信息,确定所述非边缘网关设备的下一跳设备为所述目标网络设备所分配的MPLS标签;所述第一映射信息包括:所述非边缘网关设备为所述目标终端设备所分配的MPLS标签,与所述非边缘网关设备的下一跳设备为所述目标网络设备所分配的MPLS标签之间的映射关系;
第二确定模块1103,用于根据所述最外层MPLS标签以及转发信息,确定所述非边缘网关设备的下一跳设备的网际互联协议IP地址;其中,所述转发信息包括:所述最外层MPLS标签与所述非边缘网关设备的下一跳设备的IP地址之间的映射关系;
第一封装模块1104,用于根据所述非边缘网关设备的下一跳设备为所述目标网络设备所分配的MPLS标签,对所述封装MPLS标签栈中除所述最外层MPLS标签之外的剩余封装MPLS标签栈重新封装虚拟化包头;
第二封装模块1105,用于根据所述非边缘网关设备的下一跳设备的IP地址,对重新封装的所述虚拟化包头重新封装底层包头,得到新的封装数据包;
第一发送模块1106,用于将所述新的封装数据包发送给所述非边缘网关设备的下一跳设备。
可选地,若所述非边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,重新封装的所述虚拟化包头为VxLAN包头,所述VxLAN包头中的虚拟网络标识VNI字段包含所述非边缘网关设备的下一跳设备为所述目标网络设备所分配的MPLS标签;
对应地,重新封装的所述底层包头包括:IP包头和用户数据报协议UDP包头,所述IP包头中的目的IP地址为所述非边缘网关设备的下一跳设备的IP地址。
可选地,若所述非边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,重新封装的所述虚拟化包头中包括私网MPLS标签,所述私网MPLS标签为所述非边缘网关设备的下一跳设备为所述目标网络设备所分配的MPLS标签;
对应地,所述第二封装模块1105,包括:
确定单元,用于根据所述非边缘网关设备的下一跳设备的IP地址以及第二映射信息,确定所述非边缘网关设备的下一跳设备对应的公网MPLS标签;其中,所述第二映射信息包括:所述非边缘网关设备的下一跳设备的IP地址与所述非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
封装单元,用于根据所述非边缘网关设备的下一跳设备的公网MPLS标签,对重新封装的所述虚拟化包头重新封装底层包头,所述底层包头中包括所述非边缘网关设备的下一跳设备的公网MPLS标签。
可选地,所述非边缘网关设备110,还包括:
接收模块,用于接收所述非边缘网关设备的下一跳设备发送的所述目标终端设备的第一可达信息;其中,所述目标终端设备的第一可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的下一跳设备的IP地址、所述非边缘网关设备的下一跳设备至所述边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签、以及所述非边缘网关设备的下一跳设备为所述目标网络设备所分配的MPLS标签;
第二发送模块,用于向所述非边缘网关设备的上一跳设备发送所述目标终端设备的第二可达信息;其中,所述目标终端设备的第二可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的IP地址、所述非边缘网关设备至所述边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签、以及所述非边缘网关设备为所述目标网络设备所分配的MPLS标签。
可选地,所述目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;
所述目标终端设备的第二可达信息携带于第二MP-BGP消息中。
可选地,所述目标终端设备的第一可达信息位于所述第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;
所述目标终端设备的第二可达信息位于所述第二MP-BGP消息中的E-VPN NLRI字段。
本实施例的非边缘网关设备,可以用于执行本申请上述数据包传输方法实施例五至实施例八中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本申请的网关设备实施例八所提供的网关设备可以为非边缘网关设备。可选地,所述非边缘网关设备包括:存储器、处理器、收发器和至少一个通信总线。可选地,所述非边缘网关设备的结构示意图参见图8所示。
其中,所述通信总线用于实现元件之间的通信连接。所述存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,所述存储器中可以存储程序指令,用于完成各种处理功能以及实现本申请上述数据包传输方法实施例五至实施例八中任意实施例的方法步骤。所述收发器可以为相应的具有通信功能的输出/输出接口。所述处理器用于调用所述存储器中的程序指令执行下述步骤:
将接收到的封装数据包,依次解封所述封装数据包的底层包头、虚拟化包头以及封装多协议外部网关协议MPLS标签栈的最外层MPLS标签;其中,所述封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、所述封装MPLS标签栈、所述虚拟化包头以及所述底层包头;所述封装MPLS标签栈包括:所述非边缘网关设备至与目标终端设备相连的边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签;所述虚拟化包头包括:所述非边缘网关设备为所述目标终端设备所分配的MPLS标签;所述最外层MPLS标签包括:所述非边缘网关设备为下一跳设备所分配的MPLS标签;
根据所述非边缘网关设备为所述目标终端设备所分配的MPLS标签以及第一映射信息,确定所述非边缘网关设备的下一跳设备为所述目标网络设备所分配的MPLS标签;所述第一映射信息包括:所述非边缘网关设备为所述目标终端设备所分配的MPLS标签,与所述非边缘网关设备的下一跳设备为所述目标网络设备所分配的MPLS标签之间的映射关系;
根据所述最外层MPLS标签以及转发信息,确定所述非边缘网关设备的下一跳设备的网际互联协议IP地址;其中,所述转发信息包括:所述最外层MPLS标签与所述非边缘网关设备的下一跳设备的IP地址之间的映射关系;
根据所述非边缘网关设备的下一跳设备为所述目标网络设备所分配的MPLS标签,对所述封装MPLS标签栈中除所述最外层MPLS标签之外的剩余封装MPLS标签栈重新封装虚拟化包头;
根据所述非边缘网关设备的下一跳设备的IP地址,对重新封装的所述虚拟化包头重新封装底层包头,得到新的封装数据包;
所述收发器用于将所述新的封装数据包发送给所述非边缘网关设备的下一跳设备。
可选地,若所述非边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,重新封装的所述虚拟化包头为VxLAN包头,所述VxLAN包头中的虚拟网络标识VNI字段包含所述非边缘网关设备的下一跳设备为所述目标网络设备所分配的MPLS标签;
对应地,重新封装的所述底层包头包括:IP包头和用户数据报协议UDP包头,所述IP包头中的目的IP地址为所述非边缘网关设备的下一跳设备的IP地址。
可选地,若所述非边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,重新封装的所述虚拟化包头中包括私网MPLS标签,所述私网MPLS标签为所述非边缘网关设备的下一跳设备为所述目标网络设备所分配的MPLS标签;
对应地,所述处理器具体用于:
根据所述非边缘网关设备的下一跳设备的IP地址以及第二映射信息,确定所述非边缘网关设备的下一跳设备对应的公网MPLS标签;其中,所述第二映射信息包括:所述非边缘网关设备的下一跳设备的IP地址与所述非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
根据所述非边缘网关设备的下一跳设备的公网MPLS标签,对重新封装的所述虚拟化包头重新封装底层包头,所述底层包头中包括所述非边缘网关设备的下一跳设备的公网MPLS标签。
可选地,所述收发器还用于:
接收所述非边缘网关设备的下一跳设备发送的所述目标终端设备的第一可达信息;其中,所述目标终端设备的第一可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的下一跳设备的IP地址、所述非边缘网关设备的下一跳设备至所述边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签、以及所述非边缘网关设备的下一跳设备为所述目标网络设备所分配的MPLS标签;
向所述非边缘网关设备的上一跳设备发送所述目标终端设备的第二可达信息;其中,所述目标终端设备的第二可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的IP地址、所述非边缘网关设备至所述边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签、以及所述非边缘网关设备为所述目标网络设备所分配的MPLS标签。
可选地,所述目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;
所述目标终端设备的第二可达信息携带于第二MP-BGP消息中。
在一个可能的设计中,所述目标终端设备的第一可达信息位于所述第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;
所述目标终端设备的第二可达信息位于所述第二MP-BGP消息中的E-VPN NLRI字段。
本实施例的非边缘网关设备,可以用于执行本申请上述数据包传输方法实施例五至实施例八中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本申请的网关设备实施例九所提供的网关设备可以为与源终端设备相连的边缘网关设备。可选地,所述与源终端设备相连的边缘网关设备,包括:确定模块、封装模块以及发送模块。可选地,所述与源终端设备相连的边缘网关设备的结构示意图参见图9所示。
其中,所述确定模块,用于根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的网际互联协议IP地址以及多协议外部网关协议MPLS标签栈;其中,所述非边缘网关设备为所述边缘网关设备的下一跳设备;所述标识信息包括:所述边缘网关设备根据从所述源终端设备接收到的媒体访问控制层MAC数据包所获取的目标终端设备的MAC地址,以及所述源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;所述第一映射信息包括:所述标识信息与所述非边缘网关设备的IP地址以及所述MPLS标签栈之间的映射关系;所述MPLS标签栈包括:所述非边缘网关设备至与所述目标终端设备相连的边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签以及所述非边缘网关设备为所述目标终端设备所分配的MPLS标签;
所述封装模块,用于根据所述非边缘网关设备的IP地址以及所述MPLS标签栈,对所述MAC数据包进行封装,得到封装数据包;
所述发送模块,用于将所述封装数据包发送给所述非边缘网关设备。
可选地,所述封装模块,包括:
第一封装单元,用于根据所述MPLS标签栈对所述MAC数据包按顺序依次封装:所述与目标终端设备相连的边缘网关设备的上一跳设备至所述非边缘网关设备之间的各网关设备所分配的MPLS标签,形成封装MPLS标签栈;
第二封装单元,用于根据所述非边缘网关设备为所述目标终端设备所分配的标签,对所述封装MPLS标签栈封装虚拟化包头;
第三封装单元,用于根据所述非边缘网关设备的IP地址,对所述虚拟化包头封装底层包头。
可选地,若所述与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,所述虚拟化包头为VxLAN包头,所述VxLAN包头中的VNI字段包含所述非边缘网关设备为所述目标终端设备所分配的标签;
对应地,所述底层包头包括:IP包头和用户数据报协议UDP包头,所述IP包头中的目的IP地址为所述非边缘网关设备的IP地址。
可选地,若所述与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,所述虚拟化包头中包括私网标签,所述私网标签为所述非边缘网关设备为所述目标终端设备所分配的标签;
对应地,所述第三封装单元具体用于:
根据所述非边缘网关设备的IP地址以及第二映射信息,确定所述非边缘网关设备的公网MPLS标签;其中,所述第二映射信息包括:所述非边缘网关设备的IP地址与所述非边缘网关设备的公网MPLS标签之间的映射关系;
根据所述非边缘网关设备的公网MPLS标签,对所述虚拟化包头封装底层包头,所述底层包头中包括所述非边缘网关设备的公网MPLS标签。
可选地,所述与源终端设备相连的边缘网关设备,还包括:
接收模块,用于接收所述非边缘网关设备发送的所述目标终端设备的可达信息;其中,所述目标终端设备的可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的IP地址以及所述MPLS标签栈。
可选地,所述目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
可选地,所述目标终端设备的可达信息位于所述MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
本实施例的与源终端设备相连的边缘网关设备,可以用于执行本申请上述数据包传输方法实施例五至实施例八中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本申请的网关设备实施例十所提供的网关设备可以为与源终端设备相连的边缘网关设备。可选地,所述与源终端设备相连的边缘网关设备包括:存储器、处理器、收发器和至少一个通信总线。可选地,所述与源终端设备相连的边缘网关设备的结构示意图参见图8所示。
其中,所述通信总线用于实现元件之间的通信连接。所述存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,所述存储器中可以存储程序指令,用于完成各种处理功能以及实现本申请上述数据包传输方法实施例五至实施例八中任意实施例的方法步骤。所述收发器可以为相应的具有通信功能的输出/输出接口。所述处理器用于调用所述存储器中的程序指令执行下述步骤:
根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的网际互联协议IP地址以及多协议外部网关协议MPLS标签栈;其中,所述非边缘网关设备为所述边缘网关设备的下一跳设备;所述标识信息包括:所述边缘网关设备根据从所述源终端设备接收到的媒体访问控制层MAC数据包所获取的目标终端设备的MAC地址,以及所述源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;所述第一映射信息包括:所述标识信息与所述非边缘网关设备的IP地址以及所述MPLS标签栈之间的映射关系;所述MPLS标签栈包括:所述非边缘网关设备至与所述目标终端设备相连的边缘网关设备的上一跳设备之间的各网关设备所分配的MPLS标签以及所述非边缘网关设备为所述目标终端设备所分配的MPLS标签;
根据所述非边缘网关设备的IP地址以及所述MPLS标签栈,对所述MAC数据包进行封装,得到封装数据包;
所述收发器用于将所述封装数据包发送给所述非边缘网关设备。
可选地,所述处理器具体用于:
根据所述MPLS标签栈对所述MAC数据包按顺序依次封装:所述与目标终端设备相连的边缘网关设备的上一跳设备至所述非边缘网关设备之间的各网关设备所分配的MPLS标签,形成封装MPLS标签栈;
根据所述非边缘网关设备为所述目标终端设备所分配的标签,对所述封装MPLS标签栈封装虚拟化包头;
根据所述非边缘网关设备的IP地址,对所述虚拟化包头封装底层包头。
可选地,若所述与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,所述虚拟化包头为VxLAN包头,所述VxLAN包头中的VNI字段包含所述非边缘网关设备为所述目标终端设备所分配的标签;
对应地,所述底层包头包括:IP包头和用户数据报协议UDP包头,所述IP包头中的目的IP地址为所述非边缘网关设备的IP地址。
可选地,若所述与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,所述虚拟化包头中包括私网标签,所述私网标签为所述非边缘网关设备为所述目标终端设备所分配的标签;
对应地,所述处理器具体用于:
根据所述非边缘网关设备的IP地址以及第二映射信息,确定所述非边缘网关设备的公网MPLS标签;其中,所述第二映射信息包括:所述非边缘网关设备的IP地址与所述非边缘网关设备的公网MPLS标签之间的映射关系;
根据所述非边缘网关设备的公网MPLS标签,对所述虚拟化包头封装底层包头,所述底层包头中包括所述非边缘网关设备的公网MPLS标签。
可选地,所述收发器还用于:
接收所述非边缘网关设备发送的所述目标终端设备的可达信息;其中,所述目标终端设备的可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的IP地址以及所述MPLS标签栈。
可选地,所述目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
可选地,所述目标终端设备的可达信息位于所述MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
本实施例的与源终端设备相连的边缘网关设备,可以用于执行本申请上述数据包传输方法实施例五至实施例八中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本申请的网关设备实施例十一所提供的网关设备可以为与目标终端设备相连的边缘网关设备。可选地,所述与目标终端设备相连的边缘网关设备,包括:解封模块、确定模块以及第一发送模块。可选地,所述与目标终端设备相连的边缘网关设备的结构示意图参见图10所示。
其中,所述解封模块,用于将从非边缘网关设备接收到的封装数据包,依次解封所述封装数据包的底层包头以及虚拟化包头;其中,所述封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、所述虚拟化包头以及所述底层包头;所述虚拟化包头包括:所述边缘网关设备为目标终端设备所分配的MPLS标签;
所述确定模块,用于根据所述MAC数据包中的所述目标终端设备的MAC地址、所述虚拟化包头中的MPLS标签、以及映射信息,确定数据包转发接口;其中,所述映射信息包括:所述目标终端设备的MAC地址、所述虚拟化包头中的MPLS标签与所述数据转发接口之间的映射关系;
所述第一发送模块,用于将所述MAC数据包通过所述数据转发接口发送给所述目标终端设备。
可选地,所述与目标终端设备相连的边缘网关设备130,还包括:
第二发送模块,用于向所述非边缘网关设备发送所述目标终端设备的可达信息;其中,所述目标终端设备的可达信息包括:所述目标终端设备的MAC地址、所述边缘网关设备的IP地址、以及所述边缘网关设备为所述目标终端设备所分配的MPLS标签。
可选地,所述目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
可选地,所述目标终端设备的可达信息位于所述MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
本实施例的与目标终端设备相连的边缘网关设备,可以用于执行本申请上述数据包传输方法实施例五至实施例八中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本申请的网关设备实施例十二所提供的网关设备可以为与目标终端设备相连的边缘网关设备。可选地,所述与目标终端设备相连的边缘网关设备包括:存储器、处理器、收发器和至少一个通信总线。可选地,所述与目标终端设备相连的边缘网关设备的结构示意图参见图8所示。
其中,所述通信总线用于实现元件之间的通信连接。所述存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,所述存储器中可以存储程序指令,用于完成各种处理功能以及实现本申请上述数据包传输方法实施例五至实施例八中任意实施例的方法步骤。所述收发器可以为相应的具有通信功能的输出/输出接口。所述处理器用于调用所述存储器中的程序指令执行下述步骤:
将从非边缘网关设备接收到的封装数据包,依次解封所述封装数据包的底层包头以及虚拟化包头;其中,所述封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、所述虚拟化包头以及所述底层包头;所述虚拟化包头包括:所述边缘网关设备为目标终端设备所分配的MPLS标签;
根据所述MAC数据包中的所述目标终端设备的MAC地址、所述虚拟化包头中的MPLS标签、以及映射信息,确定数据包转发接口;其中,所述映射信息包括:所述目标终端设备的MAC地址、所述虚拟化包头中的MPLS标签与所述数据转发接口之间的映射关系;
所述收发器用于将所述MAC数据包通过所述数据转发接口发送给所述目标终端设备。
在一个可能的设计中,所述收发器还用于:
向所述非边缘网关设备发送所述目标终端设备的可达信息;其中,所述目标终端设备的可达信息包括:所述目标终端设备的MAC地址、所述边缘网关设备的IP地址、以及所述边缘网关设备为所述目标终端设备所分配的MPLS标签。
在一个可能的设计中,所述目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
在一个可能的设计中,所述目标终端设备的可达信息位于所述MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
本实施例的与目标终端设备相连的边缘网关设备,可以用于执行本申请上述数据包传输方法实施例五至实施例八中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
在上述各实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
Claims (30)
1.一种数据包传输方法,其特征在于,包括:
非边缘网关设备将接收到的封装数据包,依次解封所述封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈的最外层MPLS标签;其中,所述封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈以及所述底层包头;所述封装MPLS标签栈包括:所述非边缘网关设备至与目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;所述最外层MPLS标签包括:所述非边缘网关设备为下一跳设备所分配的MPLS标签;
所述非边缘网关设备根据所述最外层MPLS标签以及转发信息,确定所述非边缘网关设备的下一跳设备的网际互联协议IP地址;其中,所述转发信息包括:所述最外层MPLS标签与所述非边缘网关设备的下一跳设备的IP地址之间的映射关系;
所述非边缘网关设备根据所述非边缘网关设备的下一跳设备的IP地址,对所述封装MPLS标签栈中除所述最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,得到新的封装数据包,并将所述新的封装数据包发送给所述非边缘网关设备的下一跳设备。
2.根据权利要求1所述的方法,其特征在于,若所述非边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,重新封装的所述底层包头包括:IP包头和用户数据报协议UDP包头,所述IP包头中的目的IP地址为所述非边缘网关设备的下一跳设备的IP地址。
3.根据权利要求1所述的方法,其特征在于,若所述非边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,所述非边缘网关设备根据所述非边缘网关设备的下一跳设备的IP地址,对所述封装MPLS标签栈中除所述最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,包括:
所述非边缘网关设备根据所述非边缘网关设备的下一跳设备的IP地址以及映射信息,确定所述非边缘网关设备的下一跳设备对应的公网MPLS标签;其中,所述映射信息包括:所述非边缘网关设备的下一跳设备的IP地址与所述非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
所述非边缘网关设备根据所述非边缘网关设备的下一跳设备的公网MPLS标签,对所述剩余封装MPLS标签栈重新封装底层包头,所述底层包头中包括所述非边缘网关设备的的下一跳设备的公网MPLS标签。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法,还包括:
所述非边缘网关设备接收所述非边缘网关设备的下一跳设备发送的所述目标终端设备的第一可达信息;其中,所述第一可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的下一跳设备的IP地址、以及所述非边缘网关设备的下一跳设备至所述边缘网关设备之间的各网关设备所分配的MPLS标签;
所述非边缘网关设备向所述非边缘网关设备的上一跳设备发送所述目标终端设备的第二可达信息;其中,所述第二可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的IP地址、以及所述非边缘网关设备至所述边缘网关设备之间的各网关设备所分配的MPLS标签。
5.根据权利要求4所述的方法,其特征在于,所述目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;
所述目标终端设备的第二可达信息携带于第二MP-BGP消息中。
6.根据权利要求5所述的方法,其特征在于,所述目标终端设备的第一可达信息位于第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;
所述目标终端设备的第二可达信息位于所述第二MP-BGP消息中的E-VPN NLRI字段。
7.一种数据包传输方法,其特征在于,包括:
与源终端设备相连的边缘网关设备根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的网际互联协议IP地址以及多协议外部网关协议MPLS标签栈;其中,所述非边缘网关设备为所述边缘网关设备的下一跳设备;所述标识信息包括:所述边缘网关设备根据从所述源终端设备接收到的媒体访问控制层MAC数据包所获取的目标终端设备的MAC地址,以及所述源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;所述第一映射信息包括:所述标识信息与所述非边缘网关设备的IP地址以及所述MPLS标签栈之间的映射关系;所述MPLS标签栈包括:所述非边缘网关设备至与所述目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;
所述与源终端设备相连的边缘网关设备根据所述非边缘网关设备的IP地址以及所述MPLS标签栈,对所述MAC数据包进行封装,得到封装数据包,并将所述封装数据包发送给所述非边缘网关设备。
8.根据权利要求7所述的方法,其特征在于,所述与源终端设备相连的边缘网关设备根据所述非边缘网关设备的IP地址以及所述MPLS标签栈,对所述MAC数据包进行封装,包括:
所述与源终端设备相连的边缘网关设备根据所述MPLS标签栈对所述MAC数据包按顺序依次封装:与所述目标终端设备相连的边缘网关设备至所述非边缘网关设备之间的各网关设备所分配的MPLS标签,形成封装MPLS标签栈;
所述与源终端设备相连的边缘网关设备根据所述非边缘网关设备的IP地址,对所述封装MPLS标签栈封装底层包头。
9.根据权利要求8所述的方法,其特征在于,若所述与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,所述底层包头包括:IP包头和用户数据报协议UDP包头,所述IP包头中的目的IP地址为所述非边缘网关设备的IP地址。
10.根据权利要求8所述的方法,其特征在于,若所述与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,所述与源终端设备相连的边缘网关设备根据所述非边缘网关设备的IP地址,对所述封装MPLS标签栈封装底层包头,包括:
所述与源终端设备相连的边缘网关设备根据所述非边缘网关设备的IP地址以及第二映射信息,确定所述非边缘网关设备的公网MPLS标签;其中,所述第二映射信息包括:所述非边缘网关设备的IP地址与所述非边缘网关设备的公网MPLS标签之间的映射关系;
所述与源终端设备相连的边缘网关设备根据所述非边缘网关设备的公网MPLS标签,对所述封装MPLS标签栈封装底层包头,所述底层包头中包括所述非边缘网关设备的公网MPLS标签。
11.根据权利要求7-10中任一项所述的方法,其特征在于,所述方法,还包括:
所述与源终端设备相连的边缘网关设备接收所述非边缘网关设备发送的所述目标终端设备的可达信息;其中,所述目标终端设备的可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的IP地址以及所述MPLS标签栈。
12.根据权利要求11所述的方法,其特征在于,所述目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
13.根据权利要求12所述的方法,其特征在于,所述目标终端设备的可达信息位于所述MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
14.一种数据包传输方法,其特征在于,包括:
与目标终端设备相连的边缘网关设备将从非边缘网关设备接收到的封装数据包,依次解封所述封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈;其中,所述封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈以及底层包头;所述封装MPLS标签栈包括:所述边缘网关设备为所述目标终端设备所分配的MPLS标签;
所述边缘网关设备根据所述MAC数据包中的所述目标终端设备的MAC地址、所述封装MPLS标签栈中的MPLS标签、以及映射信息,确定数据包转发接口;其中,所述映射信息包括:所述目标终端设备的MAC地址、所述封装MPLS标签栈中的MPLS标签与所述数据包转发接口之间的映射关系;
所述边缘网关设备将所述MAC数据包通过数据转发接口发送给所述目标终端设备。
15.根据权利要求14所述的方法,其特征在于,所述方法,还包括:
所述边缘网关设备向所述非边缘网关设备发送所述目标终端设备的可达信息;其中,所述目标终端设备的可达信息包括:所述目标终端设备的MAC地址、所述边缘网关设备的IP地址、以及所述边缘网关设备为所述目标终端设备所分配的MPLS标签。
16.根据权利要求15所述的方法,其特征在于,所述目标终端设备的可达信息携带于多协议外部网关协议MP-BGP消息中。
17.根据权利要求16所述的方法,其特征在于,所述目标终端设备的可达信息位于所述MP-BGP消息中的E-VPN网络层可达性信息NLRI字段。
18.一种非边缘网关设备,其特征在于,所述非边缘网关设备包括:
解封模块,用于将接收到的封装数据包,依次解封所述封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈的最外层MPLS标签;其中,所述封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈以及所述底层包头;所述封装MPLS标签栈包括:所述非边缘网关设备至与目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;所述最外层MPLS标签包括:所述非边缘网关设备为下一跳设备所分配的MPLS标签;
确定模块,用于根据所述最外层MPLS标签以及转发信息,确定所述非边缘网关设备的下一跳设备的网际互联协议IP地址;其中,所述转发信息包括:所述最外层MPLS标签与所述非边缘网关设备的下一跳设备的IP地址之间的映射关系;
封装模块,用于根据所述非边缘网关设备的下一跳设备的IP地址,对所述封装MPLS标签栈中除所述最外层MPLS标签之外的剩余封装MPLS标签栈重新封装底层包头,得到新的封装数据包;
第一发送模块,用于将所述新的封装数据包发送给所述非边缘网关设备的下一跳设备。
19.根据权利要求18所述的非边缘网关设备,其特征在于,若所述非边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,重新封装的所述底层包头包括:IP包头和用户数据报协议UDP包头,所述IP包头中的目的IP地址为所述非边缘网关设备的下一跳设备的IP地址。
20.根据权利要求18所述的非边缘网关设备,其特征在于,若所述非边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,所述封装模块,包括:
确定单元,用于根据所述非边缘网关设备的下一跳设备的IP地址以及映射信息,确定所述非边缘网关设备的下一跳设备对应的公网MPLS标签;其中,所述映射信息包括:所述非边缘网关设备的下一跳设备的IP地址与所述非边缘网关设备的下一跳设备的公网MPLS标签之间的映射关系;
封装单元,用于根据所述非边缘网关设备的下一跳设备的公网MPLS标签,对所述剩余封装MPLS标签栈重新封装底层包头,所述底层包头中包括所述非边缘网关设备的的下一跳设备的公网MPLS标签。
21.根据权利要求18-20中任一项所述的非边缘网关设备,其特征在于,所述非边缘网关设备,还包括:
接收模块,用于接收所述非边缘网关设备的下一跳设备发送的所述目标终端设备的第一可达信息;其中,所述第一可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的下一跳设备的IP地址、以及所述非边缘网关设备的下一跳设备至所述边缘网关设备之间的各网关设备所分配的MPLS标签;
第二发送模块,用于向所述非边缘网关设备的上一跳设备发送所述目标终端设备的第二可达信息;其中,所述第二可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的IP地址、以及所述非边缘网关设备至所述边缘网关设备之间的各网关设备所分配的MPLS标签。
22.根据权利要求21所述的非边缘网关设备,其特征在于,所述目标终端设备的第一可达信息携带于第一多协议外部网关协议MP-BGP消息中;
所述目标终端设备的第二可达信息携带于第二MP-BGP消息中。
23.根据权利要求22所述的非边缘网关设备,其特征在于,所述目标终端设备的第一可达信息位于第一MP-BGP消息中的E-VPN网络层可达性信息NLRI字段;
所述目标终端设备的第二可达信息位于所述第二MP-BGP消息中的E-VPN NLRI字段。
24.一种边缘网关设备,其特征在于,所述边缘网关设备为与源终端设备相连的边缘网关设备,所述边缘网关设备包括:
确定模块,用于根据第一映射信息以及所获取的标识信息,确定非边缘网关设备的网际互联协议IP地址以及多协议外部网关协议MPLS标签栈;其中,所述非边缘网关设备为所述边缘网关设备的下一跳设备;所述标识信息包括:所述边缘网关设备根据从所述源终端设备接收到的媒体访问控制层MAC数据包所获取的目标终端设备的MAC地址,以及所述源终端设备所属虚拟化叠加网络的虚拟网络标识VNI;所述第一映射信息包括:所述标识信息与所述非边缘网关设备的IP地址以及所述MPLS标签栈之间的映射关系;所述MPLS标签栈包括:所述非边缘网关设备至与所述目标终端设备相连的边缘网关设备之间的各网关设备所分配的MPLS标签;
封装模块,用于根据所述非边缘网关设备的IP地址以及所述MPLS标签栈,对所述MAC数据包进行封装,得到封装数据包;
发送模块,用于将所述封装数据包发送给所述非边缘网关设备。
25.根据权利要求24所述的边缘网关设备,其特征在于,所述封装模块,包括:
第一封装单元,用于根据所述MPLS标签栈对所述MAC数据包按顺序依次封装:与所述目标终端设备相连的边缘网关设备至所述非边缘网关设备之间的各网关设备所分配的MPLS标签,形成封装MPLS标签栈;
第二封装单元,用于根据所述非边缘网关设备的IP地址,对所述封装MPLS标签栈封装底层包头。
26.根据权利要求25所述的边缘网关设备,其特征在于,若所述与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用虚拟可扩展局域网VxLAN封装格式,所述底层包头包括:IP包头和用户数据报协议UDP包头,所述IP包头中的目的IP地址为所述非边缘网关设备的IP地址。
27.根据权利要求25所述的边缘网关设备,其特征在于,若所述与源终端设备相连的边缘网关设备所属的虚拟化叠加网络采用以太层虚拟私网E-VPN封装格式,所述第二封装单元具体用于:
根据所述非边缘网关设备的IP地址以及第二映射信息,确定所述非边缘网关设备的公网MPLS标签;其中,所述第二映射信息包括:所述非边缘网关设备的IP地址与所述非边缘网关设备的公网MPLS标签之间的映射关系;
根据所述非边缘网关设备的公网MPLS标签,对所述封装MPLS标签栈封装底层包头,所述底层包头中包括所述非边缘网关设备的公网MPLS标签。
28.根据权利要求24-27中任一项所述的边缘网关设备,其特征在于,所述与源终端设备相连的边缘网关设备,还包括:
接收模块,用于接收所述非边缘网关设备发送的所述目标终端设备的可达信息;其中,所述目标终端设备的可达信息包括:所述目标终端设备的MAC地址、所述非边缘网关设备的IP地址以及所述MPLS标签栈。
29.一种边缘网关设备,其特征在于,所述边缘网关设备为与目标终端设备相连的边缘网关设备,所述边缘网关设备包括:
解封模块,用于将从非边缘网关设备接收到的封装数据包,依次解封所述封装数据包的底层包头以及封装多协议外部网关协议MPLS标签栈;其中,所述封装数据包的封装次序依次包括:媒体访问控制层MAC数据包、封装MPLS标签栈以及底层包头;所述封装MPLS标签栈包括:所述边缘网关设备为所述目标终端设备所分配的MPLS标签;
确定模块,用于根据所述MAC数据包中的所述目标终端设备的MAC地址、所述封装MPLS标签栈中的MPLS标签、以及映射信息,确定数据包转发接口;其中,所述映射信息包括:所述目标终端设备的MAC地址、所述封装MPLS标签栈中的MPLS标签与所述数据包转发接口之间的映射关系;
第一发送模块,用于将所述MAC数据包通过数据转发接口发送给所述目标终端设备。
30.根据权利要求29所述的边缘网关设备,其特征在于,所述边缘网关设备,还包括:
第二发送模块,用于向所述非边缘网关设备发送所述目标终端设备的可达信息;其中,所述目标终端设备的可达信息包括:所述目标终端设备的MAC地址、所述边缘网关设备的IP地址、以及所述边缘网关设备为所述目标终端设备所分配的MPLS标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710527601.1A CN109218258B (zh) | 2017-06-30 | 2017-06-30 | 数据包传输方法及网关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710527601.1A CN109218258B (zh) | 2017-06-30 | 2017-06-30 | 数据包传输方法及网关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109218258A CN109218258A (zh) | 2019-01-15 |
CN109218258B true CN109218258B (zh) | 2021-01-05 |
Family
ID=64992079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710527601.1A Active CN109218258B (zh) | 2017-06-30 | 2017-06-30 | 数据包传输方法及网关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109218258B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995005B (zh) * | 2019-12-17 | 2022-02-25 | 北京百度网讯科技有限公司 | 虚拟网络数据交换方法和装置 |
CN113132229B (zh) * | 2019-12-30 | 2022-10-28 | 华为技术有限公司 | 段标识的确定方法和设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170386A (zh) * | 2010-02-26 | 2011-08-31 | 中兴通讯股份有限公司 | 身份标识与位置分离的实现方法、系统及数据封装方法 |
CN102546433A (zh) * | 2012-02-10 | 2012-07-04 | 中兴通讯股份有限公司 | 基于mpls vpn的数据转发方法和边缘设备 |
CN103259724A (zh) * | 2012-02-15 | 2013-08-21 | 中兴通讯股份有限公司 | 一种mpls vpn的实现方法、系统及客户边缘设备 |
CN104158718A (zh) * | 2014-08-25 | 2014-11-19 | 杭州华三通信技术有限公司 | 一种报文处理方法和装置 |
CN106059924A (zh) * | 2016-08-19 | 2016-10-26 | 华为技术有限公司 | 一种管理信息的方法,装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10135789B2 (en) * | 2015-04-13 | 2018-11-20 | Nicira, Inc. | Method and system of establishing a virtual private network in a cloud service for branch networking |
-
2017
- 2017-06-30 CN CN201710527601.1A patent/CN109218258B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170386A (zh) * | 2010-02-26 | 2011-08-31 | 中兴通讯股份有限公司 | 身份标识与位置分离的实现方法、系统及数据封装方法 |
CN102546433A (zh) * | 2012-02-10 | 2012-07-04 | 中兴通讯股份有限公司 | 基于mpls vpn的数据转发方法和边缘设备 |
CN103259724A (zh) * | 2012-02-15 | 2013-08-21 | 中兴通讯股份有限公司 | 一种mpls vpn的实现方法、系统及客户边缘设备 |
CN104158718A (zh) * | 2014-08-25 | 2014-11-19 | 杭州华三通信技术有限公司 | 一种报文处理方法和装置 |
CN106059924A (zh) * | 2016-08-19 | 2016-10-26 | 华为技术有限公司 | 一种管理信息的方法,装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109218258A (zh) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11621869B2 (en) | Enabling access to dedicated resources in a virtual network using top of rack switches | |
US11563602B2 (en) | Method and apparatus for providing a point-to-point connection over a network | |
CN112422393B (zh) | 可扩展虚拟局域网报文发送方法、计算机设备和可读介质 | |
US10205657B2 (en) | Packet forwarding in data center network | |
US9628379B2 (en) | Large scale residential cloud based application centric infrastructures | |
CN113411243B (zh) | 数据传输方法及装置 | |
WO2022001835A1 (zh) | 发送报文的方法、装置、网络设备、系统及存储介质 | |
WO2015113410A1 (zh) | 数据包的处理方法与装置 | |
CN113660164B (zh) | 一种报文转发方法及网络设备 | |
CN112104547B (zh) | Evpn多归属组网避免环路的方法及装置 | |
CN113542111A (zh) | 一种报文转发方法及网络设备 | |
US20230308386A1 (en) | Packet Transmission Method and Apparatus | |
CN114666267A (zh) | 以太虚拟专用网的数据处理方法、设备及存储介质 | |
CN116418632A (zh) | 一种报文处理方法、装置、设备及机器可读存储介质 | |
CN109218258B (zh) | 数据包传输方法及网关设备 | |
EP4020903B1 (en) | Method and apparatus for preventing traffic bypassing | |
US11611508B2 (en) | Packet forwarding method and network device | |
CN111010344B (zh) | 报文转发方法、装置、电子设备及机器可读存储介质 | |
CN111447131B (zh) | 报文解封装方法及装置、报文封装方法及装置 | |
CN114513485A (zh) | 获取映射规则的方法、装置、设备、系统及可读存储介质 | |
CN106302264A (zh) | Dune交换线卡板与灵活线卡板间的单播报文互通方法及装置 | |
CN113765794B (zh) | 数据发送的方法、装置、电子设备及介质 | |
US20230018873A1 (en) | Method and system for processing encapsulated wireless traffic | |
WO2023109398A1 (zh) | 一种报文传输方法及装置 | |
CN117914820A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211222 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |