CN107925623A - 覆盖网络的互连 - Google Patents

覆盖网络的互连 Download PDF

Info

Publication number
CN107925623A
CN107925623A CN201580082242.2A CN201580082242A CN107925623A CN 107925623 A CN107925623 A CN 107925623A CN 201580082242 A CN201580082242 A CN 201580082242A CN 107925623 A CN107925623 A CN 107925623A
Authority
CN
China
Prior art keywords
sdn
address
point information
terminal point
overlay network
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
CN201580082242.2A
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.)
Nokia Technologies Oy
Original Assignee
Nokia Technologies Oy
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 Nokia Technologies Oy filed Critical Nokia Technologies Oy
Publication of CN107925623A publication Critical patent/CN107925623A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

本发明的实施例总体上涉及覆盖网络的互连。提供了通信设备。该设备包括耦合到第一覆盖网络的第一VTEP和耦合到第二覆盖网络的第二VTEP,其中第一和第二覆盖网络使用相同的虚拟网络标识符。第一VTEP被配置为从第一覆盖网络接收针对第二覆盖网络中的目的地VM的地址解析请求,其中地址解析请求包含目的地VM的IP地址。第二VTEP被配置为向第二覆盖网络转发地址解析请求,从第二覆盖网络接收地址解析响应,并且从地址解析响应中获得与目的地VM相关联的端点信息。第一VTEP还被配置为向第一覆盖网络发送端点信息。以这种方式,可以在覆盖网络之间转发与使用相同的虚拟网络标识符的不同的覆盖网络中的VM相关联的端点信息。

Description

覆盖网络的互连
技术领域
本发明的实施例总体上涉及通信领域,并且更具体地涉及用于覆盖网络的互连的方法和装置。
背景技术
网络虚拟化的发展对高网络容量和效率提出了很高的要求。被称为流行的网络虚拟化技术的覆盖网络技术可以容纳数十万个虚拟机(VM),并且从而可以极大地提高网络容量和效率。通常,基于覆盖网络技术的覆盖网络建立在底层物理网络基础设施之上。底层物理网络基础设施可以包括多个计算设备。示例计算设备包括但不限于服务器、交换机、台式计算机、膝上型计算机、平板电脑、智能手机、移动电话、个人数字助理(PDA)等。覆盖网络中的虚拟节点可以通过虚拟或逻辑链路连接,并且每个链路对应于底层物理网络中的计算设备之间的一个或多个物理链路。
虚拟可扩展局域网(VXLAN)是用于在第3层网络上覆盖虚拟化的层2网络的典型的覆盖网络技术。VXLAN允许将媒体访问控制(MAC)分组到因特网协议(IP)分组的隧道传输。具体地,VXLAN网络中可以存在多个VM和VXLAN隧道端点(VTEP)。一个VTEP连接到一个或多个VM。VTEP或VM可以位于底层物理网络中的一个或多个计算设备内。如果源VM意图向目的地VM发送数据,则源VM生成数据分组并且向与其连接的源VTEP发送该分组。在接收到数据分组时,源VTEP通过插入外部报头将分组封装成覆盖分组,并且向连接到目的地VM的目的地VTEP传输覆盖分组。如本文中使用的,术语“覆盖分组”是指在两个VTEP之间传输的经封装的分组,其由VTEP之一通过使用外部报头封装来自相应VM的分组而生成。在目的地VTEP接收到覆盖分组之后,目的地VTEP将覆盖分组解封装成数据分组并且向目的地VM传输数据分组。这样,源VTEP和目的地VTEP形成了用于数据分组的传输的隧道。
通用VXLAN网络和软件定义网络(SDN)VXLAN网络是两个典型的VXLAN网络。互联网工程任务组(IETF)已经提出了请求注释(RFC)7348来指定通用VXLAN网络的框架。对于SDNVXLAN网络,允许具体供应商指定具体框架。
发明内容
通常,本发明的实施例为覆盖网络的互连提供了有效的解决方案。
第一方面,提供了一种通信设备。该设备包括耦合到第一覆盖网络的第一VTEP和耦合到第二覆盖网络的第二VTEP,其中第一和第二覆盖网络使用相同的虚拟网络标识符。第一VTEP被配置为从第一覆盖网络接收针对第二覆盖网络中的目的地虚拟机(VM)的地址解析请求,其中地址解析请求包含目的地VM的因特网协议(IP)地址。第二VTEP被配置为向第二覆盖网络转发地址解析请求,从第二覆盖网络接收地址解析响应,并且从地址解析响应中获得与目的地VM相关联的端点信息。第一VTEP还被配置为向第一覆盖网络发送端点信息。
第二方面,提供了一种通信方法。该方法包括:从第一覆盖网络接收针对第二覆盖网络中的目的地虚拟机(VM)的地址解析请求,第一和第二覆盖网络使用相同的虚拟网络标识符,并且地址解析请求包含目的地VM的因特网协议(IP)地址;向第二覆盖网络转发地址解析请求;从第二覆盖网络接收针对地址解析请求的地址解析响应;从地址解析响应中获得与目的地VM相关联的端点信息;以及向第一覆盖网络发送端点信息。还提供了相应的计算机程序产品。
根据本发明的实施例,利用中介器,可以在使用相同的虚拟网络标识符的不同的覆盖网络之间转发与这些覆盖网络中的VM相关联的端点信息。以这种方式,一个覆盖网络中的源VM可以直接与另一覆盖网络中的目的地VM进行通信。这样的直接通信可以有效且高效地避免性能瓶颈和单点故障的问题。
附图说明
图1示出了本发明的实施例可以在其中实施的环境;
图2示出了根据本发明一个实施例的中介器的示例结构;
图3例示了根据本发明另一实施例的中介器的示例结构;
图4示出了根据本发明的一个实施例的其中中介器实现SDNVXLAN网络中的VM与非SDN VXLAN网络中的VM之间的通信的示例场景;
图5示出了根据本发明的一个实施例的由中介器从SDN VXLAN网络向非SDN VXLAN网络转发广播分组的过程;以及
图6示出了根据本发明一个实施例的通信方法的流程图。
具体实施方式
现在将参考若干示例实施例来讨论本发明。应当理解,这些实施例被讨论仅仅是为了使得本领域技术人员能够更好地理解和实现本发明,而不是对本发明的范围提出任何限制。
如本文中使用的,术语“包括”及其变体应当被解读为表示“包括但不限于”的开放式术语。术语“基于”应当被解读为“至少部分地基于”。术语“一个实施例”和“实施例”应当被解读为“至少一个实施例”。术语“另一实施例”应当被解读为“至少一个其他实施例”。下面可以包括其他明确的和隐含的定义。
图1示出了本发明的实施例可以在其中实施的示例环境100。如图所示,在环境100中,存在两个覆盖网络,包括SDN VXLAN网络110和非SDN VXLAN网络120。在本发明的上下文中,术语“非SDNVXLAN网络”是指其框架符合例如由IETF标准化的RFC 7348等标准的VXLAN网络。
如图1所示,SDN VXLAN网络110包括两个VM 113和114、以及分别连接到VM 113和114的两个SDN VTEP 111和112。非SDNVXLAN网络120包括两个VM 123和124、以及分别连接到VM 123和124的两个非SDN VTEP 121和122。应当认识到,环境100中的覆盖网络的数目和类型仅用于说明的目的,而没有提出限制。环境100中可以有任意适当数目的覆盖网络,并且覆盖网络可以是任意适当的类型。同样,个体覆盖网络110或120中的VM和VTEP的数目仅用于说明的目的,而没有提出限制。在SDN VXLAN网络110或非SDNVXLAN网络120中,可以有任意适当数目的VM连接到任意适当数目的VTEP。
如上所述,诸如SDN VXLAN网络110和非SDN VXLAN网络120等覆盖网络可以建立在包括多个计算设备的底层物理网络之上。计算设备的示例包括但不限于服务器、交换机、台式计算机、膝上型计算机、平板电脑、智能手机、移动电话、PDA等。诸如VM 113、114、123和124以及VTEP 111、112、121和122等覆盖网络中的虚拟节点可以位于底层物理网络中的一个或多个计算设备内。
在底层物理网络中,计算设备可以通过通信介质与另一计算设备通信。通信介质包括但不限于用电、光、RF、红外、声学或其他载体实现的有线或无线技术。
如上所述,在VXLAN网络中,VTEP通常执行分组的封装和解封装。逻辑上,VTEP可以包括覆盖模块和交换模块。交换模块经由本地端口连接到VM,并且可以从VM接收分组(有时也称为帧等)。如本文中使用的,术语“本地端口”是指能够实现VM与VTEP之间的传输的任意适当的虚拟或逻辑端口。覆盖模块将从VM接收的分组封装成覆盖分组,并且通过底层物理网络之上的虚拟隧道向远程VTEP发送覆盖分组。同时,覆盖模块可以将经由外部端口从远程VTEP接收的覆盖分组解封装,并且然后解封装的分组又通过交换模块和本地端口被发送给VM。如本文中使用的,术语“外部端口”是指能够实现VTEP之间的传输的任意适当的端口。
VXLAN网络可以包括多个VXLAN段,并且只有相同VXLAN段内的VM可以彼此通信。VXLAN段可以由VXLAN网络标识符(VNID)来标识,VIDLAN网络标识符通常由24个比特组成,以使得最多1600万个VXLAN段能够共存于VXLAN网络中。为了实现具有相同VXLAN段的VM之间的通信,VTEP具有包含单个VNID的条目的转发表。转发表中的一个条目指示MAC地址到本地端口或相应的VXLAN段内的远程VTEP的IP地址的映射。
具体地,根据这个示例实施例,当VTEP在本地端口从VM接收到分组时,VTEP使用目的地VM的目的地MAC地址在转发表中搜索朝向目的地VM的本地端口、或者连接到目的地VM的目的地VTEP的映射IP地址。在本发明的上下文中,源VM是指发起通信的VM,并且目的地VM是指终止通信的VM。相应地,源VTEP是指经由本端端口连接到源VM的VTEP,并且目的地VTEP是指经由本端端口连接到目的地VM的VTEP。在找到映射的条目后,VTEP可以确定接收的分组应当通过本地端口传送给所连接的VM,还是应当被封装并且通过虚拟化隧道发送给远程VTEP。另一方面,当经由外部接口接收到经封装的分组时,VTEP使用内部目的地MAC地址在转发表中搜索朝向目的地VM的本地端口。然后,分组被解封装并且经由本地端口传送给目的地VM。
根据协议,在SDN VXLAN网络110和非SDN VXLAN网络120中,MAC地址到IP地址的映射由VTEP以不同的方式创建和更新。具体地,SDN VXLAN网络110中的VTEP获知控制平面中的与VM和VTEP相关联的地址,而非SDN VXLAN 120中的VTEP获知数据平面中的与VM和VTEP相关联的地址。
作为示例,在VM 123向非SDN VXLAN网络120中的VM 124发起通信的情况下,在源VTEP 121从源VM 123接收到目的地为目的地VM 124的分组之后,源VTEP 121通过查找转发表来确定源VM123和目的地VM 124是否在同一VXLAN段内以及是否存在分组中包含的目的地MAC地址到远程VTEP 122的IP地址或本地端口的映射。响应于映射指向VTEP 122,源VTEP121使用外部报头来封装分组。外部报头可以包括MAC报头、IP报头和VXLAN报头,其中MAC报头包括目的地VTEP 122的MAC地址,IP报头包括目的地VTEP 122的IP地址,并且VXLAN报头包括VNID。然后,经封装的分组被发送给VTEP 122。
在接收到经封装的分组时,目的地VTEP 122验证VNID的有效性,并且通过查找其自己的转发表来确定在所连接的VM中是否存在如下VM,该VM与VNID相对应并且使用所接收的分组中携带的目的地MAC地址。响应于找到VM 124,所接收的分组被解封装并且经由相应的本地端口传送给VM 124。
除了将分组传送给目的地VM 124之外,目的地VTEP 122还获知VM 123的源MAC地址到VTEP 121的源IP地址的映射,并且继而将这个映射存储在转发表中。这样,当目的地VM124发送响应分组时,VTEP 122可以从转发表中获得转发地址信息,并且因此可以避免响应分组的未知目的地泛洪。
在SDN VXLAN网络110中,转发过程类似于非SDN VXLAN网络120中的转发过程。SDNVXLAN网络110中的VTEP 111或112也使用转发表来确定如何转发经由外部接口或经由本地端口接收的分组。不同之处在于,在SDN VXLAN网络110中,如上所述,地址是在控制平面中获知的。具体地,VTEP 111或112不是在数据平面中获知地址之间的映射以及自己创建转发条目,而是向专用控制器查询与目的地VM相关联的端点信息。在本发明的上下文中,与VM相关联的端点信息包括但不限于VM的MAC地址、VM的IP地址、连接到VM的VTEP的IP地址以及与VM相关联的VNID。如图1所示,SDN VXLAN网络110还包括实现这样的查询的SDN控制器115。同样,SDN控制器115可以位于底层物理网络中的一个或多个计算设备内。在从SDN控制器115接收到端点信息之后,VTEP 111或112可以在本地高速缓存该信息。以这种方式,VTEP111或112下一次不必查询控制器115。
除了向SDN控制器115查询与目的地VM相关联的端点信息之外,VTEP 111或112还向控制器115注册与源VM相关联的端点信息。例如,在VM 113和114属于与VNID相对应的同一VXLAN段的情况下,在VTEP 111从VM 113接收到将VM 114的IP地址解析为相应的MAC地址的地址解析协议(ARP)请求之后,VTEP 111在本地高速缓存中搜索MAC地址。如果未找到MAC地址,则VTEP 111向控制器115查询与VM 114相关联的端点信息。如果控制器115不知道端点信息,则控制器115可以指示包含VNID的所有VTEP执行解析。在VTEP 112接收到指令之后,VTEP 112可以向与其连接的VM查询。如果从VM 114接收到ARP响应,则VTEP 112将向控制器115注册被包含在ARP响应中的相关联的端点信息。
如上所述,非SDN VXLAN网络120的框架由RFC 7348中的IETF指定,而SDN VXLAN网络110的框架由特定供应商指定。由于两种类型的VXLAN网络的框架的标准化不一致,所以非SDN VXLAN网络中的VM可能无法与SDN VXLAN网络中的VM通信,并且来自一个供应商的SDN VXLAN网络中的VM可能无法与来自另一供应商的SDN VXLAN网络中的VM通信。
根据本发明的示例实施例,如图1所示,在SDN VXLAN网络110与非SDN VXLAN网络120之间布置有被称为中介器130的通信设备。中介器130同样可以位于底层物理网络中的一个或多个计算设备内。在SDN VXLAN网络110和非SDN VXLAN网络120使用相同的VNID的情况下,通过中介器130,SDN VXLAN网络110中的VM 113或114可以获得非SDN VXLAN网络120中的VM 123或124的MAC地址,并且SDN VXLAN网络110中的VTEP 111或112可以获得VM 123或124的MAC地址到非SDN VXLAN网络120中的VTEP 121或122的IP地址的映射。因此,VM 113或114可以直接与VM 123或124通信。
图2示出了根据本发明一个示例实施例的中介器130的示例结构。如图所示,中介器130包含两个VTEP,其包括第一VTEP 210和第二VTEP 220。第一VTEP 210耦合到第一覆盖网络,第二VTEP 220耦合到第二覆盖网络,第二覆盖网络与第一覆盖网络使用相同的虚拟网络标识符。如本文中使用的,术语“虚拟网络标识符”是指可以标识覆盖网络的任意适当的标识符。这样的标识符的示例包括但不限于VNID。
根据本发明的示例实施例,第一和第二覆盖网络可以是符合例如IETF标准等标准的任意适当类型的覆盖网络,或者可以由特定供应商提供。因此,第一VTEP 210和第二VTEP220分别用作第一和第二覆盖网络内的VTEP。可以理解,中介器130中的VTEP的数目仅用于说明的目的,而不提出限制。中介器130可以包括耦合到相应数目的覆盖网络以实现这些覆盖网络的互连的任意适当数目的VTEP。
根据本发明的示例实施例,中介器130中的第一VTEP 210从第一覆盖网络接收针对第二覆盖网络中的目的地VM的地址解析请求,其中地址解析请求携带目的地VM的IP地址。地址解析请求包括针对目的地VM的ARP请求和针对目的地VM的端点信息解析请求中的至少一个。在本发明的上下文中,术语“ARP请求/响应”是指基于ARP分组的地址解析请求/响应。术语“端点信息解析请求/响应”是指通过SDN控制平面传送的地址解析请求/响应。地址解析请求的实现取决于第一覆盖网络的实现,这将在下面参考图3详细描述。
通过中介器130,源自于第一覆盖网络的地址解析请求可以被转发给第二覆盖网络。中介器130中的第二VTEP 220可以从第二覆盖网络接收地址解析响应,作为对来自第一覆盖网络的地址解析请求的响应。然后,第二VTEP 220从地址解析响应中获得与目的地VM相关联的端点信息。所获得的地址可以经由中介器130被发送给第一覆盖网络。以这种方式,第一覆盖网络中的源VM可以知道第二覆盖网络中的目的地VM的MAC地址,并且第一覆盖网络中的源VTEP可以知道目的地VM的MAC地址到第二覆盖中的目的地VTEP的IP地址的映射。因此,不同覆盖网络中的VM可以直接通信。根据本发明的实施例实现的系统因此可以避免或减轻否则可能存在的流量瓶颈和/或单点故障的问题。
图3示出了根据本发明的另一示例实施例的中介器130的示例结构。在这个示例中,中介器130包括耦合到SDN VXLAN网络的SDNVTEP 310和耦合到非SDN VXLAN网络的非SDN VTEP 320。应当理解,中介器130可以应用于图1中的环境100。因此,SDN VTEP 310耦合到SDN VXLAN网络110,并且非SDN VTEP 320耦合到非SDNVXLAN网络120。
应当理解,中介器130中的VTEP的类型仅用于说明的目的,而不提出限制。根据本发明的示例实施例,中介器130可以包括耦合到相应类型的覆盖网络的任意适当类型的VTEP。例如,中介器130可以包括耦合到两个SDN VXLAN网络的两个SDN VTEP。
如图3所示,SDN VTEP 310包括耦合到SDN VXLAN网络110的SDN接口311、SDN控制平面代理312和SDN交换模块313。非SDN VTEP 320包括耦合到非SDN VXLAN网络120的非SDN接口321、非SDN覆盖模块322和非SDN交换模块323。下面将参考图4来描述SDN VTEP 310和非SDN VTEP 320的组件的功能,图4示出了其中中介器130实现SDN VXLAN网络110中的VM113与非SDNVXLAN网络120中的VM 123之间的通信的示例场景。
在如图4所示的场景中,SDN VXLAN网络110中的VM 113想要使用IP地址“IP3”与非SDN VXLAN网络120中的VM 123通信。源VM 113向在SDN VXLAN网络110中与其连接的源VTEP111发送将IP地址“IP3”解析为相应的MAC地址的ARP请求。在接收到ARP请求之后,VTEP 111在本地高速缓存中的转发表中搜索与跟VM113相关联的VNID相对应的转发条目。如果找到目的地VM 123的MAC地址,则VTEP 111向VM 113发送回携带MAC地址的ARP响应。如果未找到MAC地址,则VTEP 111向SDN控制器115发送针对与VM 123相关联的端点信息的端点信息解析请求。同时,VTEP 111向控制器115注册与VM 113相关联的端点信息。
在SDN控制器115从VTEP 111接收到请求之后,控制器确定与目的地VM 123相关联的端点信息。如果SDN控制器115不知道端点信息,则控制器115向每个SDN VTEP发出包含VNID的端点信息解析请求,以使用IP地址“IP3”查询与VM 123相关联的端点信息。
在这种情况下,中介器130可以接收SDN VXLAN网络110中的控制器115发送的端点信息解析请求,并且然后向非SDN VXLAN网络120转发端点信息解析请求。具体地,中介器130中的SDN VTEP310的SDN接口311从控制器115接收端点信息解析请求。然后,SDN控制平面代理312基于所接收的端点信息解析请求生成ARP请求,其中ARP请求包含中介器130的MAC地址作为源MAC地址。通过SDN VTEP 310的SDN交换模块313和非SDN VTEP 320的非SDN交换模块323,ARP请求被输入到非SDN VTEP 320中。
在接收到ARP请求之后,非SDN VTEP 320的非SDN覆盖模块322通过使用非SDNVTEP 320的IP地址作为外部报头的源IP地址对ARP请求进行封装。耦合到非SDN VXLAN网络120的非SDN接口321向非SDN VXLAN网络120发送经封装的ARP请求。以这种方式,来自SDNVXLAN网络110中的控制器115的地址解析请求可以被转发给非SDN VXLAN网络120。
经封装的ARP请求可以以任意适当的方式发送到非SDNVXLAN网络120。例如,经封装的ARP请求可以广播给非SDNVXLAN网络120中的所有VTEP 121和122。具体地,通过插入包含非SDN VXLAN网络120的IP多播组地址作为目的地IP地址的外部报头,ARP请求可以被封装成覆盖分组。因此,经封装的ARP请求被传送给非SDN VXLAN网络120中的VTEP 121和122。作为备选示例,通过将VTEP 121和122的IP地址分别作为目的地IP地址插入到外部报头中,经封装的ARP请求可以单播到非SDN VXLAN网络120中的VTEP 121和122。
在如图4所示的场景中,在非SDN VXLAN网络120中的VTEP121或122接收到经封装的ARP请求之后,VTEP 121或者122将其解封装成ARP请求,并且然后将ARP请求传送给与其相连并且与VNID相关联的所有VM。同时,VTEP 121或122还获知中介器130的MAC地址到中介器130的非SDN VTEP 320的IP地址的映射,因为作为源MAC地址的中介器130的MAC地址已经被包含在内部报头中并且作为源IP地址的非SDN VTEP 320的IP地址已经被包含在外部报头中。
在目的地VM 123从目的地VTEP 121接收到ARP请求之后,VM123用包含VM 123的MAC地址“MAC3”作为源MAC地址并且包含中介器130的MAC地址作为目的地MAC地址的ARP响应进行应答。一旦接收到ARP响应,VTEP 121通过查找转发表来获得从中介器130的MAC地址到非SDN VTEP 320的IP地址的映射。然后,VTEP121通过插入包含VTEP 121的IP地址作为源IP地址并且包含非SDNVTEP 320的IP地址作为目的地IP地址的外部报头来封装ARP响应。VTEP 121向中介器130发送经封装的ARP响应。
根据本发明的示例实施例,中介器130还可以从非SDN VXLAN网络120向SDN VXLAN网络110转发与目的地VM 123相关联的端点信息。具体地,非SDN VTEP 320的非SDN接口321从非SDNVXLAN网络120接收经封装的ARP响应。非SDN覆盖模块322将经封装的ARP响应解封装成ARP响应,并且获得与目的地VM 123相关联的端点信息。非SDN VTEP 320的非SDN交换模块323向SDNVTEP 310的SDN交换模块313传输ARP响应。在接收到ARP响应之后,SDN控制平面代理312获取由非SDN VTEP 320的非SDN覆盖模块322获得的端点信息。然后,SDN控制平面代理312生成携带所获得的端点信息的端点信息解析响应,并且经由SDN接口311向SDNVXLAN网络110中的SDN控制器115发送端点信息解析响应。
为了便于操作,在一个示例实施例中,所获得的端点信息可以由非SDN VTEP 320的非SDN覆盖模块322存储在中介器130处。因此,SDN VTEP 310的SDN控制平面代理312可以在中介器130中搜索端点信息。端点信息的存储可以以任意适当的方式来实现。例如,端点信息可以存储在与在解封装之后得出的ARP响应相关联的元数据中。
通过由中介器130从非SDN VXLAN网络120向SDN VXLAN网络110转发与目的地VM123相关联的端点信息,SDN VXLAN网络110的源VM 113可以向非SDN VXLAN网络120的目的地VM 120直接传输数据。例如,如图4所示,在SDN控制器115接收到与目的地VM 123相关联的端点信息之后,控制器115发送来自VTEP 111的端点信息解析请求的端点信息解析响应。该响应携带与目的地VM123相关联的端点信息。当VTEP 111接收到端点信息时,它使用该信息在转发表中为VM 123创建条目,并且同时向VM 113发送携带有IP地址“IP3”到MAC地址“MAC3”的解析结果的ARP响应。在获知VM 123的MAC地址之后,VM 113可以向VM 123直接发送数据。
在如图4所示的场景中,SDN VXLAN网络110的VM 113与非SDN VXLAN网络120的VM123之间的通信是双向的。例如,在非SDN VXLAN网络120中的VM 123接收到从SDN VXLAN网络110中的VM 113传输的数据之后,VM 123可以向VM 113发送响应数据。在这种情况下,由于VM 123不知道VM 113的MAC地址,所以VM123也发送将VM 113的IP地址“IP1”解析相为应的MAC地址的ARP请求,其中ARP请求包含VM 113的MAC地址作为源MAC地址。
在VTEP 121接收到来自VM 123的ARP请求之后,VTEP 121在本地转发表中查找映射关系。如果未找到映射,则VTEP 121通过插入包含VTEP 121的IP地址作为源IP地址的外部报头来封装ARP请求,并且在非SDN VXLAN网络120中广播经封装的ARP请求。因此,中介器130可以接收经封装的ARP请求。
根据本发明的示例实施例,中介器130同样可以从非SDNVXLAN网络120向SDNVXLAN网络110转发经封装的ARP请求。具体地,在经封装的ARP请求由非SDN VTEP 320的SDN接口321从非SDN VXLAN网络120接收到之后,非SDN覆盖模块322将经封装的ARP请求解封装成ARP请求。然后,非SDN交换模块313向SDN VTEP 310的SDN交换模块313发送该ARP请求。
在经由SDN交换模块323接收到ARP请求之后,SDN VTEP 310的SDN控制平面代理312基于所接收的ARP请求生成端点信息解析请求。然后,端点信息解析请求经由SDN接口311被发送到SDNVXLAN网络110的SDN控制器115。以这种方式,源自于非SDNVXLAN网络120的地址解析请求可以被转发给SDN VXLAN网络110。
在一个示例实施例中,中介器130可以向SDN控制器115注册VM 123的MAC地址到VTEP 121的IP地址的映射。例如,在经封装的ARP请求经由非SDN接口321从非SDN VXLAN网络120被输入到非SDN VTEP 320中之后,非SDN覆盖模块322获得与VM 123相关联的端点信息。然后,在解封装之后生成的ARP请求经由SDN交换模块313被输入到SDN VTEP 310中,SDN控制平面代理312获取所获得的端点信息,并且经由SDN接口311向SDN控制器115注册获取到的端点信息。
同样,由非SDN VTEP 320的非SDN覆盖模块322获得的端点信息可以被存储在中介器130处。因此,SDN VTEP 310的SDN控制平面代理312可以在中介器130中搜索端点信息。同样,端点信息可以存储在与在解封装之后生成的ARP请求相关联的元数据中。
如上所述,当VM 113发送针对VM 123的ARP请求时,SDN控制器115能够从VTEP 111获知VM 113的端点信息。因此,响应于从中介器130接收到端点信息解析请求,SDN控制器115使用与中介器130相关联的端点信息来对中介器130进行响应。因此,中介器130可以向非SDN VXLAN网络120转发端点信息。
具体地,SDN VTEP 310的SDN接口311从SDN控制器115接收端点信息解析响应。SDN控制层代理312从所接收的端点信息解析响应中获得与VM 113相关联的端点信息,并且生成携带所获得的端点信息中的MAC地址作为源MAC地址的ARP响应。然后,ARP响应经由SDN交换模块323和非SDN交换模块313从SDN VTEP 310传输到非SDN VTEP 320。
在接收到ARP响应之后,非SDN覆盖模块322通过插入包含所获得的端点信息中的IP地址作为源IP地址的外部报头来封装ARP响应。然后,非SDN接口313向非SDN VXLAN网络120发送经封装的ARP响应。以这种方式,与VM 113相关联的端点信息可以从SDN VXLAN网络110被转发给非SDN VXLAN网络120。
在如图4所示的场景中,非SDN VXLAN网络120中的VTEP 121可以接收由中介器130发送的经封装的ARP响应。然后,VTEP 121将经封装的ARP响应解封装成ARP响应,并且将该ARP响应传送给VM 123。在VM 123获知VM 113的MAC地址“MAC1”之后,VM123可以使用MAC地址“MAC1”作为目的地MAC地址直接向VM113发送数据。
根据本发明的示例实施例,通过中介器130,与不同覆盖网络中的VM相关联的端点信息可以在彼此之间被转发,并且因此,VM可以彼此直接通信。与传统方法相比,使用中介器130的方法可以避免性能瓶颈和单点故障,并且因此更加有效和高效。根据本发明的实施例实现的系统因此可以避免或减轻否则可能存在的流量瓶颈和/或单点故障的问题。
在一个示例实施例中,当中介器130从一个覆盖网络向另一覆盖网络转发与VM相关联的端点信息时,中介器130可以将端点信息存储在本地转发表中。因此,当中介器130下次接收到针对端点信息的地址解析请求时,中介器130可以在表中搜索端点信息,并且使用搜索到的端点信息向请求者作出响应,以便实现更高效的地址解析。
除了如上所述转发端点信息之外,在一个示例实施例中,中介器130可以从一个覆盖网络向另一覆盖网络转发广播通信。转发广播通信的这一功能将在下面参考图5来描述,图5示出了由中介器130从SDN VXLAN网络110向非SDN VXLAN网络120转发广播分组的过程。
如图5所示,SDN VXLAN网络110中的VM 113发送包含VM 113的MAC地址作为源MAC地址的MAC广播分组。在连接到VM 113的VTEP 111接收到MAC分组之后,VTEP 111获得与VM113相关联的VNID,并且通过分别使用在SDN VXLAN网络110中的所有VTEP的IP地址中的每个IP地址作为外层报头的目的地IP地址来将MAC广播分组封装成多个IP分组。此外,VTEP111将其自己的IP地址作为源IP地址插入到外部报头中。在这种情况下,作为SDNVXLAN网络110的成员,中介器130可以接收IP分组之一。例如,中介器130的SDN VTEP 310可以经由SDN接口311接收IP分组。应当理解,作为备选示例,可以不是经由SDN接口311,而是经由SDNVTEP 310中的另一接口来接收IP分组。
如图3所示,中介器130中的SDN VTEP 310还包括SDN覆盖模块314。在从SDN VXLAN网络110接收到IP分组之后,SDN覆盖模块314将IP分组解封装成MAC广播分组。然后,SDN交换模块313向非SDN VTEP 320的非SDN交换模块323传输MAC广播分组。
在接收到MAC分组时,非SDN覆盖模块322通过插入包含第二覆盖网络的IP多播组地址作为目的地IP地址的外部报头来将MAC广播分组封装成另外的IP分组。因此,经封装的IP分组可以被发送给非SDN VXLAN网络120中的所有VTEP 121和122。以这种方式,在SDNVXLAN网络110中广播的分组可以被转发给非SDN VXLAN网络120。
此外,SDN覆盖模块314可以从SDN VXLAN网络110接收的IP分组的外部报头中获得作为源IP地址的VTEP 111的IP地址。因此,非SDN覆盖模块322可以使用VTEP 111的IP地址作为另外的IP分组的外部报头的源IP地址。因此,非SDN VXLAN网络120中的VTEP 121和122可以获知VM 113的MAC地址到VTEP 111的IP地址的映射。
类似于由中介器130获得的与VM相关联的端点信息,VTEP 111的所获得的IP地址也可以通过SDN VTEP 310的SDN覆盖模块314存储在中介器130处。因此,非SDN VTEP 320的非SDN覆盖模块322可以在中介器130中搜索VTEP 111的IP地址。同样,端点信息可以存储在与在解封装IP分组之后得出的与MAC分组相关联的元数据中。
如上所述,从非SDN VXLAN网络120到SDN VXLAN网络110的转发过程类似于从SDNVXLAN网络110到非SDN VXLAN网络120的转发过程。不同之处在于,由中介器130接收和传输的IP分组的形式是不同的。例如,中介器130的非SDN VTEP 320可以经由非SDN接口321从非SDN VXLAN网络110接收IP组播分组。IP组播分组由非SDN VXLAN中的VTEP网络110通过使用IP多播组地址封装MAC广播分组来生成。此外,SDN VTEP 320的SDN覆盖模块322通过分别使用SDN VXLAN网络110中的所有VTEP的IP地址中的每个IP地址作为外部报头的目的地IP地址来将MAC广播分组封装成多个IP分组。
在如图5所示的场景中,在VM 113广播分组之后,广播分组通过底层物理网络被泛洪。这可能导致在中介器130中的SDN VTEP 310和非SDN VTEP 320两者处接收到广播分组。如果SDN VTEP 310和非SDN VTEP 320两者都执行转发,则可能发生转发循环或广播风暴的问题。
为了避免这样的问题,在一个示例实施例中,中介器130可以在诸如SDN VTEP 310和非SDN VTEP 320等内部VTEP中包括过滤模块。过滤模块可以使得从外部覆盖网络接收到的分组能够只由相应的内部VTEP处理。例如,如图3所示,在中介器130中,SDN VTEP 310可以包括SDN过滤模块315,并且非SDN VTEP 320可以包括非SDN过滤模块324。通过SDN过滤模块315和非SDN过滤模块324,只有SDN VTEP 310处理源自于SDN VXLAN网络110的分组,并且只有非SDN VTEP 320处理源自于非SDN VXLAN网络120的分组。
根据本发明的示例实施例,过滤模块可以使用过滤规则来确定接收的分组是否将被传送给内部VTEP中的后续组件。具体地,如果分组符合过滤规则,则分组将被传送;否则,分组将被丢弃。
过滤模块可以使用任意适当的过滤规则。在一个示例实施例中,过滤规则可以基于包含允许的IP地址或IP子网的访问控制列表(ACL)。如果接收的分组使用被包含在ACL中的IP地址或IP子网,则分组将被允许通过。应当理解,使用ACL作为过滤规则仅仅用于说明的目的,而没有提出任何限制。本发明的范围在这方面将不受限制。
被包括在中介器130中的模块可以以各种方式来实现,包括软件、硬件、固件或其任何组合。在一个示例实施例中,一个或多个模块可以使用软件和/或固件(例如,存储在存储介质上的机器可执行指令)来实现。除了机器可执行指令之外或代替机器可执行指令,中介器130中的部分或全部模块可以至少部分地由一个或多个硬件逻辑组件来实现。例如而非限制,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、系统级芯片系统(SOC)、复杂可编程逻辑器件(CPLD)等。
图6示出了根据本发明的一个示例实施例的通信方法600的流程图。可以理解,方法600可以由图1和2所示的中介器130来实现。
如图6所示,在610,从第一覆盖网络接收针对第二覆盖网络中的目的地VM的地址解析请求。第一和第二覆盖网络使用相同的虚拟网络标识符,并且地址解析请求包含目的地VM的因特网协议(IP)地址。
在610,向第二覆盖网络转发地址解析请求。在620,从第二覆盖网络接收地址解析请求的地址解析响应。在630,从地址解析响应中获得与目的地VM相关联的端点信息,然后在640,向第一覆盖网络发送该端点信息。
在一个示例实施例中,第一覆盖网络可以是SDN VXLAN网络,第二覆盖网络可以是非SDN VXLAN网络。在这种情况下,从第一覆盖网络接收地址解析请求的步骤可以包括:从SDN VXLAN网络的SDN控制器接收端点信息解析请求。向第二覆盖网络转发地址解析请求的步骤可以包括:基于所接收的端点信息解析请求生成ARP请求,ARP请求使用通信设备的MAC地址作为源MAC地址,通过插入包含非SDN VTEP的IP地址作为源IP地址的外层报头来封装ARP请求,并且向非SDN VXLAN网络发送经封装的ARP请求。
备选地或另外地,在这种情况下,从第二覆盖网络接收地址解析响应的步骤可以包括:从非SDN VXLAN网络接收经封装的ARP响应。从地址解析响应中获得端点信息的步骤可以包括:从经封装的ARP响应中获得端点信息。向第一覆盖网络发送端点信息的步骤可以包括:生成携带所获得的端点信息的端点信息解析响应,并且向SDN控制器发送该端点信息解析响应。
在一个示例实施例中,第一覆盖网络可以是非SDN VXLAN网络,并且第二覆盖网络是SDN VXLAN网络。在这种情况下,从第一覆盖网络接收地址解析请求的步骤可以包括:从非SDN VXLAN网络接收针对目的地VM的经封装的ARP请求。向第二覆盖网络转发地址解析请求的步骤可以包括:将经封装的ARP请求解封装成ARP请求,基于ARP请求生成端点信息解析请求,并且向SDN VXLAN网络的SDN控制器发送该端点信息解析请求。在这种情况下,在一个示例实施例中,方法600还可以包括:获得与源VM相关联的另外的端点信息;并且向SDN控制器发送另外的端点信息。
备选地或另外地,在这种情况下,从第二覆盖网络接收地址解析响应的步骤可以包括:从SDN控制器接收端点信息解析响应。从地址解析响应中获得端点信息的步骤可以包括:从所接收的端点信息解析响应中获得端点信息。向第一覆盖网络发送端点信息的步骤可以包括:使用所获得的端点信息中的MAC地址作为源MAC地址来生成ARP响应,通过插入包含所获得的端点信息中的IP地址作为源IP地址的外部报头来封装ARP响应,并且向非SDNVXLAN网络发送经封装的ARP响应。
在一个示例实施例中,方法600还可以包括:从第一覆盖网络接收IP分组,该IP分组是通过封装MAC广播分组而生成的;并且向第二覆盖网络转发该IP分组。
在一个示例实施例中,向第二覆盖网络转发IP分组的步骤可以包括:将IP分组解封装成MAC广播分组;通过插入包含与第二覆盖网络相关联的IP地址作为目的地IP地址的外部报头来将MAC广播分组封装成另外的IP分组;以及向第二覆盖网络传输另外的IP分组。
在一个示例实施例中,方法600还可以包括:获得从第一覆盖网络接收的IP组播分组的原始源IP地址。在这个示例中,将MAC广播分组封装成另外的IP分组的步骤包括:使用原始源IP地址作为另外的IP分组的源IP地址。
应当理解,被包括在中介器130中的模块的功能对应于方法600的步骤。以上参考图2至图5描述的所有操作和特征同样适用于方法600的步骤,并且具有类似的效果。为简化起见,将省略细节。
通常,本发明的各种实施例可以用硬件或专用电路、软件、逻辑或其任何组合来实现。一些方面可以用硬件来实现,而其他方面可以用可以由控制器、微处理器或其他计算设备执行的固件或软件来实现。虽然本发明的实施例的各个方面被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的框、装置、系统、技术或方法可以用硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备、或其某种组合来实现。
作为示例,本发明的实施例可以在机器可执行指令的一般上下文中描述,诸如在目标真实或虚拟处理器上的设备中执行的程序模块中包括的机器可执行指令。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。程序模块的功能可以在各种实施例中根据需要在程序模块之间组合或拆分。程序模块的机器可执行指令可以在本地或分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质中。
用于执行本发明的方法的程序代码可以以一种或多种编程语言的任何组合来编写。这些程序代码可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码在由处理器或控制器执行时引起在流程图和/或框图中指定的功能/操作被实现。程序代码可以完全在机器上、部分在机器上、作为独立软件包、部分在机器上并且部分在远程机器上、或者完全在远程机器或服务器上执行。
在本发明的上下文中,机器可读介质可以是可以包含或存储用于由或者结合指令执行系统、装置或设备使用的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体的系统、装置或设备、或前述的任意适当的组合。机器可读存储介质的更具体的示例将包括具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或前述的任意适当的组合。
此外,尽管以特定顺序描述了操作,但是这不应当被理解为要求这样的操作以所示的特定顺序或按顺序执行,或者要执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。同样,尽管在上面的讨论中包含了若干具体的实现细节,但是这些细节不应当被解释为对本发明的范围的限制,而是作为可以特定于特定实施例的特征的描述。在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任意适当的子组合来实现。
虽然本发明已经以特定于结构特征和/或方法动作的语言进行了描述,但是应当理解,所附权利要求书中限定的本发明不一定限于上面描述的具体特征或动作。相反,上面描述的具体特征和动作被公开作为实现权利要求的示例形式。

