基于VxLAN的报文转发方法和网络与流程

文档序号:19247653发布日期:2019-11-27 19:49阅读:483来源:国知局
基于VxLAN的报文转发方法和网络与流程
本发明属于报文转发
技术领域
,具体涉及一种基于vxlan的报文转发的方法和网络。
背景技术
:vxlan(virtualextensiblelocalareanetwork,虚拟扩展局域网)将二层报文用三层协议进行封装,可实现扩展数据中心的二层网段数量,是一种在现有物理网络设施中支持大规模多租户网络环境的方案。vxlan可以实现同一网段的终端用户(或者说主机)间的二层之间的报文转发,也可以实现非同一网段的终端用户(或者说主机)三层报文转发或vxlan用户和非vxlan用户的三层报文转发。但在多云环境下,存在同一网段的终端用户(或者说主机)的二层报文转发的需求,即同一网段下主机间跨公网ip的二层互通的需求,对于这种需求,vxlan并不能实现。技术实现要素:本发明至少部分解决现有的基于vxlan的报文转发方法不能实现同一网段下主机间跨ip公网的二层互通的问题,提供一种能实现同一网段下主机间跨ip公网的二层互通的基于vxlan的报文转发的方法和网络。本发明的一个方面提供一种基于vxlan的报文转发的方法,所述方法包括:源边界网关接收源vtep发送的包括vni信息的第一vxlan报文,根据预设的源转换表对所述第一vxlan报文中的vni信息进行转换得到第二vxlan报文,根据所述第二vxlan报文确定至少一个目标边界网关,并将所述第二vxlan报文发送至所述目标边界网关;目标边界网关接收所述第二vxlan报文,根据预设的目标转换表对所述第二vxlan报文中的vni信息进行转换得到第三vxlan报文,根据所述第三vxlan报文确定至少一个目标vtep,并将所述第三vxlan报文发送至所述目标vtep。可选的,所述vxlan报文发送方式为单播、组播、广播的一种。可选的,所述转换表包括内部vni和外部vni的对应关系。进一步可选的,所述根据预设的源转换表对所述第一vxlan报文中的vni信息进行转换得到第二vxlan报文包括:将所述第一vxlan报文进行解封,得到第一vxlan报文信息,所述第一vxlan报文信息包括vni信息;将所述第一vxlan报文信息中的vni信息作为内部vni根据所述预设的源转换表中的内部vni和外部vni的对应关系查询对应的外部vni;用所述对应的外部vni代替所述第一vxlan报文信息中的vni信息得到第二vxlan报文信息;对所述第二vxlan报文信息进行重新封装得到第二vxlan报文。进一步可选的,所述根据预设的目标转换表对所述第二vxlan报文中的vni信息进行转换并得到第三vxlan报文包括:将所述第二vxlan报文进行解封得到第三vxlan报文信息,所述第三vxlan报文信息包括vni信息;将所述第三vxlan报文信息中的vni信息作为外部vni根据所述预设的目标转换表中的内部vni和外部vni的对应关系查询对应的内部vni;用所述对应的内部vni代替所述第三vxlan报文信息中的vni信息得到第四vxlan报文信息;对所述第四vxlan报文信息进行重新封装得到第三vxlan报文。进一步可选的,所述得到第二vxlan报文信息之后还包括:所述根据所述第二vxlan报文确定至少一个目标边界网关包括:根据预先设定的源vxlan转发表和所述第二vxlan报文的第二vxlan报文信息确定至少一个目标边界网关。进一步可选的,所述得到第四vxlan报文信息之后还包括:所述根据所述第三vxlan报文确定至少一个目标vtep包括:根据预先设定的目标vxlan转发表和所述第三vxlan报文的第四vxlan报文信息确定至少一个目标vtep。进一步可选的,所述vxlan转发表包括目的mac地址、vni信息与目标边界网关和/或目标vtep的对应关系;所述vxlan报文信息还包括源mac地址、源ip地址、目的mac地址。进一步可选的,所述根据预先设定的源vxlan转发表和所述第二vxlan报文的第二vxlan报文信息确定至少一个目标边界网关包括:根据所述第二vxlan信息中的目的mac地址、vni信息在所述预先设定的源vxlan转发表中进行查询,确定至少一个目标边界网关。进一步可选的,所述根据预先设定的目标vxlan转发表和所述第三vxlan报文的第四vxlan报文信息确定至少一个目标vtep包括:根据所述第四vxlan信息中的目的mac、vni信息在所述预先设定的目标vxlan转发表中进行查询,确定至少一个目标vtep。进一步可选的,所述得到第一vxlan报文信息后还包括:根据所述第一vxlan报文信息中的源mac地址、vni信息以及源ip地址更新所述源vxlan转发表。进一步可选的,所述得到第三vxlan报文信息后还包括:根据所述第三vxlan报文信息中的源mac地址、vni信息以及源ip地址更新所述目标vxlan转发表。本发明的另一个方面提供一种网络,所述网络包括多个边界网关,每个边界网关下有多个vtep,其中:当任意边界网关接收到vtep发送的报文时,该边界网关作为源边界网关,并用于接收源vtep发送的包括vni信息的第一vxlan报文,根据预设的源转换表对所述第一vxlan报文中的vni信息进行转换得到第二vxlan报文,根据所述第二vxlan报文确定至少一个所述边界网关为目标边界网关,并将所述第二vxlan报文发送至所述目标边界网关;所述目标边界网关用于接收所述第二vxlan报文,根据预设的目标转换表对所述第二vxlan报文中的vni信息进行转换得到第三vxlan报文,根据所述第三vxlan报文确定至少一个目标vtep,并将所述第三vxlan报文发送至所述目标vtep。本发明的基于vxlan的报文转发的方法通过对报文中的vni信息进行转换,使得报文可以跨越边界网关,进行跨公网ip的二层传输,解决了现有的基于vxlan的报文转发方法不能实现跨公网ip的二层传输问题。附图说明图1为本发明实施例的一种基于vxlan的报文转发方法的流程示意图;图2为本发明实施例的另一种基于vxlan的报文转发方法的流程示意图;图3为本发明实施例的一种基于vxlan的报文转发网络的组成示意框图。具体实施方式为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。可以理解的是,此处描述的具体实施例和附图仅仅用于解释本发明,而非对本发明的限定。可以理解的是,在不冲突的情况下,本发明中的各实施例及实施例中的各特征可相互组合。可以理解的是,为便于描述,本发明的附图中仅示出了与本发明相关的部分,而与本发明无关的部分未在附图中示出。可以理解的是,本发明的实施例中所涉及的每个单元、模块可仅对应一个实体结构,也可由多个实体结构组成,或者,多个单元、模块也可集成为一个实体结构。可以理解的是,在不冲突的情况下,本发明的流程图和框图中所标注的功能、步骤可按照不同于附图中所标注的顺序发生。可以理解的是,本发明的流程图和框图中,示出了按照本发明各实施例的系统、装置、设备、方法的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可代表一个单元、模块、程序段、代码,其包含用于实现规定的功能的可执行指令。而且,框图和流程图中的每个方框或方框的组合,可用实现规定的功能的基于硬件的系统实现,也可用硬件与计算机指令的组合来实现。可以理解的是,本发明实施例中所涉及的单元、模块可通过软件的方式实现,也可通过硬件的方式来实现,例如单元、模块可位于处理器中。本发明实施例基于vxlan实现,vxlan是虚拟扩展局域网,包括多个边界网关和多个vtep,同一个边界网关下的多个vtep(vxlantunnelendpoints,vxlan隧道端点)属于同一个虚拟的局域网。当终端用户(或者说是主机)需要给另一个终端用户(或者说是主机)发送报文时,被发送的报文采用mac-in-udp的模式进行封装,可经与发送报文的主机相连的vtep达到与该vtep在同一虚拟局域网下的其他vtep,最终达到目标主机。实施例1:如图1所示,本实施例提供一种基于vxlan的报文转发方法,具体报文转发方法包括:s101、源边界网关接收源vtep发送的包括vni(vxlannetworkidentifier,vxlan网络标识符)信息的第一vxlan报文,根据预设的源转换表对第一vxlan报文中的vni信息进行转换得到第二vxlan报文,根据第二vxlan报文确定至少一个目标边界网关,并将第二vxlan报文发送至目标边界网关。源vtep在接收到源主机发送的vxlan报文之后,将vni信息和接收到的报文一起进行了封装,得到了第一vxlan报文并将其发送给源边界网关。源边界网关在接收到第一vxlan报文之后对其进行了解封,并根据预设的源转换表对vni信息进行了装换并将其和报文一起重新封装得到了第二vxlan报文。并将第二vxlan报文转发至根据第二vxlan确定的至少一个的目标边界网关。其中,源主机是指当前发出vxlan报文的主机,而源vtep则是指与该主机相连的vtep,源边界网关则是与该vtep相连的边界网关。而后文的目标边界网关是指接收源边界网关发送的报文的边界网关,而目标vtep则是接收目标边界网关发送的报文的vtep,故vxlan中的任意一个边界网关,在不同报文转发过程中,都即有可能成为源边界网关,也有可能成为目标边界网关。s102、目标边界网关接收第二vxlan报文,根据预设的目标转换表对第二vxlan报文中的vni信息进行转换得到第三vxlan报文,根据第三vxlan报文确定至少一个目标vtep,并将第三vxlan报文发送至目标vtep。目标边界网关在接收到源边界网关发送的第二vxlan报文之后,也对其进行了解封,得到了vni信息,并根据自己的转换表,也就是预设的目标转换表对vni信息进行可转换并将其和报文一起重新封装得到了第三vxlan报文,并将第三vxlan报文转发至了根据第三vxlan报文确定的至少一个目标vtep。本发明的基于vxlan的报文转发的方法通过对报文中的vni信息进行转换,使得报文可以跨越边界网关,进行跨公网ip的二层传输,解决了现有的基于vxlan的报文转发方法不能实现跨公网ip的二层传输问题。实施例2:如图2所示,本实施例提供另一种基于vxlan的报文转发方法。可选的,报文的发送方式为单播、组播、广播的一种。即报文可以是单播报文,单播报文也包括未知单播报文,也可以是组播报文,也可以是广播报文。即所有种类的报文都可以使用该种基于vxlan的报文转发方法进行转发。该方法具体包括:s201、源边界网关接收源vtep发送的包括vni信息的第一vxlan报文,根据预设的源转换表对第一vxlan报文中的vni信息进行转换得到第二vxlan报文,根据第二vxlan报文确定至少一个目标边界网关,并将第二vxlan报文发送至目标边界网关。源主机想要向目标主机发送报文(如请求报文,请求目标主机的mac地址),源主机首先向其相连的源vtep发送请求报文,源vtep在接收到请求报文后对其进行封装得到第一vxlan报文。第一vxlan报文中包括了vni信息,当前的vni信息是源主机所在的局域网或者说内部网络标识,第一vxlan报文被组播发送所有与其有相同vni信息的设备(如拥有同样vni信息的vtep并通过vtep发送至于vtep相连的主机或边界网关)。当第一vxlan报文达到源边界网关之后,源边界网关根据预设的源转换表对其进行了处理,得到第二vxlan报文。可选的,转换表包括内部vni和外部vni的对应关系。每一个边界网关都有一个预设的转换表,源边界网关的转换表在本实施例中我们称为源转换表,目标边界网关的转换表在本实施例中我们称为目标转换表。预设的转换表的具体结构如下所示:预设的转换表内部vni外部vni<内部vni><外部vni>通过表的方式记录vni的对应关系,方便查询也方便对信息进行修改。源边界网关在得到第二vxlan报文之后,根据第二vxlan报文和预先设定的源vxlan转发表确定至少一个目标边界网关,并将第二vxlan报文发送至目标边界网关。可选的,vxlan转发表包括目的mac地址、vni信息与目标边界网关和/或目标vtep的对应关系。每一个边界网关都有一个预先设定的vxlan转发表,源边界网关的vxlan转发表在本实施例中我们称为源vxlan转发表,目标边界网关的vxlan转发表在本实施例中我们称为目标vxlan转发表。vxlan转发表的具体结构如下所示,vxlan转发表macvninext-ip<mac><vni><next-ip>边界网关在接收到报文后,通过报文信息在vxlan转发表中查询,可查询到下一步将报文转发给的设备(如其他边界网关或者vtep)。源边界网关根据预设的源转换表对第一vxlan报文的处理,得到第二vxlan报文,并根据第二vxlan报文和预先设定的源vxlan转发表确定至少一个目标边界网关,并将第二vxlan报文发送至目标边界网关的过程具体包括:s2011、源边界网关将第一vxlan报文进行解封,得到第一vxlan报文信息,第一vxlan报文信息包括vni信息。源边界网关在接收到第一vxlan报文之后,对第一vxlan进行解封,得到第一vxlan报文信息,第一vxlan报文信息包含vni信息,当前的vni信息是源主机所在的内部网络标识。可选的,vxlan报文信息还包括源mac地址、源ip地址以及目的mac地址。第一vxlan报文信息中的源mac地址是源主机的mac地址,因为第一vxlan报文时源vtep进行封装的,因此源ip地址则是源vtep的ip地址,目的mac地址则是报文目标主机的mac地址,源mac地址和目的mac地址代表了报文的原始来源和最终去处,并不会因为报文的解封和封装而改变。通过这些地址信息可以知道报文的来源以及报文的目的地,便于对报文进行转发。可选的,根据第一报文信息中的源mac地址、vni信息以及源ip地址更新源vxlan转发表。即将第一vxlan报文信息中的源mac地址,vni信息以及源ip地址写入源vxlan转发表中,若源vxlan转发表中存在与源mac地址,vni信息相同的项,则用源mac地址,vni信息以及源ip地址代替该项。s2012、源边界网关将第一vxlan报文信息中的vni信息作为内部vni根据预设的源转换表中的内部vni和外部vni的对应关系查询对应的外部vni。源边界网关得到第一vxlan报文信息后,将第一vxlan报文信息中的vni信息作为内部vni,根据预设的源转换表中的内部vni和外部vni对应关系,在预设的源转换表中查询与其对应的外部vni。s2013、源边界网关用对应的外部vni代替第一vxlan报文信息中的vni信息得到第二vxlan报文信息。源边界网关用查询到的外部vni代替第一vxlan报文信息中的vni信息,其他信息保持不变,得到第二vxlan报文信息。s2014、源边界网关根据预先设定的源vxlan转发表和第二vxlan报文信息确定至少一个目标边界网关。源边界网关根据第二vxlan报文信息在预先设定的源vxlan转发表中进行查询,确定至少一个目标边界网关。可选的,根据第二vxlan信息中的目的mac地址、vni信息在预先设定的源vxlan转发表中进行查询,确定至少一个目标边界网关源边界网关根据第二vxlan报文信息中的vni信息,也就是步骤s2012中查询到的外部vni,以及目的mac地址,在自己的vxlan转发表,也就是预先设定的源vxlan转发表中查询对应的next-ip,根据next-ip,确定至少一个目标边界网关。若源主机发送的是请求目的主机的mac地址的请求报文,这种报文为广播报文,因此所有与源边界网关相连的边界网关都是目标边界网关。若源主机发送的组播报文,则和广播报文的处理方式类似,符合组播条件的边界网关就都是目标边界网关。相应的,若源主机发送的是单播报文,同时在源边界网关的源vxlan转发表中查询到相应的next-ip,则该next-ip对应的边界网关就是目标边界网关,此时的目标边界网关就只有一个。s2015、源边界网关对第二vxlan报文信息进行重新封装得到第二vxlan报文。源边界网关对第二vxlan报文信息进行重新的封装,此时得到的报文就是第二vxlan报文。s2016、源边界网关将第二vxlan报文发送至目标边界网关。源边界网关将得到的第二vxlan报文进行组播或单播发送,发送至步骤s2014确定的目标边界网关。s202、目标边界网关接收第二vxlan报文,根据预设的目标转换表对第二vxlan报文中的vni信息进行转换得到第三vxlan报文,根据第三vxlan报文确定至少一个目标vtep,并将第三vxlan报文发送至目标vtep。步骤s2014确定的目标边界网关接收第二vxlan报文。目标边界网关接收的第二vxlan报文中也包含着vni信息,这时的vni信息是第二vxlan报文信息的vni信息,也就是步骤s2012查询到的外部vni。目标边界网关根据预设的目标转换表对第二vxlan报文中的vni信息进行转换,得到了第三vxlan报文。目标边界网关也有预先设定的目标vxlan转发表,根据第三vxlan报文和预先设定的目标vxlan转发表可以确定至少一个目标vtep,将第三vxlan报文发送到群定的目标vtep。目标边界网关根据预设的目标转换表对第二vxlan报文进行处理得到第三vxlan报文,并根据预先设定的目标vxlan转发表和第三vxlan报文将第三vxlan报文进行正确转发的过程具体包括:s2021、目标边界网关将第二vxlan报文进行解封得到第三vxlan报文信息,第三vxlan报文信息包括vni信息。目标边界网关在接收到第二vxlan报文之后,对第二vxlan报文进行解封,得到第三vxlan报文信息。因为边界网关封装和解封的方式相同,实际上第三vxlan报文信息和第二vxlan报文信息的内容是一样的,但是因为操作的边界网关不同,因此在名称上进行了区分。第三vxlan报文信息也包括源mac地址、源ip地址以及目的mac地址。第三vxlan报文信息中的源mac地址源mac地址是源主机的mac地址,因为第二vxlan报文是源边界网关进行封装的,因此源ip地址则是源边界网关的ip地址,目的mac地址则是报文目标主机的mac地址。可选的,根据第三vxlan报文信息中的源mac地址、vni信息以及源ip地址更新目标vxlan转发表。即将第三vxlan报文信息中的源mac地址,vni信息以及源ip地址写入目标vxlan转发表中,若目标vxlan转发表中存在与源mac地址,vni信息相同的项,则用源mac地址,vni信息以及源ip地址代替该项。s2022、目标边界网关将第三vxlan报文信息中的vni信息作为外部vni根据预设的目标转换表中的内部vni和外部vni的对应关系查询对应的内部vni。目标边界网关得到第三vxlan报文信息中后,将其中的vni信息作为外部vni,根据预设的源转换表中的内部vni和外部vni的对应关系,在源转换表中查询对应的内部vni。s2023、目标边界网关用对应的内部vni代替第三vxlan报文信息中的vni信息得到第四vxlan报文信息。目标边界网关用查询到的内部vni代替第三vxlan报文信息中的vni信息,其他信息保持不变,得到第四vxlan报文信息。s2024、目标边界网关根据预先设定的目标vxlan转发表和第四vxlan报文信息确定至少一个目标vtep。目标边界网关根据第四vxlan报文信息在预先设定的目标vxlan转发表中进行查询,确定至少一个目标vtep。可选的,根据第四vxlan信息中的目的mac、vni信息在预先设定的目标vxlan转发表中进行查询,确定至少一个目标vtep。目标边界网关根据第四vxlan报文信息中的vni信息,也就是步骤s2022中查询到的内部vni,以及目的mac地址,在自己的vxlan转发表,也就是预先设定的目标vxlan转发表中查询对应的next-ip,根据next-ip,确定至少一个目标vtep。若源主机发送的是广播报文,则目标边界网关接收到的也是广播报文,因此所有与目标边界网关相连的vtep都是目标vtep。若源主机发送的组播报文,则和广播报文的处理方式类似,符合组播条件的vtep就都是目标vtep。相应的,若源主机发送的是单播报文,目标边界网关接收到的也是单播报文,同时在目标边界网关的目标vxlan转发表中查询到相应的next-ip,则该next-ip对应的vtep就是目标vtep,此时的目标vtep就只有一个。s2025、目标边界网关对第四vxlan报文信息进行重新封装得到第三vxlan报文。目标边界网关对第四vxlan报文信息进行重新的封装,此时得到的报文就是第三vxlan报文。s2026、目标边界网关将第三vxlan报文发送至目标vtep。目标边界网关将得到的第三vxlan报文进行组播或单播发送,发送至步骤s2024确定的目标vtep。目标vtep在接收到第三vxlan报文之后,对报文进行了解封。若第三vxlan报文也是广播报文,则目标vtep将其发送给所有与其相连的主机。非目标主机在接收到第三vxlan报文之后,发现报文无法处理则对报文进行丢弃,目标主机在接收到第三vxlan报文之后,发现是自己的报文,则对其进行处理。相应的,若第三vxlan报文也是广播报文,则目标vtep将其发送给目标主机。当目标主机接收到来自源主机的请求报文时,就需要对发送报文的主机发送响应报文。因为报文在达到主机的过程中,vxlan转发表在请求报文的转发过程中对请求报文的转发路径进行了学习,因此响应报文只需要按照学习的路径“原路返回”即可,因此响应报文是单播报文。在此响应报文的转发过程中,接收到请求报文的主机,即发送响应报文的主机变成了源主机,而发送请求报文的主机,即接收响应报文的主机变成了目标主机。而在转发请求报文过程的源边界网关也就变成了该过程中的目标边界网关,而转发请求报文过程中的目标边界网关就变成了该过程中的源边界网关。也就是说,在报文转发的过程中,某一个边界网关在一个报文转发的过程中可以是源边界网关,在另一个报文的转发过程中可以是目标边界网关,同样的一个vtep在一个报文转发的过程中可以是源vtep,在另一个报文转发的过程中就可能变成了目标vtep。本发明的基于vxlan的报文转发的方法通过对报文中的vni信息进行转换,使得报文可以跨越边界网关,进行跨公网ip的二层传输,解决了现有的基于vxlan的报文转发方法不能实现跨公网ip的二层传输问题。实施例3:如图3所示,本实施例提供一种网络,包括多个边界网关,每个边界网关下有多个vtep,其中:当任意边界网关接收到vtep发送的报文时,该边界网关作为源边界网关,并用于接收源vtep发送的包括vni信息的第一vxlan报文,根据预设的源转换表对第一vxlan报文中的vni信息进行转换得到第二vxlan报文,根据第二vxlan报文确定至少一个边界网关为目标边界网关,并将第二vxlan报文发送至目标边界网关;目标边界网关用于接接收第二vxlan报文,根据预设的目标转换表对第二vxlan报文中的vni信息进行转换并得到第三vxlan报文,根据第三vxlan报文确定至少一个目标vtep,并将第三vxlan报文发送至目标vtep。网络的多个边界网关是等价的,任意边界网关在接收到来自vtep的报文,需要将报文转发至其他边界网关时,该边界网关就是源边界网关。而当该边界网关接收到来自其他边界网关的报文,需要将其转发至边界网关下的vtep时,该边界网关就成为了目标边界网关。也就是说,源边界网关和目标边界网关是随着接收的报文随时转变的。本发明的网络通过对报文中的vni信息进行转换,使得报文可以跨越边界网关,进行跨公网ip的二层传输,解决了现有的基于vxlan的报文转发方法不能实现跨公网ip的二层传输问题。可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1