一种报文转发方法及网络设备

文档序号:1849638 发布日期:2021-11-16 浏览:9次 >En<

阅读说明:本技术 一种报文转发方法及网络设备 (Message forwarding method and network equipment ) 是由 杨杰 王海波 于 2020-05-12 设计创作,主要内容包括:一种报文转发方法及网络设备,该方法具体包括:第一网络设备向第二网络设备发送第一路由信息,所述第一路由信息用于通告到达第一虚拟机的第一地址的路由,所述第一路由信息包括所述第一虚拟机的第一虚拟网络标识;所述第一网络设备接收所述第二网络设备发送的第一报文,所述第一报文携带有所述第一虚拟网络标识,所述第一报文的目的地址为所述第一地址;所述第一网络设备根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文。第一网络设备根据第一报文中的虚拟网络标识向对应的本地虚拟机转发第一报文,无需基于虚拟路由转发VRF表转发该报文,避免了报文再次被转发至其他的网络设备上,保证了报文的正常转发。(A message forwarding method and network equipment are provided, the method specifically includes: a first network device sends first routing information to a second network device, wherein the first routing information is used for announcing a route reaching a first address of a first virtual machine, and the first routing information comprises a first virtual network identifier of the first virtual machine; the first network device receives a first message sent by the second network device, the first message carries the first virtual network identifier, and a destination address of the first message is the first address; and the first network equipment forwards the first message to the first virtual machine according to the first virtual network identifier. The first network equipment forwards the first message to the corresponding local virtual machine according to the virtual network identifier in the first message, and the message does not need to be forwarded based on a virtual routing forwarding VRF table, so that the message is prevented from being forwarded to other network equipment again, and the normal forwarding of the message is ensured.)

一种报文转发方法及网络设备

技术领域

本申请涉及通信技术领域,尤其涉及一种报文转发方法及网络设备。

背景技术

随着云计算的快速发展,数据中心的虚拟化程度越来越高。为了满足日益增加的用户需求,数据中心通常采用可扩展虚拟局域网络(Virtual extensible Local AreaNetwork,VXLAN)技术来扩展网络虚拟化,以得到足够数量的虚拟网络,从而满足用户的使用需求。

数据中心的VXLAN中通常包括核心设备、对等的多个VXLAN隧道端点(VXLANTunnel End Point,VTEP)设备以及分别与VTEP设备连接的虚拟机(virtual machine,VM)。一般地,VM可以部署于与VTEP设备连接的服务器上。虚拟网络功能(virtual networkfunction,VNF)网元可以分布于多个VM上,该多个VM能够实现相同的网络功能,且共享同一个业务互联网(Internet Protocol,IP)地址。

目前,在VXLAN网络中,在同一VNF网元下的多个VM接入了不同的VXLAN隧道端点设备的情况下,VXLAN隧道端点设备在接收到网络侧的报文,并对该进行报文转发的时候容易出现路由环路的现象,导致报文无法被正确发送至VM处。

发明内容

本申请实施例提供了一种报文转发方法及网络设备,第一网络设备接收第二网络设备所发送的报文,该报文中携带有第一网络设备的本地虚拟机对应的虚拟网络标识,且第一网络设备可以根据报文中的虚拟网络标识向对应的本地虚拟机转发第一报文,无需再基于虚拟路由转发(Virtual Routing Forwarding,VRF)表转发该报文,避免了报文再次被转发至其他的网络设备上,保证了报文的正常转发。

本申请第一方面提供了一种报文转发方法,包括:第一网络设备向第二网络设备发送第一路由信息,所述第一路由信息用于通告到达第一虚拟机的第一地址的路由,所述第一路由信息包括所述第一虚拟机的第一虚拟网络标识,所述第一虚拟机为所述第一网络设备的本地虚拟机;所述第一网络设备接收所述第二网络设备发送的第一报文,所述第一报文携带有所述第一虚拟网络标识,所述第一报文的目的地址为所述第一地址;所述第一网络设备根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文。其中,第一虚拟机的第一地址可以是第一虚拟机与其他的一个或多个虚拟机共享的业务IP地址,共享同一个业务IP地址的虚拟机可以用于处理同一业务,示例性地,第一虚拟机的第一地址可以是环回(loopback)IP地址。

本方案中,第一网络设备基于第一报文中的第一虚拟网络标识,确定将第一报文转发至第一虚拟网络标识对应的第一虚拟机,无需基于第一网络设备中的VRF表来实现第一报文的转发,从而避免了第一报文再次被转发至其他的网络设备上,导致出现路由环路等问题,保证了第一报文的正常转发。

可选地,在一种可能的实现方式中,所述第一网络设备向所述第二网络设备发送第一路由信息之前,所述方法还包括:所述第一网络设备根据所述第一虚拟机为所述第一网络设备的本地虚拟机,为所述第一虚拟机分配所述第一虚拟网络标识。其中,在第一网络设备与第二网络设备之间部署有VXLAN隧道的情况下,第一网络设备为第一虚拟机所分配的第一虚拟网络标识具体可以为VXLAN网络标识(VXLAN Network Identifier,VNI),该VNI可以用于标识VXLAN网络下的第一虚拟机。

可选地,在一种可能的实现方式中,所述方法还包括:在第一网络设备所挂载的第二虚拟机上线之后,所述第一网络设备可以向所述第二网络设备发送第二路由信息,所述第二路由信息用于通告到达第二虚拟机的所述第一地址的路由,所述第二路由信息包括所述第二虚拟机的第二虚拟网络标识,其中,所述第一地址为所述第一虚拟机和所述第二虚拟机共同的地址,所述第二虚拟网络标识和所述第一虚拟网络标识不同,所述第二虚拟机为所述第一网络设备的本地虚拟机。

可选地,在一种可能的实现方式中,所述方法还包括:所述第一网络设备接收所述第二网络设备发送的第二报文,所述第二报文携带有所述第二虚拟网络标识,所述第二报文的目的地址为所述第一地址;所述第一网络设备根据所述第二虚拟网络标识向所述第二虚拟机转发所述第二报文。也就是说,第二网络设备在接收到第二报文时,可以根据第二报文的目的地址为第一地址选择第二虚拟机为处理第二报文的虚拟机,且在向第一网络设备发送的第二报文中携带第二虚拟机对应的第二虚拟网络标识,以使得第一网络设备根据所述第二虚拟网络标识向所述第二虚拟机转发所述第二报文。示例性地,第二网络设备可以在接收到第二报文时,在VRF表中选择包括有第二虚拟网络标识的路由作为转发第二报文的路由,并且在向第一网络设备发送的第二报文中携带第二虚拟网络标识。

本方案中,第二网络设备可以例如基于负载均衡策略在包括多条路由的VRF表中确定其中一条路由作为转发报文的路由,且将确定好的路由中的虚拟网络标识携带于转发给第一网络设备的报文中,以使得第一网络设备可以基于报文中的虚拟网络标识将报文转发给对应的虚拟机,保证了报文能够被正常转发至第二网络设备选择好的虚拟机,避免出现路由环路现象的同时,还能够实现虚拟机的负载均衡。

可选地,在一种可能的实现方式中,所述第一路由信息中还包括所述第一虚拟机的IP地址,所述方法还包括:所述第一网络设备保存所述第一虚拟网络标识和所述第一虚拟机的IP地址之间的对应关系,以便于第一网络设备可以基于所述第一虚拟网络标识确定第一虚拟机的IP地址。

可选地,在一种可能的实现方式中,在所述第一网络设备保存所述第一虚拟网络标识和所述第一虚拟机的IP地址之间的对应关系的情况下,所述第一网络设备根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文,包括:所述第一网络设备根据所述第一报文中的所述第一虚拟网络标识,确定与所述第一虚拟网络标识对应的所述第一虚拟机的IP地址;所述第一网络设备根据所述第一虚拟机的IP地址,经由本地出接口向所述第一虚拟机转发所述第一报文。