Claims (24)

1.一种通信设备,包括:
耦合到第一覆盖网络的第一虚拟隧道端点,以及
耦合到第二覆盖网络的第二虚拟隧道端点,所述第一覆盖网络和所述第二覆盖网络使用相同的虚拟网络标识符,
其中所述第一虚拟隧道端点被配置为从所述第一覆盖网络接收针对所述第二覆盖网络中的目的地虚拟机的地址解析请求,所述地址解析请求包含所述目的地虚拟机的因特网协议(IP)地址,
其中所述第二虚拟隧道端点被配置为向所述第二覆盖网络转发所述地址解析请求,从所述第二覆盖网络接收地址解析响应,并且从所述地址解析响应中获得与所述目的地虚拟机相关联的端点信息,以及
其中所述第一虚拟隧道端点还被配置为向所述第一覆盖网络发送所述端点信息。
2.根据权利要求1所述的通信设备,其中所述第一覆盖网络是软件定义网络(SDN)虚拟可扩展局域网(VXLAN)网络,并且所述第二覆盖网络是非SDN VXLAN网络。
3.根据权利要求2所述的通信设备,其中所述第一虚拟隧道端点是SDN虚拟隧道端点,并且所述第二虚拟隧道端点是非SDN虚拟隧道端点,
其中所述地址解析请求包括针对所述目的地虚拟机的端点信息解析请求,
其中所述SDN虚拟隧道端点包括:
SDN接口,耦合到所述SDN VXLAN网络并且被配置为从所述SDN VXLAN网络的SDN控制器接收所述端点信息解析请求,
SDN控制平面代理,被配置为基于所接收的端点信息解析请求来生成地址解析协议(ARP)请求,所述ARP请求使用所述通信设备的媒体访问控制(MAC)地址作为源MAC地址,以及
SDN交换模块,被配置为向所述非SDN虚拟隧道端点的第二交换模块传输所述ARP请求,以及
其中所述非SDN虚拟隧道端点包括:
非SDN交换模块,被配置为从所述SDN虚拟隧道端点的所述SDN交换模块接收所述ARP请求,
非SDN覆盖模块,被配置为通过插入包含所述非SDN虚拟隧道端点的IP地址作为所述源IP地址的外部报头来封装所述ARP请求,
非SDN接口,耦合到所述非SDN VXLAN网络并且被配置为向所述非SDN VXLAN网络发送经封装的ARP请求。
4.根据权利要求3所述的通信设备,其中所述地址解析响应包括经封装的ARP响应,
其中所述非SDN接口还被配置为从所述非SDN VXLAN网络接收所述经封装的ARP响应,非SDN覆盖模块被配置为从所述经封装的ARP响应中获得与所述目的地虚拟机相关联的所述端点信息并且将所述经封装的ARP响应解封装成ARP响应,并且所述非SDN交换模块还被配置为向所述SDN虚拟隧道端点的所述SDN交换模块传输所述ARP响应,以及
其中所述SDN交换模块还被配置为从所述非SDN交换模块接收所述ARP响应,所述SDN控制平面代理还被配置为获取与所述目的地虚拟机相关联的所述端点信息并且生成携带所获取的端点信息的端点信息解析响应,并且所述SDN接口还被配置为向所述SDN VXLAN网络的所述SDN控制器发送所述端点信息解析响应。
5.根据权利要求1所述的通信设备,其中所述第一覆盖网络是非软件定义网络(SDN)虚拟可扩展局域网(VXLAN)网络,并且所述第二覆盖网络是SDN VXLAN网络。
6.根据权利要求5所述的通信设备,其中所述第一虚拟隧道端点是非SDN虚拟隧道端点,并且所述第二虚拟隧道端点是SDN虚拟隧道端点,
其中所述地址解析请求包括针对所述目的地虚拟机的经封装的地址解析协议(ARP)请求,
其中所述非SDN虚拟隧道端点包括:
非SDN接口,耦合到所述非SDN VXLAN网络并且被配置为从所述非SDN VXLAN网络接收所述经封装的ARP请求,
非SDN覆盖模块,被配置为将所述经封装的ARP请求解封装成ARP请求,以及
非SDN交换模块,被配置为向所述SDN虚拟隧道端点的
SDN交换模块发送所述ARP请求,以及
其中所述SDN虚拟隧道端点包括:
SDN交换模块,被配置为从所述非SDN虚拟隧道端点的所述非SDN交换模块接收所述ARP请求,
SDN控制平面代理,被配置为基于所述ARP请求生成端点信息解析请求,以及
SDN接口,耦合到所述SDN VXLAN网络并且被配置为向所述SDN VXLAN网络的SDN控制器发送所述端点信息解析请求。
7.根据权利要求6所述的通信设备,其中所述非SDN虚拟隧道端点还包括被配置为获得与源虚拟机相关联的另外的端点信息的非SDN覆盖模块,以及
其中所述SDN控制平面代理还被配置为获取所述另外的端点信息,并且所述SDN接口还被配置为向所述SDN控制器发送所述另外的端点信息。
8.根据权利要求6所述的通信设备,其中所述地址解析响应包括端点信息解析响应,
其中所述SDN接口还被配置为从所述SDN控制器接收所述端点信息解析响应,所述SDN控制平面代理还被配置为从所接收的端点信息解析响应中获得与所述目的地虚拟机相关联的所述端点信息并且使用所获得的端点信息中的媒体访问控制(MAC)地址作为源MAC地址来生成ARP响应,并且所述SDN交换模块还被配置为向所述非SDN交换模块传输所述ARP响应,以及
其中所述非SDN交换模块还被配置为从所述SDN交换模块接收所述ARP响应,
其中所述非SDN虚拟隧道端点还包括非SDN覆盖模块,所述非SDN覆盖模块被配置为通过插入包含所获得的端点信息中的IP地址作为源IP地址的外部报头来封装所述ARP响应,并且所述非SDN接口还被配置为向所述非SDN VXLAN网络发送所述经封装的ARP响应。
9.根据权利要求1所述的通信设备,其中所述第一虚拟隧道端点还被配置为从所述第一覆盖网络接收IP分组,所述IP分组是通过封装媒体访问控制(MAC)广播分组而生成的,以及
其中所述第二虚拟隧道端点还被配置为向所述第二覆盖网络转发所述IP分组。
10.根据权利要求9所述的通信设备,
其中所述第一虚拟隧道端点包括:
第一接口,被配置为从所述第一覆盖网络接收所述IP分组,
第一覆盖模块,被配置为将所述IP分组解封装成所述MAC广播分组,以及
第一交换模块,被配置为向所述第二虚拟隧道端点的第二交换模块传输所述MAC广播分组,以及
其中所述第二虚拟隧道端点包括:
所述第二交换模块,被配置为从所述第一虚拟隧道端点的所述第一交换模块接收所述MAC广播分组,
第二覆盖模块,被配置为通过插入包含与所述第二覆盖网络相关联的IP地址作为目的地IP地址的外部报头来将所述MAC广播分组封装成另外的IP分组,以及
第二接口,被配置为向所述第二覆盖网络传输所述另外的IP分组。
11.根据权利要求10所述的通信设备,其中所述第一覆盖模块还被配置为获得从所述第一覆盖网络接收的所述IP分组的原始源IP地址,以及
其中所述第二覆盖模块还被配置为使用所述原始源IP地址作为所述另外的IP分组的源IP地址。
12.一种通信方法,包括:
从第一覆盖网络接收针对第二覆盖网络中的目的地虚拟机的地址解析请求,所述第一覆盖网络和所述第二覆盖网络使用相同的虚拟网络标识符,并且所述地址解析请求包含所述目的地虚拟机的因特网协议(IP)地址;
向所述第二覆盖网络转发所述地址解析请求;
从所述第二覆盖网络接收针对所述地址解析请求的地址解析响应;
从所述地址解析响应中获得与所述目的地虚拟机相关联的端点信息;以及
向所述第一覆盖网络发送所述端点信息。
13.根据权利要求12所述的通信方法,其中所述第一覆盖网络是软件定义网络(SDN)虚拟可扩展局域网(VXLAN)网络,并且所述第二覆盖网络是非SDN VXLAN网络。
14.根据权利要求13所述的通信方法,其中从所述第一覆盖网络接收所述地址解析请求包括:从所述SDN VXLAN网络的SDN控制器接收所述端点信息解析请求,以及
其中向所述第二覆盖网络转发所述地址解析请求包括:
基于所接收的端点信息解析请求来生成地址解析协议(ARP)请求,所述ARP请求使用所述通信设备的媒体访问控制(MAC)地址作为源MAC地址,
通过插入包含所述非SDN虚拟隧道端点的IP地址作为所述源IP地址的外部报头来封装所述ARP请求,以及
向所述非SDN VXLAN网络发送经封装的ARP请求。
15.根据权利要求14所述的通信方法,其中从所述第二覆盖网络接收所述地址解析响应包括:从所述非SDN VXLAN网络接收经封装的ARP响应,
其中从所述地址解析响应中获得所述端点信息包括:从所述经封装的ARP响应中获得所述端点信息,以及
其中向所述第一覆盖网络发送所述端点信息包括:
生成携带所获得的端点信息的端点信息解析响应,以及
向所述SDN控制器发送所述端点信息解析响应。
16.根据权利要求12所述的通信方法,其中所述第一覆盖网络是非软件定义网络(SDN)虚拟可扩展局域网(VXLAN)网络,并且所述第二覆盖网络是SDN VXLAN网络。
17.根据权利要求16所述的通信方法,其中从所述第一覆盖网络接收所述地址解析请求包括:从所述非SDN VXLAN网络接收针对所述目的地虚拟机的经封装的地址解析协议(ARP)请求,以及
其中向所述第二覆盖网络转发所述地址解析请求包括:
将所述经封装的ARP请求解封装成ARP请求,
基于所述ARP请求生成端点信息解析请求,以及
向所述SDN VXLAN网络的SDN控制器发送所述端点信息解析请求。
18.根据权利要求17所述的通信方法,还包括:
获得与源虚拟机相关联的另外的端点信息;以及
向所述SDN控制器发送所述另外的端点信息。
19.根据权利要求17所述的通信方法,其中从所述第二覆盖网络接收所述地址解析响应包括:从所述SDN控制器接收所述端点信息解析响应,
其中从所述地址解析响应中获得与所述目的地虚拟机相关联的所述端点信息包括:从所接收的端点信息解析响应中获得所述端点信息,以及
其中向所述第一覆盖网络发送所述端点信息包括:
使用所获得的端点信息中的媒体访问控制(MAC)地址作为源MAC地址来生成ARP响应,
通过插入包含所获得的端点信息中的IP地址作为源IP地址的外部报头来封装所述ARP响应,以及
向所述非SDN VXLAN网络发送所述经封装的ARP响应。
20.根据权利要求12所述的通信方法,还包括:
从所述第一覆盖网络接收IP分组,所述IP分组是通过封装媒体访问控制(MAC)广播分组而生成的;以及
向所述第二覆盖网络转发所述IP分组。
21.根据权利要求20所述的通信方法,其中向所述第二覆盖网络转发所述IP分组包括:
将所述IP分组解封装成所述MAC广播分组;
通过插入包含与所述第二覆盖网络相关联的IP地址作为目的地IP地址的外部报头来将所述MAC广播分组封装成另外的IP分组;以及
向所述第二覆盖网络传输所述另外的IP分组。
22.根据权利要求21所述的通信方法,还包括:
获得从所述第一覆盖网络接收的所述IP分组的原始源IP地址,
其中将所述MAC广播分组封装成另外的IP分组包括:使用所述原始源IP地址作为所述另外的IP分组的源IP地址。
23.一种计算机程序产品,有形地存储在计算机可读存储介质上并且包括指令,所述指令当在至少一个处理器上被执行时使得所述至少一个处理器执行根据权利要求12至22中任一项所述的方法。
24.一种装置,包括用于执行根据权利要求12至22中的至少一项所述的方法的部件。
CN201580082242.2A 2015-08-04 2015-08-04 覆盖网络的互连 Pending CN107925623A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/085994 WO2017020236A1 (en) 2015-08-04 2015-08-04 Interconnection of overlay networks

