报文转发方法和装置的制造方法

文档序号:8546101阅读:200来源:国知局
报文转发方法和装置的制造方法
【技术领域】
[0001]本发明实施例涉及网络技术,尤其涉及一种NV03网络中的报文转发方法和装置。
【背景技术】
[0002]基于三层网络的网络虚拟化(英文:Network Virtualizat1n Overlays,缩写:NV03)是一种实现网络虚拟化的技术,通过NV03技术可以将一个物理网络进行虚拟化,使一个物理网络可以由不同的租户共同使用,每个租户之间的数据流量相互隔离,不同租户使用的虚拟网络中的网络协议(英文:Internet Protocol,缩写:IP)可以相同,这样相当于每个租户独立使用该物理网络。
[0003]在使用NV03技术的网络中,每个租户一般包括一个或多个虚拟网络,每个虚拟网络内的租户终端系统(英文:tenant end system,缩写:TES)之间能够通过NV03网络实现二层(数据链路层)互通,不同虚拟网络内的TES之间通过三层(网络层)互通。网络虚拟边缘(英文:network virtualizat1n edge,缩写:NVE)是NV03网络的虚拟网络边缘设备,负责每个虚拟网络内不同TES之间的流量转发、NV03隧道封装和解封装等处理。
[0004]目前对于NV03网络中跨子网的三层数据流量而言,一般都需要通过集中式的三层网关进行转发,但跨子网的三层数据流量都通过集中式的三层网关转发,会导致三层数据流量的转发路径产生迂回,并且容易在集中式的三层网关处形成转发瓶颈,从而影响报文转发的效率。

【发明内容】

