一种报文传输的方法、装置及汇聚交换机转让专利

申请号 : CN201510983332.0

文献号 : CN106921592B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄璐

申请人 : 中国移动通信集团公司

摘要 :

本发明提供了一种报文传输的方法、装置及汇聚交换机,其中,报文传输的方法应用于数据中心侧的汇聚交换机,包括:接收并判断待转发报文的类型;若待转发报文为虚拟可扩展局域网VXLAN封装报文,则将VXLAN封装报文生成以太网承载的点对点协议PPPOE报文,其中,PPPOE报文的报文头中记录有与发送待转发报文的VXLAN隧道对应的标识信息;若待转发报文为PPPOE报文,则根据PPPOE报文的报文头中记录的与发送待转发报文的VXLAN隧道对应的标识信息,确定发送待转发报文的下行VXLAN隧道;根据确定的下行VXLAN隧道,发送待转发报文。本发明解决了VBRAS部署在数据中心后,由于VXLAN汇聚交换机的MAC地址表项瓶颈导致的支撑用户规模较小的问题。

权利要求 :

1.一种报文传输的方法,应用于数据中心侧的汇聚交换机,其特征在于,所述方法包括:

接收并判断待转发报文的类型;

若所述待转发报文为虚拟可扩展局域网VXLAN封装报文,则将所述VXLAN封装报文生成以太网承载的点对点协议PPPOE报文,其中,所述PPPOE报文的报文头中记录有与发送所述待转发报文的VXLAN隧道对应的标识信息;

若所述待转发报文为PPPOE报文,则根据所述PPPOE报文的报文头中记录的与发送所述待转发报文的VXLAN隧道对应的标识信息,确定发送所述待转发报文的下行VXLAN隧道;根据确定的所述下行VXLAN隧道,发送所述待转发报文。

2.根据权利要求1所述的方法,其特征在于,所述将所述VXLAN封装报文生成以太网承载的点对点协议PPPOE报文,包括:从所述VXLAN封装报文中获取发送所述VXLAN封装报文的上行VXLAN隧道的标识VXLAN_ID,并将所述VXLAN封装报文进行拆封,得到原始PPPOE报文;

在所述原始PPPOE报文的报文头内添加VXLAN_ID字段,生成PPPOE报文,其中,所述VXLAN_ID字段中记录有作为所述标识信息的VXLAN_ID。

3.根据权利要求2所述的方法,其特征在于,所述根据所述PPPOE报文的报文头中记录的与发送所述待转发报文的VXLAN隧道对应的标识信息,确定发送所述待转发报文的下行VXLAN隧道,包括:从所述PPPOE报文的报文头的VXLAN_ID字段中获取发送所述待转发报文的下行VXLAN隧道的VXLAN_ID;

根据获取的所述下行VXLAN隧道的VXLAN_ID,确定发送所述待转发报文的下行VXLAN隧道。

4.根据权利要求1所述的方法,其特征在于,所述将所述VXLAN封装报文生成以太网承载的点对点协议PPPOE报文,包括:从所述VXLAN封装报文中获取发送所述VXLAN封装报文的上行VXLAN隧道对应的VXLAN_ID,并将所述VXLAN封装报文进行拆封,得到原始PPPOE报文;

将原始PPPOE报文的报文头中的代码CODE字段中的内容移动至类型TYPE字段中,并在CODE字段中记录与所述VXLAN_ID预设有对应关系且作为标识信息的VXLAN网络标识符VNI,生成PPPOE报文。

5.根据权利要求4所述的方法,其特征在于,所述根据所述PPPOE报文的报文头中记录的与发送所述待转发报文的VXLAN隧道对应的标识信息,确定发送所述待转发报文的下行VXLAN隧道,包括:根据PPPOE报文的报文头中的VNI以及预设的VNI与VXLAN_ID的对应关系,获取发送所述待转发报文的下行VXLAN隧道的VXLAN_ID;

根据获取的所述下行VXLAN隧道的VXLAN_ID,确定发送所述待转发报文的下行VXLAN隧道。

6.根据权利要求2或4所述的方法,其特征在于,在所述根据所述PPPOE报文的报文头中记录的与发送所述待转发报文的VXLAN隧道对应的标识信息,确定发送所述待转发报文的下行VXLAN隧道之后,所述方法还包括:将所述PPPOE报文还原为原始PPPOE报文,并根据所述下行VXLAN隧道的VXLAN_ID,对所述原始PPPOE报文进行隧道封装,然后进入根据确定的所述下行VXLAN隧道,发送所述待转发报文的步骤。

