CN113300931B - 一种虚拟机迁移发现方法及vtep - Google Patents
一种虚拟机迁移发现方法及vtep Download PDFInfo
- Publication number
- CN113300931B CN113300931B CN202110516055.8A CN202110516055A CN113300931B CN 113300931 B CN113300931 B CN 113300931B CN 202110516055 A CN202110516055 A CN 202110516055A CN 113300931 B CN113300931 B CN 113300931B
- Authority
- CN
- China
- Prior art keywords
- mac address
- network segment
- arp
- migrated
- address
- 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
Images
Classifications
-
- 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
-
- 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/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
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/695—Types of network addresses using masks or ranges of addresses
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)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种虚拟机迁移发现方法及VTEP,所述方法包括:在预设的虚拟机VM迁移发现定时器定时结束之后,向下联的所有VM发送ARP网段请求报文;接收下联VM基于所述网段请求报文分别返回的ARP网段响应报文;根据本地MAC地址表以及接收到的所述ARP网段响应报文判断是否存在已迁移的VM;若存在,则删除所述本地MAC地址表中所述已迁移的VM所对应的MAC地址表项,并向其他VTEP发送所述已迁移的VM所对应的路由撤销信息,以使所述其他VTEP接收到所述路由撤销信息后删除各自本地MAC地址表中所述已迁移的VM所对应的MAC地址表项。该方法及VTEP解决了相关技术中VTEP不能及时发现VM迁移,且容易导致数据包传输错误的问题。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种虚拟机迁移发现方法及VTEP。
背景技术
在VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)网络中,同一个网段内属于同一个VNI(VXLAN Network Identifier, VXLAN网络标识符)的不同VM(VirtualMachine,虚拟机)之间通信时,必须先获取对方的MAC(Media Access Control,介质访问控制层)地址,如果VM的ARP(Address Resolution Protocol,地址解析协议)缓存中没有对方VM的MAC地址,VM发出ARP请求,上联的VTEP(VXLAN Tunnel End Point,VXLAN隧道端点)接收到ARP请求后判断在本地MAC地址表中没有VM的MAC地址,生成VM的MAC地址表项,把该ARP请求发送给所有其他属于该VNI的VTEP,其他VTEP接收到ARP请求后,在下联的VNI 范围内进行广播,被请求的VM接收到ARP请求后,发出ARP 响应,源VM获取到对方VM的MAC地址,然后才能够进行通信。然而,如果VM从该VTEP迁移到其它VTEP,而且迁移后没有发送数据包,在VTEP的MAC地址老化时间超时前,发送给 VM的数据包到达VTEP后,VTEP按照MAC地址表中VM的原 MAC地址表项进行数据转发,导致数据包传输错误。
发明内容
本发明所要解决的技术问题是针对现有技术的上述不足,提供一种虚拟机迁移发现方法及VTEP,用以解决相关技术中VTEP 不能及时发现VM迁移,且容易导致数据包传输错误的问题。
第一方面,本发明实施例提供一种虚拟机迁移发现方法,应用于可扩展虚拟局域网络隧道端点VTEP,所述方法包括:
在预设的虚拟机VM迁移发现定时器定时结束之后,向下联的所有VM发送ARP网段请求报文;
接收下联VM基于所述网段请求报文分别返回的ARP网段响应报文;
根据本地MAC地址表以及接收到的所述ARP网段响应报文判断是否存在已迁移的VM;
若存在,则删除所述本地MAC地址表中所述已迁移的VM 所对应的MAC地址表项,并向其他VTEP发送所述已迁移的VM 所对应的路由撤销信息,以使所述其他VTEP接收到所述路由撤销信息后删除各自本地MAC地址表中所述已迁移的VM所对应的MAC地址表项。
优选地,所述向下联的所有VM发送ARP网段请求报文,具体包括:
获取所述本地MAC地址表中所述下联的所有VM对应的出端口;
根据所述本地MAC地址表中所述下联的所有VM对应的IP 地址生成网段地址以及子网掩码信息;
根据所述网段地址以及子网掩码信息生成所述ARP网段请求报文;
向所述下联的所有VM对应的出端口转发所述ARP网段请求报文。
优选地,所述根据所述网段地址以及子网掩码信息生成所述 ARP网段请求报文之前,所述方法还包括:
对预存的ARP请求报文格式进行扩展,增加子网掩码字段,将增加了所述子网掩码字段的ARP请求报文格式作为ARP网段请求报文格式;
所述根据所述网段地址以及子网掩码信息生成所述ARP网段请求报文,具体包括:
根据所述ARP网段请求报文格式生成源IP地址为自身IP地址、源MAC地址为自身MAC地址、目的IP地址为所述网段地址、目的MAC地址为广播MAC地址、子网掩码为所述子网掩码信息以及OP对应数值为0x0003的ARP网段请求报文。
优选地,所述根据本地MAC地址表以及接收到的所述ARP 网段响应报文判断是否存在已迁移的VM,具体包括:
遍历所述本地MAC地址表中所述下联的所有VM的IP地址和/或MAC地址,依次判断是否接收到遍历到的IP地址和/或MAC 地址所对应的下联VM发送的ARP网段响应报文,若未收到,则判断遍历到的IP地址和/或MAC地址所对应的下联VM已迁移;
其中,所述ARP网段响应报文的源IP地址为下联VM的IP 地址、源MAC地址为下联VM的MAC地址、目的IP地址为自身IP地址、目的MAC地址为自身MAC地址、OP对应数值为0x0004。
优选地,所述删除所述本地MAC地址表中所述已迁移的VM 所对应的MAC地址表项的同时,所述方法还包括:
将预存的老化时间表中所述已迁移的VM所对应的老化时间标志为0;
所述删除所述本地MAC地址表中所述已迁移的VM所对应的MAC地址表项之后,所述方法还包括:
接收其他VTEP发送的所述已迁移的VM所对应的路由信息;
根据所述路由信息在所述本地MAC地址表中建立所述已迁移的VM所对应的新的MAC地址表项。
第二方面,本发明实施例提供一种VTEP,包括:
网段报文发送模块,用于在预设的虚拟机VM迁移发现定时器定时结束之后,向下联的所有VM发送ARP网段请求报文;
响应报文接收模块,与所述网段报文发送模块连接,用于接收下联VM基于所述网段请求报文分别返回的ARP网段响应报文;
VM迁移判断模块,与所述响应报文接收模块连接,用于根据本地MAC地址表以及接收到的所述ARP网段响应报文判断是否存在已迁移的VM;
VM迁移处理模块,与所述VM迁移判断模块连接,用于在所述VM迁移判断模块判断结果为存在时,删除所述本地MAC 地址表中所述已迁移的VM所对应的MAC地址表项,并向其他 VTEP发送所述已迁移的VM所对应的路由撤销信息,以使所述其他VTEP接收到所述路由撤销信息后删除各自本地MAC地址表中所述已迁移的VM所对应的MAC地址表项。
优选地,所述网段报文发送模块具体包括:
出端口获取单元,用于在预设的VM迁移发现定时器定时结束之后,获取所述本地MAC地址表中所述下联的所有VM对应的出端口;
网段生成单元,用于根据所述本地MAC地址表中所述下联的所有VM对应的IP地址生成网段地址以及子网掩码信息;
报文生成单元,用于根据所述网段地址以及子网掩码信息生成所述ARP网段请求报文;
报文转发单元,用于向所述下联的所有VM对应的出端口转发所述ARP网段请求报文。
优选地,还包括:
网段报文格式模块,用于对预存的ARP请求报文格式进行扩展,增加子网掩码字段,将增加了所述子网掩码字段的ARP请求报文格式作为ARP网段请求报文格式;
所述报文生成单元具体用于根据所述ARP网段请求报文格式生成源IP地址为自身IP地址、源MAC地址为自身MAC地址、目的IP地址为所述网段地址、目的MAC地址为广播MAC地址、子网掩码为所述子网掩码信息以及OP对应数值为0x0003的ARP 网段请求报文。
优选地,所述VM迁移判断模块具体用于遍历所述本地MAC 地址表中所述下联的所有VM的IP地址和/或MAC地址,依次判断是否接收到遍历到的IP地址和/或MAC地址所对应的下联VM 发送的ARP网段响应报文,若未收到,则判断遍历到的IP地址和 /或MAC地址所对应的下联VM已迁移;
其中,所述ARP网段响应报文的源IP地址为下联VM的IP 地址、源MAC地址为下联VM的MAC地址、目的IP地址为自身IP地址、目的MAC地址为自身MAC地址、OP对应数值为0x0004。
第三方面,本发明实施例提供一种VTEP,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现上述第一方面所述的虚拟机迁移发现方法。
本发明实施例提供的虚拟机迁移发现方法及VTEP,在预设的VM迁移发现定时器定时结束之后,VTEP向下联的所有VM 发送ARP网段请求报文;并接收下联VM基于所述网段请求报文分别返回的ARP网段响应报文;VTEP根据本地MAC地址表以及接收到的所述ARP网段响应报文判断是否存在已迁移的VM;若存在,则删除所述本地MAC地址表中所述已迁移的VM所对应的MAC地址表项,并向其他VTEP发送所述已迁移的VM所对应的路由撤销信息,以使所述其他VTEP接收到所述路由撤销信息后删除各自本地MAC地址表中所述已迁移的VM所对应的 MAC地址表项。从而能够及时发现VM的迁移,避免数据包传输错误,解决了相关技术中VTEP不能及时发现VM迁移,且容易导致数据包传输错误的问题。
附图说明
图1:为本发明实施例1的一种虚拟机迁移发现方法的流程图;
图2:为本发明实施例的一种虚拟机迁移发现方法的组网示意图;
图3:为本发明实施例2的一种VTEP的结构图;
图4:为本发明实施例3的一种VTEP的结构图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面将结合附图对本发明实施方式作进一步地详细描述。
可以理解的是,此处描述的具体实施例和附图仅仅用于解释本发明,而非对本发明的限定。
可以理解的是,在不冲突的情况下,本发明中的各实施例及实施例中的各特征可相互组合。
可以理解的是,为便于描述,本发明的附图中仅示出了与本发明相关的部分,而与本发明无关的部分未在附图中示出。
可以理解的是,本发明的实施例中所涉及的每个单元、模块可仅对应一个实体结构,也可由多个实体结构组成,或者,多个单元、模块也可集成为一个实体结构。
可以理解的是,在不冲突的情况下,本发明的流程图和框图中所标注的功能、步骤可按照不同于附图中所标注的顺序发生。
可以理解的是,本发明的流程图和框图中,示出了按照本发明各实施例的系统、装置、设备、方法的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可代表一个单元、模块、程序段、代码,其包含用于实现规定的功能的可执行指令。而且,框图和流程图中的每个方框或方框的组合,可用实现规定的功能的基于硬件的系统实现,也可用硬件与计算机指令的组合来实现。
可以理解的是,本发明实施例中所涉及的单元、模块可通过软件的方式实现,也可通过硬件的方式来实现,例如单元、模块可位于处理器中。
为了使本领域的技术人员更好地理解本发明实施例中的技术方案,下面先对本发明实施例中涉及的部分技术术语进行简单说明。
VXLAN:是基于IP网络、采用“MAC in UDP”封装形式的二层VPN(Virtual PrivateNetwork,虚拟专用网络)技术。VXLAN 可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。
VTEP:是VXLAN的边缘设备,VXLAN的相关处理都在 VTEP上进行,例如识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发、封装/解封装报文等,VTEP可以是一台独立的物理设备,也可以是虚拟机所在的服务器。
VM:在一台服务器上可以创建多台虚拟机,不同的虚拟机可以属于不同的VXLAN。属于相同VXLAN的虚拟机处于同一个逻辑二层网络,彼此之间二层互通;属于不同VXLAN的虚拟机之间二层隔离。VXLAN通过VXLAN ID来标识,VXLAN ID又称 VNI,其长度为24比特。
VXLAN隧道:两个VTEP之间的点到点逻辑隧道。VTEP为数据帧封装VXLAN头、UDP头和IP头后,通过VXLAN隧道将封装后的报文转发给远端VTEP,远端VTEP对其进行解封装。
实施例1:
本实施例提供一种虚拟机迁移发现方法,应用于可扩展虚拟局域网络隧道端点VTEP,如图1所示,该方法包括:
步骤S102:在预设的虚拟机VM迁移发现定时器定时结束之后,向下联的所有VM发送ARP网段请求报文;
在本实施例中,VTEP预先启动虚拟机迁移发现定时器,定时器的定时时间为预设的阈值,该预设的阈值可以远远小于VTEP 的MAC地址老化时间。图2示出了本发明实施例的一种虚拟机迁移发现方法的组网示意图,如图2所示,在VTEP1下联的VM1 迁移之前,VM1要与VM2通信,VM1在ARP缓存中没有获取到 VM2的MAC地址,向VTEP1发送ARP请求报文,该ARP请求报文中包含VM1的IP地址和MAC地址。ARP请求报文发送到上联的VTEP1后,VTEP1根据二层子接口上的配置判断报文需要进入VXLAN隧道。确定了报文所属BD后,也就确定了报文所属的VNI。VTEP1判断在本地MAC地址表中没有VM1的MAC 地址,VTEP1学习VM1的MAC、VNI和报文入接口(即二层子接口对应的物理接口)的对应关系,并记录在本地MAC地址表中。 VTEP1根据头端复制列表对该报文进行复制,并分别进行封装。这里封装的外层源IP地址为本地VTEP(VTEP1)的IP地址,外层目的IP地址为所有对端VTEP的IP地址,即VTEP2和VTEP3 的IP地址;外层源MAC地址为本地VTEP的MAC地址,而外层目的MAC地址为去往目的IP的网络中下一跳设备的MAC地址。封装后的报文,根据外层MAC和IP信息,在IP网络中进行传输,直至到达对端VTEP,即VTEP2和VTEP3。VTEP2和VTEP3 分别对报文进行解封装,得到VM1发送的原始报文。同时,VTEP2 和VTEP3学习VM1的MAC地址、VNI和VTEP1的IP地址的对应关系,并记录在本地MAC地址表中。VTEP2和VTEP3根据二层子接口上的配置对报文进行相应的处理并在对应的二层域内广播,VM2接收到ARP请求报文后发送ARP响应报文,从而VM1 可以与VM2通信。
在本实施例中,为了缩短VM迁移发现的时间,在预设的VM 迁移发现定时器定时结束之后,VTEP向下联的所有VM发送ARP 网段请求报文,从而能够避免因逐一构造各下联VM的ARP请求报文而容易导致VM迁移发现时间过长的问题。如图2所示,当 VM迁移发现定时器定时结束之后,VTEP1向VM1、VM3、VM4 发送ARP网段请求报文。
可选地,向下联的所有VM发送ARP网段请求报文,具体包括:
获取本地MAC地址表中下联的所有VM对应的出端口;
根据本地MAC地址表中下联的所有VM对应的IP地址生成网段地址以及子网掩码信息;
根据网段地址以及子网掩码信息生成ARP网段请求报文;
向下联的所有VM对应的出端口转发ARP网段请求报文。
在本实施例中,本地MAC地址表包括IP地址、MAC地址、VNI及出端口或远端VTEP地址信息,如图2所示,VTEP1的 MAC地址表中当前存储了VM1、VM3、VM4的IP地址、MAC 地址、VNI及出端口信息,以及VM2的IP地址、MAC地址、VNI 及远端VTEP地址(即VTEP3的IP地址)信息。VTEP1获取本地MAC地址表中下联的所有VM对应的出端口,即VM1、VM3、 VM4对应的出端口,并根据本地MAC地址表中下联的VM1、 VM3、VM4的IP地址生成网段地址以及子网掩码信息,同时根据网段地址以及子网掩码信息生成ARP网段请求报文,并向下联的 VM1、VM3、VM4对应的出端口转发该ARP网段请求报文。
在本实施例中,ARP网段请求报文是基于现有的ARP请求报文,VTEP对预存的ARP请求报文格式进行扩展,增加4个字节的子网掩码字段,将增加了子网掩码字段的ARP请求报文格式作为ARP网段请求报文格式。同时对操作类型OP的数值范围进行扩展,现有的ARP请求报文的OP为两个字节,主要用于指示当前包是请求包还是应答包,对应的值分别是0x0001和0x0002,本发明对OP的数值范围进行扩展,当为ARP网段请求报文时,可以是除0x0001和0x0002以外的其他数值,优选为0x0003。该ARP 网段请求报文用于指示向该网段内的所有VM发出ARP请求。
具体地,VTEP根据ARP网段请求报文格式生成源IP地址为自身IP地址、源MAC地址为自身MAC地址、目的IP地址为网段地址、目的MAC地址为广播MAC地址、子网掩码为子网掩码信息以及OP对应数值为0x0003的ARP网段请求报文。如图2所示,当VTEP1的VM迁移发现定时器超时后,VTEP1向VM1、 VM3、VM4对应的出端口发出ARP网段请求报文,该ARP网段请求报文是扩展的ARP请求报文,在OP指示中对应的值是 0x0003,表明在二层向该网段内所有下联VM发出ARP请求,数据包中目的MAC地址是广播MAC地址,目的IP地址是根据 VM1、VM3和VM4的IP地址生成的网段地址,增加对应的子网掩码信息,源MAC地址是VTEP1的MAC地址,源IP地址是 VTEP1的IP地址。
步骤S104:接收下联VM基于所述网段请求报文分别返回的 ARP网段响应报文。
在本实施例中,ARP网段响应报文可以基于现有的ARP请求报文,对现有ARP请求报文中的操作类型OP的数值范围进行扩展,可以是除0x0001、0x0002以及ARP网段请求报文对应数值以外的其他数值,优选为0x0004。该ARP网段响应报文是ARP 网段请求报文的响应包,ARP网段响应报文的源IP地址为下联 VM的IP地址、源MAC地址为下联VM的MAC地址、目的IP 地址为自身IP地址、目的MAC地址为自身MAC地址、OP对应数值为0x0004。若下联VM未迁移,则VTEP会收到相应的ARP 网段响应报文。如图2所示,若VM1已迁移,VM3和VM4未迁移,则VTEP1下联的所有在线VM(VM3和VM4)接收到该ARP 网段请求报文后,发送ARP网段响应报文,该ARP网段响应报文在OP指示中对应的值是0x0004,数据包中目的MAC地址是 VTEP1的MAC地址,目的IP地址是VTEP1的IP地址,源MAC 地址是VM3或VM4的MAC地址,源IP地址是VM3或VM4的 IP地址,即VTEP1将收到VM3和VM4发送的ARP网段响应报文。
步骤S106:根据本地MAC地址表以及接收到的所述ARP网段响应报文判断是否存在已迁移的VM。
具体地,VTEP遍历本地MAC地址表中下联的所有VM的IP 地址和/或MAC地址,依次判断是否接收到遍历到的IP地址和/ 或MAC地址所对应的下联VM发送的ARP网段响应报文,若未收到,则判断遍历到的IP地址和/或MAC地址所对应的下联VM 已迁移。如图2所示,若VM1已迁移,由于VTEP1的本地MAC 地址表当前存储了VM1、VM3、VM4的IP地址以及MAC地址信息,且当前未收到VM1的ARP网段响应报文,则判断VM1已迁移。
步骤S108:若存在,则删除所述本地MAC地址表中所述已迁移的VM所对应的MAC地址表项,并向其他VTEP发送已迁移的VM所对应的路由撤销信息,以使其他VTEP接收到路由撤销信息后删除各自本地MAC地址表中已迁移的VM所对应的MAC 地址表项。
在本实施例中,若判断出某个VM已迁移,则VTEP删除所述本地MAC地址表中所述已迁移的VM所对应的MAC地址表项,同时,VTEP向其余所有的VTEP发送撤销该已迁移的VM的路由信息,其余VTEP接收到该路由撤销信息后删除本地MAC地址表中该已迁移的VM的地址表项,以便于在VXLAN网络中同步该已迁移的VM的路由信息。如图2所示,当VM1已从VTEP1 迁移到VTEP2,VTEP1将接收不到VM1发送的ARP网段响应报文,为了避免VTEP1无期限的等待,可以预先设置等待时间阈值,若超过这个等待时间阈值未收到VM1发送的ARP网段响应报文,则代表VM1已迁移。此时,VTEP1删除VM1的MAC地址表项,并向其余所有的VTEP发送撤销VM1路由信息,其余VTEP删除本地MAC地址表中VM1的地址表项。
可选地,删除本地MAC地址表中已迁移的VM所对应的MAC 地址表项的同时,方法还可以包括:
将预存的老化时间表中已迁移的VM所对应的老化时间标志为0。
在本实施例中,VTEP可以为每个mac地址设置不同的老化时间,而无需为整个MAC地址表设置老化时间,当该VM已迁移时,VTEP可以将该迁移的VM所对应的老化时间标志为0,用于表示该VM已经从VTEP迁移,以便于后续查看。同时,若接收到某个VM的ARP网段响应报文,也可以将该VM的MAC地址表项老化时间标志为1,用于表示该VM未迁移,也可以根据实际情况设置其他数值。需要说明的是,迁移前后的VM所对应的IP地址和MAC地址不变。
在本实施例中,当其他VM向已迁移的VM发送数据包,其他VM归属的VTEP在本地MAC地址表中没有查询到已迁移的 VM的地址表项,向其余所有VTEP发送针对已迁移的VM的ARP请求,从而使得已迁移的VM当前归属的VTEP向其余所有VTEP 发送已迁移的VM的路由信息。如图2所示,当VM2要向VM1 发送数据包,VM2发送数据包给上联的VTEP3,VTEP3在本地 MAC地址表中没有查询到VM1的地址表项,VTEP3向其余所有 VTEP发送针对VM1的ARP请求。VTEP2接收到ARP请求后,在下联的该VNI二层域内进行广播。VM1接收到ARP请求后,发送ARP响应。VTEP2接收到VM1的ARP响应,学习VM1的 MAC、VNI和报文入接口(即二层子接口对应的物理接口)的对应关系,并记录在本地MAC地址表中。VTEP2向其余所有VTEP (VTEP1和VTEP3)发送VM1的路由信息,其余VTEP接收到 VM1的路由信息,在本地MAC地址表中建立VM1的地址表项。 VTEP3把VM1的ARP响应发送给VM2,从而已迁移的VM1可以与VM2通信。
本实施例提供的虚拟机迁移发现方法,在预设的VM迁移发现定时器定时结束之后,VTEP向下联的所有VM发送ARP网段请求报文;并接收下联VM基于所述网段请求报文分别返回的 ARP网段响应报文;VTEP根据本地MAC地址表以及接收到的所述ARP网段响应报文判断是否存在已迁移的VM;若存在,则删除所述本地MAC地址表中所述已迁移的VM所对应的MAC地址表项,并向其他VTEP发送所述已迁移的VM所对应的路由撤销信息,以使所述其他VTEP接收到所述路由撤销信息后删除各自本地MAC地址表中所述已迁移的VM所对应的MAC地址表项。从而能够及时发现VM的迁移,避免数据包传输错误,解决了相关技术中VTEP不能及时发现VM迁移,且容易导致数据包传输错误的问题。
实施例2:
如图3所示,本实施例提供一种VTEP,包括:
网段报文发送模块11,用于在预设的虚拟机VM迁移发现定时器定时结束之后,向下联的所有VM发送ARP网段请求报文;
响应报文接收模块12,与网段报文发送模块11连接,用于接收下联VM基于网段请求报文分别返回的ARP网段响应报文;
VM迁移判断模块13,与响应报文接收模块12连接,用于根据本地MAC地址表以及接收到的ARP网段响应报文判断是否存在已迁移的VM;
VM迁移处理模块14,与VM迁移判断模块13连接,用于在VM迁移判断模块13判断结果为存在时,删除本地MAC地址表中已迁移的VM所对应的MAC地址表项,并向其他VTEP发送已迁移的VM所对应的路由撤销信息,以使其他VTEP接收到路由撤销信息后删除各自本地MAC地址表中已迁移的VM所对应的 MAC地址表项。
可选地,网段报文发送模块1具体可以包括:
出端口获取单元,用于在预设的VM迁移发现定时器定时结束之后,获取本地MAC地址表中下联的所有VM对应的出端口;
网段生成单元,用于根据本地MAC地址表中下联的所有VM 对应的IP地址生成网段地址以及子网掩码信息;
报文生成单元,用于根据网段地址以及子网掩码信息生成 ARP网段请求报文;
报文转发单元,用于向下联的所有VM对应的出端口转发 ARP网段请求报文。
可选地,还可以包括:
网段报文格式模块,用于对预存的ARP请求报文格式进行扩展,增加子网掩码字段,将增加了子网掩码字段的ARP请求报文格式作为ARP网段请求报文格式;
报文生成单元具体用于根据ARP网段请求报文格式生成源IP 地址为自身IP地址、源MAC地址为自身MAC地址、目的IP地址为网段地址、目的MAC地址为广播MAC地址、子网掩码为子网掩码信息以及OP对应数值为0x0003的ARP网段请求报文。
可选地,VM迁移判断模块13具体用于遍历本地MAC地址表中下联的所有VM的IP地址和/或MAC地址,依次判断是否接收到遍历到的IP地址和/或MAC地址所对应的下联VM发送的 ARP网段响应报文,若未收到,则判断遍历到的IP地址和/或MAC 地址所对应的下联VM已迁移;
其中,ARP网段响应报文的源IP地址为下联VM的IP地址、源MAC地址为下联VM的MAC地址、目的IP地址为自身IP地址、目的MAC地址为自身MAC地址、OP对应数值为0x0004。
可选地,还可以包括:
标志编辑模块,用于将预存的老化时间表中已迁移的VM所对应的老化时间标志为0;
路由信息接收模块,用于接收其他VTEP发送的已迁移的VM 所对应的路由信息;
MAC表项更新模块,用于根据路由信息在本地MAC地址表中建立已迁移的VM所对应的新的MAC地址表项。
实施例3:
如图4所示,本实施例提供一种VTEP,包括存储器21和处理器22,存储器21中存储有计算机程序,处理器22被设置为运行所述计算机程序以执行实施例1中的虚拟机迁移发现方法。
其中,存储器21与处理器22连接,存储器21可采用闪存或只读存储器或其他存储器,处理器22可采用中央处理器或单片机。
实施例2和实施例3提供的VTEP,在预设的VM迁移发现定时器定时结束之后,VTEP向下联的所有VM发送ARP网段请求报文;并接收下联VM基于所述网段请求报文分别返回的ARP 网段响应报文;VTEP根据本地MAC地址表以及接收到的所述 ARP网段响应报文判断是否存在已迁移的VM;若存在,则删除所述本地MAC地址表中所述已迁移的VM所对应的MAC地址表项,并向其他VTEP发送所述已迁移的VM所对应的路由撤销信息,以使所述其他VTEP接收到所述路由撤销信息后删除各自本地MAC地址表中所述已迁移的VM所对应的MAC地址表项。从而能够及时发现VM的迁移,避免数据包传输错误,解决了相关技术中VTEP不能及时发现VM迁移,且容易导致数据包传输错误的问题。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (10)
1.一种虚拟机迁移发现方法,其特征在于,应用于可扩展虚拟局域网络隧道端点VTEP,所述方法包括:
在预设的虚拟机VM迁移发现定时器定时结束之后,向下联的所有VM发送ARP网段请求报文,所述虚拟机VM迁移发现定时器的定时时间为预设的阈值,该预设的阈值小于VTEP的MAC地址老化时间;
接收下联VM基于所述网段请求报文分别返回的ARP网段响应报文;
根据本地MAC地址表以及接收到的所述ARP网段响应报文判断是否存在已迁移的VM;
若存在,则删除所述本地MAC地址表中所述已迁移的VM所对应的MAC地址表项,并向其他VTEP发送所述已迁移的VM所对应的路由撤销信息,以使所述其他VTEP接收到所述路由撤销信息后删除各自本地MAC地址表中所述已迁移的VM所对应的MAC地址表项。
2.根据权利要求1所述的虚拟机迁移发现方法,其特征在于,所述向下联的所有VM发送ARP网段请求报文,具体包括:
获取所述本地MAC地址表中所述下联的所有VM对应的出端口;
根据所述本地MAC地址表中所述下联的所有VM对应的IP地址生成网段地址以及子网掩码信息;
根据所述网段地址以及子网掩码信息生成所述ARP网段请求报文;
向所述下联的所有VM对应的出端口转发所述ARP网段请求报文。
3.根据权利要求2所述的虚拟机迁移发现方法,其特征在于,所述根据所述网段地址以及子网掩码信息生成所述ARP网段请求报文之前,所述方法还包括:
对预存的ARP请求报文格式进行扩展,增加子网掩码字段,将增加了所述子网掩码字段的ARP请求报文格式作为ARP网段请求报文格式;
所述根据所述网段地址以及子网掩码信息生成所述ARP网段请求报文,具体包括:
根据所述ARP网段请求报文格式生成源IP地址为自身IP地址、源MAC地址为自身MAC地址、目的IP地址为所述网段地址、目的MAC地址为广播MAC地址、子网掩码为所述子网掩码信息以及OP对应数值为0x0003的ARP网段请求报文。
4.根据权利要求3所述的虚拟机迁移发现方法,其特征在于,所述根据本地MAC地址表以及接收到的所述ARP网段响应报文判断是否存在已迁移的VM,具体包括:
遍历所述本地MAC地址表中所述下联的所有VM的IP地址和/或MAC地址,依次判断是否接收到遍历到的IP地址和/或MAC地址所对应的下联VM发送的ARP网段响应报文,若未收到,则判断遍历到的IP地址和/或MAC地址所对应的下联VM已迁移;
其中,所述ARP网段响应报文的源IP地址为下联VM的IP地址、源MAC地址为下联VM的MAC地址、目的IP地址为自身IP地址、目的MAC地址为自身MAC地址、OP对应数值为0x0004。
5.根据权利要求1所述的虚拟机迁移发现方法,其特征在于,所述删除所述本地MAC地址表中所述已迁移的VM所对应的MAC地址表项的同时,所述方法还包括:
将预存的老化时间表中所述已迁移的VM所对应的老化时间标志为0;
所述删除所述本地MAC地址表中所述已迁移的VM所对应的MAC地址表项之后,所述方法还包括:
接收其他VTEP发送的所述已迁移的VM所对应的路由信息;
根据所述路由信息在所述本地MAC地址表中建立所述已迁移的VM所对应的新的MAC地址表项。
6.一种VTEP,其特征在于,包括:
网段报文发送模块,用于在预设的虚拟机VM迁移发现定时器定时结束之后,向下联的所有VM发送ARP网段请求报文,所述虚拟机VM迁移发现定时器的定时时间为预设的阈值,该预设的阈值小于VTEP的MAC地址老化时间;
响应报文接收模块,与所述网段报文发送模块连接,用于接收下联VM基于所述网段请求报文分别返回的ARP网段响应报文;
VM迁移判断模块,与所述响应报文接收模块连接,用于根据本地MAC地址表以及接收到的所述ARP网段响应报文判断是否存在已迁移的VM;
VM迁移处理模块,与所述VM迁移判断模块连接,用于在所述VM迁移判断模块判断结果为存在时,删除所述本地MAC地址表中所述已迁移的VM所对应的MAC地址表项,并向其他VTEP发送所述已迁移的VM所对应的路由撤销信息,以使所述其他VTEP接收到所述路由撤销信息后删除各自本地MAC地址表中所述已迁移的VM所对应的MAC地址表项。
7.根据权利要求6所述的VTEP,其特征在于,所述网段报文发送模块具体包括:
出端口获取单元,用于在预设的VM迁移发现定时器定时结束之后,获取所述本地MAC地址表中所述下联的所有VM对应的出端口;
网段生成单元,用于根据所述本地MAC地址表中所述下联的所有VM对应的IP地址生成网段地址以及子网掩码信息;
报文生成单元,用于根据所述网段地址以及子网掩码信息生成所述ARP网段请求报文;
报文转发单元,用于向所述下联的所有VM对应的出端口转发所述ARP网段请求报文。
8.根据权利要求7所述的VTEP,其特征在于,还包括:
网段报文格式模块,用于对预存的ARP请求报文格式进行扩展,增加子网掩码字段,将增加了所述子网掩码字段的ARP请求报文格式作为ARP网段请求报文格式;
所述报文生成单元具体用于根据所述ARP网段请求报文格式生成源IP地址为自身IP地址、源MAC地址为自身MAC地址、目的IP地址为所述网段地址、目的MAC地址为广播MAC地址、子网掩码为所述子网掩码信息以及OP对应数值为0x0003的ARP网段请求报文。
9.根据权利要求8所述的VTEP,其特征在于,所述VM迁移判断模块具体用于遍历所述本地MAC地址表中所述下联的所有VM的IP地址和/或MAC地址,依次判断是否接收到遍历到的IP地址和/或MAC地址所对应的下联VM发送的ARP网段响应报文,若未收到,则判断遍历到的IP地址和/或MAC地址所对应的下联VM已迁移;
其中,所述ARP网段响应报文的源IP地址为下联VM的IP地址、源MAC地址为下联VM的MAC地址、目的IP地址为自身IP地址、目的MAC地址为自身MAC地址、OP对应数值为0x0004。
10.一种VTEP,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现如权利要求1-5中任一项所述的虚拟机迁移发现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110516055.8A CN113300931B (zh) | 2021-05-12 | 2021-05-12 | 一种虚拟机迁移发现方法及vtep |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110516055.8A CN113300931B (zh) | 2021-05-12 | 2021-05-12 | 一种虚拟机迁移发现方法及vtep |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113300931A CN113300931A (zh) | 2021-08-24 |
CN113300931B true CN113300931B (zh) | 2022-11-18 |
Family
ID=77321492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110516055.8A Active CN113300931B (zh) | 2021-05-12 | 2021-05-12 | 一种虚拟机迁移发现方法及vtep |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113300931B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103560961A (zh) * | 2013-11-04 | 2014-02-05 | 神州数码网络(北京)有限公司 | 以太网交换机主机路由表项动态更新方法及交换机 |
CN103716221A (zh) * | 2013-12-10 | 2014-04-09 | 同济大学 | 一种在未来网络ndn下的广域网中虚拟机在线迁移方法 |
CN107612834A (zh) * | 2017-09-13 | 2018-01-19 | 杭州迪普科技股份有限公司 | 一种基于虚拟设备迁移的evpn路由更新方法 |
CN107783815A (zh) * | 2016-08-30 | 2018-03-09 | 华为技术有限公司 | 一种确定虚拟机迁移的方法和装置 |
JP2019201419A (ja) * | 2019-07-12 | 2019-11-21 | Necプラットフォームズ株式会社 | Macアドレステーブル管理回路、イーサネットパケットスイッチング装置、テーブル管理方法、プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9641417B2 (en) * | 2014-12-15 | 2017-05-02 | Cisco Technology, Inc. | Proactive detection of host status in a communications network |
CN106911534A (zh) * | 2017-02-28 | 2017-06-30 | 郑州云海信息技术有限公司 | 一种虚拟机热迁移方法及其系统 |
-
2021
- 2021-05-12 CN CN202110516055.8A patent/CN113300931B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103560961A (zh) * | 2013-11-04 | 2014-02-05 | 神州数码网络(北京)有限公司 | 以太网交换机主机路由表项动态更新方法及交换机 |
CN103716221A (zh) * | 2013-12-10 | 2014-04-09 | 同济大学 | 一种在未来网络ndn下的广域网中虚拟机在线迁移方法 |
CN107783815A (zh) * | 2016-08-30 | 2018-03-09 | 华为技术有限公司 | 一种确定虚拟机迁移的方法和装置 |
CN107612834A (zh) * | 2017-09-13 | 2018-01-19 | 杭州迪普科技股份有限公司 | 一种基于虚拟设备迁移的evpn路由更新方法 |
JP2019201419A (ja) * | 2019-07-12 | 2019-11-21 | Necプラットフォームズ株式会社 | Macアドレステーブル管理回路、イーサネットパケットスイッチング装置、テーブル管理方法、プログラム |
Also Published As
Publication number | Publication date |
---|---|
CN113300931A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10003571B2 (en) | Method and apparatus for implementing communication between virtual machines | |
CN109257265B (zh) | 一种泛洪抑制方法、vxlan网桥、网关及系统 | |
US10263808B2 (en) | Deployment of virtual extensible local area network | |
CN111736958B (zh) | 虚拟机迁移方法、系统、计算机设备及存储介质 | |
WO2022001669A1 (zh) | 建立vxlan隧道的方法及相关设备 | |
CN109729012B (zh) | 一种单播报文传输方法和装置 | |
CN110213148B (zh) | 一种数据传输的方法、系统及装置 | |
CN107659484B (zh) | 从vlan网络接入vxlan网络的方法、装置及系统 | |
WO2019204098A1 (en) | Multi-vrf universal device internet protocol address for fabric edge devices | |
CN111556110B (zh) | 一种用于私有云系统的不同物理业务网络自动化适配方法 | |
US8218446B2 (en) | Frame transfer route confirmation method, node, frame transfer route confirmation program and frame transfer route confirmation system | |
US20190215191A1 (en) | Deployment Of Virtual Extensible Local Area Network | |
CN113037883B (zh) | 一种mac地址表项的更新方法及装置 | |
CN113254148A (zh) | 一种虚拟机的迁移方法及云管理平台 | |
CN113472912B (zh) | 一种arp缓存表项的更新方法、vtep、vm及装置 | |
CN113300931B (zh) | 一种虚拟机迁移发现方法及vtep | |
CN112994928B (zh) | 一种虚拟机的管理方法、装置及系统 | |
WO2022001666A1 (zh) | 建立vxlan隧道的方法及相关设备 | |
CN113347101B (zh) | 一种路由信息的发送控制方法、vtep及计算机可读存储介质 | |
US11902166B2 (en) | Policy based routing in extranet networks | |
CN114520800B (zh) | Mac地址表的更新方法及装置 | |
CN114301994B (zh) | 一种双栈转换方法、装置、网络设备及存储介质 | |
US11509536B2 (en) | Relay functionality in an application centric infrastructure (ACI) fabric | |
US11956201B2 (en) | Method and system for efficient address resolution in extended subnets | |
US11303511B2 (en) | Boot server support in an enterprise fabric network |
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 |