一种报文发送、接收方法及设备的制造方法

文档序号:10555488阅读:587来源:国知局
一种报文发送、接收方法及设备的制造方法
【专利摘要】一种报文发送、接收方法及设备,用于解决数据中心网络中在发送报文时较为浪费带宽的技术问题。该报文发送方法包括:通过VLAN进行通信的数据中心网络内的第一设备获取待发送的第一报文;所述第一设备为所述第一报文添加VLAN头,得到具有双层VLAN头的第二报文,且所述第一设备在所述第二报文的外层VLAN头中携带第一标识信息;其中,所述外层VLAN头携带的标识信息和所述第二报文的内层VLAN头携带的标识信息用于联合指示预先配置的VLAN标识;所述第一设备将所述第二报文发送给所述数据中心网络内的第二设备。
【专利说明】
一种报文发送、接收方法及设备
技术领域
[0001]本发明涉及通信技术领域,特别涉及一种报文发送、接收方法及设备。
【背景技术】
[0002]数据中心网络(data center network,DCN)是一种在数据中心内部通过高速链路和交换机连接大量服务器的网络。DCN主要采用层次结构实现,以客户机/服务器模式为主。
[0003]在DCN中,一般会米用虚拟扩展局域网(Virtual Extensible local areanetwork,VXLAN)技术来解决数据中心内部的多租户间通信和隔离时虚拟局域网(virtuallocal area network,VLAN)不够的问题。VXLAN是一种覆盖(overlay)的网络技术,可用于改善大型云计算部署的扩展性问题。VXLAN技术使用类似VLAN的封装技术,在开放式系统互联(Open Systems Interconnect 1n,OSI) 4层的用户数据报协议(User DatagramProtocol,UDP)报文内用特定的目的UDP端口号封装基于媒体访问控制(media accesscontrol,MAC)的二层以太网帧。
[0004]VXLAN引入了类似VLAN标识(i dent i f i er,ID)的用户标识,称为VXLAN网络标识(VXLAN Network ID,VNI),由24比特组成,在封装报文时要将VNI封装在每个报文中,这样单是VNI就需要占用大量的带宽,这在一定程度上造成了带宽的浪费,特别是对于DCN这种可能需要频繁通信的网络来说,若带宽占用过多则很可能会导致拥塞。

【发明内容】

