CN109525477A - 数据中心中虚拟机之间的通信方法、装置和系统 - Google Patents

数据中心中虚拟机之间的通信方法、装置和系统 Download PDF

Info

Publication number
CN109525477A
CN109525477A CN201811161473.4A CN201811161473A CN109525477A CN 109525477 A CN109525477 A CN 109525477A CN 201811161473 A CN201811161473 A CN 201811161473A CN 109525477 A CN109525477 A CN 109525477A
Authority
CN
China
Prior art keywords
data packet
ipsec
vxlan
virtual machine
vni
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.)
Pending
Application number
CN201811161473.4A
Other languages
English (en)
Inventor
孙应孔
胡红山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201811161473.4A priority Critical patent/CN109525477A/zh
Publication of CN109525477A publication Critical patent/CN109525477A/zh
Priority to PCT/CN2019/107266 priority patent/WO2020063528A1/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开一种数据中心中的虚拟机之间通信的方法、装置和系统,本申请采用IPsec安全协议对数据包进行封装,对相同租户或相同VxLAN中的虚拟机之间的通信报文采取加密或者认证的安全措施,保证了通信报文的安全性。同时,为了避免封装后的IPsec报文无法路由或者无法关联到正确的安全联盟的问题,对IPsec报文和IPsec安全联盟的索引进行了扩展。

Description