7.一种报文传输的装置,应用于数据中心侧的汇聚交换机,其特征在于,所述装置包括:

判断模块,用于接收并判断待转发报文的类型;

生成模块,用于若所述待转发报文为虚拟可扩展局域网VXLAN封装报文,则将所述VXLAN封装报文生成以太网承载的点对点协议PPPOE报文,其中,所述PPPOE报文的报文头中记录有与发送所述待转发报文的VXLAN隧道对应的标识信息;

确定模块,用于若所述待转发报文为PPPOE报文,则根据所述PPPOE报文的报文头中记录的与发送所述待转发报文的VXLAN隧道对应的标识信息,确定发送所述待转发报文的下行VXLAN隧道;发送模块,用于根据确定的所述下行VXLAN隧道,发送所述待转发报文。

8.根据权利要求7所述的装置,其特征在于,所述生成模块具体用于,从所述VXLAN封装报文中获取发送所述VXLAN封装报文的上行VXLAN隧道的标识VXLAN_ID,并将所述VXLAN封装报文进行拆封,得到原始PPPOE报文;在所述原始PPPOE报文的报文头内添加VXLAN_ID字段,生成PPPOE报文,其中,所述VXLAN_ID字段中记录有作为所述标识信息的VXLAN_ID。

9.根据权利要求8所述的装置,其特征在于,所述确定模块具体用于,从所述PPPOE报文的报文头的VXLAN_ID字段中获取发送所述待转发报文的下行VXLAN隧道的VXLAN_ID;根据获取的所述下行VXLAN隧道的VXLAN_ID,确定发送所述待转发报文的下行VXLAN隧道。

10.根据权利要求7所述的装置,其特征在于,所述生成模块具体用于,从所述VXLAN封装报文中获取发送所述VXLAN封装报文的上行VXLAN隧道对应的VXLAN_ID,并将所述VXLAN封装报文进行拆封,得到原始PPPOE报文;将原始PPPOE报文的报文头中的代码CODE字段中的内容移动至类型TYPE字段中,并在CODE字段中记录与所述VXLAN_ID预设有对应关系且作为标识信息的VXLAN网络标识符VNI,生成PPPOE报文。

11.根据权利要求10所述的装置,其特征在于,所述确定模块具体用于,根据PPPOE报文的报文头中的VNI以及预设的VNI与VXLAN_ID的对应关系,获取发送所述待转发报文的下行VXLAN隧道的VXLAN_ID;根据获取的所述下行VXLAN隧道的VXLAN_ID,确定发送所述待转发报文的下行VXLAN隧道。

12.根据权利要求8或10所述的装置,其特征在于,所述装置还包括:封装模块,用于将所述PPPOE报文还原为原始PPPOE报文,并根据所述下行VXLAN隧道的VXLAN_ID,对所述原始PPPOE报文进行隧道封装,然后触发发送模块。

13.一种汇聚交换机,位于数据中心侧,其特征在于,所述汇聚交换机包括如权利要求7~12任一项所述的报文传输的装置。

说明书 :

一种报文传输的方法、装置及汇聚交换机

技术领域

[0001] 本发明涉及通信技术领域,尤其是涉及一种报文传输的方法、装置及汇聚交换机。

背景技术

[0002] 目前,家庭宽带用户接入通常采用以太网上承载的点对点PPPOE协议作为接入协议,采用宽带远程接入服务器BRAS作为宽带接入设备,以实现用户的认证、计费控制等功能。通常的家庭宽带组网结构如图1所示。
[0003] 但是随着网络功能虚拟化NFV和软件定义网路SDN等新技术的出现,用于宽带用户接入的BRAS设备出现了新的虚拟化形态的设备即宽带远程接入服务器虚拟化VBRAS设备。VBRAS可基于通用的x86硬件运行支持BRAS相关功能的软件来实现宽带用户的认证接入控制,并且能够借助云计算的优势实现灵活的部署和调度。其中,VBRAS一种比较常见的部署方式是集中部署在城域核心的数据中心,并利用VXLAN交换机实现用户流量的引流,该VBRAS的组网结构如图2所示。但是,当VBRAS集中部署到数据中心之后,数据中心侧的VXLAN汇聚交互机需要学习大量的用户介质访问控制MAC地址,由于VXLAN汇聚交换机的MAC地址表项大小有限,因此VXLAN汇聚交互机的MAC地址表项成为VBRAS集中部署后的用户规模瓶颈,即MAC地址表项影响了VBRAS引入后能支撑的用户规模。例如,高端三层交换机MAC表容量较高的能达到128k,仅能支撑13万用户接入,而这样的用户规模仅适用于中小型城域网(大型城域网用户数会达到100万)。

