组播报文转发方法和装置与流程

文档序号:14847697发布日期:2018-06-30 16:56阅读:233来源:国知局
组播报文转发方法和装置与流程

本申请涉及网络通信技术,特别涉及组播报文转发方法和装置。



背景技术:

虚拟扩展局域网(VXLAN:Virtual eXtensible Local Area Network),将二层报文用三层协议进行封装,实现二层网络在三层范围内扩展。图1示出了VXLAN网络模型,VXLAN网络中包含:

VXLAN隧道端点(VTEP:VXLAN Tunnel Endpoints),VXLAN网络的边缘设备,是VXLAN隧道的起点和终点,作为VXLAN隧道的起点时,对报文进行VXLAN封装,作为VXLAN隧道的终点时,对经过VXLAN封装的报文进行解封装并处理。

VXLAN网络标识符(VNI:VXLAN Network Identifier)是一种类似于VLAN ID的用户标识,一个VNI代表了一个租户,属于不同VNI的虚拟机之间不能直接进行二层通信。

VXLAN隧道,用来传输经过VXLAN封装的报文的,它是建立在两个VTEP之间的一条虚拟通道。图2示出了VXLAN封装结构示意图。其中,VXLAN封装中外层目的MAC填的是隧道下一跳的MAC,通常是下一跳路由器的MAC,外层目的IP是目的VTEP的IP,源IP地址是本地VTEP的地址,外层UDP的目的端口是一个VXLAN特定的端口。

在VXLAN转发二层已知组播报文过程中,当VTEP对已知组播报文进行VXLAN封装时,如果发现有多条等价隧道下一跳(ECMP:Equal Cost Multiple Path),则VTEP只固定指定其中一条隧道下一跳的MAC为VXLAN封装中的外层目的MAC,无法实现ECMP的负载分担。



技术实现要素:

本申请提供了组播报文转发方法和装置,以实现VXLAN隧道的多隧道下一跳均匀负载分担。

本申请提供的技术方案包括:

一种组播报文转发方法,该方法应用于虚拟扩展局域网VXLAN隧道端点VTEP,包括:

接收已知组播报文;

当确定通过本VTEP至远端VTEP之间的VXLAN隧道转发已知组播报文时,按照均匀负载分担方式从VXLAN隧道的N个隧道下一跳中选择一个隧道下一跳,通过选择的隧道下一跳转发已知组播报文。

一种组播报文转发装置,该装置应用于虚拟扩展局域网VXLAN隧道端点VTEP,包括:

接收单元,用于接收已知组播报文;

转发单元,用于当确定通过本VTEP至远端VTEP之间的VXLAN隧道转发已知组播报文时,按照均匀负载分担方式从VXLAN隧道的N个隧道下一跳中选择一个隧道下一跳,通过选择的隧道下一跳转发已知组播报文。

由以上技术方案可以看出,本发明中,通过按照均匀负载分担方式从VXLAN隧道的N个隧道下一跳中选择一个隧道下一跳,能够最终实现不同的已知组播报文均匀分担到VXLAN隧道的各个隧道下一跳中。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1示出了VXLAN网络模型结构图;

图2示出了VXLAN封装结构示意图;

图3为本发明提供的方法流程图;

图4为本发明提供的实施例示意图;

图5为本发明提供的装置结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

参见图3,图3为本发明提供的方法流程图。该流程应用于VTEP。如图3所示,该流程可包括以下步骤:

步骤301,接收已知组播报文。

步骤302,当确定通过本VTEP至远端VTEP之间的VXLAN隧道转发已知组播报文时,按照均匀负载分担方式从VXLAN隧道的N个隧道下一跳中选择一个隧道下一跳,通过选择的隧道下一跳转发已知组播报文。

作为一个实施例,步骤302中按照均匀负载分担方式从VXLAN隧道的N个隧道下一跳中选择一个隧道下一跳包括:

步骤a1,根据已知组播报文的目的MAC地址和接收已知组播报文的端口对应的虚拟交换接口(VSI:Virtual Switch Interface)标识并使用设定均匀负载分担算法从VXLAN隧道的N个隧道下一跳中选择一个隧道下一跳。

具体地,上述步骤a1在实现时可包括:

步骤a11,将已知组播报文的目的MAC地址中第一指定比特、第二指定比特与VSI标识对应硬件虚拟转发实例VFI标识中的第三指定比特进行设定运算得到第一运算结果;

作为一个实施例,这里的设定运算为异或运算。

步骤a12,将第一运算结果除N取余得到第二运算结果。

步骤a13,从N个隧道下一跳中选择编号与第二运算结果对应的隧道下一跳。

至此,通过上述步骤a11至步骤a13实现了按照均匀负载分担方式从VXLAN隧道的N个隧道下一跳中选择一个隧道下一跳,以实现不同的已知组播报文均匀分担到VXLAN隧道的各个隧道下一跳中。

至此,完成图3所示的流程。

通过图3所示流程可以看出,本发明中,通过按照均匀负载分担方式从VXLAN隧道的N个隧道下一跳中选择一个隧道下一跳,能够最终实现不同的已知组播报文均匀分担到VXLAN隧道的各个隧道下一跳中。

下面通过一个具体实施例对本发明提供的方法进行描述:

参见图4,图4为本发明提供的实施例示意图。如图4所示,VTEP4_1至远端VTEP4_2之间建立了VXLAN隧道。其中,该VXLAN隧道被配置了4个不同隧道下一跳:NH1至NH4。NH1至NH4是等价的,构成ECMP。

如图4所示,VTEP4_1通过端口AC0收到已知组播报文。收到的已知组播报文记为报文4_1。

VTEP4_1在本地组播转发表中查找到报文4_1匹配的组播转发表项。这里,组播转发表是基于组播路由协议实现的,与现有组播转发表的结构类似,不再赘述。为便于描述,报文4_1匹配的组播转发表项记为表项4_1。

VTEP4_1发现表项4_1的入端口为VTEP4_1收到已知组播报文的端口AC0,且表项4_1的出端口为VXLAN隧道标识,VXLAN隧道标识为VTEP4_1至远端VTEP4_2之间建立的VXLAN隧道的标识,则确定通过本VTEP4_1至远端VTEP4_2之间的VXLAN隧道转发报文4_1。

VTEP4_1确定通过本VTEP4_1至远端VTEP4_2之间的VXLAN隧道转发报文4_1时,发现本VTEP4_1至远端VTEP4_2之间的VXLAN隧道被配置了4个不同隧道下一跳:NH1至NH4,则使用报文4_1的目的MAC地址中第一指定比特(比如0至11比特)、第二指定比特(比如12至23比特)与端口AC0对应的VSI标识(以VSI0为例)对应硬件虚拟转发实例(VFI:Virtual Forwarding Instance)标识中的第三指定比特(比如0至11比特)进行异或运算得到结果4_1;将结果4_1除隧道下一跳总数即4取余得到结果4_12,从4个隧道下一跳NH1至NH4中选择编号与结果4_12对应的隧道下一跳(以选择NH1为例),则通过NH1发送报文4_1并最终发送给VTEP4_2。具体地,通过NH1发送报文4_1时对报文4_1进行VXLAN封装,VXLAN封装中外层目的MAC填的是隧道下一跳NH1的MAC,外层目的IP是目的VTEP4_2的IP地址,源IP地址是VTEP4_1的地址。

再如图4所示,VTEP4_1通过端口AC0收到已知组播报文。收到的已知组播报文记为报文4_2。

VTEP4_1在本地组播转发表中查找到报文4_2匹配的组播转发表项。这里,组播转发表是基于组播路由协议实现的,与现有组播转发表的结构类似,不再赘述。为便于描述,报文4_2匹配的组播转发表项记为表项4_2。