数据中心中虚拟机之间的通信方法、装置和系统
技术领域
本发明大体上涉及通信技术,尤其涉及一种数据中心中虚拟机的通信方法和系统。
背景技术
虚拟可扩展局域网(Virtual Extensible Local Area Network,VxLAN)技术是用于扩展网络虚拟化,以得到足够数量的虚拟网络来满足用户使用的技术。根据VxLAN协议的规定,VxLAN报文通常包括载荷和报文头,其中,报文头中通常包括24位(bit)的虚拟可扩展局域网网络标识(VxLAN Network Identifier,VNI)、源数据包的IP地址、目的数据包的IP地址等信息,用于VxLAN报文的转发;载荷中通常包括虚拟机(virtual machine,VM)之间用于通信的通信报文,例如数据包、源VM的MAC地址和目的VM的MAC地址等。
现有技术中,如果虚拟机之间采用VxLAN数据包进行通信,数据在转发过程尤其跨数据中心场景存在被窃取、被篡改和被重放的安全风险。
发明内容
本申请实施例提供了一种数据中心中虚拟机之间通信的方法、装置和系统,以对归属相同租户或者VxLAN的虚拟机之间的通信采用IPsec协议进行安全保护。
第一方面,本申请提供一种虚拟机之间通信方法,第一虚拟机与第二虚拟机分别运行于第一宿主机和第二宿主机,所述第一虚拟机与所述第二虚拟机归属相同的可扩展虚拟局域网VxLAN,所述第一虚拟机与所述第二虚拟机之间通信的方法包括:获取所述第一虚拟机的待发送源数据包,对所述源数据包进行VxLAN格式的封装得到VxLAN数据包,所述VxLAN数据包的VxLAN报头包含所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,再对所述VxLAN数据包进行因特网安全协议安全性IPsec格式的封装以得到IPsec数据包,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载所述VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述VNI;最后发送所述IPsec数据包。
在第一方面,对于相同租户或者相同VxLAN的虚拟机之间的通信,在发送方对待发送的VxLAN数据包进行IPsec封装,封装得到的IPsec数据包在通信转发过程中能够避免各种安全风险,另外,针对现有IPsec协议不适用多租户场景的问题进行改进,本发明第一方面封装后的数据包除了承载原VxLAN数据包和加封IPsec报头之外,还增加第三部分,该第三部分用于承载租户信息或者路由指示信息,例如使用VNI的信息作为租户信息或者路由指示信息。该增加的第三部分可以解决接收方接收到IPsec数据包之后无法匹配出正确的IPsec安全联盟SA,以至于无法解封装该IPsec数据包的问题,同时,该第三部分也可以使得该IPsec数据包在中间路由过程中,能够被中间路由设备,例如网关识别并进行正确的路由。
根据第一方面的第一种可能的实现方式,所述IPsec格式的封装采用安全载荷ESP协议,所述第一部分中的VxLAN数据包中携带的VNI为加密状态,所述第三部分中携带的VNI为非加密状态。
根据第一方面的第二种可能的实现方式,所述IPsec格式的封装采用安全载荷ESP协议和认证头AH协议,所述第一部分中的VxLAN数据包携带的VNI为加密状态,所述第三部分中携带的VNI为非加密状态。
根据第一方面的第三种可能的实现方式,所述IPsec格式的封装采用认证头AH协议,所述第一部分中的VxLAN数据包携带的VNI为非加密状态,所述第三部分中的VNI为非加密状态。
根据第一方面以及第一方面的上述三种可能的实现方式,在第四种可能的实现方式中,所述VxLAN数据包包含外层IP字段,所述第三部分设置于所述外层IP字段与所述IPsec报头之间,并采用用户数据报协议UDP格式封装。
根据第一方面的第二种或第三种可能的实现方式,在第五种可能的实现方式中,所述IPsec报头包括ESP报头,所述第三部分设置于所述ESP报头中。
根据第一方面的第三种或第四种可能的实现方式,在第六种可能的实现方式中,所述IPsec报头包括AH报头,所述第三部分设置于所述AH报头中。
上述六种可能的实现方式,具体包含了IPsec实现的具体实现细节。
根据第一方面的上述六种可能的实现方式,在第七种实现方式中,所述进行IPsec封装之前,还包括:所述第一宿主机与所述第二宿主机通过Internet秘钥交换IKE协议协商确定所述第一虚拟机与所述第二虚拟机之间的IPsec的安全关联SA,其中,所述IPsec SA包括四元组索引以及安全要素,所述四元组索引包括安全协议类型、安全参数索引、对端IP地址以及所述第一虚拟机和所述第二虚拟机的归属VNI,所述第一宿主机发送到所述第二宿主机的IKE数据包包括所述VNI。
进一步,所述进行IPsec封装包括:根据所述四元组索引查询所述IPsec SA获得安全要素,根据所述安全要素进行IPsec格式的封装以得到所述IPsec数据包。
第二方面,本申请提供一种虚拟机之间通信方法,第一虚拟机与第二虚拟机分别运行于第一宿主机和第二宿主机,所述第一虚拟机与所述第二虚拟机归属相同的可扩展虚拟局域网VxLAN,所述第一虚拟机与所述第二虚拟机之间通信的方法包括:接收来自所述第一宿主机的IPsec数据包,其中,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,所述VxLAN数据包由所述第一虚拟机的源数据包封装得到,所述VxLAN数据包的VxLAN报头包含所述VNI;根据所述IPsec数据包中携带的所述VNI和所述IPsec报头,解封装所述IPsec数据包获得VxLAN数据包;解封装所述VxLAN数据包得到所述源数据包,并向所述第二虚拟机转发所述源数据包。
第二方面或第二方面任意一种实现方式是第一方面或第一方面任意一种实现方式对应的装置实现,第一方面或第一方面任意一种实现方式中的描述适用于第二方面或第二方面任意一种实现方式,在此不再赘述。
第三方面,本申请提供一种虚拟机的数据包的转发方法,第一虚拟机与第二虚拟机分别运行于第一宿主机和第二宿主机,所述第一虚拟机与所述第二虚拟机归属相同的可扩展虚拟局域网VxLAN,所述方法应用于所述第一宿主机与所述第二宿主机之间的网关,包括:接收来自所述第一宿主机的IPsec数据包,其中,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,所述VxLAN数据包由所述第一虚拟机的源数据包封装得到,所述VxLAN数据包的VxLAN报头包含所述VNI;获取所述IPsec数据包中携带的所述VNI,根据所述VNI确定所述IPsec数据包的目的接收方为所述第二宿主机;根据所述第二宿主机的信息,将所述IPsec数据包发送到所述第二宿主机。
由于网关连接的不止一个宿主机,网关应该获取其中的VNI信息以识别目的宿主机,然而,如果发送方通过ESP协议封装得到该IPsec数据包,VNI信息则是属于加密状态,这种情况下,网关无法获取到VNI信息。第三方面由于发送方对IPsec封装进行扩展,新增加的第三部分用于承载非加密状态的VNI,则可以解决网关无法路由的问题。
第四方面,本申请提供一种通信装置,用于归属相同的可扩展虚拟局域网VxLAN的第一虚拟机与第二虚拟机之间的通信,所述装置包括:收发单元,用于获取所述第一虚拟机的待发送源数据包;第一封装单元,用于对所述源数据包进行VxLAN格式的封装得到VxLAN数据包,所述VxLAN数据包的VxLAN报头包含所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI;第二封装单元,用于对所述VxLAN数据包进行因特网安全协议安全性IPsec格式的封装以得到IPsec数据包,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载所述VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述VNI;所述收发单元,还用于发送所述IPsec数据包。
第四方面或第四方面任意一种实现方式是第一方面或第一方面任意一种实现方式对应的装置实现,第一方面或第一方面任意一种实现方式中的描述适用于第四方面或第四方面任意一种实现方式,在此不再赘述。
第五方面,本申请提供一种通信装置,用于归属相同的可扩展虚拟局域网VxLAN的第一虚拟机与第二虚拟机之间的通信,所述装置包括:收发单元,用于接收来自所述第一宿主机的IPsec数据包,其中,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,所述VxLAN数据包由所述第一虚拟机的源数据包封装得到,所述VxLAN数据包的VxLAN报头包含所述VNI;第一解封装单元,用于根据所述IPsec数据包中携带的所述VNI和所述IPsec报头,解封装所述IPsec数据包获得VxLAN数据包;第二解封装单元,用于解封装所述VxLAN数据包得到所述源数据包;所述收发单元还用于向所述第二虚拟机转发所述源数据包。
第五方面或第五方面任意一种实现方式是第二方面或第二方面任意一种实现方式对应的装置实现,第二方面或第二方面任意一种实现方式中的描述适用于第五方面或第五方面任意一种实现方式,在此不再赘述。
第六方面,本申请提供一种通信网关,用于归属相同的可扩展虚拟局域网VxLAN的第一虚拟机与第二虚拟机之间的通信,包括:接收单元,用于接收来自所述第一宿主机的IPsec数据包,其中,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,所述VxLAN数据包由所述第一虚拟机的源数据包封装得到,所述VxLAN数据包的VxLAN报头包含所述VNI;路由单元,用于获取所述IPsec数据包中携带的所述VNI,根据所述VNI确定所述IPsec数据包的目的接收方为所述第二宿主机,以及根据所述第二宿主机的信息,将所述IPsec数据包发送到所述第二宿主机。
第七方面,本申请提供一种通信装置,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述通信装置运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述计算设备执行上述第一方面或者第二方面或者第三方面所述的方法。
第八方面,本申请提供一种通信系统,包括第一宿主机和第二宿主机,所述第一宿主机上运行第一虚拟机,所述第二宿主机上运行第二虚拟机,所述第一虚拟机与所述第二虚拟机归属相同的可扩展虚拟局域网VxLAN;所述第一宿主机用于获取所述第一虚拟机的待发送源数据包,对所述源数据包进行VxLAN格式的封装得到VxLAN数据包,所述VxLAN数据包的VxLAN报头包含所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,对所述VxLAN数据包进行因特网安全协议安全性IPsec格式的封装以得到IPsec数据包,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载所述VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述VNI,以及发送所述IPsec数据包;所述第二宿主机用于接收来自所述第一宿主机的IPsec数据包,根据所述IPsec数据包中携带的所述VNI和所述IPsec报头,解封装所述IPsec数据包获得VxLAN数据包,解封装所述VxLAN数据包得到所述源数据包,并向所述第二虚拟机转发所述源数据包。
可选地,该通信系统还包括:通信网关,用于接收来自所述第一宿主机的IPsec数据包,获取所述IPsec数据包中携带的所述VNI,根据所述VNI确定所述IPsec数据包的目的接收方为所述第二宿主机,根据所述第二宿主机的信息,将所述IPsec数据包发送到所述第二宿主机。
第九方面,本申请提供一种计算机可读存储介质或计算机程序产品,该计算机可读存储介质中存储了指令,该指令被处理器运行时,实现前述第一方面或第二方面或第三方面任意一种实现方式中提供的虚拟机的配置方法。该计算机可读存储介质包括但不限于只读存储器,随机访问存储器,快闪存储器、HDD或SSD。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1A是本发明实施例提供的系统架构图;
图1B是本发明实施例提供的另一种系统架构图;
图2是本发明实施例提供的方法流程图;
图3是根据本发明实施例的VxLAN数据包结构示意图;
图4是根据本发明实施例的IPsec数据包结构示意图;
图5是根据本发明实施例的IPsec数据包结构示意图;
图6是根据本发明实施例的IPsec数据包结构示意图;
图7是根据本发明实施例的通信系统的组成示意图;
图8是根据本发明实施例的设备的组成示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
图1A和图1B分别为本申请虚拟机通信的系统架构示意图。如图1A所示,在同一个数据中心中,包括至少两台宿主机(图示两台宿主机),每台宿主机上运行有多台虚拟机(图示两台虚拟机),第一宿主机10上运行第一虚拟机VM1与第三虚拟机VM3,第二宿主机20上运行第一虚拟机VM2与第四虚拟机VM4,VM1与VM2归属于相同的VxLAN(图示虚线表示的VxLAN1),VM3与VM4归属于相同的VxLAN(图示虚线表示的VxLAN2)。相同的租户一般意味着相同的VxLAN,在同一租户网络中,每一台虚拟机分配不同的ID或地址,但在不同的租户中,不同虚拟机可能分配相同的ID或地址,例如,VM1与VM4可能具有相同的地址。在图1A所示的数据中心中,虚拟机之间可以进行通信,虚拟机之间采用VxLAN数据包进行通信,VxLAN数据包封装了虚拟机所归属的VxLAN网络标识VNI,该VNI用于数据包的转发路由。图1B所示的系统与图1A不同之处在于,图1B是不同的数据中心中归属相同的VxLAN的虚拟机之间的通信,每一个数据中心也称为一个可用区AZ(availiable zone),宿主机10与宿主机20位于不同的数据中心,每个数据中心中包括各自的网关,数据中心2中包括至少两台宿主机(图示两台),宿主机20和宿主机30都属于数据中心2中的宿主机,宿主机30上的VM5和VM6都归属与VxLAN2。宿主机10发出的数据包经过网关102通过网络转发到网关202,并由网关202转发到宿主机20,网关在转发过程中,依赖VxLAN数据包中的VNI进行路由。
现有的相同租户虚拟机之间通信过程如下:图1A中,发送方VM1的流量经过虚拟交换机101,该虚拟交换机101对源数据包进行VxLAN加封装后出宿主机10,接收方宿主机20的物理接口收到报文后,将该报文发送到本端虚拟交换机201,虚拟机201做Vxlan解封装,最后将报文转发到目的虚机vm2。图1B中,发送方VM1的流量经过虚拟交换机101,该虚拟交换机101对源数据包进行VxLAN加封装后出宿主机10,经过网关102和202的分别转发,接收方宿主机20的物理接口收到报文后,将该报文发送到本端虚拟交换机201,虚拟交换机201做Vxlan解封装,最后将报文转发到目的虚机vm2。
现有技术中相同租户的虚拟机之间的通信数据包并未经过安全处理,因此数据在转发过程尤其是跨数据中心场景存在可能被窃取、被篡改和被重放的安全风险。
因特网协议安全性(Internet Protocol Security,IPSec)是网络通信中广泛应用的一种安全协议。通信双方之间在IP层通过加密与数据源认证等方式,能够提供了以下的安全服务:数据机密性(Confidentiality):IPsec发送方在通过网络传输包前对包进行加密;数据完整性(Data Integrity):IPsec接收方对发送方发送来的包进行认证,以确保数据在传输过程中没有被篡改;数据来源认证(Data Authentication):IPsec在接收端可以认证发送IPsec报文的发送端是否合法;防重放(Anti-Replay):IPsec接收方可检测并拒绝接收过时或重复的报文。
IPsec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。IPsec协议中的认证头(Authentication Header,AH)协议定义了认证的应用方法,提供数据源认证和完整性保证;封装安全载荷(Encapsulating Security Payload,ESP)协议定义了加密和可选认证的应用方法,提供数据可靠性保证;因特网密钥交换(Internet Key Exchange,IKE)用于密钥交换。
在IPSec协议的应用中,两个通信端点之间进行信息传递需要建立IPSec安全联盟(Security Association,SA)用于信息的加密解密过程,以确保信息的安全传递。IPsec SA在两个端点之间提供安全通信,端点被称为IPsec对等体。IPSec SA是通信对等体之间对安全要素的约定,例如,使用哪种协议(AH还是ESP还是两者结合使用)、协议的封装模式、加密算法、特定流中保护数据的共享密钥以及密钥的生存周期等。按照现有IPSec协议定义,一个IPSec SA由一个三元组来唯一标识,这个三元组包括安全参数索引(SecurityParameter Index,SPI)、对端/远端IP地址(也称为destination address)、安全协议类型(AH或ESP)。
基于IPsec协议,对相同租户虚拟机之间的通信的VxLAN数据包进行IPsec封装可以提供数据安全保护,但是现有的IPsec协议并不针对多租户的场景,通信双方(两个虚拟机)之间建立的SA按照现有的三元组并不能映射到唯一的一条SA,例如,VM1与VM2建立的SA,VM3与VM4建立的SA,如果VM1与VM3的地址相同(不同的VxLAN中的虚拟机允许具有相同的地址),当VM1发送的IPsec数据包到达宿主机20后,宿主机根据三元组作为索引(SPI,VM1的地址,ESP或AH协议类型)可能查到两条或者两条以上的SA,原因是其它两项索引值(SPI与协议类型)相同的概率较大,而VM1的地址与VM3的地址又相同,那么三元组索引就可能对应两条SA。因此,宿主机20可能无法索引到正确的SA,从而无法对接收到的IPsec数据包采取解密或者认证等安全措施,最终将导致无法将数据包转发到对应的接收方虚拟机。另外,如果采用ESP协议对VxLAN数据包进行加密,原VxLAN数据包中的VNI处于加密状态,接收方宿主机无法获取到VNI,则无法判断出数据包的接收方虚拟机。另外,在图1B的场景中,如果采用ESP协议对VxLAN数据包进行加密得到IPsec数据包,则VxLAN数据包头中携带的VxLAN标识VNI是加密状态的,网关接收到IPsec数据包无法获取到其中的VNI信息,网关则无法根据VNI信息决定后续的路由信息,这种情况下将导致VM1发送的数据包无法被路由到VM2所在的宿主机。
本申请提供一种相同租户的虚拟机之间通信的方法,该方法既保证通信双方之间数据包的安全性,又解决IPsec协议运用在虚拟化多租户场景中的无法唯一确定SA的问题以及无法获取VNI进行路由的问题,使得多租户场景下的同一租户中的虚拟机之间通过IPsec进行安全通信。
本申请对IPsec SA的索引信息进行扩展,由现有的三元组扩展为四元组,增加一个索引项VNI,以此来区分不同的租户中的虚拟机的SA,四元组索引包括:安全协议类型(ESP还是AH还是两者皆是)、安全参数索引SPI、目的IP地址以及租户信息(通信双方虚拟机的归属VNI)。
图2为本申请提供的方法实施例的流程图,图2结合了图1B中的场景,在步骤201中,当VM1要发送数据包给VM2,VM1发送源数据包到宿主机10上的虚拟交换机101,虚拟交换机101接收到该源数据包后,对所述源数据包进行VxLAN格式的封装得到VxLAN数据包,所述VxLAN数据包的VxLAN报头包含所述VM1和VM2所归属的VxLAN的标识VNI,如图3所示,为VxLAN数据包的示例性格式,该VxLAN数据包在源数据包外层封装外层媒体访问控制地址MAC与IP地址,该外层MAC与IP地址一般为VM1对应的VxLAN隧道端点(VXLAN Tunnel EndPoint,VTEP)或者宿主机的MAC或IP地址,外层UDP头中目的端口号(VXLAN Port)固定为4789,源端口号(UDP Source Port)是原始以太帧通过哈希算法计算后的值,VxLAN报头中携带VNI。
在步骤202中,虚拟交换机101进一步对VxLAN数据进行安全封装,安全封装可以采用IPsec协议,封装得到IPsec数据包,该IPsec数据包包括第一部分、第二部分与第三部分,该第一部分用于承载所述VxLAN数据包,该第二部分包括IPsec报头,该第三部分用于承载所述VNI。本实施例中,对IPsec数据包的格式进行扩展,第三部分为新增加的部分,用于在报文中再次增加VNI信息,也就是说,在VxLAN报头中承载了VNI之外,再额外增加VNI信息,该增加的VNI信息可以直接指示通行双方虚拟机所归属的VxLAN网络的标识,使得接收到该IPsec数据包的接收方可以根据该VNI进行相关的识别或安全操作。
具体地,在步骤202之前可以先执行步骤202A,步骤202A中宿主机10与宿主机20可以先通过IKE协议协商确定VM1与所述VM2之间的IPsec的安全关联SA,当协商成功之后,宿主机10和宿主机20分别记录协商好的SA,所记录的SA包括四元组索引和安全要素,四元组索引包括安全协议类型、安全参数索引、对端IP地址(destination IP)以及所述VM1和VM2的归属VNI,四元组索引与安全要素对应,安全要素包括协议的封装模式、加密算法、特定流中保护数据的共享密钥以及密钥的生存周期等。本步骤中,建立SA可以通过协商确定,也可以通过手工配置建立SA;如果采用协商确定SA,可以使用IKE协议进行相关的协商,现有技术中IKE协议并不支持携带VNI,本实施例中可以对IKE协议的数据包进行扩展,使得该IKE数据包可以携带VNI,例如可以在IKE数据包的UDP和Initiator Cookie之间插入VNI信息。
具体地,在步骤202中,虚拟交换机101可以获取步骤202A中确定的SA,根据SA中的安全要素进行相应地IPsec封装,IPsec封装可以采用ESP协议,也可以采用AH协议,也可以即采用ESP协议也采用AH协议。
采用ESP协议封装得到的IPsec数据包如图4所示,该IPsec数据包至少包括三部分,第一部分用于承载原VxLAN数据包,第二部分包括ESP报头,用于承载封装信息,该封装信息可以包含四元组索引中的SPI以及协议类型(ESP),由于采用ESP需要对数据包进行加密,一般来说从ESP报头到源数据包部分为加密部分,也就是说VxLAN数据包中的VNI为加密状态,由于VxLAN数据包中的VNI为加密状态,为了保证路由过程中的各接收方能够获取到VNI信息,新增加的第三部分中的VNI为非加密状态。需要说明的是,ESP报头并非全部内容需要被加密,其中的SPI以及协议类型信息一般不被加密。
采用ESP协议和AH协议封装得到的IPsec数据包如图5所示,该IPsec数据包即要被加密又要被对端进行认证,IPsec数据包需要进一步携带认证信息部分,图5中第二部分除了包括ESP报头之外还包括AH报头。
采用AH协议封装得到的IPsec数据包格式与图4类似,不同之处在于,ESP报头替换为AH报头,另外,该IPsec数据包没有加密部分。
新增加的第三部分在IPsec数据包中的具体设置实施方式可以如图4或图5所示,第三部分设置在外层IP字段与ESP报头之间。第三部分在IPsec数据包中的具体设置另一种实施方式也可以将第三部分直接增加在ESP报头或者AH报头中,例如,在ESP报头中的序列号(sequence number)与载荷数据(playload data)之间设置新增的第三部分。
第三部分可以采用用户数据报协议(User Datagram Protocol,UDP)的格式进行封装,如图6所示,第三部分采用UDP格式封装,包括新UDP字段、VNI字段和保留字段,新UDP的目的端口的值可以设置为6001,表示第三部分封装了租户信息或者VNI信息。
需要说明的是,上述步骤202中,由虚拟交换机进行IPsec封装,实际操作中,也可以由宿主机10中的其他组件进行封装。
步骤203,第一宿主机10发送封装后的IPsec数据包,该IPsec数据包在从宿主机10发出之后,通过网络到达宿主机20连接的网关202
步骤204:网关202接收到该IPsec数据包之后,获取该IPsec数据包之中的VNI信息,根据该VNI信息确定宿主机20为接收该IPsec数据包的接收方,将该IPsec数据包转发给该宿主机20的虚拟交换机201。
由于网关202连接的不止一个宿主机,网关202应该获取其中的VNI信息以识别目的宿主机,然而,如果发送方通过ESP协议封装得到该IPsec数据包,VNI信息则是属于加密状态,这种情况下,网关202可能无法获取到VNI信息。本申请实施例中由于发送方对IPsec封装进行扩展,新增加的第三部分用于承载非加密状态的VNI,则可以解决网关无法路由的问题。
步骤205,虚拟交换机201根据所述IPsec数据包中携带的所述VNI和所述IPsec报头,获得四元组索引,根据所述四元组索引查询所述IPsec SA获得安全要素,根据所述安全要素解封装所述IPsec数据包获得VxLAN数据包;虚拟交换机201解封装所述VxLAN数据包得到源数据包。
步骤206,虚拟交换机201根据所述VNI的信息向所述第二虚拟机转发所述源数据包。
上述实施例针对图1B的场景进行描述,在实际生产中还有图1A的场景,与上述流程实施例不同之处在于不需要通过网关进行数据包的转发。
上述实施例通过扩展IPsec数据包的报文格式,使得IPsec数据包新增第三部分,该第三部分用于承载租户信息,具体地,该第三部分用于承载通信双方所归属的VxLAN网络的标识,该VNI能够用于IPsec数据包的路由,也能够用于作为索引信息以关联到正确的通信双方的SA,使得IPsec数据包在接收方能够被解封装,并进行其他的安全操作,例如认证,从而使得同一租户的虚拟机之间的通信更加安全,避免可能的被窃取、被篡改和被重放的安全风险。
如图7所示,为本发明实施例提供的通信系统实施例,该通信系统包括第一通信装置71、第二通信装置72以及通信网关73,其中对于通信系统而言,通信网关73为可选设备。本实施例中的第一通信装置可用于实施图2所示中的第一宿主机所实施的方法,具体地,可以实施虚拟交换机101所实施的方法;本实施例中的第二通信装置可用于实施图2所示中的第二宿主机所实施的方法,具体地,可以实施虚拟交换机201所实施的方法;本实施例中的通信网关可用于实施图2所示中的网关所实施的方法。
如图7所示,第一通信装置71包括收发单元711,用于获取所述第一虚拟机的待发送源数据包;第一封装单元712,用于对所述源数据包进行VxLAN格式的封装得到VxLAN数据包,所述VxLAN数据包的VxLAN报头包含所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI;第二封装单元713,用于对所述VxLAN数据包进行因特网安全协议安全性IPsec格式的封装以得到IPsec数据包,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载所述VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述VNI;所述收发单元711,还用于发送所述IPsec数据包。进一步,第一通信装置71还包括协商单元715,用于通过Internet秘钥交换IKE协议协商确定所述第一虚拟机与所述第二虚拟机之间的IPsec的安全关联SA,其中,所述IPsec SA包括四元组索引以及安全要素,所述四元组索引包括安全协议类型、安全参数索引、对端IP地址以及所述第一虚拟机和所述第二虚拟机的归属VNI,所述第一宿主机发送到所述第二宿主机的IKE数据包包括所述VNI。
第二通信装置72包括收发单元721,用于接收来自所述第一宿主机的IPsec数据包,其中,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,所述VxLAN数据包由所述第一虚拟机的源数据包封装得到,所述VxLAN数据包的VxLAN报头包含所述VNI;第一解封装单元722,用于根据所述IPsec数据包中携带的所述VNI和所述IPsec报头,解封装所述IPsec数据包获得VxLAN数据包;第二解封装单元723,用于解封装所述VxLAN数据包得到所述源数据包;所述收发单元721还用于向所述第二虚拟机转发所述源数据包。进一步,第二通信装置72还包括协商单元725,用于通过Internet秘钥交换IKE协议协商确定所述第一虚拟机与所述第二虚拟机之间的IPsec的安全关联SA,其中,所述IPsec SA包括四元组索引以及安全要素,所述四元组索引包括安全协议类型、安全参数索引、对端IP地址以及所述第一虚拟机和所述第二虚拟机的归属VNI,所述第一宿主机发送到所述第二宿主机的IKE数据包包括所述VNI。
通信网关73包括接收单元731,用于接收来自所述第一宿主机的IPsec数据包,其中,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,所述VxLAN数据包由所述第一虚拟机的源数据包封装得到,所述VxLAN数据包的VxLAN报头包含所述VNI;路由单元732,用于获取所述IPsec数据包中携带的所述VNI,根据所述VNI确定所述IPsec数据包的目的接收方为所述第二宿主机,以及根据所述第二宿主机的信息,将所述IPsec数据包发送到所述第二宿主机。
图8为本发明实施例提供的一种设备800的示意图,如图所示,所述设备800包括处理器801、存储器802、通信接口803和总线804。其中,处理器801、存储器802、通信接口803通过总线804进行通信,也可以通过无线传输等其他手段实现通信。该存储器802用于存储程序代码8021,处理器801用于调用存储器802存储的程序代码8021以执行本申请各方法的操作。
处理器801可以执行如下操作:获取所述第一虚拟机的待发送源数据包;对所述源数据包进行VxLAN格式的封装得到VxLAN数据包,所述VxLAN数据包的VxLAN报头包含所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI;对所述VxLAN数据包进行因特网安全协议安全性IPsec格式的封装以得到IPsec数据包,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载所述VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述VNI;发送所述IPsec数据包。
处理器801也可以执行如下操作:接收来自所述第一宿主机的IPsec数据包,其中,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,所述VxLAN数据包由所述第一虚拟机的源数据包封装得到,所述VxLAN数据包的VxLAN报头包含所述VNI;根据所述IPsec数据包中携带的所述VNI和所述IPsec报头,解封装所述IPsec数据包获得VxLAN数据包;解封装所述VxLAN数据包得到所述源数据包,并向所述第二虚拟机转发所述源数据包
处理器801还可以执行如下操作:接收来自所述第一宿主机的IPsec数据包,其中,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,所述VxLAN数据包由所述第一虚拟机的源数据包封装得到,所述VxLAN数据包的VxLAN报头包含所述VNI;获取所述IPsec数据包中携带的所述VNI,根据所述VNI确定所述IPsec数据包的目的接收方为所述第二宿主机;根据所述第二宿主机的信息,将所述IPsec数据包发送到所述第二宿主机。
应理解,设备800可以是上述图1A中的宿主机10或者宿主机20或者网关202,也可能是宿主机10或者宿主机20或者网关202中的任意一部分,设备800中的处理器801可以执行宿主机10或者宿主机20或者网关202所执行的方法。
应理解,在本发明实施例中,处理器801可以是CPU,该处理器801还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、GPU或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
总线804除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线804。
最后,应了解上述实施例仅仅用于阐释,本申请的技术方案不限于此。尽管参考上述优选实施例对本申请进行详细描述,但是应了解,所属领域的技术人员可在不脱离本申请所附权利要求书的范围的情况下,做出各种修改、变更或替换。

