CN105704045B - 数据中心网关间虚拟机位置信息同步的方法、网关及系统 - Google Patents
数据中心网关间虚拟机位置信息同步的方法、网关及系统 Download PDFInfo
- Publication number
- CN105704045B CN105704045B CN201410693597.2A CN201410693597A CN105704045B CN 105704045 B CN105704045 B CN 105704045B CN 201410693597 A CN201410693597 A CN 201410693597A CN 105704045 B CN105704045 B CN 105704045B
- Authority
- CN
- China
- Prior art keywords
- gateway
- virtual machine
- data center
- location information
- mac 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
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/12—Arrangements for remote connection or disconnection of substations or of equipment thereof
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- 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
Abstract
本申请公开了一种数据中心网关间虚拟机位置信息同步的方法、网关及系统,其中,上述方法包括:第二数据中心的第二网关接收第一数据中心的第一网关发送的第一位置更新消息,其中,第一位置更新消息是由所述第一网关在检测到第一虚拟机跨数据中心迁移到第一数据中心时所发送的,用于通知第一虚拟机的位置信息发生改变;第二网关根据所述第一位置更新消息删除第二网关保存的第一虚拟机的MAC路由;当所述第二网关接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,所述第二网关向第一虚拟机学习,得到第一虚拟机的当前位置信息。通过上述方式,能够实现数据中心间的虚拟机位置信息的准确同步。
Description
技术领域
本申请涉及通信领域,特别是涉及数据中心网关间虚拟机位置信息同步的方法、网关及系统。
背景技术
目前,在互联的数据中心之间可实现虚拟机的迁移。而在虚拟机进行跨数据中心迁移后,虚拟机的位置信息会发生改变,故互联的数据中心均需要更新本地MAC路由表中的该虚拟机的出接口,以同步该虚拟机的位置信息,使得所有数据中心均能正确转发访问此虚拟机的数据流。
现有同步虚拟机迁移后的位置信息的方法具体是:
如图1,第一虚拟机(英文:virtual machine,简称:VM)112从第二数据中心120迁移到第一数据中心110后,在第一数据中心110中广播发送免费(英文:gratuitous)地址解析协议(英文:Address Resolution Protocol,简称:ARP)报文;
第一数据中心110的第一网关111接收到该免费ARP报文后,发现第一网关111已经保存了第一虚拟机112的MAC路由表项,并且第一虚拟机112的MAC地址和IP地址属于第一数据中心110,则将该第一虚拟机112的MAC路由表项中的出接口更新为本地的出接口,并将保存的对应第一虚拟机112的序列号加一后,通过边界网关协议(英文:Border GatewayProtocol,简称:BGP)消息将第一虚拟机112的加一后的新序列号发送给其他数据中心的网关,图1中,所述BGP消息到达第二数据中心120的第二网关121、第三数据中心130的第三网关131;
第二网关121、第三网关131在接收到第一虚拟机112的新序列号之后,与保存的第一虚拟机112的原序列号对比,如发现新序列号大于本地保存的原序列号,则将本地保存的第一虚拟机112的序列号更新为接收到的新序列号,并将本地的MAC路由表中该第一虚拟机112的出接口更新为网络侧的第一数据中心110对应的出接口,实现第一虚拟机112的位置信息的更新。
然而,上述现有方式存在以下问题:
如果第一虚拟机112迁移前所在的第二数据中心120是第二网关121故障后恢复正常通信的,则第二网关121在恢复正常时会通过BGP消息重新向其他数据中心的网关发布第一虚拟机112在第二数据中心120的MAC路由,所述BGP消息中的序列号为保存的序列号加一得到的。然而,实际上第一虚拟机112已迁移到第一数据中心110并已完成注册,故第一网关111也会通过BGP消息发布该虚拟机第一虚拟机112在第一数据中心110的MAC路由,如前所述,第一网关111发布的BGP消息中的序列号也是根据MAC地址和IP地址生成的序列号加一得到的。由于第一网关111和第二网关121发布的两个BGP消息中的序列号相同,从而导致其他数据中心的第三网关131收到该两个BGP消息时,无法确定第一虚拟机112当前实际所在的数据中心为哪一个,可能会将第一虚拟机112的位置错误更新到第二数据中心120上。
故,现有技术可能会将虚拟机的位置信息错误更新到迁移前的数据中心。在此情况下,当迁移前的数据中心将旧的虚拟机信息删除后,则会导致访问所述虚拟机的流量长时间中断。
发明内容
本申请提供一种数据中心网关间虚拟机位置信息同步的方法、网关及系统,能够实现数据中心网关间对虚拟机位置信息的准确同步,减少流量中断的可能性。
本申请第一方面提供一种数据中心网关间虚拟机位置信息同步的方法,包括:第二数据中心的第二网关接收第一数据中心的第一网关发送的第一位置更新消息,其中,所述第一位置更新消息是由所述第一网关在检测到第一虚拟机跨数据中心迁移到所述第一数据中心时所发送的,用于通知所述第一虚拟机的位置信息发生改变;所述第二网关根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由;当所述第二网关接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,所述第二网关向所述第一虚拟机学习,得到所述第一虚拟机的当前位置信息。
结合第一方面,在第一方面的第一实施方式中,所述第一位置更新消息包括第一虚拟机的位置信息和代表所述第一虚拟机迁移次数的序列号;所述第二网关根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由,具体包括:如果所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号相同,则确定第一虚拟机的位置信息存在冲突,删除所述第二网关中保存的所述第一虚拟机的MAC路由。
结合第一方面的第一实施方式,在第一方面的第二实施方式中,还包括:如果所述第二网关检测到第二虚拟机从第三数据中心迁移到所述第二数据中心,则更新所述第二网关保存的所述第二虚拟机的序列号;所述第二网关向除所述第二数据中心之外的其他数据中心的网关发送包括所述第二虚拟机的序列号的第二位置更新消息,以使除所述第二数据中心之外的其他数据中心的网关在接收到所述第二位置更新消息后,得知所述第二虚拟机的位置信息发生改变,并在确定所述第二虚拟机的位置信息存在冲突时,删除所述其他数据中心的网关保存的第二虚拟机的MAC路由。
结合第一方面的第二实施方式,在第一方面的第三实施方式中,所述如果所述第二网关检测到第二虚拟机从第三数据中心迁移到所述第二数据中心之后,还包括:所述第二网关将所述第二网关保存的MAC路由表中的第二虚拟机的出接口更新为所述第二网关的接口;所述更新所述第二网关保存的所述第二虚拟机的序列号具体包括:所述第二网关更新所述第二网关保存的所述第二虚拟机的BGP表项,所述第二虚拟机的BGP表项包括所述第二虚拟机的序列号。
结合第一方面的第三实施方式,在第一方面的第四实施方式中,所述第二网关将所述第二网关保存的MAC路由表中的第二虚拟机的出接口更新为所述第二网关的接口,具体包括:当所述第二网关存储有网络侧MAC路由表和接入侧MAC路由表时,所述第二网关删除所述网络侧MAC路由表中所述第二虚拟机对应的表项,并在所述接入侧MAC路由表中添加所述第二虚拟机的出接口为所述第二网关的接口的表项;或当所述第二网关仅存储有一个MAC路由表时,则将所述MAC路由表中第二虚拟机的出接口由网络侧出接口改为所述第二网关的接口。
本申请第二方面提供一种网关,所述网关具体为第二数据中心的第二网关,包括接收模块、删除模块和学习模块;所述接收模块用于接收第一数据中心的第一网关发送的第一位置更新消息,其中,所述第一位置更新消息是由所述第一网关在检测到第一虚拟机跨数据中心迁移到所述第一数据中心时所发送的,用于通知所述第一虚拟机的位置信息发生改变;所述删除模块用于在所述接收模块接收到所述第一位置更新消息时,根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由;所述学习模块用于当接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,向所述第一虚拟机学习,得到所述第一虚拟机的当前位置信息。
结合第二方面,在第二方面的第一实施方式中,所述第一位置更新消息包括第一虚拟机的位置信息和代表所述第一虚拟机迁移次数的序列号;所述删除模块具体用于在所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号相同时,确定第一虚拟机的位置信息存在冲突,删除所述第二网关中保存的所述第一虚拟机的MAC路由。
结合第二方面的第一实施方式,在第二方面的第二实施方式中,还包括更新模块和发送模块;所述更新模块用于在检测到第二虚拟机从第三数据中心迁移到所在的第二数据中心时,更新所述第二网关保存的所述第二虚拟机的序列号;所述发送模块用于在所述更新模块更新完成所述第二虚拟机的序列号后,向除所述第二数据中心之外的其他数据中心的网关发送包括所述第二虚拟机的序列号的第二位置更新消息,以使除所述第二数据中心之外的其他数据中心的网关在接收到所述第二位置更新消息后,得知所述第二虚拟机的位置信息发生改变,并在确定所述第二虚拟机的位置信息存在冲突时,删除所述其他数据中心的网关保存的第二虚拟机的MAC路由。
结合第二方面的第二实施方式,在第二方面的第三实施方式中,所述更新模块包括第一更新单元和第二更新单元;所述第一更新单元用于将所述第二网关保存的MAC路由表中的第二虚拟机的出接口更新为所述第二网关的接口;所述第二更新单元用于更新所述第二网关保存的所述第二虚拟机的BGP表项,所述第二虚拟机的BGP表项包括所述第二虚拟机的序列号。
结合第二方面的第三实施方式,在第二方面的第四实施方式中,所述第一更新单元具体用于:当所述第二网关存储有网络侧MAC路由表和接入侧MAC路由表时,删除所述网络侧MAC路由表中所述第二虚拟机对应的表项,并在所述接入侧MAC路由表中添加所述第二虚拟机的出接口为所述第二网关的接口的表项;或当所述第二网关仅存储有一个MAC路由表时,将所述MAC路由表中第二虚拟机的出接口由网络侧出接口改为所述第二网关的接口。
本申请第三方面提供一种数据中心组成的网络系统,包括第一数据中心和第二数据中心,所述第一数据中心包括第一网关和至少一个虚拟机,所述第二数据中心包括第二网关和至少一个虚拟机;所述第一网关用于在检测到第一虚拟机跨数据中心迁移到所述第一数据中心时,向所述网络系统中的其他数据中心的网关发送用于通知所述第一虚拟机的位置信息发生改变的第一位置更新消息;所述第二网关用于接收所述第一网关发送的第一位置更新消息;根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由;当接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,向所述第一虚拟机学习,得到所述第一虚拟机的当前位置信息。
结合第三方面,在第三方面的第一实施方式中,所述第一网关具体用于在检测到第一虚拟机跨数据中心迁移到所述第一数据中心时,更新所述第一网关保存的所述第一虚拟机的序列号,并向除所述第一数据中心外的其他数据中心的网关发送第一位置更新消息,所述第一位置更新消息包括第一虚拟机的位置信息和代表所述第一虚拟机迁移次数的序列号;所述第二网关执行所述删除所述第二网关保存的所述第一虚拟机的MAC路由,具体包括:在所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号相同时,确定第一虚拟机的位置信息存在冲突,删除所述第二网关中保存的所述第一虚拟机的MAC路由。
结合第三方面的第一实施方式,在第三方面的第二实施方式中,所述第一网关执行所述更新所述第一网关保存的所述第一虚拟机的序列号具体包括:将所述第一网关保存的MAC路由表中的第一虚拟机的出接口更新为所述第一网关的接口;更新所述第一网关保存的所述第一虚拟机的BGP表项,所述第一虚拟机的BGP表项包括所述第一虚拟机的序列号。
结合第三方面的第二实施方式,在第三方面的第三实施方式中,所述第一网关执行所述将所述第一网关保存的MAC路由表中的第一虚拟机的出接口更新为所述第一网关的接口具体包括:当所述第一网关存储有网络侧MAC路由表和接入侧MAC路由表时,删除所述网络侧MAC路由表中所述第一虚拟机对应的表项,并在所述接入侧MAC路由表中添加所述第一虚拟机的出接口为所述第二网关的接口的表项;或当所述第一网关仅存储有一个MAC路由表时,将所述MAC路由表中第一虚拟机的出接口由网络侧出接口改为所述第一网关的接口。
上述方案中,当数据中心中的虚拟机的位置信息发生变化时,该数据中心的网关发送位置更新消息,以使其他所有数据中心的网关在接收到该位置更新消息时,删除本地保存的该虚拟机的MAC路由,避免了在虚拟机的位置变化过程出现位置信息更新错误的状况,然后,当有流量访问该虚拟机时,其他数据中心的网关再通过向该虚拟机学习,得到所述虚拟机的准确位置信息,实现了数据中心间的虚拟机位置信息的准确同步,从而减少了由于虚拟机位置信息不正确而导致流量中断的可能性。
附图说明
图1是现有数据中心组成的网络系统的结构示意图;
图2是本申请数据中心组成的网络系统的实施方式的结构示意图;
图3是本申请数据中心网关间虚拟机位置信息同步的方法一实施方式的流程图;
图4是本申请数据中心网关间虚拟机位置信息同步的方法另一实施方式的部分流程图;
图5是本申请网关一实施方式的结构示意图;
图6是本申请网关另一实施方式的结构示意图;
图7是本申请网关再一实施方式的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
请参阅图2,图2是本申请数据中心组成的网络系统的实施方式的结构示意图。该网络系统包括多个数据中心,数据中心之间可进行通讯,本实施方式以网络系统包括第一数据中心110、第二数据中心120、第三数据中心130共三个数据中心为例。其中,每个数据中心均包括网关和至少一个虚拟机,每个数据中心的多个虚拟机可设置在一台或多台主机上,如第一数据中心110中的虚拟机均设置在主机114上。每个数据中心的虚拟机通过网关与其他数据中心中的虚拟机通信。每个数据中心的网关保存有各个数据中心中已注册的虚拟机的MAC路由表项,其中,每个虚拟机的MAC路由表项具体包括该虚拟机的MAC地址以及出接口,由于每个虚拟机均是通过网关与其他数据中心通信,故虚拟机的出接口即为所在数据中心的网关的接口。当某个数据中心中的用户需要访问另一数据中心的虚拟机时,所述用户所在数据中心的网关根据该MAC路由表项将所述用户发送的数据发送给目的虚拟机的出接口所对应的网关,由该网关将所述数据转发给所述目的虚拟机,实现虚拟机之间的跨数据中心通信。
在第一虚拟机112从第二数据中心120迁移到第一数据中心110时,第一虚拟机112向第一数据中心110的第一网关111发送注册消息,第一网关111收到第一虚拟机112的注册消息,经BGP计算发现第一虚拟机112的出接口由网络侧接口变成本地接口,将第一网关111本地存储的MAC路由表中的第一虚拟机112的出接口更新为所述本地接口即第一网关111的接口。
当所述第一网关111存储有网络侧MAC路由表和接入侧MAC路由表时,所述将第一网关111本地存储的MAC路由表中的第一虚拟机112的出接口更新为所述本地接口包括:删除所述网络侧MAC路由表中所述第一虚拟机112对应的表项,并在所述接入侧MAC路由表中添加所述第一虚拟机112的出接口为第一网关111的接口的表项。
当所述第一网关111仅存储有一个MAC路由表时,所述将第一网关111本地存储的MAC路由表中的第一虚拟机112的出接口更新为所述本地接口包括:将MAC路由表中第一虚拟机112的出接口由网络侧出接口改为第一网关111本地的接口。
以图1为例,迁移前的第一虚拟机112位于第二数据中心120的112'处,并且在112'处通过第二接口123与第二网关121通信。迁移后的第一虚拟机112通过第一接口113与第一网关111通信,故第一网关111将唯一的MAC路由表中第一虚拟机112的出接口由网络侧出接口改为本地接口即第一接口113。
第一网关111在更新完本地MAC路由表后,在本地保存的BGP表添加对应所述第一虚拟机112的表项,所述表项包括第一虚拟机112的MAC地址、所述第一网关111的IP地址以及序列号。所述序列号的初始值是由所述第一虚拟机112第一次接入的网关,例如,第二网关121,根据所述第一虚拟机112的MAC地址和IP地址生成的。然后,所述初始值被所述最早接入的网关发布给其他网关。此后,所述第一虚拟机112每迁移一次,迁移后接入的网关对所述序列号加1。本实施例中,所述第一网关111将所述BGP表中保存的第一虚拟机112的序列号加1得到新序列号,生成包括所述第一虚拟机112的MAC地址以及所述新序列号的位置更新消息,即BGP消息,并将所述BGP消息分别发送给第二网关121和第三网关131,所述BGP消息用于通知第二网关121和第三网关131所述第一虚拟机112的位置信息发生改变。
第二数据中心120的第二网关121接收到该位置更新消息,根据第一虚拟机112的位置更新消息的来源为第一网关,确定第一虚拟机112迁移到第一数据中心110。此时,如果所述位置更新消息携带的第一虚拟机112的序列号等于第二网关121保存的序列号,则确定第一虚拟机112的位置信息存在冲突,则第二网关121直接删除第二网关121保存的第一虚拟机112的MAC路由表项,并且向其他数据中心的网关发送撤销消息,所述撤销消息用于通知其他数据中心的网关第二数据中心120已撤销第一虚拟机112,即第一虚拟机112不再位于第二数据中心120。如果第二网关121判断所述位置更新消息携带的第一虚拟机112的序列号大于第二网关121保存的序列号,则确定第一虚拟机112的位置信息不存在冲突,将第二网关121保存的MAC路由表中的第一虚拟机112对应的表项中的出接口更新为所述第一网关111的接口,以直接更新第一虚拟机112的位置信息,并且向其他数据中心的网关发送撤销消息。
第三数据中心130的第三网关131接收到该位置更新消息,类同于第二网关121,第三网关131根据所述位置更新消息的来源发现第一虚拟机112的出接口发生变化。此时,第三网关131根据位置更新消息中的第一虚拟机112的序列号确定第一虚拟机112的位置信息是否存在冲突,如果存在,则不再更新第三网关131保存的MAC路由表,而是直接删除第三网关131保存的MAC路由表中所述第一虚拟机112对应的表项。如果不存在,则直接更新第三网关131保存的MAC路由表中第一虚拟机112的位置信息。
由于本网络系统中第一虚拟机112的位置信息存在冲突的数据中心网关均删除了各自保存的该第一虚拟机112的MAC路由,所以在第一虚拟机112的位置信息存在冲突的数据中心的用户需要访问第一虚拟机112时,该数据中心的网关会广播ARP请求报文,每个数据中心的网关将该ARP请求报文转发给所在数据中心中注册的所有虚拟机,当第一虚拟机112接收到该ARP请求报文时,发送ARP应答报文,所述用户所在的数据中心的网关接收到该ARP应答报文后,学习到第一虚拟机112当前位于第一数据中心110中,故在所述用户所在的数据中心的网关保存的MAC路由表中添加第一虚拟机112的MAC路由表项,在所述MAC路由表项中,第一虚拟机112的出接口为所述第一网关111的接口,并且所述用户所在的数据中心的网关将第一虚拟机112的MAC路由通过BGP消息发送给其他数据中心的网关,使得其他网关接收到该BGP消息后,均学习到第一虚拟机112在第一数据中心110中,并将第一虚拟机112的MAC路由增加到本地,实现整个网络系统对第一虚拟机的位置信息的同步。
同理,当网络系统中的任意一虚拟机发生跨数据中心时,该虚拟机迁移后所在数据中心的网关执行类似上述第一网关111的步骤,而虚拟机迁移前所在数据中心的网关同理执行类似上述第二网关121的步骤,非虚拟机迁移前、后所在数据中心的网关则同理执行类似上述第三网关131的步骤。
由于本申请采用将虚拟机迁移后存在冲突时将该虚拟机的MAC路由全网删除,故即使虚拟机迁移前、后所在的数据中心的网关均发送序列号相同的所述虚拟机的位置更新信息,网络系统中接收到该位置更新信息的网关均会视为冲突而直接删除本地保存的该虚拟机的MAC路由,直到接收到发往该虚拟机的流量时再学习所述虚拟机的MAC路由,故避免了由于存在该虚拟机的多个不同的位置更新消息而无法判断虚拟机真实位置导致虚拟机的位置信息更新出错的情况。
当然,在其他实施方式中,特别是网关发送的位置更新消息不包括序列号的实施方式中,数据中心的网关在接收到第一虚拟机的位置更新消息后,可不作冲突判断,直接删除该数据中心的网关保存的第一虚拟机的MAC路由。此实施方式较于上面先作冲突判断再删除的实施方式,使得每次数据中心网关接收到虚拟机位置更新消息时均删除该虚拟机的MAC路由,使得虚拟机迁移后至少首次被访问的时候所有接收到虚拟机位置更新消息的网关均需要重新学习所述虚拟机的MAC路由,更能避免虚拟机迁移后位置更新出错的情况。进一步,虚拟机迁移后所在的数据中心网关也可在发送该虚拟机的位置更新消息后,也可将本地保存的该虚拟机的MAC路由删除,使得网络系统所有网关均需要重新学习虚拟机的MAC路由,更能彻底避免虚拟机迁移后位置更新出错的情况。
请参阅图3,图3是本申请数据中心网关间虚拟机位置信息同步的方法一实施方式的流程图。本实施方式以数据中心间的虚拟机的迁移为例。具体,该方法包括:
301:第二数据中心的第二网关接收第一数据中心的第一网关发送的第一位置更新消息,其中,所述第一位置更新消息是由所述第一网关在检测到第一虚拟机跨数据中心迁移到所述第一数据中心时所发送的,用于通知所述第一虚拟机的位置信息发生改变。
本实施方式以第一虚拟机发生跨数据中心迁移为例,当第一虚拟机发生迁移从其他数据中心迁移到第一数据中心时,第一数据中心的第一网关向其他数据中心的网关发生用于通知第一虚拟机的位置信息发生变化的第一位置更新消息,如BGP消息。
可与第一数据中心通讯的第二数据中心的第二网关接收该第一位置更新消息。
302:所述第二网关根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由。
所述第二网关在接收到所述第一网关发送的第一位置更新消息后,根据第一虚拟机的位置更新消息的来源为第一网关而确定第一虚拟机的位置发生变化,故删除所述第二网关保存的第一虚拟机的MAC路由。
进一步,所述第二网关如果发现所述第一虚拟机的位置是从本地侧变成网络侧的,即所述第一虚拟机在迁移前是在所述第二数据中心的,则还可向其他数据中心的网关发送撤销消息以通知所述第二数据中心已撤销所述第一虚拟机。
优化地,所述第一网关发送的第一位置更新消息可以包括所述第一虚拟机的位置信息和代表所述第一虚拟机迁移次数的序列号。所述第二网关删除所述第二网关保存的所述第一虚拟机的MAC路由,具体包括:在接收到所述第一位置更新消息后,判断所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息是否相同,且判断所述第一位置更新消息中的序列号与所述第二网关保存的所述第一虚拟机的序列号是否相同,如果所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号相同,则确定第一虚拟机的位置信息存在冲突,删除所述第二网关中保存的所述第一虚拟机的MAC路由;否则确定所述第一虚拟机的位置信息不存在冲突,所述第二网关将所述第二网关的MAC路由表中的所述第一虚拟机的位置信息更新为位置更新消息中的所述第一虚拟机的位置信息。所述第一虚拟机的位置信息具体可以是所述第一虚拟机连接的数据中心网关的地址信息。
303:当所述第二网关接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,所述第二网关向所述第一虚拟机学习,得到所述第一虚拟机的当前位置信息。
当第二数据中心的用户需要访问所述第一虚拟机时,所述第二网关接收发往所述第一虚拟机的报文,并发现第二网关保存的MAC路由表中不存在第一虚拟机的MAC路由时,则会广播ARP请求报文,每个数据中心的网关将该ARP请求报文转发给所在数据中心中注册的所有虚拟机,当第一虚拟机接收到该ARP请求报文时,发送ARP应答报文,所述第二网关接收到该ARP应答报文后,学习到了所述第一虚拟机当前位于所述第一数据中心上,故在所述第二网关保存的MAC路由表中添加所述第一虚拟机的MAC路由表项,在所述MAC路由表项中,所述第一虚拟机的出接口为所述第一网关的接口,实现对第一虚拟机的变化后位置信息的准确同步。
进一步地,所述第二网关在学习到所述第一虚拟机的当前位置后,还可将所述第一虚拟机的MAC路由通过BGP消息发送给其他数据中心的网关,使得其他网关接收到该BGP消息后,均学习到所述第一虚拟机在所述第一数据中心中,并将所述第一虚拟机的MAC路由增加到本地,实现整个网络系统对第一虚拟机的位置信息的同步。
本实施方式,当数据中心中的虚拟机的位置信息发生变化时,该数据中心的网关发送位置更新消息,以使其他所有数据中心的网关在接收到该位置更新消息时,删除本地保存的该虚拟机的MAC路由,避免了在虚拟机的位置变化过程出现位置信息更新错误的状况,然后,当有流量访问该虚拟机时,其他数据中心的网关再通过向该虚拟机学习,得到所述虚拟机的准确位置信息,实现了数据中心间的虚拟机位置信息的准确同步,从而减少了由于虚拟机位置信息不正确而导致流量中断的可能性。
请参阅图4,图4是本申请数据中心网关间虚拟机位置信息同步的方法另一实施方式的部分流程图。本实施方式依然以数据中心的虚拟机发生迁移为例,在图3所示的基础上,本实施方式还包括:
401:如果所述第二网关检测到第二虚拟机从第三数据中心迁移到所述第二数据中心,则所述第二网关将所述第二网关保存的MAC路由表中的所述第二虚拟机的出接口更新为所述第二网关的接口。
具体,类似于上一实施方式的第一网关,所述第二虚拟机从所述第三数据中心迁移到所述第二数据中心时,所述第二虚拟机向所述第二数据中心的所述第二网关发送注册消息。所述第二网关在接收到所述第二虚拟机的注册消息时,检测到所述第二虚拟机的出接口由网络侧接口变成本地接口,则将所述第二网关存储的MAC路由表中的所述第二虚拟机的出接口更新为所述第二网关的接口。
当所述第二网关存储有网络侧MAC路由表和接入侧MAC路由表时,所述将第二网关存储的MAC路由表中的所述第二虚拟机的出接口更新为所述第二网关的接口包括:删除所述第二网关保存的网络侧MAC路由表中所述第二虚拟机对应的表项,并在所述第二网关保存的接入侧MAC路由表中添加所述第二虚拟机的出接口为所述第二网关的接口的表项。
当所述第二网关仅存储有一个MAC路由表时,所述将第二网关存储的MAC路由表中的第二虚拟机的出接口更新为所述第二网关的接口包括:将所述第二网关保存的MAC路由表中所述第二虚拟机的出接口由网络侧出接口改为所述第二网关的接口。
402:所述第二网关更新所述第二网关保存的所述第二虚拟机的序列号。
例如,所述第二网关在更新完本地MAC路由表后,在所述第二网关本地保存的BGP表中更新对应所述第二虚拟机的表项,所述表项包括所述第二虚拟机的MAC地址、所述第二网关的IP地址以及序列号。所述表项中包括的更新前的序列号是由所述第二虚拟机迁移前接入的数据中心网关发布的。此后,第二网关将所述BGP表中保存的更新前的第二虚拟机的序列号加1得到新序列号。
403:所述第二网关向除所述第二数据中心之外的其他数据中心的网关发送包括所述第二虚拟机的序列号的第二位置更新消息,以使除所述第二数据中心之外的其他数据中心的网关在接收到所述第二位置更新消息后,得知所述第二虚拟机的位置信息发生改变,并在确定所述第二虚拟机的位置信息存在冲突时,删除所述其他数据中心的网关保存的所述第二虚拟机的MAC路由。
所述第二网关生成包括第二虚拟机的MAC地址以及新序列号的第二位置更新消息,即BGP消息,并将所述BGP消息分别发送给其他数据中心的网关。所述其他数据中心的网关收到所述第二位置更新消息后,如果由第二位置更新消息得到的第二虚拟机的位置信息与该网关保存的MAC路由中的第二虚拟机的位置信息不同,且所述第二位置更新消息的序列号与该网关保存的所述第二虚拟机的序列号相同,则所述其他数据中心的网关确定所述第二虚拟机的位置信息存在冲突,并删除该网关保存的所述第二虚拟机的MAC路由表项。如果根据第二位置更新消息得到的所述第二虚拟机的位置信息与该网关保存的MAC路由中的第二虚拟机的位置信息不同,但所述第二位置更新消息中的序列号与该网关保存的所述第二虚拟机的序列号不相同,则所述其他数据中心的网关确定所述第二虚拟机的位置信息不存在冲突,该网关将本地MAC路由表中的所述第二虚拟机对应的MAC表项中的出接口更新为所述第二网关的接口,以直接更新第二虚拟机的位置信息。
可选地,在发送所述第二位置更新消后,所述第二网关可将所述第二网关保存的所述第二虚拟机的MAC路由表项删除。当然,在其他实施方式中,所述第二网关也可不删除所述第二网关保存的所述第二虚拟机的MAC路由表项,仅让其他数据中心的网关在接收到第二位置更新消息后删除其他数据中心的网关保存的所述第二虚拟机的MAC路由表项。
请参阅图5,图5是本申请网关一实施方式的结构示意图。本申请中,为便于说明,将该网关具体命名为第二数据中心的第二网关,其中,本申请所述的网关一般为overlay技术下的虚拟可扩展局域网(英文:virtual Extensible LAN,简称:VxLAN)网关,具体可设置为运营商边缘设备(英文:Provider Edge,简称:PE)。具体该网关包括接收模块510、删除模块520和学习模块530。
接收模块510用于接收第一数据中心的第一网关发送的第一位置更新消息,其中,所述第一位置更新消息是由所述第一网关在检测到第一虚拟机跨数据中心迁移到所述第一数据中心时所发送的,用于通知所述第一虚拟机的位置信息发生改变。
删除模块520用于在接收模块510接收到所述第一位置更新消息时,根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由。
其中,所述第一位置更新消息包括第一虚拟机的位置信息和代表所述第一虚拟机迁移次数的序列号。删除模块520可具体用于:判断所述第一虚拟机的位置信息与第二网关保存的MAC路由中的第一虚拟机的位置信息是否相同,且所述第一位置更新消息的序列号与第二网关保存的所述第一虚拟机的序列号是否相同,在所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号相同时,确定第一虚拟机的位置信息存在冲突,删除所述第二网关中保存的所述第一虚拟机的MAC路由;在所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号不相同时,确定第一虚拟机的位置信息不存在冲突,并将第二网关保存的MAC路由中的所述第一虚拟机的位置信息更新为所述位置更新消息中的第一虚拟机的位置信息。
学习模块530用于当接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,向所述第一虚拟机学习,得到所述第一虚拟机的当前位置信息。
请参阅图6,图6是本申请网关另一实施方式的结构示意图。在图5所示实施例的基础上,本实施方式中的网关还包括更新模块540和发送模块550,更新模块540包括第一更新单元541和第二更新单元542。
更新模块540用于在检测到第二虚拟机从第三数据中心迁移到所在的第二数据中心时,更新所述第二网关保存的所述第二虚拟机的序列号。
具体,更新模块540的第一更新单元541用于将所述第二网关保存的MAC路由表中的所述第二虚拟机的出接口更新为所述第二网关的接口。
第一更新单元541还可具体用于:当所述第二网关存储有网络侧MAC路由表和接入侧MAC路由表时,删除所述网络侧MAC路由表中所述第二虚拟机对应的表项,并在所述接入侧MAC路由表中添加所述第二虚拟机的出接口为所述第二网关的接口的表项;或当所述第二网关仅存储有一个MAC路由表时,将所述MAC路由表中所述第二虚拟机的出接口由网络侧出接口改为所述第二网关的接口。
更新模块540的第二更新单元542用于更新所述第二网关保存的所述第二虚拟机的BGP表项,所述第二虚拟机的BGP表项包括所述第二虚拟机的序列号。
发送模块550用于在更新模块540更新完成所述第二虚拟机的序列号后,向除所述第二数据中心之外的其他数据中心的网关发送包括所述第二虚拟机的序列号的第二位置更新消息,以使除所述第二数据中心之外的其他数据中心的网关在接收到所述第二位置更新消息后,得知所述第二虚拟机的位置信息发生改变,并在确定所述第二虚拟机的位置信息存在冲突时,删除所述其他数据中心的网关保存的所述第二虚拟机的MAC路由。
在其他实施方式中,删除模块还可用于在发送模块发送完成所述第二位置更新消息后,删除第二网关保存的第二虚拟机的MAC路由。
请参阅图7,图7是本申请网关再一实施方式的结构示意图。本实施方式的网关700可以为第二数据中心的第二网关,包括接收器710、处理器720、发送器730、存储器740以及总线750。
接收器710用于接收第一数据中心的第一网关发送的第一位置更新消息,其中,所述第一位置更新消息是由所述第一网关在检测到第一虚拟机跨数据中心迁移到所述第一数据中心时所发送的,用于通知所述第一虚拟机的位置信息发生改变。
处理器720用于在接收器710接收到所述第一位置更新消息时,根据所述第一位置更新消息删除所述第二网关700的存储器740保存的所述第一虚拟机的MAC路由,并当接收到发往所述第一虚拟机的报文,且所述第二网关的存储器740没有保存所述第一虚拟机的MAC路由时,通过发送器730向所述第一虚拟机学习,并通过接收器710接收得到所述第一虚拟机的当前位置信息。其中,发送器730用于当接收到发往所述第一虚拟机的报文,且所述第二网关的存储器740没有保存所述第一虚拟机的MAC路由时,向其他数据中心的网关发送请求第一虚拟机应答的ARP请求报文。接收器710还用于获得所述第一虚拟机的ARP应答报文,进而得到所述第一虚拟机的当前位置信息。
可选地,所述第一位置更新消息包括第一虚拟机的位置信息和代表所述第一虚拟机迁移次数的序列号。处理器720执行根据所述第一位置更新消息所述删除所述第二网关700的存储器740保存的所述第一虚拟机的MAC路由的步骤具体为:判断所述第一虚拟机的位置信息与第二网关700的存储器740保存的MAC路由中的第一虚拟机的位置信息是否相同,且所述第一位置更新消息的序列号与第二网关700的存储器740保存的所述第一虚拟机的序列号是否相同,在所述第一虚拟机的位置信息与所述第二网关700的存储器740保存的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关700的存储器740保存的所述第一虚拟机的序列号相同时,确定第一虚拟机的位置信息存在冲突,删除所述第二网关700的存储器740保存的所述第一虚拟机的MAC路由;在所述第一虚拟机的位置信息与所述第二网关700的存储器740的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关700的存储器740保存的所述第一虚拟机的序列号不相同时,确定第一虚拟机的位置信息不存在冲突,并将第二网关700的存储器740保存的MAC路由中的所述第一虚拟机的位置信息更新为位置更新消息中的第一虚拟机的位置信息。
可选地,处理器720还用于在检测到第二虚拟机从第三数据中心迁移到所在的第二数据中心时,更新所述第二网关700的存储器740保存的所述第二虚拟机的序列号,并通过发送器730向除所述第二数据中心之外的其他数据中心的网关发送包括所述第二虚拟机的序列号的第二位置更新消息,以使除所述第二数据中心之外的其他数据中心的网关在接收到所述第二位置更新消息后,得知所述第二虚拟机的位置信息发生改变,并在确定所述第二虚拟机的位置信息存在冲突时,删除所述其他数据中心网关保存的所述第二虚拟机的MAC路由。
可选地,处理器720执行所述更新所述第二网关保存的所述第二虚拟机的序列号的步骤具体为:将所述第二网关700的存储器740保存的MAC路由表中的第二虚拟机的出接口更新为所述第二网关的接口;更新所述第二网关700的存储器740保存的所述第二虚拟机的BGP表项,所述第二虚拟机的BGP表项包括所述第二虚拟机的序列号。
可选地,处理器720执行所述将所述第二网关700的存储器740保存的MAC路由表中的第二虚拟机的出接口更新为所述第二网关的接口的步骤具体为:当所述第二网关700的存储器740存储有网络侧MAC路由表和接入侧MAC路由表时,删除所述网络侧MAC路由表中所述第二虚拟机对应的表项,并在所述接入侧MAC路由表中添加所述第二虚拟机的出接口为所述第二网关的接口的表项;当所述第二网关700的存储器740仅存储有一个MAC路由表时,将所述MAC路由表中第二虚拟机的出接口由网络侧出接口改为所述第二网关的接口。
存储器740可以包括只读存储器和随机存取存储器,并向处理器720提供指令和数据。存储器740的一部分还可以包括非易失性随机存取存储器(英文:non-volatilerandom-access memory,简称:NVRAM)。
存储器740存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器720通过调用存储器740存储的操作指令(该操作指令可存储在操作系统中),来执行上述操作。
具体的应用中,所述网关的各个组件通过总线750耦合在一起,其中总线750除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线750。
处理器720可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器720中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器720可以是中央处理单元(英文:central processing unit,简称:CPU)、通用处理器、数字信号处理器(英文:digital signal processor,简称:DSP)、专用集成电路(英文:application-specific integrated circuit,简称:ASIC)、现成可编程门阵列(英文:field-programmable gate array,简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器740,处理器720读取存储器740中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,图5-7所示的网关在上面的实施方式中均定义为第二数据中心的第二网关,这仅是为了能够更清楚进行说明,实际上,本申请所保护的网关应为网络系统中的任意数据中心的网关。
本申请还提供一种数据中心组成的网络系统的实施方式,该网络系统包括多个数据中心,每个数据中心包括至少一个网关和虚拟机,所述数据中心的虚拟机通过所在数据中心的网关与其他数据中心通信,所述网关为上面实施方式所述的网关。
上述方案中,当数据中心中的虚拟机的位置信息发生变化时,该数据中心的网关发送位置更新消息,以使其他所有数据中心的网关在接收到该位置更新消息时,删除该网关本地保存的该虚拟机的MAC路由,避免了在虚拟机的位置变化过程出现位置信息更新错误的状况,然后,当有流量访问该虚拟机时,其他数据中心的网关再通过向该虚拟机学习,得到所述虚拟机的准确位置信息,实现了数据中心间的虚拟机位置信息的准确同步,从而减少了由于虚拟机位置信息不正确而导致流量中断的可能性。而且,本申请方案可支持原来数据中心的通讯协议,无需更改原来的协议字段,且无需更改硬件结构。
在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:read-only memory,简称:ROM)、随机存取存储器(英文:random-access memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (14)
1.一种数据中心网关间虚拟机位置信息同步的方法,其特征在于,包括:
第二数据中心的第二网关接收第一数据中心的第一网关发送的第一位置更新消息,其中,所述第一位置更新消息是由所述第一网关在检测到第一虚拟机跨数据中心迁移到所述第一数据中心时所发送的,用于通知所述第一虚拟机的位置信息发生改变;
所述第二网关根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由;
当所述第二网关接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,所述第二网关通过广播地址解析协议ARP请求报文向所述第一虚拟机学习,得到所述第一虚拟机的当前位置信息。
2.根据权利要求1所述的方法,其特征在于,所述第一位置更新消息包括所述第一虚拟机的位置信息和代表所述第一虚拟机迁移次数的序列号;
所述第二网关根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由,具体包括:
如果所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号相同,则确定第一虚拟机的位置信息存在冲突,删除所述第二网关中保存的所述第一虚拟机的MAC路由。
3.根据权利要求2所述的方法,其特征在于,还包括:
如果所述第二网关检测到第二虚拟机从第三数据中心迁移到所述第二数据中心,则更新所述第二网关保存的所述第二虚拟机的序列号;
所述第二网关向除所述第二数据中心之外的其他数据中心的网关发送包括所述第二虚拟机的序列号的第二位置更新消息,以使除所述第二数据中心之外的其他数据中心的网关在接收到所述第二位置更新消息后,得知所述第二虚拟机的位置信息发生改变,并在确定所述第二虚拟机的位置信息存在冲突时,删除所述其他数据中心的网关保存的所述第二虚拟机的MAC路由。
4.根据权利要求3所述的方法,其特征在于,所述如果所述第二网关检测到第二虚拟机从第三数据中心迁移到所述第二数据中心之后,还包括:
所述第二网关将所述第二网关保存的MAC路由表中的所述第二虚拟机的出接口更新为所述第二网关的接口;
所述更新所述第二网关保存的所述第二虚拟机的序列号具体包括:
所述第二网关更新所述第二网关保存的所述第二虚拟机的BGP表项,所述第二虚拟机的BGP表项包括所述第二虚拟机的序列号。
5.根据权利要求4所述的方法,其特征在于,所述第二网关将所述第二网关保存的MAC路由表中的第二虚拟机的出接口更新为所述第二网关的接口,具体包括:
当所述第二网关存储有网络侧MAC路由表和接入侧MAC路由表时,所述第二网关删除所述网络侧MAC路由表中所述第二虚拟机对应的表项,并在所述接入侧MAC路由表中添加所述第二虚拟机的出接口为所述第二网关的接口的表项;或
当所述第二网关仅存储有一个MAC路由表时,所述第二网关将所述MAC路由表中所述第二虚拟机的出接口由网络侧出接口改为所述第二网关的接口。
6.一种网关,其特征在于,所述网关具体为第二数据中心的第二网关,包括接收模块、删除模块和学习模块;
所述接收模块用于接收第一数据中心的第一网关发送的第一位置更新消息,其中,所述第一位置更新消息是由所述第一网关在检测到第一虚拟机跨数据中心迁移到所述第一数据中心时所发送的,用于通知所述第一虚拟机的位置信息发生改变;
所述删除模块用于在所述接收模块接收到所述第一位置更新消息时,根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由;
所述学习模块用于当接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,通过广播地址解析协议ARP请求报文向所述第一虚拟机学习,得到所述第一虚拟机的当前位置信息。
7.根据权利要求6所述的网关,其特征在于,所述第一位置更新消息包括第一虚拟机的位置信息和代表所述第一虚拟机迁移次数的序列号;
所述删除模块具体用于在所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号相同时,确定第一虚拟机的位置信息存在冲突,删除所述第二网关中保存的所述第一虚拟机的MAC路由。
8.根据权利要求7所述的网关,其特征在于,还包括更新模块和发送模块;
所述更新模块用于在检测到第二虚拟机从第三数据中心迁移到所述第二数据中心时,更新所述第二网关保存的所述第二虚拟机的序列号;
所述发送模块用于在所述更新模块更新完成所述第二虚拟机的序列号后,向除所述第二数据中心之外的其他数据中心的网关发送包括所述第二虚拟机的序列号的第二位置更新消息,以使除所述第二数据中心之外的其他数据中心的网关在接收到所述第二位置更新消息后,得知所述第二虚拟机的位置信息发生改变,并在确定所述第二虚拟机的位置信息存在冲突时,删除所述其他数据中心的网关保存的所述第二虚拟机的MAC路由。
9.根据权利要求8所述的网关,其特征在于,所述更新模块包括第一更新单元和第二更新单元;
所述第一更新单元用于将所述第二网关保存的MAC路由表中的所述第二虚拟机的出接口更新为所述第二网关的接口;
所述第二更新单元用于更新所述第二网关保存的所述第二虚拟机的BGP表项,所述第二虚拟机的BGP表项包括所述第二虚拟机的序列号。
10.根据权利要求9所述的网关,其特征在于,所述第一更新单元具体用于:
当所述第二网关存储有网络侧MAC路由表和接入侧MAC路由表时,删除所述网络侧MAC路由表中所述第二虚拟机对应的表项,并在所述接入侧MAC路由表中添加所述第二虚拟机的出接口为所述第二网关的接口的表项;或
当所述第二网关仅存储有一个MAC路由表时,将所述MAC路由表中所述第二虚拟机的出接口由网络侧出接口改为所述第二网关的接口。
11.一种数据中心组成的网络系统,其特征在于,包括第一数据中心和第二数据中心,所述第一数据中心包括第一网关和至少一个虚拟机,所述第二数据中心包括第二网关和至少一个虚拟机;
所述第一网关用于在检测到第一虚拟机跨数据中心迁移到所述第一数据中心时,向所述网络系统中的其他数据中心的网关发送用于通知所述第一虚拟机的位置信息发生改变的第一位置更新消息;
所述第二网关用于接收所述第一网关发送的第一位置更新消息;根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由;当接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,通过广播地址解析协议ARP请求报文向所述第一虚拟机学习,得到所述第一虚拟机的当前位置信息。
12.根据权利要求11所述的网络系统,其特征在于,
所述第一网关具体用于在检测到第一虚拟机跨数据中心迁移到所述第一数据中心时,更新所述第一网关保存的所述第一虚拟机的序列号,并向除所述第一数据中心外的其他数据中心的网关发送第一位置更新消息,所述第一位置更新消息包括第一虚拟机的位置信息和代表所述第一虚拟机迁移次数的序列号;
所述第二网关执行所述删除所述第二网关保存的所述第一虚拟机的MAC路由,具体包括:在所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号相同时,确定第一虚拟机的位置信息存在冲突,删除所述第二网关中保存的所述第一虚拟机的MAC路由。
13.根据权利要求12所述的系统,其特征在于,所述第一网关执行所述更新所述第一网关保存的所述第一虚拟机的序列号具体包括:将所述第一网关保存的MAC路由表中的所述第一虚拟机的出接口更新为所述第一网关的接口;更新所述第一网关保存的所述第一虚拟机的BGP表项,所述第一虚拟机的BGP表项包括所述第一虚拟机的序列号。
14.根据权利要求13所述的系统,其特征在于,所述第一网关执行所述将所述第一网关保存的MAC路由表中的第一虚拟机的出接口更新为所述第一网关的接口具体包括:当所述第一网关存储有网络侧MAC路由表和接入侧MAC路由表时,删除所述网络侧MAC路由表中所述第一虚拟机对应的表项,并在所述接入侧MAC路由表中添加所述第一虚拟机的出接口为所述第二网关的接口的表项;或当所述第一网关仅存储有一个MAC路由表时,将所述MAC路由表中所述第一虚拟机的出接口由网络侧出接口改为所述第一网关的接口。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410693597.2A CN105704045B (zh) | 2014-11-26 | 2014-11-26 | 数据中心网关间虚拟机位置信息同步的方法、网关及系统 |
EP15863873.4A EP3214816B1 (en) | 2014-11-26 | 2015-06-18 | Method, gateway and system for synchronizing virtual machine location information between data center gateways |
PCT/CN2015/081801 WO2016082528A1 (zh) | 2014-11-26 | 2015-06-18 | 数据中心网关间虚拟机位置信息同步的方法、网关及系统 |
US15/606,859 US10361992B2 (en) | 2014-11-26 | 2017-05-26 | Method for synchronizing virtual machine location information between data center gateways, gateway, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410693597.2A CN105704045B (zh) | 2014-11-26 | 2014-11-26 | 数据中心网关间虚拟机位置信息同步的方法、网关及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105704045A CN105704045A (zh) | 2016-06-22 |
CN105704045B true CN105704045B (zh) | 2019-05-28 |
Family
ID=56073519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410693597.2A Active CN105704045B (zh) | 2014-11-26 | 2014-11-26 | 数据中心网关间虚拟机位置信息同步的方法、网关及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10361992B2 (zh) |
EP (1) | EP3214816B1 (zh) |
CN (1) | CN105704045B (zh) |
WO (1) | WO2016082528A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108322393B (zh) * | 2017-01-18 | 2021-03-16 | 阿里巴巴集团控股有限公司 | 路由链路管理方法和系统、虚拟路由网关和宿主机网关 |
CN107547349B (zh) * | 2017-07-31 | 2021-02-05 | 新华三技术有限公司 | 一种虚拟机迁移的方法及装置 |
CN108092810A (zh) * | 2017-12-13 | 2018-05-29 | 锐捷网络股份有限公司 | 一种虚拟机管理方法、vtep设备及管理设备 |
CN108418740B (zh) * | 2018-02-28 | 2020-09-08 | 新华三技术有限公司 | 报文处理方法及装置 |
GB201819616D0 (en) * | 2018-11-30 | 2019-01-16 | Graphcore Ltd | Virtualised gateways |
CN110011859B (zh) * | 2019-04-15 | 2022-04-29 | 深信服科技股份有限公司 | 一种虚拟机控制方法及集群系统 |
US11288147B2 (en) * | 2019-11-22 | 2022-03-29 | Visa International Service Association | Method, system, and computer program product for maintaining data centers |
WO2022172063A1 (ja) * | 2021-02-12 | 2022-08-18 | ラクテン・シンフォニー・シンガポール・プライベート・リミテッド | ネットワークサービス管理装置およびネットワークサービス管理方法 |
US20230132016A1 (en) * | 2021-10-21 | 2023-04-27 | Arista Networks, Inc. | Host routing with virtual machine mobility |
CN115208813B (zh) * | 2022-09-14 | 2022-11-25 | 腾讯科技(深圳)有限公司 | 一种边界网关协议的迁移方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631652A (zh) * | 2012-08-28 | 2014-03-12 | 中兴通讯股份有限公司 | 虚拟机迁移的实现方法及系统 |
CN103916320A (zh) * | 2012-12-28 | 2014-07-09 | 中国移动通信集团公司 | 一种vm设备跨网迁移后的报文处理方法及装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070165537A1 (en) * | 2003-12-17 | 2007-07-19 | Telefonaktiebolaget Lm Ericsson | System and method for radio resource management in a communication system |
US8532116B2 (en) * | 2009-07-21 | 2013-09-10 | Cisco Technology, Inc. | Extended subnets |
US8606890B2 (en) * | 2009-11-20 | 2013-12-10 | International Business Machines Corporation | Managing communication between nodes in a virtual network |
CN102457583B (zh) * | 2010-10-19 | 2014-09-10 | 中兴通讯股份有限公司 | 一种虚拟机移动性的实现方法及系统 |
US8929377B2 (en) * | 2011-03-15 | 2015-01-06 | Futurewei Technologies, Inc. | Systems and methods for automatic rack detection |
US9104460B2 (en) * | 2011-05-31 | 2015-08-11 | Red Hat, Inc. | Inter-cloud live migration of virtualization systems |
US9154416B2 (en) * | 2012-03-22 | 2015-10-06 | Brocade Communications Systems, Inc. | Overlay tunnel in a fabric switch |
CN103379185B (zh) | 2012-04-26 | 2016-08-03 | 华为技术有限公司 | 一种网络地址转换的方法、设备和系统 |
CN103428252B (zh) * | 2012-05-25 | 2017-10-10 | 华为技术有限公司 | 一种云计算虚拟机迁移的方法、设备及系统 |
CN102884763B (zh) * | 2012-06-30 | 2015-05-13 | 华为技术有限公司 | 跨数据中心的虚拟机迁移方法、服务控制网关及系统 |
CN102801715B (zh) * | 2012-07-30 | 2015-03-11 | 华为技术有限公司 | 一种网络中虚拟机迁移的方法、网关及系统 |
US9258266B2 (en) * | 2012-08-30 | 2016-02-09 | Cisco Technology, Inc. | Host detection by top of rack switch devices in data center environments |
US9794107B2 (en) * | 2013-02-06 | 2017-10-17 | Alcatel Lucent | Method and apparatus for providing migration of cloud components across address domains |
US9513970B2 (en) * | 2013-03-01 | 2016-12-06 | Cisco Technology, Inc. | Optimizing handling of virtual machine mobility in data center environments |
US10097372B2 (en) * | 2014-01-09 | 2018-10-09 | Ciena Corporation | Method for resource optimized network virtualization overlay transport in virtualized data center environments |
US9590824B1 (en) * | 2014-08-05 | 2017-03-07 | Cisco Technology, Inc. | Signaling host move in dynamic fabric automation using multiprotocol BGP |
-
2014
- 2014-11-26 CN CN201410693597.2A patent/CN105704045B/zh active Active
-
2015
- 2015-06-18 WO PCT/CN2015/081801 patent/WO2016082528A1/zh active Application Filing
- 2015-06-18 EP EP15863873.4A patent/EP3214816B1/en active Active
-
2017
- 2017-05-26 US US15/606,859 patent/US10361992B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631652A (zh) * | 2012-08-28 | 2014-03-12 | 中兴通讯股份有限公司 | 虚拟机迁移的实现方法及系统 |
CN103916320A (zh) * | 2012-12-28 | 2014-07-09 | 中国移动通信集团公司 | 一种vm设备跨网迁移后的报文处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3214816A1 (en) | 2017-09-06 |
WO2016082528A1 (zh) | 2016-06-02 |
US20170264587A1 (en) | 2017-09-14 |
CN105704045A (zh) | 2016-06-22 |
EP3214816A4 (en) | 2017-11-15 |
EP3214816B1 (en) | 2019-02-27 |
US10361992B2 (en) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105704045B (zh) | 数据中心网关间虚拟机位置信息同步的方法、网关及系统 | |
EP3691205B1 (en) | Traffic forwarding method and traffic forwarding apparatus | |
CN109842694B (zh) | 一种同步mac地址的方法、网络设备和计算机可读存储介质 | |
US10644991B2 (en) | Cluster communictaion | |
JP7190569B2 (ja) | データセンターのトラフィック共有方法、装置、デバイスおよび記憶媒体 | |
CN107682275B (zh) | 报文监控方法及装置 | |
CN107113892A (zh) | 一种网关设备自动组网的方法及装置 | |
CN102484611B (zh) | 链路状态标识符冲突处理 | |
CN109547350B (zh) | 一种路由学习方法及网关设备 | |
CN108777663B (zh) | 一种路由信息的同步方法及装置 | |
US9553764B2 (en) | Migration of guest bridge | |
CN107547665A (zh) | 一种dhcp地址分配的方法、设备及系统 | |
CN103825826A (zh) | 一种动态路由的实现方法和装置 | |
CN110581805A (zh) | 路由表更新方法、装置、交换机及存储介质 | |
CN110708275B (zh) | 一种协议报文的处理方法和装置 | |
CN105765935A (zh) | 在无线通信网络中加虚拟防火墙的方法和装置 | |
WO2020181733A1 (zh) | 一种基于vpc的多数据中心互通方法及相关设备 | |
CN109218182B (zh) | 一种路由信息的同步方法及装置 | |
CN106230717A (zh) | 集群系统中的路由获取方法及装置 | |
CN103596649B (zh) | 一种在虚拟局域网中通信的方法、设备和系统 | |
US11063886B2 (en) | System and method for directing data packets by a virtual switch over a unidirectional medium | |
CN106059810B (zh) | 一种消息通知方法及系统 | |
CN109587061A (zh) | 一种路由处理的方法、装置及设备 | |
CN115665026A (zh) | 一种集群组网的方法和装置 | |
CN101425928B (zh) | 维护实体组层次的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |