一种单播通信方法、网关以及VXLAN接入设备与流程

文档序号:11388810阅读:321来源:国知局
一种单播通信方法、网关以及VXLAN接入设备与流程
本申请涉及通信
技术领域
,尤其涉及一种单播通信方法、网关及虚拟可扩展(英文:virtualextensiblelocalareanetwork,简称:vxlan)接入设备。
背景技术
:vxlan的一个典型组网结构是spine-leaf(脊-叶)二层网络拓扑结构。如图1所示,现有的vxlan网络包括spine(网关)和leaf(vxlan接入设备),每个leaf通过spine与其他leaf通信,每个leaf为一个或多个虚拟机(英文:virtualmachine,简称:vm)提供接入服务。为了提高vxlan网络的可靠性和网络容量,通常在vxlan中部署多个处于active状态的spine,称为多活网关。在现有的vxlan中,组成多活网关的多个spine与每个leaf之间通过等价多路径(英文:equalcostmultipathrouting,简称:ecmp)方式实现负载分担,即leaf按照一定的算法从ecmp的多条路径中自动选择一条路径发送报文,使每条路径发送的报文数量或者每条路径被占用的带宽满足设定的条件。在vxlan中,各spine,如spine1和spine2,使用相同的虚拟ip地址和相同的虚拟mac地址(物理地址),因此对于leaf而言,spine1与spine2没有区别。leaf根据ecmp负载分担算法选择其中任意一个spine发送报文。图2以spine1、vm3为例,说明vxlan网络中spine与vm之间的单播通信过程。spine1发出的request(请求)报文经过leaf2到达vm3后,vm3发 出的reply(回应)报文到达该leaf2。leaf2根据负载分担算法选择spine1、spine2中的一个向其发送该回应报文,而另一个spine则接收不到该回应报文,不管该请求报文是否由该spine发出。也就是说,spine1向vm3发出请求报文后,很可能接收不到vm3发出的回应报文。因此,无法保证spine1与vm3之间的单播通信。由此可见,在现有的vxlan网络中,多活网关中的一个spine网关在向vm发出请求报文后,存在接收不到来自所述vm的回应报文的风险。因此现有的vxlan网络中,多活网关中的网关与vm之间单播通信不可靠。技术实现要素:本申请提供了一种单播通信方法、网关以及vxlan接入设备,以保证vxlan网络中网关与vm之间单播通信的可靠性。第一方面,本申请实施例提供了一种单播通信方法。该方法首先接收虚拟可扩展局域网vxlan中的网关发送的vxlan请求报文,该vxlan请求报文的vxlan头中包含该网关的网关标识。然后从该vxlan请求报文的vxlan头中获取该网关标识。对该vxlan请求报文解封装,得到因特网协议ip请求报文。从该ip请求报文中获取报文特征,存储该网关标识与该报文特征的对应关系。再向虚拟机发送该ip请求报文,然后接收该虚拟机根据该ip请求报文发送的ip回应报文。再从该ip回应报文中获取该报文特征,根据该报文特征以及该对应关系得到该网关标识。再对该ip回应报文做vxlan封装,得到vxlan回应报文,该vxlan回应报文的vxlan头中包含所述网关标识。最后发送该vxlan回应报文。本申请实施例通过vxlan中的网关发送携带该网关的网关标识的vxlan请求报文,并从该vxlan请求报文解封装后得到的ip请求报文中获取报文特征,以及通过记录该网关标识与该报文特征的对应关系,从而保证了vxlan网络中的网关与vm之间单播通信的可靠性。在第二方面,本申请实施例提供了一种单播通信方法,该方法应用于虚拟可扩展局域网vxlan中的第一网关。首先该第一网关生成vxlan请求报文,该vxlan请求报文包括vxlan头和ip请求报文,该vxlan头中包括该网关的网关标识,该ip请求报文的目的ip地址为接入vxlan接入设备的虚拟机的ip地址。该第一网关向该vxlan接入设备发送该vxlan请求报文。然后该第一网关接收该vxlan请求报文对应的第一vxlan回应报文,该第一vxlan回应报文是由该vxlan接入设备根据该虚拟机发送的ip回应报文生成的,该第一vxlan回应报文的vxlan头中包括该网关标识。在第三方面,本申请实施例提供了一种网关,应用于虚拟机可扩展局域网vxlan中,该网关包括生成器、发送器、接收器。该生成器用于生成vxlan请求报文,且该vxlan请求报文包括vxlan头和ip请求报文,该vxlan头中包括该网关的网关标识,该ip请求报文的目的ip地址为接入该vxlan接入设备的虚拟机的ip地址。该发送器用于向该vxlan接入设备发送该vxlan请求报文。该接收器用于接收该vxlan请求报文对应的第一vxlan回应报文,该第一vxlan回应报文是由该vxlan接入设备根据该虚拟机发送的ip回应报文生成的,该第一vxlan回应报文的vxlan头中包括该网关标识。在第四方面,本申请提供了一种vxlan接入设备,该vxlan接入设备包括接收器、处理器、发送器。该接收器用于接收虚拟可扩展局域网vxlan中的网关发送的vxlan请求报文,且该vxlan请求报文的vxlan头中包含该网关的网关标识。该处理器用于从该vxlan请求报文的vxlan头中获取该网关标识,对该vxlan请求报文解封装,得到因特网协议ip请求报文,从该ip请求报文中获取报文特征,存储该网关标识与该报文特征的对应关系。该发送器用于向虚拟机发送该ip请求报文。该接收器还用于接收该虚拟机根据该ip请求报文发送的ip回应报文。该处理器还用于从该ip回应报文中获取该报文特征,根据该报文特征以及该对应关系得到该网关标识, 对该ip回应报文做vxlan封装,得到vxlan回应报文,且该vxlan头中包含该网关标识。该发送器还用于发送该vxlan回应报文。在一个可能的设计中,存储该网关标识与报文特征的对应关系为,将该网关标识与该报文特征的对应关系存储至该vxlan接入设备的特征映射表的一个表项中;且根据该报文特征以及该对应关系得到该网关标识为,根据该ip回应报文中的该报文特征,通过查询该特征映射表得到该表项,根据该表项得到该网关标识。在一个可能的设计中,该发送vxlan回应报文为,根据负载均衡算法从该vxlan接入设备与网关之间的等价多路径中选择一条路径,通过该选择的路径发送该vxlan回应报文。在一个可能的设计中,该接收vxlan请求报文对应的第一vxlan回应报文为,从该vxlan接入设备接收该第一vxlan回应报文;或从该vxlan的第二网关接收该第一vxlan回应报文,该第一vxlan回应报文是由该vxlan接入设备发给该第二网关的。在一个可能的设计中,该vxlan包括多个网关,且该第一网关接收每个网关发送的通告消息,每个通告消息中包括发送该通告消息的网关的网关标识和ip地址。该第一网关在地址映射表中记录每个网关的网关标识和ip地址的对应关系,其中该地址映射表的一个表项记录一个网关的网关标识和ip地址的对应关系。在一个可能的设计中,该第一网关接收第二vxlan回应报文;该第一网关获取该第二vxlan回应报文中的网关标识,当该第二vxlan回应报文中的网关标识不是该第一网关的网关标识时,该第一网关查询该地址映射表,得到该网关标识对应的ip地址,向该ip地址对应的网关发送该第二vxlan回应报文。在一个可能的设计中,当该第一网关为该多个网关通过网关同步消息通道协商选出的主网关时,该第一网关为该多个网关中的每个网关分配网关 标识,并向每个网关发送该网关的网关标识。在一个可能的设计中,基于用户命令配置各网关标识。在第五方面,本申请实施例提供了一种单播通信方法。首先接收虚拟可扩展局域网vxlan中的网关发送vxlan请求报文,该vxlan请求报文的vxlan头中包含该网关的网关标识。然后从该vxlan请求报文的vxlan头中获取该网关标识。对该vxlan请求报文解封装,得到因特网协议ip请求报文,将该网关标识添加至该ip请求报文的可选字段中。然后再向虚拟机发送该ip请求报文。接收该虚拟机根据该ip请求报文发送的ip回应报文。从该ip回应报文的可选字段中获取该网关标识。再对该ip回应报文做vxlan封装,得到vxlan回应报文,该vxlan回应报文的vxlan头中包含该网关标识。最后发送该vxlan回应报文。本申请实施例通过接收包含网关标识的vxlan请求报文,并从该vxlan请求报文的vxlan头中获取该网关标识,以及将该网关标识添加至该vxlan请求报文解封装后得到的ip请求报文的可选字段中,且使该vxlan请求报文对应的vxlan回应报文的可选字段中包含该网关标识,再将该网关标识添加在该vxlan回应报文的vxlan头中,最后发送该vxlan回应报文,,从而保证了vxlan网络中的网关与vm之间单播通信的可靠性。在第六方面,本申请实施例提供了一种vxlan接入设备。该vxlan接入设备包括接收器、处理器、发送器。该接收器用于接收虚拟可扩展局域网vxlan中的网关发送的vxlan请求报文,且该vxlan请求报文的vxlan头中包含该网关的网关标识。该处理器用于从该vxlan请求报文的vxlan头中获取该网关标识,对该vxlan请求报文解封装,得到因特网协议ip请求报文,将该网关标识添加至该ip请求报文的可选字段中。该发送器用于向虚拟机发送该ip请求报文。该接收器还用于接收该虚拟机根据该ip请求报文发送的ip回应报文。该处理器还用于从该ip回应报文的可选字段中获取该网关标识,并对该ip回应报文做vxlan封装,得到vxlan回应报文, 该vxlan回应报文的vxlan头中包含该网关的网关标识。该发送器还用于发送该vxlan回应报文。在一个可能的设计中,在获取该网关标识之后包括删除该ip回应报文的可选字段。在一个可能的设计中,该发送vxlan回应报文为,根据负载均衡算法从该vxlan接入设备与网关之间的等价多路径中选择一条路径,通过该选择的路径发送该vxlan回应报文。在一个可能的设计中,该网关同步消息通道是动态交换服务组,且该网关同步消息通道的源ip地址是动态交换通道的源ip地址。在一个可能的设计中,该包含网关标识的字段为,vxlan封装的vxlan头中的保留字段。在一个可能的设计中,该报文特征为源ip地址、目的ip地址、源端口、目的端口、协议号中的一个或多个字段。在第七方面,本申请实施例提供了一种单播通信方法,应用于虚拟可扩展局域网vxlan中的网关。首先该网关生成vxlan请求报文。该vxlan请求报文包括vxlan头和ip请求报文,且该ip请求报文中包含该网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。然后该网关向vxlan接入设备发送该vxlan请求报文。该网关接收该vxlan请求报文对应的第一vxlan回应报文,该第一vxlan回应报文是由该vxlan接入设备根据该虚拟机发送的ip回应报文生成的,该第一vxlan回应报文的ip回应报文中包含该网关的三层接口ip地址,而不包含所述网关的虚拟源ip地址。本申请实施例通过在传输的vxlan报文中包含网关的三层接口ip地址,而不再包含该网关的虚拟源ip地址,从而保证了网关与虚拟机单播通信的可靠性。在第八方面,本申请实施例提供了一种单播通信方法。首先接收虚拟可扩展局域网vxlan中的网关发送的vxlan请求报文,该vxlan请求报文包括 vxlan头和因特网协议ip请求报文,且该ip请求报文中包含该网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。然后对该vxlan请求报文解封装,得到该ip请求报文。再向虚拟机发送该ip请求报文。然后接收该虚拟机根据该ip请求报文发送的ip回应报文。再对该ip回应报文做vxlan封装,得到vxlan回应报文,该vxlan回应报文中包含该网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。最后发送该vxlan回应报文。在第九方面,本申请实施例提供了一种网关。该网关通过vxlan接入设备与虚拟机通信。该网关包括生成器、发送器、接收器。该生成器用于生成vxlan请求报文,该vxlan请求报文包括vxlan头和ip请求报文,且该ip请求报文中包含该网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。该发送器用于向vxlan接入设备发送该vxlan请求报文。该接收器用于接收该vxlan请求报文对应的第一vxlan回应报文,该第一vxlan回应报文是由该vxlan接入设备根据该虚拟机发送的ip回应报文生成的,该第一vxlan回应报文的ip请求报文中包含所述网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。在第十方面,本申请实施例提供了一种vxlan接入设备。该vxlan接入设备包括接收器、处理器、发送器。该接收器用于接收虚拟可扩展局域网vxlan中的网关发送的vxlan请求报文,该vxlan请求报文包括vxlan头和因特网协议ip请求报文。且该ip请求报文中包含该网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。该处理器用于对该vxlan请求报文解封装,得到该ip请求报文。该发送器用于向该虚拟机发送该ip请求报文。该接收器还用于接收该虚拟机根据该ip请求报文发送的ip回应报文。该处理器还用于对该ip回应报文做vxlan封装,得到vxlan回应报文,且该vxlan回应报文中包含该网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。该发送器还用于发送该vxlan回应报文。在一个可能的设计中,该网关的三层接口ip地址为该网关的物理接口ip 地址或者环回接口ip地址。在一个可能的设计中,该网关的三层接口ip地址在该请求报文的内层ip头字段中。在一个可能的设计中,该vxlan网络为叶-脊二层网络,该网关为脊设备,该vxlan接入设备为叶设备。本申请相对于现有技术来说,能够保证vxlan网络中网关在向特定vm发送请求报文后接收到来自该vm的回应报文,保证了该网关与该vm之间单播通信的可靠性。附图说明图1为现有的一种vxlan拓扑结构示意图;图2为现有的一种vxlan中spine与vm之间的单播通信过程示意图;图3为本申请实施例的提供的一种单播通信方法的流程示意图;图4为本申请提供的vxlan报文结构示意图;图5为本申请实施例提供的一种网关的结构示意图;图6为本申请实施例提供的一种vxlan接入设备的结构示意图;图7为本申请实施例提供的另一种单播通信方法流程示意图;图8为本申请实施例提供的另一种vxlan接入设备的结构示意图;图9为本申请实施例提供的再一种单播通信方法的流程示意图;图10为本申请实施例提供的再一种网关的结构示意图;图11为本申请实施例提供的再一种vxlan接入设备的结构示意图。具体实施方式下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。本申请应用于vxlan中,本申请中的vxlan与图1所示的vxlan具有相同的架构,但是,本申请需要对图1中的spine/网关以及leaf/vxlan接入设 备进行适应性修改。其中,spine1、spine2是承载网络的骨干节点,位于汇聚层,如汇聚交换机或核心交换机。leaf1~leaf4是承载网络的叶子节点,位于接入层。spine1、spine2组成多活网关,spine1、spine2使用同一虚拟ip地址和同一虚拟mac地址(物理地址)。leaf1~leaf4是vxlan接入设备,如接入交换机。所述汇聚交换机、核心交换机以及接入交换机是由交换机在网络中的位置确定的,并不考虑交换机的容量或者规模。如图1所示,每个leaf可以连接至少一个vm,每个vm运行在相应的服务器上。每个vm都具有独立的ip地址、独立的执行程序等。本领域技术人员可以理解,图1中的网络结构并不构成对本申请vxlan的限定,vxlan中的leaf、spine、vm的数量可以比图示更多或更少。图3是本申请实施例提供的一种单播通信方法的流程示意图。下面将以vxlan为leaf-spine二层网络,多活网关为spine,vxlan接入设备为leaf,spine1与vm3之间的单播通信为例,结合图1、图3对网关与vm之间的单播通信进行阐述。下述步骤301至步骤303是网关如spine1向vxlan接入设备如leaf2,发送vxlan封装的请求报文(本文可简称其为vxlan请求报文),且该vxlan请求报文的vxlan头(如vxlan头的保留字段)中包含该网关标识(英文:identifier,简称:id)的一种实现方式。步骤301,配置每个多活网关的网关标识。即为每个spine配置网关id。在一个示例中,可以通过如下方式为每个spine配置网关id:各网关包括spine1、spine2通过网关同步消息通道,相互协商选出一个主网关。例如,选择具有最小实际mac地址或者最大实际mac地址的spine为主网关,并由该主网关为各spine分配网关id。该网关同步消息通道是一个网关如spine1与另一个网关如spine2之间 建立的一个两端三点可达通道,用于spine1与spine2之间的信息交互。在该两端三点可达通道中,该通道包括spine1、spine2和一个中间节点,该中间节点可以是leaf也可以是非leaf的其它设备(图1未示出)。一个例子中,该网关同步消息通道为动态交换服务组(dynamicfabricservicegroup,简称:dfsgroup)。且该dfsgroup是一个网关如spine1与另一个网关如spine2进行信息交互的通道,而不是spine与vm之间的数据流传输通道。进一步地,对于新加入的网关,即对于新加入的spine,由选定的该主网关为其分配网关id,而不需要重新协商选择主网关后再为各spine分配网关id。一个典型的应用场景为,spine1与spine2通过dfsgroup通道相互协商,选定实际mac地址最小的spine为主网关,例如选定spine1为主网关,spine1依次为spine1、spine2分配网关id。需要说明的是,在vxlan网络中,各多活网关,即各spine具有相同的虚拟ip地址和相同的虚拟mac地址(物理地址),以便实现ecmp负载分担。同时各spine也具有各自的实际mac地址(物理地址),即spine1、spine2具有不同的实际mac地址(物理地址)。spine的实际mac地址又称为spine的硬件地址,每个spine都有唯一一个实际mac地址,且不同spine具有不同的实际mac地址。在另一个示例中,可以通过用户命令为各spine配置网关id,即用户使用命令分别为spine1、spine2配置网关id。步骤302,各网关如spine1、spine2通过网关同步消息通道将各自的网关id及ip地址通告给其它spine,并将该spine的网关id、ip地址以及其它spine的网关id、ip地址相对应地存储起来。也就是说,spine1在获知spine2的网关id、ip地址后,该spine1将spine1的网关id、ip地址,以及将该spine2的网关id、ip地址分别相对应地存储至地址映射表中。该地 址映射表的每个表项(entry)记录一个网关的网关标识和ip地址。同样,该spine2在获知spine1的网关id、ip地址后,该spine2将spine2的网关id、ip地址,以及spine1的网关id、ip地址分别相对应地存储起来。每个spine都有唯一一个ip地址,该ip地址用于各spine之间的信息交互。ip地址通常需要32个比特位(bits)表示。而在vxlan网络中,由于网关数量有限,一般不超过255个网关,因此,网关id一般不超过8个比特位(bits),通常网关id由4个比特位表示即可。步骤303,当某一多活网关如spine1需要向某vm如vm3发送请求报文时,将该请求报文进行vxlan封装,得到vxlan封装的请求报文,在该vxlan封装的请求报文的vxlan头中添加该spine1的网关id。然后,spine1将包含其网关id的该vxlan封装的请求报文发送至与vm3相对应的vxlan接入设备即leaf2。具体地,spine1需要向vm3发送请求报文时,该spine1将该请求报文做vxlan封装,并在该vxlan封装的vxlan头(vxlanheader)的保留(reserved)字段中添加该spine1的网关id,以形成vxlan封装的请求报文(如图4所示),且该vxlan封装的请求报文的一个字段(vxlan头的保留字段)中包含spine1的网关id。然后该spine1将该包含网关id的vxlan封装的请求报文发送至vm3的接入设备leaf2中。图4是vxlan报文的结构示意图。该vxlan报文可以是vxaln封装的请求报文,本文可简称为vxlan请求报文,也可以是vxaln封装的回应报文,本文可简称为vxlan回应报文。图4中,该vxlan报文是在ip报文(如ip请求报文或ip回应报文)基础上增加了vxlan封装,并在该vxlan封装中的vxlan头的两个保留字段的一个保留字段中存放该spine的网关id。其中,该vxlan封装包括外层以太头(outerethernetheader)字段、外层ip头(outeripheader)字段、外层udp头(outerudpheader)字段、vxlan头字段;vxlan头包括8比特表示的vxlan标识(vxlanflags)、24比特表 示的一个保留字段、24比特表示的虚拟网络标识(vni)、8个比特表示的另一个保留字段;ip报文包括内层以太头(innerethernetheader)、内层ip头(inneripheader)、静荷(payload);内层ip头可以包含五元组(图4未示出),即源ip地址、目的ip地址、源端口、目的端口、协议号。由于spine具有唯一ip地址以及唯一网关id,因此,通过vxlan头携带ip地址或网关id都能够实现spine与vm之间的单播通信。但是携带ip地址至少需要32个比特。因此在vxlan报文中携带ip地址相对于携带网关id来说,vxlan网络开销大。本申请实施例通过为各spine配置网关id,并通过在vxlan头中携带该网关id的方式,降低了vxlan网络开销,且保证了网关spine与vm单播通信的可靠性。步骤304,vxlan接入设备如leaf2接收来自网关如spine1的vxlan封装的请求报文,从该vxlan封装的请求报文的vxlan头中获取该网关id,并对该vxlan封装的请求报文解封装,得到ip请求报文。在一个示例中,vxlan接入设备leaf2接收来自网关spine1的vxlan请求报文,查看该vxlan请求报文的vxlan头的保留字段中是否携带网关id。如果未携带网关id,则将该vxlan请求报文解封装,并将该解封装后得到的ip报文,发送至vm3。如果该vxlan请求报文携带了网关id,则从该vxlan请求报文的vxlan头的保留字段中获取该网关id,并对该vxlan请求报文解封装,得到ip请求报文。步骤305,vxlan接入设备如leaf2从其解封装得到的该ip请求报文中获取报文特征,并存储该网关id与该报文特征的对应关系,即将该报文特征与其得到的该网关id相对应地存储起来,参见下特征映射表。在一个示例中,该报文特征为该报文的可识别字段,例如五元组中的一个或多个。具体地,图2中,该vxlan接入设备leaf2在解封装该vxlan请求报文前,先将该vxlan请求报文的vxlan头中携带的网关id记录下来,并在得到 该ip请求报文后记录ip请求报文的内层ip头中的报文特征(如五元组中的一个或多个),生成查询表,参见下特征映射表。该特征映射表存储在该leaf2的缓存区(cache)中。在一个示例中,该vxlan请求报文为vxlan封装的因特网控制报文协议(英文:internetcontrolmessageprotocol,简称:icmp)报文,则该ip请求报文为icmp报文,该icmp报文的内层ip头的报文特征为ip五元组,即源ip地址、目的ip地址、源端口、目的端口、协议号。该leaf2将该icmp报文的五元组以及该vxlan封装的icmp报文的vxlan头的保留字段中的网关id记录下来,生成下述特征映射表。sipdipsportdportproto网关id1.1.1.21.1.1.100012特征映射表在特征映射表中,sip为源ip地址,且该源ip地址可以为spine1的虚拟ip地址;dip为目的ip地址,即vm3的ip地址;sport为源端口;dport为目的端口;proto为协议号。在特征映射表中,源ip地址为1.1.1.2,目的ip地址为1.1.1.1,源端口为0,目的端口为0,协议号为01,网关id为2;其中,协议号01表示的是icmpv4协议。实际上,leaf2接收的vxlan请求报文解封装后得到的ip请求报文的源ip地址为1.1.1.1,目的ip地址为1.1.1.2。leaf2将ip请求报文的源ip地址1.1.1.1记录在特征映射表中的目的ip地址项(item)中,将ip请求报文的目的ip地址1.1.1.2记录在特征映射表中的源ip地址项中,以及将ip请求报文的源端口0记录在特征映射表中的目的端口项中,将ip请求报文的目的端口0记录在特征映射表中的源端口项中。原因是该ip请求 报文相应的回应报文的源ip地址是该ip请求报文的目的ip地址,该回应报文的目的ip地址是该ip请求报文的源ip地址,该回应报文的源端口是该ip请求报文的目的端口,该回应报文的目的端口是该ip请求报文的源端口。目的是使leaf2在接收到与该请求报文相应的回应报文后,通过查找特征映射表的方式得到与该请求报文及该回应报文相对应的网关id。需要说明的是,特征映射表中的具体数值仅是一个例子。此外,在本申请中,网关如spine1与vm3之间传输的报文不限于icmp报文,可以是任意类型报文,如文件传输协议(英文:filetransferprotocol,简称:ftp)报文、电信网络协议(英文:telecommunicationnetworkprotocol,简称:telnet)报文等。步骤306,该vxlan接入设备如leaf2将其解封装得到的该ip请求报文发送至vm如vm3,该vm3接收该ip请求报文,向leaf2发送与该ip请求报文相对应的ip回应报文。具体来说,vm3接收到该ip请求报文后,将该ip请求报文的源ip地址和目的ip地址互换,将该ip请求报文的源端口号与目的端口号互换,得到与该ip请求报文相对应的ip回应报文。需要说明的是,leaf与vm之间传输的是ip报文,包括ip请求报文和ip回应报文,spine与leaf之间传输的是vxlan报文,包括vxlan请求报文和vxlan回应报文。步骤307,该vxlan接入设备如leaf2接收来自vm3的该ip回应报文,从该ip回应报文中获取报文特征,根据该报文特征并通过leaf2存储的特征映射表,得到与该报文特征相应的网关id。具体地,leaf2接收来自vm3的ip回应报文,查看该ip回应报文的报文特征,例如查看该ip回应报文的内层ip头中五元组,即查看该ip回应报文中的源ip地址、目的ip地址、源端口、目的端口、协议号中的一个或多个;该leaf2根据该ip回应报文的五元组中的一个或多个查询特征映射表,得到 相应的网关id。例如,leaf2通过该ip回应报文中的内层ip头中包含的源ip地址1.1.1.2,目的ip地址1.1.1.1,源端口0,目的端口0,协议号01,得到网关id为2。步骤308,该vxlan接入设备如leaf2对该ip回应报文做vxlan封装,得到vxlan回应报文,该vxlan回应报文的vxlan头(如vxlan头中的保留字段)中包含该网关id,并将该vxlan回应报文发送至目的网关。需要说明的是,由于vxlan接入设备leaf2接收的该回应报文中包含的目的ip地址是虚拟ip地址,且leaf2会根据负载分担算法从ecmp中选择一个spine发送该vxlan回应报文,也就是说,leaf2可能会将该vxlan回应报文发送至spine2。如何再将该vxlan回应报文发送至spine1将在下面步骤309、310进一步详述。步骤309,接收该vxlan回应报文的该目的网关如spine2,获取该回应报文中的网关id,判定该网关id是否为本网关的id。如果该网关id不是本网关的网关id,则该网关如spine2根据该网关id查询地址映射表,得到与该网关id相应的ip地址。例如,spine1接收来自leaf的vxlan回应报文,判断该vxlan头中保留字段中是否有网关id。如果没有网关id,则将该vxlan回应报文提交至spine1的cpu,由该cpu对该vxlan回应报文做处理,从而完成报文的转发。如果spine1判定出该vxlan回应报文中有网关id,则确定该网关id是否为spine1的网关id。如果该网关id是spine1的网关id,则该spine1将该vxlan回应报文提交至spine1的cpu做处理,从而完成报文的转发。如果该网关id不是该spine1的网关id,则该spine1根据该网关id查询地址映射表,得到与该网关id相对应的ip地址。步骤310,该目的网关如spine2根据该网关id相对应的ip地址,并通过dfsgroup通道将该vxlan回应报文发送至相应网关如spine1中。具体地,该spine2根据该网关id相对应的ip地址并通过dfsgroup通 道将该回应报文发送至相应网关如spine1中。该网关如spine1接收到该回应报文后,将该vxlan回应报文提交至spine1的cpu做处理,从而完成报文的转发。进一步地,如果spine2根据该网关id并通过查询地址映射表得不到该网关id相对应的ip地址,则将该vxlan回应报文提交至该spine2的cpu做处理,从而完成报文的转发。图5是本申请实施例提供的一种网关的结构示意图。在该vxlan中,网关通过vxlan接入设备与vm通信。该网关500包括生成器510、发送器520、接收器530、处理器540。在一个示例中,该网关500为leaf-spine二层网络中的spine,vxlan接入设备为leaf。生成器510用于生成vxlan请求报文,该vxlan请求报文包括vxlan头和ip请求报文,该vxlan头中包括该网关的网关标识,该ip请求报文的目的ip地址为接入该vxlan接入设备的虚拟机的ip地址。在一个示例中,该vxlan请求报文的vxlan头的保留字段中包括该网关的网关id。在一个示例中,通过如下方式获取各网关的网关标识:各网关包括spine1、spine2通过网关同步消息通道,相互协商选出一个主网关。例如,选择具有最小实际mac地址或者最大实际mac地址的spine为主网关,并由该主网关为各spine分配网关id。然后各网关通过网关同步消息通道将各自的网关id及ip地址通告给其它spine。在一个示例中,该网关同步消息通道是动态交换服务组,该网关同步消息通道的源ip地址是动态交换通道的源ip地址。发送器520用于向该vxlan接入设备发送生成器510生成的vxlan请求报文,且该vxlan请求报文中包含该网关的网关标识。接收器530接收与该vxlan请求报文对应的第一vxlan回应报文,该第一vxlan回应报文是由该vxlan接入设备根据该虚拟机发送的ip回应报文生 成的,且该第一vxlan回应报文的vxlan头中包括该网关标识。在一个示例中,该vxlan回应报文的一个字段,例如vxlan头中的保留字段,中包含该网关标识。在一个示例中,该vxlan包括多个网关,该多个网关中的一个网关的接收器530还用于从该vxlan接入设备接收该第一vxlan回应报文;或者该多个网关中的一个网关的接收器530还用于从该vxlan的另一网关(即第二网关)接收该第一vxlan回应报文,且该第一vxlan回应报文是由该vxlan接入设备发给该第二网关的。进一步地,该多个网关中的一个网关的接收器530还用于接收每个网关发送的通告消息,每个通告消息中包括发送该通告消息的网关的网关标识和ip地址。且该网关500的处理器540用于在地址映射表中记录每个网关的网关标识和ip地址的对应关系,其中该地址映射表的每个表项记录一个网关的网关标识和ip地址的对应关系。在一个示例中,该多个网关中的一个网关的接收器530还用于接收第二vxlan回应报文。且该网关500的处理器540还用于获取该第二vxlan回应报文中的网关标识,当该第二vxlan回应报文中的网关标识不是该网关的网关标识时,该网关查询该地址映射表,得到该网关标识对应的ip地址,并向该ip地址对应的网关发送该第二vxlan回应报文。具体地,处理器540识别该第二vxlan回应报文的vxlan头中的网关id,判定该网关id是否属于本网关的网关id,如果该网关id不是本网关的网关id,则根据该网关id得到该网关标识对应的ip地址,例如得到dfs的源ip地址。在一个示例中,该包含网关标识的字段为vxlan封装的vxlan头中的保留字段。图6是本申请实施例提供的一种vxlan接入设备的结构示意图。在该vxlan中,网关通过vxlan接入设备与vm通信。该vxlan接入设备600包括接收器610、处理器620、发送器630。在一个示例中,该vxlan接入设备为leaf-spine二层网络中的leaf,该网关为spine。接收器610用于接收来自网关如spine1的vxlan请求报文,且该vxlan请求报文的vxlan头中包含该网关的网关标识。在一个示例中,在该vxlan请求报文的一个字段,例如,vxlan头中的保留字段中包含该网关的标识。在一个示例中,该网关标识是该vxlan中的各网关通过协商得到的。例如,网关可通过如下方式得到网关标识:各网关包括spine1、spine2通过网关同步消息通道,相互协商选出一个主网关。例如,选择具有最小实际mac地址或者最大实际mac地址的spine为主网关,并由该主网关为各spine分配网关id。然后各网关通过网关同步消息通道将各自的网关id及ip地址通告给其它网关即spine。处理器620用于从该vxlan请求报文的vxlan头中获取该网关标识,并对该vxlan请求报文解封装,得到因特网协议ip请求报文,从该ip请求报文中获取报文特征,存储该网关标识与该报文特征的对应关系。在一个示例中,处理器620是将该网关标识与该报文特征的对应关系存储至该vxlan接入设备的特征映射表的一个表项中。具体地,处理器620将该网关标识与该报文特征相对应地存储至该vxlan接入设备如leaf2的特征映射表中,该特征映射表记录了一个或多个请求报文中包含的网关表示及报文特征。该报文特征为可识别字段,例如,ip五元组,包括源ip地址、目的ip地址、源端口、目的端口、协议号。发送器630用于向虚拟机vm3发送处理器620解封装得到的ip请求报文。接收器610还用于接收来自虚拟机vm3根据该ip请求报文发送的ip回应报文。处理器620还用于从该ip回应报文中获取该报文特征,根据得到的该报文特征以及上述对应关系并通过查询特征映射表得到网关标识,然后对该ip回应报文做vxlan封装,得到vxlan回应报文,且该vxlan头中包含所 述网关标识。在一个示例中,在该vxlan回应报文的vxlan封装的一个字段,例如vxlan头中的保留字段中包含该网关标识。发送器630还用于发送该vxlan回应报文。在一个示例中,处理器620还用于根据负载均衡算法从该vxlan接入设备与网关之间的等价多路径中选择一条路径;且发送器630还用于通过该选择的路径发送该vxlan回应报文。图7是本申请实施例提供的另一种单播通信方法流程示意图。在vxlan中,网关通过vxlan接入设备与vm通信。步骤701,网关如spine1向vxlan接入设备如leaf2发送vxlan请求报文,且该vxlan请求报文的vxlan头中包含该网关的网关id,例如该vxlan头中的保留字段中包含该网关id。在一个示例中,在该网关spine1向所述该vxlan接入设备leaf2发送vxlan请求报文之前,各网关通过网关同步消息通道协商选出一个主网关,且由该主网关为各网关分配网关标识。进一步地,各网关相互通告,将各自的网关标识及网关的ip地址通告给其它网关,各网关将其接收到的其它网关的网关标识及相应的网关ip地址存储至特征映射表中,且该特征映射查询表包含一个或多个网关标识及网关ip地址。在一个示例中,该网关同步消息通道是动态交换服务组,该网关ip地址是该网关同步消息通道的源ip,即该网关ip地址是动态交换通道的源ip地址。步骤702,vxlan接入设备如leaf2从该vxlan请求报文的vxlan头中获取该网关id。步骤703,vxlan接入设备如leaf2对该vxlan请求报文解封装,得到因特网协议ip请求报文,将该网关id添加至该ip请求报文的可选(option)字段中。步骤704,vxlan接入设备如leaf2将该包含网关id的ip请求报文发送至虚拟机vm3。在一个示例中,图2中,leaf2在解封装vxlan请求报文时,从该vxlan请求报文头(vxlanheader)中的保留(reserved)字段中得到网关id,将该网关id添加至ip请求报文的可选(option)字段中,并将该携带网关id的ip请求报文发送至vm3。步骤705,虚拟机vm3接收该ip请求报文,从该ip请求报文的可选(option)字段中获取该网关id,向vxlan接入设备如leaf2发送ip回应报文,且该ip回应报文的可选(option)字段中包含该网关id。在一个示例中,图2中,vm3接收到包含网关id的ip请求报文后,向leaf2发送ip回应报文,并在该ip回应报文的可选字段中添加该网关id。步骤706,该vxlan接入设备如leaf2从该ip回应报文的可选字段中获取该网关id。步骤707,该vxlan接入设备对该ip回应报文做vxlan封装,得到vxlan回应报文,且在该vxlan回应报文的vxlan头中包含该网关id,例如vxlan头中的保留字段中包含该网关id。步骤708,,该vxlan接入设备将包含该网关id的vxlan回应报文发送至目的网关。在一个示例中,vxlan接入设备leaf2在获取ip回应报文可选字段中的网关id后,删除该可选字段,然后对该ip回应报文做vxlan封装,得到vxlan回应报文,并将该网关id添加至该vxlan回应报文的vxlan头中,再将该包含网关id的vxlan回应报文发送至目的网关。进一步地,vxlan接入设备leaf2根据负载均衡算法从该vxlan接入设备与网关之间的等价多路径中选择一条路径,通过该选择的路径发送该vxlan回应报文。也就是说,vxlan接入设备leaf2根据ecmp算法选择一个网关作为目的网关发送该vxlan回应报文,因此,接收该vxlan回应报文的 目的网关或者是spine1或者是spine2。步骤709,该目的网关(spine1或spine2)接收来自各vxlan接入设备如leaf2的vxlan回应报文。步骤710,该目的网关(spine1或spine2)从该vxlan回应报文的vxlan头(vxlanheader)上,例如该vxlan头中的保留(reserved)字段上,获取该网关id。步骤711,该目的网关判定该网关id是否属于本网关的网关id。步骤712,如果该目的网关判定出该网关id是本网关的网关id,则该目的网关将该vxlan回应报文提交至该目的网关的cpu做处理,从而完成报文的转发。步骤713,如果该目的网关判定出该网关id不是本网关的网关id,则该目的网关根据该网关id并通过查询地址映射表,得到与该网关id相对应的网关ip地址。该地址映射表相对应地记录了一个或多个网关id及该网关的ip地址。该目的网关根据该ip地址,并通过dfs通道将该vxlan回应报文发送至相应网关如spine1中。该网关如spine1接收到该vxlan回应报文后,将该vxlan回应报文发送至其cpu做处理,从而完成报文转发。步骤714,如果该目的网关根据该网关id并通过查询地址映射表,得不到该网关的ip地址,则该目的网关将该vxlan回应报文发送至其cpu处理,完成报文转发。该地址映射表相对应地记录了一个或多个网关id及网关的ip地址。图8是本申请实施例提供的另一种vxlan接入设备的结构示意图。在该vxlan中,网关通过该vxlan接入设备与vm通信。该vxlan接入设备800包括接收器810、处理器820、发送器830。在一个示例中,该vxlan接入设备为leaf-spine二层网络中的leaf,该网关为spine。接收器810用于接收来自网关的vxlan请求报文,且该vxlan请求报文 的vxlan头中包含该网关的网关id,例如该vxlan头的保留字段中包含该网关的id。在一个示例中,该网关标识是该vxlan中的各网关通过协商得到的。例如,网关可通过如下方式得到网关标识:各网关包括spine1、spine2通过网关同步消息通道,相互协商选出一个主网关。例如,选择具有最小实际mac地址或者最大实际mac地址的spine为主网关,并由该主网关为各spine分配网关id。然后各网关通过网关同步消息通道将各自的网关id及ip地址通告给其它网关即spine。处理器820用于从该vxlan请求报文头中获取该网关id,对该vxlan请求报文解封装,得到因特网协议ip请求报文,将该网关id添加至该ip请求报文的可选(option)字段中。具体地,处理器820在解封装vxlan请求报文时,从该vxlan请求报文头(vxlanheader)中,例如该vxlan头中的保留(reserved)字段中,得到网关id,并将该网关id添加至ip请求报文的可选(option)字段中。发送器830用于向虚拟机vm3发送该ip请求报文,且该ip请求报文的可选字段中包含网关id。接收器810还用于接收该虚拟机vm3根据该ip请求报文发送的ip回应报文,且该ip回应报文中包含该网关id。处理器820还用于从该ip回应报文的可选字段中获取该网关id,并对该ip回应报文做vxlan封装,得到vxlan回应报文,该vxlan回应报文的vxlan头中,例如该vxlan头的保留字段中,添加该网关id。在一个示例中,处理器820在获取该ip回应报文的可选(option)字段中的网关id后,删除该可选字段(option),然后对该ip回应报文做vxlan封装,并将该网关id添加至该vxlan报文头中,例如添加至该vxlan头的保留(reserved)字段中。发送器830用于将包含该网关id的vxlan回应报文发送至目的网关。在一个示例中,发送器830根据负载均衡算法从所述vxlan接入设备 与网关之间的等价多路径中选择一条路径,通过所述选择的路径发送所述vxlan回应报文。图9是本申请实施例提供的再一种单播通信方法的流程示意图,应用于虚拟可扩展局域网vxlan中的网关,且该网关通过vxlan接入设备与虚拟机vm通信。步骤901,该网关如spine1生成vxlan请求报文,该vxlan请求报文包括vxlan头和ip请求报文,且该ip请求报文中包含该网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。步骤902,该网关spine1向vxlan接入设备leaf2发送该vxlan请求报文。在一个示例中,当网关spine1需要向虚拟机vm3发送vxlan请求报文时,该网关spine1将该vxlan请求报文中包含的虚拟源ip地址替换成该网关的三层接口ip地址,并将该包含三层接口ip地址的vxlan请求报文发送出去。具体地,网关spine1预与虚拟机vm3通信,首先需要发送vxlan请求报文,spine1将该vxlan请求报文中的内层ip头(inneripheader)字段中包含的五元组中的虚拟源ip地址,替换成该spine1的三层接口ip地址,再将包含该三层接口ip地址的vxlan请求报文发送至即leaf2。在一个示例中,该网关的三层接口ip地址为该网关的物理接口ip地址或者该网关的环回(loopback)接口ip地址。步骤903,vxlan接入设备即leaf2接收该vxlan请求报文,其中,该vxlan请求报文包括vxlan头和ip请求报文,且该ip请求报文中包含该网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。步骤904,对该vxlan请求报文解封装,得到因特网协议ip请求报文,再将该ip请求报文发送至虚拟机vm3,且该ip请求报文中包含该网关的三层接口ip地址,例如该ip请求报文的内层ip头字段(inneripheader)中包含的是该网关的三层接口ip地址,即包含spine1的三层接口ip地址。步骤905,虚拟机vm3接收该ip请求报文,获取该ip请求报文中的该网关的三层接口ip地址,并向vxlan接入设备leaf2发送ip回应报文,且该ip回应报文中包含该网关的三层接口ip地址,例如该ip请求报文的内层ip头(inneripheader)字段中包含该网关如spine1的三层接口ip地址。步骤906,该vxlan接入设备leaf2接收该ip回应报文,对该ip回应报文做vxlan封装,得到vxlan回应报文,根据该ip回应报文中的该网关spine1的三层接口ip地址,将该vxlan回应报文发送至该网关spine1中。其中,该vxlan回应报文中包含该网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。步骤907,将该包含该网关的三层接口ip地址的该vxlan回应报文发送至目的网关。步骤908,目的网关接收该vxlan回应报文,该vxlan回应报文是由该vxlan接入设备leaf2根据虚拟机vm3发送的ip回应报文生成的,且该vxlan回应报文的ip请求报文中包括该目的网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。由于在vxlan网络中,传输报文(即请求报文和回应报文)携带的是网关(spine)的三层接口ip地址,该三层接口ip地址与网关一一相对应,即每个网关都有唯一一个三层接口ip地址。vxlan接入设备如leaf2在接收到包含该网关的三层接口ip地址后,根据该网关的三层接口ip地址将该回应报文发送至目的网关中,能够保证将该回应报文发送至发送请求报文的网关如spine1中。因此保证了网关如spine1在向vm如vm3发送请求报文后,能够接收到相应回应报文,从而保证了网关如spine1与vm如vm3单播通信的可靠性。图10是本申请实施例提供的再一种网关的结构示意图。在该vxlan中,网关通过vxlan接入设备与vm通信。该网关100包括生成器101、发送器102、接收器103。在一个示例中,该网关为leaf-spine二层网络中的spine,vxlan接入设备为leaf。生成器101用于生成vxlan请求报文,该vxlan请求报文包括vxlan头和ip请求报文,且该ip请求报文中包含该网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。在一个示例中,生成器101将该网关如spine1向该vm如vm3发送的vxlan请求报文中,原虚拟源ip地址字段包含该网关的三层接口ip地址,以生成包含该网关的三层接口ip地址的vxlan请求报文。具体地,在报文的内层ip头(inneripheader)字段中包含五元组,即源ip地址、目的ip地址、源端口、目的端口、协议号,其中,源ip地址为虚拟源ip地址。生成器101在生成该vxlan请求报文时,将原包含该虚拟源ip地址字段中包含该网关如spine1的三层接口ip地址。在一个示例中,该网关的三层接口ip地址为网关的物理接口ip地址或者环回(loopback)接口ip地址。发送器102用于将该包含网关的三层接口ip地址的请求报文发送至vxlan接入设备如leaf2。接收器103用于接收该vxlan请求报文对应的vxlan回应报文,即接收来自该vxlan接入设备如leaf2的vxlan回应报文,该vxlan回应报文是由该vxlan接入设备leaf2根据虚拟机vm3发送的ip回应报文生成的,且在该vxlan回应报文中包含该网关的三层接口ip地址,如在内层ip头(inneripheader)字段中包含该网关的三层接口ip地址。图11是本申请实施例提供的再一种vxlan接入设备的结构示意图。在该vxlan中,网关通过vxlan接入设备与vm通信。该vxlan接入设备110包括接收器111、处理器112、发送器113。在一个示例中,该vxlan接入设备为leaf-spine二层网络中的leaf,该网关为spine。接收器111用于接收来自该网关如spine1的vxlan请求报文,该vxlan请求报文包括vxlan头和因特网协议ip请求报文,且该ip请求报文包含该网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。进一步地,在该vxlan请求报文的内层ip头(inneripheader)字段中包含该网关的三层接口ip地址,而不包含该网关的虚拟源ip地址。处理器112用于对该vxlan请求报文解封装,得到ip请求报文。发送器113用于将该ip请求报文发送至该vm如vm3。该接收器111还用于接收该虚拟机vm3根据该ip请求报文发送的ip回应报文,且该ip回应报文包含该网关的三层接口ip地址。该处理器112还用于对包含该网关的三层接口ip地址的ip回应报文做vxlan封装,得到vxlan回应报文。且该vxlan回应报文中包含该网关的三层接口ip地址,而不包含所述该网关的虚拟源ip地址。该发送器113还用于根据该vxlan回应报文中包含的该网关的三层接口ip地址,将该vxlan回应报文发送至该网关如spine1中。在一个示例中,该网关的三层接口ip地址为该网关的物理接口ip地址或者环回(loopback)接口ip地址。专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做 的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1