CN113923158B - 一种报文转发、路由发送和接收方法及装置 - Google Patents
一种报文转发、路由发送和接收方法及装置 Download PDFInfo
- Publication number
- CN113923158B CN113923158B CN202010650282.5A CN202010650282A CN113923158B CN 113923158 B CN113923158 B CN 113923158B CN 202010650282 A CN202010650282 A CN 202010650282A CN 113923158 B CN113923158 B CN 113923158B
- Authority
- CN
- China
- Prior art keywords
- ipu
- virtual
- message
- virtual machine
- routing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4645—Details on frame tagging
- H04L12/465—Details on frame tagging wherein a single frame includes a plurality of VLAN tags
- H04L12/4662—Details on frame tagging wherein a single frame includes a plurality of VLAN tags wherein a VLAN tag represents a service instance, e.g. I-SID in PBB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种报文转发、路由发送和接收方法及装置,涉及通信技术领域,能够避免远程内存访问。该方法应用于NUMA架构中的数据中心,该数据中心包括服务器和网络设备,服务器包括第一NUMA节点和第二NUMA节点,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机;虚拟路由设备包括第一IPU和第二IPU,第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中。该方法包括:第一IPU从网络设备接收第一报文,该第一报文是发送至第一虚拟机的报文;并且第一IPU向第一虚拟机发送第一报文;第二IPU从网络设备接收第二报文,该第二报文是发送至第二虚拟机的报文;并且第二IPU向第二虚拟机发送第二报文。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种报文转发、路由发送和接收方法及装置。
背景技术
在非一致内存访问(non-uniform memory access,NUMA)架构中,服务器的每一个NUMA节点对应一个内存,服务器上部署有虚拟机和虚拟路由设备。其中,每个NUMA节点上可以创建有一个或多个虚拟机,虚拟路由设备部署在服务器的一个NUMA节点上,虚拟机与虚拟路由设备采用共享内存的方式通信。
以报文转发为例,假设服务器的第一NUMA节点上创建第一虚拟机,第二NUMA节点上创建第二虚拟机,虚拟路由设备部署在第一NUMA节点上。当虚拟路由设备从网络设备接收到报文,该报文的目的地址为第二虚拟机的地址,该虚拟路由设备接收到报文之后,将该报文发送至第二NUMA节点,并将该报文缓存在第二NUMA节点对应的内存的共享队列中。该共享队列是第二虚拟机和虚拟路由设备的共享队列,进而第二虚拟机轮询该共享队列以获取该报文。
上述报文转发过程中,由于虚拟路由设备部署在第一虚拟机上,因此该虚拟路由设备需要将上述报文跨NUMA节点发送至第二虚拟机虚拟机,该报文的转发过程中虚拟路由设备需进行远程内存访问,将导致报文的传输时延增大。
发明内容
本申请实施例提供一种报文转发方法、路由发送和接收方法及装置,能够避免远程内存访问。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种报文转发方法,该方法应用于NUMA架构中的数据中心,该数据中心包括服务器和网络设备,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,上述虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。上述虚拟路由设备包括第一IPU和第二IPU,第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中。第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接,第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
基于上述数据中心,本申请实施例提供的报文转发方法包括:第一IPU从网络设备接收第一报文,该第一报文是发送至第一虚拟机的报文;且第一IPU向第一虚拟机发送第一报文;第二IPU从网络设备接收第二报文,第二报文是发送至第二虚拟机的报文;且第二IPU向第二虚拟机发送第二报文。
本申请实施例提供的报文转发方法,虚拟路由设备的第一IPU从网络设备接收待发送至第一虚拟机的报文(即上述第一报文),从而第一IPU将该第一报文发送至第一虚拟机。同理,虚拟路由设备从网络设备接收待发送至第二虚拟机的报文(即上述第二报文),从而第二IPU将该第二报文发送至第二虚拟机。由于不同的IPU部署在不同的NUMA节点上,对于发送至目标虚拟机的报文,虚拟路由设备通过该目标虚拟机所属的NUMA节点上的IPU接收该报文,进而由该IPU将报文发送至目的虚拟机。也就是说,在NUMA架构中,通过本NUMA节点上的IPU向本NUAM节点上的虚拟机发送报文,无需跨节点转发报文,能够避免远程内存访问,从而降低报文的转发时延。
一种可能的实现方式中,云管理平台根据业务需求在服务器的第一NUMA节点上创建第一虚拟机,在服务器的第二NUMA节点上创建第二虚拟机之后,虚拟路由设备创建第一IPU对应的第一虚拟端口和第二IPU对应的第二虚拟端口,以实现虚拟路由设备与虚拟机之间的通信。云管理平台向虚拟网络接口代理(vRouter agent)发送调用消息,该调用消息用于调用该虚拟网络接口代理,以发起虚拟端口创建流程;虚拟网络接口代理向虚拟路由设备的系统管理模块发送端口创建请求消息。
一方面,虚拟路由设备的系统管理模块向第一IPU中的虚拟IO模块发送第一虚拟端口创建请求消息,进而第一IPU中的虚拟IO模块创建第一虚拟端口,并且第一IPU中的虚拟IO模块与第一虚拟机进行虚拟IO协议协商,建立与第一虚拟机之间的数据通道。
另一方面,虚拟路由设备的系统管理模块向第二IPU中的虚拟1O模块发送第二虚拟端口创建请求消息,第二IPU中的虚拟IO模块创建第二虚拟端口,并且第二IPU中的虚拟IO模块与第二虚拟机进行虚拟IO协议协商,建立与第二虚拟机之间的数据通道。
一种可能的实现方式中,在网络设备与第一IPU之间发生通信故障的情况下,本申请实施例提供的报文转发方法还包括:第二IPU从网络设备接收第三报文,第三报文是发送至第一虚拟机的报文;且第二IPU向第一虚拟机发送第三报文。
本申请实施例中,第二IPU通过该第二IPU上的第二物理端口从网络设备接收第三报文,并解封装该第三报文,然后,第二IPU通过虚拟路由设备内部的虚拟网格(vFabric)将该第三报文发送至第一IPU,进而第一IPU通过该第一IPU上的第一虚拟端口向第一虚拟机发送第三报文。
上述在网络设备与第一IPU之间发生通信故障的情况下,第一IPU将接收到的第三报文(待发送至第一虚拟机的报文)经网络设备发送至第二IPU,从而第二IPU将该第三报文发送至第一虚拟机。由于第一虚拟机位于第一NUMA节点上,第二IPU部署在第二NUMA节点上,虚拟路由设备在通信故障的情况下采用远程内存访问,以保证报文顺利地发送至第一虚拟机,提升通信的可靠性。
一种可能的实现方式中,当数据中心位于互联网协议第6版分段路由(SRv6)网络中时,IPU的地址为SRv6的定位符,虚拟机的虚拟专用网络标识为VPN SID。上述第一IPU向第一虚拟机发送第一报文具体包括:第一IPU解封装第一报文,得到第一虚拟机的VPN SID;并且第一IPU根据第一虚拟机的VPN SID向第一虚拟机发送第一报文。
一种可能的实现方式中,当数据中心位于VxLAN网络中时,IPU的地址为VxLAN隧道终点VTEP地址,VTEP地址可以是IPv4地址,也可以是IPv6地址,虚拟机的虚拟专用网络标识为VNI。上述第一IPU向第一虚拟机发送第一报文具体包括:第一IPU解封装第一报文,得到第一虚拟机的VNI;并且第一IPU根据第一虚拟机的VNI向第一虚拟机发送所述第一报文。
本申请实施例提供的报文转发方法既可以用于SRv6网络,也可以用于VxLAN网络,具有较好的适用性。
一种可能的实现方式中,第一IPU的地址与第二IPU的地址不同;第一虚拟机的虚拟专用网络标识是基于第一IPU的地址分配的,第二虚拟机的虚拟专用网络标识是基于第二IPU的地址分配的。
本申请实施例中,在NUMA架构中的数据中心部署完成之后,管理员或者管理设备为虚拟路由设备中的每一个IPU分配唯一的标识,作为IPU的地址;并且基于IPU的标识为与该IPU连接的虚拟机分配虚拟专用网络标识。可选地,可以由管理员基于IPU的标识静态地为与IPU连接的虚拟机分配虚拟专用网络标识,或者,由MPU基于IPU的标识动态地为与IPU连接的虚拟机分配虚拟专用网络标识。
第二方面,本申请实施例提供一种报文转发方法,该方法应用于NUMA架构中的数据中心,该数据中心包括服务器和网络设备,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。虚拟路由设备包括第一IPU和第二IPU,第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中。第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过所述第一物理端口与网络设备连接,第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
基于上述数据中心,本申请实施例提供的报文转发方法包括:第一IPU从第一虚拟机接收第一报文,且第一IPU向网络设备发送第一报文;第二IPU从第二虚拟机接收第二报文,且述第二IPU向网络设备发送第二报文。
具体的,第一IPU通过该第一IPU的第一虚拟端口接收第一报文,并封装该第一报文,然后第一IPU依据本板优先原则,确定通过该第一IPU的第一物理端口将第一报文发送至网络设备。同理,第二IPU通过该第二IPU的第二虚拟端口接收第二报文,并封装该第二报文,然后第二IPU依据本板优先原则,确定通过该第二IPU的第二物理端口将第二报文发送至网络设备。
本申请实施例提供的报文转发方法,应用于NUMA架构中的数据中心,虚拟路由设备的第一IPU从第一虚拟机接收第一报文,并通过该第一IPU将该第一报文发送至网络设备。同理,虚拟路由设备的第二IPU从第二虚拟机接收第二报文,并通过该第二IPU将该第二报文发送至网络设备。由于不同的IPU部署在不同的NUMA节点上,可知在NUMA架构中,通过本NUAM节点上的虚拟机发送的报文通过本NUMA节点上的IPU转发,无需跨节点转发报文,能够避免远程内存访问,从而降低报文的转发时延。
一种可能的实现方式中,在第一IPU与网络设备之间发生通信故障的情况下,本申请实施例提供的报文转发方法还包括:第一IPU从第一虚拟机接收第三报文,第一IPU将第三报文发送至第二IPU;第二IPU向网络设备发送第三报文。
具体的,第一IPU从该第一IPU的第一虚拟端口接收第三报文,并封装该第三报文,然后第一IPU通过虚拟路由设备内部的虚拟网格(vFabric)将第三报文发送至第二IPU。
在网络设备与第一IPU之间发生通信故障的情况下,虚拟路由设备的第一IPU从第一虚拟机接收到的报文将通过该虚拟路由设备的第二IPU发送至网络设备,由于不同的IPU部署在不同的NUMA节点上,虚拟路由设备在通信故障的情况下采用远程内存访问,以保证报文顺利地发送至第一虚拟机,提升通信的可靠性。
一种可能的实现方式中,上述第一IPU向网络设备发送第一报文具体包括:第一IPU对第一报文进行SRv6封装,并向网络设备发送封装后的第一报文;或者,第一IPU对第一报文进行VxLAN封装,并向网络设备发送封装后的第一报文。
第一IPU接收到第一报文之后,查找第一IPU存储的私网路由表,得到第一报文的SRv6封装信息,然后根据该SRv6封装信息封装第一报文。或者,第一IPU接收到第一报文之后,查找第一IPU存储的私网路由表,得到第一报文的VxLAN封装信息,然后根据该VxLAN封装信息封装第一报文。
第三方面,本申请实施例提供一种路由发送方法,该方法应用于NUMA架构中的数据中心,数据中心包括服务器和网络设备,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。虚拟路由设备包括第一IPU和第二IPU,第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中。第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接,第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
基于上述数据中心,本申请实施例提供的路由发送方法包括:虚拟路由设备向网络设备发送第一路由信息和第二路由信息,第一路由信息包括第一IPU的地址,第二路由信息包括第二IPU的地址。其中,第一路由信息用于指示网络设备将接收到的第一报文发送至第一IPU,第一报文是发送至第一虚拟机的报文,第二路由信息用于指示网络设备将接收到的第二报文发送至第二IPU,第二报文是发送至第二虚拟机的报文。
本申请实施例提供的路由发送方法,虚拟路由设备向网络设备发送上述第一路由信息和第二路由信息,网络设备可以根据该第一路由信息和第二路由信息转发报文,能够使得本NUMA节点上的IPU向本NUAM节点上的虚拟机发送报文,无需跨节点转发报文,能够避免远程内存访问,从而降低报文的转发时延。
一种可能的实现方式中,上述拟路由设备向网络设备发送第一路由信息和第二路由信息具体包括:虚拟路由设备通过第一IPU向网络设备发送第一路由信息;虚拟路由设备通过第二IPU向网络设备发送第二路由信息。
一种可能的实现方式中,当数据中心位于SRv6网络中时,IPU的地址为SRv6的定位符,虚拟机的虚拟专用网络标识为VPN SID。
一种可能的实现方式中,本申请实施例提供的路由发送方法还包括:虚拟路由设备向网络设备发送第三路由信息,第三路由信息包括虚拟路由设备的地址。第三路由信息用于指示在网络设备与第一IPU之间发生通信故障的情况下,网络设备将接收到的第三报文发送至第二IPU,第三报文是发送至第一虚拟机的报文;或者,第三路由信息用于指示在网络设备于第二IPU之间发生通信故障的情况下,网络设备将接收到的第四报文发送至第一IPU,第四报文是发送至第二虚拟机的报文。
本申请实施例中,虚拟路由设备向网络设备发送上述第三路由信息,如此,在网络设备与第一IPU之间发生通信故障的情况下,网络设备根据第三路由信息将接收到待发送至第一虚拟机的报文(例如上述第三报文)通过第二IPU发送至第一虚拟机。由于第一虚拟机位于第一NUMA节点上,第二IPU部署在第二NUMA节点上,虚拟路由设备在通信故障的情况下采用远程内存访问,以保证报文顺利地发送至第一虚拟机,提升通信的可靠性。
一种可能的实现方式中,当数据中心位于VxLAN网络中时,IPU的地址为VxLAN隧道终点VTEP地址,虚拟机的虚拟专用网络标识为VNI。
一种可能的实现方式中,第一路由信息中还包括第二IPU的地址,第一路由信息中第一IPU的地址的优先级高于第二路由信息中第一IPU地址的优先级。
一种可能的实现方式中,第二路由信息中还包括第一IPU的地址,第二路由信息中第二IPU的地址的优先级高于第一路由信息中第二IPU的地址的优先级。
本申请实施例中,第一路由信息中第一IPU的地址的优先级高于第二路由信息中第一IPU地址的优先级,在网络设备与第一IPU之间发生通信故障的情况下,网络设备将接收到待发送至第一虚拟机的报文(例如上述第三报文)通过第二IPU发送至第一IPU,从而第一IPU将第三报文发送至第一虚拟机。由于第一虚拟机位于第一NUMA节点上,第二IPU部署在第二NUMA节点上,即虚拟路由设备在通信故障的情况下采用远程内存访问,以保证报文顺利地发送至第一虚拟机,提升通信的可靠性。
可选地,上述虚拟路由设备发送第一IPU的地址和第二IPU的地址时可以携带IPU的优先级指示信息。例如,IPU的优先级指示信息可以为开销信息,虚拟路由设备发送第一路由信息时,通过第一物理端口发送的第一IPU的地址对应的开销信息为低开销,通过该第一物理端口发送的第二IPU的地址对应的开销信息为高开销。虚拟路由设备发送第二路由信息时,通过第二物理端口发送的第二IPU的地址对应的开销信息为低开销,通过该第二物理端口发送的第一IPU的地址对应的开销信息为高开销。那么,第一路由信息中第一IPU的地址的优先级高于第二路由信息中第一IPU地址的优先级;第二路由信息中第二IPU的地址的优先级高于第一路由信息中第二IPU的地址的优先级。
上述IPU的优先级指示信息也可以为其他形式的指示信息,例如,采用标识信息指示IPU的地址的优先级,具体根据实际情况确定,本申请实施例不作限定。
一种可能的实现方式中,本申请实施例提供的路由发送方法还包括:虚拟路由设备从网络设备接收第四路由信息,第四路由信息用于指示虚拟路由设备将目的地址为网络设备的报文发送至网络设备。
一种可能的实现方式中,虚拟路由设备还包括至少一个MPU。
第四方面,本申请实施例提供一种报文转发方法,该方法应用于NUMA架构中的数据中心,数据中心包括服务器和网络设备,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。虚拟路由设备包括第一IPU和第二IPU,第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中。第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接,第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
基于上述数据中心,本申请实施例提供的报文转发方法包括:网络设备接收第一报文,第一报文是发送至第一虚拟机的报文;网络设备向第一IPU发送第一报文;并且网络设备接收第二报文,第二报文是发送至第二虚拟机的报文;网络设备向第二IPU发送第二报文。
本申请实施例提供的报文转发方法,网络设备根据第一路由信息将待发送至第一虚拟机的报文(即上述第一报文)转发至虚拟路由设备的第一IPU,从而第一IPU将该第一报文发送至第一虚拟机。同理,网络设备根据第二路由信息将待发送至第二虚拟机的报文(即上述第二报文)转发至虚拟路由设备的第.二IPU,从而第二IPU将该第二报文发送至第二虚拟机。由于不同的IPU部署在不同的NUMA节点上,对于发送至目标虚拟机的报文,虚拟路由设备通过该目标虚拟机所属的NUMA节点上的IPU接收该报文,进而由该IPU将报文发送至目的虚拟机。也就是说,在NUMA架构中,通过本NUMA节点上的IPU向本NUAM节点上的虚拟机发送报文,无需跨节点转发报文,能够避免远程内存访问,从而降低报文的转发时延。
一种可能的实现方式中,本申请实施例提供的报文转发方法还包括:在网络设备与第一IPU之间发生通信故障的情况下,网络设备向第二IPU发送第三报文,第三报文是发送至第一虚拟机的报文。
上述在网络设备与第一IPU之间发生通信故障的情况下,第一IPU将接收到的第三报文(待发送至第一虚拟机的报文)经网络设备发送至第二IPU,从而第二IPU将该第三报文发送至第一虚拟机。由于第一虚拟机位于第一NUMA节点上,第二IPU部署在第二NUMA节点上,虚拟路由设备在通信故障的情况下采用远程内存访问,以保证报文顺利地发送至第一虚拟机,提升通信的可靠性。
一种可能的实现方式中,网络设备存储有第一路由信息和第二路由信息;其中,第一路由信息包括第一IPU的地址,第一路由信息用于指示网络设备将接收到的第一报文发送至第一IPU;第二路由信息包括第二IPU的地址,第二路由信息用于指示网络设备将接收到的第二报文发送至第二IPU。
一种可能的实现方式中,上述第一路由信息中还包括第二IPU的地址,第一路由信息中第一IPU的地址的优先级高于第二路由信息中第一IPU的地址的优先级。
一种可能的实现方式中,第二路由信息中还包括第一IPU的地址,第二路由信息中第二IPU的地址的优先级高于第一路由信息中第二IPU的地址的优先级。
第五方面,本申请实施例提供一种报文转发方法,该方法应用于NUMA架构中的数据中心,数据中心包括服务器和网络设备,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。虚拟路由设备包括第一IPU和第二IPU,第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中。第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接,第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
基于上述数据中心,本申请实施例提供的报文转发方法包括:网络设备接收第一IPU发送的第一报文,第一报文是第一IPU从第一虚拟机接收的;并且网络设备接收第二IPU发送的第二报文,第二报文是第二IPU从第二虚拟机接收的。
本申请实施例提供的报文转发方法,网络设备接收经第一IPU发送的来自于第一虚拟机的第一报文,接收经第二IPU发送的来自于第二虚拟机的第二报文。由于不同的IPU部署在不同的NUMA节点上,可知在NUMA架构中,通过本NUAM节点上的虚拟机发送的报文通过本NUMA节点上的IPU6发,无需跨节点转发报文,能够避免远程内存访问,从而降低报文的转发时延。
一种可能的实现方式中,在网络设备与第一IPU之间发生通信故障的情况下,本申请实施例提供的报文转发方法还包括:网络设备接收第二IPU发送的第三报文,第三报文是第二IPU从第一IPU接收的,且第三报文是第一IPU从第一虚拟机接收的。
第六方面,本申请实施例提供一种路由接收方法,该方法应用于架构中的数据中心,数据中心包括服务器和网络设备,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。虚拟路由设备包括第一IPU和第二IPU,第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中。第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接,第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
基于上述报文转发方法,本申请实施例提供的路由接收方法包括:网络设备从虚拟路由设备接收第一路由信息和第二路由信息,第一路由信息包括第一IPU的地址,第二路由信息包括第二IPU的地址。其中,第一路由信息用于指示网络设备将接收到的第一报文发送至第一IPU,第一报文是发送至第一虚拟机的报文,第二路由信息用于指示网络设备将接收到的第二报文发送至第二IPU,第二报文是发送至第二虚拟机的报文。
一种可能的实现方式中,网络设备从虚拟路由设备的第一IPU接收第一路由信息;网络设备从虚拟路由设备的第二IPU接收第二路由信息。
一种可能的实现方式中,本申请实施例提供的路由接收方法还包括:网络设备从虚拟路由设备接收第三路由信息,第三路由信息包括虚拟路由设备的地址。第三路由信息用于指示在网络设备与第一IPU之间发生通信故障的情况下,网络设备将接收到的第三报文发送至第二IPU,第三报文是发送至第一虚拟机的报文;或者,第三路由信息用于指示在网络设备于第二IPU之间发生通信故障的情况下,网络设备将接收到的第四报文发送至第一IPU,第四报文是发送至第二虚拟机的报文。
一种可能的实现方式中,上述第一路由信息中还包括第二IPU的地址,第一路由信息中第一IPU的地址的优先级高于第二路由信息中第一IPU地址的优先级。
一种可能的实现方式中,第二路由信息中还包括第一IPU的地址,第二路由信息中第二IPU的地址的优先级高于第一路由信息中第二IPU的地址的优先级。
结合第三方面及其可能的实现方式和第六方面及其可能的实现方式,通过上述路由发送和接收过程,数据中心中的设备(包括虚拟路由设备、网络设备等)可以根据路由信息转发报文,保证报文顺利转发。
第七方面,本申请实施例提供一种计算机设备,该计算机设备应用于虚拟路由设备,该虚拟路由设备应用于NUMA架构中的数据中心,数据中心包括服务器和网络设备,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。
虚拟路由设备包括第一IPU,用于从网络设备接收第一报文,该第一报文是发送至第一虚拟机的报文;并且向第一虚拟机发送第一报文。该第一IPU位于第一NUMA节点中,第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接。
虚拟路由设备包括第二IPU,用于从网络设备接收第二报文,该第二报文是发送至第二虚拟机的报文;并且向第二虚拟机发送第二报文。第二IPU位于第二NUMA节点中;第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
一种可能的实现方式中,上述第二IPU还用于在网络设备与第一IPU之间发生通信故障的情况下,从网络设备接收第三报文,第三报文是发送至第一虚拟机的报文;并且向第一虚拟机发送第三报文。
一种可能的实现方式中,当数据中心位于SRv6网络中时,IPU的地址为SRv6的定位符,虚拟机的虚拟专用网络标识为VPN SID。上述第一IPU具体用于解封装第一报文,得到第一虚拟机的VPN SID;并且根据第一虚拟机的VPN SID向第一虚拟机发送第一报文。
一种可能的实现方式中,当数据中心位于VxLAN网络中时,IPU的地址为VxLAN隧道终点VTEP地址,虚拟机的虚拟专用网络标识为VNI。上述第一IPU具体用于第一IPU解封装第一报文,得到第一虚拟机的VNI;并且根据第一虚拟机的VNI向第一虚拟机发送第一报文。
一种可能的实现方式中,第一IPU的地址与第二IPU的地址不同。第一虚拟机的虚拟专用网络标识是基于第一IPU的地址分配的,第二虚拟机的虚拟专用网络标识是基于第二IPU的地址分配的。
第八方面,本申请实施例提供一种计算机设备,该计算机设备应用于虚拟路由设备,该虚拟路由设备应用于NUMA架构中的数据中心,该数据中心包括服务器和网络设备,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。
该虚拟路由设备包括第一IPU,用于从第一虚拟机接收第一报文,并且向网络设备发送第一报文。该第一IPU位于第一NUMA节点中,第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接。
虚拟路由设备包括第二IPU,用于从第二虚拟机接收第二报文;并且向网络设备发送第二报文。第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
一种可能的实现方式中,上述第一IPU还用于在第一IPU与网络设备之间发生通信故障的情况下,从第一虚拟机接收第三报文;并且将第三报文发送至第二IPU。第二IPU还用于向网络设备发送第三报文。
一种可能的实现方式中,上述第一IPU具体用于对第一报文进行SRv6封装,并向网络设备发送封装后的第一报文;或者,第一IPU用于对第一报文进行VxLAN封装,并向网络设备发送封装后的第一报文。
第九方面,本申请实施例提供一种计算机设备,该计算机设备应用于虚拟路由设备,该虚拟路由设备应用于NUMA架构中的数据中心,数据中心包括服务器和网络设备,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。
虚拟路由设备包括第一IPU,用于用于向网络设备发送第一路由信息,第一路由信息包括第一IPU的地址,第一路由信息用于指示网络设备将接收到的第一报文发送至第一IPU,第一报文是发送至第一虚拟机的报文,该第一IPU位于第一NUMA节点中,第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接。
该虚拟路由设备包括第二IPU,用于向网络设备发送第二路由信息,第二路由信息包括第二IPU的地址,第二路由信息用于指示网络设备将接收到的第二报文发送至第二IPU,第二报文是发送至第二虚拟机的报文。第二IPU位于第二NUMA节点中,第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
一种可能的实现方式中,当数据中心位于SRv6网络中时,IPU的地址为SRv6的定位符,虚拟机的虚拟专用网络标识为VPN SID。
一种可能的实现方式中,上述第一IPU还用于向网络设备发送第三路由信息,第三路由信息包括虚拟路由设备的地址。第三路由信息用于指示在网络设备与第一IPU之间发生通信故障的情况下,网络设备将接收到的第三报文发送至第二IPU,第三报文是发送至第一虚拟机的报文。虚拟路由设备的第二IPU还用于向网络设备发送第三路由信息,第三路由信息用于指示在网络设备于第二IPU之间发生通信故障的情况下,网络设备将接收到的第四报文发送至第一IPU,第四报文是发送至第二虚拟机的报文。
一种可能的实现方式中,当数据中心位于VxLAN网络中时,IPU的地址为VxLAN隧道终点VTEP地址,虚拟机的虚拟专用网络标识为VNI。
一种可能的实现方式中,上述第二路由信息中还包括第一IPU的地址;第一路由信息中第一IPU的地址的优先级高于第二路由信息中第一IPU地址的优先级。
一种可能的实现方式中,上述第二路由信息中还包括第一IPU的地址,第二路由信息中第二IPU的地址的优先级高于第一路由信息中第二IPU的地址的优先级。
一种可能的实现方式中,虚拟路由设备的第一IPU还用于从网络设备接收第四路由信息,第四路由信息用于指示第一IPU将目的地址为网络设备的报文发送至网络设备。虚拟路由设备的第二IPU还用于从网络设备接收第四路由信息,第四路由信息用于指示第二IPU将目的地址为网络设备的报文发送至网络设备。
一种可能的实现方式中,虚拟路由设备还包括至少一个主处理单元MPU。
第十方面,本申请实施例提供一种网络设备,包括接收模块和发送模块。该网络设备应用于NUMA架构中的数据中心,数据中心还包括服务器,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。虚拟路由设备包括第一IPU和第二IPU,第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中。第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接,第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
上述接收模块用于接收第一报文,第一报文是发送至第一虚拟机的报文;上述发送模块用于向第一IPU发送第一报文。上述接收模块还用于接收第二报文,第二报文是发送至第二虚拟机的报文;上述发送模块还用于向第二IPU发送第二报文。
一种可能的实现方式中,上述发送模块,还用于在网络设备与第一IPU之间发生通信故障的情况下,向第二IPU发送第三报文,第三报文是第一虚拟机的报文。
一种可能的实现方式中,本申请实施例提供的网络设备还包括存储模块;该存储模块用于存储有第一路由信息和第二路由信息。其中,第一路由信息包括第一IPU的地址,第一路由信息用于指示网络设备将接收到的第一报文发送至第一IPU;第二路由信息包括第二IPU的地址,第二路由信息用于指示网络设备将接收到的第二报文发送至第二IPU。
一种可能的实现方式中,上述第一路由信息中还包括第二IPU的地址,第一路由信息中第一IPU的地址的优先级高于第二路由信息中第一IPU的地址的优先级。
一种可能的实现方式中,上述第二路由信息中还包括第一IPU的地址,第二路由信息中第二IPU的地址的优先级高于第一路由信息中第二IPU的地址的优先级。
第十一方面,本申请实施例一种网络设备,包括接收模块。网络设备应用于NUMA架构中的数据中心,数据中心还包括服务器,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。虚拟路由设备包括第一IPU和第二IPU,第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中。第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接,第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
上述接收模块用于接收第一IPU发送的第一报文,第一报文是第一IPU从第一虚拟机接收的;并且接收第二IPU发送的第二报文,第二报文是第二IPU从第二虚拟机接收的。
一种可能的实现方式中,上述接收模块还用于接收第二IPU发送的第三报文,第三报文是第二IPU从第一IPU接收的,且第三报文是第一IPU从第一虚拟机接收的。
第十二方面,本申请实施例一种网络设备,包括接收模块。该网络设备应用于NUMA架构中的数据中心,数据中心还包括服务器,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。虚拟路由设备包括第一元IPU和第二IPU,第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中。第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接,第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
该接收模块用于从虚拟路由设备接收第一路由信息和第二路由信息,第一路由信息包括第一IPU的地址,第二路由信息包括第二IPU的地址。其中,第一路由信息用于指示网络设备将接收到的第一报文发送至第一IPU,第一报文是发送至第一虚拟机的报文,第二路由信息用于指示网络设备将接收到的第二报文发送至第二IPU,第二报文是发送至第二虚拟机的报文。
一种可能的实现方式中,上述接收模块具体用于从虚拟路由设备的第一IPU接收第一路由信息;并且从虚拟路由设备的第二IPU接收第二路由信息。
一种可能的实现方式中,上述接收模块还用于从虚拟路由设备接收第三路由信息,第三路由信息包括虚拟路由设备的地址。第三路由信息用于指示在网络设备与第一IPU之间发生通信故障的情况下,网络设备将接收到的第三报文发送至第二IPU,第三报文是发送至第一虚拟机的报文;或者,第三路由信息用于指示在网络设备于第二IPU之间发生通信故障的情况下,网络设备将接收到的第四报文发送至第一IPU,第四报文是发送至第二虚拟机的报文。
一种可能的实现方式中,上述第一路由信息中还包括第二IPU的地址,第一路由信息中第一IPU的地址的优先级高于第二路由信息中第一IPU的地址的优先级。
一种可能的实现方式中,上述第二路由信息中还包括第一IPU的地址,第二路由信息中第二IPU的地址的优先级高于第一路由信息中第二IPU的地址的优先级。
第十三方面,本申请实施例提供一种计算机设备,包括存储器和与存储器连接的至少一个处理器,存储器用于存储指令,指令被至少一个处理器读取后,执行上述第一方面、第二方面、第三方面及其可能的实现方式中任意之一所述的方法。
第十四方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质包括计算机程序,当计算机程序在计算机上运行时,以执行上述第一方面、第二方面、第三方面及其可能的实现方式中任意之一所述的方法。
第十五方面,本申请实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面、第二方面、第三方面及其可能的实现方式中任意之一所述的方法。
第十六方面,本申请实施例提供一种芯片,包括存储器和处理器。存储器用于存储计算机指令。处理器用于从存储器中调用并运行该计算机指令,以执行上述第一方面、第二方面、第三方面及其可能的实现方式中任意之一所述的方法。
第十七方面,本申请实施例提供一种网络设备,包括存储器和与存储器连接的至少一个处理器,存储器用于存储指令,指令被至少一个处理器读取后,执行上述第四方面、第五方面、第六方面及其可能的实现方式中任意之一所述的方法。
第十八方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质包括计算机程序,当计算机程序在计算机上运行时,以执行上述第四方面、第五方面、第六方面及其可能的实现方式中任意之一所述的方法。
第十九方面,本申请实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第四方面、第五方面、第六方面及其可能的实现方式中任意之一所述的方法。
第二十方面,本申请实施例提供一种芯片,包括存储器和处理器。存储器用于存储计算机指令。处理器用于从存储器中调用并运行该计算机指令,以执行上述第四方面、第五方面、第六方面及其可能的实现方式中任意之一所述的方法。
第二十一方面,本申请实施例提供一种数据中心,包括服务器和网络设备,该服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机。第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。虚拟路由设备包括第一IPU和第二IPU,第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中,第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接。第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接;虚拟路由设备为上述第七方面、第八方面以及第九方面及其可能的实现方式中任意之一所述的计算机设备,网络设备为上述第十方面、第十一方面以及第十二方面及其可能的实现方式中任意之一所述的网络设备。
应当理解的是,本申请实施例的第七方面至第二十一方面技术方案及对应的可能的实施方式所取得的有益效果可以参见上述对第一方面至第六方面及其对应的可能的实施方式的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种服务器的结构示意图一;
图2为本申请实施例提供的一种服务器的结构示意图二;
图3为本申请实施例提供的一种数据中心的架构示意图一;
图4为本申请实施例提供的一种服务器的硬件示意图;
图5为本申请实施例提供的一种虚拟路由设备的结构示意图;
图6为本申请实施例提供的一种数据中心的架构示意图二;
图7为本申请实施例提供的一种虚拟接口创建流程示意图;
图8A为本申请实施例提供的一种路由发送和接收方法示意图一;
图8B为本申请实施例提供的一种路由发送和接收方法示意图二;
图8C为本申请实施例提供的一种路由发送和接收方法示意图三;
图9A为本申请实施例提供的一种报文转发方法示意图一;
图9B为本申请实施例提供的一种报文转发方法示意图二;
图10A为本申请实施例提供的一种报文转发方法示意图三;
图10B为本申请实施例提供的一种报文转发方法示意图四;
图11A为本申请实施例提供的一种报文转发路径示意图一;
图11B为本申请实施例提供的一种报文转发路径示意图二;
图11C为本申请实施例提供的一种报文转发路径示意图三;
图11D为本申请实施例提供的一种报文转发路径示意图四;
图11E为本申请实施例提供的一种报文转发路径示意图五;
图12A为本申请实施例提供的一种报文转发方法示意图五;
图12B为本申请实施例提供的一种报文转发方法示意图六;
图13A为本申请实施例提供的一种报文转发方法示意图七;
图13B为本申请实施例提供的一种报文转发方法示意图八;
图14A为本申请实施例提供的一种报文转发方法示意图九;
图14B为本申请实施例提供的一种报文转发方法示意图十;
图15A为本申请实施例提供的一种报文转发方法示意图十一;
图15B为本申请实施例提供的一种报文转发方法示意图十二;
图16为本申请实施例提供的一种虚拟路由设备的结构示意图;
图17为本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一NUMA节点和第二NUMA节点等是用于区别不同的NUMA节点,而不是用于描述NUMA节点的特定顺序,第一IPU和第二IPU,第一虚拟机和第二虚拟机等也是类似的含义;第一报文和第二报文等是用于区别不同的报文,而不是用于描述报文的特定顺序,第一路由信息、第二路由信息、第三路由信息以及第三路由信息也是类似的含义。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个网络设备是指两个或两个以上的网络设备;多个NUMA节点是指两个或两个以上的NUMA节点。
首先对本申请实施例提供的一种报文转发、路由发送和接收方法及装置中涉及的一些概念以及背景知识做解释说明。
NUMA架构的简要介绍:NUMA架构中,数据中心的服务器的中央处理器(centralprocessing unit,CPU)包括多个节点(本申请实施例将此类节点统称为NUMA节点),每个NUMA节点对应一个内存空间和一个内存控制器,不同节点之间通过总线连接。
如图1所示,假设上述服务器包括CPU 1和CPU 2,CPU 1中包括2个NUMA节点,分别为NUMA节点A1和NUMA节点A2,NUMA节点A1对应的内存空间和内存控制器分别为内存B1和内存控制器C1。NUMA节点A2对应的内存空间和内存控制器分别为内存B2和内存控制器C2。CPU2中包括2个NUMA节点,分别为NUMA节点A3和NUMA节点A4,NUMA节点A3对应的内存空间和内存控制器分别为内存B3和内存控制器C3,NUMA节点A4对应的内存空间和内存控制器分别为内存B4和内存控制器B4。
例如,当NUMA节点A1访问内存B1时,该NUMA节点A1可以通过该NUMA节点A1对应的内存控制器C1访问内存B1,该内存访问过程为本地内存访问。又例如,当NUMA节点A1访问NUMA节点A3的内存B3时,该NUMA节点A1需通过NUMA节点之间的总线访问内存B3,该内存访问过程为远程内存访问。应理解,远程内存访问的时延大于本地内存访问的时延,因此对于对时延较为敏感的应用或服务,远程内存访问可能不能满足应用或服务的需求。
示例性的,在一种NUMA架构中的数据传输系统(以下将数据传输系统简称为数据中心)中,如图2所示,数据中心的服务器中包括NUMA节点1和NUMA节点2,NUMA节点1上创建虚拟机1,NUMA节点1的内存空间为内存1;NUMA节点2中创建虚拟机2,NUMA节点2的内存空间为内存2,虚拟路由设备部署在NUMA节点1中。
当虚拟路由设备从网络设备(例如接入层设备等)接收到报文1,该报文1的目的地址为虚拟机1的地址,那么该虚拟路由设备需将该报文1发送至虚拟机1。具体的,该虚拟路由设备接收到报文1之后,将该报文1缓存在内存1中的共享队列,该共享队列是虚拟机1和虚拟路由设备的共享队列,进而,虚拟机1轮询该共享队列以获取报文1。可知,此时报文1是在本节点(即NUMA节点1)内从虚拟路由设备转发至虚拟机1,也可以理解为报文1的转发过程为本地转发,该报文1的转发过程中虚拟路由设备进行本地内存访问。
当虚拟路由设备从网络设备(例如接入层设备等)接收到报文2,该报文2的目的地址为虚拟机2的地址,那么该虚拟路由设备需将该报文2发送至虚拟机2。具体的,该虚拟路由设备接收到报文2之后,将该报文2发送至第二NUMA节点,并将该报文缓存在内存2中的共享队列,该共享队列是虚拟机2和虚拟路由设备的共享队列,进而,虚拟机2轮询该共享队列以获取报文2。可知,此时报文2需跨节点发送至虚拟机2(即从NUMA节点1发送至NUMA节点2),也可以理解为报文2的转发过程为跨节点转发,该报文2的转发过程中虚拟路由设备进行远程内存访问。
基于背景技术存在的问题,本申请实施例提供一种报文转发、路由发送和接收方法及装置,应用于NUMA架构中的数据中心,能够避免NUMA架构下远程内存访问,从而降低报文的转发时延。本申请实施例主要涉及以下三个方面的内容。
第一方面,NUMA架构下数据中心的部署,尤其是数据中心中虚拟路由设备的部署。
第二方面,基于NUMA架构中部署的数据中心,实现路由信息的配置,路由信息的配置包括路由信息的生成、发送以及接收。
第三方面,基于上述部署的NUMA架构的数据中心以及配置完成的路由信息,进行报文的转发,报文转发过程包括上行转发过程和下行转发过程。
以下将着重从上述三个方面来详细介绍本申请实施例提供的报文转发、路由发送和接收方法及装置。
本申请实施例提供一种NUMA架构中的数据传输系统(以下实施例中将该数据传输系统简称为数据中心),如图3所示,该数据中心包括服务器301和网络设备302,该服务器301包括虚拟机和虚拟路由设备,该虚拟机通过虚拟路由设备与网络设备通信。该服务器301包括多个NUMA节点,在图3中,多个NUMA节点分别记为NUMA节点301-1、NUMA节点301-2、...、NUMA节点301-n,n为大于或等于2的正整数。上述虚拟机和虚拟路由设备均部署在该服务器301中,该虚拟路由设备包括至少一个主处理单元(main processing unit,MPU)和多个接口处理单元(interface processing unit,IPU),MPU和IPU位于NUMA节点中。
可选地,IPU的数量小于或等于NUMA节点的数量。并且,IPU的数量大于或等于2。例如,NUMA节点的数量可以与IPU的数量相等,并且一个NUMA节点对应一个IPU。在图3中,MPU的数量为2,记为MPU 1和MPU 2,上述多个IPU分别为IPU 1、IPU 2、...、IPU n。虚拟路由设备的2个MPU可以位于上述n个NUMA节点中的2个NUMA节点上,例如,MPU1位于NUMA节点301-1中,MPU2位于NUMA节点301-2中,当然这2个MPU也可以位于其他2个NUMA节点中,本申请实施例不作限定。
上述虚拟路由设备是采用分离部署的方式部署的,即该虚拟路由设备包括至少一个MPU和多个IPU,并且多个IPU位于不同的NUMA节点中。
本申请实施例中,服务器301中创建有虚拟机(virtual machine,VM)或容器(Pod),该虚拟机或容器是云管理平台(例如OpenStack)根据业务需求在服务器的不同NUMA节点上创建的,以下实施例以服务器中创建的是虚拟机为例说明本申请实施例提供的技术方案。上述部署在服务器301中的虚拟路由设备为虚拟机提供虚拟网络服务。具体的,每一个NUMA节点包括一个或多个虚拟机。例如,在图3中,NUMA节点301-1包括2个虚拟机,分别记为VM 1和VM 2;NUMA节点301-2包括也包括2个虚拟机,分别记为VM 3和VM 4。
应理解,上述每一个IPU包括虚拟端口和物理端口,IPU通过虚拟端口与虚拟机连接进而通信,IPU通过物理端口与网络设备连接进而通信。在图3中,虚拟端口记为vNIC,物理端口记为NIC。可选地,IPU的虚拟端口的数量可以为一个或多个,物理端口的数量也可以为一个或多个,该虚拟端口的数量和物理端口的数量可以根据实际需求设置,本申请实施例不作限定。例如,图3中,IPU 1上包括2个虚拟端口,分别为vNIC 1和vNIC 2,IPU 1上包括一个物理端口,为NIC 1;IPU2上包括2个虚拟端口,分别为vNIC 3和vNIC 4,IPU 2上包括一个物理端口,为NIC 2。
本申请实施例中,在服务器301中部署了上述虚拟路由设备的基础上,云管理平台在该服务器301内创建虚拟机时,服务器301中的虚拟网络接口代理(模块)驱动该虚拟路由设备创建上述虚拟端口,关于虚拟端口的创建过程将在下述实施例中详细描述。
可选地,上述网络设备302为路由器或交换机,该网络设备302可以为是单层网络中的网络设备,该网络设备302的数量为一个或多个;该网络设备302也可以为多层网络中的网络设备,例如包括接入层设备(Leaf设备、ToR设备)和汇聚层设备(Spine设备、EoR设备),接入层设备为Leaf设备,则汇聚层设备为Spine设备;接入层设备为ToR设备,则汇聚层设备为EoR设备,且该网络设备302的数量为多个。本申请对网络设备所处的网络不做限定,并且对网络设备的数量也不作限定。
本申请实施例提供一种服务器,应用于上述图3中的数据中心。图4为该服务器的结构示意图,该服务器400包括至少一个处理器401和存储器402。
其中,处理器401包括一个或多个中央处理器(central processing unit,CPU)。该CPU为单核CPU(single-CPU)或多核CPU(multi-CPU)。
存储器402包括但不限于是随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、可擦除可编程只读存储器(erasable programmableread-only memory,EPROM)、快闪存储器、或光存储器等。存储器402中保存有操作系统的代码和其他指令。
可选地,处理器401通过读取存储器402中保存的指令实现本申请实施例中的部分方法,或者,处理器401通过内部存储的指令实现本申请实施例中的部分方法。在处理器401通过读取存储器402中保存的指令实现本申请实施例中的方法的情况下,存储器402中保存实现本申请实施例提供的报文转发、路由发送和路由接收方法的指令。
可选地,图4所示的服务器400还包括网络接口403。网络接口403是有线接口,例如光纤分布式数据接口(fiber distributed data interface,FDDI)、千兆以太网(gigabitethernet,GE)接口。或者,网络接口403是无线接口。网络接口403用于接收报文,或者,网络接口403用于向网络中的网络设备发送报文。
存储器402用于存储网络接口403接收到的报文,可选地,存储器402中还有用于指示报文转发的路由表(包含路由信息)等。处理器401进一步根据存储器402保存的路由表来执行本申请实施例所描述的报文转发方法。
可选地,服务器400还包括总线404,上述处理器401、存储器402通常通过总线404相互连接,或采用其他方式相互连接。
可选地,服务器400还包括输入输出接口405,输入输出接口405用于与输入设备连接,输入设备包括但不限于键盘、触摸屏、麦克风等等。输入输出接口405还用于与输出设备连接,输出设备包括但不限于显示器、打印机等等。
结合上述实施例的描述可知,网络设备302可以为路由器或交换机,该网络设备的硬件结构与上述服务器的结构类似,包括处理器、存储器以及网络接口等,关于网络设备的结构描述可以参考上述对于服务器的相关描述,此处不再赘述。
在本申请实施例提供的服务器中部署有虚拟路由设备,如图5所示,虚拟路由设备包括三个独立部署的进程组,分别为MPU、IPU和虚拟网格(vFabric)。可选地,虚拟路由设备可以包括至少一个MPU和多个IPU。
其中,MPU包括系统管理模块和IP控制模块,系统管理模块负责该虚拟路由设备的操作与维护、业务进程拉起与监控等;IP控制模块负责管理虚拟路由设备的动态路由协议、协议栈或服务等级等。
IPU包括IP软转发模块和虚拟IO模块,IP软转发模块负责控制面的转发表项合成、数据报文的封装与解封装、查表转发等;虚拟IO模块用于对虚拟路由设备的虚拟接口的生命周期管理,例如,对于控制面,该虚拟IO模块在虚拟网络接口代理的驱动下创建虚拟端口;对于数据面,该虚拟IO模块轮询共享队列接收报文,或者,将发送至其他设备(例如VM)的报文加入至共享队列。
虚拟网格负责至少一个MPU与多个IPU之间的通信。
结合上述图3所示的NUMA架构中的数据中心,本申请实施例以下述图6所示的数据中心为例介绍本申请实施例提供的数据报文的转发、路由发送和接收方法及装置。
如图6所示,数据中心包括服务器和网络设备,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。该服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机。第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。该虚拟路由设备包括第一IPU和第二IPU,该第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中。并且,第一IPU包括第一虚拟端口(vNIC1)和第一物理端口(NIC1),第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接。第二IPU包括第二虚拟端口(vNIC2)和第二物理端口(NIC2),第二IPU通过该第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
本申请实施例中,云管理平台根据业务需求在服务器的第一NUMA节点上创建第一虚拟机,在服务器的第二NUMA节点上创建第二虚拟机之后,虚拟路由设备创建第一IPU对应的第一虚拟端口和第二IPU对应的第二虚拟端口,以实现虚拟路由设备与虚拟机之间的通信。如图7具体步骤包括步骤701至步骤708。
步骤701、云管理平台向虚拟网络接口代理(vRouter agent)发送调用消息,该调用消息用于调用该虚拟网络接口代理,以发起虚拟端口创建流程。
具体的,该调用消息用于发起创建上述第一虚拟端口和第二虚拟端口的流程,该调用消息中包括第一参数组和第二参数组。应理解,第一参数组中的参数是待创建的第一虚拟端口的参数,第二参数组中的参数是待创建的第二虚拟端口的参数。第一参数组中包括第一NUMA节点的ID,第一虚拟端口的类型以及其他参数,第二参数组中包括第二NUMA节点的ID,第二虚拟端口的类型以及其他参数。
可选地,云管理平台也可以向虚拟网络接口代理分别发送调用消息,例如分别发送第一调用消息和第二调用消息,第一调用消息用于发起创建第一虚拟端口的流程,第二调用消息用于发起创建第二虚拟端口的流程,本申请实施例不作限定。
步骤702、虚拟网络接口代理向虚拟路由设备的系统管理模块发送端口创建请求消息。
该端口创建请求消息中携带上述第一参数组(包括第一NUMA节点的ID,第一虚拟端口的类型以及其他参数)和第二参数组(包括第二NUMA节点的ID,第二虚拟端口的类型以及其他参数)。
步骤703、虚拟路由设备的系统管理模块向第一IPU中的虚拟IO模块发送第一虚拟端口创建请求消息。
步骤704、第一IPU中的虚拟IO模块创建第一虚拟端口。
本申请实施例中,上述系统管理模块根据该系统管理模块接收的端口创建请求消息中的第一NUMA节点的ID,向部署在第一NUMA节点上的第一IPU发送第一虚拟端口创建请求消息,请求在该第一IPU上创建满足参数需求(即上述端口的类型以及其他参数)的第一虚拟接口。
步骤705、第一IPU中的虚拟IO模块与第一虚拟机进行虚拟IO协议协商,建立与第一虚拟机之间的数据通道。
步骤706、虚拟路由设备的系统管理模块向第二IPU中的虚拟IO模块发送第二虚拟端口创建请求消息。
步骤707、第二IPU中的虚拟IO模块创建第二虚拟端口。
本申请实施例中,上述系统管理模块根据该系统管理模块接收的端口创建请求消息中的第二NUMA节点的ID,向部署在第二NUMA节点上的第二IPU发送第二虚拟端口创建请求消息,请求在该第二IPU上创建满足参数需求(即上述端口的类型以及其他参数)的第二虚拟接口。
应理解,上述完成虚拟端口创建之后,IPU中的虚拟IO模块负责管理本IPU的虚拟端口,轮询本IPU与对应的虚拟机的共享队列,从而接收报文。例如,上述第一IPU上的虚拟IO模块仅负责管理第一虚拟端口,第二IPU上的虚拟IO模块仅负责管理第二虚拟端口。
步骤708、第二IPU中的虚拟IO模块与第二虚拟机进行虚拟IO协议协商,建立与第二虚拟机之间的数据通道。
上述NUMA架构中的数据中心部署完成之后,管理员或者管理设备为虚拟路由设备中的每一个IPU分配唯一的标识,作为IPU的地址;并且基于IPU的标识为与该IPU连接的虚拟机分配虚拟专用网络标识。可选地,可以由管理员基于IPU的标识静态地为与IPU连接的虚拟机分配虚拟专用网络标识,或者,由MPU基于IPU的标识动态地为与IPU连接的虚拟机分配虚拟专用网络标识。
基于图6所示的NUMA架构的数据中心,本申请实施例提供一种路由发送和接收方法,如图8A所示,在一种实现方式中,路由发送和接收过程包括步骤801至步骤804。
步骤801、虚拟路由设备向网络设备发送第一路由信息和第二路由信息,该第一路由信息包括第一IPU的地址,第二路由信息包括第二IPU的地址。
第一路由信息用于指示网络设备将接收到的第一报文发送至第一IPU,第一报文是发送至第一虚拟机的报文。第二路由信息用于指示网络设备将接收到的第二报文发送至第二IPU,第二报文是发送至第二虚拟机的报文。
可以理解的是,上述第一IPU的地址与第二IPU的地址不同。第一虚拟机的虚拟专用网络标识是基于第一IPU的地址分配的,第二虚拟机的虚拟专用网络标识是基于第二IPU的地址分配的。
可选地,当数据中心位于互联网协议第6版分段路由SRv6网络中时,IPU的地址为SRv6的定位符(即SRv6的locator,简写为IPU locator),虚拟机的虚拟专用网络的标识为虚拟专用网络分段标识(virtual private network,VPN SID)。当数据中心位于虚拟可扩展局域网(virtual extensible local area network,VxLAN)网络中时,IPU的地址为VxLAN隧道终点(VxLAN tunnel point,VTEP)地址,虚拟机的虚拟专用网络的标识为虚拟网络标识(virtual network identifier,VNI)。上述VTEP地址可以是IPv4地址,也可以是IPv6地址,本申请实施例不作限定。
步骤802、网络设备从虚拟路由设备接收第一路由信息和第二路由信息。
本申请实施例中,网络设备接收到第一路由信息和第二路由信息之后,将该第一路由信息和第二路由信息存储在该网络设备中,进而后续进行报文转发时,该虚拟路由设备根据存储的路由信息进行转发报文。
步骤803、虚拟路由设备向网络设备发送第三路由信息,该第三路由信息包括虚拟路由设备的地址。
第三路由信息用于指示在网络设备与第一IPU之间发生通信故障的情况下,网络设备将接收到的第三报文发送至第二IPU,第三报文是发送至第一虚拟机的报文。或者,第三路由信息用于指示在网络设备于第二IPU之间发生通信故障的情况下,网络设备将接收到的第四报文发送至第一IPU,第四报文是发送至第二虚拟机的报文。
可选地,虚拟路由设备的地址是管理员或者管理设备为虚拟路由设备分配的,并且唯一指示该虚拟路由设备,该虚拟路由设备的地址可以为SRv6的定位符(简写为vRouterlocator)。
步骤804、网络设备从虚拟路由设备接收第三路由信息。
可选地,如图8B所示,上述步骤801具体包括步骤801a至步骤801b。
步骤801a、虚拟路由设备通过第一IPU向网络设备发送第一路由信息。
步骤801b、虚拟路由设备通过第二IPU向网络设备发送第二路由信息。
具体的,通过第一IPU上的第一物理端口向网络设备发送第一路由信息,通过第二IPU上的第二物理端口向网络设备发送第二路由信息。
可选地,虚拟路由设备基于边界网关协议(border gateway protocol,BGP)协议或内部网关协议(interior gateway protocol,IGP)发布上述第一路由信息和第二路由信息。
相应地,上述步骤802具体包括步骤802a至步骤802b。
步骤802a、网络设备从虚拟路由设备的第一IPU接收第一路由信息。
步骤802b、网络设备从虚拟路由设备的第二IPU接收第二路由信息。
在另一种实现方式中,如图8C所示,路由发送和接收过程包括步骤801′至步骤802′。
步骤801′、虚拟路由设备向网络设备发送第一路由信息和第二路由信息,该第一路由信息包括第一IPU的地址和第二IPU的地址,第二路由信息包括第二IPU的地址和第一IPU的地址。
上述第一路由信息中第一IPU的地址的优先级高于第二路由信息中第一IPU地址的优先级;第二路由信息中第二IPU的地址的优先级高于第一路由信息中第二IPU的地址的优先级。
可选地,上述虚拟路由设备发送第一IPU的地址和第二IPU的地址时可以携带IPU的优先级指示信息。例如,IPU的优先级指示信息可以为开销信息,虚拟路由设备发送第一路由信息时,通过第一物理端口发送的第一IPU的地址对应的开销信息为低开销,通过该第一物理端口发送的第二IPU的地址对应的开销信息为高开销。虚拟路由设备发送第二路由信息时,通过第二物理端口发送的第二IPU的地址对应的开销信息为低开销,通过该第二物理端口发送的第一IPU的地址对应的开销信息为高开销。那么,第一路由信息中第一IPU的地址的优先级高于第二路由信息中第一IPU地址的优先级;第二路由信息中第二IPU的地址的优先级高于第一路由信息中第二IPU的地址的优先级。
需要说明的是,本申请实施例中,上述IPU的优先级指示信息也可以为其他形式的指示信息,例如,采用标识信息指示IPU的地址的优先级,具体根据实际情况确定,本申请实施例不作限定。
步骤802′、网络设备从虚拟路由设备接收第一路由信息和第二路由信息。
本申请实施例中,路由信息的发布和接收过程是路由学习过程,应理解,虚拟路由设备还可以向与该虚拟路由设备通信的其他路由设备发送上述第一路由信息和第二路由信息。并且,该虚拟路由设备还可以接收网络设备(例如ToR设备或EoR设备)或其他设备发布的路由信息。例如,该虚拟路由设备从网络设备接收第四路由信息,该第四路由信息中包括该网络设备的地址。
综上可知,可以通过两种方式配置路由信息,第一种方式是通过上述步骤801至步骤804完成路由信息的配置;第二种方式是通过步骤801′至步骤802′完成路由信息的配置。进而数据中心中的网络设备和虚拟路由设备可以基于配置的路由信息进行报文转发。本申请实施例中,虚拟路由设备从网络设备接收报文,并将该报文转发至对应的虚拟机。
需要说明的是,网络设备接收的报文可能是发送至第一虚拟机的报文,网络设备接收的报文也可能是发送至第二虚拟机的报文。在以下实施例中,目的设备为第一虚拟机的报文是一类报文,目的设备为第二虚拟机的报文是另一类报文。可以理解的是,上述路由信息(包括第一路由信息和第二路由信息)的作用是指示网络设备将接收到的同一类报文发送至对应的IPU,例如,下述实施例中,第一报文和第三报文均发送至第一虚拟机的报文,如此,第一路由信息可以指示网络设备将接收到的第一报文或第三报文发送至第一IPU;第二报文和第四报文均是发送至第二虚拟机的报文,如此,第二路由信息可以指示网络设备将接收到的第二报文或第四报文发送至第二IPU。
本申请实施例中,报文的转发过程包括下行转发和上行转发,其中,下行转发指的是网络设备将接收到的报文通过虚拟路由设备发送至虚拟机,即报文入虚拟机。上行转发指的是虚拟机将报文通过虚拟路由设备发送至网络设备,即报文出虚拟机。以下实施例分别从报文入虚拟机和报文出虚拟机来描述报文转发方法。
如图9A所示,报文入虚拟机的过程中,本申请实施例提供的报文转发方法包括步骤901-步骤908。
步骤901、网络设备接收第一报文,该第一报文是发送至第一虚拟机的报文。
步骤902、网络设备向第一IPU发送第一报文。
具体的,网络设备通过第一物理端口向第一IPU发送第一报文。
结合上述实施例的描述可知,网络设备中存储有第一路由信息,第一路由信息包括第一IPU的地址,该网络设备根据第一路由信息的指示,将该第一报文发送至第一IPU。
步骤903、第一IPU从网络设备接收第一报文。
具体的,第一IPU通过第一物理端口从网络设备接收第一报文。
步骤904、第一IPU向第一虚拟机发送第一报文。
具体的,第一IPU通过第一虚拟端口向第一虚拟机发送第一报文。
本申请实施例中,第一IPU接收到第一报文之后,解封装该第一报文,获得第一报文的目的地址(即第一虚拟机的业务地址),从而第一IPU向第一虚拟机发送第一报文。
步骤905、网络设备接收第二报文,该第二报文是发送至第二虚拟机的报文。
步骤906、网络设备向第二IPU发送第二报文。
具体的,网络设备通过第二物理端口向第二IPU发送第二报文。
同理,网络设备中存储有第二路由信息,第二路由信息包括第二IPU的地址,该网络设备根据第二路由信息的指示,将第二报文发送至第二IPU。
步骤907、第二IPU从网络设备接收第二报文。
具体的,第二IPU通过第二物理端口从网络设备接收第二报文。
步骤908、第二IPU向第二虚拟机发送第二报文。
具体的,第二IPU通过第二虚拟端口向第二虚拟机发送第二报文。
同理,第二IPU接收到该第二报文之后,解封装该第二报文,获得该第二报文的目的地址(即第二虚拟机的业务地址),从而第二IPU向第二虚拟机发送第二报文。
本申请实施例提供的报文转发方法,应用于NUMA架构中的数据中心,网络设备根据第一路由信息将待发送至第一虚拟机的报文(即上述第一报文)转发至虚拟路由设备的第一IPU,从而第一IPU将该第一报文发送至第一虚拟机。同理,网络设备根据第二路由信息将待发送至第二虚拟机的报文(即上述第二报文)转发至虚拟路由设备的第二IPU,从而第二IPU将该第二报文发送至第二虚拟机。由于不同的IPU部署在不同的NUMA节点上,对于发送至目标虚拟机的报文,虚拟路由设备通过该目标虚拟机所属的NUMA节点上的IPU接收该报文,进而由该IPU将报文发送至目的虚拟机。也就是说,在NUMA架构中,通过本NUMA节点上的IPU向本NUAM节点上的虚拟机发送报文,无需跨节点转发报文,能够避免远程内存访问,从而降低报文的转发时延。
可选地,结合图9A,如图9B所示,在网络设备与第一IPU之间发生通信故障的情况下,本申请实施例提供的报文转发方法还可以包括步骤909至步骤911。
应理解,网络设备与第一IPU之间发生通信故障包括网络设备与第一IPU之间的链路发生故障,或者,链路两端的端口发生故障,例如,第一物理端口可能发生故障。
步骤909、网络设备向第二IPU发送第三报文,该第三报文是发送至第一虚拟机的报文。
步骤910、第二IPU从网络设备接收第三报文。
步骤911、第二IPU向第一虚拟机发送第三报文。
具体的,第二IPU通过该第二IPU上的第二物理端口从网络设备接收第三报文,并解封装该第三报文,然后,第二IPU通过虚拟路由设备内部的虚拟网格(vFabric)将该第三报文发送至第一IPU,进而第一IPU通过该第一IPU上的第一虚拟端口向第一虚拟机发送第三报文。
本申请实施例中,在网络设备与第一IPU之间发生通信故障的情况下,网络设备将接收到待发送至第一虚拟机的报文(例如上述第三报文)通过第二IPU发送至第一虚拟机。由于第一虚拟机位于第一NUMA节点上,第二IPU部署在第二NUMA节点上,虚拟路由设备在通信故障的情况下采用远程内存访问,以保证报文顺利地发送至第一虚拟机,提升通信的可靠性。
如图10A所示,报文出虚拟机的过程中,本申请实施例提供的报文转发方法包括步骤1001至步骤1004。
步骤1001、第一IPU从第一虚拟机接收第一报文。
步骤1002、第一IPU向网络设备发送第一报文。
具体的,第一IPU通过该第一IPU的第一虚拟端口接收第一报文,并封装该第一报文,然后第一IPU依据本板优先原则,确定通过该第一IPU的第一物理端口将第一报文发送至网络设备。
步骤1003、第二IPU从第二虚拟机接收第二报文。
步骤1004、第二IPU向网络设备发送第二报文。
具体的,第二IPU通过该第二IPU的第二虚拟端口接收第二报文,并封装该第二报文,然后第二IPU依据本板优先原则,确定通过该第二IPU的第二物理端口将第二报文发送至网络设备。
本申请实施例提供的报文转发方法,应用于NUMA架构中的数据中心,虚拟路由设备的第一IPU从第一虚拟机接收第一报文,并通过该第一IPU将该第一报文发送至网络设备。同理,虚拟路由设备的第二IPU从第二虚拟机接收第二报文,并通过该第二IPU将该第二报文发送至网络设备。由于不同的IPU部署在不同的NUMA节点上,可知在NUMA架构中,通过本NUAM节点上的虚拟机发送的报文通过本NUMA节点上的IPU转发,无需跨节点转发报文,能够避免远程内存访问,从而降低报文的转发时延。
结合图10A,如图10B所示,在网络设备与第一IPU之间发生通信故障的情况下,本申请实施例提供的报文转发方法还可以包括步骤1005至步骤1008。
步骤1005、第一IPU从第一虚拟机接收第三报文。
步骤1006、第一IPU将第三报文发送至第二IPU。
具体的,第一IPU从该第一IPU的第一虚拟端口接收第三报文,并封装该第三报文,然后第一IPU通过虚拟路由设备内部的虚拟网格(vFabric)将第三报文发送至第二IPU。
步骤1007、第二IPU向网络设备发送第三报文。
本申请实施例中,第二IPU从第一IPU接收第三报文,并将通过该第二IPU的第二物理端口向网络设备发送第三报文。
步骤1008、网络设备接收第二IPU发送的第三报文。
该第三报文是第二IPU从第一IPU接收的,且该第三报文是第一IPU从第一虚拟机接收的。
本申请实施例中,在网络设备与第一IPU之间发生通信故障的情况下,虚拟路由设备的第一IPU从第一虚拟机接收到的报文将通过该虚拟路由设备的第二IPU发送至网络设备,由于不同的IPU部署在不同的NUMA节点上,虚拟路由设备在通信故障的情况下采用远程内存访问,以保证报文顺利地发送至第一虚拟机,提升通信的可靠性。
结合上述实施例可知,数据中心中的网络设备可以为单层网络中的设备或多层网络中的设备。下述实施例中,以网络设备为多层网络中的设备,并且该网络设备包括汇聚层设备和接入层设备为例,介绍转发报文的过程。如图11A,第一接入层设备与第一IPU连接,第二接入层设备与第二IPU连接,且第一汇聚层设备与第一接入层设备、第二接入层设备连接,第二汇聚层设备与第一接入层设备、第二接入层设备连接,具体连接关系参考图11A中的示意。
结合图11A所示的数据中心,上述路由信息配置过程中,第一接入层设备从虚拟路由设备接收第一路由信息,并将该第一路由信息发送至第一汇聚层设备和第二汇聚层设备。第二接入层设备从虚拟路由设备接收第二路由信息,并将该第二路由信息发送至第一汇聚层设备和第二汇聚层设备。同理,第一接入层设备从虚拟路由设备接收到第三路由信息,或者,第二接入层设备从虚拟路由设备接收到第三路由信息之后,该第一接入层设备或第二接入层设备也将第三路由信息发送至第一汇聚层设备和第二汇聚层设备。应理解,各个接入层设备和汇聚层设备根据其接收的路由信息生成转发表项(即路由表),存储路由表并根据实际情况更新路由表。
当通过第一种方式进行路由信息配置(即通过步骤801至步骤804完成路由信息配置)时,本申请实施例提供的报文转发方法可以应用于SRv6网络中的数据中心。例如,该SRv6网络中的数据中心的第一IPU的地址为A1:B1:C1:D1:1::/68,第二IPU的地址为A1:B1:C1:D1:1::/64,虚拟路由设备的地址为A1:B1:C1:D1::/64,第一虚拟机的VPN SID为A1:B1:C1:D1:1::1,第二虚拟机的VPN SID为A1:B1:C1:D1:2::1。
如图12A所示,在报文入虚拟机的过程中,本申请实施例提供的报文转发方法包括步骤1201至步骤1212。
步骤1201、第一汇聚层设备接收第一报文。
第一报文是发送至第一虚拟机的报文。应理解,对于汇聚层设备,第一报文的目的地址(称为第一报文的外层目的地址)为第一虚拟机的VPN SID,即上述A1:B1:C1:D1:1::1。
步骤1202、第一汇聚层设备向第一接入层设备发送第一报文。
表1为第一汇聚层设备存储的路由表的部分内容的示例,结合表1,第一汇聚层设备采用最长匹配的方法,将上述第一报文的外层目的地址A1:B1:C1:D1:1::1与路由表中的表项进行匹配,确定该第一报文的下一跳设备为第一接入层设备(即ToR1),进而第一汇聚层设备向第一接入层设备发送该第一报文。
表1
dest/mask | next-hop | out-intf |
A1:B1:C1:D1:1::/68 | IP-ToR1 | intf to ToR1 |
FRR | IP-ToR2 | intf to ToR2 |
步骤1203、第一接入层设备接收第一报文。
步骤1204、第一接入层设备根据第一路由信息,向第一IPU发送第一报文。
本申请实施例中,第一接入层设备接收到第一路由信息后,生成转发表项并存储在路由表中。表2为第一接入层设备存储的路由表的部分内容的示例,结合表2,第一接入层设备采用最长匹配的方法,将第一报文的外层目的地址A1:B1:C1:D1:1::1与路由表中的表项进行匹配,确定该第一报文的下一跳设备为第一IPU(第一IPU对应的端口为NIC1),进而第一接入层设备向第一IPU发送该第一报文。
表2
目的dest/mask | 下一跳next-hop | 出接口out-intf |
A1:B1:C1:D1:1::/68 | IP-NIC1 | intf to NIC1 |
A1:B1:C1:D1:1::/64 | IP-NIC1 | intf to NIC1 |
Ti-LFA | IP-EoR2/IP-EoR1 | intf to EoR2/FoR1 |
步骤1205、第一IPU接收第一报文,并解封装该第一报文,得到第一虚拟机的VPNSID。
第一IPU从第一IPU的第一物理端口(即NIC1)接收第一报文,并解封装该第一报文,从第一报文的SRv6头部获得该第一报文的外层目的地址(即第一虚拟机的VPN SID)。
步骤1206、第一IPU根据第一虚拟机的VPN SID向第一虚拟机发送第一报文。
表3为第一IPU的本地SID表的部分内容的示例,第一IPU解封装第一报文获得第一报文的外层目的地址之后,第一IPU在该第一IPU本地存储的SID表中查找与该外层目的地址A1:B1:C1:D1:1::1对应的表项,确定该第一报文的出接口为第一IPU的第一虚拟端口(即vNIC1),进而通过该第一虚拟端口将第一报文发送至第一虚拟机。
表3
Local SID | Type | out-intf |
A1:B1:C1:D1:1::1 | End.DX | vNIC1 |
A1:B1:C1:D1:2::1 | End.DX | vNIC2 |
参考图11A,图中的曲线示意了第一报文的转发路径。
步骤1207、第二汇聚层设备接收第二报文。
该第二报文是发送至第二虚拟机的报文。同理,对于汇聚层设备,第二报文的目的地址(称为第二报文的外层目的地址)为第二虚拟机的VPN SID,即上述A1:B1:C1:D1:2::1。
步骤1208、第二汇聚层设备向第二接入层设备发送第二报文。
步骤1209、第二接入层设备接收第二报文。
步骤1210、第二接入层设备根据第二路由信息向第二IPU发送第二报文。
步骤1211、第二IPU接收第二报文,并解封装该第二报文,得到第二虚拟机的VPNSID。
步骤1212、第二IPU根据第二虚拟机的VPN SID向第二虚拟机发送第二报文。
本申请实施例中,第二报文的下行转发过程与第一报文的下行转发过程类似,对于步骤1207至步骤1212的相关描述可参考步骤1201至步骤1206的描述,此处不再赘述。
结合图12A,如图12B所示,在第一接入层设备与第一IPU之间发生通信故障的情况下,本申请实施例提供的报文转发方法还包括步骤1213至步骤1218。
步骤1213、第一接入层设备从第一汇聚层设备接收第三报文。
该第三报文是发送至第一虚拟机的报文,该第三报文的外层目的地址为第一虚拟机的VPN SID,即A1:B1:C1:D1:1::1。
步骤1214、第一接入层设备向第一汇聚层设备或第二汇聚层设备发送第三报文。
本申请实施例中,结合上述表2,当第一接入层设备与第一IPU之间发生通信故障时,第一接入层设备可感知到该故障情况,确定上述最长匹配的表项(即表2中A1:B1:C1:D1:1::/68对应的表项)不可用,因此,该第一接入层设备选择出接口正常的表项转发该第三报文。此过程可以理解为第一接入层设备执行拓扑无关的无环备份路径(topologyindependent loop free alternate,Ti-LFA)快切,也就是进行转发路径切换,采用上述表2中的Ti-LFA对应的表项转发报文。具体的,第一接入层设备修改第三报文的外层目的地址,然后第一接入层设备将该第三报文发送至第一汇聚层设备(即EoR1)或者将该第三报文发送至第二汇聚层设备(即EoR2)。
步骤1215、第一汇聚层设备或第二汇聚层设备向第二接入层设备发送第三报文。
在一种实现方式中,若第一接入层设备向第一汇聚层设备发送第三报文,则第一汇聚层设备接收到该第三报文之后,结合表1示例的该第一汇聚层设备存储的路由表,第一汇聚层设备采用最长匹配的方法,确定第三报文的外层目的地址与上述表1中的A1:B1:C1:D1:1::/64对应的表项匹配,因此确定第三报文的下一跳设备为第二接入层设备,进而第一汇聚层设备向第二接入层设备(即ToR2)发送该第三报文。
在另一种实现方式中,若第一接入层设备向第二汇聚层设备发送第三报文,则第二汇聚层设备接收到第三报文之后,结合如下表4示例的该第二汇聚层设备存储的路由表,该第二汇聚层设备采用最长匹配的方法,将该第三报文的外层目的地址与路由表中的表项进行匹配,确定第三报文的外层目的地址与上述表4中的A1:B1:C1:D1:1::/64对应的表项匹配,因此确定第三报文的下一跳设备为第二接入层设备(即ToR2),进而第二汇聚层设备向第二接入层设备发送该第三报文。
表4
dest/mask | next-hop | out-intf |
A1:B1:C1:D1:1::/64 | IP-ToR2 | intf to ToR2 |
步骤1216、第二接入层设备向第二IPU发送第三报文。
本申请实施例中,第二接入层设备接收到第三报文之后,结合如下表5示例的该第二接入层设备存储的路由表,该第二接入层设备采用最长匹配的方法,将该第三报文的外层目的地址与路由表中的表项进行匹配,确定第三报文的下一跳设备为第二IPU(第二IPU对应的端口为NIC2),进而第二接入层设备向第二IPU发送该第三报文。
表5
目的dest/mask | 下一跳next-hop | 出接口out-intf |
A1:B1:C1:D1:1::/64 | IP-NIC2 | intf to NIC2 |
FRR | IP-EoR1/IP-EoR2 | intf to EoR1/EoR2 |
步骤1217、第二IPU从第二接入层设备接收第三报文,并解封装该第三报文,得到第一虚拟机的VPN SID。
第二IPU从第二IPU的第二物理端口(即NIC2)接收第三报文,并解封装该第三报文,从第三报文的SRv6头部获得该第三报文的VPN SID,即A1:B1:C1:D1:1::1。
步骤1218、第二IPU根据第一虚拟机的VPN SID向第一虚拟机第三报文。
表6为第二IPU的本地SID表的部分内容的示例,第二IPU获得第三报文的外层目的地址,即第一虚拟机的VPN SID之后,第二IPU在该第二IPU本地存储的SID表中查找与该外层目的地址对应的表项,确定该第三报文的出接口为第一IPU的第一虚拟端口(即vNIC1),进而第第二IPU通过该第一虚拟端口将第三报文发送至第一虚拟机。
表6
Local SID | Type | out-intf |
A1:B1:C1:D1:2::1 | End.DX | vNIC2 |
A1:B1:C1:D1:1::1 | End.DX | vNIC1 |
参考图11B,图中的实曲线示意了在第一接入层设备与第一IPU之间发生通信故障的情况下,第三报文的一种转发路径(应注意,在该转发路径中,第一接入层设备将第三报文发送至第二汇聚层设备的)。
需要说明的是,本申请实施例中,在第一接入层设备与第一IPU之间发生通信故障之后,第一接入层设备以及第一汇聚层设备将更新各自的路由表,撤销根据第一路由信息生成的转发表项,例如,上述表2中的A1:B1:C1:D1:1::/68对应的表项被删除,上述表1中A1:B1:C1:D1:1::/68对应的表项被删除。待第一汇聚层设备的路由表收敛(即完成更新),第一汇聚层设备后续接收到报文(将该报文称为第五报文),若第五报文是发送至第一虚拟机的业务地址,则第一汇聚层设备根据该第一汇聚层设备更新的新的路由表,将第五报文发送至第二接入层设备,然后第二接入层设备向第二IPU发送该第五报文,第二IPU将该第五报文发送至第一虚拟机。参考图11C,图中的虚曲线示意了第一接入层设备与第一IPU之间发生通信故障的情况下,第五报文的转发路径。
综上,可以理解的是,在第一接入层设备与第一IPU之间发生通信故障之后,上述发送至第一虚拟机的业务地址的报文(例如上述第三报文或第五报文)将通过第二IPU发送至第一虚拟机,由于第一虚拟机位于第一NUMA节点,第二IPU位于第二NUMA节点,可见,在这种情况下,报文是跨节点转发的,即虚拟路由设备在通信故障的情况下采用远程内存访问,以保证报文顺利地发送至第一虚拟机,提升通信的可靠性。
参考上述步骤1213至步骤1218及相关的描述,同理,在第二接入层设备与第二IPU之间发生通信故障的情况下,第二接入层设备接收到第四报文(第四报文是发送至第二虚拟机的报文)之后,第二接入层设备将该第四报文发送至第一汇聚层设备或第二汇聚层设备,然后第一汇聚层设备或第二汇聚层设备向第一接入层设备发送该第四报文,进而第一接入层设备将该第四报文发送至第一IPU,最后,第一IPU通过第二虚拟机上的第二虚拟端口将该第四报文发送至第二虚拟机。并且,在第二接入层设备与第二IPU之间发生通信故障之后,第二接入层设备以及第二汇聚层设备将更新各自的路由表,撤销根据第二路由信息生成的转发表项等,具体可参考第一接入层设备与第一IPU之间发生通信故障的场景中的相关描述,此处不再赘述。
当通过第一种方式进行路由信息配置(即通过步骤801至步骤804完成路由信息配置)时,本申请实施例提供的报文转发方法可以应用于SRv6网络中的数据中心。如图13A所示,在报文出虚拟机的过程中,本申请实施例提供的报文转发方法包括步骤1301至步骤1308。
步骤1301、第一IPU从第一虚拟机接收第一报文。
该第一报文是发送至网络侧的一个边缘节点的报文,该第一报文的目的地址(记为PE Adress1)。
步骤1302、第一IPU根据SRv6封装信息,对该第一报文进行SRv6封装。
本申请实施例中,第一IPU接收到第一报文之后,查找第一IPU存储的私网路由表,得到第一报文的SRv6封装信息,然后根据该SRv6封装信息封装第一报文。
步骤1303、第一IPU向第一接入层设备发送第一报文。
表7为第一IPU上存储的路由表的部分内容的示例,该路由表中包含第一物理端口(NIC1)和第二物理端口(NIC2)的负载分担表项,第一IPU查找路由表确定该第一报文的下一跳设备为第一接入层设备(即ToR1),进而第一IPU依据本板优先原则,确定通过该第一IPU上的第一物理端口发送该第一报文。
表7
目的dest/mask | 下一跳next-hop | 出接口out-intf |
PE Adress1 | IP-ToR1 | NIC1 |
PE Adress1 | IP-ToR2 | NIC2 |
步骤1304、第一接入层设备接收第一报文。
后续地,通过第一接入层设备、第一汇聚层设备等将该报文转发至该报文的目的地址对应的设备。参考图11D,图中的曲线示意了第一报文的转发路径。
步骤1305、第二IPU从第二虚拟机接收第二报文。
步骤1306、第二IPU根据SRv6封装信息,对该第二报文进行SRv6封装。
步骤1307、第二IPU向第二接入层设备发送第二报文。
步骤1308、第二接入层设备接收第二报文。
本申请实施例中,第二报文的上行转发过程与第一报文的上行转发过程类似,对于步骤1305至步骤1308的相关描述可参考步骤1301至步骤1304的描述,此处不再赘述。
结合图13A,如图13B所示,在第一接入层设备与第一IPU之间发生通信故障的情况下,本申请实施例提供的报文转发方法还包括步骤1309至步骤1313。
步骤1309、第一IPU从第一虚拟机接收第三报文。
该第三报文是发送至网络侧的一个边缘节点的报文,该第三报文的目的地址(记为PE Adress)与上述第一报文的目的地址相同。
步骤1310、第一IPU根据SRv6封装信息,对该第三报文进行SRv6封装。
步骤1311、第一IPU将该第三报文发送至第二IPU。
本申请实施例中,第一IPU感知到第一IPU与第一接入网设备之间发生通信故障(例如第一物理端口故障),此时,第一IPU将第三报文发送至其他IPU(例如第二IPU),进而通过其他IPU的端口转发第三报文。
步骤1312、第二IPU向第二接入层设备发送第三报文。
步骤1313、第二接入层设备接收第二IPU发送的第三报文。
后续地,通过第二接入层设备将该第三报文发送至第一汇聚层设备,进而将该第三报文转发至该第三报文的目的地址对应的设备。参考图11E,图中的曲线示意了第三报文的转发路径。可见,在这种情况下,报文是跨节点转发的,即虚拟路由设备在通信故障的情况下采用远程内存访问,以保证报文顺利地发送至网络设备,提升通信的可靠性。
结合图11A,当通过第二种方式进行路由信息配置(即通过步骤801′至步骤802′完成路由信息配置)时,本申请实施例提供的报文转发方法可以应用于SRv6网络中的数据中心或VxLAN网络中的数据中心。下面以VxLAN网络中的数据中心为例,在VxLAN网络中,IPU的地址是VTEP地址,例如,第一IPU的地址为100.100.100.101/32,第二IPU的地址为100.100.100.102/32,基于第一IPU的地址为第一虚拟机分配的VNI为100,基于第二IPU的地址为第二虚拟机分配的VNI为101。
如图14A所示,在报文入虚拟机的过程中,本申请实施例提供的报文转发方法包括步骤1401至步骤1412。
步骤1401、第一汇聚层设备接收第一报文。
该第一报文是发送至第一虚拟机的报文。应理解,对于汇聚层设备,第一报文的目的地址(称为第一报文的外层目的地址)为第一虚拟机的VTEP,即上述100.100.100.101/32。
步骤1402、第一汇聚层设备向第一接入层设备发送第一报文。
应理解,第一汇聚层设备可以从第一接入层设备接收第一路由信息,从第二接入层设备接收第二路由信息,生成转发表项。该第一路由信息中包括第一IPU的地址和第二IPU的地址,第二路由信息中包括第二IPU的地址和第一IPU的地址。
表8为第一汇聚层设备存储的路由表的部分内容的示例,结合表8,第一汇聚层设备根据最长匹配的方法,将第一报文的外层目的地址100.100.100.101/32与表8中的表项进行比配,从而确定第一报文的下一跳设备为第一接入层设备(即ToR1),进而第一汇聚层设备向第一接入层设备发送该第一报文。
表8
dest/mask | next-hop | out-intf |
100.100.100.101/32 | IP-ToR1 | intf to ToR1 |
FRR | IP-ToR2 | intf to ToR2 |
步骤1403、第一接入层设备接收第一报文。
步骤1404、第一接入层设备向第一IPU发送第一报文。
表9为第一接入层设备存储的路由表的部分内容的示例,结合表9,第一接入层设备根据最长匹配的方法,将第一报文的外层目的地址与100.100.100.101/32与表9中的表项进行比配,确定该第一报文的下一跳设备为第一IPU(第一IPU对应的端口为NIC1),进而第一接入层设备向第一IPU发送该第一报文。
表9
目的dest/mask | 下一跳next-hop | 出接口out-intf |
100.100.100.101/32 | IP-NIC1 | intf to NIC1 |
FRR | IP-EoR2/IP-EoR1 | intf to EoR2/EoR1 |
步骤1405、第一IPU接收第一报文,并解封装该第一报文,得到第一虚拟机的VNI。
第一IPU从第一IPU的第一物理端口(即NIC1)接收第一报文,并解封装该第一报文,从第一报文的VxLAN头部获得VNI,该VNI为第一虚拟机的VNI。
步骤1406、第一IPU根据第一虚拟机的VNI向第一虚拟机发送第一报文。
第一IPU根据解封装得到的VNI,第一IPU解封装第一报文还可以得到第一报文的内层目的地址(即第一虚拟机的业务地址),然后第一IPU根据VNI确定与该VNI对应的私网路由表。基于该私网路由表,第一IPU采用最长匹配的方法,将第一报文的内层目的地址与私网路由表中的表项进行匹配,确定第一报文的下一跳设备为第一虚拟机,进而第一IPU通过该第一IPU的第一虚拟端口(即vNIC1)向第一虚拟机发送该第一报文。
可以理解的是,上述第一报文的转发路径可参考图11A。
步骤1407、第二汇聚层设备接收第二报文。
该第二报文是发送至第二虚拟机的报文。同理,对于汇聚层设备,第二报文的目的地址(称为第二报文的外层目的地址)为第二IPU的VTEP,即上述100.100.100.102/32。
步骤1408、第二汇聚层设备向第二接入层设备发送第二报文。
步骤1409、第二接入层设备接收第二报文。
步骤1410、第二接入层设备向第二IPU发送第二报文。
步骤1411、第二IPU接收第二报文,并解封装该第二报文,得到第二虚拟机的VNI。
步骤1412、第二IPU根据第二虚拟机的VNI向第二虚拟机发送第二报文。
本申请实施例中,第二报文的下行转发过程与第一报文的下行转发过程类似,对于步骤1407至步骤1412的相关描述可参考步骤1401至步骤1406的描述,此处不再赘述。
结合图14A,如图14B所示,在第一接入层设备与第一IPU之间发生通信故障的情况下,本申请实施例提供的报文转发方法还包括步骤1413至步骤1418。
步骤1413、第一接入层设备从第一汇聚层设备接收第三报文。
该第三报文是发送至第一虚拟机的报文。
步骤1414、第一接入层设备向第一汇聚层设备或第二汇聚层设备发送第三报文。
本申请实施例中,第一接入层设备与第一IPU之间发生通信故障,则第一接入层设备存储的路由表中,根据第一路由信息中第一IPU的地址生成的表项不可用,即无法匹配到第一IPU,由于第一路由信息中第一IPU的地址的优先级高于第二路由信息中第一IPU的地址的优先级,因此,在根据第一路由信息中优先级较高的第一IPU的地址生成的表项不可用的情况下,第一接入层设备执行快速重路由(fast reroute,FRR)快切,也就是进行转发路径切换,采用上述表9中的FRR对应的表项转发第三报文至第一汇聚层设备或第二汇聚层设备,从而根据第二路由信息中优先级较低的第一IPU的地址生成的表项转发该第三报文。
步骤1415、第一汇聚层设备或第二汇聚层设备向第二接入层设备发送第三报文。
在一种实现方式中,若第一接入层设备向第一汇聚层设备发送第三报文,则第一汇聚层设备接收到该第三报文之后,将该第三报文发送至第二接入层设备(即ToR2)。
在另一种实现方式中,若第一接入层设备向第二汇聚层设备发送第三报文,则第二汇聚层设备接收到第三报文之后,第二汇聚层设备向第二接入层设备发送该第三报文。
步骤1416、第二接入层设备向第二IPU发送第三报文。
步骤1417、第二IPU从第二接入层设备接收第三报文,并解封装该第三报文,得到第一虚拟机的VNI。
第二IPU从第二IPU的第二物理端口(即NIC2)接收第三报文,并解封装该第三报文,从第三报文的VxLAN头部获得VNI,该VNI为第一虚拟机的VNI。
步骤1418、第二IPU根据第一虚拟机的VNI向第一虚拟机第三报文。
第二IPU根据解封装得到的VNI,确定第二IPU所存储的与该VNI对应的私网路由表,基于该私网路由表,第二IPU采用最长匹配的方法,确定第三报文的下一跳设备为第一虚拟机,进而第二IPU通过第一IPU上的第一虚拟端口(即vNIC1)向第一虚拟机发送该第三报文。
可以理解的是,在第一接入层设备与第一IPU之间发生通信故障的情况下,第三报文的一种转发路径(应注意,在该转发路径中,第一接入层设备将第三报文发送至第二汇聚层设备的)可参考参考图11B的黑色实曲线的示意。
需要说明的是,在第一接入层设备与第一IPU之间发生通信故障之后,第一接入层设备以及第一汇聚层设备将更新各自的路由表,撤销根据第一路由信息生成的转发表项,待路由表更新完成之后,第一汇聚层设备后续接收到报文(将该报文称为第五报文),若第五报文的目的地址仍为第一虚拟机的业务地址,该第五报文的转发路径可参考图11C中的虚曲线的示意。
可见,在这种情况下,报文是跨节点转发的,即虚拟路由设备在通信故障的情况下采用远程内存访问,以保证报文顺利地发送至第一虚拟机,提升通信的可靠性。
结合图11D,当通过第一种方式进行路由信息配置(即通过步骤801′至步骤802′完成路由信息配置)时,本申请实施例提供的报文转发方法可以应用于SRv6网络中的数据中心或VxLAN网络中的数据中心。下面以VxLAN网络中的数据中心为例进行说明。如图15A所示,在报文出虚拟机的过程中,本申请实施例提供的报文转发方法包括步骤1501至步骤1508。
步骤1501、第一IPU从第一虚拟机接收第一报文。
该第一报文的目的地址可以为网络侧的一个边缘节点的地址(记为PE Adress1)。
步骤1502、第一IPU根据VxLAN封装信息,对该第一报文进行VxLAN封装。
本申请实施例中,第一IPU接收到第一报文之后,查找第一IPU存储的私网路由表,得到第一报文的VxLAN封装信息,然后根据该VxLAN封装信息封装第一报文。
步骤1503、第一IPU向第一接入层设备发送第一报文。
步骤1504、第一接入层设备接收第一报文。
后续地,通过第一接入层设备、第一汇聚层设备等将该报文转发至该报文的目的地址对应的设备。第一报文的转发路径可以参考图11D中的曲线示意。
步骤1505、第二IPU从第二虚拟机接收第二报文。
步骤1506、第二IPU根据VxLAN封装信息,对该第二报文进行VxLAN封装。
步骤1507、第二IPU向第二接入层设备发送第二报文。
步骤1508、第二接入层设备接收第二报文。
本申请实施例中,第二报文的上行转发过程与第一报文的上行转发过程类似,对于步骤1505至步骤1508的相关描述可参考步骤1501至步骤1504的描述,此处不再赘述。
结合图15A,如图15B所示,在第一接入层设备与第一IPU之间发生通信故障的情况下,本申请实施例提供的报文转发方法还包括步骤1509至步骤1513。
步骤1509、第一IPU从第一虚拟机接收第三报文。
该第三报文的目的地址可以与上述步骤1501中的第一报文的目的地址相同。
步骤1510、第一IPU根据VxLAN封装信息,对该第三报文进行VxLAN封装。
步骤1511、第一IPU将该第三报文发送第二IPU。
本申请实施例中,第一IPU感知到第一IPU与第一接入网设备之间发生通信故障(例如第一物理端口故障),此时,第一IPU将第三报文发送至其他IPU(例如第二IPU),进而通过其他IPU的端口转发第三报文。
步骤1512、第二IPU向第二接入层设备发送第三报文。
步骤1513、第二接入层设备接收第二IPU发送的第三报文。
后续地,通过第二接入层设备将该第三报文发送至第一汇聚层设备等将该报文转发至该报文的目的地址对应的设备。第三报文的转发路径可以参考图11E图中的曲线示意。可见,在这种情况下,报文是跨节点转发的,即虚拟路由设备在通信故障的情况下采用远程内存访问,以保证报文顺利地发送至网络设备,提升通信的可靠性。
相应地,本申请实施例提供一种计算机设备,该计算机设备应用于虚拟路由设备,该虚拟路由设备应用于上述方法实施例所述的NUMA架构中的数据中心,该数据中心包括服务器和网络设备,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。
如图16所示,该虚拟路由设备包括第一IPU 1601,用于从网络设备接收第一报文,该第一报文是发送至第一虚拟机的报文;并且向第一虚拟机发送第一报文。第一IPU位于第一NUMA节点中,第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接。例如,第一IPU 1601用于支持虚拟路由设备执行上述方法实施例中的步骤903、步骤904、步骤1205、步骤1206、步骤1411以及步骤1412。
虚拟路由设备包括第二IPU 1602,用于从网络设备接收第二报文,该第二报文是发送至第二虚拟机的报文;并且向第二虚拟机发送第二报文。第二IPU位于第二NUMA节点中,第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。例如,第二IPU 1602用于支持虚拟路由设备执行上述方法实施例中的步骤907、步骤908、步骤1211、步骤1212、步骤1405以及步骤1406。
可选地,上述第二IPU 1602还用于执行上述方法实施例中的步骤910、步骤911、步骤1217、步骤1218、步骤1417以及步骤1418。
上述虚拟路由设备的第一IPU 1601还用于从第一虚拟机接收第一报文,并向网络设备发送第一报文。例如第一IPU 1601用于支持虚拟路由设备执行上述方法实施例中的步骤1001、步骤1002、步骤1005、步骤1006、步骤1301、步骤1302、步骤1303、步骤1309、步骤1310、步骤1311、步骤1501、步骤1502、步骤1503、步骤1509、步骤1510以及步骤1511。
上述第二IPU 1602用于从第二虚拟机接收第二报文;并且向网络设备发送第二报文。例如第二IPU 1602用于支持虚拟路由设备执行上述方法实施例中的步骤1003、步骤1004、步骤1007、步骤1305、步骤1306、步骤1307、步骤1312、步骤1505、步骤1506、步骤1507以及步骤1512。
上述虚拟路由设备的第一IPU 1601还用于向网络设备发送第一路由信息,该第一路由信息包括第一IPU的地址。例如,第一IPU 1601用于支持虚拟路由设备执行上述方法实施例中的步骤801(具体为步骤801a)、步骤803以及步骤801′。
第二IPU 1602还用于向网络设备发送第二路由信息,第二路由信息包括第二IPU的地址。例如,第二IPU 1602用于支持虚拟路由设备执行上述方法实施例中的步骤801(具体为步骤801b)和步骤803。
可选地,虚拟路由设备的第一IPU 1601还用于执行本申请实施例中的其他步骤,例如,步骤704、步骤705等。第二IPU 1602还用于执行本申请实施例中的其他步骤,例如,步骤707、步骤708等。
关于上述各个步骤对应的详细描述,可参考图7、图8A、图8B、图8C、图9A、图9B、图10A、图10B、图12A、图12B、图13A、图13B、图14A、图14B、图15A、图15B以及上述方法实施例的详细描述,此时不再详述。
可选地,上述第一IPU 1601和第二IPU 1602还用于执行上述方法实施例中的其他相关动作,具体参见上述实施例的描述,此处不再赘述。
可选地,如图16所示,该虚拟路由设备还包括至少一个MPU 1603。MPU 1603可支持虚拟路由设备完成控制面的操作,例如,MPU 1603执行上述方法实施例中的步骤703、706等。
图16所描述的装置实施例仅仅是示意性的,例如,上述单元(或模块)的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个模块中,也可以是各个模块单独物理存在,也可以两个或两个以上单元集成在一个模块中。图16中的可以采用软件功能单元的形式实现。例如,上述第一IPU 1601、第二IPU 1602以及MPU 1603可以是由图4中服务器的至少一个处理器401读取存储器中存储的程序代码后,生成的软件功能模块来实现。图16中上述各个单元也可以由图4中服务器的不同硬件分别实现,例如第一IPU 1601和MPU 1603由图4中的至少一个处理器401中的一部分处理资源(例如多核处理器中的一个核或两个核)实现。如此,处理器401可执行上述方法实施例中的步骤704、步骤705、步骤801(具体为步骤801a)、步骤803以及步骤801′、步骤903、步骤904、步骤1001、步骤1002、步骤1005、步骤1006、步骤1205、步骤1206、步骤1301、步骤1302、步骤1303、步骤1309、步骤1310、步骤1311、步骤1411、步骤1412、步骤1501、步骤1502、步骤1503、步骤1509、步骤1510以及步骤1511。
第二IPU 1602可以由图4中服务器的至少一个处理器401中的其余部分处理资源(例如多核处理器中的其他核)实现。如此,处理401可执行上述方法实施例中的步骤707、步骤708、步骤801(具体为步骤801b)、步骤803、步骤907、步骤908、步骤910、步骤911、步骤1003、步骤1004、步骤1007、步骤1211、步骤1212、步骤1405、步骤1406、步骤1217、步骤1218、步骤1305、步骤1306、步骤1307、步骤1312、步骤1417、步骤1418、步骤1505、步骤1506、步骤1507以及步骤1512。
处理器401还用于执行上述方法实施例中的其他相关动作,具体参见上述实施例的描述,此处不再赘述。
可选地,本申请实施例中,上述第一IPU的物理端口(例如第一物理端口)、第一IPU的虚拟端口(例如第一虚拟端口)、第二IPU的物理端口、第二IPU的虚拟端口可以由图4中的网络接口403实现,以使得第一IPU通过第一物理端口从网络设备接收报文、通过第一虚拟端口向第一虚拟机发送报文,或者通过第一虚拟端口从第一虚拟机接收报文,并通过第一物理端口向网络设备发送报文;且以使得第二IPU通过第二物理端口从网络设备接收报文、通过第二虚拟端口向第二虚拟机发送报文,或者通过第二虚拟端口从第二虚拟机接收报文,并通过第二物理端口向网络设备发送报文。显然上述功能模块也可以采用软件硬件相结合的方式来实现。
相应地,本申请实施例提供一种网络设备,该网络设备应用于上述方法实施例所述的NUMA架构中的数据中心,该数据中心包括服务器和网络设备,服务器上部署有虚拟机和虚拟路由设备,虚拟机通过虚拟路由设备与网络设备通信。服务器包括第一NUMA节点和第二NUMA节点,虚拟机包括第一虚拟机和第二虚拟机,第一NUMA节点包括第一虚拟机,第二NUMA节点包括第二虚拟机。虚拟路由设备包括第一IPU和第二IPU,第一IPU位于第一NUMA节点中,第二IPU位于第二NUMA节点中。第一IPU包括第一虚拟端口和第一物理端口,第一IPU通过第一虚拟端口与第一虚拟机连接,第一IPU通过第一物理端口与网络设备连接。第二IPU包括第二虚拟端口和第二物理端口,第二IPU通过第二虚拟端口与第二虚拟机连接,第二IPU通过第二物理端口与网络设备连接。
如图17所示,该网络设备包括接收模块1701和发送模块1702,该接收模块1701用于用于接收第一报文,该第一报文是发送至第一虚拟机的报文。例如,接收模块1701用于支持网络设备执行上述方法实施例中的步骤901和步骤1008。发送模块1702用于向第一IPU发送第一报文。例如,发送模块1702用于支持网络设备执行上述方法实施例中的步骤902。
上述接收模块1701还用于用于接收第二报文,第二报文是发送至第二虚拟机的报文。例如,接收模块1701用于支持网络设备执行上述方法实施例中的步骤905。上述发送模块1702还用于向第二IPU发送第二报文,例如,发送模块1072用于支持网络设备执行上述方法实施例中的步骤906和步骤909。
本申请实施例提供的网络设备中的接收模块1701还用于接收第一IPU发送的第一报文,该第一报文是第一IPU从第一虚拟机接收的;并且接收第二IPU发送的第二报文,该第二报文是第二IPU从第二虚拟机接收的。
本申请实施例提供的网络设备的接收模块1701还用于从虚拟路由设备接收第一路由信息和第二路由信息,第一路由信息包括第一IPU的地址,第二路由信息包括第二IPU的地址。其中,第一路由信息用于指示网络设备将接收到的第一报文发送至第一IPU,第一报文是发送至所述第一虚拟机的报文。第二路由信息用于指示网络设备将接收到的第二报文发送至第二IPU,第二报文是第二虚拟机的报文。例如接收模块1701用于支持网络设备执行上述方法实施例中的步骤802(包括步骤802a、步骤802b)、步骤804以及步骤802′。
可选地,网络设备的发送模块1702还用于向虚拟路由设备发送第四路由信息,第四路由信息用于指示虚拟路由设备将目的地址为网络设备的报文发送至网络设备。
当上述网络设备为多层网络中的设备时,例如包括第一汇聚层设备、第二汇聚层设备、第一接入层设备以及第二接入层设备。其中,第一IPU连接第一接入层设备,第一接入层设备连第一汇聚层设备;第二IPU连接第二接入层设备,第二接入层设备连接第二汇聚层设备。
应理解,上述第一汇聚层设备包括接收模块和发送模块,第一接入层设备也包括接收模块和发送模块。其中,第一汇聚层设备的接收模块用于执行上述方法实施例中的步骤1201和步骤1401;第一汇聚层设备的发送模块用于执行上述方法实施例中的步骤1202、步骤1215、步骤1402以及步骤1415。第一接入层设备的接收模块用于执行上述方法实施例中的步骤1213、步骤1304、步骤1403、步骤1413以及步骤1504。第一接入层设备的发送模块用于执行上述方法实施例中的步骤1204、步骤1214、步骤1404以及步骤1414。
上述第二汇聚层设备包括接收模块和发送模块,第二接入层设备也包括接收模块和发送模块。其中,第二汇聚层设备的接收模块用于执行上述方法实施例中的步骤1207和步骤1407;第二汇聚层设备的发送模块用于执行上述方法实施例中的步骤1208、步骤1215、步骤1408以及步骤1415。第二接入层设备的接收模块用于执行上述方法实施例中的步骤1209、步骤1308、步骤1313、步骤1409、步骤1508以及步骤1513。第二接入层设备的发送模块用于执行上述方法实施例中的步骤1210、步骤1216、步骤1410以及步骤1416。
可选地,本申请实施例提供的网络设备还包括存储模块1703,该存储模块用于存储有第一路由信息和第二路由信息。
关于网络设备的接收模块1701和发送模块1702执行的上述各个步骤对应的详细描述,可参考图8A、图8B、图8C、图9A、图9B、图10A、图10B、图12A、图12B、图13A、图13B、图14A、图14B、图15A、图15B以及上述方法实施例的详细描述,此时不再详述。
图17所描述的装置实施例仅仅是示意性的,例如,上述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能模块可以集成在一个模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。图17中上述各个模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。上述网络设备包括处理器、存储器以及网络接口。处理器可支持网络设备根据第一路由信息和第二路由信息生成转发表项。可选地,也支持网络设备对接收到的报文进行处理(例如封装或解封装等)。上述存储模块1703可以为网络设备的存储器,该存储器可支持网络设备存储接收到的报文,并且存储第一路由信息和第二路由信息,以及根据第一路由信息和第二路由信息生成的转发表项。网络接口可支持网络设备接收报文和/或发送报文。上述接收模块1701和发送模块1702由图3中的网络接口403实现。
如此,网络接口403可执行上述方法实施例中的步骤802(包括步骤802a、步骤802b)、步骤804以及步骤802′、步骤901、步骤902、步骤905、步骤906、步骤909、步骤1008、步骤1201、步骤1202、步骤1204、步骤1207、步骤1208、步骤1209、步骤1210、步骤1213、步骤1214、步骤1215、步骤1216、步骤1304、步骤1308、步骤1313、步骤1401、步骤1402、步骤1403、步骤1404、步骤1407、步骤1408、步骤1409、步骤1410、步骤1413、步骤1414、步骤1415、步骤1416、步骤1504、步骤1508以及步骤1513。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (53)
1.一种报文转发方法,其特征在于,所述方法应用于非一致内存访问NUMA架构中的数据中心,所述数据中心包括服务器和网络设备,所述服务器上部署有虚拟机和虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括第一接口处理单元IPU和第二IPU,所述第一IPU位于所述第一NUMA节点中,所述第二IPU位于所述第二NUMA节点中;所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接,所述第二IPU包括第二虚拟端口和第二物理端口,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接,所述方法包括:
所述第一IPU从所述网络设备接收第一报文,所述第一报文是发送至所述第一虚拟机的报文;
所述第一IPU向所述第一虚拟机发送所述第一报文;
所述第二IPU从所述网络设备接收第二报文,所述第二报文是发送至所述第二虚拟机的报文;
所述第二IPU向所述第二虚拟机发送所述第二报文。
2.根据权利要求1所述的方法,其特征在于,在所述网络设备与所述第一IPU之间发生通信故障的情况下,所述方法还包括:
所述第二IPU从所述网络设备接收第三报文,所述第三报文是发送至所述第一虚拟机的报文;
所述第二IPU向所述第一虚拟机发送所述第三报文。
3.根据权利要求1或2所述的方法,其特征在于,
当所述数据中心位于互联网协议第6版分段路由SRv6网络中时,所述IPU的地址为SRv6的定位符,所述虚拟机的虚拟专用网络标识为虚拟专用网络分段标识VPN SID;
所述第一IPU向所述第一虚拟机发送第一报文,包括:
所述第一IPU解封装所述第一报文,得到所述第一虚拟机的VPN SID;
所述第一IPU根据所述第一虚拟机的VPN SID向所述第一虚拟机发送所述第一报文。
4.根据权利要求1或2所述的方法,其特征在于,
当所述数据中心位于虚拟可扩展局域网VxLAN网络中时,所述IPU的地址为VxLAN隧道终点VTEP地址,所述虚拟机的虚拟专用网络标识为虚拟网络标识VNI;
所述第一IPU向所述第一虚拟机发送第一报文,包括:
所述第一IPU解封装所述第一报文,得到所述第一虚拟机的VNI;
所述第一IPU根据所述第一虚拟机的VNI向所述第一虚拟机发送所述第一报文。
5.根据权利要求1所述的方法,其特征在于,
所述第一IPU的地址与所述第二IPU的地址不同;
所述第一虚拟机的虚拟专用网络标识是基于所述第一IPU的地址分配的,所述第二虚拟机的虚拟专用网络标识是基于所述第二IPU的地址分配的。
6.一种报文转发方法,其特征在于,所述方法应用于非一致内存访问NUMA架构中的数据中心,所述数据中心包括服务器和网络设备,所述服务器上部署有虚拟机和虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括第一接口处理单元IPU和第二IPU,所述第一IPU位于所述第一NUMA节点中,所述第二IPU位于所述第二NUMA节点中;所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接,所述第二IPU包括第二虚拟端口和第二物理端口,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接,所述方法包括:
所述第一IPU从所述第一虚拟机接收第一报文;
所述第一IPU向所述网络设备发送所述第一报文;
所述第二IPU从所述第二虚拟机接收第二报文;
所述第二IPU向所述网络设备发送所述第二报文。
7.根据权利要求6所述的方法,其特征在于,在所述第一IPU与所述网络设备之间发生通信故障的情况下,所述方法还包括:
所述第一IPU从所述第一虚拟机接收第三报文;
所述第一IPU将所述第三报文发送至所述第二IPU;
所述第二IPU向所述网络设备发送所述第三报文。
8.根据权利要求6所述的方法,其特征在于,所述第一IPU向所述网络设备发送所述第一报文,包括:
所述第一IPU对所述第一报文进行互联网协议第6版分段路由SRv6封装,并向所述网络设备发送封装后的所述第一报文;或者,
所述第一IPU对所述第一报文进行虚拟可扩展局域网VxLAN封装,并向所述网络设备发送封装后的所述第一报文。
9.一种路由发送方法,其特征在于,所述方法应用于非一致内存访问NUMA架构中的数据中心,所述数据中心包括服务器和网络设备,所述服务器上部署有虚拟机和虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括第一接口处理单元IPU和第二IPU,所述第一IPU位于所述第一NUMA节点中,所述第二IPU位于所述第二NUMA节点中;所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接,所述第二IPU包括第二虚拟端口和第二物理端口,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接,所述方法包括:
所述虚拟路由设备向所述网络设备发送第一路由信息和第二路由信息,所述第一路由信息包括所述第一IPU的地址,所述第二路由信息包括所述第二IPU的地址;
其中,所述第一路由信息用于指示所述网络设备将接收到的第一报文发送至所述第一IPU,所述第一报文是发送至所述第一虚拟机的报文,所述第二路由信息用于指示所述网络设备将接收到的第二报文发送至所述第二IPU,所述第二报文是发送至所述第二虚拟机的报文。
10.根据权利要求9所述的方法,其特征在于,所述虚拟路由设备向网络设备发送第一路由信息和第二路由信息,包括:
所述虚拟路由设备通过所述第一IPU向所述网络设备发送所述第一路由信息;
所述虚拟路由设备通过所述第二IPU向所述网络设备发送所述第二路由信息。
11.根据权利要求9或10所述的方法,其特征在于,
当所述数据中心位于互联网协议第6版分段路由SRv6网络中时,IPU的地址为SRv6的定位符,虚拟机的虚拟专用网络标识为虚拟专用网络分段标识VPN SID。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述虚拟路由设备向所述网络设备发送第三路由信息,所述第三路由信息包括所述虚拟路由设备的地址;
所述第三路由信息用于指示在所述网络设备与所述第一IPU之间发生通信故障的情况下,所述网络设备将接收到的第三报文发送至所述第二IPU,所述第三报文是发送至所述第一虚拟机的报文;或者,
所述第三路由信息用于指示在所述网络设备于所述第二IPU之间发生通信故障的情况下,所述网络设备将接收到的第四报文发送至所述第一IPU,所述第四报文是发送至所述第二虚拟机的报文。
13.根据权利要求9或10所述的方法,其特征在于,
当所述数据中心位于虚拟可扩展局域网VxLAN网络中时,IPU的地址为VxLAN隧道终点VTEP地址,虚拟机的虚拟专用网络标识为虚拟网络标识VNI。
14.根据权利要求9所述的方法,其特征在于,所述第二路由信息中还包括所述第一IPU的地址;
所述第一路由信息中所述第一IPU的地址的优先级高于所述第二路由信息中所述第一IPU地址的优先级。
15.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述虚拟路由设备从所述网络设备接收第四路由信息,所述第四路由信息用于指示所述虚拟路由设备将目的地址为所述网络设备的报文发送至所述网络设备。
16.根据权利要求9所述的方法,其特征在于,所述虚拟路由设备还包括至少一个主处理单元MPU。
17.一种报文转发方法,其特征在于,所述方法应用于非一致内存访问NUMA架构中的数据中心,所述数据中心包括服务器和网络设备,所述服务器上部署有虚拟机和虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括第一接口处理单元IPU和第二IPU,所述第一IPU位于所述第一NUMA节点中,所述第二IPU位于所述第二NUMA节点中;所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接,所述第二IPU包括第二虚拟端口和第二物理端口,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接,所述方法包括:
所述网络设备接收第一报文,所述第一报文是发送至所述第一虚拟机的报文;
所述网络设备向所述第一IPU发送所述第一报文;
所述网络设备接收第二报文,所述第二报文是发送至所述第二虚拟机的报文;
所述网络设备向所述第二IPU发送所述第二报文。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
在所述网络设备与所述第一IPU之间发生通信故障的情况下,所述网络设备向所述第二IPU发送第三报文,所述第三报文是发送至所述第一虚拟机的报文。
19.根据权利要求17或18所述的方法,其特征在于,所述网络设备存储有第一路由信息和第二路由信息;其中,所述第一路由信息包括所述第一IPU的地址,所述第一路由信息用于指示所述网络设备将接收到的第一报文发送至所述第一IPU;所述第二路由信息包括所述第二IPU的地址,所述第二路由信息用于指示所述网络设备将接收到的第二报文发送至所述第二IPU。
20.根据权利要求19所述的方法,其特征在于,所述第一路由信息中还包括所述第二IPU的地址;
所述第一路由信息中所述第一IPU的地址的优先级高于所述第二路由信息中所述第一IPU的地址的优先级。
21.一种报文转发方法,其特征在于,所述方法应用于非一致内存访问NUMA架构中的数据中心,所述数据中心包括服务器和网络设备,所述服务器上部署有虚拟机和虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括第一接口处理单元IPU和第二IPU,所述第一IPU位于所述第一NUMA节点中,所述第二IPU位于所述第二NUMA节点中;所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接,所述第二IPU包括第二虚拟端口和第二物理端口,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接,所述方法包括:
所述网络设备接收所述第一IPU发送的第一报文,所述第一报文是所述第一IPU从所述第一虚拟机接收的;
所述网络设备接收所述第二IPU发送的第二报文,所述第二报文是所述第二IPU从所述第二虚拟机接收的。
22.根据权利要求21所述的方法,其特征在于,在所述网络设备与所述第一IPU之间发生通信故障的情况下,所述方法还包括:
所述网络设备接收所述第二IPU发送的第三报文,所述第三报文是所述第二IPU从所述第一IPU接收的,且所述第三报文是所述第一IPU从所述第一虚拟机接收的。
23.一种路由接收方法,其特征在于,所述方法应用于非一致内存访问NUMA架构中的数据中心,所述数据中心包括服务器和网络设备,所述服务器上部署有虚拟机和虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括第一接口处理单元IPU和第二IPU,所述第一IPU位于所述第一NUMA节点中,所述第二IPU位于所述第二NUMA节点中;所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接,所述第二IPU包括第二虚拟端口和第二物理端口,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接,所述方法包括:
所述网络设备从所述虚拟路由设备接收第一路由信息和第二路由信息,所述第一路由信息包括所述第一IPU的地址,所述第二路由信息包括所述第二IPU的地址;
其中,所述第一路由信息用于指示所述网络设备将接收到的第一报文发送至所述第一IPU,所述第一报文是发送至所述第一虚拟机的报文,所述第二路由信息用于指示所述网络设备将接收到的第二报文发送至所述第二IPU,所述第二报文是发送至所述第二虚拟机的报文。
24.根据权利要求23所述的方法,其特征在于,
所述网络设备从所述虚拟路由设备的第一IPU接收所述第一路由信息;
所述网络设备从所述虚拟路由设备的第二IPU接收所述第二路由信息。
25.根据权利要求23或24所述的方法,其特征在于,所述方法还包括:
所述网络设备从所述虚拟路由设备接收第三路由信息,所述第三路由信息包括所述虚拟路由设备的地址;
所述第三路由信息用于指示在所述网络设备与所述第一IPU之间发生通信故障的情况下,所述网络设备将接收到的第三报文发送至所述第二IPU,所述第三报文是发送至所述第一虚拟机的报文;或者,
所述第三路由信息用于指示在所述网络设备于所述第二IPU之间发生通信故障的情况下,所述网络设备将接收到的第四报文发送至所述第一IPU,所述第四报文是发送至所述第二虚拟机的报文。
26.根据权利要求23所述的方法,其特征在于,所述第一路由信息中还包括所述第二IPU的地址;
所述第一路由信息中所述第一IPU的地址的优先级高于所述第二路由信息中所述第一IPU地址的优先级。
27.一种计算机设备,所述计算机设备应用于虚拟路由设备,其特征在于,所述虚拟路由设备应用于非一致内存访问NUMA架构中的数据中心,所述数据中心包括服务器和网络设备,所述服务器上部署有虚拟机和所述虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括:
第一接口处理单元IPU,用于从所述网络设备接收第一报文,所述第一报文是发送至所述第一虚拟机的报文;并且向所述第一虚拟机发送所述第一报文;所述第一IPU位于所述第一NUMA节点中,所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接;以及,
第二IPU,用于从所述网络设备接收第二报文,所述第二报文是发送至所述第二虚拟机的报文;并且向所述第二虚拟机发送所述第二报文;所述第二IPU位于所述第二NUMA节点中,所述第二IPU包括第二虚拟端口和第二物理端口,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接。
28.根据权利要求27所述的计算机设备,其特征在于,
所述第二IPU,还用于在所述网络设备与所述第一IPU之间发生通信故障的情况下,从所述网络设备接收第三报文,所述第三报文是发送至所述第一虚拟机的报文;并且向所述第一虚拟机发送所述第三报文。
29.根据权利要求27或28所述的计算机设备,其特征在于,当所述数据中心位于互联网协议第6版分段路由SRv6网络中时,所述IPU的地址为SRv6的定位符,所述虚拟机的虚拟专用网络标识为虚拟专用网络分段标识VPN SID;
所述第一IPU,具体用于解封装所述第一报文,得到所述第一虚拟机的VPN SID;并且根据所述第一虚拟机的VPN SID向所述第一虚拟机发送所述第一报文。
30.根据权利要求27或28所述的计算机设备,其特征在于,当所述数据中心位于虚拟可扩展局域网VxLAN网络中时,所述IPU的地址为VxLAN隧道终点VTEP地址,所述虚拟机的虚拟专用网络标识为虚拟网络标识VNI;
所述第一IPU,具体用于所述第一IPU解封装所述第一报文,得到所述第一虚拟机的VNI;并且根据所述第一虚拟机的VNI向所述第一虚拟机发送所述第一报文。
31.根据权利要求27所述的计算机设备,其特征在于,
所述第一IPU的地址与所述第二IPU的地址不同;
所述第一虚拟机的虚拟专用网络标识是基于所述第一IPU的地址分配的,所述第二虚拟机的虚拟专用网络标识是基于所述第二IPU的地址分配的。
32.一种计算机设备,所述计算机设备应用于虚拟路由设备,其特征在于,所述虚拟路由设备应用于非一致内存访问NUMA架构中的数据中心,所述数据中心包括服务器和网络设备,所述服务器上部署有虚拟机和所述虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括:
第一接口处理单元IPU,用于从所述第一虚拟机接收第一报文;并且向所述网络设备发送所述第一报文;所述第一IPU位于所述第一NUMA节点中,所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接;以及,
第二IPU,用于从所述第二虚拟机接收第二报文;并且向所述网络设备发送所述第二报文,所述第二IPU位于所述第二NUMA节点中,所述第二IPU包括第二虚拟端口和第二物理端口,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接。
33.根据权利要求32所述的计算机设备,其特征在于,
所述第一IPU,还用于在所述第一IPU与所述网络设备之间发生通信故障的情况下,从所述第一虚拟机接收第三报文;并且将所述第三报文发送至第二IPU;
所述第二IPU,还用于向所述网络设备发送所述第三报文。
34.根据权利要求32所述的计算机设备,其特征在于,
所述第一IPU,具体用于对所述第一报文进行互联网协议第6版分段路由SRv6封装,并向所述网络设备发送封装后的所述第一报文;或者,
所述第一IPU,用于对所述第一报文进行虚拟可扩展局域网VxLAN封装,并向所述网络设备发送封装后的所述第一报文。
35.一种计算机设备,应用于虚拟路由设备,其特征在于,所述虚拟路由设备应用于非一致内存访问NUMA架构中的数据中心,所述数据中心包括服务器和网络设备,所述服务器上部署有虚拟机和虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括:
第一接口处理单元IPU,用于向所述网络设备发送第一路由信息,所述第一路由信息包括所述第一IPU的地址,述第一路由信息用于指示所述网络设备将接收到的第一报文发送至所述第一IPU,所述第一报文是发送至所述第一虚拟机的报文;所述第一IPU位于所述第一NUMA节点中,所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接,第二IPU包括第二虚拟端口和第二物理端口;以及,
第二IPU,用于向所述网络设备发送第二路由信息,所述第二路由信息包括所述第二IPU的地址,所述第二路由信息用于指示所述网络设备将接收到的第二报文发送至所述第二IPU,所述第二报文是发送至所述第二虚拟机的报文,所述第二IPU位于所述第二NUMA节点中,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接。
36.根据权利要求35所述的计算机设备,其特征在于,
当所述数据中心位于互联网协议第6版分段路由SRv6网络中时,IPU的地址为SRv6的定位符,虚拟机的虚拟专用网络标识为虚拟专用网络分段标识VPN SID。
37.根据权利要求36所述的计算机设备,其特征在于,
所述第一IPU,还用于向所述网络设备发送第三路由信息,所述第三路由信息包括所述虚拟路由设备的地址;所述第三路由信息用于指示在所述网络设备与所述第一IPU之间发生通信故障的情况下,所述网络设备将接收到的第三报文发送至所述第二IPU,所述第三报文是发送至所述第一虚拟机的报文;或者,
所述第二IPU,还用于向所述网络设备发送第三路由信息,所述第三路由信息用于指示在所述网络设备于所述第二IPU之间发生通信故障的情况下,所述网络设备将接收到的第四报文发送至所述第一IPU,所述第四报文是发送至所述第二虚拟机的报文。
38.根据权利要求35所述的计算机设备,其特征在于,
当所述数据中心位于虚拟可扩展局域网VxLAN网络中时,IPU的地址为VxLAN隧道终点VTEP地址,虚拟机的虚拟专用网络标识为虚拟网络标识VNI。
39.根据权利要求35至38任一项所述的计算机设备,其特征在于,所述第二路由信息中还包括所述第一IPU的地址;
所述第一路由信息中所述第一IPU的地址的优先级高于所述第二路由信息中所述第一IPU地址的优先级。
40.根据权利要求35所述的计算机设备,其特征在于
所述第一IPU,还用于从所述网络设备接收第四路由信息,所述第四路由信息用于指示所述第一IPU将目的地址为所述网络设备的报文发送至所述网络设备;
所述第二IPU,还用于从所述网络设备接收第四路由信息,所述第四路由信息用于指示所述第二IPU将目的地址为所述网络设备的报文发送至所述网络设备。
41.根据权利要求35所述的计算机设备,其特征在于,所述虚拟路由设备还包括至少一个主处理单元MPU。
42.一种网络设备,其特征在于,包括接收模块和发送模块,所述网络设备应用于非一致内存访问NUMA架构中的数据中心,所述数据中心还包括服务器,所述服务器上部署有虚拟机和虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括第一接口处理单元IPU和第二IPU,所述第一IPU位于所述第一NUMA节点中,所述第二IPU位于所述第二NUMA节点中;所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接,所述第二IPU包括第二虚拟端口和第二物理端口,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接;
所述接收模块,用于接收第一报文,所述第一报文是发送至所述第一虚拟机的报文;
所述发送模块,用于向所述第一IPU发送所述第一报文;
所述接收模块,还用于接收第二报文,所述第二报文是发送至所述第二虚拟机的报文;
所述发送模块,还用于向所述第二IPU发送所述第二报文。
43.根据权利要求42所述的网络设备,其特征在于,
所述发送模块,还用于在所述网络设备与所述第一IPU之间发生通信故障的情况下,向所述第二IPU发送第三报文,所述第三报文是发送至所述第一虚拟机的报文。
44.根据权利要求42或43所述的网络设备,其特征在于,所述网络设备还包括存储模块;
所述存储模块,用于存储有第一路由信息和第二路由信息;其中,所述第一路由信息包括所述第一IPU的地址,所述第一路由信息用于指示所述网络设备将接收到的第一报文发送至所述第一IPU;所述第二路由信息包括所述第二IPU的地址,所述第二路由信息用于指示所述网络设备将接收到的第二报文发送至所述第二IPU。
45.根据权利要求44所述的网络设备,其特征在于,所述第一路由信息中还包括所述第二IPU的地址;
所述第一路由信息中所述第一IPU的地址的优先级高于所述第二路由信息中所述第一IPU的地址的优先级。
46.一种网络设备,其特征在于,包括接收模块;所述网络设备应用于非一致内存访问NUMA架构中的数据中心,所述数据中心还包括服务器,所述服务器上部署有虚拟机和虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括第一接口处理单元IPU和第二IPU,所述第一IPU位于所述第一NUMA节点中,所述第二IPU位于所述第二NUMA节点中;所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接,所述第二IPU包括第二虚拟端口和第二物理端口,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接;
所述接收模块,用于接收所述第一IPU发送的第一报文,所述第一报文是所述第一IPU从所述第一虚拟机接收的;并且接收所述第二IPU发送的第二报文,所述第二报文是所述第二IPU从所述第二虚拟机接收的。
47.根据权利要求46所述的网络设备,其特征在于,
所述接收模块,还用于在所述网络设备与所述第一IPU之间发生通信故障的情况下,接收所述第二IPU发送的第三报文,所述第三报文是所述第二IPU从所述第一IPU接收的,且所述第三报文是所述第一IPU从所述第一虚拟机接收的。
48.一种网络设备,其特征在于,所述网络设备包括接收模块;所述网络设备应用于非一致内存访问NUMA架构中的数据中心,所述数据中心还包括服务器,所述服务器上部署有虚拟机和虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括第一接口处理单元IPU和第二IPU,所述第一IPU位于所述第一NUMA节点中,所述第二IPU位于所述第二NUMA节点中;所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接,所述第二IPU包括第二虚拟端口和第二物理端口,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接;
所述接收模块,用于从所述虚拟路由设备接收第一路由信息和第二路由信息,所述第一路由信息包括所述第一IPU的地址,所述第二路由信息包括所述第二IPU的地址;
其中,所述第一路由信息用于指示所述网络设备将接收到的第一报文发送至所述第一IPU,所述第一报文是发送至所述第一虚拟机的报文,所述第二路由信息用于指示所述网络设备将接收到的第二报文发送至所述第二IPU,所述第二报文是所述第二虚拟机的报文。
49.根据权利要求48所述的网络设备,其特征在于,
所述接收模块,具体用于从所述虚拟路由设备的第一IPU接收所述第一路由信息;并且从所述虚拟路由设备的第二IPU接收所述第二路由信息。
50.根据权利要求48或49所述的网络设备,其特征在于,
所述接收模块,还用于从所述虚拟路由设备接收第三路由信息,所述第三路由信息包括所述虚拟路由设备的地址;
所述第三路由信息用于指示在所述网络设备与所述第一IPU之间发生通信故障的情况下,所述网络设备将接收到的第三报文发送至所述第二IPU,所述第三报文是发送至所述第一虚拟机的报文;或者,
所述第三路由信息用于指示在所述网络设备于所述第二IPU之间发生通信故障的情况下,所述网络设备将接收到的第四报文发送至所述第一IPU,所述第四报文是发送至所述第二虚拟机的报文。
51.根据权利要求48所述的网络设备,其特征在于,所述第一路由信息中还包括所述第二IPU的地址;
所述第一路由信息中所述第一IPU的地址的优先级高于所述第二路由信息中所述第一IPU地址的优先级。
52.一种数据中心,其特征在于,包括服务器和网络设备,所述服务器上部署有虚拟机和所述虚拟路由设备,所述虚拟机通过所述虚拟路由设备与所述网络设备通信;所述服务器包括第一NUMA节点和第二NUMA节点,所述虚拟机包括第一虚拟机和第二虚拟机,所述第一NUMA节点包括所述第一虚拟机,所述第二NUMA节点包括所述第二虚拟机;所述虚拟路由设备包括第一接口处理单元IPU和第二IPU,所述第一IPU位于所述第一NUMA节点中,所述第二IPU位于所述第二NUMA节点中;所述第一IPU包括第一虚拟端口和第一物理端口,所述第一IPU通过所述第一虚拟端口与所述第一虚拟机连接,所述第一IPU通过所述第一物理端口与所述网络设备连接,所述第二IPU包括第二虚拟端口和第二物理端口,所述第二IPU通过所述第二虚拟端口与所述第二虚拟机连接,所述第二IPU通过所述第二物理端口与所述网络设备连接;
所述虚拟路由设备为权利要求27至41任一项所述的计算机设备,所述网络设备为权利要求42至51任一项所述的网络设备。
53.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当所述计算机程序在计算机上运行时,以执行如权利要求1至26任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010650282.5A CN113923158B (zh) | 2020-07-07 | 2020-07-07 | 一种报文转发、路由发送和接收方法及装置 |
EP21182958.5A EP3937436A1 (en) | 2020-07-07 | 2021-06-30 | Packet forwarding method and apparatus |
US17/366,243 US11621915B2 (en) | 2020-07-07 | 2021-07-02 | Packet forwarding method, route sending and receiving method, and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010650282.5A CN113923158B (zh) | 2020-07-07 | 2020-07-07 | 一种报文转发、路由发送和接收方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113923158A CN113923158A (zh) | 2022-01-11 |
CN113923158B true CN113923158B (zh) | 2023-09-22 |
Family
ID=76730473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010650282.5A Active CN113923158B (zh) | 2020-07-07 | 2020-07-07 | 一种报文转发、路由发送和接收方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11621915B2 (zh) |
EP (1) | EP3937436A1 (zh) |
CN (1) | CN113923158B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114745255B (zh) * | 2022-04-12 | 2023-11-10 | 深圳星云智联科技有限公司 | 硬件芯片、dpu、服务器、通信方法及相关装置 |
CN115794317B (zh) * | 2023-02-06 | 2023-04-21 | 天翼云科技有限公司 | 一种基于虚拟机的处理方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9356866B1 (en) * | 2014-01-10 | 2016-05-31 | Juniper Networks, Inc. | Receive packet steering for virtual networks |
CN106936739A (zh) * | 2015-12-30 | 2017-07-07 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN107995129A (zh) * | 2017-11-30 | 2018-05-04 | 锐捷网络股份有限公司 | 一种nfv报文转发方法和装置 |
CN109426544A (zh) * | 2017-08-23 | 2019-03-05 | 龙芯中科技术有限公司 | 虚拟机部署方法和装置 |
WO2019120233A1 (zh) * | 2017-12-23 | 2019-06-27 | 华为技术有限公司 | 报文传输方法、运营商边缘设备及系统 |
CN111198747A (zh) * | 2018-11-20 | 2020-05-26 | 中移(苏州)软件技术有限公司 | 一种为虚拟机分配内存的方法和虚拟机 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047417B2 (en) | 2012-10-29 | 2015-06-02 | Intel Corporation | NUMA aware network interface |
US10171559B2 (en) * | 2014-11-21 | 2019-01-01 | Cisco Technology, Inc. | VxLAN security implemented using VxLAN membership information at VTEPs |
US10338822B2 (en) * | 2016-06-15 | 2019-07-02 | Vmware, Inc. | Systems and methods for non-uniform memory access aligned I/O for virtual machines |
US20180181421A1 (en) * | 2016-12-27 | 2018-06-28 | Intel Corporation | Transferring packets between virtual machines via a direct memory access device |
JP6855906B2 (ja) * | 2017-04-25 | 2021-04-07 | 富士通株式会社 | スイッチプログラム、スイッチング方法及び情報処理装置 |
US10506083B2 (en) * | 2017-06-27 | 2019-12-10 | Cisco Technology, Inc. | Segment routing gateway storing segment routing encapsulating header used in encapsulating and forwarding of returned native packet |
US11301278B2 (en) * | 2018-04-25 | 2022-04-12 | Vmware, Inc. | Packet handling based on multiprocessor architecture configuration |
US11494212B2 (en) * | 2018-09-27 | 2022-11-08 | Intel Corporation | Technologies for adaptive platform resource assignment |
US11533259B2 (en) * | 2019-07-24 | 2022-12-20 | Vmware, Inc. | Building a platform to scale control and data plane for virtual network functions |
-
2020
- 2020-07-07 CN CN202010650282.5A patent/CN113923158B/zh active Active
-
2021
- 2021-06-30 EP EP21182958.5A patent/EP3937436A1/en active Pending
- 2021-07-02 US US17/366,243 patent/US11621915B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9356866B1 (en) * | 2014-01-10 | 2016-05-31 | Juniper Networks, Inc. | Receive packet steering for virtual networks |
CN106936739A (zh) * | 2015-12-30 | 2017-07-07 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN109426544A (zh) * | 2017-08-23 | 2019-03-05 | 龙芯中科技术有限公司 | 虚拟机部署方法和装置 |
CN107995129A (zh) * | 2017-11-30 | 2018-05-04 | 锐捷网络股份有限公司 | 一种nfv报文转发方法和装置 |
WO2019120233A1 (zh) * | 2017-12-23 | 2019-06-27 | 华为技术有限公司 | 报文传输方法、运营商边缘设备及系统 |
CN111198747A (zh) * | 2018-11-20 | 2020-05-26 | 中移(苏州)软件技术有限公司 | 一种为虚拟机分配内存的方法和虚拟机 |
Also Published As
Publication number | Publication date |
---|---|
CN113923158A (zh) | 2022-01-11 |
US20220014465A1 (en) | 2022-01-13 |
EP3937436A1 (en) | 2022-01-12 |
US11621915B2 (en) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11283707B2 (en) | Segment routing with fast reroute for container networking | |
US8856384B2 (en) | System and methods for managing network protocol address assignment with a controller | |
EP2748992B1 (en) | Method for managing network hardware address requests with a controller | |
US11398956B2 (en) | Multi-Edge EtherChannel (MEEC) creation and management | |
Qi et al. | Assessing container network interface plugins: Functionality, performance, and scalability | |
KR102342286B1 (ko) | Dcn 메시지 처리 방법, 네트워크 디바이스, 및 네트워크 시스템 | |
EP4113919A1 (en) | Method for forwarding message in srv6 service function chain, sff and sf device | |
CN108574616A (zh) | 一种处理路由的方法、设备及系统 | |
US9036636B1 (en) | System and methods for managing network packet broadcasting | |
JP5488979B2 (ja) | コンピュータシステム、コントローラ、スイッチ、及び通信方法 | |
CN110213148B (zh) | 一种数据传输的方法、系统及装置 | |
CN108183919B (zh) | 报文转发方法及vxlan网关 | |
CN104717081A (zh) | 一种网关功能的实现方法及装置 | |
EP4037266A1 (en) | Method for processing message, and network node and system | |
US20220345331A1 (en) | Two-layer private line network system, configuration method, and device | |
CN113923158B (zh) | 一种报文转发、路由发送和接收方法及装置 | |
CN111756565B (zh) | 管理分支网络内的卫星设备 | |
WO2021139304A1 (zh) | 一种多云互联的方法及设备 | |
US20220360526A1 (en) | Routing information publishing method, apparatus, and system | |
WO2022017099A1 (zh) | 通信方法、cp设备及nat设备 | |
US20120051364A1 (en) | Distributed routing according to longest match principle | |
KR101794719B1 (ko) | Sdn 기반 네트워크 가상화 플랫폼에서의 ip 주소 가상화 방법 및 시스템 | |
CN113254148A (zh) | 一种虚拟机的迁移方法及云管理平台 | |
WO2018121443A1 (zh) | 报文传输方法及装置 | |
EP4246916A1 (en) | Route processing method, and related apparatus and network system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |