报文转发方法及装置与流程

文档序号:14256762阅读:144来源:国知局

本发明涉及通信技术领域,特别涉及一种报文转发方法及装置。



背景技术:

随着计算机虚拟化技术的发展,一个物理服务器可以虚拟化为多个虚拟机(英文:virtualmachine;简称:vm)。而每个vm可以视为一个独立的虚拟服务器,拥有一个网际协议(英文:internetprotocol;简称:ip)地址和媒体访问控制(英文:mediumaccesscontrol;简称:mac)地址,不同vm之间需要通过ip地址和mac地址才能进行数据交互。

现有技术中,通常采用虚拟可扩展局域网(英文:virtualextensiblelan;简称:vxlan)技术在不同的vm之间进行数据交互,在通过vxlan技术进行数据交互的通信系统中通常包括:源vm、源vm所在的源物理服务器、源vxlan隧道端点(英文:vxlantunnelendpoint;简称:vtep)、目的vm、目的vm所在的目的物理服务器、目的vtep以及网关。

在采用vxlan技术进行数据交互的过程中,源vm需要先获取目的vm的mac地址,源vm先发送地址解析协议(英文:addressresolutionprotocol;简称:arp)请求报文,该arp请求报文中包括目的vm的ip地址,vtep1在接收到该arp请求报文时,将该arp请求报文封装为组播报文,并在组播组内进行组播,组播组内的其他vtep接收到该组播报文后,分别在每个vtep的arp表项中添加源vm的ip地址和mac地址,而且vtep2接收到该组播报文后进行解封得到该arp请求报文,将该arp请求报文发送给目的vm,当目的vm接收到该arp请求报文后,向源vm发送arp响应报文,该arp响应报文中保包括目的vm的mac地址,vtep2在接收到该arp响应报文后,对该arp响应报文进行封装并将封装后的arp响应报文发送至vtep1,vtep1对该封装后的arp响应报文解封装,并将得到的arp响应报文发送给源vm,最终源vm获取到目的vm的mac地址。其中,每个vtep的arp表项用于存储每个vm的ip地址与对应的mac地址。

然而,在物理服务器虚拟化程度不断提高的基础上,物理服务器可以虚拟出vm的数量不断增加,而vtep的arp表项的存储空间有限,无法存储vxlan中所有vm的ip地址和mac地址,因此,在vm的数量较多时,无法满足不同vm之间进行数据交互的需求。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种报文转发方法及装置。所述技术方案如下:

第一方面,本发明实施例提供了一种报文转发方法,用于报文转发系统的第一替换装置,该报文转发系统包括:至少一个物理服务器和至少一个替换装置,每个物理服务器对应一个替换装置,该第一替换装置为至少一个替换装置中的任意一个,所述方法包括:

在第一物理服务器中的第一vm发送第一业务报文时,第一物理服务器对应的第一替换装置可以获取该第一业务报文,该第一业务报文中包括目的地址信息,该目的地址信息包括目的ip地址和目的mac地址,第一替换装置再根据该第一业务报文获取第二vm的标签映射信息,该第二vm即为该目的ip地址对应的vm,该第二vm所在的物理服务器为第二物理服务器,该第二vm的标签映射信息包括第二vm的标签和第二物理服务器的地址信息,该第二vm的标签用于在所述报文转发系统内唯一标识所述第二vm。则第一替换装置可以再根据第二vm的标签确定第二vm所在的网络,当第二vm位于本地网络时,该本地网络为第一vm所在的最小区域内的网络,第一替换装置采用第二物理服务器的地址信息替换第一业务报文中的目的地址信息,并在第一业务报文中添加第二vm的标签得到第二业务报文,最后向第二物理服务器发送该第二业务报文。

需要说明的是,目的地址信息即为第一业务报文中的目的地址字段中的信息。

第一替换装置通过对第一业务报文中的目的地址信息进行替换,将报文发送至第二vm所在的第二物理服务器,相应网络设备的arp表项只需保证物理服务器之间的路由可达,无需存储vm的地址信息,节约了网络设备的arp表项的存储空间,满足了不同vm之间进行数据交互的需求,提高了不同vm之间数据交互的灵活性。

另外,需要说明的是,第一业务报文还可以包括源地址信息,该源地址信息包括第一vm的ip地址和第一vm的mac地址,该源地址信息即为该第一业务报文中的源地址字段中的信息。

第一替换装置在获取第一业务报文之后,第一替换装置还可以根据第一vm的ip地址,查询得到第一vm的ip地址对应的第一vm的标签映射信息。在采用第二物理服务器的地址信息替换第一业务报文中的目的地址信息,并添加第二vm的标签的基础上,再采用第一物理服务器的地址信息替换第一业务报文中的源地址信息,并在第一业务报文中添加第一vm的标签,得到第二业务报文。

其中,第一vm的标签映射信息包括第一vm的标签和第一物理服务器的地址信息。

第一替换装置通过采用第一物理服务器的地址信息替换第一业务报文中的源地址信息,并在第一业务报文中添加第一vm的标签,保证了第二业务报文的完整性,使得第二业务报文不会被作为错误报文而丢弃,提高了发送报文的成功率。

在一种可能的设计中,该报文转发系统还包括:转换控制装置,该转换控制装置存储有全局标签映射表,该全局标签映射表存储了报文转发系统中每个vm的标签映射信息与相应vm的地址信息的对应关系;

在第一替换装置获取目的ip地址对应的第二vm的标签映射信息时,可以先根据目的ip地址查询本地标签映射表,当本地标签映射表存储有包括目的ip地址的表项时,获取目的ip地址对应的第二vm的标签映射信息。

当本地标签映射表未存储包括目的ip地址的表项时,第一替换装置向转换控制装置发送查询请求,并接收转换控制装置发送的第二vm的标签映射信息。其中,该查询请求包括目的ip地址,该第二vm的标签映射信息为转换控制装置采用目的ip地址查询全局标签映射表得到的。

需要说明的是,本地标签映射表的每个表项存储了一个vm的标签映射信息与该vm的地址信息的对应关系,该vm的地址信息包括该vm的ip地址,该vm的标签映射信息包括该vm所在的物理服务器的地址信息和该vm的标签。

进一步地,在第一替换装置接收到第二vm的标签映射信息的同时,还将第二vm的标签映射信息存储至本地标签映射表中,以便在后续步骤中无需再次向转换控制装置发送查询请求,即可获取第二vm的标签映射信息。

第一替换装置通过查询本地标签映射表获取第二vm的标签映射信息,只在无法通过本地标签映射表获取第二vm的标签映射信息时,再向转换控制装置请求第二vm的标签映射信息,从而获取第二vm的标签映射信息,提高了第一替换装置获取第二vm的标签映射信息的效率。

相应的,在第一替换装置查询得到第一vm的ip地址对应的第一vm的标签映射信息的过程中,第一替换装置可以先根据第一vm的ip地址查询本地标签映射表,当本地标签映射表存储有第一vm的ip地址时,获取第一vm的ip地址对应的第一vm的标签映射信息。

但是,当本地标签映射表未存储第一vm的ip地址时,则第一替换装置可以向转换控制装置发送查询请求,并接收转换控制装置发送的第一vm的标签映射信息。其中,查询请求包括第一vm的ip地址,第一vm的标签映射信息为转换控制装置采用第一vm的ip地址查询全局标签映射表得到的。

第一替换装置通过查询本地标签映射表获取第一vm的标签映射信息,只在无法通过本地标签映射表获取第一vm的标签映射信息时,再向转换控制装置请求第二vm的标签映射信息,从而获取第一vm的标签映射信息,提高了替换装置获取第一vm的标签映射信息的效率。

在一种可能的设计中,该报文转发系统还包括:本地网络内的网关和网关替换装置,该网关替换装置与该网关对应;

当第一替换装置根据第二vm的标签确定第二vm所在的网络时,如果第二vm所在的网络为外部网络,该外部网络为第一vm所在的最小区域外的网络,则第一替换装置可以先获取网关的地址信息,并根据第一业务报文中的目的ip地址,查询本地标签映射表,得到目的ip地址对应的第二vm的标签,再采用网关的地址信息替换第一业务报文中的目的地址信息,并在第一业务报文中添加第二vm的标签,得到第三业务报文,最后向网关发送该第三业务报文。其中,网关的网关地址信息包括所述网关的ip地址和所述网关的mac地址。

进一步地,在第一替换装置获取网关的地址信息的同时,还将网关的地址信息存储在本地标签映射表中,或者以其他表的形式存储网关的地址信息。

第一替换装置通过根据第二vm所在的网络,将第一业务报文中的目的地址信息替换为网关的地址信息,使得第一vm不但可以与最小区域内的vm进行数据通信,还可以与最小区域外的vm进行数据通信,提高了第一vm与其他vm进行数据通信的灵活性。

在一种可能的设计中,每个替换装置设置在对应的物理服务器的网络接入入口处,在第一替换装置获取第一业务报文之前,第一vm还需要通过发送arp请求报文获取第二vm的mac地址,以便根据第二vm的mac地址生成第一业务报文。其中,该arp请求报文用于请求第二vm的mac地址,该arp请求报文包括第二vm的ip地址。

相应的,第一替换装置还可以获取第一vm发送的arp请求报文,并根据arp请求报文中第二vm的ip地址获取响应mac地址,最后向第一vm发送响应报文。其中,该响应报文包括该响应mac地址,以便第一vm根据该响应mac地址生成第一业务报文,而且第一vm将第二vm的ip地址作为目的ip地址,将响应mac地址作为目的mac地址。

第一替换装置通过向第一vm发送预先设置好的响应mac地址,无需获取第二vm的mac地址,可以快速地向第一vm发送响应报文,减少了第一vm生成第一业务报文的时间,提高了第一vm生成第一业务报文的效率。

在一种可能的设计中,第一替换装置根据第二vm的ip地址获取响应mac地址时,第一替换装置可以先根据第二vm的ip地址,查询本地标签映射表,得到第二vm的ip地址对应的第二vm的标签,并根据第二vm的标签确定第二vm所在的网络。

其中,第一替换装置获取第二vm的ip地址对应的第二vm的标签的过程,与上述根据目的ip地址查询本地标签映射表,获取目的ip地址对应的第二vm的标签映射信息的过程类似。

当第二vm位于本地网络时,将预设的第一mac地址作为响应mac地址,当第二vm位于外部网络时,将本地网络内的网关的第二mac地址作为响应mac地址。其中,第一mac地址用于标识第一替换装置,外部网络为所述第一vm所在的最小区域外的网络。

进一步地,所述第一mac地址可以为所述第一替换装置的虚拟mac地址,或者预先设定的虚拟mac地址。

第一替换装置通过根据第二vm所在的网络确定不同的响应mac地址,使得通过响应mac地址生成的第一业务报文可以分别发送至第二vm所在的网络,不会将第一业务报文发送至第二vm不在的网络,降低了第一业务报文发送出错的概率。

在一种可能的设计中,第一替换装置在确定第二vm所在的网络的过程中,第一替换装置可以先将第二vm的标签分别与第一标签范围和第二标签范围比较,当第二vm的标签位于第一标签范围内时,则确定第二vm位于本地网络,当第二vm的标签位于第二标签范围内时,则确定第二vm位于外部网络。其中,第一标签范围为预设的所述本地网络对应的范围,所述第二标签范围为预设的所述外部网络对应的范围;

第一替换装置通过将将第二vm的标签与第一标签范围和第二标签范围进行比较,从而确定第二vm所在的网络,进而简化了确定第二vm所在的网络的步骤,提高了第二vm所在的网络的效率。

在一种可能的设计中,在第一替换装置向第二物理服务器发送第二业务报文之前,第一替换装置还可以根据第一业务报文中的源地址信息,查询本地标签映射表,得到源地址信息对应的第一vm的标签映射信息,并比较第一vm的标签映射信息的租户标识与第二vm的标签映射信息的租户标识,当第一vm的标签映射信息的租户标识与第二vm的标签映射信息的租户标识不同时,丢弃所述第一业务报文,只有当第一vm的标签映射信息的租户标识与第二vm的标签映射信息的租户标识相同时,才向第二物理服务器发送第二业务报文。

第一替换装置通过将第一vm的标签映射信息的租户标识与第二vm的标签映射信息的租户标识进行比较,如果二者匹配则向第二物理服务器发送第二业务报文,如果二者不匹配,则丢弃该第二业务报文,则减少了出现错误报文的概率,提高了发送报文的成功率。

第二方面,本发明实施例提供了一种报文转发方法,用于报文转发系统的替换装置,该报文转发系统包括:至少一个物理服务器和至少一个替换装置,每个物理服务器对应一个替换装置,所述方法包括:

替换装置获取第一物理服务器中的第一vm发送的业务报文,并根据该业务报文中第二vm的标签,获取第二vm的标签对应的第二vm的地址信息,再采用第二vm的地址信息替换第二物理服务器的地址信息,最后根据第二vm的地址信息将业务报文发送至所述第二vm。

其中,该替换装置为第二物理服务器所对应的替换装置,该业务报文包括目的地址信息和第二vm的标签,该目的地址信息为第二物理服务器的地址信息,该第二vm的标签用于在报文转发系统内唯一标识该第二vm。

替换装置通过根据第二vm的标签获取第二vm的地址信息,并将业务报文中第二物理服务器的地址信息替换为第二vm的地址信息,将替换后的业务报文发送至第二vm。因此,网络设备只需存储第二物理服务器内各个vm的地址信息,无需存储其他物理服务器的vm的地址信息,节约了网络设备的arp表项的存储空间,满足了不同vm之间进行数据交互的需求,提高了不同vm之间数据交互的灵活性。

在一种可能的设计中,该报文转发系统还包括:转换控制装置,该转换控制装置存储有全局标签映射表,该全局标签映射表存储了报文转发系统中每个vm的标签映射信息与相应vm的地址信息的对应关系;

在替换装置获取所述第二vm的标签对应的第二vm的地址信息时,替换装置可以先根据第二vm的标签查询本地标签映射表,当本地标签映射表存储有包括第二vm的标签的表项时,则获取第二vm的标签对应的第二vm的标签映射信息。

当本地标签映射表未存储包括第二vm的标签的表项时,则替换装置向转换控制装置发送查询请求,再接收转换控制装置发送的第二vm的标签映射信息。其中,该查询请求包括第二vm的标签,该第二vm的标签映射信息为转换控制装置采用第二vm的标签查询全局标签映射表得到的。

需要说明的是,本地标签映射表的每个表项存储了一个vm的标签映射信息与该vm的地址信息的对应关系,该vm的地址信息包括该vm的ip地址,该标签映射信息包括该vm所在的物理服务器的地址信息和该vm的标签。

替换装置通过查询本地标签映射表获取第二vm的标签映射信息,只在无法通过本地标签映射表获取第二vm的标签映射信息时,再向转换控制装置请求第二vm的标签映射信息,从而获取第二vm的标签映射信息,提高了替换装置获取第二vm的标签映射信息的效率。

第三方面,本发明实施例提供了一种报文转发方法,用于报文转发系统的转换控制装置,该报文转发系统包括:转换控制装置、至少一个物理服务器和至少一个替换装置,每个物理服务器对应一个替换装置,所述方法包括:

转换控制装置获取第一vm的地址信息,并根据第一vm的地址信息分配在报文转发系统内唯一标识第一vm的标签,而且在获取第一vm的地址信息的同时,获取第一物理服务器的地址信息,再根据第一vm的标签、第一vm的地址信息和第一物理服务器的地址信息建立第一vm的标签映射信息与第一vm的地址信息的对应关系,最后将第一vm的标签映射信息与第一vm的地址信息的对应关系添加至全局标签映射表中。

其中,第一vm的标签映射信息包括第一物理服务器的地址信息和第一vm的标签,全局标签映射表存储了报文转发系统中每个vm的标签映射信息与相应vm的地址信息的对应关系。

需要说明的是,第一vm为第一物理服务器中的vm,第一物理服务器为至少一个物理服务器中的任意一个。

转换控制装置通过获取第一vm的地址信息和第一物理服务器的地址信息,建立第一vm的标签映射信息与第一vm的地址信息的对应关系,并将该对应关系添加至全局标签映射表中,在接收到任意替换装置的查询请求后,即可快速准确的向该替换装置反馈对应的vm的标签映射信息与对应vm的地址信息的对应关系,提高了转换控制装置反馈对应关系的效率。

在一种可能的设计中,在全局标签映射表中存储的任一vm的标签映射信息还可以包括相应vm所属租户的租户标识。

而转换控制装置在分配第一vm的标签的过程中,转换控制装置可以先获取第一vm所属租户的第一租户标识,再根据第一vm的地址信息和第一租户标识,分配第一vm的标签。

在一种可能的设计中,转换控制装置在分配第一vm的标签的过程中,转换控制装置还可以先根据第一vm的地址信息,确定第一vm所在的网络,当第一vm位于本地网络时,根据第一vm的地址信息和第一租户标识,分配第一vm的标签,使第一vm的标签位于第一标签范围内,该本地网络为第一vm所在的最小区域内的网络;当第一vm位于外部网络时,根据第一vm的地址信息和第一租户标识,分配第一vm的标签,使第一vm的标签位于第二标签范围内,该外部网络为所述第一vm所在的最小区域外的网络。

其中,所述第一标签范围为预设的所述本地网络对应的范围,所述第二标签范围为预设的所述外部网络对应的范围。

转换控制装置通过根据第一vm所在的网络为第一vm分配标签,则只需通过第一vm的标签即可确定第一vm所在的网络,减少了确定第一vm所在网络的时间。

在一种可能的设计中,所述方法还包括:

转换控制装置在生成vm的标签映射信息与相应vm的地址信息的对应关系后,还可以接收第一替换装置发送的查询请求,并采用第二vm的ip地址查询全局标签映射表得到第二vm的标签映射信息,最后向第一替换装置发送第二vm的标签映射信息。

其中,该查询请求为第一替换装置在本地标签映射表中查询不到第二vm的ip地址时发送的,该查询请求包括第二vm的ip地址。

转换控制装置通过在全局标签映射表中查询得到第二vm的标签映射信息,并向第一替换装置发送该第二vm的标签映射信息,转换控制装置能够及时向第一替换装置反馈第二vm的标签映射信息,使得第一替换装置可以快速地进行后续步骤,提高了第一替换装置获取第二vm的标签映射信息的效率。

在一种可能的设计中,所述方法还包括:

转换控制装置在第一vm的标签映射信息与第一vm的地址信息的对应关系后,第一vm由所述第一物理服务器迁移至第二物理服务器,并在上线时发布arp免费报文,则转换控制装置还可以接收第二替换装置转发的第一vm发送的arp免费报文,并更新全局标签映射表中第一vm的标签映射信息与第一vm的地址信息的对应关系,使对应关系中所述第一vm的标签与所述第二服务器的地址信息对应。其中,第二替换装置为第二物理服务器对应的替换装置。

转换控制装置通过在全局标签映射表中,更新第一vm的标签映射信息与第一vm的地址信息的对应关系,使得该对应关系中的各个数据保持准确,提高了全局标签映射表中每个对应关系的准确性。

第四方面,本发明实施例提供了一种报文转发方法,用于报文转发系统的网关替换装置,该报文转发系统包括:至少一个物理服务器和至少一个替换装置,每个物理服务器对应一个替换装置,该网关替换装置为至少一个替换装置中的任意一个,该网关替换装置为网关所对应的替换装置,所述方法包括:

网关替换装置根据业务报文中的第二vm的标签查询本地标签映射表,得到第二vm的标签对应的第二物理服务器的地址信息,再采用第二物理服务器的地址信息替换该业务报文中的网关地址信息,最后根据第二物理服务器的地址信息将该业务报文发送至第二物理服务器。

网关替换装置通过将业务报文中的网关地址信息替换为第二物理服务器的地址信息,无需获取第二vm的地址信息。相应的,网络设备的arp表项只需要保证物理服务器之间的路由可达,无需存储vm的地址信息,节约了网络设备的arp表项的存储空间,满足了不同vm之间进行数据交互的需求,提高了不同vm之间进行数据交互的灵活性。

第五方面,提供了一种报文转发装置,用于执行上述第一方面提供的报文转发方法。

第六方面,提供了一种报文转发装置,用于执行上述第二方面提供的报文转发方法。

第七方面,提供了一种报文转发装置,用于执行上述第三方面提供的报文转发方法。

第八方面,提供了一种报文转发装置,用于执行上述第四方面提供的报文转发方法。

上述第五方面至第八方面提供的报文转发装置均可以包括:接收器、发射器、存储器和处理器,该接收器、该发射器、该存储器分别与该处理器连接。

存储器,用于存放程序代码和数据,存储器可以包括高速缓存存储器(cache),也可以包括高速随机存取存储器(英文:randomaccessmemory,简称:ram),还可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

处理器可能是一个中央处理器cpu,或者是特定应用集成电路(英文:application-specificintegratedcircuit:简称:asic),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,处理器用于执行程序代码,以实现上述第一方面、第二方面、第三方面或第四方面的相关步骤。

第九方面,提供了一种报文转发系统,包括第五方面的报文转发装置、第六方面的报文转发装置、第七方面的报文转发装置和第八方面的报文转发装置中的至少一个报文转发装置。

本发明中,通过第一替换装置获取第一业务报文,查询得到第二vm的标签和第二物理服务器的地址信息,再将第一业务报文中的目的地址信息替换为第二物理服务器的地址信息并添加第二vm的标签,最后将第一vm发送的报文发送至第二物理服务器,因此相应的网络设备的arp表项只需要保证物理服务器之间的路由可达,无需存储vm的地址信息,节约了网络设备的arp表项的存储空间,满足了不同vm之间进行数据交互的需求,提高了不同vm之间进行数据交互的灵活性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。

图1是本发明实施例提供的一种报文转发系统的结构示意图;

图2是本发明实施例提供的一种报文转发方法的流程图;

图3是本发明实施例提供的一种报文转发方法应用于第一替换装置的流程图;

图4是本发明实施例提供的一种报文转发方法应用于转换控制装置的流程图;

图5是本发明实施例提供的一种报文转发装置的结构示意图;

图6是图5所示报文转发装置改进后的结构示意图;

图7是图6所示报文转发装置改进后的结构示意图;

图8是图5所示报文转发装置改进后的结构示意图;

图9是本发明实施例提供的另一种报文转发装置的结构示意图;

图10是本发明实施例提供的再一种报文转发装置的结构示意图;

图11是图10所示报文转发装置改进后的结构示意图;

图12是本发明实施例提供的一种报文转发装置的结构示意图;

图13是本发明实施例提供的一种报文转发装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是本发明实施例提供的一种报文转发系统10的结构示意图,参见图1,该报文转发系统10可以包括至少一个物理服务器101、至少一个替换装置102、转换控制装置103、网关104和至少一个交换机105。

其中,替换装置102和转换控制装置103均可以由硬件结构实现,也可以由应用程序实现,本发明实施例对此不做限定。

当替换装置102和转换控制装置103均由硬件结构实现时,则替换装置102和转换控制装置103均可以集成在物理服务器101中;当替换装置102和转换控制装置103均由应用程序实现时,则可以将替换装置102集成在物理服务器101的网卡中,并将转换控制装置103集成在物理服务器101虚拟化的任意一个虚拟机中,本发明实施例对替换装置102和转换控制装置103的位置也不做限定。

需要说明的是,图1仅是以替换装置102和转换控制装置103均由硬件结构实现时为例,得到的报文转发系统100对应的结构示意图。而且,为了便于观察,将替换装置102和转换控制装置103设置在物理服务器101外部。

而且,每个交换机105分别与至少一个物理服务器101连接,网关104与每个交换机105连接,每个替换装置102与转换控制装置103连接,网关104和每个物理服务器101均对应一个替换装置102,网关104对应的替换装置102为网关替换装置102,每个物理服务器101对应的替换装置102设置在物理服务器101的网络接入入口处。

另外,每个物理服务器101可以虚拟化为多个vm1011,而多个物理服务器101中的任意一个物理服务器101对应的替换装置102,可以获取该物理服务器101内每个vm1011发送的报文,并根据报文的类型分别执行向转换控制装置103转发报文、替换报文的目的地址信息、向其他物理服务器101转发报文或者向网关104转发报文等操作。而转换控制装置103则可以接收替换装置102转发的报文,并根据该报文生成vm1011的地址信息与vm1011所在物理服务器101的地址信息之间的对应关系,并将建立的对应关系返回至替换装置102。

其中,vm发送的报文的类型可以包括业务报文和arp报文,业务报文用于在不同的vm之间进行数据交互,arp报文又包括arp免费报文和arp请求报文,arp免费报文用于上报vm的状态,arp请求报文用于请求其他vm的mac地址。

本发明实施例假设图1所示的报文转发系统包括网关、网关替换装置、交换机、转换控制装置、第一物理服务器、第二物理服务器,以及与每个物理服务器对应的替换装置和vm。

具体地,假设第一vm为第一物理服务器中的vm,该第一物理服务器为报文转发系统中的至少一个物理服务器中的任意一个,第一替换装置为第一物理服务器对应的替换装置。

假设第二vm为第二物理服务器中的vm,可以与第一vm进行数据通信,该第二物理服务器也为报文转发系统中的至少一个物理服务器中的任意一个,第二替换装置为第二物理服务器所对应的替换装置。

而且,第一物理服务器与第二物理服务器可以位于同一个数据中心规划时的最小区域(英文:pointofdelivery,简称:pod)内,也可以位于不同的最小区域内,本发明实施例对此不做限定。

另外,每个vm和每个物理服务器都有对应的地址信息,而在本发明实施例中,地址信息通常包括ip地址和mac地址。例如,第一vm的地址信息可以包括第一vm的ip地址和第一vm的mac地址,第一物理服务器的地址信息可以包括第一物理服务器的ip地址和第一物理服务器的mac地址。