Publications (1)

Publication Number Publication Date
CN107925623A true CN107925623A (zh) 2018-04-17

Family

ID=57942286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580082242.2A Pending CN107925623A (zh) 2015-08-04 2015-08-04 覆盖网络的互连

Country Status (4)

Country Link
US (1) US20180219773A1 (zh)
EP (1) EP3332518A4 (zh)
CN (1) CN107925623A (zh)
WO (1) WO2017020236A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112703717A (zh) * 2018-09-19 2021-04-23 思科技术公司 跨层3网络的端点的唯一身份
CN113169930A (zh) * 2018-11-30 2021-07-23 思科技术公司 跨多个管理域的端到端身份知晓路由

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10200235B2 (en) * 2015-10-31 2019-02-05 Nicira, Inc. Distributed database structure for logical and physical network data
CN106936939B (zh) * 2015-12-31 2020-06-02 华为技术有限公司 一种报文处理方法、相关装置及nvo3网络系统
US10243916B2 (en) * 2016-04-07 2019-03-26 Cisco Technology, Inc. Control plane based technique for handling multi-destination traffic in overlay networks
CN107783815B (zh) * 2016-08-30 2020-12-01 华为技术有限公司 一种确定虚拟机迁移的方法和装置
US11303701B2 (en) * 2016-12-11 2022-04-12 Nicira Inc. Handling failure at logical routers
CN108259295B (zh) * 2017-03-24 2020-06-09 新华三技术有限公司 Mac地址同步方法及装置
WO2018188728A1 (en) * 2017-04-10 2018-10-18 Nokia Solutions And Networks Oy Handover with no or limited mme involvement
US10938599B2 (en) * 2017-05-22 2021-03-02 Futurewei Technologies, Inc. Elastic VPN that bridges remote islands
CN109391517B (zh) * 2017-08-02 2023-06-27 联想企业解决方案(新加坡)有限公司 用于监控覆盖网络中的数据流量的方法
US10425325B2 (en) * 2017-10-30 2019-09-24 Dell Products Lp Optimizing traffic paths to orphaned hosts in VXLAN networks using virtual link trunking-based multi-homing
US10587507B2 (en) * 2017-11-09 2020-03-10 International Business Machines Corporation Routing between software defined networks and physical networks
US10831920B2 (en) * 2018-01-05 2020-11-10 Nicira, Inc. Filter-based control information query in software-defined networking (SDN) environments
US10938681B2 (en) * 2018-07-25 2021-03-02 Vmware, Inc. Context-aware network introspection in software-defined networking (SDN) environments
US11012259B1 (en) * 2018-09-13 2021-05-18 Ca, Inc. Systems and methods for preserving system contextual information in an encapsulated packet
US10999196B2 (en) * 2019-02-25 2021-05-04 Vmware, Inc. Global replication mode for overlay runtime state migration
US11012405B2 (en) * 2019-09-11 2021-05-18 Arista Networks, Inc. Distributing address resolution messages
KR20210128817A (ko) * 2020-04-17 2021-10-27 삼성전자주식회사 소프트웨어 정의 네트워크 시스템에서 통신을 수행하는 방법 및 장치
US11178041B1 (en) * 2020-07-07 2021-11-16 Juniper Networks, Inc. Service chaining with physical network functions and virtualized network functions
CN112565476A (zh) * 2020-12-01 2021-03-26 中国联合网络通信集团有限公司 虚拟机创建方法、arp代理网关及vtep
US11601428B2 (en) * 2020-12-10 2023-03-07 Cisco Technology, Inc. Cloud delivered access
CN112866119B (zh) * 2020-12-30 2022-04-08 迈普通信技术股份有限公司 虚拟可扩展局域网通信方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103179228A (zh) * 2013-04-02 2013-06-26 杭州华三通信技术有限公司 因特网协议地址解析方法及边缘节点
CN103731353A (zh) * 2013-12-26 2014-04-16 华为技术有限公司 虚拟机的物理地址获取方法
CN103795636A (zh) * 2012-11-02 2014-05-14 华为技术有限公司 组播处理方法、装置及系统
CN103841028A (zh) * 2014-03-24 2014-06-04 杭州华三通信技术有限公司 一种报文转发方法及设备
CN104335532A (zh) * 2012-06-04 2015-02-04 瑞典爱立信有限公司 使用单独管理将vlan标记的分组路由到虚拟转发实例的远端地址
CN104350714A (zh) * 2014-05-29 2015-02-11 华为技术有限公司 一种报文转发方法和VxLAN网关
US20150124586A1 (en) * 2013-11-05 2015-05-07 Cisco Technology, Inc. N-way virtual port channels using dynamic addressing and modified routing

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055789B2 (en) * 2007-03-27 2011-11-08 Amazon Technologies, Inc. Configuring intercommunications between computing nodes
CN104272668B (zh) * 2012-05-23 2018-05-22 博科通讯系统有限公司 层3覆盖网关
JP2016540448A (ja) * 2013-12-11 2016-12-22 華為技術有限公司Huawei Technologies Co.,Ltd. 仮想拡張lanの通信方法、装置、及びシステム
WO2015100656A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种实现虚拟机通信的方法和装置
US10412019B2 (en) * 2015-07-06 2019-09-10 Futurewei Technologies, Inc. Path computation element central controllers (PCECCs) for network services

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104335532A (zh) * 2012-06-04 2015-02-04 瑞典爱立信有限公司 使用单独管理将vlan标记的分组路由到虚拟转发实例的远端地址
CN103795636A (zh) * 2012-11-02 2014-05-14 华为技术有限公司 组播处理方法、装置及系统
CN103179228A (zh) * 2013-04-02 2013-06-26 杭州华三通信技术有限公司 因特网协议地址解析方法及边缘节点
US20150124586A1 (en) * 2013-11-05 2015-05-07 Cisco Technology, Inc. N-way virtual port channels using dynamic addressing and modified routing
CN103731353A (zh) * 2013-12-26 2014-04-16 华为技术有限公司 虚拟机的物理地址获取方法
CN103841028A (zh) * 2014-03-24 2014-06-04 杭州华三通信技术有限公司 一种报文转发方法及设备
CN104350714A (zh) * 2014-05-29 2015-02-11 华为技术有限公司 一种报文转发方法和VxLAN网关

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112703717A (zh) * 2018-09-19 2021-04-23 思科技术公司 跨层3网络的端点的唯一身份
CN112703717B (zh) * 2018-09-19 2023-08-11 思科技术公司 跨层3网络的端点的唯一身份
CN113169930A (zh) * 2018-11-30 2021-07-23 思科技术公司 跨多个管理域的端到端身份知晓路由
CN113169930B (zh) * 2018-11-30 2022-12-27 思科技术公司 跨多个管理域的端到端身份知晓路由