Claims (29)

1.一种虚拟机之间通信方法,其特征在于,第一虚拟机与第二虚拟机分别运行于第一宿主机和第二宿主机,所述第一虚拟机与所述第二虚拟机归属相同的可扩展虚拟局域网VxLAN,所述第一虚拟机与所述第二虚拟机之间通信的方法包括:
获取所述第一虚拟机的待发送源数据包;
对所述源数据包进行VxLAN格式的封装得到VxLAN数据包,所述VxLAN数据包的VxLAN报头包含所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI;
对所述VxLAN数据包进行因特网安全协议安全性IPsec格式的封装以得到IPsec数据包,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载所述VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述VNI;
发送所述IPsec数据包。
2.根据权利要求1所述的方法,其特征在于,所述IPsec格式的封装采用安全载荷ESP协议,所述第一部分中的VxLAN数据包中携带的VNI为加密状态,所述第三部分中携带的VNI为非加密状态。
3.根据权利要求1所述的方法,其特征在于,所述IPsec格式的封装采用安全载荷ESP协议和认证头AH协议,所述第一部分中的VxLAN数据包携带的VNI为加密状态,所述第三部分中携带的VNI为非加密状态。
4.根据权利要求1所述的方法,其特征在于,所述IPsec格式的封装采用认证头AH协议,所述第一部分中的VxLAN数据包携带的VNI为非加密状态,所述第三部分中的VNI为非加密状态。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述VxLAN数据包包含外层IP字段,所述第三部分设置于所述外层IP字段与所述IPsec报头之间,并采用用户数据报协议UDP格式封装。
6.根据权利要求2或3所述的方法,其特征在于,所述IPsec报头包括ESP报头,所述第三部分设置于所述ESP报头中。
7.根据权利要求3或4所述的方法,其特征在于,所述IPsec报头包括AH报头,所述第三部分设置于所述AH报头中。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述进行IPsec封装之前,还包括:
所述第一宿主机与所述第二宿主机通过Internet秘钥交换IKE协议协商确定所述第一虚拟机与所述第二虚拟机之间的IPsec的安全关联SA,其中,所述IPsec SA包括四元组索引以及安全要素,所述四元组索引包括安全协议类型、安全参数索引、对端IP地址以及所述第一虚拟机和所述第二虚拟机的归属VNI,所述第一宿主机发送到所述第二宿主机的IKE数据包包括所述VNI。
9.根据权利要求8所述的方法,其特征在于,所述进行IPsec封装包括:
根据所述四元组索引查询所述IPsec SA获得安全要素,根据所述安全要素进行IPsec格式的封装以得到所述IPsec数据包。
10.一种虚拟机之间通信方法,其特征在于,第一虚拟机与第二虚拟机分别运行于第一宿主机和第二宿主机,所述第一虚拟机与所述第二虚拟机归属相同的可扩展虚拟局域网VxLAN,所述第一虚拟机与所述第二虚拟机之间通信的方法包括:
接收来自所述第一宿主机的IPsec数据包,其中,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,所述VxLAN数据包由所述第一虚拟机的源数据包封装得到,所述VxLAN数据包的VxLAN报头包含所述VNI;
根据所述IPsec数据包中携带的所述VNI和所述IPsec报头,解封装所述IPsec数据包获得VxLAN数据包;
解封装所述VxLAN数据包得到所述源数据包,并向所述第二虚拟机转发所述源数据包。
11.根据权利要求10所述的方法,其特征在于,所述IPsec格式的封装采用安全载荷ESP协议,所述第一部分中的VxLAN数据包携带的VNI为加密状态,所述第三部分中携带的VNI为非加密状态。
12.根据权利要求10所述的方法,其特征在于,所述IPsec格式的封装采用安全载荷ESP协议和认证头AH协议,所述第一部分中的VxLAN数据包携带的VNI为加密状态,所述第三部分中的VNI为非加密状态。
13.根据权利要求10所述的方法,其特征在于,所述IPsec格式的封装采用认证头AH协议,所述第一部分中的VxLAN数据包携带的VNI为非加密状态,所述第三部分中的VNI为非加密状态。
14.根据权利要求10-13任一项所述的方法,其特征在于,所述VxLAN数据包包含外层IP字段,所述第三部分设置于所述外层IP字段与所述IPsec报头之间,并采用用户数据报协议UDP格式封装。
15.根据权利要求11或12所述的方法,其特征在于,所述IPsec报头包括ESP报头,所述第三部分设置于所述ESP报头中。
16.根据权利要求12或13所述的方法,其特征在于,所述IPsec报头包括AH报头,所述第三部分设置于所述AH报头中。
17.根据权利要求10-16任一项所述的方法,其特征在于,所述方法还包括:
所述第二宿主机与所述第一宿主机通过Internet秘钥交换IKE协议协商确定所述第一虚拟机与所述第二虚拟机之间的IPsec的安全关联SA,其中,所述IPsec SA包括四元组索引以及安全要素,所述四元组索引包括封装协议类型、安全参数索引、对端IP地址以及所述第一虚拟机和所述第二虚拟机的归属VNI,所述第一宿主机发送到所述第二宿主机的IKE数据包包括所述VNI。
18.根据权利要求17所述的方法,其特征在于,所述第二宿主机根据所述IPsec数据包中携带的所述VNI和所述IPsec报头,解封装所述IPsec数据包获得VxLAN数据包,包括:
所述第二宿主机根据所述IPsec数据包中携带的所述VNI和所述IPsec报头,获得四元组索引,根据所述四元组索引查询所述IPsec SA获得安全要素,根据所述安全要素解封装所述IPsec数据包获得VxLAN数据包。
19.一种虚拟机的数据包的转发方法,其特征在于,第一虚拟机与第二虚拟机分别运行于第一宿主机和第二宿主机,所述第一虚拟机与所述第二虚拟机归属相同的可扩展虚拟局域网VxLAN,所述方法应用于所述第一宿主机与所述第二宿主机之间的网关,包括:
接收来自所述第一宿主机的IPsec数据包,其中,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,所述VxLAN数据包由所述第一虚拟机的源数据包封装得到,所述VxLAN数据包的VxLAN报头包含所述VNI;
获取所述IPsec数据包中携带的所述VNI,根据所述VNI确定所述IPsec数据包的目的接收方为所述第二宿主机;
根据所述第二宿主机的信息,将所述IPsec数据包发送到所述第二宿主机。
20.一种通信装置,其特征在于,用于归属相同的可扩展虚拟局域网VxLAN的第一虚拟机与第二虚拟机之间的通信,所述装置包括:
收发单元,用于获取所述第一虚拟机的待发送源数据包;
第一封装单元,用于对所述源数据包进行VxLAN格式的封装得到VxLAN数据包,所述VxLAN数据包的VxLAN报头包含所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI;
第二封装单元,用于对所述VxLAN数据包进行因特网安全协议安全性IPsec格式的封装以得到IPsec数据包,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载所述VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述VNI;
所述收发单元,还用于发送所述IPsec数据包。
21.根据权利要求20所述的装置,其特征在于,所述第一部分中的VxLAN数据包中携带的VNI为加密状态,所述第三部分中携带的VNI为非加密状态;或者,所述第一部分中的VxLAN数据包中携带的VNI为非加密状态,所述第三部分中携带的VNI为非加密状态。
22.根据权利要求20或21所述的装置,其特征在于,还包括:
协商单元,用于通过Internet秘钥交换IKE协议协商确定所述第一虚拟机与所述第二虚拟机之间的IPsec的安全关联SA,其中,所述IPsec SA包括四元组索引以及安全要素,所述四元组索引包括安全协议类型、安全参数索引、对端IP地址以及所述第一虚拟机和所述第二虚拟机的归属VNI,所述第一宿主机发送到所述第二宿主机的IKE数据包包括所述VNI。
23.一种通信装置,其特征在于,用于归属相同的可扩展虚拟局域网VxLAN的第一虚拟机与第二虚拟机之间的通信,所述装置包括:
收发单元,用于接收来自所述第一宿主机的IPsec数据包,其中,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,所述VxLAN数据包由所述第一虚拟机的源数据包封装得到,所述VxLAN数据包的VxLAN报头包含所述VNI;
第一解封装单元,用于根据所述IPsec数据包中携带的所述VNI和所述IPsec报头,解封装所述IPsec数据包获得VxLAN数据包;
第二解封装单元,用于解封装所述VxLAN数据包得到所述源数据包;
所述收发单元还用于向所述第二虚拟机转发所述源数据包。
24.根据权利要求23所述的装置,其特征在于,所述第一部分中的VxLAN数据包中携带的VNI为加密状态,所述第三部分中携带的VNI为非加密状态;或者,所述第一部分中的VxLAN数据包中携带的VNI为非加密状态,所述第三部分中携带的VNI为非加密状态。
25.根据权利要求23或24所述的装置,其特征在于,还包括:
协商单元,用于通过Internet秘钥交换IKE协议协商确定所述第一虚拟机与所述第二虚拟机之间的IPsec的安全关联SA,其中,所述IPsec SA包括四元组索引以及安全要素,所述四元组索引包括安全协议类型、安全参数索引、对端IP地址以及所述第一虚拟机和所述第二虚拟机的归属VNI,所述第一宿主机发送到所述第二宿主机的IKE数据包包括所述VNI。
26.一种通信网关,其特征在于,用于归属相同的可扩展虚拟局域网VxLAN的第一虚拟机与第二虚拟机之间的通信,包括:
接收单元,用于接收来自所述第一宿主机的IPsec数据包,其中,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,所述VxLAN数据包由所述第一虚拟机的源数据包封装得到,所述VxLAN数据包的VxLAN报头包含所述VNI;
路由单元,用于获取所述IPsec数据包中携带的所述VNI,根据所述VNI确定所述IPsec数据包的目的接收方为所述第二宿主机,以及根据所述第二宿主机的信息,将所述IPsec数据包发送到所述第二宿主机。
27.一种通信装置,其特征在于,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述通信装置运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述计算设备执行权利要求1-19任一项所述的方法。
28.一种通信系统,其特征在于,包括第一宿主机和第二宿主机,所述第一宿主机上运行第一虚拟机,所述第二宿主机上运行第二虚拟机,所述第一虚拟机与所述第二虚拟机归属相同的可扩展虚拟局域网VxLAN;
所述第一宿主机用于获取所述第一虚拟机的待发送源数据包,对所述源数据包进行VxLAN格式的封装得到VxLAN数据包,所述VxLAN数据包的VxLAN报头包含所述第一虚拟机和所述第二虚拟机所归属的VxLAN的标识VNI,对所述VxLAN数据包进行因特网安全协议安全性IPsec格式的封装以得到IPsec数据包,所述IPsec数据包包括第一部分、第二部分与第三部分,所述第一部分用于承载所述VxLAN数据包,所述第二部分包括IPsec报头,所述第三部分用于承载所述VNI,以及发送所述IPsec数据包;
所述第二宿主机用于接收来自所述第一宿主机的IPsec数据包,根据所述IPsec数据包中携带的所述VNI和所述IPsec报头,解封装所述IPsec数据包获得VxLAN数据包,解封装所述VxLAN数据包得到所述源数据包,并向所述第二虚拟机转发所述源数据包。
29.根据权利要求28所述的通信系统,其特征在于,还包括:
通信网关,用于接收来自所述第一宿主机的IPsec数据包,获取所述IPsec数据包中携带的所述VNI,根据所述VNI确定所述IPsec数据包的目的接收方为所述第二宿主机,根据所述第二宿主机的信息,将所述IPsec数据包发送到所述第二宿主机。
CN201811161473.4A 2018-09-30 2018-09-30 数据中心中虚拟机之间的通信方法、装置和系统 Pending CN109525477A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811161473.4A CN109525477A (zh) 2018-09-30 2018-09-30 数据中心中虚拟机之间的通信方法、装置和系统
PCT/CN2019/107266 WO2020063528A1 (zh) 2018-09-30 2019-09-23 数据中心中虚拟机之间的通信方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811161473.4A CN109525477A (zh) 2018-09-30 2018-09-30 数据中心中虚拟机之间的通信方法、装置和系统