需要说明的是,在本发明实施例中,每个替换装置均存储有本地标签映射表,该本地标签映射表用于存储vm的地址信息与相应vm所在物理服务器的地址信息的映射关系,并通过标签表示该映射关系,也即是用于存储物理服务器的至少一个vm的标签映射信息与相应vm的地址信息的对应关系。该本地标签映射表中存储的任一vm的标签映射信息包括相应vm所在的物理服务器的地址信息和相应vm的标签。

而且,转换控制装置存储有全局标签映射表,该全局标签映射表存储了报文转发系统中每个vm的标签映射信息与相应vm的地址信息的对应关系,该全局标签映射表中存储的任一vm的标签映射信息包括相应vm所在的物理服务器的地址信息和相应vm的标签。

相应的,图2是本发明实施例提供的一种报文转发方法的流程图,如图2所示,该报文转发方法应用于图1所示的报文转发系统中,包括以下步骤:

在步骤201中,转换控制装置获取第一vm的地址信息和第一物理服务器的地址信息。

在本发明实施例中,由于地址信息通常包括ip地址和mac地址,因此,第一vm的地址信息可以为第一vm的ip地址和mac地址,第一物理服务器的地址信息可以为第一物理服务器的ip地址和mac地址。

例如,第一vm的ip地址可以为ip1,第一vm的mac地址可以为mac1,第一物理服务器的ip地址可以为maca,第一物理服务器的mac地址可以为macb。

当第一vm上线或者重启时,第一vm会在正常启动后发送arp免费报文,位于第一物理服务器的第一替换装置获取该第一vm发送的报文,并确定获取的报文的类型为arp免费报文,则根据该arp免费报文携带的第一vm的地址信息,查询第一替换装置的本地标签映射表是否包括第一vm的标签映射信息,如果不包括则将arp免费报文发送至转换控制装置。

其中,该arp免费报文为目的地址为自身vm的地址信息的报文,用于向交换机上报vm已经上线或重启的状态。

需要说明的是,本发明实施例仅是以第一替换装置采用查询本地标签映射表的方式获取第一vm的标签映射信息为例进行了说明,而在实际应用中第一替换装置也可以采用其他方式获取第一vm的标签映射信息,本发明实施例对此不做限定。

由于本地标签映射表中存储的任一vm的标签映射信息包括相应vm所在的物理服务器的地址信息和相应vm的标签,因此,第一vm的标签映射信息可以包括第一vm的标签和第一物理服务器的地址信息,第一vm的标签用于在报文转发系统内唯一标识第一vm。

而且,第一替换装置可以根据第一vm的ip地址,查询本地标签映射表是否存储有包括第一vm的ip地址的表项,也即是本地标签映射表是否包括第一vm的标签映射信息,当然还可以通过第一vm的mac地址进行查询,本发明实施例对此不做限定。

当第一替换装置的本地标签映射表中并未存储有包括第一vm的ip地址的表项时,则说明本地标签映射表中并不包括第一vm的标签映射信息,将arp免费报文发送至转换控制装置,转换控制装置接收该arp免费报文后,可以先确定接收的报文的类型,当确定为arp免费报文后,则获取第一vm的地址信息,以便根据第一vm的地址信息查询转换控制装置的全局标签映射表中是否包括第一vm的标签映射信息。

另外,由于第一替换装置对应第一物理服务器,在向转换控制装置发送arp免费报文时,携带了第一替换装置的识别标识,转换控制装置则可以根据该识别标识确定第一替换装置,进而确定第一替换装置对应的第一物理服务器,最后获取第一物理服务器的地址信息。

需要说明的是,通常情况下第一vm上线或者重启时,转换控制装置还未建立第一vm的标签映射信息与第一vm的地址信息的对应关系,因此在第一替换装置本地标签映射表以及转换控制装置的全局标签映射表中,都不会存储有第一vm的ip地址或者mac地址,进而需要通过转换控制装置获取第一vm的地址信息和第一物理服务器的地址信息,并建立第一vm的标签映射信息与第一vm的地址信息的对应关系。

而且,在管理员通过云平台或者虚拟化服务平台在物理服务器创建vm时,转换控制装置也可以通过预设的接口获取第一vm的地址信息和第一物理服务器的地址信息,本发明实施例对转换控制装置获取第一vm的地址信息和第一物理服务器的地址信息的方式不做限定。

在步骤202中,转换控制装置根据第一vm的地址信息分配在报文转发系统内唯一标识第一vm的标签。

当转换控制装置在全局标签映射表中无法查询到第一vm的标签映射信息时,也即是全局标签映射表中并未存储包括第一vm的地址信息的表项时,则需要根据第一vm的地址信息为第一vm分配第一vm的标签,从而建立第一vm的标签映射信息与第一vm的地址信息的对应关系。

而且,由于多个vm可以属于不同租户,而每个租户的vm之间不能进行数据访问,只有同一个租户的vm之间可以进行数据访问。因此,在全局标签映射表中存储的任一vm的标签映射信息还可以包括相应vm所属租户的租户标识,可以通过为vm添加vm所属租户的租户标识,从而标识不同的vm是否属于同一个租户。

相应的,在为vm分配标签时,还可以先获取第一vm所属租户的第一租户标识,并根据该第一vm的地址信息和第一租户标识,分配第一vm的标签。

另外,转换控制装置还可以根据第一vm的地址信息,确定第一vm位于最小区域内的网络,或者确定第一vm位于最小区域外的网络,并根据第一vm所在的网络为第一vm分配不同的标签。

具体地,转换控制装置根据第一vm的地址信息,确定该第一vm所在的网络,在该第一vm位于本地网络时,根据该第一vm的地址信息和该第一租户标识,分配该第一vm的标签,该本地网络为该第一vm所在的最小区域内的网络,第一vm的标签位于第一标签范围内,该第一标签范围为预设的本地网络对应的范围。

在确定该第一vm位于外部网络时,根据该第一vm的地址信息和该第一租户标识,分配该第一vm的标签,该外部网络为该第一vm所在的最小区域外的网络,该第一vm的标签位于第二标签范围内,该第二标签范围为预设的外部网络对应的范围。

例如,假设第一标签范围为[0,799],第二标签范围为[800,999],则当第一vm位于本地网络时,第一vm的标签可以为500,当第一vm位于外部网络时,第一vm的标签可以为900。

在步骤203中,转换控制装置将第一vm的标签映射信息与第一vm的地址信息的对应关系添加至全局标签映射表中,并将对应关系发送至第一替换装置。

在转换控制装置为第一vm分配了标签后,则可以根据第一vm的标签、第一vm的地址信息和第一物理服务器的地址信息,建立第一vm的标签映射信息与第一vm的地址信息的对应关系,再将建立的对应关系添加至全局标签映射表中。

例如,该全局标签映射表可以如表1所示,第一vm与第二vm、第三vm和第四vm的标签均不相同;第一vm与第二vm、第四vm的租户标识相同,则第一vm、第二vm和第四vm之间可以互相访问数据;第一vm与第三vm的物理服务器地址信息相同、与第二vm和第四vm的物理服务器地址信息均不相同,则第一vm与第三vm位于同一物理服务器,但第一vm与第二vm和第四vm位于不同的物理服务器。

表1

而且,转换控制装置在建立了第一vm的标签映射信息与第一vm的地址信息的对应关系后,还可以将建立的对应关系返回至第一替换装置,以便第一替换装置存储该对应关系,并在后续步骤中可以直接获取第一vm的标签映射信息,无需再向转换控制装置请求查询第一vm的标签映射信息。

需要说明的是,在步骤201中第一vm不止是在上线或者重启时才会发送arp免费报文,还可以在发生迁移后发送arp免费报文,而转换控制装置则在接收到该arp免费报文后,更新第一vm的标签映射信息与第一vm的地址信息的对应关系。

具体地,当第一vm由第一物理服务器迁移至第二物理服务器时,第一vm在上线后发送arp免费报文,而第二替换装置获取该arp免费报文后,查询第二替换装置的本地标签映射表中并未存储有第一vm的标签映射信息,则将该arp免费报文转发至转换控制装置,其中该第二替换装置为第二物理服务器对应的替换装置。

转换控制装置接收第二替换装置转发的第一vm发送的arp免费报文,则在全局标签映射表中查询到第一vm的标签映射信息,并更新该全局标签映射表中该第一vm的标签映射信息与该第一vm的地址信息的对应关系,将第一物理服务器的地址信息替换为第二物理服务器的地址信息,使该对应关系中该第一vm的标签与该第二服务器的地址信息对应。

而且,转换控制装置还可以将更新后的对应关系发送至第一替换装置和第二替换装置,使得第一替换装置对第一vm原有的对应关系进行更新,第二替换装置存储更新后的对应关系。