[0005]本发明实施例提供一种报文发送、接收方法及设备,用于解决数据中心网络中在发送报文时较为浪费带宽的技术问题。
[0006]第一方面,提供一种报文发送方法,该方法可以包括:通过VLAN进行通信的数据中心网络内的第一设备获取待发送的第一报文,第一设备为第一报文添加VLAN头,得到具有双层VLAN头的第二报文,且第一设备在第二报文的外层VLAN头中携带第一标识信息,第一设备将第二报文发送给数据中心网络内的第二设备。其中,外层VLAN头携带的标识信息和第二报文的内层VLAN头携带的标识信息用于联合指示预先配置的VLAN标识。
[0007]本发明实施例中,可以不采用VXLAN的封装方式,而采用双层VLAN的封装方式,双层VLAN—共占用24bit,通过双层VLAN来构成VLAN标识,也扩展了 VLAN标识的范围,解决了VLAN不够用的问题。且为报文添加一层额外的外层VLAN头,只需添加12位,相对于VXLAN中的封装方式来说大大节省了带宽,对于DCN这种可能需要频繁通信的网络来说,节省了带宽,也就在一定程度上减小了出现拥塞的可能性,提高了网络通信的质量。
[0008]结合第一方面,在第一方面的第一种可能的实现方式中,在第一设备为所述第一报文添加VLAN头之后,若内层VLAN头携带了第二报文的优先级信息,则第一设备可以将优先级信息复制到外层VLAN头中。
[0009]携带双层VLAN的报文在网络中传输时,对于沿途的节点来说,报文的外层VLAN头是可见的,将报文的优先级信息携带在外层VLAN头中,可以让沿途节点获知该报文的优先级信息,从而可以按照该报文的优先级信息来传输该报文,使得优先级信息发挥应有的作用。
[0010]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该方法还可以包括:若内层VLAN头携带了第二报文的优先级信息,则第一设备可以根据VLAN标识,重新将内层VLAN携带的标识信息设置为第二标识信息。
[0011]—般来说,如果需要为报文设置优先级信息,那么该报文的内层VLAN头中用于指示VLAN标识的部分可能被设置为VLAN O,而要发送报文,需要报文的内层VLAN头和外层VLAN头共同指示VLAN标识,因此可以重新设置报文的内层VLAN头,使得报文的内层VLAN头和外层VLAN头共同指示VLAN标识。
[0012]结合第一方面或第一方面的第一种可能的实现方式或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,若第一设备为服务器,则,在通过VLAN进行通信的数据中心内的第一设备获取待发送的第一报文之前,还可以调用第一设备的网卡的驱动所支持的配置函数配置第一设备的VLAN设置信息,使得第一设备能够支持携带双层VLAN头的报文。
[0013]—般来说,修改协议栈的代码比较麻烦,也比较难以实现。因此本发明实施例中,在配置服务器的VLAN设置信息时,可以无需通过协议栈进行配置,而可以直接调用服务器的网卡的驱动提供的配置函数进行配置即可。这样,在无需修改协议栈代码的前提下就可以完成对服务器的VLAN的设置信息的配置,较为容易推广应用。
[0014]结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,第一设备可以根据预先配置的第一设备的VLAN标识在内层VLAN头中携带第二标识信息,那么,第一设备在第二报文的外层VLAN头中携带第一标识信息,可以通过以下方式实现:第一设备根据预先配置的第一设备的VLAN标识在外层VLAN头中携带第一标识信息。其中,第一标识信息和第二标识信息可以用于联合指示第一设备的VLAN标识。
[0015]S卩,第一设备可以为报文添加双层VLAN头,这样添加双层VLAN头的工作都由第一设备来完成,无需由不同的设备完成,使得添加双层VLAN头的工作更有效率。
[0016]结合第一方面或第一方面的第一种可能的实现方式或第二种可能的实现方式,在第一方面的第五种可能的实现方式中,若第一设备为交换机,则,在通过VLAN进行通信的数据中心内的第一设备获取待发送的第一报文之前,还可以配置第一设备,使得第一设备能够为报文封装双层VLAN头,且使得第一设备提供的与转发报文相关的表项能够支持双层VLAN 头。
[0017]如果第一设备是交换机,那么一般来说现有的交换机可能支持的都是12位的VLAN标识,因此要先对交换机进行配置,使得交换机可以支持24位的VLAN标识,从而完成正常的报文转发及封装等工作。
[0018]结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,第一设备在第二报文的外层VLAN头中携带第一标识信息,可以通过不同的方式实现,例如举例介绍几种方式:
[0019]第一种方式:第一设备根据预先配置的发送第一报文的设备的VLAN标识在外层VLAN头中携带第一标识信息;其中,第一标识信息和内层VLAN头携带的标识信息用于联合指示发送第一报文的设备的VLAN标识;
[0020]第二种方式:第一设备根据为第一设备接收第一报文的端口预先配置的VLAN标识在外层VLAN头中携带第一标识信息;其中,第一标识信息和内层VLAN头携带的标识信息用于联合指示为第一设备接收第一报文的端口预先配置的VLAN标识;或
[0021]第三种方式:第一设备根据为第一报文所属的通信协议预先配置的VLAN标识在外层VLAN头中携带第一标识信息;其中,第一标识信息和内层VLAN头携带的标识信息用于联合指示为第一报文所属的通信协议预先配置的VLAN标识。
[0022]若采用第一种方式来确定第一标识信息,那么每个VLAN标识都是针对VM的,粒度较细,不容易出错。若采用第二种方式或第三种方式来确定第一标识信息,则第一设备需要预先知晓的VLAN标识较少,节省了第一设备的存储空间,且在确定报文的VLAN标识时,因为预先知晓的VLAN标识较少,则查询VLAN标识所需的时间也较短,提高了对报文的封装效率。
[0023]结合第一方面的第六种可能的实现方式,在第一方面的第六种可能的实现方式中,第一设备将第二报文发送给数据中心内的第二设备,可以通过以下方式实现:第一设备根据VLAN标识查询转发表项,若查询到记录了VLAN标识的转发表项,则第一设备根据转发表项记录的目的地址转发第二报文。
[0024]因为已经预先对交换机进行了配置,交换机可以支持24位的VLAN标识,交换机存储的转发表项也支持24位的VLAN标识,因此通过正常的查找转发表项即可完成对报文的转发工作。
[0025]第二方面,提供一种报文接收方法,该方法可以包括:通过VLAN进行通信的数据中心网络内的第二设备接收数据中心网络内的第一设备发送的第二报文,其中第二报文具有双层VLAN头,第二设备可以拆除第二报文的外层VLAN头。
[0026]本发明实施例中,在数据中心网络中可以不采用VXLAN的封装方式,而采用双层VLAN的封装方式,双层VLAN—共占用24bit,通过双层VLAN来构成VLAN标识,也扩展了 VLAN标识的范围,解决了 VLAN不够用的问题。且为报文添加一层额外的外层VLAN头,只需添加12位,相对于VXLAN中的封装方式来说大大节省了带宽,对于DCN这种可能需要频繁通信的网络来说,节省了带宽,也就在一定程度上减小了出现拥塞的可能性,提高了网络通信的质量。
[0027]结合第二方面,在第二方面的第一种可能的实现方式中,在第二设备拆除第二报文的外层VLAN头之前,若第二报文的外层VLAN头携带了第二报文的优先级信息,则第二设备将优先级信息复制到第二报文的内层VLAN头中。
[0028]因为第二报文的优先级信息如果携带在外层VLAN头中,则第二报文的内层VLAN头中可能未携带该优先级信息,而在解析报文时需要该优先级信息,因此可以将优先级信息复制到内层VLAN头之后再拆除外层VLAN头,这样即使拆除了外层VLAN头也可以保留有用的信息,便于对报文进行正确的解析。
[0029]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,在第二设备拆除第二报文的外层VLAN头之后,若第二报文的外层VLAN头携带了第二报文的优先级信息,则第二设备将第二报文的内层VLAN头携带的用于指示VLAN标识的信息重新设置为预设信息,预设信息用于指示第二报文为具有优先级信息的报文。
[0030]—般来说,在封装报文时,如果需要为报文设置优先级信息,那么该报文的内层VLAN头中用于指示VLAN标识的部分可能被设置为VLAN O,而收到报文后,报文的内层VLAN头和外层VLAN头是共同指示VLAN标识,因此,为了让解析第二报文的设备可以正确的认识并解析第二报文,可以将第二报文的内层VLAN头中用于指示VLAN标识的部分重新设置为具有优先级信息的报文应该具有的预设信息。
[0031 ]第三方面,提供第一种通过VLAN进行通信的数据中心网络内的报文发送设备,该设备可以包括存储器、处理器和发送器。其中,存储器可以用于存储指令,处理器可以用于执行存储器存储的指令,获取待发送的第一报文,为第一报文添加VLAN头,得到具有双层VLAN头的第二报文,且第一设备在第二报文的外层VLAN头中携带第一标识信息,发送器可以用于将第二报文发送给数据中心网络内的第二设备。其中,外层VLAN头携带的标识信息和第二报文的内层VLAN头携带的标识信息可以用于联合指示预先配置的VLAN标识。
[0032]结合第三方面,在第三方面的第一种可能的实现方式中,处理器还可以用于:在为第一报文添加VLAN头之后,若内层VLAN头携带了第二报文的优先级信息,则将优先级信息复制到外层VLAN头中。
[0033]结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,处理器还可以用于若内层VLAN头携带了第二报文的优先级信息,则根据VLAN标识,重新将内层VLAN携带的标识信息设置为第二标识信息。
[0034]结合第三方面或第三方面的第一种可能的实现方式或第二种可能的实现方式,在第三方面的第三种可能的实现方式中,处理器还可以用于:在获取待发送的第一报文之前,调用该设备的网卡的驱动所支持的配置函数配置该设备的VLAN设置信息,使得该设备能够支持携带双层VLAN头的报文。
[0035]结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,处理器还可以用于:根据预先配置的该设备的VLAN标识在内层VLAN头中携带第二标识信息,根据预先配置的该设备的VLAN标识在外层VLAN头中携带第一标识信息。其中,第一标识信息和第二标识信息用于联合指示该设备的VLAN标识。
[0036]第四方面,提供第二种通过VLAN进行通信的数据中心网络内的报文发送设备,该设备可以包括VLAN??楹妥⒛??。其中,VLAN??榭梢杂糜诨袢〈⑺偷牡谝槐ㄎ?,为第一报文添加VLAN头,得到具有双层VLAN头的第二报文,且第一设备在第二报文的外层VLAN头中携带第一标识信息,转发??榭梢杂糜诮诙ㄎ姆⑺透葜行耐缒诘牡诙璞?。其中,外层VLAN头携带的标识信息和第二报文的内层VLAN头携带的标识信息用于联合指示预先配置的VLAN标识。
[0037]结合第四方面,在第四方面的第一种可能的实现方式中,VLAN??榛箍梢杂糜?在为第一报文添加VLAN头之后,若内层VLAN头携带了第二报文的优先级信息,则将优先级信息复制到外层VLAN头中。
[0038]结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,VLAN??榛箍梢杂糜?若内层VLAN头携带了第二报文的优先级信息,则根据VLAN标识,重新将内层VLAN携带的标识信息设置为第二标识信息。
[0039]结合第四方面或第四方面的第一种可能的实现方式或第二种可能的实现方式,在第四方面的第三种可能的实现方式中,该设备还可以包括处理???,用于:在VLAN??榛袢〈⑺偷牡谝槐ㄎ闹?,配置该设备,使得该设备能够为报文封装双层VLAN头,且使得该设备提供的与转发报文相关的表项能够支持双层VLAN头。
[0040]结合第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,VLAN??榭梢杂糜?根据预先配置的发送第一报文的设备的VLAN标识在外层VLAN头中携带第一标识信息,其中,第一标识信息和内层VLAN头携带的标识信息用于联合指示发送第一报文的设备的VLAN标识;或,根据为第一设备接收第一报文的端口预先配置的VLAN标识在外层VLAN头中携带第一标识信息,其中,第一标识信息和内层VLAN头携带的标识信息用于联合指示为该设备接收第一报文的端口预先配置的VLAN标识;或,根据为第一报文所属的通信协议预先配置的VLAN标识在外层VLAN头中携带第一标识信息,其中,第一标识信息和内层VLAN头携带的标识信息用于联合指示为第一报文所属的通信协议预先配置的VLAN标识。
[0041]结合第四方面的第四种可能的实现方式,在第四方面的第五种可能的实现方式中,转发??榭梢杂糜?根据VLAN标识查询转发表项,若查询到记录了VLAN标识的转发表项,则根据转发表项记录的目的地址转发第二报文。
[0042]第五方面,提供第一种通过VLAN进行通信的数据中心网络内的报文接收设备,该设备可以包括存储器、接收器和处理器。其中,存储器可以用于存储指令,接收器可以用于接收数据中心网络内的第一设备发送的第二报文,第二报文可以具有双层VLAN头,处理器可以用于执行存储器存储的指令,拆除第二报文的外层VLAN头。
[0043]结合第五方面,在第五方面的第一种可能的实现方式中,处理器还可以用于:在拆除第二报文的外层VLAN头之前,若第二报文的外层VLAN头携带了第二报文的优先级信息,则将优先级信息复制到第二报文的内层VLAN头中。
[0044]结合第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,处理器还可以用于:在拆除第二报文的外层VLAN头之后,若第二报文的外层VLAN头携带了第二报文的优先级信息,则将第二报文的内层VLAN头携带的用于指示VLAN标识的信息重新设置为预设信息。预设信息用于指示第二报文为具有优先级信息的报文。
[0045]第六方面,提供第二种通过VLAN进行通信的数据中心网络内的报文接收设备,该设备可以包括转发??楹蚔LAN???。其中,转发??榭梢杂糜诮邮帐葜行耐缒诘牡谝簧璞阜⑺偷牡诙ㄎ?,第二报文具有双层VLAN头,VLAN??榭梢杂糜诓鸪诙ㄎ牡耐獠鉜LAN 头。
[0046]结合第六方面,在第六方面的第一种可能的实现方式中,VLAN??榛箍梢杂糜?在拆除第二报文的外层VLAN头之前,若第二报文的外层VLAN头携带了第二报文的优先级信息,则将优先级信息复制到第二报文的内层VLAN头中。
[0047]结合第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,VLAN??榛箍梢杂糜?在拆除第二报文的外层VLAN头之后,若第二报文的外层VLAN头携带了第二报文的优先级信息,则将第二报文的内层VLAN头携带的用于指示VLAN标识的信息重新设置为预设信息。预设信息用于指示第二报文为具有优先级信息的报文。
[0048]第七方面,提供第三种通过VLAN进行通信的数据中心网络内的报文发送设备,该设备可以包括用于执行第一方面的方法的???。
[0049]第八方面,提供第三种通过VLAN进行通信的数据中心网络内的报文接收设备,该设备可以包括用于执行第二方面的方法的???。
【附图说明】
[0050]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0051 ]图1A为具有单层VLAN的报文的格式;
[0052]图1B为本发明实施例提供的双层VLAN报文的格式;
[0053]图2为数据中心网络的一种可能的架构图;
[0054]图3为在服务器中运行虚拟机后服务器内部的软件架构图;
[0055]图4为本发明实施例提供的报文发送方法的一种流程图;
[0056]图5为本发明实施例提供的报文接收方法的一种流程图;
[0057]图6为本发明实施例提供的VM发送报文的一种可能的方法的流程图;
[0058]图7为本发明实施例提供的由交换机封装报文并转发报文的一种可能的方法的流程图;
[0059]图8为本发明实施例提供的虚拟机接收报文后的一种可能的处理方法的流程图;
[0060]图9为本发明实施例提供的交换机接收报文后的一种可能的处理方法的流程图;
[0061]图10为本发明实施例提供的第一种报文发送设备的一种可能的结构示意图;
[0062]图1lA和图1lB为本发明实施例提供的第二种报文发送设备的两种可能的结构示意图;
[0063]图12为本发明实施例提供的第一种报文接收设备的一种可能的结构示意图;
[0064]图13为本发明实施例提供的第二种报文接收设备的一种可能的结构示意图;
[0065]图14为本发明实施例提供的第三种报文发送设备的一种可能的结构框图;
[0066]图15为本发明实施例提供的第三种报文接收设备的一种可能的结构框图。
【具体实施方式】
[0067]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。
[0068]以下,对本发明中的部分用语进行解释说明。
[0069]I)第一设备,例如可以是交换机(switch)或路由器(router)等物理设备,或者可以是服务器等物理设备,或者也可以是运行在服务器中的虚拟机等虚拟设备,虚拟机又可能包括虚拟终端、虚拟服务器等不同类型的虚拟机。
[0070]第二设备,例如可以是交换机或路由器等物理设备,或者可以是服务器等物理设备,或者也可以是运行在服务器中的虚拟机等虚拟设备,虚拟机又可能包括虚拟终端、虚拟服务器等不同类型的虚拟机。
[0071]第三设备,例如可以是交换机或路由器等物理设备,或者可以是服务器等物理设备,或者也可以是运行在服务器中的虚拟机等虚拟设备,虚拟机又可能包括虚拟终端、虚拟服务器等不同类型的虚拟机。
[0072]2)外层VLAN头,是本发明实施例为报文所额外添加的一层VLAN头,其格式与报文本身所携带的VLAN头的格式一样,都占用12位(bit)。内层VLAN头,为报文在VLAN中通信所携带的VLAN头。
[0073]内层VLAN头,是报文的单层VLAN头。
[0074]例如请参见图1A和图1B,图1A为VLAN中的报文原有的格式,图1B为本发明实施例中为报文添加外层VLAN头后的格式。其中,图1A和图1B中的目的地址(Destinat1nAddress,DA)字段用于承载报文要发送到的设备的地址,即报文的目的地址,源地址(Source Address,SA)字段用于发送该报文的设备的地址,标签协议识别符(Tag ProtocolIdentif ier,TPID)字段为一组16位元的域,其数值一般被设定在0x8100,以用来分辨该帧为IEEE 802.1Q类型的帧,优先权代码点(Pr1rity Code Point,PCP)字段为以一组3位元的域,作为该帧的优先级,标准格式指示(Canonical Format Indicator,CFI)字段为I位元的域,若CFI承载的值为I,则该报文的MAC地址为非标准格式,若CFI承载的值为O,则该报文的MAC地址为标准格式,Type字段用于指示该报文所属的消息类型,数据(DATA)字段用于承载报文的内容,即消息体,帧校验序列(Frame Check Sequence,FCS)字段为校验字段,用于保存CRC校验值。图1B相对于图1A来说,新增了TPID、PCP、CFI和SVLAN等几个字段,其中,月艮务提供商虚拟局域网(Service provider VLAN,SVLAN)字段占据12位,用户虚拟局域网(Customer VLAN,CVLAN)字段也占据12位,SVLAN字段和CVLAN字段用于共同承载VLAN ID,例如,可以将VLAN ID的高12位承载在SVLAN中,及将VLAN ID的低12位承载在CVLAN中。
[0075]3)“多个”是指两个或两个以上。
[0076]请参见图2,为一种可能的DCN的架构图。图2中的设备I和设备2比如可以是核心交换机,核心交换机之间例如可以通过内部边界网关协议(Internal Border GatewayProtocol,IBGP)进行通信,核心交换机例如可以通过外部边界网关协议(External BorderGateway Protocol,EBGP)与互联网(Internet)进行通信。
[0077]核心交换机可以分别与汇聚交换机连接,汇聚交换机又分别可以与接入层设备连接,接入层设备例如可以包括普通交换机,普通交换机可以分别连接一些终端设备,例如终端设备可以包括用户边缘(Customer Edge,CE)设备等,例如普通交换机可以通过电缆与CE连接,比如为10G的电缆。这样,在DCN内部,核心交换机就可以与终端设备进行通信,且底层终端设备也可以通过数据中心实现与互联网的通信。另外,为了下文叙述简便,将数据中心网络内部的终端设备统一称为服务器(Server),将数据中心网络外部的终端设备统一称为客户端(Client)。
[0078]图2中所示的各种设备的位置、设备的数量、通信协议、以及设备的名称等均只是举例,不是对本发明实施例的限制,只要是数据中心网络则均在本发明实施例的?;し段е?。
[0079]现在,为了满足云计算的需求,在数据中心网络中有很多物理设备进行了虚拟化,例如在很多服务器上可以安装并运行多个虚拟机(Virtual Machine,VM),请参见图3,为在服务器中安装VM后的软件架构示意图,图3以X86架构(Architecture)的服务器为例。图3中假设在服务器中安装了VMl和VM2,VM1中运行了操作系统(Operating System,0S) I,VM2中运行了操作系统2,VM1中安装了应用I,VM2中安装了应用2。另外图3中还示出了服务器中安装的管理程序(Hypervisor),或者也可以将其称为虚拟机监视器(Virtual MachineMonitor,VMM),它是用于管理VM的软件平台。在主机虚拟化中,Hypervisor可以是跑在服务器的操作系统上的应用,其中,服务器的操作系统在图3中表示为操作系统3。
[0080]目前在数据中心网络中,VM被划分为多个用户组,每个用户组可以用一个VLAN ID进行标记,以区分不同的用户组。但是已有的VLAN ID只有12位,最多支持4K个分区,远远满足不了现在的数据中心网络对于区分用户组的需求。那么本发明实施例中,可以采用双层VLAN来表示VLAN ID,这样数据中心网络所支持的VLAN ID的个数就可以达到4095*4095个,大大扩展了VLAN ID的取值范围,便于标识更多的用户组,也更利于数据中心网络向云计算方向发展。另外,如果基于VXLAN进行封装,那么需要浪费较多的带宽,而且封装所需要的时间也比较长,导致时延性能较差,采用本发明实施例所提供的方法,能够节省带宽,并且在现有的报文格式的基础上只需添加一层VLAN即可,封装报文无需耗费较多时间,减小了报文传输的时延。
[0081 ]下面结合说明书附图描述本发明实施例。
[0082]请参见图4,提供一种报文发送方法,该方法可以由第一设备执行,第一设备例如可以是数据中心网络中的服务器,例如可以是物理服务器或物理服务器中的虚拟机,或者可以是数据中心网络中的交换机或路由器。该方法的流程描述如下。
[0083]步骤401:通过VLAN进行通信的数据中心网络内的第一设备获取待发送的第一报文;
[0084]步骤402:第一设备为第一报文添加VLAN头,得到具有双层VLAN头的第二报文,且第一设备在第二报文的外层VLAN头中携带第一标识信息;其中,外层VLAN头携带的标识信息和内层VLAN头携带的标识信息用于联合指示预先配置的VLAN标识;
[0085]步骤403:第一设备将第二报文发送给数据中心网络内的第二设备。
[0086]请参见图5,提供一种报文接收方法,该方法可以由第二设备执行,第二设备例如可以是数据中心网络中的服务器,例如可以是物理服务器或物理服务器中的虚拟机,或者可以是数据中心网络中的交换机或路由器。该方法的流程描述如下。
[0087]步骤501:通过VLAN进行通信的数据中心网络内的第二设备接收数据中心网络内的第一设备发送的第二报文;第二报文具有双层VLAN头;
[0088]步骤502:第二设备拆除第二报文的外层VLAN头。
[0089]图4和图5为相应的方法,下面通过几个例子一起来进行介绍。鉴于第一设备可能是服务器,或者也可能是交换机或路由器,因此在下面的例子中将分别介绍。
[0090]例I
[0091]第一设备是服务器的情况,且例I以第一设备是服务器中的VM为例。因为现在的VM支持的都是普通的VLAN头,因此例I首先介绍如何重新设置VM,以使得VM能够支持双层VLAN头。
[0092]先确定是否要在该VM上配置优先级信息,如果该VM上不需要配置优先级,那么可以直接越过协议栈,调用VM的虚拟网卡的驱动(如果第一设备是服务器,则可以调用服务器的物理网卡的驱动)提供的函数来配置VM,即为VM配置新的VLAN设置信息,使得VM在新的VLAN设置信息下可以采用双层VLAN的格式来封装报文。其中,在数据中心网络中,一般为一个VM配置一个VLAN ID,本发明实施例中的VLAN ID包括24位,即为该VM配置的VLAN ID采用24位进行标识,为该VM配置VLAN ID,可以也由驱动提供的函数配置,或者也可以通过其他方式配置。例如通过驱动提供的函数,还可以指示VM在封装报文时将VLAN ID的高12位封装在SVLAN中,将VLAN ID的低12位封装在CVLAN中。
[0093]如果在该VM上不需要配置优先级信息,则可以越过协议栈,直接调用虚拟网卡的驱动提供的函数来配置VLAN,即为VM配置新的VLAN设置信息,使得VM可以采用双层VLAN的格式来封装报文,同样的,通过驱动提供的函数,也可以指示VM在封装报文时将VLAN ID的高12位封装在SVLAN中,将VLAN ID的低12位封装在CVLAN中。
[0094]而如果该VM上需要配置优先级信息,则可以调用运行在VM的操作系统上的协议栈来配置携带优先级的报文的CVLAN携带的VLAN ID部分的取值,即通过协议栈来设置携带优先级的报文的CVLAN携带的VLAN ID应该是多少。例如,可以调用协议栈提供的VLAN配置(Vconfig)命令来配置,比如可以配置携带优先级信息的报文的CVLAN携带的VLAN ID为VLAN O。一般VM在封装报文时,报文要先经过协议栈,那么如果需要为报文配置优先级信息,则协议栈可以为报文添加单层VLAN,即添加CVLAN,将该报文的CVLAN携带的VLAN ID设置为VLAN 0,并在该CVLAN上配置优先级信息??裳〉?,VM还可以调用协议栈提供的Vconfig命令配置所需要的优先级信息,这样,报文在经过协议栈时,协议栈就可以为报文添加相应的优先级信息。在配置完协议栈后,可以越过协议栈,调用VM的虚拟网卡的驱动提供的函数来配置VLAN,即为VM配置新的VLAN设置信息,使得VM可以采用双层VLAN的格式来封装报文,同样的,通过驱动提供的函数,也可以指示VM在封装报文时将VLAN ID的高12位封装在SVLAN中,将VLAN ID的低12位封装在CVLAN中。
[0095]可选的,VM可配置优先级信息也可以不配置优先级信息,如果配置了优先级信息,那么VM在发送报文时,可以选择为发送的全部报文或者部分报文添加优先级信息??裳〉?,一个VM也可以配置多个不同的优先级信息,那么VM如果要为一个报文添加优先级信息,可以从多个优先级信息中选择一个优先级信息来添加,那么一个VM为不同的报文添加的优先级信息也可以是不同的,这样可以便于区分不同的报文的优先级,使得不同优先级的报文在网络中能够得到更好的传输。
[0096]可选的,如果第一设备是服务器,那么第二设备可能是交换机或路由器。因为现在的交换机或路由器虽然可能也支持双层VLAN头,但可能无法支持24位的VLAN ID,因此例I也介绍一下如何重新设置交换机或路由器,以使得交换机或路由器能够支持24位的VLANID0
[0097]可选的,可以通过配置使得交换机或路由器提供的与转发报文相关的表项都能够支持24位的VLAN ID。例如,可以将交换机或路由器提供的与转发VLAN报文相关的表项中VLAN的有效字段均扩展为24位,这样就可以使得与转发报文相关的表项都能够支持24位的VLAN ID,这样,交换机或路由器接收第二报文后才能识别第二报文,从而实现对第二报文的正确转发。
[0098]可选的,还可以对交换机或路由器解析VLAN报文的流程进行配置,使得交换机或路由器对VLAN报文解析流程能够支持对双层VLAN的解析,例如,交换机或路由器不仅可以解析报文的外层VLAN头,还可以解析报文的内层VLAN头。
[0099]例2
[0100]例I介绍了在第一设备是VM的情况下如何先配置VM,那么例2就接着介绍在第一设备是VM的情况下,在对VM按照例I的方法配置成功后,VM如何发送报文??裳〉?,VM发送报文,可以是VM中运行的应用发送报文。请参见图6,介绍VM中运行的应用发送报文的一种可能的方法。
[0101]1、VM调用VM的操作系统中运行的协议栈的接口来发送数据。例如可以将该数据称为第一报文。
[0102]2、第一报文经过协议栈时,确定无需为该第一报文携带优先级信息。
[0103]其中,如果VM确定第一报文需要携带优先级信息,那么VM可以通过协议栈为该第一报文打上单层VLAN头,将该单层VLAN头携带的VLAN ID的部分设置为VLAN O,即将该单层VLAN头中用于指示该VM的VLAN ID的位均设置为O,并在该单层VLAN头中携带为第一报文选择的优先级信息。而如果VM确定第一报文不需要携带优先级信息,那么协议栈有两种可能的做法,一种是照样为该第一报文打上单层VLAN头,在该单层VLAN头中可以无需不携带优先级信息,并且可以按照该VM的VLAN ID设置该单层VLAN头携带的VLAN ID部分的取值,例如可以将该VM的VLAN ID的低12位承载在第一报文的CVLAN中。另一种做法是,协议栈不为第一报文打上单层VLAN头,可以直接执行步骤3,即将第一报文传输给虚拟网卡的驱动,由虚拟网卡的驱动为第一报文添加VLAN头,例如虚拟网卡的驱动可能为第一报文添加单层VLAN头,也可能添加双层VLAN头。
[0104]3、将第一报文传给VM的虚拟网卡的驱动。
[0105]4、虚拟网卡的驱动根据配置的VLAN给协议栈传下来的第一报文打上VLAN头,得到具有双层VLAN头的第二报文。
[0106]可选的,如果协议栈为第一报文打上了单层VLAN头,那么这里的虚拟网卡的驱动为第一报文打上VLAN头,就可以是指为第一报文打上外层VLAN头,如果协议栈没有为第一报文打上单层VLAN头,那么这里的虚拟网卡的驱动为第一报文打上VLAN头,就可以是指为第一报文打上内层VLAN头和外层VLAN头。
[0107]其中,虚拟网卡的驱动可以将VLAN ID的高12位添加到第二报文的SVLAN中,例如将VLAN ID的高12位构成的信息称为第一标识信息,那么虚拟网卡的驱动就是可以在第二报文的外层VLAN头中携带第一标识信息?;蛘?,如果虚拟网卡的驱动还要为第一报文打上内层VLAN头,那么虚拟网卡的驱动可以将VLAN ID的低12位添加到第二报文的CVLAN中,例如将VLAN ID的低12位构成的信息称为第二标识信息,那么虚拟网卡的驱动就是可以在第二报文的内层VLAN头中携带第二标识信息。
[0108]5、虚拟网卡的驱动根据第二报文的内层VLAN头确定第二报文是否是优先级报文,即判断第二报文的内层VLAN头是否携带了优先级信息。如果第二报文的内层VLAN头携带了优先级信息,则执行步骤6和7,否则执行步骤8。
[0109]可选的,如果第二报文携带了优先级信息,那么第二报文的内层VLAN头就是协议栈添加的,如果第二报文未携带优先级信息,那么第二报文的内层VLAN头可能是协议栈添加的,也可能是虚拟网卡的驱动添加的。优选的,如果第二报文未携带优先级信息,那么第二报文的内层VLAN头可以是虚拟网卡的驱动添加的。
[0110]6、若第二报文的内层VLAN头携带了优先级信息,则虚拟网卡的驱动将第二报文的内层VLAN头中携带的优先级信息复制到第二报文的外层VLAN头中,例如可以将第二报文的CVLAN中携带的优先级信息复制到第二报文的SVLAN中。
[0111]因为第二报文在传输的过程中,SVLAN对于途经的节点来说是可见的,将优先级信息携带在SVLAN里,可以使得沿途的节点更好地传输第二报文,例如可以按照第二报文的优先级信息优先传输第二报文等。
[0112]可选的,如果将第二报文的CVLAN中携带的优先级信息复制到第二报文的SVLAN中,那么虚拟网卡的驱动还可以删除第二报文的CVLAN中携带的优先级信息,这样可以尽量避免同样的信息在一个报文中重复携带。
[0113]7、若第二报文的内层VLAN头携带了优先级信息,则虚拟网卡的驱动还可以根据配置的VLAN以及VLAN ID给第二报文重新配置CVLAN携带的VLAN ID部分的取值。其中CVLAN中用于指示VLAN ID的位构成的信息就可以是CVLAN携带的标识信息,那么例如可以将CVLAN携带的标识信息设置为第二标识信息。执行步骤8。
[0114]因为,如果第一报文携带了优先级信息,那么协议栈可能将第一报文的CVLAN携带的VLAN ID设置为VLAN O,而第二报文要进行传输,需要SVLAN携带的标识信息和CVLAN携带的标识信息共同指示VLAN ID,因此虚拟网卡的驱动可以重新设置第二报文的CVLAN携带的VLAN ID部分的值,即重新设置CVLAN携带的标识信息,例如将CVLAN携带的标识信息设置为第二标识信息,例如可以将该VM的VLAN ID的低12位放入CVLAN,这里,将VLAN ID的低12位构成的信息称为第二标识信息。
[0115]8、虚拟网卡的驱动将第二报文发给VM的虚拟网卡。
[0116]9、VM的虚拟网卡发送第二报文。例如,VM的虚拟网卡可以通过该VM所在的服务器的物理网卡发送第二报文。
[0117]另外,在例2中,因为封装报文的工作已由VM完成,那么如果接收第二报文的第二设备是按照例I中介绍的配置方式配置后的交换机或路由器,则交换机或路由器按照正常的方式转发第二报文即可。
[0118]例3
[0119]例I和例2都是以第一设备是VM为例,即为报文封装双层VLAN头的工作均由VM完成,则例3以第一设备是交换机或路由器为例介绍预先配置交换机或路由器、及交换机或路由器封装报文的过程,在例3中,为报文封装双层VLAN头的工作可以由交换机或路由器完成。
[0120]可选的,交换机或路由器封装的报文,可能是VM发送过来需要进行转发的报文,或者也可能是交换机或路由器自己生成报文,例如交换机或路由器中也可以运行一些可能的应用,这些应用也可能会生成报文,从而交换机或路由器也可能需要发送这些报文。
[0121 ] 可选的,一般来说,如果由VM来为报文添加外层VLAN,那么也可以由VM来解析外层VLAN,如果由交换机或路由器来为报文添加外层VLAN,那么可以继续由交换机或路由器来解析外层VLAN,或者,或者也可以由用于控制该交换机或路由器的控制器(Controller)来解析外层VLAN。
[0122]例如可以事先为交换机或路由器配置新的报文封装的格式,使得交换机或路由器可以采用双层VLAN的格式来封装接收的报文。
[0123]可选的,交换机或路由器在为报文添加外层VLAN头时,可以有不同依据,例如可以基于VM来添加,或者可以基于端口来添加,或者可以基于通信协议来添加,那么对交换机或路由器就可以有不同的配置方式。下面举例介绍。
[0124]第一种方式:交换机或路由器基于VM为报文封装双层VLAN头。在这种情况下,交换机或路由器是接收VM发送的报文,则为报文封装双层VLAN头,可以是为报文添加外层VLAN头,以及,若报文的内层VLAN头未设置,还可以设置报文的内层VLAN头,或者,为报文封装双层VLAN头,也可以是为报文添加内层VLAN头和外层VLAN头。
[0125]由于一个交换机或路由器可以连接多个服务器,也就可以连接多个VM,而报文携带的VLAN ID可以是发送报文的VM的VLAN ID??裳〉?,交换机或路由器接收第一报文后,如果VM已经为第一报文打上了单层VLAN,且第一报文的单层VLAN中携带的VLAN ID部分已经填入了该VM的VLAN ID的低12位,即该第一报文是交换机或路由器接收的VM发送的报文,VM已经完成了对该报文的CVLAN的设置,那么交换机或路由器可以为第一报文添加外层VLAN头,得到第二报文,并在第二报文的SVLAN中填入发送第一报文的VM的VLAN ID的高12位,SP令该第二报文的外层VLAN头携带第一标识信息,使得第二报文的SVLAN携带的第一标识信息和CVLAN携带的标识信息可以共同指示发送该第一报文的VM的VLAN ID,可选的,交换机或路由器可以根据该第一报文的源地址确定发送报文的VM?;蛘?,交换机或路由器接收第一报文后,如果第一报文已携带单层VLAN,但该单层VLAN携带的VLAN ID部分为空,或者为VLAN 0,即该第一报文可以是交换机或路由器接收的VM发送的报文,而VM未对该第一报文的CVLAN进行设置,或者将该第一报文的VLAN ID设置为VLAN O,则交换机或路由器可以为第一报文添加外层VLAN头,得到第二报文,并在第二报文的SVLAN和CVLAN中填入发送第一报文的VM的VLAN ID,其中在SVLAN中填入VLAN ID的高12位,在CVLAN中填入VLAN ID的低12位,使得第二报文的SVLAN和CVLAN可以共同指示发送该第一报文的VM的VLAN ID,可选的,交换机或路由器可以根据该第一报文的源地址确定发送第一报文的VM?;蛘?,交换机或路由器接收第一报文后,如果第一报文未携带单层VLAN,则交换机或路由器可以为第一报文添加内层VLAN头和外层VLAN头,得到第二报文,并在第二报文的SVLAN和CVLAN中填入发送第一报文的VM的VLAN ID,其中在SVLAN中填入VLAN ID的高12位,在CVLAN中填入VLAN ID的低12位,使得第二报文的SVLAN和CVLAN可以共同指示发送该第一报文的VM的VLAN ID,可选的,交换机或路由器可以根据该第一报文的源地址确定发送第一报文的VM。
[0126]可选的,在配置交换机或路由器时,可以事先为交换机或路由器配置多个VM的VLAN ID,例如可以在交换机或路由器中维护数据表,该数据表包括至少一个表项,其中每个表项可以记录一个VM的VLAN ID,这样交换机或路由器才能够正确封装报文。
[0127]可选的,在配置交换机或路由器时,可以指示交换机或路由器在封装报文时将VLAN ID的高12位封装在SVLAN中,或者可以指示交换机或路由器在封装报文时将VLAN ID的高12位封装在SVLAN中,及将VLAN ID的低12位封装在CVLAN中。这样,通过配置,交换机或路由器不仅知道各VM的VLAN ID,也知道应该如何封装报文。
[0128]第二种方式:交换机或路由器基于端口为报文封装双层VLAN头。在这种情况下,交换机或路由器是接收VM发送的报文,则为报文封装双层VLAN头,可以是为报文添加外层VLAN头,以及,若报文的内层VLAN头未设置,还可以设置报文的内层VLAN头,或者为报文封装双层VLAN头可以是为报文添加内层VLAN头和外层VLAN头。
[0129]—个交换机或路由器可以包括多个端口,那么可以预先为交换机或路由器的每个端口配置一个VLAN ID,例如为端口 I配置的VLAN ID为VLAN IDl,为端口 2配置的VLAN ID为VLAN ID2,等等,那么,交换机或路由器是通过哪个端口接收的报文,就可以为该报文封装为该端口配置的VLAN ID。这样,因为交换机或路由器的端口的数量相比VM的数量来说可能较小,交换机或路由器中需要预先配置的VLAN ID的数量大大减少,节省存储空间。
[0130]在这种情况下,可以为与该交换机或路由器通信的VM配置其所对应的端口的VLANID,例如可以配置VLAN ID的低12位,那么VM在向交换机或路由器发送待转发的报文时,可以在报文的单层VLAN头中填入VLAN ID的低12位,交换机或路由器接收该报文后,只需为报文添加外层VLAN头,并根据为接收该报文的端口配置的VLAN ID向外层VLAN头中填入该VLAN ID的高12位即可,即令该报文的外层VLAN头携带第一标识信息,交换机或路由器需要做的工作较少,负担较轻,这样,该报文的外层VLAN携带的第一标识信息和内层VLAN携带的标识信息可以用于联合指示为接收该报文的端口预先配置的VLAN ID?;蛘?,在这种情况下,也可以不为与该交换机或路由器通信的VM配置其所对应的端口的VLAN ID,那么VM在向交换机或路由器发送需要转发的报文时,可以在报文的单层VLAN头中填入相应的信息,例如填入VM的VLAN ID,或者如果VM的VLAN ID也是双层VLAN所指示的24位的VLAN ID,则VM可以在报文的内层VLAN头中填入VM的VLAN ID的低12位,交换机或路由器接收该报文后,因为该报文的内层VLAN头中填入的很可能不是预先为接收该报文的端口配置的VLAN ID的相应位的取值,因此交换机或路由器可以修改该报文的内层VLAN头中用于指示VLAN ID的位的取值,即可以在该报文的内层VLAN头中填入预先为接收该报文的端口配置的VLAN ID的低12位,且交换机或路由器可以为该报文添加外层VLAN头,并根据为接收该报文的端口配置的VLAN ID向外层VLAN头中填入该VLAN ID的高12位?;蛘?,在这种情况下,也可以不为与该交换机或路由器通信的VM配置其所对应的端口的VLAN ID,那么VM在向交换机或路由器发送需要转发的报文时,可以不在报文的单层VLAN头中填入用于指示VLAN ID的信息,即报文的内层VLAN头中用于指示报文的VLAN ID的位的取值可以均为0,交换机或路由器接收该报文后,可以在该报文的内层VLAN头中填入预先为接收该报文的端口配置的VLAN ID的低12位,且交换机或路由器可以为该报文添加外层VLAN头,并根据为接收该报文的端口配置的VLAN ID向外层VLAN头中填入该VLAN ID的高12位?;蛘?,在这种情况下,VM在向交换机或路由器发送需要转发的报文时,可以不为报文添加单层VLAN头,交换机或路由器接收该报文后,可以为该报文添加内层VLAN头和外层VLAN头,根据为接收该报文的端口配置的VLANID,向外层VLAN头中填入该VLAN ID的高12位,及向内层VLAN头中填入该VLAN ID的低12位。
[0131]可选的,在配置交换机或路由器时,可以指示交换机或路由器在封装报文时将VLAN ID的高12位封装在SVLAN中,或者可以指示交换机或路由器在封装报文时将VLAN ID的高12位封装在SVLAN中,及将VLAN ID的低12位封装在CVLAN中。这样,通过配置,交换机或路由器不仅知道各端口的VLAN ID,也知道应该如何封装报文。
[0132]第三种方式:交换机或路由器基于通信协议为报文封装双层VLAN头。在这种情况下,交换机或路由器可以接收VM发送的报文,则为报文封装双层VLAN头,可以是为报文添加外层VLAN头,以及,若报文的内层VLAN头未设置,还可以设置报文的内层VLAN头,或者为报文封装双层VLAN头,可以是为报文添加内层VLAN头和外层VLAN头,或者在这种情况下,交换机或路由器可以自己生成报文,例如交换机或路由器中可以安装一些应用,这些应用可能会生成报文,则交换机或路由器可能需要发送这些报文,那么,为报文封装双层VLAN头,可以是为报文添加内层VLAN头和外层VLAN头。
[0133]数据中心网络可以支持多种不同的通信协议,那么可以预先为交换机或路由器支持的每种通信协议配置一个VLAN ID,例如为通信协议I配置的VLAN ID为VLAN IDl,为通信协议2配置的VLAN ID为VLAN ID2,等等,那么,交换机或路由器待封装的是哪个通信协议下的报文,就可以为该报文封装为该通信协议配置的VLAN ID。这样,因为通信协议的数量相比VM的数量来说可能较小,则交换机或路由器中需要预先配置的VLAN ID的数量大大减少,节省存储空间。
[0134]下面分别介绍交换机或路由器封装VM发送的报文、及交换机或路由器封装自己生成的报文两种情况。
[0135]若交换机或路由器封装VM发送的报文,则可以为与该交换机或路由器通信的VM配置为各个通信协议配置的VLAN ID,例如可以配置为各个通信协议配置的VLAN ID的低12位,那么VM在向交换机或路由器发送待转发的报文时,可以在报文的单层VLAN头中填入相应通信协议的VLAN ID的低12位,交换机或路由器接收该报文后,只需为报文添加外层VLAN头,并根据为该报文所属的通信协议配置的VLAN ID向外层VLAN头中填入该VLAN ID的高12位即可,交换机或路由器需要做的工作较少,负担较轻?;蛘?,若交换机或路由器封装VM发送的报文,也可以不为与该交换机或路由器通信的VM配置为各个通信协议配置的VLAN ID,那么VM在向交换机或路由器发送需要转发的报文时,可以在报文的单层VLAN头中填入相应的信息,例如填入VM的VLAN ID,或者如果VM的VLAN ID也是双层VLAN所指示的24位的VLANID,则VM可以在报文的内层VLAN头中填入VM的VLAN ID的低12位,交换机或路由器接收该报文后,因为该报文的内层VLAN头中填入的很可能不是预先为该报文所属的通信协议配置的VLAN ID的相应位的取值,因此交换机或路由器可以修改该报文的内层VLAN头中用于指示VLAN ID的位的取值,即可以在该报文的内层VLAN头中填入预先为该报文所属的通信协议配置的VLAN ID的低12位,且交换机或路由器可以为该报文添加外层VLAN头,并根据为该报文所属的通信协议配置的VLAN ID向外层VLAN头中填入该VLAN ID的高12位?;蛘?,若交换机或路由器封装VM发送的报文,也可以不为与该交换机或路由器通信的VM配置为各个通信协议配置的VLAN ID,那么VM在向交换机或路由器发送需要转发的报文时,可以不在报文的单层VLAN头中填入用于指示VLAN ID的信息,即报文的内层VLAN头中用于指示报文的VLANID的位的取值可以均为0,交换机或路由器接收该报文后,可以在该报文的内层VLAN头中填入预先为该报文所属的通信协议配置的VLAN ID的低12位,且交换机或路由器可以为该报文添加外层VLAN头,并根据为该报文所属的通信协议配置的VLAN ID向外层VLAN头中填入该VLAN ID的高12位?;蛘?,若交换机或路由器封装VM发送的报文,VM在向交换机或路由器发送需要转发的报文时,可以不为报文添加单层VLAN头,交换机或路由器接收该报文后,可以为该报文添加内层VLAN头和外层VLAN头,并根据为该报文所属的通信协议配置的VLANID,向外层VLAN头中填入该VLAN ID的高12位,及向内层VLAN头中填入该VLAN ID的低12位。
[0136]若交换机或路由器封装自己生成的报文,则交换机或路由器可以为该报文添加内层VLAN头和外层VLAN头,且交换机或路由器要在报文的SVLAN和CVLAN中填入为该报文所属的通信协议预先配置的VLAN ID,使得报文的SVLAN和CVLAN可以共同指示该VLAN ID。
[0137]可选的,在配置交换机或路由器时,可以指示交换机或路由器在封装报文时将VLAN ID的高12位封装在SVLAN中,或者可以指示交换机或路由器在封装报文时将VLAN ID的高12位封装在SVLAN中,及将VLAN ID的低12位封装在CVLAN中。这样,通过配置,交换机或路由器不仅知道各通信协议的VLAN ID,也知道应该如何封装报文。
[0138]可选的,除了以上三种方式之外,如果一个报文是交换机或路由器自己生成的报文,则交换机或路由器可以为该报文添加内层VLAN头和外层VLAN头,且交换机或路由器也可以在报文的SVLAN和CVLAN中分别填入该交换机或路由器的VLAN ID的高12位和低12位,使得报文的SVLAN携带的标识信息和CVLAN携带的标识信息可以共同指示该交换机或路由器的VLAN ID。
[0139]可选的,交换机或路由器要对封装了双层VLAN头的报文进行转发,因此,可以通过配置使得交换机或路由器提供的与转发VLAN报文相关的表项都能够支持24位的VLAN ID。例如,可以将交换机或路由器提供的与转发报文相关的表项中VLAN的有效字段均扩展为24位,这样就可以使得与转发报文相关的表项都能够支持24位的VLAN ID,这样,交换机或路由器在得到第二报文后,可以实现对第二报文的正确转发。
[0140]可选的,交换机或路由器所提供的与转发VLAN报文相关的表项可以有多种,例如可以包括端口的VLAN配置表、二层转发表、及访问控制列表(Access Control List,ACL)配置表中的至少一种,还可以包括其他可能的表。
[0141]可选的,还可以对交换机或路由器解析VLAN报文的流程进行配置,使得交换机或路由器对VLAN报文解析流程能够支持对双层VLAN的解析。
[0142]例4
[0143]例3介绍了由交换机或路由器封装报文时如何预先配置交换机或路由器、及交换机或路由器如何封装报文的过程,那么例4就介绍由交换机或路由器封装报文并发送报文的过程,例4以交换机为例。且例4中交换机或路由器封装的是VM发送的报文,例4中的封装方式只是例3中介绍的一种可能的方式,只是为了使得发送报文的过程更为完整,所以任选一种封装方式来举例。请参见图7。
[0144]1、VMl将第一报文发送给交换机,则交换机接收第一报文。
[0145]其中,第一报文携带了优先级信息,因此VMl为第一报文打上了单层VLAN头。第一报文要发送给数据中心网络中的第二设备,例如第二设备是VM2。
[0146]可选的,若第一报文未携带优先级信息,则VMl也可以不为第一报文打上单层VLAN头。
[0147]2、交换机根据VLAN配置规则(即预先配置的VLAN设置信息)为第一报文打上外层VLAN头,得到第二报文。
[0148]例4以交换机基于VM封装报文为例。因第一报文携带优先级信息,因此第一报文的单层VLAN头携带的VLAN ID可能被VM配置为VLAN 0,则,例如交换机可以确定预先配置的发送第一报文的VMl的VLAN ID,则交换机可以将VMl的VLAN ID的高12位添加到第二报文的SVLAN中,及将VMl的VLAN ID的低12位添加到第二报文的CVLAN中,即在SVLAN中携带第一标识信息,和在重新配置CVLAN,在CVLAN中携带第二标识信息。
[0149]可选的,交换机还可以根据第二报文的内层VLAN头(即第一报文的单层VLAN头)确定第二报文是否是优先级报文,即判断第二报文的内层VLAN头是否携带了优先级信息。如果第二报文的内层VLAN头携带了优先级信息,则执行步骤3,否则执行步骤4。
[0150]3、若第二报文的内层VLAN头携带了优先级信息,则交换机将第二报文的内层VLAN头中携带的优先级信息复制到第二报文的外层VLAN头中,例如可以将第二报文的CVLAN中携带的优先级信息复制到第二报文的SVLAN中。
[0151]因为第二报文在传输的过程中,SVLAN对于途经的节点来说是可见的,将优先级信息携带在SVLAN里,可以使得沿途的节点更好地传输第二报文,例如可以按照第二报文的优先级信息优先传输第二报文等。
[0152]可选的,如果将第二报文的CVLAN中携带的优先级信息复制到第二报文的SVLAN中,那么交换机还可以删除第二报文的CVLAN中携带的优先级信息,这样可以尽量避免同样的信息在一个报文中重复携带。
[0153]4、交换机检查是否开启了入(ingress)过滤。如果开启,则执行步骤5,如果未开启,则执行步骤7。
[0?54] 5、如果开启了 ingress过滤,则交换机判断第二报文的扩展VLAN是否已经设置到端口表中,即判断交换机的端口表是否支持24位的VLAN ID。如果交换机的端口表不支持24位的VLAN ID,则执行步骤6,如果交换机的端口表支持24位的VLAN ID,则执行步骤7。
[0155]6、如果交换机的端口表不支持24位的VLAN ID,则丢弃第二报文。流程结束。
[0156]7、如果交换机的端口表支持24位的VLAN ID,交换机以第二报文的源MAC(SMAC) +第二报文的VLAN ID查找二层转发表。若未找到二层转发表,则执行步骤8,如果找到,则执行步骤9。
[0157]8、如果根据SMAC+第二报文的VLAN ID未找到二层转发表,则交换机在二层转发表中添加一条新的记录,并将第二报文的SMAC、第二报文携带的VLAN ID和第二报文的入端口信息添加到该新的记录中。执行步骤9。
[0158]9、交换机继续以目的MAC(DMAC)+第二报文的VLAN ID查找二层转发表。如果未找到,则执行步骤10,如果找到,则执行步骤11。
[0159]10、如果根据DMAC+第二报文的VLAN ID未找到二层转发表,则可以将第二报文在该交换机所有配置了与第二报文的VLAN ID相同VLAN ID的VLAN的端口上洪泛。
[0160]11、如果根据DMAC+第二报文的VLAN ID找到了二层转发表,则按照查到的二层转发表中的记录进行转发。
[0161]可选的,第一设备可以是VM,或者也可以是交换机或路由器,那么同样的,第二设备也可能是VM,或者也可能是交换机或路由器,S卩,若VM为报文添加外层VLAN头,则拆除报文的外层VLAN头的工作可以由VM完成,若交换机或路由器为报文添加外层VLAN头,则拆除报文的外层VLAN头的工作可以由交换机或路由器完成,或者也可以由用于控制该交换机或路由器的控制器完成。下面分别介绍。
[0162]例5
[0163]在例5中介绍由VM拆除报文的外层VLAN头的情况。在例5中,为报文添加外层VLAN头的可能是其他的VM。请参见图8。
[0164]1、VM的虚拟网卡接收第二报文。
[0165]其中,第二报文携带双层VLAN头,为第二报文添加外层VLAN头的可以是其他的VM,第二报文可能是另一个VM直接发过来的,或者也可能是通过交换机或路由器转发的。
[0166]2、虚拟网卡将第二报文传给虚拟网卡的驱动。
[0167]3、虚拟网卡的驱动首先可以判断第二报文的SVLAN字段中是否携带了优先级信息。如果携带了优先级信息,则执行步骤4,否则执行步骤5。
[0168]4、如果第二报文携带了优先级信息,则虚拟网卡的驱动将第二报文的SVLAN中携带的优先级信息复制到第二报文的CVLAN中用于指示优先级信息的位置。
[0169]可选的,如果在封装第二报文时,在将第二报文携带在CVLAN中的优先级信息复制到第二报文的SVLAN之后并未删除第二报文的CVLAN中的优先级信息,那么也可以不执行步骤4。
[0170]5、虚拟网卡的驱动去掉第二报文的外层VLAN头。
[0171]可选的,协议栈确认携带优先级信息的报文时可能需要报文的CVLAN携带的VLANID部分设置为预设取值,及将报文的CVLAN携带的用于指示发送该报文的设备的VLAN ID的标识的信息设置为预设信息,例如设置为VLAN O,因此,如果第二报文携带了优先级信息,那么虚拟网卡的驱动可以将第一报文的CVLAN携带的VLAN ID设置为VLAN O。
[0172]6、虚拟网卡的驱动将去掉外层VLAN头后的第二报文上送给VM的协议栈进行处理。
[0173]例如协议栈可以对去掉外层VLAN头后的第二报文进行解析,从而获取第二报文所携带的内容,以将第二报文的内容传给VM中等待接收第二报文的应用等。
[0174]可选的,虚拟网卡的驱动也可以一并拆除第二报文的内层VLAN头,之后再将拆除内层VLAN头和外层VLAN头后的第二报文上送给协议栈进行处理。这里可以将去掉外层VLAN头后的第二报文称为第一报文,或者也可以将去掉内层VLAN头和外层VLAN头后的第二报文称为第一报文。
[0175]例6
[0176]在例6中介绍由交换机或路由器拆除报文的外层VLAN头的情况,且以交换机为例。在例6中,为报文添加外层VLAN头的可能是其他的交换机或路由器。请参见图9。
[0177]1、交换机接收第二报文。
[0178]其中,第二报文携带双层VLAN头,为第二报文添加外层VLAN头的可能是其他的交换机或路由器,第二报文可能是另一个VM发过来的,或者也可能是通过另外的交换机或路由器转发的。
[0179]2、交换机首先可以判断第二报文的SVLAN字段中是否携带了优先级信息。如果携带了优先级信息,则执行步骤3,否则执行步骤4。
[0180]3、如果第二报文携带了优先级信息,则交换机将第二报文的SVLAN中携带的优先级信息复制到第二报文的CVLAN中用于指示优先级信息的位置。
[0181 ]可选的,如果在封装第二报文时,在将第二报文携带在CVLAN中的优先级信息复制到第二报文的SVLAN之后并未删除第二报文的CVLAN中的优先级信息,那么也可以不执行步骤3。
[0182]4、交换机去掉第二报文的外层VLAN头。
[0183]5、交换机转发去掉外层VLAN头后的第二报文。
[0184]例如交换机可以根据第二报文携带的目的地址,通过查找转发表的方式转发第二报文,关于交换机如何转发携带单层VLAN的报文,可以参考现有技术,此处不多赘述。
[0185]可选的,交换机也可以一并拆除第二报文的内层VLAN头,之后再将拆除内层VLAN头和外层VLAN头后的第二报文进行转发。这里可以将去掉外层VLAN头后的第二报文称为第一报文,或者也可以将去掉内层VLAN头和外层VLAN头后的第二报文称为第一报文。
[0186]—般来说,修改协议栈的代码比较麻烦,也比较难以实现。因此本发明实施例中,在配置VM时,可以无需通过协议栈进行配置,而可以直接调用VM的虚拟网卡的驱动提供的配置函数配置即可。这样,在无需修改协议栈代码的前提下就可以完成对VM的配置,较为容易推广应用。
[0187]本发明实施例中,可以在VM上预先设置优先级信息,VM在发送报文时可以为报文选择优先级信息,使得不同的报文都能有合适的发送方式。
[0188]本发明实施例中,为报文封装外层VLAN头的工作可以由VM实现,或者也可以由交换机或路由器等设备实现,方式较为灵活。
[0189]请参见图10,提供第一种报文发送设备,该报文发送设备可以位于通过VLAN进行通信的数据中心网络中,该报文发送设备可以包括存储器1001、处理器1002和发送器1003。
[0190]其中,处理器I 00 2具体可以是中央处理器(CPU)或特定应用集成电路(Applicat1n Specific Integrated Circuit,ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(Field Programmable Gate Array,FPGA)开发的硬件电路。
[0191]存储器1001的数量可以是一个或多个。存储器1001可以包括只读存储器(ReadOnly Memory,ROM)、随机存取存储器(Random Access Memory,RAM)和磁盘存储器。
[0192]发送器1003可以用于与外部设备进行网络通信。
[0193]这些存储器1001和发送器1003可以通过总线1000与处理器1002相连接(图10以此为例),或者也可以通过专门的连接线分别与处理器1002连接。
[0194]通过对处理器1002进行设计编程,将前述所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述图4或图6所示的方法。如何对处理器1002进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
[0195]该实施例中的报文发送设备与上述各实施例中所述的第一设备可以是同一设备,例如,该实施例中的报文发送设备可以是如前所述的作为第一设备的物理服务器,或作为第一设备的物理服务器中运行的VM。因此,对该实施例中的报文发送设备各个功能??樗葱械牟街璧炔欢嘧甘?,可参考如前的实施例中的描述。
[0196]请参见图1IA,提供第二种报文发送设备,该报文发送设备可以位于通过VLAN进行通信的数据中心网络中,该报文发送设备可以包括VLAN???101和转发???102。
[0197]例如,VLAN???101和转发???102可以通过软件方式实现,或者也可以通过硬件方式实现,例如VLAN???101和转发???102可以均为独立的硬件???,或者,VLAN???101和转发???102可以是一个硬件??榘ǖ牧礁鲇布δ苣?榛蛉砑δ苣??,例如可以是该硬件??槟芄煌瓿傻牧街止δ?,例如该硬件??榭梢允且恢肿⑿酒?。
[0198]可选的,请参见图1IB,该报文发送设备还可以包括处理???103,处理???103也同样可以通过硬件方式实现或者通过软件方式实现。例如,如果VLAN???101和转发???102均为独立的硬件???,则处理???103例如可以是处理器,可以分别与VLAN???101和转发???102连接,例如可以通过总线连接,或者也可以通过分别的连接线连接,图1lB以通过分别的连接线连接为例,如果VLAN???101和转发???102为转发芯片所能够完成的两种功能,即为转发芯片内部的两个功能???,则处理???103可以与该转发芯片连接。
[0199]其中,处理???103可以完成对VLAN???101和转发???10 2的相关配置,VLAN???101可以完成对报文的封装及解析等功能,转发???102可以收发报文,若处理???103为处理器,则通过对处理???103和VLAN???101进行设计编程,将前述所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述图4或图7所示的方法。如何对处理???103和VLAN???101进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
[0200]该实施例中的报文发送设备与上述各实施例中所述的第一设备可以是同一设备,例如,该实施例中的报文发送设备可以是如前所述的作为第一设备的交换机或路由器,例如转发???102在交换机中可以称为层2(L2)处理???,即用于完成二层转发功能。因此,对该实施例中的报文发送设备各个功能??樗葱械牟街璧炔欢嘧甘?,可参考如前的实施例中的描述。
[0201]请参见图12,提供第一种报文接收设备,该报文接收设备可以位于通过VLAN进行通信的数据中心网络中,该报文接收设备可以包括存储器1201、处理器1202和接收器1203。
[0202]其中,处理器1202具体可以是CPU或ASIC,可以是一个或多个用于控制程序执行的集成电路,可以是使用FPGA开发的硬件电路。
[0203]存储器1201的数量可以是一个或多个。存储器1201可以包括R0M、RAM和磁盘存储器。
[0204]接收器1203可以用于与外部设备进行网络通信。
[0205]这些存储器1201和接收器1203可以通过总线1200与处理器1202相连接(图10以此为例),或者也可以通过专门的连接线分别与处理器1202连接。
[0206]通过对处理器1202进行设计编程,将前述所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述图5或图8所示的方法。如何对处理器1202进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
[0207]该实施例中的报文接收设备与上述各实施例中所述的第二设备可以是同一设备,例如,该实施例中的报文接收设备可以是如前所述的作为第二设备的物理服务器,或作为第一设备的物理服务器中运行的VM。因此,对该实施例中的报文接收设备各个功能??樗葱械牟街璧炔欢嘧甘?,可参考如前的实施例中的描述。
[0208]可选的,图12所示的报文接收设备与图10所示的报文发送设备可以是同一设备,或者也可以是不同的设备。
[0209]请参见图13,提供第二种报文接收设备,该报文接收设备可以位于通过VLAN进行通信的数据中心网络中,该报文接收设备可以包括VLAN???301和转发???302。
[0210]例如,VLAN???301和转发???302可以通过软件方式实现,或者也可以通过硬件方式实现,例如VLAN???301和转发???302可以均为独立的硬件???,或者,VLAN???301和转发???302可以是一个硬件??榘ǖ牧礁鲇布δ苣?榛蛄礁鋈砑δ苣??,例如可以是该硬件??槟芄煌瓿傻牧街止δ?,例如该硬件??榭梢允且恢肿⑿酒?。
[0211]其中,VLAN???301可以完成对报文的封装及解析等功能,转发???302可以收发报文,通过对VLAN???101进行设计编程,将前述所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述图5或图9所示的方法。如何对VLAN???301进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
[0212]该实施例中的报文接收设备与上述各实施例中所述的第二设备可以是同一设备,例如,该实施例中的报文接收设备可以是如前所述的作为第二设备的交换机或路由器,例如转发???302在交换机中可以称为层2处理???,即用于完成二层转发功能。因此,对该实施例中的报文接收设备各个功能??樗葱械牟街璧炔欢嘧甘?,可参考如前的实施例中的描述。
[0213]可选的,图13所示的报文接收设备与图1lA或图1lB所示的报文发送设备可以是同一设备,或者也可以是不同的设备。
[0214]请参见图14,基于同一发明构思,提供第三种报文发送设备,该报文发送设备可以位于通过VLAN进行通信的数据中心网络中,该报文发送设备可以包括获取???401、添加???402和发送???403??裳〉?,该报文发送设备还可以包括配置???404,在图14中一并示出。其中,例如配置???404可以用于在获取???401获取第一报文之前配置该报文发送设备。
[0215]在实际应用中,获取???401、添加???402和配置???404对应的实体设备可以是图10中的处理器1002,发送???403对应的实体设备可以是图10中的发送器1003。
[0216]该报文发送设备可以用于执行上述图4或图6所述的方法,例如可以是如前所述的第一设备,例如,该实施例中的报文发送设备可以是如前所述的作为第一设备的物理服务器,或作为第一设备的物理服务器中运行的VM。因此,对于该报文发送设备中的各单元所实现的功能等,可参考如前方法部分的描述,不多赘述。
[0217]请参见图15,基于同一发明构思,提供第三种报文接收设备,该报文接收设备可以位于通过VLAN进行通信的数据中心网络中,该报文接收设备可以包括接收???501和拆除???502??裳〉?,该报文接收设备还可以包括复制???503和设置???504,在图15中一并示出。其中,例如复制???503可以用于在拆除???502拆除第二报文的外层VLAN头之前,若第二报文的外层VLAN头携带了第二报文的优先级信息,则将所述优先级信息复制到第二报文的内层VLAN头中,例如设置???504可以用于在拆除???502拆除第二报文的外层VLAN头之后,若第二报文的外层VLAN头携带了第二报文的优先级信息,则将第二报文的内层VLAN头携带的用于指示VLAN标识的信息重新设置为预设信息。
[0218]在实际应用中,接收???501对应的实体设备可以是图12中的接收器1203,拆除???502、复制???503和设置???504对应的实体设备可以是图12中的处理器1202。
[0219]该报文接收设备可以用于执行上述图5或图8所述的方法,例如可以是如前所述的第二设备,例如,该实施例中的报文接收设备可以是如前所述的作为第二设备的物理服务器,或作为第二设备的物理服务器中运行的VM。因此,对于该报文接收设备中的各单元所实现的功能等,可参考如前方法部分的描述,不多赘述。
[0220]本发明实施例中,可以不采用VXLAN的封装方式,而采用双层VLAN的封装方式,双层VLAN—共占用24bit,通过双层VLAN来构成VLAN ID,也扩展了VLAN ID的范围,解决了VLAN不够用的问题。且为报文添加一层额外的外层VLAN头,只需添加12位,相对于VXLAN中的封装方式来说大大节省了带宽,对于DCN这种可能需要频繁通信的网络来说,节省了带宽,也就在一定程度上减小了出现拥塞的可能性,提高了网络通信的质量。
[0221]在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0222]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上??梢愿菔导实男枰≡衿渲械牟糠只蛘呷康ピ词迪直臼凳├桨傅哪康?。
[0223]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0224]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中?;谡庋睦斫?,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存驱动器(Universal Serial Bus flash drive)、移动硬盘、R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0225]以上所述,以上实施例仅用以对本发明的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明实施例的?;し段е?。
【主权项】
1.一种报文发送方法,其特征在于,包括: 通过虚拟局域网VLAN进行通信的数据中心网络内的第一设备获取待发送的第一报文; 所述第一设备为所述第一报文添加VLAN头,得到具有双层VLAN头的第二报文,且所述第一设备在所述第二报文的外层VLAN头中携带第一标识信息;其中,所述外层VLAN头携带的标识信息和所述第二报文的内层VLAN头携带的标识信息用于联合指示预先配置的VLAN标识; 所述第一设备将所述第二报文发送给所述数据中心网络内的第二设备。2.如权利要求1所述的方法,其特征在于,在所述第一设备为所述第一报文添加VLAN头之后,还包括: 若所述内层VLAN头携带了所述第二报文的优先级信息,则所述第一设备将所述优先级信息复制到所述外层VLAN头中。3.如权利要求2所述的方法,其特征在于,所述方法还包括: 若所述内层VLAN头携带了所述第二报文的优先级信息,则所述第一设备根据所述VLAN标识,重新将所述内层VLAN携带的标识信息设置为第二标识信息。4.如权利要求1-3任一所述的方法,其特征在于,若所述第一设备为服务器,则,在通过VLAN进行通信的数据中心内的第一设备获取待发送的第一报文之前,还包括: 调用所述第一设备的网卡的驱动所支持的配置函数配置所述第一设备的VLAN设置信息,使得所述第一设备能够支持携带双层VLAN头的报文。5.如权利要求4所述的方法,其特征在于, 所述方法还包括: 所述第一设备根据预先配置的所述第一设备的VLAN标识在所述内层VLAN头中携带第二标识信息; 所述第一设备在所述第二报文的外层VLAN头中携带第一标识信息,包括: 所述第一设备根据预先配置的所述第一设备的VLAN标识在所述外层VLAN头中携带第一标识信息; 其中,所述第一标识信息和所述第二标识信息用于联合指示所述第一设备的VLAN标识。6.如权利要求1-3任一所述的方法,其特征在于,若所述第一设备为交换机,则,在通过VLAN进行通信的数据中心内的第一设备获取待发送的第一报文之前,还包括: 配置所述第一设备,使得所述第一设备能够为报文封装双层VLAN头,且使得所述第一设备提供的与转发报文相关的表项能够支持双层VLAN头。7.如权利要求6所述的方法,其特征在于,所述第一设备在所述第二报文的外层VLAN头中携带第一标识信息,包括: 所述第一设备根据预先配置的发送所述第一报文的设备的VLAN标识在所述外层VLAN头中携带所述第一标识信息;其中,所述第一标识信息和所述内层VLAN头携带的标识信息用于联合指示发送所述第一报文的设备的VLAN标识;或 所述第一设备根据为所述第一设备接收所述第一报文的端口预先配置的VLAN标识在所述外层VLAN头中携带所述第一标识信息;其中,所述第一标识信息和所述内层VLAN头携带的标识信息用于联合指示为所述第一设备接收所述第一报文的端口预先配置的VLAN标识;或 所述第一设备根据为所述第一报文所属的通信协议预先配置的VLAN标识在所述外层VLAN头中携带所述第一标识信息;其中,所述第一标识信息和所述内层VLAN头携带的标识信息用于联合指示为所述第一报文所属的通信协议预先配置的VLAN标识。8.如权利要求7所述的方法,其特征在于,所述第一设备将所述第二报文发送给所述数据中心内的第二设备,包括: 所述第一设备根据所述VLAN标识查询转发表项; 若查询到记录了所述VLAN标识的转发表项,则所述第一设备根据所述转发表项记录的目的地址转发所述第二报文。9.一种报文接收方法,其特征在于,包括: 通过虚拟局域网VLAN进行通信的数据中心网络内的第二设备接收所述数据中心网络内的第一设备发送的第二报文;所述第二报文具有双层VLAN头; 所述第二设备拆除所述第二报文的外层VLAN头。10.如权利要求9所述的方法,其特征在于,在所述第二设备拆除所述第二报文的外层VLAN头之前,还包括: 若所述第二报文的外层VLAN头携带了所述第二报文的优先级信息,则所述第二设备将所述优先级信息复制到所述第二报文的内层VLAN头中。11.如权利要求10所述的方法,其特征在于,在所述第二设备拆除所述第二报文的外层VLAN头之后,还包括: 若所述第二报文的外层VLAN头携带了所述第二报文的优先级信息,则所述第二设备将所述第二报文的内层VLAN头携带的用于指示VLAN标识的信息重新设置为预设信息;所述预设信息用于指示所述第二报文为具有优先级信息的报文。12.—种通过虚拟局域网VLAN进行通信的数据中心网络内的报文发送设备,其特征在于,包括: 存储器,用于存储指令; 处理器,用于执行所述指令:获取待发送的第一报文;为所述第一报文添加VLAN头,得到具有双层VLAN头的第二报文,且所述第一设备在所述第二报文的外层VLAN头中携带第一标识信息;其中,所述外层VLAN头携带的标识信息和所述第二报文的内层VLAN头携带的标识信息用于联合指示预先配置的VLAN标识; 发送器,用于将所述第二报文发送给所述数据中心网络内的第二设备。13.如权利要求12所述的设备,其特征在于,所述处理器还用于: 在为所述第一报文添加VLAN头之后,若所述内层VLAN头携带了所述第二报文的优先级信息,则将所述优先级信息复制到所述外层VLAN头中。14.如权利要求13所述的设备,其特征在于,所述处理器还用于: 若所述内层VLAN头携带了所述第二报文的优先级信息,则根据所述VLAN标识,重新将所述内层VLAN携带的标识信息设置为第二标识信息。15.如权利要求12-14任一所述的设备,其特征在于,所述处理器还用于: 在获取待发送的第一报文之前,调用所述设备的网卡的驱动所支持的配置函数配置所述设备的VLAN设置信息,使得所述设备能够支持携带双层VLAN头的报文。16.如权利要求15所述的设备,其特征在于,所述处理器还用于: 根据预先配置的所述设备的VLAN标识在所述内层VLAN头中携带第二标识信息; 根据预先配置的所述设备的VLAN标识在所述外层VLAN头中携带第一标识信息; 其中,所述第一标识信息和所述第二标识信息用于联合指示所述设备的VLAN标识。17.—种通过虚拟局域网VLAN进行通信的数据中心网络内的报文发送设备,其特征在于,包括: VLAN???,用于获取待发送的第一报文;为所述第一报文添加VLAN头,得到具有双层VLAN头的第二报文,且所述第一设备在所述第二报文的外层VLAN头中携带第一标识信息;其中,所述外层VLAN头携带的标识信息和所述第二报文的内层VLAN头携带的标识信息用于联合指示预先配置的VLAN标识; 转发???,用于将所述第二报文发送给所述数据中心网络内的第二设备。18.如权利要求17所述的设备,其特征在于,所述VLAN??榛褂糜? 在为所述第一报文添加VLAN头之后,若所述内层VLAN头携带了所述第二报文的优先级信息,则将所述优先级信息复制到所述外层VLAN头中。19.如权利要求18所述的设备,其特征在于,所述VLAN??榛褂糜? 若所述内层VLAN头携带了所述第二报文的优先级信息,则根据所述VLAN标识,重新将所述内层VLAN携带的标识信息设置为第二标识信息。20.如权利要求17-19任一所述的设备,其特征在于,所述设备还包括处理???,用于: 在所述VLAN??榛袢〈⑺偷牡谝槐ㄎ闹?,配置所述设备,使得所述设备能够为报文封装双层VLAN头,且使得所述设备提供的与转发报文相关的表项能够支持双层VLAN头。21.如权利要求20所述的设备,其特征在于,所述VLAN??橛糜? 根据预先配置的发送所述第一报文的设备的VLAN标识在所述外层VLAN头中携带所述第一标识信息;其中,所述第一标识信息和所述内层VLAN头携带的标识信息用于联合指示发送所述第一报文的设备的VLAN标识;或 根据为所述第一设备接收所述第一报文的端口预先配置的VLAN标识在所述外层VLAN头中携带所述第一标识信息;其中,所述第一标识信息和所述内层VLAN头携带的标识信息用于联合指示为所述设备接收所述第一报文的端口预先配置的VLAN标识;或 根据为所述第一报文所属的通信协议预先配置的VLAN标识在所述外层VLAN头中携带所述第一标识信息;其中,所述第一标识信息和所述内层VLAN头携带的标识信息用于联合指示为所述第一报文所属的通信协议预先配置的VLAN标识。22.如权利要求21所述的设备,其特征在于,所述转发??橛糜? 根据所述VLAN标识查询转发表项; 若查询到记录了所述VLAN标识的转发表项,则根据所述转发表项记录的目的地址转发所述第二报文。23.—种通过虚拟局域网VLAN进行通信的数据中心网络内的报文接收设备,其特征在于,包括: 存储器,用于存储指令; 接收器,用于接收所述数据中心网络内的第一设备发送的第二报文;所述第二报文具有双层VLAN头; 处理器,用于执行所述指令,拆除所述第二报文的外层VLAN头。24.如权利要求23所述的设备,其特征在于,所述处理器还用于: 在拆除所述第二报文的外层VLAN头之前,若所述第二报文的外层VLAN头携带了所述第二报文的优先级信息,则将所述优先级信息复制到所述第二报文的内层VLAN头中。25.如权利要求24所述的设备,其特征在于,所述处理器还用于: 在拆除所述第二报文的外层VLAN头之后,若所述第二报文的外层VLAN头携带了所述第二报文的优先级信息,则将所述第二报文的内层VLAN头携带的用于指示所述VLAN标识的信息重新设置为预设信息;所述预设信息用于指示所述第二报文为具有优先级信息的报文。26.—种通过虚拟局域网VLAN进行通信的数据中心网络内的报文接收设备,其特征在于,包括: 转发???,用于接收所述数据中心网络内的第一设备发送的第二报文;所述第二报文具有双层VLAN头; VLAN???,用于拆除所述第二报文的外层VLAN头。27.如权利要求26所述的设备,其特征在于,所述VLAN??榛褂糜? 在拆除所述第二报文的外层VLAN头之前,若所述第二报文的外层VLAN头携带了所述第二报文的优先级信息,则将所述优先级信息复制到所述第二报文的内层VLAN头中。28.如权利要求27所述的设备,其特征在于,所述VLAN??榛褂糜? 在拆除所述第二报文的外层VLAN头之后,若所述第二报文的外层VLAN头携带了所述第二报文的优先级信息,则将所述第二报文的内层VLAN头携带的用于指示所述VLAN标识的信息重新设置为预设信息;所述预设信息用于指示所述第二报文为具有优先级信息的报文。
【文档编号】H04L12/721GK105915427SQ201610200333
【公开日】2016年8月31日
【申请日】2016年3月31日
【发明人】陈仙萍, 彭胜勇, 单会丰
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1
imtoken助记词怎么填-imtoken钱包没有收益-imtoken矿工费太贵了-im钱包官网:token.im