数据中心网关间虚拟机位置信息同步的方法、网关及系统的制作方法_3

文档序号:9923781阅读:来源:国知局
要重新学习所述虚拟机的MAC路由,更能避免虚拟机迀移后位置更新出错的情况。进一步,虚拟机迀移后所在的数据中心网关也可在发送该虚拟机的位置更新消息后,也可将本地保存的该虚拟机的MAC路由删除,使得网络系统所有网关均需要重新学习虚拟机的MAC路由,更能彻底避免虚拟机迀移后位置更新出错的情况。
[0046]请参阅图3,图3是本申请数据中心网关间虚拟机位置信息同步的方法一实施方式的流程图。本实施方式以数据中心间的虚拟机的迀移为例。具体,该方法包括:
[0047]301:第二数据中心的第二网关接收第一数据中心的第一网关发送的第一位置更新消息,其中,所述第一位置更新消息是由所述第一网关在检测到第一虚拟机跨数据中心迀移到所述第一数据中心时所发送的,用于通知所述第一虚拟机的位置信息发生改变。
[0048]本实施方式以第一虚拟机发生跨数据中心迀移为例,当第一虚拟机发生迀移从其他数据中心迀移到第一数据中心时,第一数据中心的第一网关向其他数据中心的网关发生用于通知第一虚拟机的位置信息发生变化的第一位置更新消息,如BGP消息。
[0049]可与第一数据中心通讯的第二数据中心的第二网关接收该第一位置更新消息。
[0050]302:所述第二网关根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由。
[0051]所述第二网关在接收到所述第一网关发送的第一位置更新消息后,根据第一虚拟机的位置更新消息的来源为第一网关而确定第一虚拟机的位置发生变化,故删除所述第二网关保存的第一虚拟机的MAC路由。
[0052]进一步,所述第二网关如果发现所述第一虚拟机的位置是从本地侧变成网络侧的,即所述第一虚拟机在迀移前是在所述第二数据中心的,则还可向其他数据中心的网关发送撤销消息以通知所述第二数据中心已撤销所述第一虚拟机。
[0053]优化地,所述第一网关发送的第一位置更新消息可以包括所述第一虚拟机的位置信息和代表所述第一虚拟机迀移次数的序列号。所述第二网关删除所述第二网关保存的所述第一虚拟机的MAC路由,具体包括:在接收到所述第一位置更新消息后,判断所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息是否相同,且判断所述第一位置更新消息中的序列号与所述第二网关保存的所述第一虚拟机的序列号是否相同,如果所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号相同,则确定第一虚拟机的位置信息存在冲突,删除所述第二网关中保存的所述第一虚拟机的MAC路由;否则确定所述第一虚拟机的位置信息不存在冲突,所述第二网关将所述第二网关的MAC路由表中的所述第一虚拟机的位置信息更新为位置更新消息中的所述第一虚拟机的位置信息。所述第一虚拟机的位置信息具体可以是所述第一虚拟机连接的数据中心网关的地址信息。
[0054]303:当所述第二网关接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,所述第二网关向所述第一虚拟机学习,得到所述第一虚拟机的当前位置信息。
[0055]当第二数据中心的用户需要访问所述第一虚拟机时,所述第二网关接收发往所述第一虚拟机的报文,并发现第二网关保存的MAC路由表中不存在第一虚拟机的MAC路由时,则会广播ARP请求报文,每个数据中心的网关将该ARP请求报文转发给所在数据中心中注册的所有虚拟机,当第一虚拟机接收到该ARP请求报文时,发送ARP应答报文,所述第二网关接收到该ARP应答报文后,学习到了所述第一虚拟机当前位于所述第一数据中心上,故在所述第二网关保存的MAC路由表中添加所述第一虚拟机的MAC路由表项,在所述MAC路由表项中,所述第一虚拟机的出接口为所述第一网关的接口,实现对第一虚拟机的变化后位置信息的准确同步。
[0056]进一步地,所述第二网关在学习到所述第一虚拟机的当前位置后,还可将所述第一虚拟机的MAC路由通过BGP消息发送给其他数据中心的网关,使得其他网关接收到该BGP消息后,均学习到所述第一虚拟机在所述第一数据中心中,并将所述第一虚拟机的MAC路由增加到本地,实现整个网络系统对第一虚拟机的位置信息的同步。
[0057]本实施方式,当数据中心中的虚拟机的位置信息发生变化时,该数据中心的网关发送位置更新消息,以使其他所有数据中心的网关在接收到该位置更新消息时,删除本地保存的该虚拟机的MAC路由,避免了在虚拟机的位置变化过程出现位置信息更新错误的状况,然后,当有流量访问该虚拟机时,其他数据中心的网关再通过向该虚拟机学习,得到所述虚拟机的准确位置信息,实现了数据中心间的虚拟机位置信息的准确同步,从而减少了由于虚拟机位置信息不正确而导致流量中断的可能性。
[0058]请参阅图4,图4是本申请数据中心网关间虚拟机位置信息同步的方法另一实施方式的部分流程图。本实施方式依然以数据中心的虚拟机发生迀移为例,在图3所示的基础上,本实施方式还包括:
[0059]401:如果所述第二网关检测到第二虚拟机从第三数据中心迀移到所述第二数据中心,则所述第二网关将所述第二网关保存的MAC路由表中的所述第二虚拟机的出接口更新为所述第二网关的接口。
[0060]具体,类似于上一实施方式的第一网关,所述第二虚拟机从所述第三数据中心迀移到所述第二数据中心时,所述第二虚拟机向所述第二数据中心的所述第二网关发送注册消息。所述第二网关在接收到所述第二虚拟机的注册消息时,检测到所述第二虚拟机的出接口由网络侧接口变成本地接口,则将所述第二网关存储的MAC路由表中的所述第二虚拟机的出接口更新为所述第二网关的接口。
[0061]当所述第二网关存储有网络侧MAC路由表和接入侧MAC路由表时,所述将第二网关存储的MAC路由表中的所述第二虚拟机的出接口更新为所述第二网关的接口包括:删除所述第二网关保存的网络侧MAC路由表中所述第二虚拟机对应的表项,并在所述第二网关保存的接入侧MAC路由表中添加所述第二虚拟机的出接口为所述第二网关的接口的表项。
[0062]当所述第二网关仅存储有一个MAC路由表时,所述将第二网关存储的MAC路由表中的第二虚拟机的出接口更新为所述第二网关的接口包括:将所述第二网关保存的MAC路由表中所述第二虚拟机的出接口由网络侧出接口改为所述第二网关的接口。
[0063]402:所述第二网关更新所述第二网关保存的所述第二虚拟机的序列号。
[0064]例如,所述第二网关在更新完本地MAC路由表后,在所述第二网关本地保存的BGP表中更新对应所述第二虚拟机的表项,所述表项包括所述第二虚拟机的MAC地址、所述第二网关的IP地址以及序列号。所述表项中包括的更新前的序列号是由所述第二虚拟机迀移前接入的数据中心网关发布的。此后,第二网关将所述BGP表中保存的更新前的第二虚拟机的序列号加I得到新序列号。
[0065]403:所述第二网关向除所述第二数据中心之外的其他数据中心的网关发送包括所述第二虚拟机的序列号的第二位置更新消息,以使除所述第二数据中心之外的其他数据中心的网关在接收到所述第二位置更新消息后,得知所述第二虚拟机的位置信息发生改变,并在确定所述第二虚拟机的位置信息存在冲突时,删除所述其他数据中心的网关保存的所述第二虚拟机的MAC路由。
[0066]所述第二网关生成包括第二虚拟机的MAC地址以及新序列号的第二位置更新消息,即BGP消息,并将所述BGP消息分别发送给其他数据中心的网关。所述其他数据中心的网关收到所述第二位置更新消息后,如果由第二位置更新消息得到的第二虚拟机的位置信息与该网关保存的MAC路由中的第二虚拟机的位置信息不同,且所述第二位置更新消息的序列号与该网关保存的所述第二虚拟机的序列号相同,则所述其他数据中心的网关确定所述第二虚拟机的位置信息存在冲突,并删除该网关保存的所述第二虚拟机的MAC路由表项。如果根据第二位置更新消息得到的所述第二虚拟机的位置信息与该网关保存的MAC路由中的第二虚拟机的位置信息不同,但所述第二位置更新消息中的序列号与该网关保存的所述第二虚拟机的序列号不相同,则所述其他数据中心的网关确定所述第二虚拟机的位置信息不存在冲突,该网关将本地MAC路由表中的所述第二虚拟机对应的MAC表项中的出接口更新为所述第二网关的接口,以直接更新第二虚拟机的位置信息。
[0067]可选地,在发送所述第二位置更新消后,所述第二网关可将所述第二网关保存的所述第二虚拟机的MAC路由表项删除。当然,在其他实施方式中,所述第二网关也可不删除所述第二网关保存的所述第二虚拟机的MAC路由表项,仅让其他数据中心的网关在接收到第二位置更新消息后删除其他数据中心的网关保存的所述第二虚拟机的MAC路由表项。
[0068]请参阅图5,图5是本申请网关一实施方式的结构示意图。本申请中,为便于说明,将该网关具体命名为第二数据中心的第二网关,其中,本申请所述的网关一般为overlay技术下的虚拟可扩展局域网(英文:virtual Extensible LAN,简称:VxLAN)网关,具体可设置为运营商边缘设备(英文-Provider Edge,简称:PE)。具体该网关包括接收模块510、删除模块520和学习模块530。
[0069]接收模块510用于接收第一数据中心的第一网关发送的第一位置更新消息,其中,所述第一位置更新消息是由所述第一网关在检测到第一虚拟机跨数据中心迀移到所述第一数据中心时所发送的,用于通知所述第一虚拟机的位置信息发生改变。
[0070]删除模块520用于在接收模块510接收到所述第一位置更新消息时,根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由。
[0071]其中,所述第一位置更新消息包括第一虚拟机的位置信息和代表所述第一虚拟机迀移次数的序列号。删除模块520可具体用于:判断所述第一虚拟机的位置信息与第二网关保存的MAC路由中的第一虚拟机的位置信息是否相同,且所述第一位置更新消息的序列号与第二网关保存的所述第一虚拟机的序列号是否相同,在所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号相同时,确定第一虚拟机的位置信息存在冲突,删除所述第二网关中保存的所述第一虚拟机的MAC路由;在所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号不相同时,确
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1