《一种实现虚拟机通信的方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种实现虚拟机通信的方法和装置.pdf(41页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104115453 A (43)申请公布日 2014.10.22 CN 104115453 A (21)申请号 201480000400.0 (22)申请日 2014.06.16 PCT/CN2013/091202 2013.12.31 CN H04L 12/46(2006.01) (71)申请人 华为技术有限公司 地址 518129 广东省深圳市龙岗区坂田华为 总部办公楼 (72)发明人 吴天议 (54) 发明名称 一种实现虚拟机通信的方法和装置 (57) 摘要 本发明实施例提供的方法和装置, 第一交换 机从SDN控制器接收ARP响应, 所述ARP响应携带 目的网关。
2、的 MAC 地址, 所述第一交换机根据所述 目的网关的MAC地址, 获取所述目的网关的MAC地 址对应的VTEP信息, 所述VTEP信息对应的路由器 位于所述第一数据中心 ; 所述第一交换机根据所 述 VTEP 信息, 发送 IP 报文给所述 VTEP 信息对应 的路由器, 以使所述 VTEP 信息对应的路由器将所 述 IP 报文通过所述路由器与所述第二交换机的 隧道发送给所述第二虚拟机。因此 SDN 控制器代 答, 减少了广播报文对传输带宽的占用, 并且只经 过了第一数据中心的路由器, 减少了报文在数据 中心间的迂回。 (66)本国优先权数据 (85)PCT国际申请进入国家阶段日 2014.。
3、06.18 (86)PCT国际申请的申请数据 PCT/CN2014/079949 2014.06.16 (51)Int.Cl. 权利要求书 7 页 说明书 25 页 附图 8 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书7页 说明书25页 附图8页 (10)申请公布号 CN 104115453 A CN 104115453 A 1/7 页 2 1. 一种实现虚拟机通信的方法, 应用于至少包括第一虚拟机与第二虚拟机的系统, 所 述第一虚拟机位于第一数据中心的第一子网并且与第一交换机通信, 所述第二虚拟机位于 第二子网并且与第二交换机通信, 其特征在于 : 所述第一交。
4、换机从所述第一虚拟机接收地址解析协议 ARP 请求, 所述 ARP 请求携带目 的网关的 IP 地址 ; 所述第一交换机向所述第一数据中心的软件定义网络 SDN 控制器转发所述 ARP 请求 ; 所述第一交换机从所述 SDN 控制器接收 ARP 响应, 所述 ARP 响应携带所述目的网关的 媒体接入控制 MAC 地址 ; 所述第一交换机根据所述目的网关的 MAC 地址, 获取所述目的网关的 MAC 地址对应的 虚拟可扩展局域网隧道端点 VTEP 信息, 所述 VTEP 信息对应的路由器位于所述第一数据中 心 ; 所述第一交换机根据所述 VTEP 信息, 发送 IP 报文给所述 VTEP 信息对。
5、应的路由器, 以 使所述VTEP信息对应的路由器将所述IP报文通过所述路由器与所述第二交换机的隧道发 送给所述第二虚拟机。 2.如权利要求1所述的方法, 其特征在于, 所述第一交换机根据所述目的网关的MAC地 址, 获取所述目的网关的 MAC 地址对应的 VTEP 信息具体包括 : 所述第一交换机向所述 SDN 控制器发送请求, 以请求获取所述目的网关的 MAC 地址对 应的 VTEP 信息 ; 接收所述 SDN 控制器发送的所述目的网关的 MAC 地址对应的 VTEP 信息。 3.如权利要求1所述的方法, 其特征在于, 所述第一交换机根据所述目的网关的MAC地 址, 获取所述目的网关的 MA。
6、C 地址对应的 VTEP 信息具体包括 : 所述第一交换机根据所述目的网关的 MAC 地址, 查询本地保存的流表, 获取所述目的 网关的 MAC 地址对应的 VTEP 信息。 4. 如权利要求 3 所述的方法, 其特征在于, 所述第一交换机查询本地保存的流表, 获取 所述目的网关的 MAC 地址对应的 VTEP 信息具体包括 : 所述第一交换机根据所述目的网关的 MAC 地址, 查询本地保存的流表, 获取两条或以 上 VTEP 信息时, 以位于所述第一数据中心的路由器的 VTEP 信息作为所述目的网关的 MAC 地址对应的 VTEP 信息。 5.如权利要求4所述的方法, 其特征在于, 当所述第。
7、一交换机根据所述目的网关的MAC 地址, 查询本地保存的流表, 获取了两条或以上位于所述第一数据中心的路由器的 VTEP 信 息时, 所述第一交换机根据以下至少之一 : 路由器的负载和调度策略, 选择所述目的网关的 MAC 地址对应的 VTEP 信息。 6. 如权利要求 1 至 5 任一所述的方法, 其特征在于, 所述第一交换机根据所述 VTEP 信 息, 发送 IP 报文给所述 VTEP 信息对应的路由器, 以使所述 VTEP 信息对应的路由器将所述 IP 报文通过所述路由器与所述第二交换机的隧道发送给所述第二虚拟机具体包括 : 所述第一交换机对从所述第一虚拟机接收的 IP 报文进行虚拟可扩。
8、展局域网 VxLAN 封 装, 其中所述 VxLAN 封装的目的 IP 地址为获取的所述 VTEP 信息, 虚拟网络标识 VNI 为所述 第一子网的标识, 所述 IP 报文的目的 MAC 地址为所述目的网关的 MAC 地址 ; 所述 VTEP 信息对应的路由器, 将目的 IP 地址改为所述第二交换机的 IP 地址, VNI 改 权 利 要 求 书 CN 104115453 A 2 2/7 页 3 为所述第二子网的标识, 目的 MAC 地址改为所述第二虚拟机的 MAC 地址, 然后将改变 VxLAN 封装的 IP 报文, 发送给所述第二交换机 ; 所述第二交换机对接收的改变 VxLAN 封装的 。
9、IP 报文, 进行 VxLAN 解封装后, 发送给所 述第二虚拟机。 7. 一种实现虚拟机通信的方法, 应用于至少包括第一虚拟机与第二虚拟机的系统, 所 述第一虚拟机位于第一数据中心的第一子网并且与第一交换机通信, 所述第二虚拟机位于 第二子网并且与第二交换机通信, 其特征在于 : 所述第一数据中心的软件定义网络 SDN 控制器从所述第一交换机接收地址解析协议 ARP 请求, 所述 ARP 请求携带目的网关的 IP 地址 ; 所述 SDN 控制器根据所述目的网关的 IP 地址, 获取所述目的网关的媒体接入控制 MAC 地址, 并向所述第一交换机发送 ARP 响应, 所述 ARP 响应携带所述目。
10、的网关的 MAC 地址, 以 使所述第一交换机根据所述目的网关的 MAC 地址, 获取所述目的网关的 MAC 地址对应的虚 拟可扩展局域网隧道端点VTEP信息, 所述VTEP信息对应的路由器位于所述第一数据中心, 使所述VTEP信息对应的路由器将IP报文通过所述路由器与所述第二交换机的隧道发送给 所述第二虚拟机。 8. 如权利要求 7 所述的方法, 其特征在于, 还包括 : 所述 SDN 控制器接收所述第一交换机发送的请求, 以请求获取所述目的网关的 MAC 地 址对应的 VTEP 信息 ; 所述SDN控制器根据所述目的网关的MAC地址, 查询本地保存的流表, 获取所述目的网 关的 MAC 地。
11、址对应的 VTEP 信息, 并向所述第一交换机返回所述目的网关的 MAC 地址对应的 VTEP 信息。 9. 如权利要求 8 所述的方法, 其特征在于, 所述 SDN 控制器查询本地保存的流表, 获取 所述目的网关的 MAC 地址对应的 VTEP 信息具体包括 : 所述SDN控制器根据所述目的网关的MAC地址, 查询本地保存的流表, 获取两条或以上 VTEP信息时, 以位于所述第一数据中心的路由器的VTEP信息作为所述目的网关的MAC地址 对应的 VTEP 信息。 10. 如权利要求 9 所述的方法, 其特征在于, 当所述 SDN 控制器根据所述目的网关 的 MAC 地址, 查询本地保存的流表。
12、, 获取了两条或以上位于所述第一数据中心的路由器的 VTEP 信息时, 所述 SDN 控制器根据以下至少之一 : 路由器的负载和调度策略, 选择所述目的 网关的 MAC 地址对应的 VTEP 信息。 11.如权利要求7至10任一所述的方法, 其特征在于, 若所述第二虚拟机位于第二数据 中心, 则还包括 : 所述第一数据中心的SDN控制器从所述第二数据中心的SDN控制器获取所述第二虚拟 机的 IP 地址、 MAC 地址、 所述第二子网的虚拟网络标识 VNI, 和所述第二交换机的 VTEP 信 息, 以在所述第一数据中心的 SDN 控制器的控制下, 使所述 VTEP 信息对应的路由器将所述 IP 。
13、报文通过所述路由器与所述第二交换机的隧道发送给所述第二虚拟机。 12. 一种实现虚拟机通信的方法, 应用于至少包括第一虚拟机与第二虚拟机的系统, 所述第一虚拟机位于第一数据中心并且与第一交换机通信, 所述第二虚拟机位于第二数据 中心并且与第二交换机通信, 所述第一虚拟机和所述第二虚拟机位于同一子网, 其特征在 权 利 要 求 书 CN 104115453 A 3 3/7 页 4 于 : 所述第一交换机从所述第一虚拟机接收地址解析协议 ARP 请求, 所述 ARP 请求携带目 的虚拟机的 IP 地址 ; 所述第一交换机根据所述目的虚拟机的 IP 地址, 获取所述目的虚拟机的媒体接入控 制 MAC。
14、 地址 ; 根据所述目的虚拟机的 MAC 地址, 获取所述目的虚拟机的 MAC 地址对应的虚拟可扩展 局域网隧道端点 VTEP 信息, 所述 VTEP 信息为所述第二交换机的 IP 地址 ; 所述第一交换机通过所述第一交换机与所述第二交换机的隧道将 IP 报文发送给所述 第二虚拟机。 13. 如权利要求 12 所述的方法, 其特征在于, 所述第一交换机根据所述目的虚拟机的 IP 地址, 获取所述目的虚拟机的媒体接入控制 MAC 地址具体包括 : 所述第一交换机向所述第一数据中心的软件定义网络 SDN 控制器转发所述 ARP 请求, 所述 ARP 请求携带所述目的虚拟机的 IP 地址 ; 所述第。
15、一交换机从所述 SDN 控制器接收 ARP 响应, 所述 ARP 响应携带所述目的虚拟机 的 MAC 地址。 14.如权利要求12或13所述的方法, 其特征在于, 根据所述目的虚拟机的MAC地址, 获 取所述目的虚拟机的 MAC 地址对应的 VTEP 信息具体包括 : 所述第一交换机向所述 SDN 控制器发送请求, 以请求获取所述目的虚拟机的 MAC 地址 对应的 VTEP 信息 ; 接收所述 SDN 控制器发送的所述目的虚拟机的 MAC 地址对应的 VTEP 信息。 15.如权利要求12或13所述的方法, 其特征在于, 根据所述目的虚拟机的MAC地址, 获 取所述目的虚拟机的 MAC 地址对。
16、应的 VTEP 信息具体包括 : 所述第一交换机根据所述目的虚拟机的 MAC 地址, 查询本地保存的流表, 获取所述目 的虚拟机的 MAC 地址对应的 VTEP 信息。 16. 如权利要求 15 所述的方法, 其特征在于, 还包括 : 所述第一交换机从所述 SDN 控制器获取所述第二虚拟机的 IP 地址、 MAC 地址、 和所述 第二交换机的 VTEP 信息, 以通过所述第一交换机与所述第二交换机的隧道将 IP 报文发送 给所述第二虚拟机。 17. 一种实现虚拟机通信的方法, 应用于至少包括第一虚拟机与第二虚拟机的系统, 所述第一虚拟机位于第一数据中心并且与第一交换机通信, 所述第二虚拟机位于。
17、第二数据 中心并且与第二交换机通信, 所述第一虚拟机和所述第二虚拟机位于同一子网, 其特征在 于 : 所述第一数据中心的软件定义网络 SDN 控制器从所述第一交换机接收地址解析协议 ARP 请求, 所述 ARP 请求携带目的虚拟机的 IP 地址 ; 所述 SDN 控制器根据所述目的虚拟机的 IP 地址, 获取所述目的虚拟机的媒体接入控 制 MAC 地址, 并向所述第一交换机发送 ARP 响应, 所述 ARP 响应携带所述目的虚拟机的 MAC 地址, 以使所述第一交换机根据所述目的虚拟机的MAC地址, 获取所述目的虚拟机的MAC地 址对应的虚拟可扩展局域网隧道端点 VTEP 信息, 所述 VTE。
18、P 信息为所述第二交换机的 IP 地 址, 使所述第一交换机通过所述第一交换机与所述第二交换机的隧道将 IP 报文发送给所 权 利 要 求 书 CN 104115453 A 4 4/7 页 5 述第二虚拟机。 18. 如权利要求 17 所述的方法, 其特征在于, 还包括 : 所述 SDN 控制器接收所述第一交换机发送的请求, 以请求获取所述目的虚拟机的 MAC 地址对应的 VTEP 信息 ; 所述SDN控制器根据所述目的虚拟机的MAC地址, 查询本地保存的流表, 获取所述目的 虚拟机的 MAC 地址对应的 VTEP 信息, 并向所述第一交换机返回所述目的虚拟机的 MAC 地址 对应的 VTEP。
19、 信息。 19. 如权利要求 17 或 18 所述的方法, 其特征在于, 还包括 : 所述第一数据中心的SDN控制器从所述第二数据中心的SDN控制器获取所述第二虚拟 机的IP地址、 MAC地址和所述第二交换机的VTEP信息, 并将所述第二虚拟机的IP地址、 MAC 地址和所述第二交换机的 VTEP 信息下发给所述第一交换机。 20. 一种实现虚拟机通信的第一交换机, 应用于至少包括第一虚拟机与第二虚拟机的 系统, 所述第一虚拟机位于第一数据中心的第一子网并且与所述第一交换机通信, 所述第 二虚拟机位于第二子网并且与第二交换机通信, 其特征在于, 所述第一交换机包括 : 接收模块, 用于从所述第。
20、一虚拟机接收地址解析协议ARP请求, 所述ARP请求携带目的 网关的 IP 地址 ; 发送模块, 用于向所述第一数据中心的软件定义网络 SDN 控制器转发所述 ARP 请求 ; 所述接收模块还用于从所述 SDN 控制器接收 ARP 响应, 所述 ARP 响应携带所述目的网 关的媒体接入控制 MAC 地址 ; 获取模块, 用于根据所述目的网关的 MAC 地址, 获取所述目的网关的 MAC 地址对应的 虚拟可扩展局域网隧道端点 VTEP 信息, 所述 VTEP 信息对应的路由器位于所述第一数据中 心 ; 所述发送模块, 还用于根据所述 VTEP 信息, 发送 IP 报文给所述 VTEP 信息对应的。
21、路由 器, 以使所述 VTEP 信息对应的路由器将所述 IP 报文通过所述路由器与所述第二交换机的 隧道发送给所述第二虚拟机。 21. 如权利要求 20 所述的交换机, 其特征在于, 所述获取模块用于根据所述目的网关 的 MAC 地址, 获取所述目的网关的 MAC 地址对应的 VTEP 信息具体为 : 所述获取模块用于向所述 SDN 控制器发送请求, 以请求获取所述目的网关的 MAC 地址 对应的 VTEP 信息, 接收所述 SDN 控制器发送的所述目的网关的 MAC 地址对应的 VTEP 信息。 22. 如权利要求 20 所述的交换机, 其特征在于, 所述获取模块用于根据所述目的网关 的 M。
22、AC 地址, 获取所述目的网关的 MAC 地址对应的 VTEP 信息具体为 : 所述获取模块用于根据所述目的网关的 MAC 地址, 查询所述第一交换机保存的流表, 获取所述目的网关的 MAC 地址对应的 VTEP 信息。 23. 如权利要求 22 所述的交换机, 其特征在于, 所述获取模块用于查询所述第一交换 机保存的流表, 获取所述目的网关的 MAC 地址对应的 VTEP 信息具体为 : 所述获取模块用于根据所述目的网关的 MAC 地址, 查询所述第一交换机保存的流表, 获取两条或以上 VTEP 信息时, 以位于所述第一数据中心的路由器的 VTEP 信息作为所述目 的网关的 MAC 地址对应。
23、的 VTEP 信息。 24. 一种实现虚拟机通信的软件定义网络 SDN 控制器, 其特征在于, 所述 SDN 控制器位 权 利 要 求 书 CN 104115453 A 5 5/7 页 6 于第一数据中心, 并且应用于至少包括第一虚拟机与第二虚拟机的系统, 所述第一虚拟机 位于所述第一数据中心的第一子网并且与第一交换机通信, 所述第二虚拟机位于第二子网 并且与第二交换机通信, 所述 SDN 控制器包括 : 接收模块, 用于从所述第一交换机接收地址解析协议ARP请求, 所述ARP请求携带目的 网关的 IP 地址 ; 处理模块, 用于根据所述目的网关的 IP 地址, 获取所述目的网关的媒体接入控制。
24、 MAC 地址 ; 发送模块, 用于向所述第一交换机发送 ARP 响应, 所述 ARP 响应携带所述目的网关的 MAC 地址, 以使所述第一交换机根据所述目的网关的 MAC 地址, 获取所述目的网关的 MAC 地 址对应的虚拟可扩展局域网隧道端点 VTEP 信息, 所述 VTEP 信息对应的路由器位于所述第 一数据中心, 使所述 VTEP 信息对应的路由器将 IP 报文通过所述路由器与所述第二交换机 的隧道发送给所述第二虚拟机。 25. 如权利要求 24 所述的控制器, 其特征在于, 所述接收模块还用于接收所述第一交换机发送的请求, 以请求获取所述目的网关的 MAC 地址对应的 VTEP 信息。
25、 ; 所述处理模块还用于根据所述目的网关的MAC地址, 查询所述SDN控制器保存的流表, 获取所述目的网关的MAC地址对应的VTEP信息, 并向所述第一交换机返回所述目的网关的 MAC 地址对应的 VTEP 信息。 26.如权利要求25所述的控制器, 其特征在于, 所述处理模块用于查询所述SDN控制器 保存的流表, 获取所述目的网关的 MAC 地址对应的 VTEP 信息具体为 : 所述处理模块用于根据所述目的网关的MAC地址, 查询所述SDN控制器保存的流表, 获 取两条或以上 VTEP 信息时, 以位于所述第一数据中心的路由器的 VTEP 信息作为所述目的 网关的 MAC 地址对应的 VTE。
26、P 信息。 27. 如权利要求 26 所述的控制器, 其特征在于, 当所述处理模块用于根据所述目的网 关的 MAC 地址, 查询所述 SDN 控制器保存的流表, 获取了两条或以上位于所述第一数据中 心的路由器的 VTEP 信息时, 所述处理模块用于根据以下至少之一 : 路由器的负载和调度策 略, 选择所述目的网关的 MAC 地址对应的 VTEP 信息。 28. 如权利要求 24 至 27 任一所述的控制器, 若所述第二虚拟机位于第二数据中心, 则 所述处理模块还用于从所述第二数据中心的 SDN 控制器获取所述第二虚拟机的 IP 地址、 MAC 地址、 第二子网的虚拟网络标识 VNI, 和所述第。
27、二交换机的 VTEP 信息。 29. 一种实现虚拟机通信的第一交换机, 应用于至少包括第一虚拟机与第二虚拟机的 系统, 所述第一虚拟机位于第一数据中心并且与所述第一交换机通信, 所述第二虚拟机位 于第二数据中心并且与第二交换机通信, 所述第一虚拟机和所述第二虚拟机位于同一子 网, 其特征在于, 所述交换机包括 : 接收模块, 用于从所述第一虚拟机接收地址解析协议ARP请求, 所述ARP请求携带目的 虚拟机的 IP 地址 ; 处理模块, 用于根据所述目的虚拟机的 IP 地址, 获取所述目的虚拟机的媒体接入控制 MAC 地址, 根据所述目的虚拟机的 MAC 地址, 获取所述目的虚拟机的 MAC 地。
28、址对应的虚拟可 扩展局域网隧道端点 VTEP 信息, 所述 VTEP 信息为所述第二交换机的 IP 地址 ; 权 利 要 求 书 CN 104115453 A 6 6/7 页 7 发送模块, 用于通过所述第一交换机与所述第二交换机的隧道将 IP 报文发送给所述 第二虚拟机。 30. 如权利要求 29 所述的交换机, 其特征在于, 所述处理模块用于根据所述目的虚拟 机的 IP 地址, 获取所述目的虚拟机的 MAC 地址具体为 : 所述处理模块用于向所述第一数据中心的软件定义网络 SDN 控制器转发所述 ARP 请 求, 所述 ARP 请求携带所述目的虚拟机的 IP 地址, 从所述 SDN 控制器。
29、接收 ARP 响应, 所述 ARP 响应携带所述目的虚拟机的 MAC 地址。 31. 如权利要求 29 或 30 所述的交换机, 其特征在于, 所述处理模块用于根据所述目的 虚拟机的 MAC 地址, 获取所述目的虚拟机的 MAC 地址对应的 VTEP 信息具体为 : 所述处理模块用于向所述 SDN 控制器发送请求, 以请求获取所述目的虚拟机的 MAC 地 址对应的 VTEP 信息, 接收所述 SDN 控制器发送的所述目的虚拟机的 MAC 地址对应的 VTEP 信息。 32. 如权利要求 29 或 30 所述的交换机, 其特征在于, 所述处理模块用于根据所述目的 虚拟机的 MAC 地址, 获取所。
30、述目的虚拟机的 MAC 地址对应的 VTEP 信息具体为 : 所述处理模块用于根据所述目的虚拟机的 MAC 地址, 查询所述第一交换机保存的流 表, 获取所述目的虚拟机的 MAC 地址对应的 VTEP 信息。 33. 如权利要求 32 所述的交换机, 其特征在于, 所述处理模块还用于从所述第一数据 中心的 SDN 控制器获取所述第二虚拟机的 IP 地址、 MAC 地址、 和所述第二交换机的 VTEP 信 息。 34. 一种实现虚拟机通信的软件定义网络 SDN 控制器, 其特征在于, 所述 SDN 控制器位 于第一数据中心, 并且应用于至少包括第一虚拟机与第二虚拟机的系统, 所述第一虚拟机 位于。
31、所述第一数据中心并且与第一交换机通信, 所述第二虚拟机位于第二数据中心并且与 第二交换机通信, 所述第一虚拟机和所述第二虚拟机位于同一子网, 所述 SDN 控制器包括 : 接收模块, 用于从所述第一交换机接收地址解析协议ARP请求, 所述ARP请求携带目的 虚拟机的 IP 地址 ; 获取模块, 用于根据所述目的虚拟机的 IP 地址, 获取所述目的虚拟机的媒体接入控制 MAC 地址 ; 发送模块, 用于向所述第一交换机发送 ARP 响应, 所述 ARP 响应携带所述目的虚拟机 的MAC地址, 以使所述第一交换机根据所述目的虚拟机的MAC地址, 获取所述目的虚拟机的 MAC 地址对应的虚拟可扩展局。
32、域网隧道端点 VTEP 信息, 所述 VTEP 信息为所述第二交换机 的 IP 地址, 使所述第一交换机通过所述第一交换机与所述第二交换机的隧道将 IP 报文发 送给所述第二虚拟机。 35. 如权利要求 34 所述的控制器, 其特征在于, 所述接收模块还用于接收所述第一交 换机发送的请求, 以请求获取所述目的虚拟机的 MAC 地址对应的 VTEP 信息 ; 所述获取模块还用于根据所述目的虚拟机的 MAC 地址, 查询所述 SDN 控制器保存的流 表, 获取所述目的虚拟机的 MAC 地址对应的 VTEP 信息, 并向所述第一交换机返回所述目的 虚拟机的 MAC 地址对应的 VTEP 信息。 36。
33、. 如权利要求 34 或 35 所述的控制器, 其特征在于, 所述获取模块还用于从所述第二 数据中心的 SDN 控制器获取所述第二虚拟机的 IP 地址、 MAC 地址和所述第二交换机的 VTEP 权 利 要 求 书 CN 104115453 A 7 7/7 页 8 信息 ; 所述发送模块还用于将所述第二虚拟机的IP地址、 MAC地址和所述第二交换机的VTEP 信息下发给所述第一交换机。 37. 一种实现虚拟机通信的交换机, 其特征在于, 包括 : 处理器、 存储器和系统总线, 所述处理器和所述存储器之间通过所述系统总线连接并 完成相互间的通信 ; 所述存储器, 用于存储计算机执行指令 ; 所述。
34、处理器, 用于运行所述计算机执行指令, 执行如权利要求 1 至 6 任一所述的方法。 38. 一种实现虚拟机通信的软件定义网络 SDN 控制器, 其特征在于, 包括 : 处理器、 存储器和系统总线, 所述处理器和所述存储器之间通过所述系统总线连接并 完成相互间的通信 ; 所述存储器, 用于存储计算机执行指令 ; 所述处理器, 用于运行所述计算机执行指令, 执行如权利要求7至11任一所述的方法。 39. 一种实现虚拟机通信的交换机, 其特征在于, 包括 : 处理器、 存储器和系统总线, 所述处理器和所述存储器之间通过所述系统总线连接并 完成相互间的通信 ; 所述存储器, 用于存储计算机执行指令 。
35、; 所述处理器, 用于运行所述计算机执行指令, 执行如权利要求 12 至 16 任一所述的方 法。 40. 一种实现虚拟机通信的软件定义网络 SDN 控制器, 其特征在于, 包括 : 处理器、 存储器和系统总线, 所述处理器和所述存储器之间通过所述系统总线连接并 完成相互间的通信 ; 所述存储器, 用于存储计算机执行指令 ; 所述处理器, 用于运行所述计算机执行指令, 执行如权利要求 17 至 19 任一所述的方 法。 权 利 要 求 书 CN 104115453 A 8 1/25 页 9 一种实现虚拟机通信的方法和装置 技术领域 0001 本发明实施例涉及网络通信领域, 特别涉及一种实现虚拟。
36、机通信的方法和装置。 背景技术 0002 现有技术应用虚拟可扩展局域网 (VxLAN, Virtual extensible LAN) 技术扩展网 络虚拟化, 用以得到足够数量的虚拟网络, 来满足用户使用。 0003 每一个数据中心可能运行多个虚拟网络的虚拟机 (VM, Virtual Machine)。当一 个数据中心的 VM 与另一数据中心的 VM 通信时, 它会向第一跳路由器发出广播地址解析协 议 (ARP,Address Resolution Protocol) 请求, 以广播获取目的网关的 MAC 地址, 然后 ARP 请求被广播到各VM。 获取到目的网关的MAC地址后, 通过目的网。
37、关的MAC地址, 将报文发送 到各个数据中心的路由器, 然后到达目的 VM, 从而实现 VM 之间的通信。但是这种 ARP 广播 到各 VM 的方式, 会占用大量传输带宽 ; 而且报文会通过各数据中心的路由器才能到达目的 VM, 在数据中心间迂回比较严重。 发明内容 0004 本发明实施例提出了一种实现虚拟机通信的方法和装置, 以减少广播报文对传输 带宽的占用, 和减少报文在数据中心间的迂回。 0005 第一方面, 本发明实施例提出了一种实现虚拟机通信的方法, 应用于至少包括第 一虚拟机与第二虚拟机的系统, 所述第一虚拟机位于第一数据中心的第一子网并且与第一 交换机通信, 所述第二虚拟机位于第。
38、二子网并且与第二交换机通信, 所述第一交换机与所 述第二交换机可以相同, 也可以不同, 该方法包括 : 所述第一交换机从所述第一虚拟机接收 地址解析协议 ARP 请求, 所述 ARP 请求携带目的网关的 IP 地址 ; 0006 所述第一交换机向所述第一数据中心的软件定义网络SDN控制器转发所述ARP请 求 ; 0007 所述第一交换机从所述 SDN 控制器接收 ARP 响应, 所述 ARP 响应携带所述目的网 关的媒体接入控制 MAC 地址 ; 0008 所述第一交换机根据所述目的网关的 MAC 地址, 获取所述目的网关的 MAC 地址对 应的虚拟可扩展局域网隧道端点 VTEP 信息, 所述。
39、 VTEP 信息对应的路由器位于所述第一数 据中心 ; 0009 所述第一交换机根据所述 VTEP 信息, 发送 IP 报文给所述 VTEP 信息对应的路由 器, 以使所述 VTEP 信息对应的路由器将所述 IP 报文通过所述路由器与所述第二交换机的 隧道发送给所述第二虚拟机。 0010 结合第一方面, 在第一种可能的实现方式中, 所述第一交换机根据所述目的网关 的 MAC 地址, 获取所述目的网关的 MAC 地址对应的 VTEP 信息具体包括 : 所述第一交换机向 所述 SDN 控制器发送请求, 以请求获取所述目的网关的 MAC 地址对应的 VTEP 信息 ; 接收所 述 SDN 控制器发送。
40、的所述目的网关的 MAC 地址对应的 VTEP 信息。 说 明 书 CN 104115453 A 9 2/25 页 10 0011 结合第一方面, 在第二种可能的实现方式中, 所述第一交换机根据所述目的网关 的 MAC 地址, 获取所述目的网关的 MAC 地址对应的 VTEP 信息具体包括 : 所述第一交换机根 据所述目的网关的 MAC 地址, 查询本地保存的流表, 获取所述目的网关的 MAC 地址对应的 VTEP 信息。 0012 结合第一方面的第二种可能的实现方式中, 在第三种可能的实现方式中, 所述第 一交换机查询本地保存的流表, 获取所述目的网关的 MAC 地址对应的 VTEP 信息具。
41、体包括 : 0013 所述第一交换机根据所述目的网关的 MAC 地址, 查询本地保存的流表, 获取两条 或以上 VTEP 信息时, 以位于所述第一数据中心的路由器的 VTEP 信息作为所述目的网关的 MAC 地址对应的 VTEP 信息。 0014 结合第一方面的第三种可能的实现方式中, 在第四种可能的实现方式中, 当所述 第一交换机根据所述目的网关的 MAC 地址, 查询本地保存的流表, 获取了两条或以上位于 所述第一数据中心的路由器的 VTEP 信息时, 所述第一交换机根据以下至少之一 : 路由器的 负载和调度策略, 选择所述目的网关的 MAC 地址对应的 VTEP 信息。 0015 结合第。
42、一方面或者第一方面的第一种至第四种任意一种可能的实现方式, 在第五 种可能的实现方式中, 所述第一交换机根据所述 VTEP 信息, 发送 IP 报文给所述 VTEP 信息 对应的路由器, 以使所述 VTEP 信息对应的路由器将所述 IP 报文通过所述路由器与所述第 二交换机的隧道发送给所述第二虚拟机具体包括 : 0016 所述第一交换机对从所述第一虚拟机接收的 IP 报文进行虚拟可扩展局域网 VxLAN封装, 其中所述VxLAN封装的目的IP地址为获取的所述VTEP信息, 虚拟网络标识VNI 为所述第一子网的标识, 所述 IP 报文的目的 MAC 地址为所述目的网关的 MAC 地址 ; 001。
43、7 所述 VTEP 信息对应的路由器, 将目的 IP 地址改为所述第二交换机的 IP 地址, VNI 改为所述第二子网的标识, 目的 MAC 地址改为所述第二虚拟机的 MAC 地址, 然后将改变 VxLAN 封装的 IP 报文, 发送给所述第二交换机 ; 0018 所述第二交换机对接收的改变 VxLAN 封装的 IP 报文, 进行 VxLAN 解封装后, 发送 给所述第二虚拟机。 0019 第二方面, 本发明实施例提出了一种实现虚拟机通信的方法, 应用于至少包括第 一虚拟机与第二虚拟机的系统, 所述第一虚拟机位于第一数据中心的第一子网并且与第一 交换机通信, 所述第二虚拟机位于第二子网并且与第。
44、二交换机通信, 所述第一交换机与所 述第二交换机可以相同, 也可以不同, 该方法包括 : 所述第一数据中心的软件定义网络 SDN 控制器从所述第一交换机接收地址解析协议 ARP 请求, 所述 ARP 请求携带目的网关的 IP 地 址 ; 0020 所述SDN控制器根据所述目的网关的IP地址, 获取所述目的网关的媒体接入控制 MAC地址, 并向所述第一交换机发送ARP响应, 所述ARP响应携带所述目的网关的MAC地址, 以使所述第一交换机根据所述目的网关的 MAC 地址, 获取所述目的网关的 MAC 地址对应的 虚拟可扩展局域网隧道端点 VTEP 信息, 所述 VTEP 信息对应的路由器位于所述。
45、第一数据中 心, 使所述 VTEP 信息对应的路由器将 IP 报文通过所述路由器与所述第二交换机的隧道发 送给所述第二虚拟机。 0021 结合第二方面, 在第一种可能的实现方式中, 所述 SDN 控制器接收所述第一交换 机发送的请求, 以请求获取所述目的网关的 MAC 地址对应的 VTEP 信息 ; 说 明 书 CN 104115453 A 10 3/25 页 11 0022 所述SDN控制器根据所述目的网关的MAC地址, 查询本地保存的流表, 获取所述目 的网关的 MAC 地址对应的 VTEP 信息, 并向所述第一交换机返回所述目的网关的 MAC 地址对 应的 VTEP 信息。 0023 结。
46、合第二方面的第一种可能的实现方式中, 在第二种可能的实现方式中, 所述 SDN 控制器查询本地保存的流表, 获取所述目的网关的 MAC 地址对应的 VTEP 信息具体包括 : 0024 所述SDN控制器根据所述目的网关的MAC地址, 查询本地保存的流表, 获取两条或 以上VTEP信息时, 以位于所述第一数据中心的路由器的VTEP信息作为所述目的网关的MAC 地址对应的 VTEP 信息。 0025 结合第二方面的第二种可能的实现方式中, 在第三种可能的实现方式中, 当所述 SDN 控制器根据所述目的网关的 MAC 地址, 查询本地保存的流表, 获取了两条或以上位于所 述第一数据中心的路由器的 V。
47、TEP 信息时, 所述 SDN 控制器根据以下至少之一 : 路由器的负 载和调度策略, 选择所述目的网关的 MAC 地址对应的 VTEP 信息。 0026 结合第二方面或者第二方面的第一种至第三种任意一种可能的实现方式, 在第四 种可能的实现方式中, 若所述第二虚拟机位于第二数据中心, 则还包括 : 0027 所述第一数据中心的SDN控制器从所述第二数据中心的SDN控制器获取所述第二 虚拟机的 IP 地址、 MAC 地址、 所述第二子网的虚拟网络标识 VNI, 和所述第二交换机的 VTEP 信息, 以在所述第一数据中心的 SDN 控制器的控制下, 使所述 VTEP 信息对应的路由器将所 述 I。
48、P 报文通过所述路由器与所述第二交换机的隧道发送给所述第二虚拟机。 0028 第三方面, 本发明实施例提出了一种实现虚拟机通信的第一交换机, 应用于至少 包括第一虚拟机与第二虚拟机的系统, 所述第一虚拟机位于第一数据中心的第一子网并且 与所述第一交换机通信, 所述第二虚拟机位于第二子网并且与第二交换机通信, 所述第一 交换机与所述第二交换机可以相同, 也可以不同, 所述第一交换机包括 : 接收模块, 用于从 所述第一虚拟机接收地址解析协议 ARP 请求, 所述 ARP 请求携带目的网关的 IP 地址 ; 0029 发送模块, 用于向所述第一数据中心的软件定义网络 SDN 控制器转发所述 ARP。
49、 请 求 ; 0030 所述接收模块还用于从所述 SDN 控制器接收 ARP 响应, 所述 ARP 响应携带所述目 的网关的媒体接入控制 MAC 地址 ; 0031 获取模块, 用于根据所述目的网关的MAC地址, 获取所述目的网关的MAC地址对应 的虚拟可扩展局域网隧道端点 VTEP 信息, 所述 VTEP 信息对应的路由器位于所述第一数据 中心 ; 0032 所述发送模块, 还用于根据所述 VTEP 信息, 发送 IP 报文给所述 VTEP 信息对应的 路由器, 以使所述 VTEP 信息对应的路由器将所述 IP 报文通过所述路由器与所述第二交换 机的隧道发送给所述第二虚拟机。 0033 结合第三方面, 在第一种可能的实现方式中, 所述获取模块用于根据所述目的网 关的 MAC 地址, 获取所述目的网关的 MAC 地址对应的 VTEP 信息具体为 : 0034 所述获取模块用于向所述 SDN 控制器发送请求, 以请求获取所述目的网关的 MAC 地址对应的 VTEP 信息, 接收所述 SDN 控制器发送的所述目的网关的 MAC 地址对应的 VTEP 信息。 0035 结合第三方面, 在第二种可能的实现方式中, 所述获取模块用于根据所述目的网 说 明。