VTEP4_1发现表项4_2的入端口为VTEP4_1收到已知组播报文的端口AC0,且表项4_2的出端口为VXLAN隧道标识,VXLAN隧道标识为VTEP4_1至远端VTEP4_2之间建立的VXLAN隧道的标识,则确定通过本VTEP4_1至远端VTEP4_2之间的VXLAN隧道转发报文4_2。

VTEP4_1确定通过本VTEP4_1至远端VTEP4_2之间的VXLAN隧道转发报文4_2时,发现本VTEP4_1至远端VTEP4_2之间的VXLAN隧道被配置了4个不同隧道下一跳:NH1至NH4,则使用报文4_2的目的MAC地址中第一指定比特(比如0至11比特)、第二指定比特(比如12至23比特)与端口AC0对应的VSI标识(以VSI0为例)对应硬件虚拟转发实例(VFI:Virtual Forwarding Instance)标识中的第三指定比特(比如0至11比特)进行异或运算得到结果4_2;将结果4_2除隧道下一跳总数即4取余得到结果4_22,从4个隧道下一跳NH1至NH4中选择编号与结果4_22对应的隧道下一跳(以选择NH2为例),则通过NH2发送报文4_2。具体地,通过NH2发送报文4_2时对报文4_2进行VXLAN封装,VXLAN封装中外层目的MAC填的是隧道下一跳NH2的MAC,外层目的IP是目的VTEP4_2的IP地址,源IP地址是VTEP4_1的地址。

再如图4所示,VTEP4_1通过端口AC1收到已知组播报文。收到的已知组播报文记为报文4_3。

VTEP4_1在本地组播转发表中查找到报文4_3匹配的组播转发表项。这里,组播转发表是基于组播路由协议实现的,与现有组播转发表的结构类似,不再赘述。为便于描述,报文4_3匹配的组播转发表项记为表项4_3。

VTEP4_1发现表项4_3的入端口为VTEP4_1收到已知组播报文的端口AC1,且表项4_3的出端口为VXLAN隧道标识,VXLAN隧道标识为VTEP4_1至远端VTEP4_2之间建立的VXLAN隧道的标识,则确定通过本VTEP4_1至远端VTEP4_2之间的VXLAN隧道转发报文4_3。

VTEP4_1确定通过本VTEP4_1至远端VTEP4_2之间的VXLAN隧道转发报文4_3时,发现本VTEP4_1至远端VTEP4_2之间的VXLAN隧道被配置了4个不同隧道下一跳:NH1至NH4,则使用报文4_3的目的MAC地址中第一指定比特(比如0至11比特)、第二指定比特(比如12至23比特)与端口AC1对应的VSI标识(以VSI0为例)对应硬件虚拟转发实例(VFI:Virtual Forwarding Instance)标识中的第三指定比特(比如0至11比特)进行异或运算得到结果4_3;将结果4_3除隧道下一跳总数即4取余得到结果4_32,从4个隧道下一跳NH1至NH4中选择编号与结果4_32对应的隧道下一跳(以选择NH3为例),则通过NH3发送报文4_3。具体地,通过NH3发送报文4_3时对报文4_3进行VXLAN封装,VXLAN封装中外层目的MAC填的是隧道下一跳NH3的MAC,外层目的IP是目的VTEP4_2的IP地址,源IP地址是VTEP4_1的地址。

再如图4所示,VTEP4_1通过端口AC1收到已知组播报文。收到的已知组播报文记为报文4_4。

VTEP4_1在本地组播转发表中查找到报文4_4匹配的组播转发表项。这里,组播转发表是基于组播路由协议实现的,与现有组播转发表的结构类似,不再赘述。为便于描述,报文4_4匹配的组播转发表项记为表项4_4。