Also Published As

Publication number Publication date
EP3332518A4 (en) 2019-04-03
EP3332518A1 (en) 2018-06-13
WO2017020236A1 (en) 2017-02-09
US20180219773A1 (en) 2018-08-02

Similar Documents

Publication Publication Date Title
CN107925623A (zh) 覆盖网络的互连
CN107872542B (zh) 一种数据传输的方法及网络设备
US8284785B2 (en) System and method for direct communications between FCoE devices
JP6034979B2 (ja) パケット転送方法と装置及びデータセンターネットワーク
US6799220B1 (en) Tunneling management messages over a channel architecture network
JP6426879B2 (ja) データパケット転送
KR101945886B1 (ko) 계층-2 스위칭에 기초한 초고속 모바일 네트워크
US10461958B2 (en) Packet transmission method and apparatus
CN107770026B (zh) 租户网络数据传输方法、租户网络系统和相关设备
CN105791214B (zh) 一种RapidIO报文和以太网报文之间的转换方法和设备
US9654394B2 (en) Multi-tenant system, switch, controller and packet transferring method
JP2018532342A (ja) Vxlanに用いられるパケット転送
WO2015113410A1 (zh) 数据包的处理方法与装置
CN105991387A (zh) 虚拟扩展局域网的报文传输方法和装置
CN107547349A (zh) 一种虚拟机迁移的方法及装置
CN107645433B (zh) 报文转发方法及装置
TWI759571B (zh) 基於流表的資料傳送方法
JP2007215090A (ja) ネットワークシステム、端末およびゲートウェイ装置
CN106059923A (zh) 一种报文转发方法及装置
CN104796338A (zh) 虚拟机迁移方法及装置
CN109246016B (zh) 跨vxlan的报文处理方法和装置
CN108737239B (zh) 一种报文转发方法及装置
CN105933235A (zh) 数据通信方法及装置
US20140156954A1 (en) System and method for achieving enhanced performance with multiple networking central processing unit (cpu) cores
CN110235417B (zh) 一种sdn及其报文转发的方法和装置

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180417

WD01 Invention patent application deemed withdrawn after publication