因此在第一vm迁移后,第一vm的标签映射信息与该第一vm的地址信息的对应关系可在第一vm上线或者重启时自动进行刷新,无需人工干预即可完成对全局标签映射表以及相应本地标签映射表的维护和更新。

在步骤204中,第一替换装置获取第一vm发送的arp请求报文。

在第一vm正常启动运行后,假设第一vm需要与位于第二物理服务器的第二vm进行数据通信,由于第一vm并未获知第二vm的mac地址,无法与第二vm进行数据通信,则第一vm需要先获取第二vm的mac地址,以便生成相应的业务报文。

因此,第一vm发送arp请求报文,在该arp请求报文经过第一替换装置时,第一替换装置获取该arp请求报文,以便在后续步骤获取第二vm的标签映射信息。

其中,该arp请求报文用于请求第二vm的mac地址,且该arp请求报文包括该第二vm的ip地址,例如,可以参见表1,第二vm的ip地址为ip2。

在步骤205中,第一替换装置根据第二vm的ip地址获取响应mac地址。

其中,该响应mac地址用于返回第一vm,以便第一vm在后续步骤中根据响应mac地址生成业务报文。

第一替换装置获取第一vm发送的报文,并确定获取的报文的类型,当确定为arp请求报文时,获取arp请求报文中携带的第二vm的ip地址,根据该第二vm的ip地址,在第一替换装置的本地标签映射表中查询第二vm的标签映射信息,从而根据第二vm的标签确定响应mac地址。

具体地,第一替换装置根据第二vm的ip地址,查询本地标签映射表,当该本地标签映射表存储有包括该第二vm的ip地址的表项时,则可以得到第二vm的ip地址对应的第二vm的标签,根据第二vm的标签确定该第二vm所在的网络。

而且,在步骤202中标签的范围被划分为第一标签范围和第二标签范围,分别对应最小区域内的网络和最小区域外的网络,因此可以根据第二vm的标签确定第二vm所在的网络。

进一步地,第一替换装置将第二vm的标签分别与第一标签范围和第二标签范围比较,当第二vm的标签位于第一标签范围内,确定该第二vm位于本地网络;当第二vm的标签位于第二标签范围内,确定该第二vm位于外部网络。

例如,参照表1中的第一vm和第四vm的标签,假设第一标签范围为[0,799],第二标签范围为[800,999],则第一vm位于本地网络,第四vm位于外部网络。

相应的,当第二vm位于本地网络时,则第一替换装置可以获取预设的第一mac地址,并将预设的第一mac地址作为响应mac地址;在该第二vm位于该外部网络时,则第一替换装置可以获取本地网络内的网关的第二mac地址,并将将本地网络内的网关的第二mac地址作为响应mac地址。

其中,该第二mac地址为网关的mac地址,该第一mac地址用于标识第一替换装置,例如,该第一mac地址可以为第一替换装置的虚拟mac地址,或者预先设定的虚拟mac地址,本发明实施例对此不做限定。

需要说明的是,当第一替换装置在本地标签映射表中查询不到第二vm的ip地址时,也即是第一替换装置根据第二vm的ip地址,查询本地标签映射表,但是本地标签映射表中并未存储包括第二vm的ip地址的表项时,则可以向转换控制装置发送查询请求,其中该查询请求包括第二vm的ip地址,用于请求第二vm的标签映射信息。

相应的,转换控制装置接收第一替换装置发送的查询请求,并采用第二vm的ip地址查询全局标签映射表,当该全局标签映射表存储有包括第二vm的ip地址的表项时,则可以得到该第二vm的标签映射信息,并向第一替换装置发送第二vm的标签映射信息。

但是,如果该全局标签映射表并未存储有包括第二vm的ip地址的表项时,则转换控制装置可以建立第二vm的标签映射信息与第二vm的地址信息的对应关系,并将第二vm的标签映射信息以及网关的地址信息发送至第一替换装置和网关替换装置,以便后续步骤获取第二vm的标签映射信息以及网关的地址信息。

其中,该网关的地址信息可以包括网关的ip地址和网关的mac地址,而建立对应关系的过程与步骤201至203类似,在此不做赘述。

第一替换装置则接收转换控制装置发送的第二vm的标签映射信息,根据第二vm的标签确定响应mac地址,其中确定响应mac地址的过程与上述过程类似,在此不做赘述。

而且,第一替换装置在接收到第二vm的标签映射信息的同时,还可以将第二vm的标签映射信息存储至第一替换装置的本地标签映射表中,以便在后续步骤中无需再次向该转换控制装置发送查询请求,即可获取该第二vm的标签映射信息。

另外,第一替换装置在获取网关的地址信息的同时,还可以将网关的地址信息存储在第一替换装置的本地标签映射表中,或者以其他表的形式存储该网关的地址信息,本发明实施例对此不做限定。

例如,参见表2,网关的地址信息可以包括ip地址和mac地址,分别为ipwg和macwg。

表2

需要说明的是,由于第一替换装置会多次存储转换控制装置发送的标签映射信息,因此第一替换装置需要每隔预设时长对第一替换装置的本地标签映射表进行维护,将预设时长内未被调用的第一物理服务器以外的其他物理服务器的vm的标签映射信息与相应vm的地址信息的对应关系删除,其中该预设时长可根据第一替换装置存储的标签映射信息确定,本发明实施例对此不做限定。

另外,第一替换装置在查询本地标签映射表是否存储有第二vm的ip地址的同时,还可以查询该本地标签映射表是否存储有第一vm的ip地址,如果并未存储有第一vm的ip地址,则将第一vm的地址信息与第二vm的ip地址一同发送至转换控制装置,通过转换控制装置建立第一vm的标签映射信息与第一vm的地址信息的对应关系。

但是在通常情况下,第一替换装置都可以在本地标签映射表查询到第一vm的ip地址。

在步骤206中,第一替换装置向第一vm发送响应报文。

在第一替换装置获取了响应mac地址后,则可以根据第一vm的地址信息,向第一vm发送响应报文。其中,该响应报文包括响应mac地址,以便第一vm根据响应报文中的响应mac地址生成业务报文,从而与第二vm进行数据通信。

在步骤207中,第一替换装置获取第一物理服务器中的第一vm发送的第一业务报文。

在第一vm接收到第一替换装置发送的响应报文后,则可以根据该响应报文生成第一业务报文,并向第二vm发送该第一业务报文。当第一业务报文经过第一替换装置时,第一替换装置获取该第一业务报文,以便后续步骤对该第一业务报文进行修改。

其中,该第一业务报文可以包括源地址信息和目的地址信息,该源地址信息可以包括第一vm的ip地址和第一vm的mac地址,该目的地址信息可以包括目的ip地址和目的mac地址。该源地址信息即为该第一业务报文中的源地址字段中的信息,该目的地址信息即为该第一业务报文中的目的地址字段中的信息。

另外,第一vm生成第一业务报文时,还可以将第二vm的ip地址作为目的ip地址,并将第一替换装置发送的响应报文中的响应mac地址作为目的mac地址。

例如,参见表1,第一业务报文的源地址信息可以为ip1和mac1,目的地址信息可以为ip2和响应mac地址。

在步骤208中,第一替换装置查询本地标签映射表。

第一替换装置获取第一vm发送的第一业务报文,并确定该报文的类型为业务报文,则可以根据该第一业务报文获取目的ip地址,根据该目的ip地址在本地标签映射表中查询第二vm的标签映射信息,得到目的ip地址对应的第二vm的标签映射信息。

具体地,第一替换装置根据该目的ip地址查询第一替换装置的本地标签映射表,当该本地标签映射表存储有包括该目的ip地址的表项时,则可以获取该目的ip地址对应的第二vm的标签映射信息。

但是,当该本地标签映射表中并未存储有包括该目的ip地址的表项时,则第一替换装置可以向该转换控制装置发送查询请求,再接收该转换控制装置发送的该第二vm的标签映射信息,该过程与步骤205中的过程类似,在此不做赘述。

其中,该查询请求包括目的ip地址,用于请求查询第二vm的标签映射信息,该第二vm的标签映射信息可以为该转换控制装置采用该目的ip地址查询全局标签映射表得到的。

需要说明的是,第一替换装置在接收到该第二vm的标签映射信息的同时,还可以将该第二vm的标签映射信息存储至该第一替换装置的本地标签映射表中,以便在后续步骤中无需再次向该转换控制装置发送查询请求,即可获取该第二vm的标签映射信息。

另外,第一替换装置还可以根据第一vm的ip地址,查询本地标签映射表,得到该第一vm的ip地址对应的第一vm的标签映射信息。

