本申请涉及网络通信技术,特别涉及从虚拟可扩展局域网(VXLAN:Virtual eXtensible Local Access Network)至虚拟局域网(VLAN:Virtual Local Access Network)的组播数据报文转发方法和设备。
背景技术:
目前,网关节点的硬件交换芯片即使支持三层组播转发,硬件交换芯片的转发逻辑也不允许三层组播转发,只能进行二层组播转发。
比如,图1所示的组网,PC发送的组播数据报文在非网关节点进行VXLAN封装到达网关节点后,网关节点对组播数据报文进行VXLAN解封装,发现组播数据报文的目的MAC地址是组播MAC地址,且组播数据报文的目的IP地址是组播IP地址,按照正常的处理方式,网关节点会对VXLAN解封装后的组播数据报文进行三层组播复制转发,但限于网关节点上硬件交换芯片的转发逻辑,即使网关节点的硬件交换芯片支持三层组播转发,也不能实现三层组播转发,只能对VXLAN解封装后的组播数据报文进行二层转发。
因此,在VXLAN交换机上实现VXLAN的三层网关功能以实现跨从VXLAN至VLAN的三层组播数据报文转发是当前亟待解决的技术问题。
技术实现要素:
本申请提供了从VXLAN至VLAN的组播数据报文转发方法和设备,用于在作为网关的VXLAN交换机上实现VXLAN的三层网关功能,以实现从VXLAN至VLAN的组播数据报文转发。
本申请提供的技术方案包括:
一种从虚拟可扩展局域网VXLAN至虚拟局域网VLAN的组播数据报文转发方法,该方法包括:
VXLAN交换机的接口板接收VXLAN封装的组播数据报文,对组播数据报文进行VXLAN解封装,确定VXLAN解封装后的组播数据报文进行三层组播转发,则将VXLAN解封装后的组播数据报文发送至所述VXLAN交换机的网板;
所述VXLAN交换机的网板接收接口板发送的组播数据报文,确定接收的组播数据报文由本网板进行三层组播转发,则在本网板本地的三层组播组表中查找到与组播数据报文的目的IP地址和目的MAC地址匹配的三层组播组表项,在所述三层组播组表项中的组播组成员端口为VLAN端口时,向所述VXLAN交换机上的每一块接口板发送接收的组播数据报文;
所述VXLAN交换机上的每一块接口板接收网板发送的组播数据报文,依据本地三层组播组表中存在的用于转发该接收的组播数据报文的三层组播组表项向VLAN转发该接收的组播数据报文。
一种从虚拟可扩展局域网VXLAN至虚拟局域网VLAN的组播数据报文转发设备,该设备包括:
接口板处理单元,处于所述VXLAN交换机的接口板,用于接收VXLAN封装的组播数据报文,对组播数据报文进行VXLAN解封装,确定VXLAN解封装后的组播数据报文进行三层组播转发,则将VXLAN解封装后的组播数据报文发送至所述VXLAN交换机的网板;以及,接收网板发送的组播数据报文,依据本地三层组播组表中存在的用于转发该接收的组播数据报文的三层组播组表项向VLAN转发该接收的组播数据报文;
网板处理单元,处于所述VXLAN交换机的网板,用于接收接口板发送的组播数据报文,确定接收的组播数据报文由本网板进行三层组播转发,则在本网板本地的三层组播组表中查找到与组播数据报文的目的IP地址和目的MAC地址匹配的三层组播组表项,在所述三层组播组表项中的组播组成 员端口为VLAN端口时,向所述VXLAN交换机上的每一块接口板发送接收的组播数据报文。
由以上技术方案可以看出,本发明中,作为网关的VXLAN交换机,当通过接口板接收到VXLAN封装的组播数据报文,对组播数据报文进行VXLAN解封装,确定VXLAN解封装后的组播数据报文进行三层组播转发,则将VXLAN解封装后的组播数据报文发送至所述VXLAN交换机的网板;之后,在网板本地的三层组播组表中查找到与组播数据报文的目的IP地址和目的MAC地址匹配的三层组播组表项,在所述三层组播组表项中的组播组成员端口为VLAN端口时,向所述VXLAN交换机上的每一块接口板发送接收的组播数据报文以由接口板依据本地存在的用于转发组播数据报文的三层组播组表项向VLAN转发接收的组播数据报文,即本发明通过网关VXLAN交换机实现了VXLAN的三层网关功能,实现从VXLAN至VLAN的组播数据报文转发,且整个过程只是在作为网关的VXLAN交换机内部执行,没有浪费任何带宽资源,做到了组播数据报文线速转发的目的。
附图说明
图1为现有跨网络转发的应用组网图;
图2为本发明提供的方法流程图;
图3为本发明提供的实施例应用图;
图4为本发明提供的设备结构图;
图5为本发明提供的图4所示设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
一般的框式交换机由主控板(main board)、接口板(I/O board)、网板 (fabric board)组成。主控板为用于实现协议栈计算、转发表项下发及控制、设备管理的单板。接口板为用于实现数据报文转发(包括内部转发和外部转发)的单板。网板为用于实现数据报文及控制报文在设备内部跨板、跨芯片转发的单板。其中,网板上的芯片只具有报文转发功能,用于在不同接口板之间中转报文。
VXLAN交换机的结构与现有框式交换机的结构一样,由主控板、接口板、网板组成。在通常的应用中,接口板的个数大于1。
在VXLAN应用中,VXLAN交换机的网板与现有框式交换机的网板一样设置,网板上的芯片只具有报文转发功能,仅负责在不同接口板之间中转报文。
本发明中,为了实现VXLAN的三层网关功能,可选择其中一个VXLAN交换机作为网关,对作为网关的VXLAN交换机(简称网关VXLAN交换机)进行改进,而对不作为网关的VXLAN交换机,可不作任何改进,仍按照现有的结构执行。
其中,对网关VXLAN交换机进行的改进包括:
网关VXLAN交换机的网板采用具有转发功能和表项功能的芯片,这里的表项功能至少包含接收并保存主控板下发的表项、表项查找等功能。优选地,作为一种较佳实施例,这里网板采用的芯片可以为网关VXLAN交换机的接口板所采用的交换芯片。
当网关VXLAN交换机的网板采用具有转发功能和表项功能的芯片,这样,进入VXLAN交换机的组播数据报文可以通过VXLAN交换机的接口板和网板相互合作完成三层转发。下面通过图2对本发明提供的方法进行描述:
参见图2,图2为本发明提供的方法流程图。该方法应用于网关VXLAN交换机。如上所述,网关VXLAN交换机的网板不再采用仅具有报文转发功能的芯片,而是采用具有转发功能和表项功能的芯片比如与接口板相同的交换芯片。基于此,如图2所示,该流程可包括以下步骤:
步骤201,网关VXLAN交换机的接口板接收VXLAN封装的组播数据报文,对组播数据报文进行VXLAN解封装,确定VXLAN解封装后的组播数据报文进行三层组播转发,则将VXLAN解封装后的组播数据报文发送至网关VXLAN交换机的网板。
优选地,在步骤201中,网关VXLAN交换机的接口板在对组播数据报文进行VXLAN解封装之前,可进一步执行以下步骤:从组播数据报文的VXLAN封装头中识别出虚拟网络标识(VNID);
基于此,作为一个优选实施例,步骤201中,网关VXLAN交换机的接口板可基于该识别出的VNID确定VXLAN解封装后的组播数据报文进行三层组播转发,具体可包括:
从本接口板本地的MAC表中查找与所述VNID和所述VXLAN解封装后的组播数据报文的目的MAC地址匹配的MAC表项,如果查找到,则,
当查找到的所述MAC表项的出接口为第一虚拟端口,且所述VXLAN解封装后的组播数据报文的目的MAC地址为组播MAC地址、目的IP地址为组播IP地址,则确定VXLAN解封装后的组播数据报文进行三层组播转发。
这里,第一虚拟端口所表示的意义在下文进行了描述,这里暂不赘述。
作为本发明的一个实施例,当上述查找到的MAC表项的出接口不为第一虚拟端口,则在VXLAN解封装后的组播数据报文的目的MAC地址为组播MAC地址、目的IP地址为组播IP地址时,可按照普通的二层组播数据报文转发的方式转发所述VXLAN解封装后的组播数据报文,不再展开描述。
本发明中,接口板本地的MAC表项可以是接口板按照类似现有MAC表项的学习方式学习得到的,也可以是主控板直接配置的,还可以是主控板按照类似现有MAC表项的学习方式学习并下发给本接口板的,本发明并不具体限定。
作为本发明的一个实施例,步骤201中,为了保证VXLAN解封装后的组播数据报文从接口板顺利发送至网板,一种较佳的实现方式是接口板对VXLAN解封装后的组播数据报文进行用于转发至网板的封装,为便于描 述,这里将该内部封装简称为第一内部封装。如此,步骤201中,接口板将VXLAN解封装后的组播数据报文发送至网关VXLAN交换机的网板可包括:
步骤a1,将VXLAN解封装后的组播数据报文进行第一内部封装。
这里,第一内部封装包含:第一目的芯片标识(mod)和第一目的端口标识(port),第一目的mod为第一虚拟芯片的标识,第一目的port为第一虚拟端口的标识;
优选地,作为本发明一个实例,第一虚拟芯片可为预先配置的用于指示网板可继续执行查表进行组播数据报文转发的虚拟芯片,第一虚拟端口可为预先配置的用于指示由网板代理三层组播转发的虚拟端口,这里的代理三层组播转发具体为:继续执行查表进行组播数据报文转发。
步骤a2,在本接口板仅连接一个网板时,通过本接口板连接网板的互连口发送第一内部封装的组播数据报文;在本接口板连接多个网板时,通过与多个网板分别连接的互连口中的一个互连口发送第一内部封装的组播数据报文。
实际应用中,在本接口板连接多个网板时,本接口板与多个网板分别连接的互连口可聚合成一个聚合组。如此,在步骤a2中,通过与多个网板分别连接的互连口中的一个互连口发送第一内部封装的组播数据报文可包括:从所述聚合组中选择一个互连口,通过选择的一个互连口发送第一内部封装的组播数据报文。这里,从所述聚合组中选择一个互连口的方式有多种,比如随机选择一个互连口,或者按照一定的算法比如通过哈希算法选择一个互连口等,本发明并不具体限定。
通过上述步骤a1和步骤a2,网关VXLAN交换机的接口板会将VXLAN解封装后的组播数据报文顺利发送至网关VXLAN交换机的网板。
步骤202,网关VXLAN交换机的网板接收接口板发送的组播数据报文,确定接收的组播数据报文由本网板进行三层组播转发,则在本网板本地的三层组播组表中查找到与组播数据报文的目的IP地址和目的MAC地址匹 配的三层组播组表项,在所述三层组播组表项中的组播组成员端口为VLAN端口时,向所述VXLAN交换机上的每一块接口板发送接收的组播数据报文。
本发明中,VLAN端口具体实现时可为单一的物理端口,也可为至少两个物理端口聚合形成的聚合端口,这里将单一的物理端口、至少两个物理端口聚合形成的聚合端口统称为VLAN端口,只是出于清楚描述的目的,并非限定本申请。
基于上面步骤201描述的第一内部封装,则较佳地,步骤202中,网板确定接收的组播数据报文由本网板进行三层组播转发可包括:
从接收的组播数据报文的第一内部封装头中确定出第一目的mod和第一目的port;如果确定出的第一目的mod为第一虚拟芯片的标识,第一目的port为第一虚拟端口的标识,则对组播数据报文的第一内部封装进行解封装,如果解封装后的组播数据报文的目的MAC地址为组播MAC地址、目的IP地址为组播IP地址,则确定接收的组播数据报文由本网板进行三层组播转发。
作为本发明的一个实施例,则上述中,当确定目的mod不为上述的第一虚拟芯片的标识,和/或目的port不为上述的第一虚拟端口的标识,则可以不对组播数据报文的第一内部封装进行解封装,直接按照第一内部封装的目的port继续转发组播数据报文即可,这类似现有网板转发组播数据报文的方式,不再展开描述。
本步骤202中,网板本地的三层组播组表项可以是主控板按照类似现有三层组播组表项的学习方式学习并下发给网板的,本发明并不具体限定。
本步骤202中,网板向所述VXLAN交换机上的每一块接口板发送接收的组播数据报文包括:
步骤b1,网板对组播数据报文进行第二内部封装。
作为一个优选实施例,第二内部封装可包含:查找到的三层组播组表项 的索引。
步骤b2,网板将第二内部封装的组播数据报文发送至网关VXLAN交换机上的每一块接口板。
作为本发明的一个实施例,步骤b2具体实现时可包括:
网板复制第二内部封装的组播数据报文,复制的组播数据报文的数量N与网关VXLAN交换机上的接口板数量N一致;
网板将复制的N份组播数据报文分别发送给N块接口板。
这里,网板可通过与N块接口板的内部互联端口将N份组播数据报文分别发送给N块接口板。
通过步骤b1至步骤b2的描述可以看出,网关VXLAN交换机上的接口板接收的来自网板的组播数据报文是执行了第二内部封装的组播数据报文。
步骤203,网关VXLAN交换机上的每一块接口板接收网板发送的组播数据报文,依据本地三层组播组表中存在的用于转发该接收的组播数据报文的三层组播组表项向VLAN转发该接收的组播数据报文。
基于上面步骤202限定的网关VXLAN交换机上的网板如何将组播数据报文发送至网关VXLAN交换机上的每一块接口板,则优选地,本步骤203中向VLAN转发组播数据报文可包括:
步骤c1,从组播数据报文的第二内部封装头中确定出三层组播组表项索引并对组播数据报文的第二内部封装进行解封装,将本地三层组播组表中存在的与所述三层组播组表项索引对应的三层组播组表项确定为用于转发解封装后的组播数据报文的三层组播组表项。
步骤c2,依据所述三层组播组表项中组播组成员端口确定目标出端口,将解封装后的组播数据报文的源MAC地址修改为网关VXLAN交换机的网关MAC地址并通过目标出端口转发。
本发明中,从所述三层组播组表项中找到的组播组成员端口为VLAN端口,如上所述的VLAN端口具体实现时可为单一的物理端口,也可为至少两个物理端口聚合形成的聚合端口,基于此,步骤c2中依据所述三层组播组表 项中组播组成员端口确定目标出端口具体实现时可为:
在组播组成员端口为单一的物理端口时,如果该物理端口处于本接口板,则确定该物理端口为目标出端口;
在组播组成员端口为至少两个物理端口聚合形成的聚合端口时,按照设定的端口选择算法从聚合端口中选择一个物理端口,如果选择的物理端口处于本接口板,则确定该选择的物理端口为目标出端口。
本发明中,网关VXLAN交换机上的每一接口板都会配置相同的端口选择算法,也就意味着网关VXLAN交换机上的每一接口板在确定目标出端口时都会按照相同的方式选择物理端口。具体地,每个接口板上可以通过配置相同的哈希算法来选择物理端口,本发明对选择物理端口的算法并不做具体限定,只要能保证每个接口板针对同一聚合端口选择的物理端口为同一个即可。
本发明中,所述三层组播组表项中的组播组成员端口可不止一个,基于此,当所述三层组播组表项中的组播组成员端口数量大于1时,依据所述三层组播组表项中组播组成员端口确定的目标出端口的数量也可能大于1。其中,当确定出的目标出端口的数量大于1时,由于接口板只存在一份解封装后的组播数据报文,基于此,接口板可依据确定出的目标出端口的数量对解封装后且修改完源MAC地址的组播数据报文进行复制,复制的组播数据报文的数量等于确定出的目标出端口的数量,之后,将复制的组播数据报文分配给各个目标出端口,以保证目标出端口都会分配到一份复制的组播数据报文,基于此,上述步骤c2中所述的通过目标出端口发送的解封装后且修改完源MAC地址的组播数据报文实质就为该目标出端口被分配的一份复制的组播数据报文。
本发明中,作为一个实施例,接口板本地的三层组播组表项可以是主控板按照类似现有三层组播组表项的学习方式学习并下发给网板的,本发明并不具体限定。
至此,完成图2所示的流程。
通过图2所示流程可以看出,本发明中,网关VXLAN交换机的网板不再使用仅具有报文转发功能的芯片,而是使用具有转发功能和表项功能的芯片比如与接口板相同的交换芯片,这样,当网关VXLAN交换机通过接口板接收到VXLAN封装的组播数据报文,对组播数据报文进行VXLAN解封装,确定VXLAN解封装后的组播数据报文进行三层组播转发,则将VXLAN解封装后的组播数据报文发送至网关VXLAN交换机的网板;之后,在网板本地的三层组播组表中查找到与组播数据报文的目的IP地址和目的MAC地址匹配的三层组播组表项,在所述三层组播组表项中的组播组成员端口为VLAN端口时,向所述VXLAN交换机上的每一块接口板发送接收的组播数据报文以由接口板依据本地存在的用于转发组播数据报文的三层组播组表项向VLAN转发接收的组播数据报文,即通过网关VXLAN交换机实现了VXLAN的三层网关功能,实现从VXLAN至VLAN的组播数据报文转发,且整个过程只是在网关VXLAN交换机内部执行,没有浪费任何带宽资源,做到了组播数据报文线速转发的目的。
下面通过一个实施例对图2所示流程进行描述:
以图3所示的组网为例,在图3中,物理机(PM:Physical Machine)1至PM5为VLAN中的设备,虚拟机(VM:Virtual Machine)1至VM5为VXLAN中的设备。网关VXLAN交换机连接在VLAN和VXLAN之间,其包含主控板、接口板和网板。主控板在本申请中不重点涉及,图3未示出。网板采用具有转发功能和表项功能的芯片,以与接口板中的交换芯片相同为例。图3仅示出VXLAN交换机的三个接口板为例。
以VM1发送组播数据报文为例,则,
网关VXLAN交换机的接口板1通过连接的端口(图3以端口10为例)收到来自VXLAN中VM1发送的组播数据报文。为便于描述,这里将接口板1接收的组播数据报文称为报文0。接口板1收到的报文0带有VXLAN 封装,该VXLAN封装至少包含VXLAN字段和VXLAN外层头。其中,VXLAN字段包含有VM1所处的VXLAN的VNI(图3以VNID100为例),VXLAN外层头包含外层ETH封装,外层ETH封装以包含外层源MAC地址、外层目的MAC地址、外层源IP地址、外层目的IP地址封装。图3简单示出了带有VXLAN封装的组播数据报文结构。
接口板1从VXLAN封装中获取VNID100,之后对报文0进行VXLAN解封装,为便于描述,这里将VXLAN解封装后的报文0记为报文1;
接口板1使用报文1的目的MAC地址和获取的VNID100作为关键字在本接口板1本地的MAC表项中查找匹配的MAC表项。
接口板1查找到匹配的MAC表项,接口板1发现查找到的MAC表项的出接口为第一虚拟端口、且报文1的目的MAC地址为组播MAC地址、目的IP地址为组播IP地址,则确定报文1需要三层组播转发。
接口板1对报文1进行第一内部封装,第一内部封装的第一目的mod为第一虚拟芯片的标识(图3以chip01为例),第一内部封装的第一目的port为第一虚拟端口的标识(图3以Port1为例)。为便于描述,这里将第一内部封装后的报文1称为报文2。
如图3所示,接口板1通过聚合了互连口11、互连口12、互连口13的聚合组与各网板连接,则接口板1从本接口板1连接各网板的聚合组中选择一个互连口,比如选择图3所示的互连口11将报文2发送至网板1。接口板1选择互连口的方式可预先设置,比如哈希算法,通过对报文2的目的IP地址进行哈希运算,选择编号与哈希运算结果对应的互连口。
网板1接收到报文2,从报文2的第一内部封装头中识别出第一目的mod和第一目的port分别为chip01和Port1,正好依次是第一虚拟芯片的标识和第一虚拟端口的标识,则对报文2的第一内部封装进行解封装(即恢复了上述的报文1)。
网板1识别报文1的目的MAC地址,发现报文1的目的MAC地址为组播MAC地址、目的IP地址为组播IP地址,确定本网板1需要对报文1进 行三层组播转发。
网板1在本网板1本地的三层组播组表中查找到与报文1的目的IP地和目的MAC地址匹配的三层组播组表项。
网板1发现查找到的三层组播组表项中存在四个组播组成员端口。针对每一组播组成员端口,网板1识别该组播组成员端口,发现该组播组成员端口为VLAN端口,网板1对报文1进行第二内部封装,为便于描述,这里将第二内部封装的报文1称为报文3。第二内部封装包含网板1查找到的三层组播组表项的索引。
如图3所示的网关VXLAN交换机,其包含3个接口板,则网板1复制3份报文3,分别为报文31、报文32、报文33。
网板1通过连接接口板1的内部互连口将报文31发送给接口板1,通过连接接口板2的内部互连口将报文32发送给接口板2,通过连接接口板3的内部互连口将报文33发送给接口板3。
以接口板2接收到报文32为例,接口板1接收到报文31、接口板3接收到报文33的原理类似,图3不再一一示出描述,则,
接口板2接收网板发送的报文32,从报文32的第二内部封装头中确定出三层组播组表项索引并对报文32的第二内部封装进行解封装(即恢复了上述的报文1)。
接口板2依据所述三层组播组表项索引在本地三层组播组表中查找到对应的三层组播组表项。
接口板2依据查找到的三层组播组表项中的组播组成员端口确定目标出端口,这里以确定出的目标出端口为接口板2本地的Port221、Port224为例,假如Port221关联的组播组成员为PM2,Port224关联的组播组成员为PM4。
接口板2复制2份报文1,分别记为报文21、报文22。
接口板2将报文21的源MAC地址修改为网关VXLAN交换机的网关MAC地址(这里将源MAC地址修改的报文21记为报文4),接口板2通过Port221发送报文4;
接口板2将报文22的源MAC地址修改为网关VXLAN交换机的网关MAC地址(这里将源MAC地址修改的报文22记为报文5),接口板2通过Port224发送报文5;
最终,PM2、PM4会收到VXLAN中VM1发送的组播数据报文。类似的原理,Port11关联的组播组成员PM1、Port13关联的组播组成员PM3也会收到VM1发送的组播数据报文。即通过网关VXLAN交换机实现了从VXLAN至VLAN的组播数据报文转发。
至此,完成图3所示的流程。
以上对本发明提供的方法进行了描述,下面对本发明提供的设备进行描述:
参见图4,图4为本发明提供的设备结构图。该设备应用于作为网关的VXLAN交换机,所述VXLAN交换机至少由接口板、网板组成,接口板、网板的个数均为1个以上,网板采用具有转发功能和表项功能的芯片,如图4所示,该设备可包括:
接口板处理单元,处于所述VXLAN交换机的接口板,用于接收VXLAN封装的组播数据报文,对组播数据报文进行VXLAN解封装,确定VXLAN解封装后的组播数据报文进行三层组播转发,则将VXLAN解封装后的组播数据报文发送至所述VXLAN交换机的网板;以及,接收网板发送的组播数据报文,依据本地三层组播组表中存在的用于转发该接收的组播数据报文的三层组播组表项向VLAN转发该接收的组播数据报文;
网板处理单元,处于所述VXLAN交换机的网板,用于接收接口板发送的组播数据报文,确定接收的组播数据报文由本网板进行三层组播转发,则在本网板本地的三层组播组表中查找到与组播数据报文的目的IP地址和目的MAC地址匹配的三层组播组表项,在所述三层组播组表项中的组播组成员端口为VLAN端口时,向所述VXLAN交换机上的每一块接口板发送接收的组播数据报文。
优选地,所述接口板处理单元在对组播数据报文进行VXLAN解封装之 前进一步包括:从组播数据报文的VXLAN封装头中识别出VNID;
所述接口板处理单元通过以下步骤确定VXLAN解封装后的组播数据报文进行三层组播转发:从本接口板本地的MAC表中查找到与所述VNID和所述VXLAN解封装后的组播数据报文的目的MAC地址匹配的MAC表项,当所述MAC表项的出接口为第一虚拟端口,且所述VXLAN解封装后的组播数据报文的目的MAC地址为组播MAC地址、目的IP地址为组播IP地址,则确定VXLAN解封装后的组播数据报文进行三层组播转发。
所述接口板处理单元通过以下步骤将VXLAN解封装后的组播数据报文发送至所述VXLAN交换机的网板:
将VXLAN解封装后的组播数据报文进行第一内部封装,第一内部封装包含:第一目的芯片标识mod和第一目的端口标识port,第一目的mod为第一虚拟芯片的标识,第一目的port为第一虚拟端口的标识;
在本接口板仅连接一个网板时,通过本接口板连接网板的互连口发送第一内部封装的组播数据报文;在本接口板连接多个网板时,通过与多个网板分别连接的互连口中的一个互连口发送第一内部封装的组播数据报文;
所述网板处理单元通过以下步骤确定接收的组播数据报文由本网板进行三层组播转发:
从接收的组播数据报文的第一内部封装头中确定出第一目的mod和第一目的port;如果确定出的第一目的mod为第一虚拟芯片的标识,第一目的port为第一虚拟端口的标识,则对组播数据报文的第一内部封装进行解封装,如果解封装后的组播数据报文的目的MAC地址为组播MAC地址、目的IP地址为组播IP地址,则确定接收的组播数据报文由本网板进行三层组播转发。
优选地,所述网板处理单元通过以下步骤向所述VXLAN交换机上的每一块接口板发送接收的组播数据报文:对组播数据报文进行第二内部封装,将第二内部封装的组播数据报文发送至所述VXLAN交换机上的每一块接口板,第二内部封装包含:所述三层组播组表项的索引;
所述接口板处理单元通过以下步骤实现依据本地三层组播组表中存在的 用于转发该接收的组播数据报文的三层组播组表项向VLAN转发该接收的组播数据报文:
从组播数据报文的第二内部封装头中确定出三层组播组表项索引并对组播数据报文的第二内部封装进行解封装,将本地三层组播组表中存在的与所述三层组播组表项索引对应的三层组播组表项确定为用于转发解封装后的组播数据报文的三层组播组表项;
依据所述三层组播组表项中组播组成员端口确定目标出端口,将通过所述目标出端口发送的解封装后的组播数据报文的源MAC地址修改为所述VXLAN交换机的网关MAC地址并通过目标出端口转发。
优选地,所述接口板处理单元通过以下步骤实现依据所述三层组播组表项中组播组成员端口确定目标出端口:
在组播组成员端口为单一的物理端口时,如果该物理端口处于本接口板,则确定该物理端口为目标出端口;
在组播组成员端口为至少两个物理端口聚合形成的聚合端口时,按照设定的端口选择算法从聚合端口中选择一个物理端口,如果选择的物理端口处于本接口板,则确定该选择的物理端口为目标出端口。
至此,完成本发明提供的设备描述。
作为本发明的一个实施例,本发明还提供了图4所示设备的硬件结构图。如图5所示,该设备硬件结构可包括:
接口板和网板。
其中,接口板上可包括:第一CPU和第一存储器。
第一存储器,用于存放接口板处理单元;
第一CPU,用于存放接口板处理单元运行的控制程序,以控制所述第一存储器中的接口板处理单元执行如上所述的操作。至于所述第一存储器中的接口板处理单元执行的操作,其如上述接口板处理单元执行的操作,这里不再赘述。
网板上可包括:第二CPU和第二存储器。
第二存储器,用于存放网板处理单元;
第二CPU,用于存放网板处理单元运行的控制程序,以控制所述第二存储器中的网板处理单元执行操作。至于所述第二存储器中的网板处理单元执行的操作,其如上述网板处理单元执行的操作,这里不再赘述。
至此,完成图5所示的设备硬件结构图。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。