CN112260927B - 一种报文发送方法、vtep及存储介质 - Google Patents
一种报文发送方法、vtep及存储介质 Download PDFInfo
- Publication number
- CN112260927B CN112260927B CN202011123046.4A CN202011123046A CN112260927B CN 112260927 B CN112260927 B CN 112260927B CN 202011123046 A CN202011123046 A CN 202011123046A CN 112260927 B CN112260927 B CN 112260927B
- Authority
- CN
- China
- Prior art keywords
- local area
- area network
- virtual local
- message
- stack
- 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/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
- H04L2212/00—Encapsulation of packets
Abstract
本申请提供一种报文发送方法、VTEP及存储介质,用于改善VTEP发送报文效率较低的问题。该报文发送方法包括:若接收到组播报文或者广播报文,则通过处理器根据预设编号生成多个虚拟局域网标签;通过处理器根据多个虚拟局域网标签对组播报文或者广播报文进行封装,获得第一堆栈虚拟局域网报文;通过交换芯片对第一堆栈虚拟局域网报文进行重新封装,获得重新封装后的多个虚拟可扩展局域网VXLAN报文,并分别发送多个VXLAN报文。
Description
技术领域
本申请涉及计算机网络和网络通信的技术领域,具体而言,涉及一种报文发送方法、虚拟可扩展局域网隧道端点及存储介质。
背景技术
虚拟可扩展局域网(Virtual Extensible Local Area Network,VXLAN)是一种网络虚拟化技术,可以改进云计算在部署时的扩展问题,VXLAN可以穿透三层网络对二层进行扩展,可以通过VXLAN来封装流量并将其扩展到第三层网关,从而可以访问在外部子网上的服务器。
目前虚拟可扩展局域网隧道端点(VXLAN Tunnel End Point,VTEP)间的连接采取的是VTEP中的处理器通过纯软件的方式发送报文与各个邻居VTEP建立通信连接,纯软件的方式也可以理解为只使用中央处理器(Central Processing Unit,CPU)的方式,采用的方式为点对点发送,给每个相邻的VTEP依次发送VXLAN报文。
当源VTEP向多个目标VTEP发送报文时,该源VTEP的处理器需要经过多次的封装过程,需要执行多次发送封装报文并分别发送到多个VTEP,这样使得处理器发送报文的效率不高。当VXLAN下的目标VTEP数目增加时,该源VTEP的处理器消耗会随着VXLAN的隧道数量(也可以理解为目标VTEP的数量)增加而不断增加,一旦目标VTEP数量急剧增加,会导致该源VTEP的处理器负担过重而导致报文的发送效率降低;也就是说,目前的VTEP发送报文效率较低。
发明内容
本申请实施例的目的在于提供一种报文发送方法、VTEP及存储介质,用于改善VTEP发送报文效率较低的问题。
本申请实施例提供了一种报文发送方法,应用于虚拟可扩展局域网隧道端点VTEP,包括:若接收到组播报文或者广播报文,则通过的处理器根据预设编号生成多个虚拟局域网标签;通过处理器根据多个虚拟局域网标签对组播报文或者广播报文进行封装,获得第一堆栈虚拟局域网报文;通过交换芯片对第一堆栈虚拟局域网报文进行重新封装,获得重新封装后的多个虚拟可扩展局域网VXLAN报文,并分别发送多个VXLAN报文。在上述的实现过程中,在源VTEP在接收协议报文之后,源VTEP使用处理器对协议报文进行封装,获得封装后的堆栈虚拟局域网报文,并将堆栈虚拟局域网报文发送给交换芯片,由交换芯片来对堆栈虚拟局域网报文进行解封、复制、重新封装和分别发送,由于采用硬件级别的交换芯片执行解封、复制、重新封装和分别发送等步骤,即使用硬件级别的交换芯片来处理堆栈虚拟局域网报文的方式替代纯软件的处理器来处理的方式,有效地利用了交换芯片的硬件优势,从而减轻了CPU的负担,并提高了报文的发送效率。
可选地,在本申请实施例中,根据预设编号生成多个虚拟局域网标签,包括:将预设编号除以预设数字的商值确定为第一虚拟局域网标签,第一虚拟局域网标签用于标识运营商的虚拟局域网;将预设编号除以预设数字的余数确定为第二虚拟局域网标签,第二虚拟局域网标签用于标识租户的虚拟局域网。在上述的实现过程中,通过将预设编号除以预设数字的商值确定为第一虚拟局域网标签,第一虚拟局域网标签用于标识运营商的虚拟局域网;将预设编号除以预设数字的余数确定为第二虚拟局域网标签,第二虚拟局域网标签用于标识租户的虚拟局域网;从而将运营商的虚拟局域网和租户的虚拟局域网在逻辑上进行了有效地分割,提高了两者的独立性和可用性。
可选地,在本申请实施例中,第一虚拟局域网标签和第二虚拟局域网标签是封装在第一堆栈虚拟局域网报文中的数据链路层的报文头部中。
可选地,在本申请实施例中,还包括:若接收到单播报文,则通过处理器将单播报文中的目的地址修改为预设虚拟地址,获得修改后的单播报文,并根据预设编号生成多个虚拟局域网标签;通过处理器根据多个虚拟局域网标签对修改后的单播报文进行封装,获得第二堆栈虚拟局域网报文;通过交换芯片对第二堆栈虚拟局域网报文进行解封和重新封装,获得重新封装后的VXLAN报文,并发送重新封装后的VXLAN报文。在上述的实现过程中,通过若接收到单播报文,则通过处理器将单播报文中的目的地址修改为预设虚拟地址,获得修改后的单播报文,并根据预设编号生成多个虚拟局域网标签;通过处理器根据多个虚拟局域网标签对修改后的单播报文进行封装,获得第二堆栈虚拟局域网报文;通过交换芯片对第二堆栈虚拟局域网报文进行解封和重新封装,获得重新封装后的VXLAN报文,并发送重新封装后的VXLAN报文;从而有效地让原来的设计不变的情况下,能够同时处理单播报文的转发,提高了报文发送方法的可用性和鲁棒性。
可选地,在本申请实施例中,根据预设编号生成多个虚拟局域网标签,包括:将预设数字确定为第一虚拟局域网标签,第一虚拟局域网标签用于标识电信运营商的虚拟局域网;将预设编号除以预设数字的商值确定为第二虚拟局域网标签,第二虚拟局域网标签用于标识云服务提供商的虚拟局域网;将预设编号除以预设数字的余数确定为第三虚拟局域网标签,第三虚拟局域网标签用于标识云服务用户的虚拟局域网。在上述的实现过程中,通过将预设数字确定为第一虚拟局域网标签,第一虚拟局域网标签用于标识电信运营商的虚拟局域网;将预设编号除以预设数字的商值确定为第二虚拟局域网标签,第二虚拟局域网标签用于标识云服务提供商的虚拟局域网;将预设编号除以预设数字的余数确定为第三虚拟局域网标签,第三虚拟局域网标签用于标识云服务用户的虚拟局域网;从而将运营商、云服务提供商和云服务用户的虚拟局域网在逻辑上进行了有效地分割,提高了三者的独立性和可用性。
可选地,在本申请实施例中,第一虚拟局域网标签、第二虚拟局域网标签和第三虚拟局域网标签是封装在第一堆栈虚拟局域网报文中的数据链路层的报文头部中。
可选地,在本申请实施例中,对第一堆栈虚拟局域网报文进行重新封装,包括:对第一堆栈虚拟局域网报文进行解封,获得解封后的多个虚拟局域网标签和目的地址信息;根据解封后的多个虚拟局域网标签生成VXLAN编号,并根据目的地址信息确定出的报文数量复制第一堆栈虚拟局域网报文,获得复制后的多个堆栈虚拟局域网报文;根据VXLAN编号对应的隧道信息和目的地址信息对复制后的多个堆栈虚拟局域网报文进行重新封装。在上述的实现过程中,通过对第一堆栈虚拟局域网报文进行解封,获得解封后的多个虚拟局域网标签和目的地址信息;根据解封后的多个虚拟局域网标签生成VXLAN编号,并根据目的地址信息确定出的报文数量复制第一堆栈虚拟局域网报文,获得复制后的多个堆栈虚拟局域网报文;根据VXLAN编号对应的隧道信息和目的地址信息对复制后的多个堆栈虚拟局域网报文进行重新封装;从而在不改变原有交换芯片的执行逻辑的情况下,使得软件转发行为很难与芯片转发行为保持一致,实现了组播报文或广播报文的快速转发,有效地提高了承载较多即时性要求高的组播协议或者广播协议的可能性。
本申请实施例还提供了一种VTEP,包括:处理器和交换芯片;处理器用于若接收到组播报文或者广播报文,则根据预设编号生成多个虚拟局域网标签;以及根据多个虚拟局域网标签对组播报文或者广播报文进行封装,获得第一堆栈虚拟局域网报文;交换芯片用于对第一堆栈虚拟局域网报文进行重新封装,获得重新封装后的多个VXLAN报文,并分别发送多个VXLAN报文。
可选地,在本申请实施例中,处理器还用于,将预设编号除以预设数字的商值确定为第一虚拟局域网标签,第一虚拟局域网标签用于标识运营商的虚拟局域网;将预设编号除以预设数字的余数确定为第二虚拟局域网标签,第二虚拟局域网标签用于标识租户的虚拟局域网。
可选地,在本申请实施例中,第一虚拟局域网标签和第二虚拟局域网标签是封装在第一堆栈虚拟局域网报文中的数据链路层的报文头部中。
可选地,在本申请实施例中,处理器还用于,若接收到单播报文,则将单播报文中的目的地址修改为预设虚拟地址,并根据预设编号生成多个虚拟局域网标签;以及根据多个虚拟局域网标签对修改后的单播报文进行封装,获得第二堆栈虚拟局域网报文;交换芯片还用于,对第二堆栈虚拟局域网报文进行解封和重新封装,获得重新封装后的VXLAN报文,并发送重新封装后的VXLAN报文。
可选地,在本申请实施例中,处理器还用于,将预设数字确定为第一虚拟局域网标签,第一虚拟局域网标签用于标识电信运营商的虚拟局域网;将预设编号除以预设数字的商值确定为第二虚拟局域网标签,第二虚拟局域网标签用于标识云服务提供商的虚拟局域网;将预设编号除以预设数字的余数确定为第三虚拟局域网标签,第三虚拟局域网标签用于标识云服务用户的虚拟局域网。
可选地,在本申请实施例中,第一虚拟局域网标签、第二虚拟局域网标签和第三虚拟局域网标签是封装在第一堆栈虚拟局域网报文中的数据链路层的报文头部中。
可选地,在本申请实施例中,交换芯片具体用于,对第一堆栈虚拟局域网报文进行解封,获得解封后的多个虚拟局域网标签和目的地址信息;根据解封后的多个虚拟局域网标签生成VXLAN编号,并根据目的地址信息确定出的报文数量复制第一堆栈虚拟局域网报文,获得复制后的多个堆栈虚拟局域网报文;根据VXLAN编号对应的隧道信息和目的地址信息对复制后的多个堆栈虚拟局域网报文进行重新封装。
本申请实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出的对照实施例提供的VTEP发送报文过程的示意图;
图2示出的本申请实施例提供的VTEP的结构示意图;
图3示出的本申请实施例提供的针对组播报文或者广播报文发送方法的流程示意图;
图4示出的对照实施例提供的对组播报文或者广播报文进行封装的示意图;
图5示出的本申请实施例提供的针对单播报文发送方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。
在介绍本申请实施例提供的报文发送方法之前,先介绍本申请实施例中所涉及的一些概念:
基础设施即服务(Infrastructure as a Service,IaaS)是提供消费者处理、储存、网络以及各种基础运算资源,以部署与执行操作系统或应用程序等各种软件。
虚拟局域网(Virtual Local Area Network,VLAN)是一种建构于局域网交换技术(LAN Switch)的网络管理的技术,可以借此透过控制交换机有效分派出入局域网的报文到正确的出入端口,达到对不同实体局域网中的设备进行逻辑分群(Grouping)管理,并降低局域网内大量数据流通时,因无用报文过多导致壅塞的问题,以及提升局域网的信息安全保障。
堆栈虚拟局域网(stack VLAN或者stacking VLAN),又被称为QinQ、DoubleVLAN或者IEEE 802.1ad,是一种以802.1Q为基础衍生出来的通讯协议;即原始802.1Q报文中加入单一虚拟局域网报文头部(Vlan header),QinQ允许两个虚拟局域网报文头部被放置在同一个帧(frame)中。
媒体访问控制(Media Access Control,MAC)地址,也称为局域网地址(LANAddress)、以太网地址(Ethernet Address)或物理地址(Physical Address),媒体访问控制地址是一个用来确认网络设备位置的地址。
请参见图1示出的对照实施例提供的VTEP发送报文过程的示意图;在介绍本申请实施例提供的报文发送方法之前,先介绍对照实施例提供的发送报文过程;图中的源VTEP与第一目标VTEP和第二目标VTEP通信连接,即源VTEP接收协议报文流,协议报文流是指源VTEP所在物理网络中的报文流数据,协议报文流可以包括:单播报文、组播报文和广播报文。以组播报文和广播报文两种协议报文为例,源VTEP在接收协议报文之后,源VTEP使用处理器(CPU)对协议报文进行复制、增加头部信息(即图中的加头)和修改报文,并将修改后的报文分别发送给第一目标VTEP和第二目标VTEP。
需要说明的是,本申请实施例提供的报文发送方法可以被VTEP执行,这里的VTEP可以是具有执行计算机程序功能的二层交换机或三层网络交换机等。本申请实施例提供的报文发送方法有很多种适用的应用场景,这里的应用场景包括但不限于:电信运营商核心网络优化领域、云计算和大数据等云服务等领域。先以电信运营商核心网络优化领域为例,使用该报文发送方法可以加快网络中心或者数据中心的VXLAN报文发送效率,或者使用该报文发送方法减少数据中心的虚拟机第一次通信时延,或者使用该报文发送方法提高承载组播协议或广播协议在物理网络中的即时性等等。再以云计算和大数据等云服务领域为例,使用该报文发送方法有效地在物理网络上隔离电信运营商、云服务提供商和云服务用户的虚拟局域网络的广播域;其中,电信运营商为云服务提供商提供基础通信服务,云服务提供商为云服务用户提供的服务包括但不限于基础设施即服务(IaaS)服务等,即云服务用户使用云服务提供商提供的基础网络搭建虚拟局域网,而该基础网络是包括云服务提供商的虚拟局域网络中的,电信运营商和云服务提供商可以使用该报文发送方法提高VTEP发送组播报文或者广播报文的效率。
请参见图2示出的本申请实施例提供的VTEP的结构示意图;其中,各个设备之间的连接关系和图1中示出的类似,因此,这里不再赘述。图2中的源VTEP与图1中的源VTEP的硬件结构类似,区别在于图2中的源VTEP中增加有交换芯片。下面将详细描述本申请实施例提供的报文发送方法,这里先简单描述,本申请实施例提供的发送报文方法的主要思路是:在源VTEP在接收协议报文之后,源VTEP使用处理器对协议报文进行封装,获得封装后的堆栈虚拟局域网报文,并将堆栈虚拟局域网报文发送给交换芯片,由交换芯片来对堆栈虚拟局域网报文进行解封、复制、重新封装和分别发送,由于采用交换芯片执行解封、复制、重新封装和分别发送等步骤,即使用交换芯片来处理堆栈虚拟局域网报文的方式替代纯软件的处理方式,有效地利用了交换芯片的硬件优势,从而减轻了处理器的负担,并提高了报文的发送效率。
请参见图3示出的本申请实施例提供的针对组播报文或者广播报文发送方法的流程示意图;该报文发送方法可以应用于VTEP,该方法可以包括:
步骤S110:若接收到组播报文或者广播报文,则通过处理器根据预设编号生成多个虚拟局域网标签。
可以理解的是,组播报文或者广播报文均可以是数据链路层的协议报文,这两种协议报文的格式是类似的,区别仅是目的地址信息不同,因此,将这两种协议报文的格式放在一起说明,协议报文可以包括:数据链路层头部(简称MAC头或MACheader)、网络层头部(简称IP头或IP header)和报文载荷(Payload)。
预设编号,是指人为预先配置的VXLAN实例标识;在具体的实践过程中,此处的预设编号也可以采用虚拟可扩展局域网的网络编号(VXLAN Network Identification,VNI),此处的VNI又被简称为VXLAN网络编号,VNI是唯一标示一个VXLAN转发域。
上述步骤S110中的通过处理器根据预设编号生成多个虚拟局域网标签的实施方式有很多种,根据堆栈虚拟局域网报文所包含的虚拟局域网标签的个数不同而不同,理论上来说,堆栈虚拟局域网报文可以包括无数个虚拟局域网标签,实际上比较常用的有如下两种情况。
第一种情况,堆栈虚拟局域网报文包含:运营商使用的第一虚拟局域网标签和租户使用的第二虚拟网标签,上述步骤S110中获得标签的实施方式包括:
步骤S111:将预设编号除以预设数字的商值确定为第一虚拟局域网标签,第一虚拟局域网标签用于标识运营商的虚拟局域网。
预设数字是人为设置的值,可以根据具体实际情况进行设置,具体例如:由于VNI共有2的24次方个数字作为网络编号,那么可以考虑将VNI的数字的一半作为预设数字,即将2的12次方(即4096)作为预设数字。
步骤S112:将预设编号除以预设数字的余数确定为第二虚拟局域网标签,第二虚拟局域网标签用于标识租户的虚拟局域网。
其中,第一虚拟局域网标签和第二虚拟局域网标签是封装在第一堆栈虚拟局域网报文中的数据链路层的报文头部中。
由于步骤S111的实施方式和步骤S112的实施方式的联系比较紧密,因此将两个步骤放在一起说明;上述步骤S111和步骤S112的实施方式例如:为了便于理解和说明,下面均让VNI使用10进制数作为示例进行说明,假设预设编号为4098,那么将预设编号4098除以预设数字4096的商为1,且余数为2,那么容易得知,第一虚拟局域网标签为1,第二虚拟局域网标签为2。
第二种情况,堆栈虚拟局域网报文包含:电信运营商使用的第一虚拟局域网标签、云服务提供商使用的第二虚拟网标签和云服务用户使用的第三虚拟网标签,上述步骤S110中获得标签的实施方式包括:
步骤S113:将预设数字确定为第一虚拟局域网标签,第一虚拟局域网标签用于标识电信运营商的虚拟局域网。
步骤S114:将预设编号除以预设数字的商值确定为第二虚拟局域网标签,第二虚拟局域网标签用于标识云服务提供商的虚拟局域网。
步骤S115:将预设编号除以预设数字的余数确定为第三虚拟局域网标签,第三虚拟局域网标签用于标识云服务用户的虚拟局域网。
其中,第一虚拟局域网标签、第二虚拟局域网标签和第三虚拟局域网标签是封装在第一堆栈虚拟局域网报文中的数据链路层的报文头部中。
由于步骤S113至步骤S115的实施方式的联系比较紧密,因此将三个步骤放在一起说明;上述步骤S113至步骤S115的实施方式例如:假设预设编号为13,预设数字为11,那么将预设编号13除以预设数字11的商为1,且余数为2,那么容易得知,第一虚拟局域网标签为11,第二虚拟局域网标签为1,且第三虚拟局域网标签为2。
当然,理论上堆栈虚拟局域网报文还包含:四个标签和五个标签等等情况,实际过程中也可以根据具体情况进行选择,这里就不再穷举。
在步骤S110之后,执行步骤S120:通过处理器根据多个虚拟局域网标签对组播报文或者广播报文进行封装,获得第一堆栈虚拟局域网报文。
请参见图4示出的对照实施例提供的对组播报文或者广播报文进行封装的示意图;图中对组播报文或者广播报文进行封装的前后对比如图上面的两个列表图,网络层头部和报文载荷均没有变化,唯一有变化的是链路层头部,链路层头部就是指接收到的协议报文的数据链路层头部,链路层头部按照字段信息依次为:目的MAC(DestinationMAC,DMAC)地址、源MAC(SourceMAC,SMAC)地址和报文长度(Length,LEN);具体的变化过程将在后面的实施方式中详细描述。
上述虚拟局域网标签的个数可以根据具体情况设置,此处为了便于理解和说明,仅以两个虚拟局域网标签为例进行详细的说明,上述步骤S120的实施方式包括:假设根据预设编号仅生成两个虚拟局域网标签,这里的两个虚拟局域网标签包括:运营商使用的第一虚拟局域网标签和租户使用的第二虚拟网标签;其中,第一虚拟局域网标签又被称为服务者虚拟局域网标识(Server VLAN ID,SVLAN ID),第二虚拟局域网标签又被称为客户虚拟局域网标识(Client VLAN ID,CVLAN ID);因此,可以将接收到的协议报文的数据链路层头部中插入两个重复字段,即插入两个一样的以太网类型字段(Ethernet type,ETYPE)和标签字段(TAG),插入前的字段列表例如:DMAC、SMAC和LEN,插入后的字段列表例如:DMAC、SMAC、ETYPE、TAG、ETYPE、TAG和LEN;其中,ETYPE的具体值可以是0x8100,当ETYPE的取值为0x8100时表示此帧的类型为802.1Q Tag帧,TAG字段包括:优先级(Priority)、标准格式指示位(Canonical Format Indicator,CFI)和虚拟局域网标识(VLAN ID),将外层的虚拟局域网标识(VLAN ID)的值设置为服务者虚拟局域网标识(SVLAN ID),并将内层的虚拟局域网标识(VLAN ID)的值设置为客户虚拟局域网标识(CVLAN ID)就完成了封装,即可获得第一堆栈虚拟局域网报文;具体地,根据上面的计算,服务者虚拟局域网标识(SVLAN ID)可以设置为1,客户虚拟局域网标识(CVLAN ID)可以设置为2。
在步骤S120之后,执行步骤S130:通过交换芯片对第一堆栈虚拟局域网报文进行重新封装,获得重新封装后的多个VXLAN报文,并分别发送多个VXLAN报文。
上述步骤S130的实施方式可以包括:
步骤S131:对第一堆栈虚拟局域网报文进行解封,获得解封后的多个虚拟局域网标签和目的地址信息。
上述步骤S131的实施方式例如:对第一堆栈虚拟局域网报文进行解封,获得解封后的多个虚拟局域网标签和目的地址信息;其中,解封的过程和上述步骤S120的封装过程是逆向过程,就不再赘述。解封后的多个虚拟局域网标签就是还原上述两个虚拟局域网标签的过程,具体例如:获得的服务者虚拟局域网标识(SVLAN ID)可以设置为1,客户虚拟局域网标识(CVLAN ID)可以设置为2,目的地址信息根据具体情况获得,例如广播报文的MAC地址是FFFFFFFFFFFF。
步骤S132:根据解封后的多个虚拟局域网标签生成VXLAN编号,并根据目的地址信息确定出的报文数量复制第一堆栈虚拟局域网报文,获得复制后的多个堆栈虚拟局域网报文。
上述步骤S132中的根据解封后的多个虚拟局域网标签生成VXLAN编号的实施方式例如:假设预设数字为2的12次方(即4096),且解封后的多个虚拟局域网标签包括:服务者虚拟局域网标识(SVLAN ID)为1,客户虚拟局域网标识(CVLAN ID)为2,那么根据解封后的多个虚拟局域网标签生成VXLAN编号(VNI)的过程为:VNI=SVLAN*4096+CVLAN=1*4096+2=4098;即获得的VXLAN编号(VNI)为4098。
上述步骤S132中的根据目的地址信息确定出的报文数量复制第一堆栈虚拟局域网报文的实施方式例如:假设该VTEP中对应的目标VTEP有两个,且广播报文的MAC地址是FFFFFFFFFFFF;那么根据目的地址信息确定出的报文数量为2,因此,应当复杂2个第一堆栈虚拟局域网报文,即可获得复制后的2个堆栈虚拟局域网报文;根据组播地址信息确定出的报文数量复制第一堆栈虚拟局域网报文的实施方式与此类似,因此,不再对该实施方式进行赘述。
步骤S133:根据VXLAN编号对应的隧道信息和目的地址信息对复制后的多个堆栈虚拟局域网报文进行重新封装,获得重新封装后的多个VXLAN报文。
上述步骤S133的实施方式例如:将原来的报文头部作为内层报文头部,这里的内层报文头部包括:内部网络层头部(Inner IP Header)和内部链路层头部(Inner MACHeader);并在内层报文头部依次加上VXLAN报文头部(VXLAN Header)、外部传输层头部(Outer UDP Header)、外部网络层头部(Outer IP Header)和外部链路层头部(Outer MACHeader);其中,VXLAN报文头部包括:VXLAN标志(VXLAN Flags)、组标识(Group ID)、VXLAN网络标识(VNI)和保留字段(Reserved);并将VXLAN网络标识设置为上面计算获得的4098,即可获得重新封装后的一个VXLAN报文;然后将每个VXLAN报文的目标地址信息对应修改,即可获得重新封装后的多个VXLAN报文。
在上述的实现过程中,通过对第一堆栈虚拟局域网报文进行解封,获得解封后的多个虚拟局域网标签和目的地址信息;根据解封后的多个虚拟局域网标签生成VXLAN编号,并根据目的地址信息确定出的报文数量复制第一堆栈虚拟局域网报文,获得复制后的多个堆栈虚拟局域网报文;根据VXLAN编号对应的隧道信息和目的地址信息对复制后的多个堆栈虚拟局域网报文进行重新封装;从而在不改变原有交换芯片的执行逻辑的情况下,使得软件转发行为很难与芯片转发行为保持一致,实现了组播报文或广播报文的快速转发,有效地提高了承载较多即时性要求高的组播协议或者广播协议的可能性。
步骤S134:通过交换芯片分别发送重新封装后的多个VXLAN报文。
上述步骤S134的实施方式例如:通过交换芯片分别发送重新封装后的多个VXLAN报文。在上述的实现过程中,在源VTEP在接收协议报文之后,源VTEP使用处理器(CPU)对协议报文进行封装,获得封装后的堆栈虚拟局域网报文,并将堆栈虚拟局域网报文发送给交换芯片,由交换芯片来对堆栈虚拟局域网报文进行解封、复制、重新封装和分别发送,由于采用硬件级别的交换芯片执行解封、复制、重新封装和分别发送等步骤,即使用硬件级别的交换芯片来处理堆栈虚拟局域网报文的方式替代纯软件的处理器来处理的方式,有效地利用了交换芯片的硬件优势,从而减轻了CPU的负担,并提高了报文的发送效率。
请参见图5示出的本申请实施例提供的针对单播报文发送方法的流程示意图。针对单播报文发送协议报文,可以结合使用处理器和交换芯片发送单播报文的发送方式,该发送方式可以包括:
步骤S210:若接收到单播报文,则通过处理器将单播报文中的目的地址修改为预设虚拟地址,获得修改后的单播报文,并根据预设编号生成多个虚拟局域网标签。
其中,该步骤S210的实施原理和实施方式与步骤S110的实施原理和实施方式是类似的,区别仅在于,通过处理器将单播报文中的目的地址修改为预设虚拟地址,当然也可以根据具体实际情况修改单播报文中的源地址,将源地址修改为非本VTEP地址即可,因此,这里不再对该步骤的实施方式和实施原理进行说明,如有不清楚的地方,可以参考对步骤S110的描述。
步骤S220:通过处理器根据多个虚拟局域网标签对修改后的单播报文进行封装,获得第二堆栈虚拟局域网报文。
其中,该步骤S220的实施原理和实施方式与步骤S120的实施原理和实施方式是类似的,区别仅在于,步骤S220处理的是组播报文或者广播报文,而步骤S120处理的是单播报文,因此,这里不再对该步骤的实施方式和实施原理进行说明,如有不清楚的地方,可以参考对步骤S120的描述。
步骤S230:通过交换芯片对第二堆栈虚拟局域网报文进行解封和重新封装,获得重新封装后的VXLAN报文,并发送重新封装后的VXLAN报文。
其中,该步骤S230的实施原理和实施方式与步骤S130的实施原理和实施方式是类似的,区别仅在于,步骤S130执行的是解封、复制和重新封装,并分别发送多个报文,而步骤S230执行的是解封和重新封装,并发送重新封装后的VXLAN报文,因此,这里不再对该步骤的实施方式和实施原理进行说明,如有不清楚的地方,可以参考对步骤S130的描述。
在上述的实现过程中,通过若接收到单播报文,则通过处理器将单播报文中的目的地址修改为预设虚拟地址,获得修改后的单播报文,并根据预设编号生成多个虚拟局域网标签;通过处理器根据多个虚拟局域网标签对修改后的单播报文进行封装,获得第二堆栈虚拟局域网报文;通过交换芯片对第二堆栈虚拟局域网报文进行解封和重新封装,获得重新封装后的VXLAN报文,并发送重新封装后的VXLAN报文;从而有效地让原来的设计不变的情况下,能够同时处理单播报文的转发,提高了报文发送方法的可用性和鲁棒性。
本申请实施例还提供了一种VTEP,该VTEP可以包括:处理器和交换芯片。
处理器用于若接收到组播报文或者广播报文,则根据预设编号生成多个虚拟局域网标签;以及根据多个虚拟局域网标签对组播报文或者广播报文进行封装,获得第一堆栈虚拟局域网报文。
交换芯片用于对第一堆栈虚拟局域网报文进行重新封装,获得重新封装后的多个VXLAN报文,并分别发送多个VXLAN报文。
可选地,在本申请实施例中,处理器还用于,将预设编号除以预设数字的商值确定为第一虚拟局域网标签,第一虚拟局域网标签用于标识运营商的虚拟局域网。将预设编号除以预设数字的余数确定为第二虚拟局域网标签,第二虚拟局域网标签用于标识租户的虚拟局域网。
可选地,在本申请实施例中,第一虚拟局域网标签和第二虚拟局域网标签是封装在第一堆栈虚拟局域网报文中的数据链路层的报文头部中。
可选地,在本申请实施例中,处理器还用于,若接收到单播报文,则将单播报文中的目的地址修改为预设虚拟地址,并根据预设编号生成多个虚拟局域网标签;以及根据多个虚拟局域网标签对修改后的单播报文进行封装,获得第二堆栈虚拟局域网报文。交换芯片还用于:对第二堆栈虚拟局域网报文进行解封和重新封装,获得重新封装后的VXLAN报文,并发送重新封装后的VXLAN报文。
可选地,在本申请实施例中,处理器还用于:将预设数字确定为第一虚拟局域网标签,第一虚拟局域网标签用于标识电信运营商的虚拟局域网。将预设编号除以预设数字的商值确定为第二虚拟局域网标签,第二虚拟局域网标签用于标识云服务提供商的虚拟局域网。将预设编号除以预设数字的余数确定为第三虚拟局域网标签,第三虚拟局域网标签用于标识云服务用户的虚拟局域网。
可选地,在本申请实施例中,第一虚拟局域网标签、第二虚拟局域网标签和第三虚拟局域网标签是封装在第一堆栈虚拟局域网报文中的数据链路层的报文头部中。
可选地,在本申请实施例中,交换芯片具体用于:对第一堆栈虚拟局域网报文进行解封,获得解封后的多个虚拟局域网标签和目的地址信息。根据解封后的多个虚拟局域网标签生成VXLAN编号,并根据目的地址信息确定出的报文数量复制第一堆栈虚拟局域网报文,获得复制后的多个堆栈虚拟局域网报文。根据VXLAN编号对应的隧道信息和目的地址信息对复制后的多个堆栈虚拟局域网报文进行重新封装。
应理解的是,该VTEP与上述的报文发送方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该VTEP具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
本申请实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上的方法。其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random AccessMemory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable ProgrammableRead Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请实施例提供的几个实施例中所描述的VTEP实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的VTEP、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以使用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (11)
1.一种报文发送方法,其特征在于,应用于虚拟可扩展局域网隧道端点VTEP,包括:
若接收到组播报文或者广播报文,则通过处理器根据预设编号生成多个虚拟局域网标签;
通过所述处理器根据所述多个虚拟局域网标签对所述组播报文或者所述广播报文进行封装,获得第一堆栈虚拟局域网报文;
通过交换芯片对所述第一堆栈虚拟局域网报文进行重新封装,获得重新封装后的多个虚拟可扩展局域网VXLAN报文,并分别发送所述多个VXLAN报文;
其中,所述对所述第一堆栈虚拟局域网报文进行重新封装,包括:对所述第一堆栈虚拟局域网报文进行解封,获得解封后的多个虚拟局域网标签和目的地址信息;根据所述解封后的多个虚拟局域网标签生成VXLAN编号,并根据所述目的地址信息确定出的报文数量复制所述第一堆栈虚拟局域网报文,获得复制后的多个堆栈虚拟局域网报文;根据所述VXLAN编号对应的隧道信息和所述目的地址信息对所述复制后的多个堆栈虚拟局域网报文进行重新封装。
2.根据权利要求1所述的方法,其特征在于,所述根据预设编号生成多个虚拟局域网标签,包括:
将所述预设编号除以预设数字的商值确定为第一虚拟局域网标签,所述第一虚拟局域网标签用于标识运营商的虚拟局域网;
将所述预设编号除以所述预设数字的余数确定为第二虚拟局域网标签,所述第二虚拟局域网标签用于标识租户的虚拟局域网。
3.根据权利要求2所述的方法,其特征在于,所述第一虚拟局域网标签和所述第二虚拟局域网标签是封装在所述第一堆栈虚拟局域网报文中的数据链路层的报文头部中。
4.根据权利要求1所述的方法,其特征在于,还包括:
若接收到单播报文,则通过所述处理器将所述单播报文中的目的地址修改为预设虚拟地址,获得修改后的单播报文,并根据预设编号生成多个虚拟局域网标签;
通过所述处理器根据所述多个虚拟局域网标签对所述修改后的单播报文进行封装,获得第二堆栈虚拟局域网报文;
通过交换芯片对所述第二堆栈虚拟局域网报文进行解封和重新封装,获得重新封装后的VXLAN报文,并发送所述重新封装后的VXLAN报文。
5.根据权利要求1所述的方法,其特征在于,所述根据预设编号生成多个虚拟局域网标签,包括:
将预设数字确定为第一虚拟局域网标签,所述第一虚拟局域网标签用于标识电信运营商的虚拟局域网;
将所述预设编号除以所述预设数字的商值确定为第二虚拟局域网标签,所述第二虚拟局域网标签用于标识云服务提供商的虚拟局域网;
将所述预设编号除以所述预设数字的余数确定为第三虚拟局域网标签,所述第三虚拟局域网标签用于标识云服务用户的虚拟局域网。
6.根据权利要求5所述的方法,其特征在于,所述第一虚拟局域网标签、所述第二虚拟局域网标签和所述第三虚拟局域网标签是封装在所述第一堆栈虚拟局域网报文中的数据链路层的报文头部中。
7.一种虚拟可扩展局域网隧道端点VTEP,其特征在于,包括:处理器和交换芯片;
所述处理器,用于若接收到组播报文或者广播报文,则根据预设编号生成多个虚拟局域网标签;以及根据多个虚拟局域网标签对所述组播报文或者所述广播报文进行封装,获得第一堆栈虚拟局域网报文;
所述交换芯片,用于对所述第一堆栈虚拟局域网报文进行重新封装,获得重新封装后的多个虚拟可扩展局域网VXLAN报文,并分别发送所述多个VXLAN报文;
其中,所述交换芯片具体用于:对所述第一堆栈虚拟局域网报文进行解封,获得解封后的多个虚拟局域网标签和目的地址信息;根据所述解封后的多个虚拟局域网标签生成VXLAN编号,并根据所述目的地址信息确定出的报文数量复制所述第一堆栈虚拟局域网报文,获得复制后的多个堆栈虚拟局域网报文;根据所述VXLAN编号对应的隧道信息和所述目的地址信息对所述复制后的多个堆栈虚拟局域网报文进行重新封装。
8.根据权利要求7所述的VTEP,其特征在于,所述处理器还用于:
将所述预设编号除以预设数字的商值确定为第一虚拟局域网标签,所述第一虚拟局域网标签用于标识运营商的虚拟局域网;
将所述预设编号除以所述预设数字的余数确定为第二虚拟局域网标签,所述第二虚拟局域网标签用于标识租户的虚拟局域网。
9.根据权利要求8所述的VTEP,其特征在于,所述第一虚拟局域网标签和所述第二虚拟局域网标签是封装在所述第一堆栈虚拟局域网报文中的数据链路层的报文头部中。
10.根据权利要求8所述的VTEP,其特征在于,
所述处理器还用于,若接收到单播报文,则将所述单播报文中的目的地址修改为预设虚拟地址,并根据预设编号生成多个虚拟局域网标签;以及根据多个虚拟局域网标签对修改后的单播报文进行封装,获得第二堆栈虚拟局域网报文;
所述交换芯片还用于,对所述第二堆栈虚拟局域网报文进行解封和重新封装,获得重新封装后的VXLAN报文,并发送所述重新封装后的VXLAN报文。
11.一种存储介质,其特征在于,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011123046.4A CN112260927B (zh) | 2020-10-19 | 2020-10-19 | 一种报文发送方法、vtep及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011123046.4A CN112260927B (zh) | 2020-10-19 | 2020-10-19 | 一种报文发送方法、vtep及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112260927A CN112260927A (zh) | 2021-01-22 |
CN112260927B true CN112260927B (zh) | 2021-12-17 |
Family
ID=74245483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011123046.4A Active CN112260927B (zh) | 2020-10-19 | 2020-10-19 | 一种报文发送方法、vtep及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112260927B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114285661B (zh) * | 2021-12-28 | 2023-06-30 | 中国银联股份有限公司 | 一种私有网络接入方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243269A (zh) * | 2014-09-24 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种虚拟扩展局域网报文的处理方法及装置 |
CN109005122A (zh) * | 2018-08-20 | 2018-12-14 | 迈普通信技术股份有限公司 | 报文发送方法、装置及网络设备 |
CN110753010A (zh) * | 2019-10-22 | 2020-02-04 | 新华三信息安全技术有限公司 | 一种报文转发方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201130265A (en) * | 2010-02-26 | 2011-09-01 | Connection Technology Systems Inc | Method for forwarding data packets and network device using the same thereof under NAT mode |
US8837494B2 (en) * | 2012-02-22 | 2014-09-16 | Broadcom Corporation | Encoding virtual LAN tags |
-
2020
- 2020-10-19 CN CN202011123046.4A patent/CN112260927B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243269A (zh) * | 2014-09-24 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种虚拟扩展局域网报文的处理方法及装置 |
CN109005122A (zh) * | 2018-08-20 | 2018-12-14 | 迈普通信技术股份有限公司 | 报文发送方法、装置及网络设备 |
CN110753010A (zh) * | 2019-10-22 | 2020-02-04 | 新华三信息安全技术有限公司 | 一种报文转发方法及装置 |
Non-Patent Citations (2)
Title |
---|
Scaling and Interoperability of All-Path with Bridged and SDN Domains using VXLANs;J.Alvarez-Horcajo,G.Ibanez,B.N.Constantin,I.Martinez-Yelmo;《2019 IEEE 44th Conference on Local Computer Networks (LCN)》;20190213;全文 * |
分布式以太网交换机卡间通信协议的研究与实现;李志报;《中国优秀硕士学位论文全文数据库》;20150415;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112260927A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10757231B2 (en) | Providing network efficiencies in forwarding packets among provider networks and applying segment routing policies | |
CN111512601B (zh) | 分组的分段路由网络处理 | |
CN113207192B (zh) | 一种报文转发方法及装置 | |
CN109729012B (zh) | 一种单播报文传输方法和装置 | |
EP3782336B1 (en) | Multi-vrf universal device internet protocol address for fabric edge devices | |
WO2014176740A1 (zh) | 流分类器、业务路由触发器、报文处理的方法和系统 | |
CN106941437B (zh) | 一种信息传输方法及装置 | |
WO2021088433A1 (zh) | 一种报文的处理方法,装置和系统 | |
CN107645433B (zh) | 报文转发方法及装置 | |
CN107547340B (zh) | 一种报文转发方法和装置 | |
CN106688209B (zh) | 用于传输广播数据的方法和系统 | |
CN111083034A (zh) | 一种在evpn下管理vxlan隧道的方法及设备、介质 | |
WO2022222750A1 (zh) | 报文转发方法、装置、网络设备及存储介质 | |
CN112260927B (zh) | 一种报文发送方法、vtep及存储介质 | |
CN108718275B (zh) | 报文转发方法及装置 | |
CN114826826A (zh) | 网络拥塞信息传输方法、装置、公有云网络和电子设备 | |
WO2021238741A1 (zh) | 报文转发方法、系统、设备、节点设备和存储介质 | |
EP3913865B1 (en) | Message decapsulation method and device, message encapsulation method and device, electronic device, and storage medium | |
CN106656786B (zh) | 一种流量保护方法及装置 | |
CN107547686B (zh) | Arp请求报文处理方法和装置 | |
CN113709015A (zh) | 数据传输方法、电子设备及存储介质 | |
CN112187822A (zh) | 在隧道传输中的安全监测方法和装置 | |
CN113055268A (zh) | 隧道流量负载均衡的方法、装置、设备及介质 | |
WO2022001666A1 (zh) | 建立vxlan隧道的方法及相关设备 | |
WO2024001701A1 (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 |