[0005]本发明提供一种报文转发方法和装置,用于提高报文转发效率。
[0006]第一方面提供一种报文转发方法,包括:
[0007]第一 NVE接收第一 TES发送的第一报文,所述第一报文的目的IP地址为第二 TES的IP地址,所述第一报文的目的MAC地址为所述第一 NVE对应的网关MAC地址,所述第一TES和所述第二 TES属于相同的三层VPN ;
[0008]所述第一 NVE根据接收所述第一报文的端口信息和所述第一报文中的至少一个获取所述第一 TES的接入VN ID,并根据所述第一 TES的接入VN ID获取所述第一 TES的三层VPN实例标识;
[0009]所述第一 NVE对所述第一报文进行二层终结,并根据所述第二 TES的IP地址查找所述第一 TES的三层VPN实例标识对应的路由转发表,得到对应所述第二 TES的IP地址的表项,根据所述表项将所述第一报文封装为NV03报文;
[0010]所述第一 NVE通过三层网络将所述NV03报文转发至第二 NVE,所述第二 TES接入所述第二 NVE。
[0011]在第一方面第一种可能的实现方式中,所述第一 NVE对所述第一报文进行二层终结,并根据所述第二 TES的IP地址查找所述第一 TES的三层VPN实例标识对应的路由转发表,得到对应所述第二 TES的IP地址的表项,根据所述表项将所述第一报文封装为所述NV03报文,包括:
[0012]所述第一 NVE对所述第一报文进行二层终结,并根据所述第二 TES的IP地址查找所述第一 TES的三层VPN实例标识对应的路由转发表,得到对应所述第二 TES的IP地址的表项,所述表项包括所述第二 TES的IP地址、所述第二 TES所在的第二 NVE的IP地址、所述第二 NVE对应的网关MAC地址以及所述第二 TES的三层VPN实例标识对应的全局VN ID ;
[0013]所述第一 NVE根据所述第二 NVE的IP地址、所述第二 NVE对应的网关MAC地址以及所述第二 TES的三层VPN实例标识对应的全局VN ID将所述第一报文封装为所述NV03报文。
[0014]结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述第一 NVE根据接收所述第一报文的端口信息和所述第一报文中的至少一个获取所述第一 TES的接入VN ID,并根据所述第一 TES的接入VN ID获取所述第一 TES的三层VPN实例标识,包括:
[0015]所述第一 NVE根据接收所述第一报文的端口信息、所述第一报文中的二层VLAN标识和所述第一报文的源MAC地址中的至少一个获取所述第一TES的接入VN ID,并获取与所述第一 TES的接入VN ID对应的三层VPN实例标识。
[0016]结合第一方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述第一 NVE根据所述第二 NVE的IP地址、所述第二 NVE对应的网关MAC地址以及所述第二TES的三层VPN实例标识对应的全局VN ID将所述第一报文封装为所述NV03报文,包括:
[0017]所述第一 NVE将所述第一报文的目的MAC地址替换为所述第二 NVE对应的网关MAC地址,将所述第一报文的源MAC地址替换为所述第一 NVE对应的网关MAC地址,得到替换后的第一报文;
[0018]所述第一 NVE为所述替换后的第一报文封装NV03头,生成所述NV03报文,所述NV03头中的目的IP地址为所述第二 NVE的IP地址,源IP地址为所述第一 NVE的IP地址,所述NV03头中的VN ID为所述第二 TES的三层VPN实例标识对应的全局VN ID。
[0019]结合第一方面至第一方面第三种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,所述第一 NVE接收第一 TES发送的第一报文之前,所述方法还包括:
[0020]所述第一 NVE在本地生成接入VN ID与三层VPN实例标识的对应关系表;
[0021]所述根据所述第一 TES的接入VN ID获取所述第一 TES的三层VPN实例标识包括:
[0022]所述第一 NVE根据所述第一 TES的接入VN ID查找所述接入VN ID与三层VPN实例标识的对应关系表,得到所述第一 TES的三层VPN实例标识。
[0023]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
[0024]所述第一 NVE在本地生成三层VPN实例标识与全局VN ID的对应关系表,所述三层VPN实例标识与全局VN ID的对应关系表用于使所述第一 NVE在接收到网络中其他NVE发送的NV03报文时,根据所述三层VPN实例标识与全局VN ID的对应关系表查找对应的三层VPN实例标识;
[0025]所述第一 NVE通过地址解析协议ARP以及外部路由协议为本地的每个三层VPN实例标识生成对应的路由转发表;
[0026]所述第一 NVE将所述第一 NVE的IP地址、所述对应的网关MAC地址、所述路由转发表、所述三层VPN实例标识与全局VN ID的对应关系表发送给网络中的其它NVE,并接收所述其它NVE发送的所述其它NVE的IP地址、对应的网关MAC地址、所述其它NVE设备本地每个三层VPN实例标识对应的路由转发表、所述三层VPN实例标识与全局VN ID的对应关系表。
[0027]第二方面提供一种报文转发方法,包括:
[0028]第二 NVE接收第一 NVE发送的NV03报文,所述NV03报文为所述第一 NVE对第一TES发送的第一报文进行NV03封装得到的,所述第一报文的目的IP地址为第二 TES的IP地址;
[0029]当所述NV03报文的隧道头部的目的IP地址为所述第二 NVE的IP地址时,所述第二 NVE将所述NV03报文解封装,得到解封装后的报文,所述解封装后的报文为所述第一 NVE将所述第一报文的目的MAC地址替换为所述第二 NVE对应的网关MAC地址,将所述第一报文的源MAC地址替换为所述第一 NVE对应的网关MAC地址后得到的;
[0030]所述第二 NVE对所述解封装后的报文进行二层终结;
[0031]所述第二 NVE根据所述NV03报文的隧道头部的全局VN ID获取所述全局VN ID对应的三层VPN实例标识;
[0032]所述第二 NVE根据所述三层VPN实例标识以及所述第二 TES的IP地址查找路由转发表,将所述解封装后的报文转发至所述第二 TES。
[0033]在第二方面第一种可能的实现方式中,所述第二 NVE接收第一 NVE发送的NV03报文之前,所述方法还包括:
[0034]所述第二 NVE在本地生成三层VPN实例标识与全局VN ID的对应关系表,
[0035]所述获取所述全局VN ID对应的三层VPN实例标识包括:
[0036]所述第二 NVE根据所述全局VN ID查找所述三层VPN实例标识与全局VN ID的对应关系表,得到所述全局VN ID对应的三层VPN实例标识。
[0037]结合所述第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
[0038]所述第二 NVE在本地生成接入VN ID与三层VPN实例标识的对应关系表,所述接入VN ID与三层VPN实例标识的对应关系表用于使所述第二 NVE根据所述TES的接入VNID查找到对应的三层VPN实例标识;
[0039]所述第二 NVE通过地址解析协议ARP以及外部路由协议为本地的每个三层VPN实例标识生成对应的路由转发表;
[0040]所述第二 NVE将所述第二 NVE的IP地址、所述对应的网关MAC地址、所述路由转发表、所述三层VPN实例标识与全局VN ID的对应关系表发送给网络中的其它NVE,并接收网络中其它NVE发送的所述其它NVE的IP地址、对应的网关MAC地址、所述其他NVE设备本地本每个三层VPN实例标识对应的路由转发表、所述三层VPN实例与全局VN ID的对应关系表。
[0041]第三方面提供一种报文转发装置,包括:
[0042]接收模块,用于接收第一 TES发送的第一报文,所述第一报文的目的IP地址为第二 TES的IP地址,所述第一报文的MAC地址为第一网络虚拟边缘NVE对应的网关MAC地址,所述第一 TES和所述第二 TES属于相同的三层VPN ;
[0043]第一获取模块,用于根据接收所述第一报文的端口信息和所述第一报文中的至少一个获取所述第一 TES的接入VN ID ;
[0044]第二获取模块,用于根据所述第一 TES的接入VN ID获取所述第一 TES的三层VPN实例标识;
[0045]封装模块,用于对所述第一报文进行二层终结,并根据所述第二 TES的IP地址查找所述第一 TES的三层VPN实例标识对应的路由转发表,得到对应所述第二 TES的IP地址的表项,根据所述表项将所述第一报文封装为NV03报文;
[0046]发送模块,用于通过三层网络将所述NV03报文转发至第二 NVE,所述第二 TES接入所述第二 NVE。
[0047]在第三方面第一种可能的实现方式中,所述封装模块具体用于对所述第一报文进行二层终结,并根据所述第二 TES的IP地址查找所述第一 TES的三层VPN实例标识对应的路由转发表,得到对应所述第二 TES的IP地址的表项,所述表项包括所述第二 TES的IP地址、所述第二 TES所在的第二 NVE的IP地址、所述第二 NVE对应的网关MAC地址以及所述第二 TES的三层VPN实例标识对应的全局VN ID ;根据所述第二 NVE的IP地址、所述第二NVE对应的网关MAC地址以及所述第二 TES的三层VPN实例标识对应的全局VN ID将所述第一报文封装为所述NV03报文。
[0048]结合第三方面第一种可能的实现方式,在第二种可能的实现方式中,所述第一获取模块,具体用于根据接收所述第一报文的端口信息、所述第一报文中的二层VLAN标识和所述第一报文的源MAC地址中的至少一个获取所述第一 TES的接入VN ID。
[0049]结合第三方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述封装模块具体用于将所述第一报文的目的MAC地址替换为所述第二 NVE对应的网关MAC地址,将所述第一报文的源MAC地址替换为所述NVE对应的网关MAC地址,得到替换后的第一报文;为所述替换后的第一报文封装NV03头,生成所述NV03报文,所述NV03头中的目的IP地址为所述第二 NVE的IP地址,源IP地址为所述NVE的IP地址,所述NV03头中的VNID为所述第二 TES的三层VPN实例标识对应的全局VN ID。
[0050]结合第三方面至第三方面第三种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,所述装置还包括:
[0051 ] 设置模块,用于在本地生成接入VN ID与三层VPN实例标识的对应关系表;
[0052]所述第二获取模块具体用于根据所述第一 TES的接入VN ID查找所述接入VN ID与三层VPN实例标识的对应关系表,得到所述第一 TES的三层VPN实例标识。
[0053]结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述装置还包括生成模块和同步模块;
[0054]所述设置模块,还用于在本地生成三层VPN实例标识与全
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1