可选地,在一种可能的实现方式中,第二网络设备可以对发送第一网络设备的第一报文进行隧道封装,所述第一网络设备接收所述第二网络设备发送的第一报文后,所述第一网络设备对所述第一报文进行隧道解封装,获取所述第一虚拟网络标识,以根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文。

可选地,在一种可能的实现方式中,所述第一虚拟机的所述第一地址为环回loopback地址。

可选地,在一种可能的实现方式中,所述第一网络设备与所述第二网络设备之间部署有可扩展虚拟局域网络VXLAN隧道。

本申请第二方面提供一种报文转发方法,该方法包括:第二网络设备接收第一网络设备发送的第一路由信息,所述第一路由信息用于通告到达第一虚拟机的第一地址的路由,所述第一路由信息包括所述第一虚拟机的第一虚拟网络标识,所述第一虚拟机为所述第一网络设备的本地虚拟机;所述第二网络设备向所述第一网络设备发送第一报文,所述第一报文的目的地址为所述第一地址,所述第一报文中携带有所述第一虚拟机的所述第一虚拟网络标识。

可选地,在一种可能的实现方式中,所述第一报文中的所述第一虚拟网络标识用于指示所述第一网络设备根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文。

可选地,在一种可能的实现方式中,所述方法还包括:

所述第二网络设备根据所述第一路由信息生成虚拟路由转发VRF表,所述VRF表中包括所述第一虚拟机的所述第一地址与所述第一虚拟网络标识之间的对应关系。

可选地,在一种可能的实现方式中,所述第二网络设备根据所述第一地址向所述第一网络设备发送第一报文,包括:

所述第二网络设备根据所述第一报文的目的地址为所述第一地址,在所述VRF表中确定与所述第一地址对应的所述第一虚拟网络标识;

所述第二网络设备向所述第一网络设备发送所述第一报文,所述第一报文中携带有所述第一虚拟网络标识。

可选地,在一种可能的实现方式中,所述方法还包括:所述第二网络设备接收所述第一网络设备发送的第二路由信息,所述第二路由信息用于通告到达第二虚拟机的所述第一地址的路由,所述第二路由信息包括所述第二虚拟机的第二虚拟网络标识,其中,所述第一地址为所述第一虚拟机和所述第二虚拟机共同的地址,所述第二虚拟网络标识和所述第一虚拟网络标识不同,所述第二虚拟机为所述第一网络设备的本地虚拟机。

可选地,在一种可能的实现方式中,所述方法还包括:所述第二网络设备向所述第一网络设备发送第二报文,所述第二报文携带有所述第二虚拟网络标识,所述第二报文的目的地址为所述第一地址,所述第二虚拟网络标识用于指示所述第一网络设备根据所述第二虚拟网络标识向所述第二虚拟机转发所述第二报文。

可选地,在一种可能的实现方式中,所述第一路由信息还包括所述第一虚拟机的IP地址,所述第二网络设备向所述第一网络设备发送第一报文之前,所述方法还包括:所述第二网络设备根据所述第一虚拟机的IP地址对所述第一报文进行隧道封装,以通过隧道向所述第一网络设备发送所述第一报文。

本申请第三方面提供一种网络设备,该网络设备包括:发送单元,用于向第二网络设备发送第一路由信息,所述第一路由信息用于通告到达第一虚拟机的第一地址的路由,所述第一路由信息包括所述第一虚拟机的第一虚拟网络标识,所述第一虚拟机为所述第一网络设备的本地虚拟机;接收单元,用于接收所述第二网络设备发送的第一报文,所述第一报文携带有所述第一虚拟网络标识,所述第一报文的目的地址为所述第一地址;所述发送单元,还用于根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文。

可选地,在一种可能的实现方式中,所述网络设备还包括:处理单元,用于根据所述第一虚拟机为所述第一网络设备的本地虚拟机,为所述第一虚拟机分配所述第一虚拟网络标识。

可选地,在一种可能的实现方式中,所述发送单元还用于:向所述第二网络设备发送第二路由信息,所述第二路由信息用于通告到达第二虚拟机的所述第一地址的路由,所述第二路由信息包括所述第二虚拟机的第二虚拟网络标识,其中,所述第一地址为所述第一虚拟机和所述第二虚拟机共同的地址,所述第二虚拟网络标识和所述第一虚拟网络标识不同,所述第二虚拟机为所述第一网络设备的本地虚拟机。

可选地,在一种可能的实现方式中,所述接收单元,还用于接收所述第二网络设备发送的第二报文,所述第二报文携带有所述第二虚拟网络标识,所述第二报文的目的地址为所述第一地址;所述发送单元,还用于根据所述第二虚拟网络标识向所述第二虚拟机转发所述第二报文。

可选地,在一种可能的实现方式中,所述第一路由信息中还包括所述第一虚拟机的IP地址,所述处理单元还用于保存所述第一虚拟网络标识和所述第一虚拟机的IP地址之间的对应关系。

可选地,在一种可能的实现方式中,所述处理单元,还用于根据所述第一报文中的所述第一虚拟网络标识,确定与所述第一虚拟网络标识对应的所述第一虚拟机的IP地址;

所述发送单元,还用于根据所述第一虚拟机的IP地址,经由本地出接口向所述第一虚拟机转发所述第一报文。

可选地,在一种可能的实现方式中,所述处理单元,还用于对所述第一报文进行隧道解封装,获取所述第一虚拟网络标识,以根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文。

可选地,在一种可能的实现方式中,所述第一虚拟机的所述第一地址为环回loopback地址。

可选地,在一种可能的实现方式中,所述网络设备与所述第二网络设备之间部署有VXLAN隧道。

本申请第四方面提供一种网络设备,所述网络设备包括:接收单元,用于接收第一网络设备发送的第一路由信息,所述第一路由信息用于通告到达第一虚拟机的第一地址的路由,所述第一路由信息包括所述第一虚拟机的第一虚拟网络标识,所述第一虚拟机为所述第一网络设备的本地虚拟机;发送单元,用于向所述第一网络设备发送第一报文,所述第一报文的目的地址为所述第一地址,所述第一报文中携带有所述第一虚拟机的所述第一虚拟网络标识。

可选地,在一种可能的实现方式中,所述第一报文中的所述第一虚拟网络标识用于指示所述第一网络设备根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文。

可选地,在一种可能的实现方式中,所述网络设备还包括:处理单元,用于根据所述第一路由信息生成VRF表,所述VRF表中包括所述第一虚拟机的所述第一地址与所述第一虚拟网络标识之间的对应关系。

可选地,在一种可能的实现方式中,所述处理单元,还用于根据所述第一报文的目的地址为所述第一地址,在所述VRF表中确定与所述第一地址对应的所述第一虚拟网络标识;所述发送单元,还用于向所述第一网络设备发送所述第一报文,所述第一报文中携带有所述第一虚拟网络标识。

可选地,在一种可能的实现方式中,所述接收单元,还用于接收所述第一网络设备发送的第二路由信息,所述第二路由信息用于通告到达第二虚拟机的所述第一地址的路由,所述第二路由信息包括所述第二虚拟机的第二虚拟网络标识,其中,所述第一地址为所述第一虚拟机和所述第二虚拟机共同的地址,所述第二虚拟网络标识和所述第一虚拟网络标识不同,所述第二虚拟机为所述第一网络设备的本地虚拟机。

可选地,在一种可能的实现方式中,所述发送单元,还用于向所述第一网络设备发送第二报文,所述第二报文携带有所述第二虚拟网络标识,所述第二报文的目的地址为所述第一地址,所述第二虚拟网络标识用于指示所述第一网络设备根据所述第二虚拟网络标识向所述第二虚拟机转发所述第二报文。

可选地,在一种可能的实现方式中,所述第一路由信息还包括所述第一虚拟机的IP地址;所述处理单元,还用于根据所述第一虚拟机的IP地址对所述第一报文进行隧道封装,以通过隧道向所述第一网络设备发送所述第一报文。

本申请第五方面提供一种网络设备,该网络设备包括:处理器、存储器;存储器用于存储指令;处理器用于执行存储器中的指令,使得网络设备执行如前述第一方面或第二方面中任一项的方法。