发明内容

[0004] 为了解决VBRAS部署在数据中心后,由于VXLAN汇聚交换机的MAC地址表项瓶颈导致的支撑用户规模较小的问题,本发明提供了一种报文传输的方法、装置及汇聚交换机。
[0005] 为了解决上述技术问题,本发明提供了一种报文传输的方法,该方法包括:
[0006] 接收并判断待转发报文的类型;
[0007] 若所述待转发报文为虚拟可扩展局域网VXLAN封装报文,则将所述VXLAN封装报文生成以太网承载的点对点协议PPPOE报文,其中,所述PPPOE报文的报文头中记录有与发送所述待转发报文的VXLAN隧道对应的标识信息;
[0008] 若所述待转发报文为PPPOE报文,则根据所述PPPOE报文的报文头中记录的与发送所述待转发报文的VXLAN隧道对应的标识信息,确定发送所述待转发报文的下行VXLAN隧道;根据确定的所述下行VXLAN隧道,发送所述待转发报文。
[0009] 可选的,所述将所述VXLAN封装报文生成以太网承载的点对点协议PPPOE报文,包括:从所述VXLAN封装报文中获取发送所述VXLAN封装报文的上行VXLAN隧道的标识VXLAN_ID,并将所述VXLAN封装报文进行拆封,得到原始PPPOE报文;在所述原始PPPOE报文的报文头内添加VXLAN_ID字段,生成PPPOE报文,其中,所述VXLAN_ID字段中记录有作为所述标识信息的VXLAN_ID。
[0010] 可选的,所述根据所述PPPOE报文的报文头中记录的与发送所述待转发报文的VXLAN隧道对应的标识信息,确定发送所述待转发报文的下行VXLAN隧道,包括:从所述PPPOE报文的报文头的VXLAN_ID字段中获取发送所述待转发报文的下行VXLAN隧道的VXLAN_ID;根据获取的所述下行VXLAN隧道的VXLAN_ID,确定发送所述待转发报文的下行VXLAN隧道。
[0011] 可选的,所述将所述VXLAN封装报文生成以太网承载的点对点协议PPPOE报文,包括:从所述VXLAN封装报文中获取发送所述VXLAN封装报文的上行VXLAN隧道对应的VXLAN_ID,并将所述VXLAN封装报文进行拆封,得到原始PPPOE报文;将原始PPPOE报文的报文头中的代码CODE字段中的内容移动至类型TYPE字段中,并在CODE字段中记录与所述VXLAN_ID预设有对应关系的且作为标识信息的VXLAN网络标识符VNI,生成PPPOE报文。
[0012] 可选的,所述根据所述PPPOE报文的报文头中记录的与发送所述待转发报文的VXLAN隧道对应的标识信息,确定发送所述待转发报文的下行VXLAN隧道,包括:根据PPPOE报文的报文头中的VNI以及预设的VNI与VXLAN_ID的对应关系,获取发送所述待转发报文的下行VXLAN隧道的VXLAN_ID;根据获取的所述下行VXLAN隧道的VXLAN_ID,确定发送所述待转发报文的下行VXLAN隧道。
[0013] 可选的,在所述根据所述PPPOE报文的报文头中记录的与发送所述待转发报文的VXLAN隧道对应的标识信息,确定发送所述待转发报文的下行VXLAN隧道之后,所述方法还包括:将所述PPPOE报文还原为原始PPPOE报文,并根据所述下行VXLAN隧道的VXLAN_ID,对所述原始PPPOE报文进行隧道封装,然后进入根据确定的所述下行VXLAN隧道,发送所述待转发报文的步骤。
[0014] 依据本发明的另一个方面,本发明还提供了一种报文传输的装置,应用于数据中心侧的汇聚交换机,该装置包括:
[0015] 判断模块,用于接收并判断待转发报文的类型;
[0016] 生成模块,用于若所述待转发报文为虚拟可扩展局域网VXLAN封装报文,则将所述VXLAN封装报文生成以太网承载的点对点协议PPPOE报文,其中,所述PPPOE报文的报文头中记录有与发送所述待转发报文的VXLAN隧道对应的标识信息;
[0017] 确定模块,用于若所述待转发报文为PPPOE报文,则根据所述PPPOE报文的报文头中记录的与发送所述待转发报文的VXLAN隧道对应的标识信息,确定发送所述待转发报文的下行VXLAN隧道;发送模块,用于根据确定的所述下行VXLAN隧道,发送所述待转发报文。
[0018] 可选的,所述生成模块具体用于,从所述VXLAN封装报文中获取发送所述VXLAN封装报文的上行VXLAN隧道的标识VXLAN_ID,并将所述VXLAN封装报文进行拆封,得到原始PPPOE报文;在所述原始PPPOE报文的报文头内添加VXLAN_ID字段,生成PPPOE报文,其中,所述VXLAN_ID字段中记录有作为所述标识信息的VXLAN_ID。
[0019] 可选的,所述确定模块具体用于,从所述PPPOE报文的报文头的VXLAN_ID字段中获取发送所述待转发报文的下行VXLAN隧道的VXLAN_ID;根据获取的所述下行VXLAN隧道的VXLAN_ID,确定发送所述待转发报文的下行VXLAN隧道。
[0020] 可选的,所述生成模块具体用于,从所述VXLAN封装报文中获取发送所述VXLAN封装报文的上行VXLAN隧道对应的VXLAN_ID,并将所述VXLAN封装报文进行拆封,得到原始PPPOE报文;将原始PPPOE报文的报文头中的代码CODE字段中的内容移动至类型TYPE字段中,并在CODE字段中记录与所述VXLAN_ID预设有对应关系的且作为标识信息的VXLAN网络标识符VNI,生成PPPOE报文。
[0021] 可选的,所述确定模块具体用于,根据PPPOE报文的报文头中的VNI以及预设的VNI与VXLAN_ID的对应关系,获取发送所述待转发报文的下行VXLAN隧道的VXLAN_ID;根据获取的所述下行VXLAN隧道的VXLAN_ID,确定发送所述待转发报文的下行VXLAN隧道。
[0022] 可选的,所述装置还包括:封装模块,用于将所述PPPOE报文还原为原始PPPOE报文,并根据所述下行VXLAN隧道的VXLAN_ID,对所述原始PPPOE报文进行隧道封装,然后触发发送模块。
[0023] 依据本发明的另一个方面,本发明还提供了一种汇聚交换机,该汇聚交换机包括以上的报文传输的装置。
[0024] 本发明的有益效果是:
[0025] 本发明提供的报文传输的方法,能够根据待转发报文的类型对待转发报文进行不同的操作,其中,若待转发报文为VXLAN封装报文,则将VXLAN封装报文生成PPPOE报文,该PPPOE报文的报文头中记录有与发送待转发报文的VXLAN隧道对应的标识信息。若待转发报文为PPPOE报文,则根据该PPPOE报文的报文头中记录的与发送待转发报文的VXLAN隧道对应的标识信息,确定发送待转发报文的下行VXLAN隧道。本发明能够根据PPPOE报文的报文头中记录的与发送待转发报文的VXLAN隧道对应的标识信息,直接确定待转发报文的下行隧道,解决了VBRAS部署在数据中心后,VXLAN汇聚交换机在学习用户的MAC地址转发待转发报文时,由于MAC地址表项瓶颈导致的支撑用户规模较小的问题,在保证了用户数据正常引流的同时,扩大了能够支撑的用户规模。