VTEP4_1发现表项4_4的入端口为VTEP4_1收到已知组播报文的端口AC1,且表项4_4的出端口为VXLAN隧道标识,VXLAN隧道标识为VTEP4_1至远端VTEP4_2之间建立的VXLAN隧道的标识,则确定通过本VTEP4_1至远端VTEP4_2之间的VXLAN隧道转发报文4_4。

VTEP4_1确定通过本VTEP4_1至远端VTEP4_2之间的VXLAN隧道转发报文4_4时,发现本VTEP4_1至远端VTEP4_2之间的VXLAN隧道被配置了4个不同隧道下一跳:NH1至NH4,则使用报文4_4的目的MAC地址中第一指定比特(比如0至11比特)、第二指定比特(比如12至23比特)与端口AC1对应的VSI标识(以VSI0为例)对应硬件虚拟转发实例(VFI:Virtual Forwarding Instance)标识中的第三指定比特(比如0至11比特)进行异或运算得到结果4_4;将结果4_4除隧道下一跳总数即4取余得到结果4_42,从4个隧道下一跳NH1至NH4中选择编号与结果4_42对应的隧道下一跳(以选择NH4为例),则通过NH4发送报文4_4。具体地,通过NH4发送报文4_4时对报文4_4进行VXLAN封装,VXLAN封装中外层目的MAC填的是隧道下一跳NH4的MAC,外层目的IP是目的VTEP4_2的IP地址,源IP地址是VTEP4_1的地址。

可以看出,VTEP4_1在确定接收到的已知组播报文即报文4_1至报文4_4通过本VTEP4_1至远端VTEP4_2之间的VXLAN隧道转发时,按照均匀负载分担方式通过NH1发送报文4_1、NH2发送报文4_2、NH3发送报文4_3、NH4发送报文4_4,实现了报文4_1至报文4_4均匀分担至NH1至NH4,提高链路利用率。

至此,对本发明提供的实施例进行了描述。

以上对本发明提供的方法进行了描述。下面对本发明提供的装置进行描述:

参见图5,图5为本发明提供的装置结构图。该装置应用于VTEP,包括:

接收单元,用于接收已知组播报文;

转发单元,用于当确定通过本VTEP至远端VTEP之间的VXLAN隧道转发已知组播报文时,按照均匀负载分担方式从VXLAN隧道的N个隧道下一跳中选择一个隧道下一跳,通过选择的隧道下一跳转发已知组播报文。

优选地,转发单元按照均匀负载分担方式从VXLAN隧道的N个隧道下一跳中选择一个隧道下一跳包括:

根据已知组播报文的目的MAC地址和接收已知组播报文的端口对应的虚拟交换接口VSI标识并使用设定均匀负载分担算法从VXLAN隧道的N个隧道下一跳中选择一个隧道下一跳。

优选地,转发单元根据已知组播报文的目的MAC地址和接收已知组播报文的端口对应的VSI标识并使用设定均匀负载分担算法从VXLAN隧道的N个隧道下一跳中选择一个隧道下一跳包括:

将已知组播报文的目的MAC地址中第一指定比特、第二指定比特与VSI标识对应硬件虚拟转发实例VFI标识中的第三指定比特进行设定运算得到第一运算结果;

将第一运算结果除N取余得到第二运算结果;

从N个隧道下一跳中选择编号与第二运算结果对应的隧道下一跳。

优选地,转发单元确定通过本VTEP至远端VTEP之间的VXLAN隧道转发已知组播报文包括:

在本地组播转发表中查找到已知组播报文匹配的组播转发表项;

当已知组播报文匹配的组播转发表项中的出端口为VXLAN隧道标识,VXLAN隧道标识为本VTEP至远端VTEP之间的VXLAN隧道的标识,则确定通过本VTEP至远端VTEP之间的VXLAN隧道转发已知组播报文。

优选地,VXLAN隧道的N个隧道下一跳是针对VXLAN隧道预先配置好的,N个隧道下一跳为等价多路径ECMP中的不同路径。

至此,完成本发明提供的装置描述。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1