Publications (1)

Publication Number Publication Date
CN109525477A true CN109525477A (zh) 2019-03-26

Family

ID=65771626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811161473.4A Pending CN109525477A (zh) 2018-09-30 2018-09-30 数据中心中虚拟机之间的通信方法、装置和系统

Country Status (2)

Country Link
CN (1) CN109525477A (zh)
WO (1) WO2020063528A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020063528A1 (zh) * 2018-09-30 2020-04-02 华为技术有限公司 数据中心中虚拟机之间的通信方法、装置和系统
CN111431789A (zh) * 2020-04-13 2020-07-17 北京星网锐捷网络技术有限公司 一种多数据中心互联通信方法及dci设备
CN111698245A (zh) * 2020-06-10 2020-09-22 成都国泰网信科技有限公司 一种基于国密算法的VxLAN安全网关及二层安全网络组建方法
CN114826672A (zh) * 2022-03-25 2022-07-29 阿里云计算有限公司 云网络的加密、解密方法、装置、计算节点及系统
WO2023125993A1 (zh) * 2021-12-31 2023-07-06 苏州盛科通信股份有限公司 隧道加密,转发和解密方法以及装置
CN116800486A (zh) * 2023-06-13 2023-09-22 中科驭数(北京)科技有限公司 云网络通信方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220360566A1 (en) * 2015-07-31 2022-11-10 Nicira, Inc. Distributed tunneling for vpn

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103560948A (zh) * 2013-11-01 2014-02-05 中国联合网络通信集团有限公司 虚拟机之间的通信方法、设备和系统
CN103618596A (zh) * 2013-05-15 2014-03-05 盛科网络(苏州)有限公司 Vxlan隧道中内层信息的加密方法
US20150379277A1 (en) * 2014-06-30 2015-12-31 Leonard Heyman Encryption Architecture
CN106161225A (zh) * 2015-03-23 2016-11-23 华为技术有限公司 用于处理vxlan报文的方法、装置及系统
CN106209401A (zh) * 2015-04-30 2016-12-07 杭州华三通信技术有限公司 一种传输方法及装置
WO2017143611A1 (zh) * 2016-02-27 2017-08-31 华为技术有限公司 用于处理vxlan报文的方法、设备及系统
CN107770064A (zh) * 2016-08-19 2018-03-06 华为技术有限公司 一种跨网络通信的方法、设备
WO2018109536A1 (en) * 2016-12-17 2018-06-21 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for monitoring virtual extensible local area network (vxlan) tunnel with border gateway protocol (bgp)-ethernet virtual private network (evpn) infrastructure

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109525477A (zh) * 2018-09-30 2019-03-26 华为技术有限公司 数据中心中虚拟机之间的通信方法、装置和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103618596A (zh) * 2013-05-15 2014-03-05 盛科网络(苏州)有限公司 Vxlan隧道中内层信息的加密方法
CN103560948A (zh) * 2013-11-01 2014-02-05 中国联合网络通信集团有限公司 虚拟机之间的通信方法、设备和系统
US20150379277A1 (en) * 2014-06-30 2015-12-31 Leonard Heyman Encryption Architecture
CN106161225A (zh) * 2015-03-23 2016-11-23 华为技术有限公司 用于处理vxlan报文的方法、装置及系统
CN106209401A (zh) * 2015-04-30 2016-12-07 杭州华三通信技术有限公司 一种传输方法及装置
WO2017143611A1 (zh) * 2016-02-27 2017-08-31 华为技术有限公司 用于处理vxlan报文的方法、设备及系统
CN107770064A (zh) * 2016-08-19 2018-03-06 华为技术有限公司 一种跨网络通信的方法、设备
WO2018109536A1 (en) * 2016-12-17 2018-06-21 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for monitoring virtual extensible local area network (vxlan) tunnel with border gateway protocol (bgp)-ethernet virtual private network (evpn) infrastructure

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020063528A1 (zh) * 2018-09-30 2020-04-02 华为技术有限公司 数据中心中虚拟机之间的通信方法、装置和系统
CN111431789A (zh) * 2020-04-13 2020-07-17 北京星网锐捷网络技术有限公司 一种多数据中心互联通信方法及dci设备
CN111698245A (zh) * 2020-06-10 2020-09-22 成都国泰网信科技有限公司 一种基于国密算法的VxLAN安全网关及二层安全网络组建方法
WO2023125993A1 (zh) * 2021-12-31 2023-07-06 苏州盛科通信股份有限公司 隧道加密,转发和解密方法以及装置
CN114826672A (zh) * 2022-03-25 2022-07-29 阿里云计算有限公司 云网络的加密、解密方法、装置、计算节点及系统
CN116800486A (zh) * 2023-06-13 2023-09-22 中科驭数(北京)科技有限公司 云网络通信方法及系统