具体地,第一替换装置根据第一vm的ip地址查询本地标签映射表,当该本地标签映射表存储有包括该第一vm的ip地址的表项时,则获取该第一vm的ip地址对应的该第一vm的标签映射信息;当该本地标签映射表未存储包括该第一vm的ip地址的表项时,向转换控制装置发送查询请求,接收该转换控制装置发送的第一vm的标签映射信息,该过程与步骤205中的过程类似,在此不做赘述。

其中,该查询请求包括该第一vm的ip地址,该第一vm的标签映射信息为该转换控制装置采用该第一vm的ip地址查询该全局标签映射表得到的。

需要说明的是,通常情况下在本步骤208中第一替换装置可以查询到第一vm的标签映射信息。

在步骤209中,第一替换装置根据第二vm的标签确定第二vm所在的网络。

本步骤209与步骤205中第一替换装置根据第二vm的标签确定第二vm所在的网络的过程类似,在此不再赘述。

需要说明的是,步骤210和步骤211与步骤212和步骤213为并列关系,当第二vm位于最小区域内的网络时,则执行步骤210;当第二vm位于最小区域外的网络时,则执行步骤212。

在步骤210中,第一替换装置对第一业务报文进行修改,得到第二业务报文。

当第一替换装置确定第二vm位于最小区域内的网络时,也即是位于本地网络时,则可以根据第二vm的标签映射信息获取第二物理服务器的地址信息,采用第二物理服务器的地址信息替换第一业务报文中的目的地址信息,从而得到第二业务报文,再执行步骤211,使得第二业务报文经由第一替换装置发送至第二物理服务器。

而且,第一替换装置还可以根据第二vm的标签映射信息获取第二vm的标签,并在第一业务报文中添加第二vm的标签,以便第二替换装置获取该第二业务报文时,可以根据该第二vm的标签再次对第二业务报文中的目的地址信息进行替换。

其中,第一替换装置可以在ip报文头保留字段中增加该第二vm的标签,本发明实施例对此不做限定。

需要说明的是,第一替换装置在替换第一业务报文中的目的地址信息时,还可以将第一业务报文中的源地址信息替换为第一物理服务器的地址信息。

具体地,第一替换装置根据第一vm的ip地址,查询本地标签映射表,得到第一vm的ip地址对应的第一vm的标签映射信息,采用第一物理服务器的地址信息替换第一业务报文中的源地址信息,并在第一业务报文中添加第一vm的标签,得到第二业务报文。

例如,参见表1,第一替换装置可以将第一业务报文中的源地址信息由ip1和mac1替换为ipa和maca,并将目的地址信息由ip2和响应mac地址替换为ipb和macb,得到第二业务报文。

在步骤211中,第一替换装置向第二物理服务器发送第二业务报文。

在第一替换装置得到第二业务报文后,即可向第二物理服务器发送该第二业务报文,使得第二替换装置获取该第二业务报文。而第二替换装置在获取该第二业务报文后,根据第二业务报文中的第二vm的标签查询第二替换装置的本地标签映射表,得到该第二vm的标签对应的第二vm的地址信息,并采用第二vm的地址信息替换该第二业务报文中的第二物理服务器的地址信息,并根据该第二vm的地址信息将该第二业务报文发送至该第二vm,从而完成将第一vm与第二vm的数据通信。

例如,参见表1,第二替换装置可以将第二业务报文中的源地址信息由ipa和maca替换为ip1和mac1,并将目的地址信息由ipb和macb替换ip2和mac2。

另外,第一替换装置在向第二物理服务器发送第二业务报文之前,还可以比较第一vm对应的租户标识与第二vm对应的租户标识。如果第一vm对应的租户标识与第二vm对应的租户标识相同,才向第二物理服务器发送第二业务报文。

具体地,第一替换装置根据第一业务报文中的源地址信息,查询第一替换装置的本地标签映射表,得到该源地址信息对应的第一vm的标签映射信息,从而得到第一vm对应的租户标识,再比较第一vm对应的租户标识与该第二vm的标签映射信息的租户标识。

当第一vm的标签映射信息的租户标识与第二vm的标签映射信息的租户标识不同时,则认为第一vm对应的租户标识与第二vm对应的租户标识不匹配,并丢弃该第一业务报文;当该第一vm的标签映射信息的租户标识与该第二vm的标签映射信息的租户标识相同时,则认为第一vm对应的租户标识与第二vm对应的租户标识匹配,向第二物理服务器发送该第二业务报文。

例如,参见表1,当第一替换装置确定第一vm和第二vm的租户标识均为1时,才向第二物理服务器发送该第二业务报文。

在步骤212中,第一替换装置对第一业务报文进行修改,得到第三业务报文。

当第一替换装置确定该第二vm位于外部网络时,获取网关的地址信息,并采用该网关的地址信息替换第一业务报文中的目的地址信息,得到第三业务报文,再执行步骤213,使得第三业务报文经由第一替换装置发送至网关。

而且,第一替换装置还可以在第一业务报文中添加并在第一业务报文中添加该第二vm的标签,以便网关替换装置获取该第三业务报文时,可以根据该第二vm的标签再次对第三业务报文中的目的地址信息进行替换。

需要说明的是,第一替换装置在替换第一业务报文中的目的地址信息时,还可以将第一业务报文中的源地址信息替换为第一物理服务器的地址信息。该过程与步骤210中的过程类似,在此不做赘述。

例如,参见表1和表2,第一替换装置可以将第一业务报文中的源地址信息由ip1和mac1替换为ipa和maca,并将目的地址信息由ip2和响应mac地址替换为ipwg和macwg,得到第三业务报文。

在步骤213中,第一替换装置向网关发送第三业务报文。

在第一替换装置得到第三业务报文后,即可向网关发送该第三业务报文,使得网关替换装置获取该第三业务报文。网关替换装置获取该第三业务报文后,则可以根据该第三业务报文中的第二vm的标签,查询网关替换装置的本地标签映射表,得到该第二vm的标签对应的第二物理服务器的地址信息,并采用该第二物理服务器的地址信息替换该第三业务报文中的该网关的地址信息,根据该第二物理服务器的地址信息将该第三业务报文通过外部路由发送至该第二物理服务器。

例如,参见表1和表2,网关替换装置可以将第三业务报文中的目的地址信息由ipwg和macwg替换为ipb和macb。

而且,第一替换装置在向网关发送第二业务报文之前,还可以比较第一vm对应的租户标识与第二vm对应的租户标识,该过程与步骤211中的过程类似,在此不再赘述。

需要说明的是,当第一vm接收其他vm发送的业务报文时,第一替换装置在获取该业务报文后,可以将业务报文中的目的地址信息替换为第一vm的地址信息,从而将该业务报文发送至第一vm。

例如,当第一替换装置接收其他vm或其他物理服务器发送的报文时,第一替换装置接收第二替换装置转发的第二vm或者第二物理服务器发送的第四业务报文,根据第一vm的标签查询第一替换装置的本地标签映射表,得到该第一vm的标签对应的第一vm的地址信息,采用第一vm的地址信息替换该业务报文中的第一物理服务器的地址信息,得到第五业务报文,最后根据该第一vm的地址信息将该第五业务报文发送至该第一vm。

其中,该第四业务报文中的目的地址信息携带有该第一vm的标签和第一替换装置所在的第一物理服务器的地址信息。

而且,当第二vm发送第四业务报文时,则第四业务报文的源地址信息可以包括第二vm的标签和第二替换装置所在的第二物理服务器的地址信息,则第一替换装置还可以将第四业务报文中的源地址信息替换为第二vm的地址信息。

相应的,第一替换装置根据该第二vm的标签查询本地标签映射表,得到该第二vm的标签对应的第二vm的地址信息,采用该第二vm的地址信息替换该第四业务报文中的该第二物理服务器的地址信息,从而保证第四业务报文不会被判定为错误报文而丢弃。

需要说明的是,在实际应用中,参见图3,第一替换装置可以按照以下步骤对第一vm发送的报文进行处理:

步骤301、判断第一vm发送的报文是否为arp报文,如果是则执行步骤302,如果不是则执行步骤306。

步骤302、根据arp报文的目的地址信息,查询本地标签映射表中是否存储有目的地址,如果有则执行步骤303,如果没有则执行步骤309。

步骤303、获取目的地址对应的标签映射信息,根据本地标签映射信息中的标签判断该标签是否属于第一标签范围,当标签属于第一标签范围时,则执行步骤304,当标签不属于第一标签范围时,则执行步骤305。

步骤304、将预设的第一mac地址作为响应mac地址发送至第一vm。

步骤305、将网关的第二mac地址作为响应mac地址发送至第一vm。

步骤306、根据非arp报文的目的地址信息,查询本地标签映射表中是否存储有目的地址,如果有则执行步骤307,如果没有则执行步骤309。

步骤307、获取目的地址对应的标签映射信息,根据本地标签映射信息中的标签判断该标签是否属于第一标签范围,当标签属于第一标签范围时,则执行步骤308,当标签不属于第一标签范围时,则执行步骤310。

步骤308、采用目的地址对应vm所在的物理服务器的地址信息替换非arp报文中的目的地址信息,并添加对应vm的标签,进行转发。

步骤309、将第一vm发送的报文转发至转换控制装置。

步骤310、采用网关的地址信息替换替换非arp报文中的目的地址信息,并添加对应vm的标签,进行转发。

需要说明的是,上述步骤301可以参见步骤201、205和207,上述步骤302、306和309可以参见步骤201、205和208,上述步骤303和307可以参见步骤205,上述步骤304和305可以参见步骤205和206,上述步骤308可以参见步骤210和211,上述步骤310可以参见步骤212和213,在此不再赘述。

而且,在实际应用中,参见图4,转换控制装置可以按照以下步骤对第一替换装置发送的报文进行处理:

步骤401、判断第一替换装置发送的报文是否为arp免费报文,如果是则执行步骤402,如果不是则执行步骤406。

步骤402、根据arp免费报文的目的地址信息,查询全局标签映射表中是否存储有目的地址,如果有则执行步骤403,如果没有则执行步骤404。

步骤403、更新全局标签映射表中第一vm的标签映射信息与第一vm的地址信息的对应关系,执行步骤405。

步骤404、根据arp免费报文的目的地址信息,建立第一vm的标签映射信息与第一vm的地址信息的对应关系,执行步骤405。

步骤405、将第一vm的标签映射信息与第一vm的地址信息的对应关系发送至第一替换装置。

步骤406、根据非arp免费报文的目的地址信息,查询全局标签映射表中是否存储有目的地址,如果有则执行步骤407,如果没有则执行步骤408。

步骤407、将目的地址对应vm的标签映射信息与目的地址信息的对应关系发送至第一替换装置。

步骤408、根据非arp免费报文,建立目的地址对应vm的标签映射信息与目的地址信息的对应关系,并将该对应关系和网关的地址信息发送至第一替换装置和网关替换装置。

需要说明的是,上述步骤401可以参见步骤201、205和208,上述步骤402可以参见步骤202、205和209,上述步骤403可以参见步骤203,上述步骤404、405、407和408可以参见步骤203、205和208,上述步骤406可以参见步骤202、205和209,在此不再赘述。

综上所述,本发明实施例中提供的报文转发方法,通过第一替换装置获取第一业务报文,查询得到第二vm的标签和第二物理服务器的地址信息,再将第一业务报文中的目的地址信息替换为第二物理服务器的地址信息并添加第二vm的标签,最后将第一vm发送的报文发送至第二物理服务器,因此相应的网络设备的arp表项只需要保证物理服务器之间的路由可达,无需存储vm的地址信息,节约了网络设备的arp表项的存储空间,满足了不同vm之间进行数据交互的需求,提高了不同vm之间进行数据交互的灵活性。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

图5是本发明实施例提供的一种报文转发装置50的结构示意图,如图5所示,该报文转发装置50应用于报文转发系统的第一替换装置,该报文转发系统包括:至少一个物理服务器和至少一个替换装置,每个物理服务器对应一个替换装置,该第一替换装置为该至少一个替换装置中的任意一个,该报文转发装置50包括:第一获取模块501、第二获取模块502、确定模块503、第一替换模块504和第一发送模块505。

该第一获取模块501,用于获取第一物理服务器中的第一虚拟机vm发送的第一业务报文,该第一业务报文包括目的地址信息,该目的地址信息包括目的网际协议ip地址和目的媒体访问控制mac地址,该第一物理服务器为该第一替换装置对应的物理服务器;

该第二获取模块502,用于获取该目的ip地址对应的第二vm的标签映射信息,该第二vm的标签映射信息包括:该第二vm的标签和第二物理服务器的地址信息,该第二vm的标签用于在该报文转发系统内唯一标识该第二vm,该第二物理服务器为该第二vm所在的物理服务器;

该确定模块503,用于根据该第二vm的标签确定该第二vm所在的网络;

该第一替换模块504,用于在该第二vm位于本地网络时,采用该第二物理服务器的地址信息替换该第一业务报文中的目的地址信息,并在该第一业务报文中添加该第二vm的标签得到第二业务报文,该本地网络为该第一vm所在的最小区域内的网络;

该第一发送模块505,用于向该第二物理服务器发送该第二业务报文。

综上所述,本发明实施例中提供的报文转发装置,通过第一替换装置获取第一业务报文,查询得到第二vm的标签和第二物理服务器的地址信息,再将第一业务报文中的目的地址信息替换为第二物理服务器的地址信息并添加第二vm的标签,最后将第一vm发送的报文发送至第二物理服务器,因此相应的网络设备的arp表项只需要保证物理服务器之间的路由可达,无需存储vm的地址信息,节约了网络设备的arp表项的存储空间,满足了不同vm之间进行数据交互的需求,提高了不同vm之间进行数据交互的灵活性。

可选地,该报文转发系统还包括:转换控制装置,该转换控制装置存储有全局标签映射表,该全局标签映射表存储了该报文转发系统中每个vm的标签映射信息与该vm的地址信息的对应关系;

该第二获取模块502,还用于根据该目的ip地址查询本地标签映射表,当该本地标签映射表存储有包括该目的ip地址的表项时,获取该目的ip地址对应的第二vm的标签映射信息,当该本地标签映射表未存储包括该目的ip地址的表项时,向该转换控制装置发送查询请求,接收该转换控制装置发送的该第二vm的标签映射信息,

该本地标签映射表的每个表项存储了一个vm的标签映射信息与该vm的地址信息的对应关系,该vm的地址信息包括该vm的ip地址,该vm的标签映射信息包括该vm所在的物理服务器的地址信息和该vm的标签,该查询请求包括该目的ip地址,该第二vm的标签映射信息为该转换控制装置采用该目的ip地址查询该全局标签映射表得到的。

可选地,该报文转发系统还包括:该本地网络内的网关和网关替换装置,该网关替换装置与该网关对应。

参见图6,该报文转发装置还包括:第三获取模块506、第一查询模块507、第二替换模块508和第二发送模块509。

该第三获取模块506,用于在该第二vm位于外部网络时,获取该网关的地址信息,该外部网络为该第一vm所在的最小区域外的网络;

该第一查询模块507,用于根据该目的ip地址,查询本地标签映射表,得到该目的ip地址对应的第二vm的标签,该本地标签映射表的每个表项存储了一个vm的标签映射信息与该vm的地址信息的对应关系,该vm的地址信息包括该vm的ip地址,该vm的标签映射信息包括该vm所在的物理服务器的地址信息和该vm的标签;

该第二替换模块508,用于采用该网关的地址信息替换该第一业务报文中的目的地址信息,并在该第一业务报文中添加该第二vm的标签,得到第三业务报文;

该第二发送模块509,用于向该网关发送该第三业务报文。

可选地,每个替换装置设置在对应的物理服务器的网络接入入口处。

参见图7,该报文转发装置还包括:第四获取模块510、第五获取模块511和第三发送模块512。

该第四获取模块510,用于获取该第一vm发送的地址解析协议arp请求报文,该arp请求报文用于请求该第二vm的mac地址,该arp请求报文包括该第二vm的ip地址;

该第五获取模块511,用于根据该第二vm的ip地址获取响应mac地址;

该第三发送模块512,用于向该第一vm发送响应报文,该响应报文包括该响应mac地址,以便该第一vm根据该响应mac地址生成该第一业务报文,其中,该第一vm将该第二vm的ip地址作为该目的ip地址,将该响应mac地址作为该目的mac地址。

可选地,该第五获取模块511还用于根据该第二vm的ip地址,查询本地标签映射表,得到该第二vm的ip地址对应的第二vm的标签,根据该第二vm的标签确定该第二vm所在的网络,在该第二vm位于该本地网络时,将预设的第一mac地址作为该响应mac地址,该第一mac地址用于标识该第一替换装置,在该第二vm位于该外部网络时,将该本地网络内的网关的第二mac地址作为该响应mac地址,该外部网络为该第一vm所在的最小区域外的网络。

可选地,该报文转发系统还包括:转换控制装置,该转换控制装置存储有全局标签映射表,该全局标签映射表存储了该报文转发系统中每个vm的标签映射信息与该vm的地址信息的对应关系;

该第五获取模块511还用于根据该第二vm的ip地址查询本地标签映射表,当该本地标签映射表存储有包括该第二vm的ip地址的表项时,获取该第二vm的ip地址对应的第二vm的标签,当该本地标签映射表未存储包括该第二vm的ip地址的表项时,向该转换控制装置发送查询请求,该查询请求包括该第二vm的ip地址,接收该转换控制装置发送的该第二vm的标签映射信息,该第二vm的标签映射信息包括该第二vm的标签,该第二vm的标签映射信息为该转换控制装置采用该第二vm的ip地址查询该全局标签映射表得到的。