本申请第六方面提供一种网络设备,该网络设备包括:处理器;所述处理器与存储器耦合,所述处理器用于执行存储器中的指令,使得网络设备执行如前述第一方面或第二方面中任一项的方法。

本申请第七方面提供一种计算机存储介质,该计算机存储介质可以是非易失性的;该计算机存储介质中存储有计算机可读指令,当该计算机可读指令被处理器执行时实现第一方面或第二方面中任一设计中的方法。

本申请第八方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面或第二方面中任一设计中的方法。

本申请第九方面提供一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

从以上技术方案可以看出,本申请实施例具有以下优点:

本申请实施例提供了一种报文转发方法及网络设备,第一网络设备接收第二网络设备所发送的报文,该报文中携带有第一网络设备的本地虚拟机对应的虚拟网络标识,且第一网络设备可以根据报文中的虚拟网络标识向对应的本地虚拟机转发第一报文,无需基于VRF表转发该报文,避免了报文再次被转发至其他的网络设备上,保证了报文的正常转发。

附图说明

图1为本申请实施例提供的数据中心组网示意图;

图2a为本申请实施例提供的南北流量的示意图;

图2b为本申请实施例提供的东西流量的示意图;

图3为本申请实施例提供的一种业务场景示意图;

图4为本申请实施例提供的另一种场景示意图;

图5为本申请实施例提供的一种报文转发方法500的流程示意图;

图6为本申请实施例提供的一种VXLAN隧道报文的封装示意图;

图7为本申请实施例提供的一种报文转发方法700的流程示意图;

图8为本申请实施例提供的一种报文转发方法的示意图;

图9为本申请实施例提供的一种网络设备90的结构示意图;

图10为本申请实施例提供的一种网络设备100的结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的单元的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个单元可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的单元或子单元可以是也可以不是物理上的分离,可以是也可以不是物理单元,或者可以分布到多个电路单元中,可以根据实际的需要选择其中的部分或全部单元来实现本申请方案的目的。

在传统的移动通信网络中,例如第二代(2generation,2G)通信网络、第三代(3generation,3G)通信网络以及第四代(4generation,4G)通信网络,大多数的电信设备都是采用专有平台结构,即不同电信设备之间的软件和硬件彼此独立。比如,在4G网络系统中,移动管理单元(mobility management entity,MME)、业务网关(serving gateway,S-GW)以及分组报文网关(packet data network gateway,P-GW)等分别由独立的框式或盒式设备承载,这些设备在软件层面以及硬件层面都没有交集。也就是说,如果在一个机房内,MME负荷低,MME的单板也不能拔出来插到即将过载的S-GW网元上。

随着数据中心集成和规模化,以及第五代(5generation,5G)通信技术、网络功能虚拟化(network functions virtualization,NFV)技术、云技术的不断成熟,电信网元逐渐从专用的硬件平台,迁移到数据中心中通用的硬件平台,并且以VNF网元的形态部署在数据中心服务器的VM上,形成了电信云数据中心网络。

目前,在数据中心内部,具有交换数据集中、东西流量增多等特征,对数据中心网络的要求进一步提高。因此,为了适应以上变化,数据中心网络从传统的虚拟局域网络(virtual local area network,VLAN)网络,向VXLAN网络与软件定义网络(networkdefined software,SDN)转型,实现网络与业务的适配与联动,提高资源使用效率与业务发放效率。其中,VXLAN是一种网络虚拟化技术,通过将原主机发出的数据包封装在用户数据报协议(User Datagram Protocol,UDP)中,并使用物理网络的IP、MAC作为外层头进行封装,然后在网络上传输,到达目的地后由隧道终结点解封装并将数据发送给目标主机。通过VXLAN技术可以实现在已有三层网络上构建虚拟二层网络,实现VM之间的二层互通。

具体地,可以参阅图1,图1为本申请实施例提供的数据中心组网示意图。在数据中心中,典型的VXLAN组网可以包括:数据中心网络网关(data center gateway,DCGW)、脊(spine)交换机、叶(leaf)交换机以及VM;DCGW可以与一个或多个spine交换机连接,spine交换机可以与一个或多个leaf交换机连接,leaf交换机可以连接有一个或多个VM。其中,DCGW与leaf交换机之间可以建立VXLAN隧道,leaf交换机与leaf交换机之间也可以建立VXLAN隧道。

为了便于理解,以下将对VXLAN网络中所涉及的专业术语进行解释。

VTEP设备,VTEP设备是能够对VXLAN报文进行封装和解封装的网络设备。VXLAN报文中源IP地址为源端VTEP设备的IP地址,目的IP地址为目的端VTEP设备的IP地址。一对VTEP地址就对应着一条VXLAN隧道。源端VTEP设备对报文进行封装后,通过隧道向目的端VTEP设备发送封装后的报文,再由目的端VTEP设备对接收到的封装报文进行解封装。图1中的leaf交换机设备可以具有对VXLAN报文进行封装和解封装的能力,即为VTEP设备。

网络虚拟边缘(Network Virtualization Edge,NVE)设备,NVE设备是实现网络虚拟化功能的网络实体。报文在经过NVE设备封装转换后,NVE设备之间就可基于三层基础网络建立二层虚拟化网络,图1中的leaf交换机设备即为NVE设备。VTEP设备即为NVE设备的一种类型。

二层网关(Level-2 GateWay,L2GW),L2GW类似于传统网络的二层接入设备,在VXLAN网络中通过L2GW可以解决租户接入VXLAN虚拟网络,也可用于同一VXLAN网络的子网通信。

三层网关(Level-3 GateWay,L3GW)。为了使VXLAN网络之间,以及VXLAN网络和非VXLAN网络之间能够进行通信,引入了L3GW的概念。L3GW可以用于VXLAN网络的跨子网通信以及外部网络的访问。其中,图1中的leaf交换机可以作为L2GW或者L3GW,又或者同时作为L2GW以及L3GW,即leaf交换机可以为L2GW/L3GW。

通常,数据中心网络的流量可划分为南北流量和东西流量。南北流量,指的是从外部网络进入数据中心网络的流量以及从数据中心网络流出外部网络的流量。在数据中心内部传输南北流量时,VXLAN隧道的一个端点在DCGW,另一个端点在leaf交换机,即流量是从DCGW到leaf交换机,或者是leaf交换机到DCGW。东西流量,指的是数据中心内部VM之间的流量。在数据中心内部传输东西流量时,VXLAN隧道的两个端点都在leaf交换机上,即流量通常是由一个leaf交换机到另一个leaf交换机。当流量从DCGW流入本leaf交换机,或者由另一leaf交换机流入本leaf交换机时,该流量属于从网络侧流入的流量。当该流量从用户侧设备或用户网络流入本leaf交换机,如从本leaf交换机挂载的VM流入本leaf交换机时,该流量属于从用户侧流入的流量。

具体地,可以参阅图2a,图2a为本申请实施例提供的南北流量的示意图。如图2a所示,从外部网络进入数据中心的报文由DCGW通过spine交换机1转发给leaf交换机1,最后由leaf交换机1转发给leaf交换机1所连接的VM1;同样,VM1将其所产生的报文发送给leaf 1,由leaf交换机1通过spine交换机1转发给DCGW,最后由DCGW发送给外部网络。其中,从DCGW到VM1的流量以及从VM1到DCGW的流量均可以称为南北流量。

可以参阅图2b,图2b为本申请实施例提供的东西流量的示意图。如图2a所示,VM1将其所产生的报文发送给leaf交换机1,由leaf交换机1通过spine交换机1转发给leaf交换机2,最后由leaf交换机2发送给VM3。其中,从VM1到VM3的流量可以称为东西流量。

一般地,在VXLAN网络中部署有SDN时,对于跨子网的两个VM之间的东西流量,leaf交换机可以实现就近转发,通过spine交换机将流量就近转发到另一个VM上,从而避免了跨子网的流量绕行到DCGW而形成流量瓶颈。

在数据中心网络中,VM是可以任意部署的;在一定的条件下,VM甚至是可以动态迁移的。这样,在VNF网元分布在多个VM上的情况下,多个VM共享同一个IP地址,且该多个VM可能是部署在不同的机架上的,即多个VM接入了不同的leaf交换机。如图3所示,图3为本申请实施例提供的一种业务场景示意图,VNF网元分布在VM1至VM4上,VM1至VM4可以共享同一个IP地址(IP地址例如可以为1.1.1.1)。其中,VM1和VM2接入leaf交换机1,VM3和VM4接入leaf交换机2。这样一来,在leaf交换机1或者leaf交换机1转发IP地址为1.1.1.1的报文时,对应的下一跳有可能是本地VM,下一跳也可能是远端VM。这里将下一跳为leaf交换机1的本地VM的路由称为本地路由,将下一跳为远端VM的路由称为远端路由。远端VM例如是不同于leaf交换机1的其他leaf交换机下挂载的VM。

具体地,对于图3中所示的leaf交换机1,leaf交换机1的VRF表具体可以为:

prefix:1.1.1.1nexthop:VM1(local)

(--前缀:1.1.1.1下一跳:VM1(本地))

prefix:1.1.1.1nexthop:VM2(local)

(--前缀:1.1.1.1下一跳:VM2(本地))

prefix:1.1.1.1nexthop:VM3(remote)

(--前缀:1.1.1.1下一跳:VM3(远端))

prefix:1.1.1.1nexthop:VM4(remote)

(--前缀:1.1.1.1下一跳:VM4(远端))

也就是说,在前缀(即目的地址)为1.1.1.1的情况下,leaf交换机1对应的下一跳路由包括有两个本地路由(下一跳为VM1和VM2)以及两个远端路由(下一跳为VM3和VM4)。

对于图3中所示的leaf交换机2,leaf交换机2的VRF表具体可以为:

prefix:1.1.1.1nexthop:VM1(remote)

(--前缀:1.1.1.1下一跳:VM1(远端))

prefix:1.1.1.1nexthop:VM2(remote)

(--前缀:1.1.1.1下一跳:VM2(远端))

prefix:1.1.1.1nexthop:VM3(local)

(--前缀:1.1.1.1下一跳:VM3(本地))

prefix:1.1.1.1nexthop:VM4(local)

(--前缀:1.1.1.1下一跳:VM4(本地))

同理,在前缀(即目的地址)为1.1.1.1的情况下,leaf交换机2对应的下一跳路由包括有两个远端路由(下一跳为VM1和VM2)以及两个本地路由(下一跳为VM3和VM4)。

一般地,为了实现VNF网元基于VM的负载均衡,即由多个VM均衡地分担VNF网元的业务,在leaf交换机上会实现本地路由和远端路由等价。也就是说,在leaf交换机转发某一个IP地址下的报文时,leaf交换机可以在该IP地址对应的多个本地路由和/或远端路由中等价选择其中一个路由,并基于所选择的路由转发该报文。

这样一来,在共享同一个IP地址的多个VM接入了不同的leaf交换机时,容易存在路由环路的问题。具体地,在leaf交换机1接收到目的地址为1.1.1.1的报文时,leaf交换机1在VM1至VM4中选择了VM3或VM4作为路由下一跳,由于VM3和VM4接入leaf交换机2,因此leaf交换机1将报文通过spine交换机1转发至leaf交换机2;leaf交换机2在接收到spine交换机1所转发的报文时,leaf交换机2可能选择VM1或VM2作为路由下一跳,因此leaf交换机2通过spine交换机2将该报文转发至leaf交换机1上。也就是说,该报文会一直在leaf交换机1和leaf交换机之间转发,并不能够到达目的地址,产生了路由环路的问题。

此外,如果leaf交换机在转发报文时,优先选择本地路由,虽然可以解决环路问题,但报文转发压力会全部集中在本地VM上,难以实现整网的负载均衡。如图4所示,图4为本申请实施例提供的另一种场景示意图。其中,VNF网元1分布在VM1和VM2上,VM1和VM2共享IP地址1.1.1.1;VNF网元2分布在VM3和VM4上,VM3和VM4共享IP地址2.2.2.2,且VM1至VM3接入leaf交换机1,VM4接入leaf交换机2。

此时,对于图4中所示的leaf交换机1,leaf交换机1的VRF表具体可以为:

prefix:1.1.1.1nexthop:VM1(local)

(--前缀:1.1.1.1下一跳:VM1(本地))

prefix:1.1.1.1nexthop:VM2(local)

(--前缀:1.1.1.1下一跳:VM2(本地))

prefix:2.2.2.2nexthop:VM3(local)

(--前缀:2.2.2.2下一跳:VM3(本地))

prefix:2.2.2.2nexthop:VM4(remote)

(--前缀:2.2.2.2下一跳:VM4(远端))

对于图4中所示的leaf交换机2,leaf交换机2的VRF表具体可以为:

prefix:1.1.1.1nexthop:VM1(remote)

(--前缀:1.1.1.1下一跳:VM1(远端))

prefix:1.1.1.1nexthop:VM2(remote)

(--前缀:1.1.1.1下一跳:VM2(远端))

prefix:2.2.2.2nexthop:VM3(remote)

(--前缀:2.2.2.2下一跳:VM3(远端))

prefix:2.2.2.2nexthop:VM4(local)

(--前缀:2.2.2.2下一跳:VM4(本地))

本实施例中上述VRF中的信息旨在更清晰地阐述本实施例的应用场景,可以理解地,实际应用中VRF表中呈现的信息内容和样式可以根据需要具体设计。在图4所示的场景下,如果leaf交换机在转发报文时优先选择本地路由,那么在leaf交换机1接收到由VM1或VM2发送的报文,且该报文的目的地址为2.2.2.2时,leaf交换机1依据优先选择本地路由的规则,会一直选择将报文转发给本地的VM3,从而导致VM3一直处于高负载状态,而VM4则一直处于空闲状态,无法实现负载均衡。

以上以图1示出的网络结构为例,可以理解地,数据中心网络的可能结构并不仅限于此。例如,数据中心网络也可以不包括spine交换机,或者在leaf交换机下还连接二层leaf交换机,然后由二层leaf交换机挂载VM用户设备等,该二层leaf交换机也可以理解为用户侧设备。但在不同的各种网络结构中,仍然可能存在上述描述的问题。

有鉴于此,本申请实施例提供一种报文转发方法,由第一网络设备接收第二网络设备所发送的报文,该报文中携带有第一网络设备的本地虚拟机对应的虚拟网络标识,且第一网络设备可以根据第一报文中的虚拟网络标识向对应的本地虚拟机转发第一报文,避免了报文再次被转发至其他的网络设备上,保证了报文的正常转发。

本申请实施例提供的报文转发方法可以应用于图3或图4所示的部署有VXLAN隧道的网络架构中,也可以应用于部署有其他传输隧道的网络架构中,在此不做限定。

可以理解的是,本实施例中所述的第一网络设备可以为挂载有虚拟机的网络设备,例如可以为图1所示的网络结构中的leaf交换机1;本实施例中所述的第二网络设备可以为与第一网络设备建立有传输隧道的网络设备,例如可以为图1所示的网络结构中的DCGW或者leaf交换机2,本实施例并不对第一网络设备以及第二网络设备做具体限定。

可以参阅图5,图5为本申请实施例提供的一种报文转发方法500的流程示意图。如图5所示,本申请实施例提供的报文转发方法500,包括:

501、第一网络设备向第二网络设备发送第一路由信息,所述第一路由信息用于通告到达第一虚拟机的第一地址的路由,所述第一路由信息包括所述第一虚拟机的第一虚拟网络标识,所述第一虚拟机为所述第一网络设备的本地虚拟机。

本实施例中,第一网络设备通过向第二网络设备发送第一路由信息,来向第二网络设备通告到达第一虚拟机的第一地址的路由,以使得第二网络设备可以确定第一虚拟机的第一地址。其中,第一虚拟机的第一地址可以是第一虚拟机与其他的一个或多个虚拟机共享的业务IP地址,共享同一个业务IP地址的虚拟机可以用于处理同一业务。示例性地,第一虚拟机的第一地址可以是环回(loopback)IP地址,该loopback IP地址例如可以为1.1.1.1,共享同一个loopback IP地址1.1.1.1的第一虚拟机和其他的一个或多个虚拟机均可以用于处理发往loopback IP地址1.1.1.1的报文。

在第一网络设备所发送的第一路由信息中还包括有第一虚拟机的第一虚拟网络标识,该第一虚拟网络标识与第一虚拟机具有对应关系,用于标识所述第一虚拟机;第一网络设备可以根据第一虚拟网络标识确定与所述第一虚拟网络标识对应的第一虚拟机。示例性地,在第一网络设备与第二网络设备之间部署有VXLAN隧道的情况下,该第一虚拟网络标识具体可以为VXLAN网络标识(VXLAN Network Identifier,VNI),该VNI可以用于标识VXLAN网络下的第一虚拟机。该第一虚拟网络标识也可以是其他类型的标识,只要第一网络设备能够基于该标识唯一地确定出其挂载的第一虚拟机即可。

在一个可能的实施方式中,在第一网络设备与第二网络设备之间部署有VXLAN隧道的情况下,第一网络设备向第二网络设备发送的第一路由信息可以是由第一网络设备发布的边界网关协议(border gateway protocol,BGP)以太虚拟专用网(Ethernet VirtualPrivate Network,EVPN)路由。也就是说,第一网络设备可以在BGP EVPN路由中携带第一虚拟机的第一地址以及第一虚拟机的第一虚拟网络标识,并且通过向第二网络设备发布BGPEVPN路由来传递第一虚拟机的地址以及第一虚拟机的第一虚拟网络标识。此外,第一网络设备还可以通过向其他的VTEP设备发布BGP EVPN路由,来通告第一虚拟机的第一地址以及第一虚拟机的第一虚拟网络标识。

示例性地,第一网络设备可以是向第二网络设备发布携带有扩展团体属性的BGPEVPN路由,来通告第一虚拟机的地址以及第一虚拟机的第一虚拟网络标识。其中,该BGPEVPN路由中携带有扩展团体属性,该扩展团体属性中携带有特定字段,可以用于携带该第一虚拟网络标识。该BGP EVPN路由能够指示第一虚拟机的地址以及第一虚拟机的第一虚拟网络标识之间具有的对应关系。

在一个可能的实施方式中,在第一网络设备向第二网络设备发送第一路由信息之前,第一网络设备可以根据所述第一虚拟机为第一网络设备的本地虚拟机,为第一虚拟机分配所述第一虚拟网络标识。

可以理解的是,在第一网络设备所挂载的虚拟机(即第一网络设备的本地虚拟机)上线时,第一网络设备可以获取到虚拟机对应的业务IP地址,第一网络设备根据虚拟机对应的业务IP地址可以为上线的虚拟机动态分配对应的IP地址。例如,在虚拟机1和虚拟机2挂载于第一网络设备下,且虚拟机1和虚拟机2共享业务IP地址1.1.1.1的情况下,在第一网络设备所挂载的虚拟机1和虚拟机2上线之后,第一网络设备可以获取到虚拟机1和虚拟机2所共享的业务IP地址1.1.1.1。第一网络设备还可以获取到虚拟机1和虚拟机2的IP地址,以便于后续根据虚拟机1或虚拟机2的IP地址向虚拟机1或虚拟机2发送报文。可以理解地,虚拟机的IP地址可以由动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)服务器进行分配。示例性地,第一网络设备可以获取到虚拟机1的IP地址192.168.1.1,以及虚拟机2的IP地址192.168.1.2。这样,在第一网络设备需要向虚拟机1或者虚拟机2发送报文时,可以根据虚拟机1的IP地址192.168.1.1或者虚拟机2的IP地址192.168.1.2向虚拟机1或者虚拟机2发送报文。

本实施例中,第一网络设备在第一虚拟机上线之后,可以获取到第一虚拟机的第一地址以及第一虚拟机的IP地址,以及为第一虚拟机分配所述第一虚拟网络标识。

可选地,在第一网络设备获取到第一虚拟机的IP地址且为第一虚拟机分配了对应的第一虚拟网络标识之后,所述第一网络设备可以保存所述第一虚拟网络标识和所述第一虚拟机的IP地址之间的对应关系,以便于第一网络设备可以基于所述第一虚拟网络标识确定第一虚拟机的IP地址。

示例性地,第一网络设备所保存的虚拟网络标识与虚拟机的IP地址之间的一种对应关系如表1所示:

表1虚拟网络标识对应关系

虚拟网络标识 虚拟机IP地址
1001 192.168.1.1
1002 192.168.1.2
1003 192.168.1.3

如表1所示,第一网络设备可以保存有虚拟网络标识与虚拟机IP地址之间的对应关系。在虚拟网络标识与虚拟机IP地址的对应关系表中,虚拟网络标识与虚拟机IP地址一一对应,第一网络设备基于第一虚拟网络标识可以在对应关系表中查找到与第一虚拟网络标识对应的第一虚拟机的IP地址。在其他可能的方式中,第一网络设备也可以根据接收的报文中携带的隧道信息确定第一虚拟机的IP地址。

502、所述第一网络设备接收所述第二网络设备发送的第一报文,所述第一报文携带有所述第一虚拟网络标识,所述第一报文的目的地址为所述第一地址。

本实施例中,在第一网络设备向第二网络设备发送了第一路由信息之后,第二网络设备可以确定与第一地址对应的第一虚拟机,以及第一虚拟机的第一虚拟网络标识。这样,在第二网络设备获取到目的地址为第一地址的第一报文时,第二网络设备可以根据第一报文的目的地址确定第一虚拟机为用于处理所述第一报文的虚拟机;然后,第二网络设备可以在向第一网络设备发送的第一报文中携带有所述第一虚拟网络标识,以使得第一网络设备可以基于第一报文中所携带的第一虚拟网络标识向第一虚拟机转发所述第一报文。

503、所述第一网络设备根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文。

本实施例中,第一网络设备在接收到携带有第一虚拟网络标识的第一报文之后,第一网络设备可以根据第一虚拟网络标识确定与所述第一虚拟网络标识对应的第一虚拟机,从而向所述第一虚拟机转发所述第一报文。

在一个可能的实施方式中,在第一网络设备保存有第一虚拟网络标识与第一虚拟机的IP地址之间的对应关系的情况下,第一网络设备可以根据第一报文中的第一虚拟网络标识确定第一虚拟机的IP地址。然后,第一网络设备根据第一虚拟机的IP地址,经由本地出接口向所述第一虚拟机转发第一报文。

可以理解的是,在本实施例中,第一网络设备是基于第一报文中的第一虚拟网络标识确定将第一报文转发至第一虚拟网络标识对应的第一虚拟机,无需基于第一网络设备中的VRF表来实现第一报文的转发,从而避免了第一报文再次被转发至其他的网络设备上,保证了第一报文的正常转发。

在一个可能的实施方式中,在上述方法500中,在第二网络设备接收到第一网络设备发送的第一路由信息之后,所述第二网络设备可以根据所述第一路由信息生成VRF表,所述VRF表中包括所述第一虚拟机的所述第一地址与所述第一虚拟网络标识之间的对应关系。在转发第一报文的过程中,所述第二网络设备则可以根据所述第一报文的目的地址为所述第一地址,在所述VRF表中确定与所述第一地址对应的所述第一虚拟网络标识;然后所述第二网络设备再向所述第一网络设备发送所述第一报文,所述第一报文中携带有所述第一虚拟网络标识。

其中,在第二网络设备生成的VRF表中可以包括有一个或多个与所述第一地址对应的虚拟网络标识,即第二网络设备可以基于第一地址在VRF表中查找到一个或多个与第一地址对应的虚拟网络标识。