附图说明

[0026] 图1表示现有技术中的家庭宽带组网;
[0027] 图2表示VBRAS的组网结构;
[0028] 图3表示本发明的第一实施例中报文传输的方法的步骤流程图;
[0029] 图4表示本发明的第二实施例中报文传输的方法的步骤流程图;
[0030] 图5表示原始PPPOE报文的报文头的结构示意图;
[0031] 图6表示添加VXLAN_ID字段后的PPPOE报文的报文头的结构示意图;
[0032] 图7表示本发明的第三实施例中报文传输的方法的步骤流程图;
[0033] 图8表示原始PPPOE报文的报文头中TYPE字段和CODE字段的示意图;
[0034] 图9表示PPPOE报文的报文头中TYPE字段和CODE字段的示意图;
[0035] 图10表示本发明的第四实施例中报文传输的装置的结构框图。

具体实施方式

[0036] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0037] 第一实施例:
[0038] 如图3所示,为本发明的第一实施例中报文传输的方法的步骤流程图,该方法包括如下步骤:
[0039] 步骤101,接收并判断待转发报文的类型。
[0040] 在本步骤中,在接收到待转发报文之后判断待转发报文的类型。具体的,待转发报文的类型可以为通过上行VXLAN隧道发送的VXLAN封装报文或者为需要通过下行VXLAN隧道转发给用户侧的PPPOE报文。其中,若待转发报文为VXLAN封装报文则进入步骤102,若待转发报文为PPPOE报文,则进入步骤103。
[0041] 步骤102,将VXLAN封装报文生成PPPOE报文。
[0042] 在本步骤中,具体的,若接收到的待转发报文的类型为VXLAN封装报文,则将VXLAN封装报文生成PPPOE报文,其中,该PPPOE报文的报文头中记录有与发送待转发报文的VXLAN隧道对应的标识信息。该标识信息能够使得从PPPOE报文的报文头中直接查找到发送待转发报文的VXLAN隧道。具体的,该标识信息可以为VXLAN隧道的标识VXLAN_ID,也可以为VXLAN隧道的网络标识符VNI。
[0043] 步骤103,根据PPPOE报文的报文头中记录的与发送待转发报文的VXLAN隧道对应的标识信息,确定发送待转发报文的下行VXLAN隧道。
[0044] 在本步骤中,若接收到的待转发报文为PPPOE报文,则根据PPPOE报文的报文头中记录的与发送待转发报文的VXLAN隧道对应的标识信息,确定发送待转发报文的下行VXLAN隧道。具体的,由于PPPOE报文的报文头中记录有与发送待转发报文的VXLAN隧道对应的标识信息,因此可以直接从PPPOE报文的报文头中确定发送待转发报文的下行VXLAN隧道。
[0045] 具体的,在确定发送待转发报文的下行VXLAN隧道之后,可以根据确定的下行VXLAN隧道,发送待转发报文。
[0046] 在本实施例中,能够根据待转发报文的类型对待转发报文进行不同的操作,其中,若待转发报文为VXLAN封装报文,则将VXLAN封装报文生成PPPOE报文,该PPPOE报文的报文头中记录有与发送待转发报文的VXLAN隧道对应的标识信息。若待转发报文为PPPOE报文,则根据该PPPOE报文的报文头中记录的与发送待转发报文的VXLAN隧道对应的标识信息,确定发送待转发报文的下行VXLAN隧道。本实施例能够根据PPPOE报文的报文头中记录的与发送待转发报文的VXLAN隧道对应的标识信息,直接确定待转发报文的下行隧道,解决了VBRAS部署在数据中心后,VXLAN汇聚交换机需要学习用户的MAC地址转发待转发报文,且由于MAC地址表项瓶颈导致的支撑用户规模较小的问题,在保证了用户数据正常引流的同时,扩大了能够支撑的用户规模。
[0047] 第二实施例:
[0048] 如图4所示,为本发明的第二实施例中报文传输的方法的步骤流程图,该方法包括:
[0049] 步骤201,接收并判断待转发报文的类型。
[0050] 在本步骤中,在接收到待转发报文之后判断待转发报文的类型。具体的,待转发报文的类型可以为通过上行VXLAN隧道发送的VXLAN封装报文或者为需要通过下行VXLAN隧道转发给用户侧的PPPOE报文。其中,若待转发报文为VXLAN封装报文,则进入步骤202,若待转发报文为PPPOE报文,则进入步骤204。
[0051] 步骤202,从VXLAN封装报文中获取发送VXLAN封装报文的上行VXLAN隧道的标识VXLAN_ID,并将VXLAN封装报文进行拆封,得到原始PPPOE报文。
[0052] 在本步骤中,若接收到的待转发报文为从上行VXLAN隧道发送的VXLAN封装报文,则首先检查该VXLAN封装报文的VXLAN_ID,并从该VXLAN封装报文中获取发送该VXLAN封装报文的上行VXLAN隧道的VXLAN_ID,然后将该VXLAN封装报文进行拆封,得到拆封后的原始PPPOE报文。在此需要说明的是,如图5所示,为原始PPPOE报文的报文头的结构示意图,从图5中可以看出,原始PPPOE报文并没有记录有VXLAN隧道的标识信息。
[0053] 步骤203,在原始PPPOE报文的报文头内添加VXLAN_ID字段,生成PPPOE报文。
[0054] 在本步骤中,在获取到原始PPPOE报文之后,可以在原始PPPOE报文的报文头内添加VXLAN_ID字段,生成PPPOE报文。具体的,VXLAN_ID字段中记录有作为VXLAN隧道的标识信息的VXLAN_ID,以使得能够从生成后的PPPOE报文的报文头中直接获取发送待转发报文的VXLAN隧道的VXLAN_ID。其中,如图6所示,为添加VXLAN_ID字段后的PPPOE报文的报文头的结构示意图,从图6可以看出,PPPOE报文的报文头中增加了长度为24bit的VXLAN_ID字段。
[0055] 步骤204,从PPPOE报文的报文头的VXLAN_ID字段中获取发送待转发报文的下行VXLAN隧道的VXLAN_ID。
[0056] 在本步骤中,具体的,若接收到的待转发报文为需要通过下行VXLAN隧道发送给用户侧的PPPOE报文,由于PPPOE报文的报文头中包括记录有作为VXLAN隧道标识信息的VXLAN_ID的VXLAN_ID字段,因此可以直接从PPPOE报文的报文头的VXLAN_ID字段中获取发送待转发报文的下行VXLAN隧道的VXLAN_ID。
[0057] 步骤205,根据获取的下行VXLAN隧道的VXLAN_ID,确定发送待转发报文的下行VXLAN隧道。
[0058] 在本步骤中,具体的,由于VXLAN隧道具有唯一的VXLAN_ID,因此在获取到发送待转发报文的下行VXLAN隧道的VXLAN_ID之后,可以根据下行VXLAN隧道的VXLAN_ID确定发送待转发报文的下行VXLAN隧道,以使得PPPOE报文可以通过该下行VXLAN隧道转发至用户侧。
[0059] 步骤206,将PPPOE报文还原为原始PPPOE报文,并根据下行VXLAN隧道的VXLAN_ID,对原始PPPOE报文进行隧道封装。
[0060] 在本步骤中,具体的,由于用户侧不能识别添加有VXLAN_ID字段的PPPOE报文,因此在根据获取的VXLAN_ID确定发送待转发报文的下行VXLAN隧道之后,需要将PPPOE报文还原为原始PPPOE报文,即将添加的VXLAN_ID字段进行删除。此外,在将PPPOE报文还原为原始PPPOE报文之后,由于需要通过VXLAN隧道进行发送,因此需要根据下行隧道的VXLAN_ID对原始PPPOE报文进行隧道封装。具体的,在对原始PPPOE报文进行隧道封装后,可以根据确定的下行VXLAN隧道发送封装后的待转发报文。
[0061] 在本实施例中,在接收并拆封VXLAN封装报文得到原始PPPOE报文之后,在原始PPPOE报文的报文头中增加记录有VXLAN隧道的标识信息VXLAN_ID的VXLAN_ID字段以生成PPPOE报文,从而使得在接收到为PPPOE报文的待转发报文时,能够直接根据PPPOE报文的报文头中的VXLAN_ID字段对待转发报文进行转发。本实施例使得待转发报文的转发不再需要MAC地址表项的支撑,解决了VBRAS部署在数据中心后,VXLAN汇聚交换机需要学习用户的MAC地址转发待转发报文,且由于MAC地址表项瓶颈导致的支撑用户规模较小的问题。此外,由于VXLAN_ID字段中直接记录有VXLAN隧道的VXLAN_ID,因此在根据PPPOE报文的报文头中的VXLAN_ID字段进行转发时,可以使得支持的用户规模接近于无限,在保证了用户数据正常引流的同时,很大程度上扩展了能够支撑的用户规模。
[0062] 第三实施例:
[0063] 如图7所示,为本发明的第三实施例中报文传输的方法的步骤流程图,该方法包括:
[0064] 步骤301,接收并判断待转发报文的类型。
[0065] 在本步骤中,在接收到待转发报文之后判断待转发报文的类型。具体的,待转发报文的类型可以为通过上行VXLAN隧道发送的VXLAN封装报文或者为需要通过下行VXLAN隧道转发给用户侧的PPPOE报文。其中,若待转发报文为VXLAN封装报文,则进入步骤302,若待转发报文为PPPOE报文,则进入步骤304。
[0066] 步骤302,从VXLAN封装报文中获取发送VXLAN封装报文的上行VXLAN隧道对应的VXLAN_ID,并将VXLAN封装报文进行拆封,得到原始PPPOE报文。
[0067] 在本步骤中,若接收到的待转发报文为从上行VXLAN隧道发送的VXLAN封装报文,则首先检查该VXLAN封装报文的VXLAN_ID,并从该VXLAN封装报文中获取发送该VXLAN封装报文的上行VXLAN隧道的VXLAN_ID,然后将该VXLAN封装报文进行拆封,得到拆封后的原始PPPOE报文。在此需要说明的是,如图5所示,为原始PPPOE报文的报文头的结构示意图,从图5中可以看出,原始PPPOE报文并没有记录有VXLAN隧道的标识信息。
[0068] 步骤303,将原始PPPOE报文的报文头中的代码CODE字段中的内容移动至类型TYPE字段中,并在CODE字段中记录与VXLAN_ID预设有对应关系的且作为标识信息的VXLAN网络标识符VNI,生成PPPOE报文。
[0069] 在本步骤中,在获取到原始PPPOE报文之后,可以将原始PPPOE报文的报文头中的CODE字段中的内容移动至TYPE字段中,并在CODE字段中记录与VXLAN_ID预设有对应关系的且作为标识信息的VNI,生成PPPOE报文。
[0070] 具体的,在CODE字段中记录VNI之前,可以先为PPPOE报文的报文头分配VNI,然后建立VNI与VXLAN_ID的对应关系表。具体的,如图8所示,为原始PPPOE报文的报文头中TYPE字段和CODE字段的示意图,如图9所示,为PPPOE报文的报文头中TYPE字段和CODE字段的示意图。从图8和图9的对比中可以看出,TYPE字段的值从原始PPPOE报文的报文头中的值0×01变化为PPPOE报文的报文头中的值0×02,并且原始PPPOE报文的报文头的CODE字段中记录的内容变更为VNI。
[0071] 此外,由于CODE字段的长度为8bit,因此CODE字段可以支撑0~255的256个取值,因此可以支持标识256条VXLAN隧道。通常情况下,一条VXLAN隧道对应一个VXLAN接入节点,假如一个VXLAN接入节点可以支撑一万用户,那么256条VXLAN隧道则可以支撑256万用户。从用户规模上可以看出,在CODE字段中记录VNI完成能够满足现在网络的需求。
[0072] 步骤304,根据PPPOE报文的报文头中的VNI以及预设的VNI与VXLAN_ID的对应关系,获取发送待转发报文的下行VXLAN隧道的VXLAN_ID。
[0073] 在本步骤中,具体的,若接收到的待转发报文为需要通过下行VXLAN隧道发送给用户侧的PPPOE报文,由于PPPOE报文的报文头的CODE字段中记录有与VXLAN_ID预设有对应关系的VNI,因此可以直接根据PPPOE报文的报文头中的VNI以及预设的VNI与VXLAN_ID的对应关系,获取发送待转发报文的下行VXLAN隧道的VXLAN_ID。
[0074] 步骤305,根据获取的下行VXLAN隧道的VXLAN_ID,确定发送待转发报文的下行VXLAN隧道。
[0075] 在本步骤中,具体的,由于VXLAN隧道具有唯一的VXLAN_ID,因此在根据VNI和VXLAN_ID的对应关系获取到发送待转发报文的下行VXLAN隧道的VXLAN_ID之后,可以根据下行VXLAN隧道的VXLAN_ID确定发送待转发报文的下行VXLAN隧道,以使得PPPOE报文可以通过该下行VXLAN隧道转发至用户侧。
[0076] 步骤306,将PPPOE报文还原为原始PPPOE报文,并根据下行VXLAN隧道的VXLAN_ID,对原始PPPOE报文进行隧道封装。
[0077] 在本步骤中,具体的,由于用户侧不能识别改变TYPE字段和CODE字段后的PPPOE报文,因此在根据获取的VXLAN_ID确定发送待转发报文的下行VXLAN隧道之后,需要将PPPOE报文还原为原始PPPOE报文,即将TYPE字段和CODE字段进行还原。此外,在将PPPOE报文还原为原始PPPOE报文之后,由于需要通过VXLAN隧道进行发送,因此需要根据下行隧道的VXLAN_ID对原始PPPOE报文进行隧道封装。具体的,在对原始PPPOE报文进行隧道封装后,可以根据确定的下行VXLAN隧道发送封装后的待转发报文。
[0078] 在本实施例中,在接收并拆封VXLAN封装报文得到原始PPPOE报文之后,对原始PPPOE报文的报文头的TYPE字段和CODE字段进行重定义,即将CODE字段中的内容移动至TYPE字段中,并在CODE字段中记录与VXLAN_ID预设有对应关系的且作为VXLAN隧道标识信息的VNI,从而使得在接收到为PPPOE报文的待转发报文时,能够根据PPPOE报文的报文头中CODE字段记录的VNI和预设的VNI和的对应关系,获取下行VXLAN隧道的VXLAN_ID,并根据获取的VXLAN_ID进行转发。此外,由于CODE字段的长度为8bit,因此CODE字段可以支撑0~255的256个取值,因此可以支持标识256条VXLAN隧道,在保证了用户数据正常引流的同时,很大程度上扩展了能够支撑的用户规模。
[0079] 第四实施例:
[0080] 如图10所示,为本发明的第四实施例中报文传输的装置的结构框图。该装置应用于数据中心侧的汇聚交换机,该装置400包括:
[0081] 判断模块401,用于接收并判断待转发报文的类型;
[0082] 生成模块402,用于若待转发报文为虚拟可扩展局域网VXLAN封装报文,则将VXLAN封装报文生成以太网承载的点对点协议PPPOE报文,其中,PPPOE报文的报文头中记录有与发送待转发报文的VXLAN隧道对应的标识信息;
[0083] 确定模块403,用于若待转发报文为PPPOE报文,则根据PPPOE报文的报文头中记录的与发送待转发报文的VXLAN隧道对应的标识信息,确定发送待转发报文的下行VXLAN隧道;发送模块405,用于根据确定的下行VXLAN隧道,发送待转发报文。
[0084] 可选的,生成模块402具体用于,从VXLAN封装报文中获取发送VXLAN封装报文的上行VXLAN隧道的标识VXLAN_ID,并将VXLAN封装报文进行拆封,得到原始PPPOE报文;在原始PPPOE报文的报文头内添加VXLAN_ID字段,生成PPPOE报文,其中,VXLAN_ID字段中记录有作为标识信息的VXLAN_ID。
[0085] 可选的,确定模块403具体用于,从PPPOE报文的报文头的VXLAN_ID字段中获取发送待转发报文的下行VXLAN隧道的VXLAN_ID;根据获取的下行VXLAN隧道的VXLAN_ID,确定发送待转发报文的下行VXLAN隧道。
[0086] 可选的,生成模块402具体用于,从VXLAN封装报文中获取发送VXLAN封装报文的上行VXLAN隧道对应的VXLAN_ID,并将VXLAN封装报文进行拆封,得到原始PPPOE报文;将原始PPPOE报文的报文头中的代码CODE字段中的内容移动至类型TYPE字段中,并在CODE字段中记录与VXLAN_ID预设有对应关系的且作为标识信息的VXLAN网络标识符VNI,生成PPPOE报文。
[0087] 可选的,确定模块403具体用于,根据PPPOE报文的报文头中的VNI以及预设的VNI与VXLAN_ID的对应关系,获取发送待转发报文的下行VXLAN隧道的VXLAN_ID;根据获取的下行VXLAN隧道的VXLAN_ID,确定发送待转发报文的下行VXLAN隧道。
[0088] 可选的,装置还包括:封装模块404,用于将PPPOE报文还原为原始PPPOE报文,并根据下行VXLAN隧道的VXLAN_ID,对原始PPPOE报文进行隧道封装,然后触发发送模块405。
[0089] 在本发明的另一个实施例中,本发明还提供了一种汇聚交换机,该汇聚交换机包括以上的报文传输的装置400。
[0090] 以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。