Also Published As

Publication number Publication date
WO2020063528A1 (zh) 2020-04-02

Similar Documents

Publication Publication Date Title
CN109525477A (zh) 数据中心中虚拟机之间的通信方法、装置和系统
US10333919B2 (en) System and method for traversing a NAT device with IPSec AH authentication
US20200274853A1 (en) Method and system for sending a message through a secure connection
US8379638B2 (en) Security encapsulation of ethernet frames
US9369550B2 (en) Protocol for layer two multiple network links tunnelling
CN103188351B (zh) IPv6环境下IPSec VPN通信业务处理方法与系统
US10044841B2 (en) Methods and systems for creating protocol header for embedded layer two packets
US10439993B2 (en) Mapping system assisted key refreshing
EP3905623A1 (en) Data transmission method and apparatus, related device, and storage medium
US9473466B2 (en) System and method for internet protocol security processing
JP2007036834A (ja) 暗号装置、プログラム、記録媒体、および方法
WO2023030160A1 (zh) 发送报文的方法、网络设备、存储介质及程序产品
CN107454116A (zh) 单隧道模式下IPsec ESP协议的优化方法及装置
JP6075871B2 (ja) ネットワークシステム、通信制御方法、通信制御装置及び通信制御プログラム
CN114338116B (zh) 加密传输方法、装置及sd-wan网络系统
US11750581B1 (en) Secure communication network
CN116489244B (zh) 一种业务数据处理方法、装置、电子设备和存储介质
CN115766063A (zh) 数据传输方法、装置、设备及介质
CN117201075A (zh) 报文传输方法及装置、报文验证方法及装置
CN114567478A (zh) 通信方法及装置
CN107547479A (zh) IPsec的实现方法及装置

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190326

RJ01 Rejection of invention patent application after publication