可以理解的是,在第二网络设备只接收到第一网络设备所发送的第一路由信息的情况下,第二网络设备所生成的VRF表中只包括有与第一地址对应的第一虚拟网络标识,该第一虚拟网络标识可以位于所生成的VRF表中的隧道出接口信息中。在第二网络设备还接收到了其他网络设备所发送的路由信息,或者是第二网络设备还接收到了第一网络设备发送的其他路由信息,且这些路由信息中携带了与第一地址对应的虚拟网络标识的情况下,第二网络设备所生成的VRF表中则包括有多个与第一地址对应的虚拟网络标识,该多个与第一地址对应的虚拟网络标识同样可以是位于所生成的VRF表中的隧道出接口信息中。

示例性地,以图3所示的网络结构为例,VM1至VM4共享业务IP地址1.1.1.1,在VM1和VM2上线后,leaf交换机1可以分别为VM1和VM2分配虚拟网络标识1001、1002;在VM3和VM4上线后,leaf交换机2可以分别为VM3和VM4分配虚拟网络标识1003、1004;并且,leaf交换机1可以通过向DCGW发送路由信息来通告VM1和VM2对应的业务IP地址以及虚拟网络标识,leaf交换机2同样可以通过向DCGW发送路由信息来通告VM3和VM4对应的业务IP地址以及虚拟网络标识。这样,DCGW通过接收leaf交换机1和leaf交换机2所发送的路由信息来生成相应的VRF表,该VRF表示意性的如下所示:

prefix:1.1.1.1VNI:1001

(--前缀:1.1.1.1虚拟网络标识:1001)

prefix:1.1.1.1VNI:1002

(--前缀:1.1.1.1虚拟网络标识:1002)

prefix:1.1.1.1VNI:1003

(--前缀:1.1.1.1虚拟网络标识:1003)

prefix:1.1.1.1VNI:1004

(--前缀:1.1.1.1虚拟网络标识:1004)

由DCGW所生成的VRF表可以得知,与IP地址1.1.1.1对应的虚拟网络标识包括有1001、1002、1003和1004。DCGW在获取到目的地址为1.1.1.1的报文时,可以基于目的地址1.1.1.1在VRF表中查找到对应的虚拟网络标识1001、1002、1003和1004。虚拟网络标识1001、1002、1003和1004可以位于VRF表的隧道出接口信息中。

在一种可能的实施方式中,在第一网络设备向第二网络设备发送的第一路由信息中还包括有第一虚拟机的IP地址,在第二网络设备生成的VRF表中同样可以包括有第一虚拟机的IP地址;第二网络设备可以基于第一地址在VRF表中确定对应的第一虚拟机的IP地址以及第一虚拟网络标识。

在第一网络设备与第二网络设备之间部署有VXLAN隧道的情况下,第二网络设备向第一网络设备转发携带有第一虚拟网络标识的第一报文的方式具体可以是:第二网络设备在接收到第一报文之后,可以根据第一报文的目的地址(即第一地址)查找本地的VRF表。在VRF表中包括有多条与第一地址对应的等价多路径路由(Equal-Cost Multi-Pathrouting,ECMP)时,第二网络设备可以查找得到多条ECMP,多条ECMP中的每条路由均包括一个下一跳虚拟机的IP地址以及对应的隧道出接口信息(即对应的虚拟网络标识)。第二网络设备可以基于查找得到的多条ECMP确定其中的一条路由,该路由中包括第一虚拟机的IP地址和第一虚拟网络标识。在VRF表中只包括有一条与第一地址对应的路由时,第二网络设备基于第一地址可以查找到一条路由,该路由中包括第一虚拟机的IP地址和第一虚拟网络标识。

然后,第二网络设备对第一报文进行VXLAN隧道封装,并且通过VXLAN隧道将封装后的第一报文发往第一网络设备,封装后的第一报文中携带有第一虚拟机的IP地址和第一虚拟网络标识。

这样,在第一网络设备接收到第二网络设备发送的第一报文之后,所述第一网络设备可以对所述第一报文进行隧道解封装,获取所述第一虚拟网络标识,从而根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文。

也就是说,在第二网络设备查找到VRF表中包括有多条与报文的目的地址对应的路由时,第二网络设备可以基于负载均衡策略确定其中的一条路由,并且确定该路由中所包括的虚拟机的IP地址和虚拟网络标识,以根据路由中的虚拟机的IP地址和虚拟网络标识对报文进行隧道封装。

具体地,以第一网络设备与第二网络设备之间部署有VXLAN隧道为例,可以参阅图6,图6为本申请实施例提供的一种VXLAN隧道报文的封装示意图。如图6所示,在原始报文中包括有有效载荷(payload)、内部互联网协议头部(inner IP header)以及内部以太网头部(inner ethernet header),在对报文进行VXALN隧道封装之后,报文中增加了VXLAN头部,而VXLAN头部前面则是标准的UDP头部,即包括了外部以太网头部(outer ethernetheader)、外部互联网协议头部(outer IP header)以及外部用户数据报协议头部(outerUDP header)。在VXLAN头部中具体包括有VXLAN标志位(VXLAN Flags)、保留位(Reserved)、VXLAN网络标识(VNI)以及保留字段(Reserved),第二网络设备可以在VXLAN头部中VNI所对应的位置插入第一虚拟机的虚拟网络标识(即第一虚拟机的VNI),从而实现在第一报文中携带第一虚拟机的虚拟网络标识。作为一种更为具体的实现方式,VXLAN报文格式可参见标准RFC7348,该标准的全部内容在此引入到本申请实施例中。

以上为对本申请实施例提供的报文转发方法500的详细描述,在图5对应的实施例的基础上,本申请还进一步提供了一个可能的实施例。

可以参阅图7,图7为本申请实施例提供的一种报文转发方法700的流程示意图。如图7所示,本申请实施例提供的报文转发方法700,包括:

701、第一网络设备为第二虚拟机分配第二虚拟网络标识。

本实施例中,除了第一虚拟机之外,第一网络设备下还挂载有第二虚拟机,所述第二虚拟机为所述第一网络设备的本地虚拟机。在第二虚拟机上线时,第一网络设备可以获取到第二虚拟机对应的业务IP地址以及第二虚拟机的IP地址,且第一网络设备根据第二虚拟机对应的业务IP地址为第二虚拟机分配对应的第二虚拟网络标识。其中,第二虚拟机的业务IP地址与第一虚拟机的业务IP地址相同,均为第一地址;第二虚拟机的第二虚拟网络标识与第一虚拟机的第一虚拟网络标识不一致。例如,第一虚拟机和第二虚拟机对应的第一地址为1.1.1.1,第一虚拟机的第一虚拟网络标识为1001,第二虚拟机的第二虚拟网络标识为1002。

可选地,在第一网络设备为第二虚拟机分配对应的第二虚拟网络标识之后,所述第一网络设备可以保存所述第二虚拟网络标识和所述第二虚拟机的IP地址之间的对应关系,以便于第一网络设备可以基于所述第二虚拟网络标识确定第二虚拟机的IP地址。

702、第一网络设备向第二网络设备发送第二路由信息。

其中,所述第二路由信息用于通告到达第二虚拟机的第一地址的路由,所述第二路由信息包括所述第二虚拟机的第二虚拟网络标识。可选地,所述第二路由信息中还可以包括有第二虚拟机的IP地址,即第二网络设备基于第二路由信息可以获取到第二虚拟机对应的第一地址、IP地址以及第二虚拟网络标识。

在一个可能的实施方式中,在第一网络设备与第二网络设备之间部署有VXLAN隧道的情况下,第一网络设备向第二网络设备发送的第二路由信息同样可以是由第一网络设备发布的BGP EVPN路由。也就是说,第一网络设备可以在BGP EVPN路由中携带第二虚拟机的地址以及第二虚拟机的第二虚拟网络标识,并且通过向第二网络设备发布BGP EVPN路由来传递第二虚拟机的地址以及第二虚拟机的第二虚拟网络标识。