可选地,该第五获取模块511还用于将该第二vm的标签分别与第一标签范围和第二标签范围比较,当该第二vm的标签位于该第一标签范围内,确定该第二vm位于该本地网络,当该第二vm的标签位于该第二标签范围内,确定该第二vm位于该外部网络,该第一标签范围为预设的该本地网络对应的范围,该第二标签范围为预设的该外部网络对应的范围。

可选地,该第一替换装置存储有本地标签映射表,该本地标签映射表的每个表项存储了一个vm的标签映射信息与该vm的地址信息的对应关系,该vm的地址信息包括该vm的ip地址,该vm的标签映射信息包括该vm所在的物理服务器的地址信息、该vm的标签和该vm所属租户的租户标识;

参见图8,该报文转发装置还包括:第二查询模块513、匹配模块514和报文丢弃模块515。

该第二查询模块513,用于根据该第一业务报文中的源地址信息,查询该本地标签映射表,得到该源地址信息对应的第一vm的标签映射信息;

该匹配模块514,用于比较该第一vm的标签映射信息的租户标识与该第二vm的标签映射信息的租户标识;

该报文丢弃模块515,用于在该第一vm的标签映射信息的租户标识与该第二vm的标签映射信息的租户标识不同时,丢弃该第一业务报文;

该第一发送模块505还用于在该第一vm的标签映射信息的租户标识与该第二vm的标签映射信息的租户标识相同时,向该第二物理服务器发送该第二业务报文。

图9是本发明实施例提供的另一种报文转发装置90的结构示意图,如图9所示,该报文转发装置90应用于报文转发系统的替换装置,该报文转发系统包括:至少一个物理服务器和至少一个替换装置,每个物理服务器对应一个替换装置,该报文转发装置90包括:第一获取模块901、第二获取模块902、替换模块903和发送模块904。

该第一获取模块901,用于获取第一物理服务器中的第一vm发送的业务报文,该业务报文包括目的地址信息和第二vm的标签,该目的地址信息为第二物理服务器的地址信息,该替换装置为该第二物理服务器所对应的替换装置,该第二vm的标签用于在该报文转发系统内唯一标识该第二vm;

该第二获取模块902,用于根据该第二vm的标签,获取该第二vm的标签对应的第二vm的地址信息;

该替换模块903,用于采用该第二vm的地址信息替换该第二物理服务器的地址信息;

该发送模块904,用于根据该第二vm的地址信息将该第二业务报文发送至该第二vm。

综上所述,本发明实施例中提供的报文转发装置,通过根据第二vm的标签获取第二vm的地址信息,并将业务报文中第二物理服务器的地址信息替换为第二vm的地址信息,将替换后的业务报文发送至第二vm。因此,网络设备只需存储第二物理服务器内各个vm的地址信息,无需存储其他物理服务器的vm的地址信息,节约了网络设备的arp表项的存储空间,满足了不同vm之间进行数据交互的需求,提高了不同vm之间数据交互的灵活性。

可选地,该报文转发系统还包括:转换控制装置,该转换控制装置存储有全局标签映射表,该全局标签映射表存储了该报文转发系统中每个vm的标签映射信息与该vm的地址信息的对应关系;

该第二获取模块902还用于根据该第二vm的标签查询本地标签映射表,当该本地标签映射表存储有包括该第二vm的标签的表项时,获取该第二vm的标签对应的第二vm的标签映射信息,当该本地标签映射表未存储包括该第二vm的标签的表项时,向该转换控制装置发送查询请求,接收该转换控制装置发送的该第二vm的标签映射信息,

该本地标签映射表的每个表项存储了一个vm的标签映射信息与该vm的地址信息的对应关系,该vm的地址信息包括该vm的ip地址,该标签映射信息包括该vm所在的物理服务器的地址信息和该vm的标签,该查询请求包括该第二vm的标签,该第二vm的标签映射信息为该转换控制装置采用该第二vm的标签查询该全局标签映射表得到的。

图10是本发明实施例提供的一种报文转发装置100的结构示意图,如图10所示,该报文转发装置100应用于报文转发系统的转换控制装置,该报文转发系统包括:转换控制装置、至少一个物理服务器和至少一个替换装置,每个物理服务器对应一个替换装置,该报文转发装置100包括:第一获取模块1001、第二获取模块1002、分配模块1003、对应关系建立模块1004和添加模块1005。

该第一获取模块1001,用于获取第一vm的地址信息,该第一vm为第一物理服务器中的vm,该第一物理服务器为该至少一个物理服务器中的任意一个;

该第二获取模块1002,用于获取该第一物理服务器的地址信息;

该分配模块1003,用于根据该第一vm的地址信息分配在该报文转发系统内唯一标识该第一vm的标签;

该对应关系建立模块1004,用于根据该第一vm的标签、该第一vm的地址信息和该第一物理服务器的地址信息建立该第一vm的标签映射信息与该第一vm的地址信息的对应关系,该第一vm的标签映射信息包括:该第一物理服务器的地址信息和该第一vm的标签;

该添加模块1005,用于将该第一vm的标签映射信息与该第一vm的地址信息的对应关系添加至全局标签映射表中,该全局标签映射表存储了该报文转发系统中每个vm的标签映射信息与该vm的地址信息的对应关系。

综上所述,本发明实施例中提供的报文转发装置,通过获取第一vm的地址信息和第一物理服务器的地址信息,建立第一vm的标签映射信息与第一vm的地址信息的对应关系,并将该对应关系添加至全局标签映射表中,在接收到任意替换装置的查询请求后,即可快速准确的向该替换装置反馈对应的vm的标签映射信息与对应vm的地址信息的对应关系,提高了转换控制装置反馈对应关系的效率。

可选地,该全局标签映射表中存储的任一vm的标签映射信息还包括该任一vm所属租户的租户标识;

该分配模块1003还用于获取该第一vm所属租户的第一租户标识,根据该第一vm的地址信息和该第一租户标识,分配该第一vm的标签。

可选地,该分配模块1003还用于根据该第一vm的地址信息,确定该第一vm所在的网络,在该第一vm位于本地网络时,根据该第一vm的地址信息和该第一租户标识,分配该第一vm的标签,使该第一vm的标签位于第一标签范围内,在该第一vm位于外部网络时,根据该第一vm的地址信息和该第一租户标识,分配该第一vm的标签,使该第一vm的标签位于第二标签范围内;

该本地网络为该第一vm所在的最小区域内的网络,该外部网络为该第一vm所在的最小区域外的网络,该第一标签范围为预设的该本地网络对应的范围,该第二标签范围为预设的该外部网络对应的范围。

可选地,参见图11,该报文转发装置还包括:第一接收模块1006、查询模块1007和发送模块1008。

该第一接收模块1006,用于接收第一替换装置发送的查询请求,该查询请求为该第一替换装置在本地标签映射表中查询不到第二vm的ip地址时发送的,该查询请求包括该第二vm的ip地址,该第一替换装置为该第一物理服务器对应的替换装置;

该查询模块1007,用于采用该第二vm的ip地址查询该全局标签映射表得到该第二vm的标签映射信息;

该发送模块1008,用于向该第一替换装置发送该第二vm的标签映射信息。

可选地,参见图12,该装置还包括:第二接收模块1009和更新模块1010。

该第二接收模块1009,用于接收第二替换装置转发的该第一vm发送的arp免费报文,该arp免费报文是该第一vm由该第一物理服务器迁移至第二物理服务器后上线时发布的,该第二替换装置为该第二物理服务器对应的替换装置;

该更新模块1010,用于更新该全局标签映射表中该第一vm的标签映射信息与该第一vm的地址信息的对应关系,使该对应关系中该第一vm的标签与该第二服务器的地址信息对应。

图13是本发明实施例提供的一种报文转发装置130的结构示意图,该报文转发装置130应用于图1所示报文转发系统中。参见图13,该替换装置130包括:接收器1301、发射器1302、存储器1303和处理器1304,该接收器1301、该发射器1302、该存储器1303分别与该处理器1304连接。

存储器1303,用于存放程序代码和数据,存储器1303可以包括高速缓存存储器(cache),随机存取存储器(英文:randomaccessmemory,简称:ram),还可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

处理器1304可能是一个中央处理器(英文:centralprocessingunit,简称:cpu),或者是特定应用集成电路(英文:application-specificintegratedcircuit:简称:asic),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,处理器1304用于执行存储器1303中存储的程序代码,以实现上述第一方面、第二方面、第三方面或第四方面的相关步骤。因此,该报文转发装置130根据执行的程序代码的不同,可以是图1中的第一替换装置,第二替换装置或转发控制装置。

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

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