在本实施例中,第一路由信息和第二路由信息可以携带在同一条路由中,也可以携带在不同的路由中。例如,在第一网络设备所挂载的多个虚拟机同时上线或者是多个虚拟机上线时间相近的情况下,第一网络设备可以在为多个虚拟机分配好对应的虚拟网络标识之后,通过同一个路由来通告多个虚拟机对应的业务IP地址以及虚拟网络标识。

703、第二网络设备根据所述第二路由信息生成VRF表。

第二网络设备根据第二路由信息生成的VRF表中包括有第二虚拟网络标识与第一地址之间的对应关系,以便于第二网络设备能够基于第一地址在VRF表中查找到对应的第二虚拟网络标识。

在一个可能的实施方式中,第二网络设备根据第二路由信息所生成的VRF表可以是基于第二网络设备中原有的VRF表更新得到的。示例性地,在第二网络设备根据第一路由信息生成VRF表之后,第二网络设备可以根据接收到的第二路由信息在已生成的VRF表中进行更新,得到更新后的VRF表,更新后的VRF表中包括了与第一地址对应的第一虚拟网络标识以及第二虚拟网络标识。

704、第二网络设备获取待转发的第二报文,所述第二报文的目的地址为第一地址。

也即,该第二报文的目的地址和第一报文的目的地址相同,该第二报文可以和第一报文属于同一业务流量。

705、第二网络设备根据第一地址在VRF表中确定与第一地址对应的第二虚拟网络标识。

其中,第二网络设备所生成的VRF表中包括有与第一地址对应的第一路由和第二路由,第一路由包括第一虚拟机的IP地址和第一虚拟网络标识,第二路由包括第二虚拟机的IP地址和第二虚拟网络标识,即第一虚拟网络标识对应的第一虚拟机以及第二虚拟网络标识对应的第二虚拟机均可用于处理目的地址为第一地址的报文。第二网络设备根据第一地址在VRF表中可以查找到第一路由和第二路由,且第二网络设备在第一路由和第二路由中选择了第二路由,从而获取到了第二路由中的第二虚拟网络标识。

706、第二网络设备向第一网络设备发送第二报文。

其中,所述第二报文携带有所述第二虚拟网络标识,所述第二报文的目的地址为所述第一地址。

在一个可能的实施方式中,在第一网络设备与第二网络设备之间部署有VXLAN隧道的情况下,第二网络设备在获取到待转发的第二报文之后,根据第二报文的目的地址查找本地的VRF表。在VRF表中包括有第一路由和第二路由,且第一路由中包括第一虚拟机的IP地址和第一虚拟路由标识,第二路由中包括第二虚拟机的IP地址和第二虚拟路由标识。第二网络设备可以在第一路由和第二路由中确定第二路由为用于转发第二报文的路由。然后,第二网络设备对第二报文进行VXLAN隧道封装,并且通过VXLAN隧道将封装后的第二报文发往第一网络设备,封装后的第二报文中携带有第二虚拟机的IP地址和第二虚拟网络标识。这样,在第一网络设备接收到第二网络设备发送的第二报文之后,第一网络设备可以对所述第二报文进行隧道解封装,获得所述第二虚拟网络标识。

707、所述第一网络设备根据所述第二虚拟网络标识向所述第二虚拟机转发所述第二报文。

第一网络设备在接收到第二网络设备发送的第二报文之后,第一网络设备可以获取到第二报文中所携带的第二虚拟网络标识。例如,第一网络设备可以通过对第二报文进行隧道解封装,在第二报文的报头中获取到第二虚拟网络标识。

由于在第一网络设备中保存有第二虚拟网络标识与第二虚拟机的IP地址之间的对应关系,第二网络设备可以根据第二报文中的第二虚拟网络标识确定第二虚拟机的IP地址。然后,第二网络设备根据第二虚拟机的IP地址,经由本地出接口向所述第二虚拟机转发第一报文。

可以理解的是,在本实施例中,在VRF表中包括多条与第一地址对应的路由时,第二网络设备可以在VRF表中确定其中的一条路由,且基于该路由中所包括的虚拟网络标识实现报文的转发,以使得第一网络设备能够基于报文中的虚拟网络标识将报文转发给对应的虚拟机,保证了报文能够被正常转发至相应的虚拟机,避免路由环路现象出现的同时,还能够实现虚拟机的负载均衡。

为了便于理解,以下将结合具体的应用场景对本申请实施例提供的报文转发方法进行详细的描述。可以参阅图8,图8为本申请实施例提供的一种报文转发方法的示意图,其中,为了便于叙述,leaf交换机与DCGW之间的spine交换机并没有展示,leaf交换机1下挂载有VM1和VM2,leaf交换机2下挂载有VM3和VM4,且leaf交换机1与DCGW之间部署有VXLAN隧道,leaf交换机1与leaf交换机2之间也部署有VXLAN隧道。图8中的leaf交换机1可以为前述实施例中所述的第一网络设备,图8中的DCGW可以为前述实施例中所述的第二网络设备。

如图8所示,图8所示的报文转发方法包括:

801、VM1、VM2上线。

其中,VM1和VM2挂载于leaf交换机1下,且VM1和VM2共享同一个业务IP地址1.1.1.1。

802、leaf交换机1为VM1和VM2分配虚拟网络标识。

示例性地,在leaf交换机1获知VM1和VM2上线之后,leaf交换机1可以获取到VM1和VM2共享的业务IP地址1.1.1.1,VM1的IP地址192.168.1.1,以及VM2的IP地址192.168.1.2;leaf交换机1还可以为VM1分配虚拟网络标识1001,为VM2分配虚拟网络标识1002,其中,虚拟网络标识1001和虚拟网络标识1002可以是VNI。

此外,leaf交换机1还可以保存VM1的IP地址192.168.1.1与虚拟网络标识1001之间的对应关系,以及VM2的IP地址192.168.1.2与虚拟网络标识1002之间的对应关系。

803、leaf交换机1发布BGP EVPN路由。

其中,leaf交换机1可以在BGP EVPN路由携带VM1和VM2所对应的业务IP地址、IP地址以及虚拟网络标识,然后leaf交换机1向VXLAN网络中的DCGW和leaf交换机2发布BGPEVPN路由,以通告VM1和VM2所对应的业务IP地址、IP地址以及虚拟网络标识。

804、DCGW、leaf交换机2生成VRF表。

具体地,DCGW和leaf交换机2在接收到leaf交换机1发布的BGP EVPN路由之后,DCGW和leaf交换机2均可以基于BGP EVPN路由生成VRF表,且所生成的VRF表中包括有VM1的业务IP地址与虚拟网络标识之间的对应关系,以及VM2的业务IP地址与虚拟网络标识之间的对应关系。示例性地,DCGW和leaf交换机2所生成的VRF表具体如下所示:

prefix:1.1.1.1VNI:1001

(--前缀:1.1.1.1虚拟网络标识:1001)

prefix:1.1.1.1VNI:1002

(--前缀:1.1.1.1虚拟网络标识:1002)

上述VRF表作为示意,在实际应用中,虚拟网络标识可以具体位于隧道出接口信息中。

805、DCGW向leaf交换机1发送报文1。

具体地,DCGW可以获取到外部网络所发送的报文1,该报文1的目的地址为1.1.1.1。DCGW可以根据报文1的目的地址在VRF表中查找到对应的路由,例如查找到了包括有VM1的IP地址和虚拟网络标识1001的路由1以及包括有VM2的IP地址和虚拟网络标识1002的路由2。然后,DCGW可以在查找到的路由1和路由2中确定其中的一条路由作为转发报文1的路由,例如选择路由1作为转发报文1的路由,且确定路由1中的虚拟网络标识1001。最后,DCGW将虚拟网络标识1001携带于报文1中,并且向leaf交换机1发送携带有虚拟网络标识1001的报文1。

806、leaf交换机向VM1转发报文1。

leaf交换机1在接收到DCGW发送的报文1之后,可以获取到报文1中所携带的虚拟网络标识1001,例如对报文1进行隧道解封装以获得报文1的报头中的虚拟网络标识1001。对于leaf交换机1中保存有虚拟网络标识与虚拟机的IP地址之间的对应关系的情形,leaf交换机1可以根据虚拟网络标识1001确定与虚拟网络标识1001对应的VM1的IP地址192.168.1.1。或者,leaf交换机1也可以直接根据报文的VXLAN头中的信息确定VM1的IP地址。然后,leaf交换机1再基于VM1的IP地址192.168.1.1,经由本地出接口向VM1转发报文1。

807、VM3向leaf交换机2发送报文2。

其中,报文2的目的地址为1.1.1.1。报文2和报文1可以属于同一业务流量。

808、leaf交换机2向leaf交换机1发送报文2。

具体地,leaf交换机2同样可以根据报文2的目的地址在VRF表中查找对应的路由,例如查找到上述的路由1和路由2。然后,leaf交换机2可以在查找到的路由1和路由2中确定其中的一条路由作为转发报文2的路由,例如选择路由2作为转发报文2的路由,且确定路由2中的虚拟网络标识1002。最后,leaf交换机2将虚拟网络标识1002携带于报文2中,并且向leaf交换机1发送携带有虚拟网络标识1002的报文2。

809、leaf交换机1向VM1转发报文2。

leaf交换机1在接收到leaf交换机2发送的报文2之后,可以获取到报文2中所携带的虚拟网络标识1002,例如对报文2进行隧道解封装以获得报文2的报头中的虚拟网络标识1002。leaf交换机1可以根据虚拟网络标识1002确定与虚拟网络标识1002对应的VM2的IP地址192.168.1.2。然后,leaf交换机2再基于VM2的IP地址192.168.1.2,经由本地出接口向VM2转发报文2。

图9为本申请实施例提供的一种网络设备90的结构示意图,本申请实施例提供的网络设备90,例如可以为上述各方法实施例中的leaf交换机1或leaf交换机2等。网络设备90例如可以包括:发送单元901,用于向第二网络设备发送第一路由信息,所述第一路由信息用于通告到达第一虚拟机的第一地址的路由,所述第一路由信息包括所述第一虚拟机的第一虚拟网络标识,所述第一虚拟机为所述第一网络设备的本地虚拟机;接收单元902,用于接收所述第二网络设备发送的第一报文,所述第一报文携带有所述第一虚拟网络标识,所述第一报文的目的地址为所述第一地址;所述发送单元901,还用于根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文。

可选地,在一种可能的实现方式中,所述网络设备90还包括:处理单元903,用于根据所述第一虚拟机为所述第一网络设备的本地虚拟机,为所述第一虚拟机分配所述第一虚拟网络标识。

可选地,在一种可能的实现方式中,所述发送单元901还用于:向所述第二网络设备发送第二路由信息,所述第二路由信息用于通告到达第二虚拟机的所述第一地址的路由,所述第二路由信息包括所述第二虚拟机的第二虚拟网络标识,其中,所述第一地址为所述第一虚拟机和所述第二虚拟机共同的地址,所述第二虚拟网络标识和所述第一虚拟网络标识不同,所述第二虚拟机为所述第一网络设备的本地虚拟机。

可选地,在一种可能的实现方式中,所述接收单元902,还用于接收所述第二网络设备发送的第二报文,所述第二报文携带有所述第二虚拟网络标识,所述第二报文的目的地址为所述第一地址;所述发送单元901,还用于根据所述第二虚拟网络标识向所述第二虚拟机转发所述第二报文。

可选地,在一种可能的实现方式中,所述第一路由信息中还包括所述第一虚拟机的IP地址,所述处理单元903还用于保存所述第一虚拟网络标识和所述第一虚拟机的IP地址之间的对应关系。

可选地,在一种可能的实现方式中,所述处理单元903,还用于根据所述第一报文中的所述第一虚拟网络标识,确定与所述第一虚拟网络标识对应的所述第一虚拟机的IP地址;

所述发送单元901,还用于根据所述第一虚拟机的IP地址,经由本地出接口向所述第一虚拟机转发所述第一报文。

可选地,在一种可能的实现方式中,所述处理单元903,还用于对所述第一报文进行隧道解封装,获取所述第一虚拟网络标识,以根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文。

可选地,在一种可能的实现方式中,所述第一虚拟机的所述第一地址为环回loopback地址。

可选地,在一种可能的实现方式中,所述网络设备90与所述第二网络设备之间部署有VXLAN隧道。

在另一个实施例中,所述网络设备90包括:接收单元902,用于接收第一网络设备发送的第一路由信息,所述第一路由信息用于通告到达第一虚拟机的第一地址的路由,所述第一路由信息包括所述第一虚拟机的第一虚拟网络标识,所述第一虚拟机为所述第一网络设备的本地虚拟机;发送单元901,用于向所述第一网络设备发送第一报文,所述第一报文的目的地址为所述第一地址,所述第一报文中携带有所述第一虚拟机的所述第一虚拟网络标识。

可选地,在一种可能的实现方式中,所述第一报文中的所述第一虚拟网络标识用于指示所述第一网络设备根据所述第一虚拟网络标识向所述第一虚拟机转发所述第一报文。

可选地,在一种可能的实现方式中,所述网络设备90还包括:处理单元903,用于根据所述第一路由信息生成VRF表,所述VRF表中包括所述第一虚拟机的所述第一地址与所述第一虚拟网络标识之间的对应关系。

可选地,在一种可能的实现方式中,所述处理单元903,还用于根据所述第一报文的目的地址为所述第一地址,在所述VRF表中确定与所述第一地址对应的所述第一虚拟网络标识;所述发送单元901,还用于向所述第一网络设备发送所述第一报文,所述第一报文中携带有所述第一虚拟网络标识。

可选地,在一种可能的实现方式中,所述接收单元902,还用于接收所述第一网络设备发送的第二路由信息,所述第二路由信息用于通告到达第二虚拟机的所述第一地址的路由,所述第二路由信息包括所述第二虚拟机的第二虚拟网络标识,其中,所述第一地址为所述第一虚拟机和所述第二虚拟机共同的地址,所述第二虚拟网络标识和所述第一虚拟网络标识不同,所述第二虚拟机为所述第一网络设备的本地虚拟机。

可选地,在一种可能的实现方式中,所述发送单元901,还用于向所述第一网络设备发送第二报文,所述第二报文携带有所述第二虚拟网络标识,所述第二报文的目的地址为所述第一地址,所述第二虚拟网络标识用于指示所述第一网络设备根据所述第二虚拟网络标识向所述第二虚拟机转发所述第二报文。

可选地,在一种可能的实现方式中,所述第一路由信息还包括所述第一虚拟机的IP地址;所述处理单元903,还用于根据所述第一虚拟机的IP地址对所述第一报文进行隧道封装,以通过隧道向所述第一网络设备发送所述第一报文。

图10为本申请实施例提供的一种网络设备100的结构示意图,如图10所示,提供了一种网络设备100。网络设备100例如可以是前述方法实施例中的第一网络设备或第二网络设备,也可以是网络设备90,可以用于执行前述各实施例中相应网络设备执行的功能。网络设备100包括:处理器1001。所述处理器1001与存储器1002耦合。存储器1002可以独立于处理器1001之外或独立于网络设备100之外,如存储器(Memory)#3,也可以在处理器1001或网络设备100之内(Memory#1和Memory#2)。存储器1002可以是物理上独立的单元,也可以是云服务器上的存储空间或网络硬盘等。可选地,存储器1002可以为一个或多个。当存储器1002的个数为多个时,可以位于相同的或不同的位置,并且可以独立或配合使用。

存储器1002用于存储计算机可读指令(或者称之为计算机程序)。

处理器1001用于读取计算机可读指令以实现前述有关网络设备的方面及其任意实现方式提供的方法。

可选的,该网络设备100还包括收发器1003,用于接收和发送数据。

另外,该处理器1001可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。另外,该存储器1002可以包括:易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)、云存储(cloud storage)、网络附接存储(network attached storage)、网盘(network drive)等;存储器还可以包括上述种类的存储器的组合或者其他具有存储功能的任意形态的介质或产品。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。

34页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于TCAM的掩码规则匹配方法、电子设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!