CN113994639B - 基于远程网络节点的l3虚拟映射的数据传输方法及系统 - Google Patents
基于远程网络节点的l3虚拟映射的数据传输方法及系统 Download PDFInfo
- Publication number
- CN113994639B CN113994639B CN201980097584.XA CN201980097584A CN113994639B CN 113994639 B CN113994639 B CN 113994639B CN 201980097584 A CN201980097584 A CN 201980097584A CN 113994639 B CN113994639 B CN 113994639B
- Authority
- CN
- China
- Prior art keywords
- network
- mapping agent
- mapping
- address
- virtual
- 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
- 238000000034 method Methods 0.000 title claims description 69
- 230000005540 biological transmission Effects 0.000 title claims description 17
- 238000013507 mapping Methods 0.000 claims abstract description 678
- 238000012545 processing Methods 0.000 claims abstract description 6
- 230000005641 tunneling Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 12
- 238000004806 packaging method and process Methods 0.000 claims 2
- 230000008569 process Effects 0.000 description 36
- 238000010586 diagram Methods 0.000 description 19
- 238000005538 encapsulation Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 8
- 230000002441 reversible effect Effects 0.000 description 7
- 230000006854 communication Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000010354 integration Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000004615 ingredient Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- 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
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- 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/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
- H04L61/2528—Translation at a proxy
-
- 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/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2592—Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
-
- 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/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
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
一种用于传输数据的装置,包括一个或多个处理电路,所述一个或多个处理电路连接到第一网络并执行第一映射代理,所述第一映射代理具有连接到与所述第一网络分离的第二网络的目的节点的层3(Layer 3,L3)地址映射。所述第一映射代理用于:通过所述第一网络从源节点接收发往所述目的节点的第一数据包;调整所述第一数据包以包括分配给第二映射代理的虚拟L3地址,所述第二映射代理在所述第二网络执行并与所述目的节点相关联;将所述调整后的第一数据包封装在包括根据所述虚拟L3地址解析的流量描述符的封装数据包中;将所述封装数据包转发给所述第二映射代理,所述第二映射代理用于将从所述封装数据包中提取的所述调整后的第一数据包通过所述第二网络发送到所述目的节点。
Description
技术领域
在本发明的一些实施例中,本发明涉及连接到分离网络的远程主机之间的数据包传输,更具体地但不排他地,涉及使用远程主机的虚拟层3(Layer 3,L3)映射进行连接到分离网络的远程主机之间的数据包传输方法及系统。
背景技术
网络服务正在不断发展,适用于多种应用、服务和平台,几乎涵盖现代生活的各个方面。因此,这些网络服务对越来越复杂的底层网络提出了越来越多的挑战。
随着利用软件定义网络(Software Defined Network,SDN)在云主机之间交换和路由网络流量的云服务的快速部署,这些挑战可能会进一步增加并变得更加明显。
此类网络服务所面临的主要挑战之一是需要直接寻址、访问和交换连接到不同专用网络(站点)的网络节点之间的网络流量,每个专用网络(站点)都采用其本地寻址方案。特别是,连接到分离网络的网络节点能够通过由两个分离网络共享的公共组播和/或广播域相互通信可能是非常理想的、高效的,在某些情况下是必要的。
发明内容
本发明实施例的目的是提供一种方案,用来减少或解决传统方案的缺点和问题。
本发明旨在提供一种用于在本地网络中映射连接到分离网络的远程网络节点的方案,实现方式为创建远程节点在本地网络中的基于L3的虚拟存在,以通过部署映射代理(mapping agent)形成在两个分离网络之间共享的公共组播和/或广播域,所述映射代理用于模拟远程节点,如同连接到本地网络一样。
根据本发明的第一方面,提供了一种用于传输数据的装置,包括一个或多个处理电路,所述一个或多个处理电路连接到第一网络并执行第一映射代理,所述第一映射代理具有连接到与所述第一网络分离的第二网络的目的节点的层3(Layer 3,L3)地址映射(Layer 3address mapping)。所述第一映射代理包括用于执行以下操作的代码:
通过所述第一网络从源节点接收发往所述目的节点的第一数据包;
调整所述第一数据包以包括分配给第二映射代理的虚拟L3地址,所述第二映射代理在所述第二网络执行并与所述目的节点相关联;
将所述调整后的第一数据包封装在包括根据所述虚拟L3地址解析的流量描述符(traffic descriptor)的封装数据包中;
将所述封装数据包转发给所述第二映射代理,所述第二映射代理用于将从所述封装数据包中提取的所述调整后的第一数据包通过所述第二网络发送到所述目的节点。
根据本发明的第二方面,提供了一种计算机实现数据传输方法,所述方法包括:
通过第一网络从源节点接收发往连接到与所述第一网络分离的第二网络的目的节点的第一数据包;
调整所述第一数据包以包括分配给第二映射代理的虚拟层3(Layer 3,L3)地址,所述第二映射代理在所述第二网络执行并与所述目的节点相关联;
将所述调整后的第一数据包封装在包括根据所述虚拟L3地址解析的流量描述符的封装数据包中;
将所述封装数据包转发给所述第二映射代理,所述第二映射代理用于将从所述封装数据包中提取的所述调整后的第一数据包通过所述第二网络发送到所述目的节点;
使用虚拟L3映射将目的节点映射到第一网络可以支持创建多个分离网络共用的统一组播和/或广播域,而无需调整应用于每个网络中的网络寻址方案,同时验证没有发生地址冲突或重叠。此外,虚拟映射在L3中完成可以支持使用依赖于L3寻址的高级网络和通信协议,这些协议在多个应用和服务中非常常见。此外,由于映射代理是在软件中创建、部署、启动和配置的,因此可以显著减少创建网络域的工作量、时间和/或成本,同时支持高可扩展性。此外,由于每对源节点和目的节点可以与一对专用映射代理相关联,因此可以显著减少,并有可能完全避免网络上的冲突。
在第一和/或第二方面的另一种实现方式中,所述封装数据包的所述流量描述符还包括分配给所述第一映射代理的虚拟L3地址,用于接收通过所述第二映射代理和所述第一映射代理从所述目的节点发送到所述源节点的第二数据包。大多数(如果不是所有)网络应用和服务都需要双向通信路径。因此,在虚拟L3映射方案中支持反向路径(响应路径)可以在多个此类应用、服务、系统和/或平台中更多地采用虚拟L3映射。
在第一和/或第二方面的另一种实现方式中,所述封装数据包是使用一个或多个层2(Layer 2,L2)隧道协议转发的,所述流量描述符包括由所述一个或多个L2隧道协议定义的元数据中的所述第二映射代理的标识符。对于使用L2隧道协议的应用、服务和/或平台,支持此类L2隧道协议可以轻松采用和部署远程网络节点(主机)的虚拟L2映射。
在第一和/或第二方面的另一种实现方式中,所述封装数据包是使用一个或多个L3网络协议转发的,所述流量描述符包括所述第二映射代理的L3地址。对于使用L3网络协议的应用、服务和/或平台,支持此类L3网络协议可以轻松采用和部署远程网络节点(主机)的虚拟L2映射。
在第一和/或第二方面的另一种实现方式中,所述第一网络和所述第二网络是在软件定义网络(Software Defined Network,SDN)中定义的虚拟网络,所述第一映射代理通过如下方式用于所述第一网络中:配置所述SDN的映射记录,以将所述目的节点的所述虚拟L3地址映射包括在分配给连接到所述第一网络的节点的虚拟L3地址列表中。支持SDN可以简化和减少SDN中虚拟L3映射的部署、集成和采用,这些SDN不断扩展,以支持不断增长和发展的云服务。
在第一和/或第二方面的另一种实现方式中,所述第一网络和所述第二网络是通过两个相应的网络网关连接到公共网络基础设施的物理网络。支持物理网络可以是支持简化和减少构成任何网络系统的主干的此类物理网络中虚拟L3映射的部署、集成和采用。
在第一和/或第二方面的另一种实现方式中,所述第一映射代理是由将所述第一网络连接到所述公共网络基础设施的所述网络网关执行的。由于用于将网络连接到公共网络的网关是网络中的典型组件,因此使用网关执行一个或多个映射代理可以避免添加专用硬件,从而降低成本并简化一个或多个映射代理的部署。
在第一和/或第二方面的另一种实现方式中,所述第一映射代理是由连接到所述第一网络的专用网络节点执行的。支持用于执行一个或多个映射代理的专用网络节点可以有效支持其中网关可能在资源方面受到限制和/或配置复杂的网络。此外,使用具有足够计算资源(例如处理资源、存储资源、网络资源等)的专用网络节点可以支持启动和执行大量映射代理以映射多个远程目的网络节点。
在第一和/或第二方面的另一种实现方式中,所述第一网络是软件定义网络(Software Defined Network,SDN)中定义的虚拟网络,所述第二网络是通过网络网关连接到所述虚拟网络抽象化的网络的物理网络,虚拟端口部署在所述网络网关中以映射所述SDN中的所述目的节点,所述第一映射代理通过如下方式用于所述第一网络中:配置所述SDN的映射记录,以将所述虚拟端口的所述虚拟L3地址包括在分配给连接到所述第一网络的节点的虚拟L3地址列表中。支持由虚拟网段和物理网段构建的混合网络可以有利于支持简化和减少此类混合网络中虚拟L3映射的部署、集成和采用。
在第一和/或第二方面的另一种实现方式中,所述第一数据包包括发往连接到所述第一网络的节点组的组播数据包。所述第一映射代理响应于从所述第二映射代理接收到的将所述目的节点包括在所述组中的请求而被配置为所述组的一部分,使得所述第一映射代理封装所述组播数据包并转发给所述第二映射代理以传送到所述目的节点。形成在两个分离网络上延伸的统一组播域对于其中组播组可以包括连接到分离网络的节点的多个应用和服务可能是非常需要的,在某些情况下是必不可少的。
在第一和/或第二方面的另一种实现方式中,所述第一数据包包括发往连接到所述第一网络的所有节点的广播数据包,所述第一映射代理用于封装所述广播数据包并转发给所述第二映射代理,以传送到目的主机。形成在两个分离网络上延伸的统一广播域对于其中广播定向到连接到分离网络的节点的多个应用和服务可能是非常需要的,在某些情况下是必不可少的。
在第一和/或第二方面的一种可选实现方式中,部署多个第一映射代理。所述多个第一映射代理中的每一个映射连接到与所述第一网络分离的一个或多个第二网络的多个目的节点中的相应一个目的节点。对于多个网络应用和/或服务,可能需要多个网络节点之间的多个同时连接和通信路径。因此,支持多个源节点和目的节点的部署可以支持在多个此类应用和/或服务中增加虚拟L3映射的采用和/或简化虚拟L3映射的集成。
在第一和/或第二方面的一种可选实现方式中,为连接到与所述第二网络分离的一个或多个第一网络的多个源节点部署单个第二映射代理,以映射连接到所述第二网络的目的节点。所述多个源节点中的每一个与在相应的第一网络执行的相应的第一映射代理相关联。将所述第一数据包发送到所述第二映射代理的每个源节点的所述相应的第一映射代理是通过跟踪所述相应的第一映射代理的连接来识别的。一些应用和/或服务可以部署单个主机节点来服务多个客户端节点。因此,支持此类单主机多客户端部署可以支持在多个此类应用和/或服务中增加虚拟L3映射的采用和/或简化虚拟L3映射的集成。
在第一和/或第二方面的一种可选实现方式中,所述流量描述符是根据所述目的节点的统一资源标识符(Uniform Resource Identifier,URI)解析的。在多个网络域以及多个应用和/或服务部署中,使用域名而不是实际地址是非常常见和频繁的。因此,支持基于域名进行地址解析可以支持在多个此类应用和/或服务中增加虚拟L3映射的采用和/或简化虚拟L3映射的集成。
本发明的第三方面提出了一种包括计算机可读代码指令的计算机程序产品,当所述计算机可读代码指令在计算机中运行时,使所述计算机执行根据本发明的第二方面,或第二方面的任何一种可选的实现方式所述的方法。
本发明的第四方面提出了一种计算机可读存储介质,包括可由计算机执行的计算机程序代码指令,其中,当所述计算机程序代码指令在计算机中运行时,用于执行根据本发明的第二方面或第二方面的任何一种可选的实现方式所述的方法。所述计算机可读存储介质包括来自以下组的一种或多种:只读存储器(Read-Only Memory,ROM)、可编程ROM(Programmable ROM,PROM)、可擦除PROM(Erasable PROM,EPROM)、闪存、电EPROM(Electrically EPROM,EEPROM)和硬盘驱动器。
根据第三方面所述的计算机程序产品或根据第四方面所述的计算机可读存储介质可以扩展为与根据第一方面所述的第一装置的实现方式对应的实现方式。因此,所述方法的实现方式包括所述第一装置的对应实现方式的一个或多个特征。
根据第三或第四方面所述的方法的优点与根据本发明的第一方面所述的第一装置的对应实现方式的优点相同。
除非另有定义,否则本文所用的所有技术和/或科学术语都具有与本发明普通技术人员公知的含义相同的含义。虽然与本文描述的方法和材料类似或等效的方法和材料可以用于本发明实施例的实践或测试,但下文描述了示例性方法和/或材料。如有冲突,以本专利说明书(包括定义)为准。此外,这些材料、方法和示例仅是说明性的,并不一定具有限制性。
附图说明
此处仅作为示例,结合附图描述了本发明的一些实施例。现在具体结合附图,强调了所示的项目用于示例,并且用于说明性地讨论本发明的实施例。这样,根据附图说明,如何实践本发明的实施例对本领域技术人员而言是显而易见的。
在附图中:
图1是根据本发明的一些实施例,通过使用虚拟L3映射映射远程网络节点,在连接到本地网络的网络节点与连接到分离网络的远程网络节点之间传输数据包的示例性过程的流程图;
图2是根据本发明的一些实施例,通过使用虚拟L3映射映射远程网络节点,在连接到本地网络的网络节点与连接到分离网络的远程网络节点之间传输数据包的示例性网络系统的示意图;
图3A、图3B、图3C和图3D是根据本发明的一些实施例,使用虚拟L3映射在连接到分离网络的网络节点之间传输数据包的示例性虚拟和物理网络部署的示意图;
图4是根据本发明的一些实施例,用于初始化网络,以使用虚拟L3映射来传输来自连接到本地网络的节点和连接到分离网络的远程网络节点的数据包的示例性序列的示意图;
图5是根据本发明的一些实施例,使用虚拟L3映射在连接到两个分离网络的网络节点之间传输数据包的网络的示例性实施例的示意图;
图6是根据本发明的一些实施例,在示例性网络实施例中,由连接到两个分离网络的网络节点用来使用虚拟L3映射将数据包传输到远程网络节点的示例性序列的示意图;
图7是本发明的一些实施例提供的示例性网络系统的示意图,其中,使用单个映射代理将单个主机网络节点映射到连接到分离网络的多个客户端网络节点,所述单个映射代理用于网络节点的虚拟L3映射,以在主机网络节点与客户端网络节点之间传输数据包;
图8A和图8B是本发明的一些实施例提供的示例性序列的示意图,连接到分离网络的单个主机网络节点和多个客户端网络节点应用所述示例性序列,以使用用于主机网络节点的虚拟L3映射的单个映射代理在主机网络节点与客户端网络节点之间传输数据包。
具体实施方式
本发明的实施例涉及连接到分离网络的远程主机之间的数据包传输,更具体地但不排他性地,涉及使用远程主机的虚拟L3映射进行连接到分离网络的远程主机之间的数据包传输。
本发明提出了用于通过虚拟映射远程节点使其彼此看起来如同连接到同一网络一样,在连接到分离(专用)网络的网络节点(主机)之间传输数据包(例如单播、组播和/或广播数据包)的设备、系统和方法。
网络节点可以包括通过一个或多个网关(例如交换机、路由器等等)连接到物理网络的一个或多个物理网络节点(主机),例如移动设备、计算机、服务器、计算节点、计算节点集群等等。网络节点还可以包括由一个或多个物理网络节点执行并利用其硬件资源的一个或多个虚拟网络节点(主机),例如虚拟机(Virtual Machine,VM)等等。此外,网络节点可以通过一个或多个SDN交换机(网关)连接到一个或多个软件定义网络(Software DefinedNetwork,SDN),这通常是云计算平台、基础设施和/或服务的情况。
连接到第一(专用)网络的源网络节点可以传输发往连接到第一网络的网络节点的一个或多个(第一)数据包,例如单播、组播和/或广播数据包。但是,可能希望将传输的数据包分配到连接到与第一网络分离的第二(专用)网络的远程目的网络节点。第一网络和第二网络通过一个或多个物理和/或软件实现网关连接到公共物理网络基础设施,该公共物理网络基础设施包括一个或多个交换和/或路由设备,用于在第一网络与第二网络之间路由流量。公共网络可以包括一个或多个网络,例如局域网(Local area Network,LAN)、广域网(Wide Area Network,WAN)、城域网(Metropolitan Area Network,MAN)、互联网和/或为云计算平台和服务部署的一个或多个SDN。
由于目的节点没有连接到第一网络,因此源节点与目的节点之间不可能直接进行L3映射和寻址。目的节点无法接收和/或拦截数据包,例如单播、组播和/或广播数据包,这些数据包被传输到在第一网络的地址范围内具有网络地址(例如L2和/或L3地址)的网络节点。
但是,许多流行的应用和服务(例如媒体流、游戏组、组集群等等)可以应用协议,这些协议对于应用直接映射是必要的和/或明显更有效地应用直接映射,使得目的节点连接到与源节点相同的网络,从而可以接收该源节点使用直接L3映射和/或寻址传输的通信数据包。
为此,可以使用部署在第一网络中的(第一)映射代理将目的节点映射到第一网络,充当目的节点在第一网络上虚拟存在,因此,如同连接到第一网络一样。目的节点还与部署在第二网络节点中的第二映射代理相关联。
为部署在第一网络中的第一映射代理分配在第一网络的L3地址范围内的本地L3地址,以模拟第一网络中使用的L3协议的真实网络节点。类似地,为部署在第二网络中的第二映射代理分配在第二网络的L3地址范围内的本地L3地址,以模拟第二网络中使用的L3协议的真实网络节点。
还分别为第一映射代理和第二映射代理分配在经预定义的虚拟L3地址范围内的唯一虚拟L3地址,以映射与连接到需要直接映射的分离网络的网络节点,特别是连接到第一网络的源节点和连接到第二网络的目的节点相关联的多个映射代理。因此,第一映射代理和第二映射代理在预定义的虚拟地址范围内唯一映射。
第一映射代理可以使用L3虚拟地址与第二映射代理通信,以将由源节点传输的一个或多个(第一)数据包转发到第二映射代理,该第二映射代理又将一个或多个数据包转发到目的节点。因此,一个或多个数据包从源节点被透明地传输到目的节点,对于这两个节点来说,它们如同连接在同一个网络中。
第一映射代理可以拦截由源节点发送的每个(第一)数据包,该数据包发往目的节点(单播数据包)或第一映射代理包括在内(加入其中)的一个或多个组播组(组播)。第一映射代理还可以拦截源节点发送的每个广播消息。
然后,第一映射代理将拦截的单播、组播和/或广播数据包转发(传输)到部署在第二网络中并与目的节点相关联的第二映射代理。
第一映射代理首先调整一个或多个被拦截的(第一)数据包以包括目的节点的目的地址,或者更准确地说,包括与目的节点相关联的第二映射代理的地址。具体而言,第一映射代理调整当前包括第一映射代理的本地L3地址的一个或多个被拦截的数据包的目的地址字段,以包括第二映射代理的虚拟L3地址。此外,第一映射代理可以调整当前包括源节点的本地L3地址的被拦截的数据包的源地址字段,以包括第一映射代理的虚拟L3地址。
第一映射代理可以将调整后的(第一)数据包封装在一个或多个封装数据包中,所述一个或多个封装数据包通过连接第一网络和第二网络的公共网络传输到第二映射代理。第一映射代理生成、调整和/或配置一个或多个封装数据包的流量描述符,以指示第二映射代理,例如包括第二映射代理的网络地址。具体地,根据第二映射代理的虚拟L3地址解析流量描述符。例如,第一映射代理可以使用和/或访问一个或多个域名系统(Domain Namesystem,DNS),所述一个或多个域名系统经过配置和/或更新,以提供映射代理的虚拟L3地址与第一网络和/或第二网络的网络地址(特别是,将第一网络和/或第二网络连接到公共网络的网关的网络地址)之间的关联和/或转换。DNS还可以经过配置和/或更新,以提供映射代理的虚拟L3地址与映射代理的本地L3地址之间的关联和/或转换。DNS还可以经过配置和/或更新,以解析域名、将域名与网络地址关联和/或将域名转换为网络地址,特别是映射代理的虚拟L3地址。
第一映射代理可以根据第一映射代理用来将网络流量转发到第二映射代理的一个或多个协议构造包括流量描述符的一个或多个封装数据包。例如,第一映射代理可以根据一个或多个隧道协议构造一个或多个封装数据包,所述隧道协议如虚拟LAN(VirtualLAN,VLAN)隧道、MPLS、GRE.geneve、STT、L2-vpn、基于IP的以太网、VXLAN、IP over IP、伪隧道等等。在这种情况下,流量描述符可以作为元数据插入一个或多个隧道协议定义的一个或多个元数据字段中。在另一个示例中,第一映射代理可以根据一个或多个L3网络协议(例如,互联网协议(Internet Protocol,IP)(例如,IPv4、IPv6等)、IPX/SPX等等)构造一个或多个封装数据包。在这种情况下,流量描述符可以插入由一个或多个L3网络协议定义的目的地址字段中。
第二映射代理可以从第一映射代理接收一个或多个封装数据包,并解封装接收到的一个或多个封装数据包,以提取源节点最初通过第一网络发送的单播、组播和/或广播数据包。因此,在第二网络中部署和启动以模拟连接到第二网络的真实网络节点的第二映射代理能够直接将网络流量发送到目的节点。
但是,第二映射代理可以首先调整提取的一个或多个数据包以支持提取的一个或多个数据包到目的节点的这种传输。具体地,第二映射代理调整提取的数据包的目的地址和源地址字段。第二映射代理替换当前包括第二映射代理的虚拟L3地址的目的地址字段,以包括目的节点的本地L3地址。第二映射代理还可以替换当前包括第一映射代理的虚拟L3地址的源地址字段,以包括第二映射代理的本地L3地址。
在调整提取的一个或多个数据包以包括第二网络中使用的本地L3地址之后,第二映射代理可以将调整后的一个或多个数据包发送到目的节点。
第一映射代理和第二映射代理还可以用于支持在反向路径(响应路径)上传输(第二)数据包,即,使用相同的方法将一个或多个(第二)数据包从目的节点发送到源节点。在反向路径上,第二映射代理执行上文针对第一映射代理所述的操作,作为互补,第一映射代理执行上文针对第二映射代理所述的操作。
通过为多个源节点和目的节点对部署、配置和启动多个第一映射代理和第二映射代理对,可以缩放和扩展虚拟L3映射以支持多个源节点和目的节点对。
根据本发明的一些实施例,单个映射代理可以与特定目的节点相关联,例如,服务于多个客户端源节点的主机节点、服务等等,每个客户端源节点与多个映射代理中的相应一个相关联。映射代理可以遵循上文针对单个源节点所述的相同方法和概念。但是,在此类部署中,目的节点(主机节点)可能会从其关联的单个映射代理接收所有数据包,而不管源节点是什么。为了消除这一限制,与目的节点相关联的映射代理可以使用可从与源节点相关联的第一映射代理所使用的转发协议中获得的一个或多个连接跟踪规定,以识别每个接收到的数据包并跟踪到其始发源节点,或者更准确地跟踪每个接收到的数据包到其始发映射代理。
第一映射代理和第二映射代理可以使用多种实现方式中的一种或多种实现方式来部署、配置、启动和/或执行,所述多种实现方式可以取决于第一网络和/或第二网络(例如,物理网络、SDN)、网络节点(例如物理节点、虚拟节点等)等等的一个或多个操作特征和/或参数。因此,第一映射代理和第二映射代理可以部署和应用于虚拟网络、物理网络和/或其组合。
例如,在SDN中,第一映射代理和第二映射代理可以通过配置、调整和/或创建一个或多个映射记录来启动,所述映射记录如映射表、交换表、路由表等等,其定义通过一个或多个SDN交换机的网络流量的交换和路由。控制、交换和/或路由SDN中的网络流量的一个或多个控制器可以使用调整后的一个或多个映射记录,从而实现第一映射代理和第二映射代理。在另一个示例中,在物理网络中,第一映射代理和/或第二映射代理可以作为分别连接到第一网络和/或第二网络的一个或多个计算设备执行的软件模块启动。例如,第一映射代理可以由连接到第一网络的专用网络节点执行。在另一个示例中,第一映射代理可以由连接到第一网络的网关(例如交换机、路由器等)执行,特别是将第一网络连接到公共网络的网关。这可以类似地应用于由连接到第二网络的网络节点执行的第二映射代理。
与用于在连接到分离的专用网络的远程网络节点之间路由网络流量的当前现有的方法和系统相比,虚拟L3映射具有显著的优势。
一些现有的路由方法可以使用L2虚拟专用网络(Virtual Private Network,VPN)(以太网VPN)为共享网络配置和寻址的两个或多个独立网络(站点)创建统一广播域。但是,通常由作为L2 VPN一部分的所有网络节点共享的L2 VPN可能会极易在网络上发生冲突。此外,几乎不可能通过软件修改L2 VPN配置,从而迫使每个这样的修改都由用户执行,例如系统管理员、网络专家和/或类似人员配置L2 VPN。
另一方面,虚拟L3映射为每对源节点和目的节点分配一对专用的第一映射代理和第二映射代理,从而显著减少并可能消除冲突。因此,每一对的每个第一映射代理仅封装专门发往对应的目的节点的数据包并转发到相应的第二映射代理,从而显著减少网络流量并因此减少冲突。此外,第一映射代理和第二映射代理容易通过软件部署、配置和/或修改,因为它们是容易建立、终止和/或修改的软件代理。此外,由于每一对第一映射代理和第二映射代理都与单对源节点和目的节点相关联,因此调整这些映射代理不会影响为映射其它源和/或目的节点而部署的其它映射代理的操作。
其它现有的路由方法可以使用L3 VPN连接作为不同子网的两个或多个分离网络(站点),其中,网络流量根据一个或多个路由规则进行路由。此类L3 VPN实现方式自然必须遵守网络节点用于相互通信的L3协议。因此,L3 VPN可能需要对每个L3协议进行定制,因此采用L3 VPN需要大量的时间和工作量,从而显著增加成本。这可能会进一步显著限制L3VPN在不同L3协议之间的可扩展性。
另一方面,虚拟L3映射依赖于虚拟L3网络寻址,因此与网络节点使用的L3协议无关。这可以显著减少部署虚拟L2映射代理的工作量、时间和成本,从而可以使虚拟L3映射高度可扩展。
在L2 VPN和L3 VPN中,网络节点的网络地址在VPN中必须是唯一的,以免任何网络地址重叠。这可能会带来较大限制,因为每个专用网络通常独立于任何其它分离的网络使用其寻址方案。跨越彼此不同步的专用网络部署VPN可能会导致网络寻址重叠,从而使VPN无用。
在虚拟L3映射中,不存在这些限制,因为网络并不共享公共寻址域,因此其它网络中使用的地址映射对于这些网络是未知的。部署在分离网络中的映射代理的识别和映射是专门根据分配给每个映射代理的虚拟L3地址完成的。在虚拟L3地址范围内选择没有被任何网络使用的虚拟L3地址,因此不会产生地址冲突问题。此外,部署在分离网络中的第一映射代理与第二映射代理之间的通信使用封装数据包完成,这些封装数据包遵循用于分离网络之间的网络流量的通信协议,同时将最初传输的数据包包含在封装数据包的有效载荷中。
在详细解释本发明的至少一个实施例之前,应理解,本发明在应用时并不一定限于以下描述和/或附图和/或示例中阐述的组件和/或方法的构造和布置的细节。本发明能够有其它实施例,或者能够以各种方式实践或执行。
本发明可以是一种系统、方法和/或计算机程序产品。所述计算机程序产品可包括具有计算机可读程序指令的计算机可读存储介质,计算机可读程序指令使处理器执行本发明的各方面。
所述计算机可读存储介质可以是能够保留和存储指令以供指令执行设备使用的有形设备。所述计算机可读存储介质可以为,但不限于,例如,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述设备的任合合适组合。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者通过因特网、局域网、广域网和/或无线网络等网络下载到外部计算机或外部存储设备。
所述计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机(如用户设备(user equipment,UE))上执行,作为独立的软件包执行,部分在用户的计算机上执行并且部分在远程计算机(如网络装置)上执行,或者完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(local area network,LAN)或广域网(wide area network,WAN),或者与外部计算机连接(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(field-programmable gate array,FPGA)或可编程逻辑阵列(programmable logic array,PLA)等的电子电路可以通过利用所述计算机可读程序指令的状态信息来执行所述计算机可读程序指令,以定制电子电路,从而执行本发明的各方面。
本文结合本发明实施例提供的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。应理解,流程图和/或框图的每个方框以及流程图和/或框图中的方框的组合可以由计算机可读程序指令实现。
图中的流程图和框图示出了本发明的各种实施例提供的系统、方法以及计算机程序产品的可能实现方式的架构、功能以及操作。就此而言,流程图或框图中的每个方框可以表示模块、区段或部分指令,其包括用于实现一个或多个指定逻辑功能的一个或多个可执行指令。在一些替代实现方式中,方框中说明的功能可能不按照图中说明的顺序。例如,事实上,连续示出的两个方框可以几乎同时执行,或者有时候可以按照相反的顺序执行,这取决于所涉及的功能。还需要说明的是,框图和/或流程图中的每个方框以及框图和/或流程图中的方框组合可以由基于专用硬件的系统实现,这些系统执行特定的功能或动作,或者执行专用硬件和计算机指令的组合。
现在参考图1,图1是根据本发明的一些实施例,通过使用虚拟L3映射映射远程网络节点,在连接到本地网络的网络节点与连接到分离网络的远程网络节点之间传输数据包的示例性过程的流程图。
可以执行示例性过程100、300和400以支持直接映射,特别是,连接到通过公共网络基础设施连接的不同的分离网络的网络节点的L3映射,以支持使用虚拟L3地址映射在这些节点之间进行数据包交换。这可以通过为连接到一个网络的一个或多个节点分配映射一个或多个其它分离网络中的该节点的虚拟L3地址来完成。
可以执行示例性过程100以初始化部署在(第一)网络(站点)中、与连接到第一网络的源节点相关联的第一映射代理200A(映射代理A),以应用连接到与第一网络分离的另一(第二)网络(站点)的目标网络节点的虚拟L3映射。过程100还可以包括初始化部署在第二网络中并与目的网络节点相关联的第二映射代理200B(映射代理B)。第一映射代理200A和第二映射代理200B可以各自包括一个或多个软件模块,例如进程、脚本、应用、代理、实用程序、工具等等。每个软件模块可以包括多个程序指令,所述多个程序指令可由一个或多个处理器执行,以使一个或多个处理器执行一个或多个操作。
分别为第一映射代理200A和第二映射代理200B分配在预定义的L3地址范围内的虚拟L3地址(例如IP地址)。
示例性过程300可以由第一映射代理200A执行,以转发网络流量,例如,从源网络节点发送到目的网络节点的单播、组播和/或广播(第一)数据包。第一映射代理200A可以将由源节点发送的(第一)数据包的L3地址调整为分配给第二映射代理200B的虚拟L3地址,并将(第一)数据包封装在一个或多个封装数据包中,该封装数据包包括根据第二映射代理200B的虚拟L3地址解析的流量指示符。然后,第一映射代理200A可以通过将第一网络连接到第二网络的公共网络基础设施将一个或多个封装数据包发送到第二映射代理200B。第一映射代理200A可以使用一个或多个协议(例如L2隧道协议、L3网络协议等等)将一个或多个封装数据包转发(发送)到第二映射代理200B。
示例性过程400可以由第二映射代理200B执行,以从第一映射代理200A接收一个或多个封装的数据包,并解封装一个或多个封装的数据包,以提取源节点最初发送的(第一)数据包,并将提取后的(第一)数据包发送到目的节点。
第一映射代理200A和第二映射代理200B还可以用于支持(第二)数据包在从目的节点到源节点的响应(反向)路径上传输。
现在参考图2,图2是根据本发明的一些实施例,通过使用虚拟L3映射映射远程网络节点,在连接到本地网络的网络节点与连接到分离网络的远程网络节点之间传输数据包的示例性网络系统的示意图。示例性网络系统250可以包括第一网络202A和第二网络202B,第一网络202A和第二网络202B彼此分离,同时通过公共网络(基础设施)220连接,其中,所述公共网络(基础设施)220例如SDN、局域网(Local Area Network,LAN)、广域网(WideArea Network,WAN)、市政区域网(Municipal Area Network,MAN)、蜂窝网络、互联网等等。因此,由于网络202A和202B都采用其本地寻址方案,因此连接到不同网络202A和202B的节点210不能使用直接L2和/或L3映射相互之间交换数据包。例如,连接到第一网络202A的源节点210A不能直接与连接到第二网络202B的目的节点210B通信。
第一网络202A和第二网络202B通过一个或多个网关212(例如路由器、交换机等等)连接到网络220。例如,第一网络202A可以包括用于连接到网络220的网关212A,第二网络202B可以包括用于连接到网络220的网关212B。
自然,源节点210A可以与目的节点210B相互传输数据包。但是,这种流量通常可能涉及一个或多个地址转换协议,如本领域中通常由网关212A和/或网关212B应用的协议。由于这种地址转换,无法实现如本领域已知的这些节点210之间的直接L2映射(例如MAC地址)和/或L3映射(例如IP地址)。
为了支持直接L3映射,映射代理(例如映射代理200A和200B)可以分别部署在第一网络202A和第二网络202B中,以在第一网络202A中创建目的节点210B的虚拟存在,从而模拟目的节点210B直接连接到第一网络202A,该模拟的直接连接对源节点210A和目的节点210B完全透明。映射代理200A和200B还可以用于支持以对目的节点210B和源节点210A透明的方式将(第二)数据包从目的节点210B发送到源节点210A的反向(响应)路径。
可以为第一映射代理200A分配可以由源节点210A直接映射的特定L3地址。在接收到发往目的节点210B的一个或多个(第一)数据包后,第一映射代理200A可以调整一个或多个(第一)数据包以包括分配给第一映射代理200A的源虚拟L3地址和分配给第二映射代理200B的目的虚拟L3地址。可以分配在预定义的虚拟L3地址范围内的虚拟L3地址,以支持源节点210A和目的节点210B以及可选的连接到第一网络、第二网络和/或另一个分离网络的一个或多个附加网络节点之间的直接映射。
然后,第一映射代理200A可以封装(重新封装)接收到的(第一)数据包,以包括指示第二映射代理200B的流量标识符(例如,L2标识符和/或L3标识符)。具体地,根据作为第二映射代理200B的虚拟L3地址的目的虚拟L3地址解析流量标识符。例如,第一映射代理200A可以访问和/或与一个或多个DNS系统230通信,以根据第二映射代理200B的虚拟L3地址识别网关212B的地址和第二映射代理200B的L3地址。
可以更新DNS 230,以包括分配给映射代理200A和200B的虚拟L3地址与映射代理200A和200B的网络L2和/或L3地址的映射,以支持其各自的虚拟L3地址的地址转换。
DNS 230可以按本领域已知的一种或多种配置、部署和/或实现方式部署。例如,DNS可以是包括多个本地DNS的分布式DNS,这些本地DNS连接到一个或多个网络202,并且通常由连接到相应网络的节点210使用。例如,连接到第一网络202A的本地DNS 230A可以服务于网络节点(源节点)210A和/或连接到第二网络202B的本地DNS 230B可以服务于网络节点(目的节点)210B。在另一个示例中,DNS可以是全局DNS 230G,包括一个或多个不限于单个网络(例如第一网络202a和/或第二网络202B)的全局DNS,因此可以由一个或多个节点210(例如210A和/或210B)使用。
第一映射代理200A可以采用本领域已知的一个或多个传输协议,用于将封装的数据包发送到第二映射代理200B。例如,第一映射代理200A可以使用一个或多个基于L2的隧道协议(例如L2TP、SSTP、IPSec等等),将封装的数据包发送到第二映射代理200B。在另一个示例中,第一映射代理200A可以使用一个或多个基于L3的网络协议(例如TCP、UDP等等),将封装的数据包发送到第二映射代理200B。
接收封装的数据包的第二映射代理200B可以解封装接收到的封装数据包,以提取最初由源节点210A发送的(第一)数据包,并将提取的数据包发送到目的节点210B。特别地,第二映射代理200B提取调整后的(第一)数据包,该调整后的(第一)数据包包括第一映射代理200A和第二映射代理200B的虚拟L3地址。
此外,映射代理200A和200B可以用于支持由源节点210A发送到目的节点210B的单播、组播和/或广播(第一)数据包的传输。第一映射代理200A可以包括在(加入)在第一网络202A中创建的一个或多个组播组中。第一映射代理200A还可以用于调整指向这些加入的组播组的广播数据包和/或组播数据包的L3地址,以包括虚拟L3地址,并将(第一)数据包封装在具有根据虚拟L3地址解析的流量描述符的封装数据包中。然后,第一映射代理200A可以向第二映射代理200B转发一个或多个封装数据包,该一个或多个封装数据包包括单播、组播和/或广播数据包并具有根据虚拟L3地址解析的流量描述符。然后,第二映射代理200B可以解封装接收到的一个或多个封装数据包,以提取单播、组播和/或广播数据包并将它们发送到目的节点210B。
还参考图3A、图3B、图3C和图3D,它们是根据本发明的一些实施例,使用虚拟L3映射在连接到分离网络的网络节点之间传输数据包的示例性虚拟和物理网络部署的示意图。
如图3A所示,示例性SDN 250A(例如网络系统250)可以用于连接多个节点210。SDN通常部署在云计算平台上,为高效的网络配置和管理提供网络抽象,以提高网络性能并改进监控。在遵循通用网络协议的同时,SDN 250A可以通过将网络数据包的转发过程(数据面)与路由过程(控制面)分离,将网络智能集中在少数网络组件中。因此,控制面可以由一个或多个SDN控制器组成,这些SDN控制器控制网络流量的交换和路由。
托管一个或多个节点210(例如节点210A)的第一网络202A可以是通过SDN交换机连接到SDN 250A的SDN定义的网段。托管一个或多个节点210(例如目的节点210B1和目的节点210B2)的第二网络202B可以是通过SDN交换机连接到SDN 250A的另一个SDN定义的网段。
连接到SDN 250B的节点210可以包括一个或多个物理网络节点,例如计算机、服务器、计算节点、计算节点集群等等。每个物理节点210可以包括布置成并行处理的一个或多个处理器(同质或异构),作为集群和/或作为一个或多个分布式核心处理单元,一个或多个网络接口,用于连接到网络202A和/或202B,以及程序存储器,例如存储介质,作为易失性介质(例如随机存取存储器(Random Access Memory,RAM)等)和/或非易失性介质(例如硬盘、闪存阵列等)。所述存储介质还可以包括一个或多个本地和/或远程网络存储资源,例如存储服务器、网络连接存储器(Network Attached Storage,NAS)、网络驱动器,和/或可通过一个或多个网络接口访问的存储介质。
但是,通常在云计算平台和服务中,节点210可以包括由一个或多个物理网络节点执行并利用其硬件资源的多个虚拟节点(主机),例如虚拟机(Virtual Machine,VM)等等。
SDN交换机通常利用由SDN 250A的一个或多个节点210部署和执行的虚拟交换机,例如OpenFlow、netflow、启用ebpf、具有DragonFlow控制的开放虚拟交换标准(OpenvSwitch,OVS)等等,以支持节点210之间,特别是虚拟主机之间的网络流量的交换和路由。
SDN交换机可以用于部署映射代理200,以实现连接到第一网络202A的源节点210A和连接到第二网络202B的目的节点210B1和/或210B2的虚拟L3映射。如图所示,每个映射的目的节点210可能需要在第一网络202A和第二网络202B中部署专用映射代理200。例如,为了实现源节点210A与目的节点210B1之间的虚拟L3映射,与源节点210A相关联的第一映射代理200A1可以部署在第一网络202A中,以与部署在第二网络202B中并与目的节点210B1相关联的第二映射代理200B1的实例通信。类似地,为了实现源节点210A与目的节点210B2之间的虚拟L3映射,与源节点210A相关联的第一映射代理200A2可以部署在第一网络202A中,以与部署在第二网络202B中并与目的节点210B2相关联的第二映射代理200B2的另一实例通信。
在SDN 250A中,第一映射代理200A和第二映射代理200B可以通过配置SDN的一个或多个映射记录来利用。例如,可以调整为SDN交换机定义的一个或多个映射记录,以将分配给目的节点210B1和/或210B2的虚拟L3地址包括在第一网络202A的路由表中,该路由表通常包括连接到第一网络202A的节点210的L3地址。
如图3B所示,示例性网络250B(例如网络系统250)可以用于连接多个节点210。托管一个或多个节点210(例如源节点210A)的第一网络202A可以是通过网关212A(例如路由器、交换机等等)连接到网络220的专用网络(站点)。托管一个或多个其它节点210(例如,目的节点210B1和/或目的节点210B2)的第二网络202B可以是通过另一网关212B(例如,路由器、开关等等)连接到网络220的另一个专用网络(站点)。
网络250B的节点210可以包括一个或多个物理网络节点,例如移动设备、计算机、服务器、计算节点、计算节点集群等等。可选地,一个或多个物理网络节点可以执行和/或托管一个或多个虚拟节点(主机)。
网关212A和网关212B可以是类似于节点210的计算设备,可以包括一个或多个处理器、存储器和一个或多个网络接口。
如针对SDN 250A所述,一个或多个目的节点210(例如,目的节点210B1和/或目的节点210B2)可以通过部署一组或多组第一映射代理200A和第二映射代理200B经由虚拟L3映射映射到第一网络202A。这是因为如上所述,每个映射的目的节点210B可能需要一对专用的第一映射代理200A和第二映射代理200B。
第一映射代理200A和第二映射代理200B1和/或200B2可以使用一个或多个DNS(例如DNS 230)(其为本地DNS(例如本地DNS 230A和/或230B)或全局DNS(例如全局DNS230G)),根据分配给与节点210关联的映射代理的虚拟L3地址解析节点210的实际网络地址。
第一映射代理200A和第二映射代理200B可以使用多种实现方式、技术和/或方法中的一种或多种在第一网络202A和/或第二网络202B中部署和执行。例如,如第一网络202A中所示,一个或多个物理或虚拟节点210,例如,包括一个或多个处理器和存储器资源的节点210H可以执行用于映射目的节点210B1第一映射代理200A1和/或用于映射目的节点210B2的第一映射代理200A2。在另一个示例中,如第二网络202B中所示,网关212B可以执行与目的节点210B1相关联的第二映射代理200B的第一实例200B1和/或与目的节点210B2相关联的第二映射代理200B的第二实例200B2。
如图3C所示,示例性混合网络250C(例如网络系统250)可以包括由SDN250A中描述的SDN实现的第一网络202A和作为网络250B的第二网络202B。托管一个或多个节点210(例如节点210A)的第一网络202A通过SDN交换机连接到SDN,如针对SDN250A所述。托管一个或多个其它节点210(例如,节点210B1和/或节点210B2)的物理第二网络202B可以是通过另一网关212B(例如,路由器、开关等等)连接到网络220的另一个专用网络(站点)。具体地,网关212B可以视为位于SDN边缘的边缘网关(边缘交换机),将SDN连接到第二网络202B的节点210,特别是节点210B。
此类混合网络部署常用于将一个或多个物理节点(例如没有虚拟化层的节点210B)连接到SDN。例如,一个或多个单租户物理服务器和/或裸机服务器到至少构成虚拟云(例如虚拟私有云(VPC))一部分的SDN。由于没有虚拟化层,节点210B因此无法应用一个或多个虚拟网络封装协议,例如虚拟可扩展局域网(Virtual Extensible LAN,VXLAN)、使用通用路由封装的网络虚拟化(Network Virtualization using Generic RoutingEncapsulation,NVGRE)、通用网络虚拟化封装(Generic Network VirtualizationEncapsulation,GENEVE)、无状态传输隧道协议(Stateless Transport Tunneling,STT)等等。
为了便于节点210B连接到SDN,并实现源节点210A与目的节点210B之间的流量交换,如本领域已知的,可以在第二网络202B中部署虚拟端口240。具体地,虚拟端口240可以用于支持根据SDN第一网络202A中使用的一个或多个虚拟网络封装协议封装来自目的节点210B的传出数据包(出口流量)并解封装传入数据包(入口流量)。虚拟端口240可以包括一个或多个硬件元件可选地支持的一个或多个软件模块,并且可以使用一种或多种实现方式和/或部署方案进行部署。例如,虚拟端口204可以由将目的节点210B连接到网络的网关212B执行。
为了实现源节点210A与目的节点210B之间的虚拟L3映射,与源节点210A相关联的第一映射代理200A可以部署在第一网络202A中,以与部署在第二网络202B中并与目的节点210B相关联(特别是与映射物理目的节点210B的虚拟端口240相关联)的第二映射代理200B通信。
如上所述,第一映射代理200A可以通过配置一个或多个SDN映射记录来使用,而第二映射代理200B可以使用一个或多个DNS(例如DNS 230)(例如本地DNS 230B和/或全局DNS230G等全局DNS)来解析第一映射代理200A的网络映射和/或路由地址。
根据本发明的一些实施例,如图3D所示,单个第二映射代理(例如第二映射代理200B)可以部署在第二网络202B中并与连接到第二网络202B的单个网络节点相关联,该单个网络节点作为多个(客户端)网络节点的目的节点210B(例如主机、服务等),例如,源节点210A和源节点210C,连接到与第二网络202B分离的一个或多个其它网络202,例如第一网络202A和第三网络202C。
多个源节点210(210A)各自与相应的第一映射代理相关联,例如,源节点210A可以与在第一网络202A中执行的第一映射代理200A相关联,源节点210C可以与在第三网络202C中执行的第三映射代理200C相关联。
在此类部署中,目的节点210B可以查看通过单个第二映射代理200B从单个源接收到的所有(第一)数据包,而实际上这些(第一)数据包可以来自多个源,例如源节点210A和/或源节点210C。但是,第二映射代理200B可以应用一种或多种连接跟踪方法、算法和/或技术来识别产生每个接收到的(第一)数据包的特定源节点210A和/或210C。
再次参考图1。
如102所示,过程100开始于:启动与连接到第一网络(例如第一网络202A)的源节点(例如源节点210A)相关联的第一映射代理(例如第一映射代理200A)。启动第一映射代理200A,以在第一网络202A中直接映射连接到第二网络(例如第二网络202B)的目的节点(例如目的节点210B),使得目的节点210B如同连接到第一网络202A。
为第一映射代理200A分配在第一网络202A的L3地址范围内的唯一本地L3地址,以映射第一网络202A中的第一映射代理200A。还为第一映射代理200A分配唯一的虚拟L3地址,以相对于与连接到分离网络202并需要直接映射的节点210(例如,源节点210A和目的节点210B)相关联的其它映射代理映射第一映射代理200A。分配给第一映射代理200A的虚拟L3地址在预定义的L3地址范围内,以映射为其建立直接映射的节点210,特别是源节点210A和目的节点210B。
第一映射代理200A可用于为单播、组播和/或广播数据包映射目的节点210B。例如,分配给第一映射代理200A的本地L3地址可以包括在一个或多个组播组中,从而映射该一个或多个组播组中的目的节点210b。
第一映射代理200A可以在虚拟网络(例如SDN 250A)中、在物理网络(如网络250B)中和/或其组合(例如混合网络250C)中启动。
在SDN 250A中,第一映射代理200A可以通过配置、调整和/或创建一个或多个映射记录(例如映射表、交换表、路由表等等)来启动,这些映射记录定义SDN 250A中网络流量的交换和路由,由一个或多个SDN控制器用来控制SDN 250A中网络流量的交换和/或路由。例如,第一映射代理200A可以通过将分配给第一映射代理200A的本地L3地址添加到针对SDN交换机定义的一个或多个映射记录中来启动,使得SDN交换机将网络流量路由到第一映射代理200A,如同它连接到第一网络202A一样。可以进一步调整、配置和/或更新针对SDN交换机定义的一个或多个映射记录以包括第一映射代理200A的虚拟L3地址,从而识别相对于其它映射代理200为支持节点210A和210B的直接映射而启动的第一映射代理200A。
因此,用于支持第一映射代理200A的SDN交换机可以拦截在第一网络202A中传输并发往映射第一映射代理200A的本地L3地址的一个或多个第一数据包,例如单播数据包和/或组播数据包。SDN交换机还可以拦截在第一网络202A中传输的一个或多个(第一)广播数据包。
在网络250B中,第一映射代理200A可以通过指示网络节点(例如节点210H)和/或网关(例如网关212A)启动第一映射代理200A来启动。为执行的第一映射代理200A分配本地L3地址以映射第一网络202A中的第一映射代理200A,并且分配虚拟L3地址以相对于其它映射代理200映射与需要直接映射的节点210(特别是源节点210A和目的节点210B)相关联的第一映射代理200。
因此,第一映射代理200A可以在执行时拦截发往本地L3地址的一个或多个(第一)数据包。第一映射代理200A还可以用于加入在第一网络202A中定义的一个或多个组播组中。因此,第一映射代理200A可以在执行后拦截发往包括第一映射代理200A的组播组的一个或多个(第一)组播数据包。此外,第一映射代理200A可以在执行后拦截在第一网络202A中传输的一个或多个(第一)广播数据包。
在混合网络250C中,如果源节点210A所连接的第一网络202A是SDN(例如SDN250A)的一部分,则可以如针对SDN 250A所述的那样启动第一映射代理200A。如果第一网络202A是物理网络(如网络250B),则可以如针对网络250B所述的那样启动第一映射代理200A。
第一映射代理200A可以由一个或多个用户启动,例如,被授权配置、操作和/或调整SDN 250A、网络250B和/或混合网络250C的系统管理员等等。可选地,具体地,在SDN 250A和/或混合网络250C中,第一映射代理200A可以由SDN控制器启动,该SDN控制器可以操作SDN交换机的一个或多个映射记录以包括分配给第一映射代理200A的本地L3地址和虚拟L3地址。
在启动第一映射代理200A之后,可以调整和/或更新一个或多个DNS,例如本地DNS230A和/或全局DNS 230G,以将分配给第一映射代理200A的虚拟L3地址与第一映射代理200A的本地L3地址相关联。
如104所示,可以启动第二映射代理(例如第二映射代理200B),并与连接到第二网络202B的目的节点210B相关联,以支持目的节点210B在第一网络202A中的直接映射。以与针对第一映射代理200A所述类似的方式,在第二网络202B中启动第二映射代理200B,并为其分配唯一的本地L3地址和唯一的虚拟L3地址。在第二网络202B的L3地址范围内选择的本地L3地址映射第二网络202B中的第二映射代理200B。虚拟L3地址在预定义的虚拟L3地址范围内选择,以映射与直接映射的节点210(特别是源节点210A和目的节点210B)相关联的映射代理200。因此,虚拟L3地址相对于其它映射代理200,例如第一映射代理200A,唯一地映射第二映射代理200B。
类似于第一映射代理200A,第二映射代理200B可以在虚拟网络(例如SDN 250A)中、物理网络(例如网络250B)中和/或其组合(例如混合网络250C)中启动。
第二映射代理200B可以在SDN 250A、网络250B和/或混合网络250C中启动和配置,如针对第一映射代理200A所述,当然,所有这些都在第二网络202B中完成。类似于第一映射代理200A,第二映射代理200B可以由调整SDN 250A、网络250B和/或混合网络250C的一个或多个用户启动。可选地,如针对第一映射代理200A所述,具体在SDN 250A和/或混合网络250C中,第二映射代理200B可以由一个或多个SDN控制器启动,该SDN控制器可以操作SDN交换机的一个或多个映射记录,以包括分配给第二映射代理200B的本地L3地址和虚拟L3地址。
在启动第一映射代理200A之后,可以调整和/或更新一个或多个DNS,例如本地DNS230A和/或全局DNS 230G,以将分配给第一映射代理200A的虚拟L3地址与第一映射代理200A的本地L3地址相关联。
第一映射代理200A和第二映射代理200B可以在被正确启动和配置之后分别执行过程300和400。
如302所示,第一映射代理200A可以接收(拦截)从一个或多个源节点(例如源节点210A)在第一网络202A中传输、发往目的节点210B的一个或多个(第一)数据包。源节点210A可用于通过在一个或多个(第一)数据包中包括第一映射代理200A的本地L3地址,将目的节点210B定义为这些数据包的目的节点。
因此,第一映射代理200A可以拦截专门发往目的节点210B的(第一)单播数据包,该(第一)单播数据包包括第一映射代理200A的本地L3地址。但是,第一映射代理200A还可以拦截发送到加入第一映射代理200A的一个或多个组播组的一个或多个(第一)组播数据包,以便映射该一个或多个组播组中的目的节点210B。第一映射代理200A还可以拦截在第一网络202A中传输的一个或多个(第一)广播数据包。
如304所示,第一映射代理200A可以调整拦截的(第一)数据包,以包括第二映射代理200B的虚拟L3地址作为目的地址。第一映射代理200A还可以调整拦截的(第一)数据包,以包括第一映射代理200A的虚拟L3地址作为源地址。例如,第一映射代理200A可以调整一个或多个拦截的(第一)数据包中的目的L3地址,以将第一映射代理200A的本地L3地址替换为第二映射代理200B的虚拟L3地址。类似地,第一映射代理200A可以调整一个或多个拦截的(第一)数据包中的源L3地址,以将源节点210A的本地L3地址替换为第一映射代理200A的虚拟L3地址。
如306所示,第一映射代理200A可以将一个或多个拦截的(第一)数据包封装在一个或多个封装数据包中,该封装数据包包括由第一映射代理200A生成的流量描述符,以将第二映射代理200B标识(指示)为目标(目的地)。
流量描述符,特别是流量描述符中的源地址和目的地址可以根据第二映射代理200B的虚拟L3地址和可选的第一映射代理200A的虚拟L3地址来解析。解析流量描述符可以使用一个或多个DNS 230(例如,本地DNS 230A和/或全局DNS 230G)来完成,这些DNS 230用于将分配给映射代理200的虚拟L3地址与实际的网络寻址和路由地址相关联。因此,流量描述符可以包括用于将一个或多个封装数据包传输到执行第二映射代理200B的第二网络202B的网络路由和映射信息。
第一映射代理200A可以生成、构造和/或配置流量描述符以包括一个或多个目的地址,例如L2地址、L3地址和/或根据用于将一个或多个封装数据包转发到第二网络202B的传输协议。例如,假设第一映射代理200A使用一个或多个L2隧道协议与第二映射代理200B通信,例如VLAN隧道、MPLS、GRE.geneve、STT、L2-vpn、基于IP的以太网、VXLAN、IP over IP、伪隧道等等。在这种情况下,第一映射代理200A可以构造流量描述符以包括使用一个或多个DNS 230解析的第二映射代理200B的目的L2地址。第一映射代理200A可以包括流量描述符作为与一个或多个L2封装数据包相关联的可用元数据,并受一个或多个L2隧道协议支持。在另一个示例中,假设第一映射代理200A使用一个或多个基于L3的网络协议(例如IP(例如IPv4、IPv6等)、IPX/SPX等等)与第二映射代理200B通信。在这种情况下,第一映射代理200A可以将一个或多个封装数据包构造为分配有流量描述符的基于L3的数据包,所述流量描述符包括使用一个或多个DNS 230解析的第二映射代理200B的L3地址。例如,第一映射代理200A可以将流量描述符插入一个或多个L3封装数据包的一个或多个合适目的地址字段中。
如308所示,第一映射代理200A可以使用一个或多个L2隧道协议和/或一个或多个L3网络协议将一个或多个封装数据包转发(发送)到第二映射代理200B。
如402所示,第二映射代理200B可以接收由第一映射代理200A使用一个或多个L2隧道协议和/或一个或多个L3网络协议发送的一个或多个封装数据包。
如404所示,第二映射代理200B可以解封装接收到的一个或多个封装数据包,并提取最初由源节点210A发送并由第一映射代理200A在第一网络202A拦截的一个或多个(第一)数据包。特别地,由第二映射代理200B从一个或多个封装数据包中提取的一个或多个(第一)数据包是调整后的(第一)数据包,而不包括第一映射代理200A(源地址)和第二映射代理200B(目的地址)的虚拟L3地址。如过程300的步骤302中所述,最初由源节点210A发送的提取的一个或多个(第一)数据包可以包括一个或多个单播、组播和/或广播数据包。
如406所示,第二映射代理200B可以调整提取的一个或多个(第一)数据包,以包括目的节点210B的本地L3地址作为目的地址。第一映射代理200A还可以调整提取的(第一)数据包,以包括第二映射代理200B的虚拟L3地址作为源地址。例如,第二映射代理200B可以调整提取的一个或多个(第一)数据包中的目的L3地址,以将第二映射代理200B的虚拟L3地址替换为目的节点210B的本地L3地址。类似地,第二映射代理200B可以调整提取的一个或多个(第一)数据包中的源L3地址,以将第一映射代理200A的虚拟L3地址替换为第二映射代理200B的本地L3地址。
如408所示,第二映射代理200B可以发送用目的节点210B的本地L3地址调整的一个或多个(第一)数据包,从而可以拦截这些数据包。
第一映射代理200A和第二映射代理200B还可以用于支持反向传输路径,即支持一个或多个(第二)数据包(例如单播、组播和/或广播数据包)从目的节点210B传输到源节点210A的响应路径。为了实现这一点,第一映射代理200A和第二映射代理200B可以切换它们的操作模式,使得第二映射代理200B可以执行过程300,而第一映射代理200A执行过程400。
可以缩放和扩展在过程100、300和400中描述的虚拟L3映射,以支持多个源节点和目的节点对,例如源节点210A和目的节点210B。可以部署多对第一映射代理200A和第二映射代理200B,使得每一对与一对相应的特定源节点和目的节点相关联。
图3B示出了示例性的这种网络,其中,两个目的地节点210B1和210B2被映射到第一网络202A中。如图所示,启动一对相应的第一映射代理200A和第二映射代理200B,以映射目的节点210B1和210B2中的每一个目的节点。具体地,启动第一映射代理200A1和第二映射代理200B1以便为源节点210A映射目的节点210B1,启动第一映射代理200A2和第二映射代理200B2以便为目的节点210B2映射源节点210A。
根据本发明的一些实施例,可以根据节点210(例如源节点210A和/或目的节点210B)的名称解析流量描述符。特别地,可以根据相应节点210的统一资源标识符(UniformResource Identifier,URI),例如统一资源定位符(Uniform Resource Locator,URL)等来解析流量描述符。
在这些实施例中,可以应用一个或多个更高级别的协议,例如超文本传输协议(Hypertext Transfer Protocol,HTTP)等层7(Layer 7,L7)协议,以解析流量描述符。例如,源节点210A和/或目的节点210B的地址可以从源节点210A和/或目的节点210B发出的一个或多个HTTP请求的一个或多个参数推断出来。
此外,在此类实施例中,第一映射代理200A可以使用支持名称(即URI、URL等)映射的一个或多个隧道协议将一个或多个封装的数据包转发到第二映射代理200B。
现在参考图4,图4是根据本发明的一些实施例,用于初始化网络,以使用虚拟L3映射来传输来自连接到本地网络的节点和连接到分离网络的远程网络节点的数据包的示例性序列的示意图。示例性序列410描述了第一映射代理(例如第一映射代理200A)和第二映射代理(例如第二映射代理200B)的配置和操作,该第一映射代理和第二映射代理经部署和配置,为连接到第一网络(例如第一网络202A)的源节点(例如源节点210A)映射连接到第二网络(例如第二网络202B)的目的节点(例如目的节点210B),并且可选地反过来为连接到第二网络的目的节点映射连接到第一网络的源节点。
如图所示,序列410包括用于启动和配置第一映射代理200A和第二映射代理200B的配置阶段,以及流量阶段,在流量阶段中,包括一个或多个第一数据包(例如单播数据包、组播数据包和/或广播数据包)的网络流量从源节点210A发送到目的节点210B。
在配置阶段期间,一个或多个控制器402,例如用户(例如系统管理员等)、SDN控制器等等可以指示在第一网络202A启动第一映射代理200A。例如,如示例性序列410中所示,控制器402启动第一映射代理200A,以由网关(例如网关212A)(例如SDN交换机、路由器等等)执行,该网关212A将第一网络202A连接到公共网络(例如网络220)。
控制器402分配映射第一网络202A中的第一映射代理200A的本地L3地址,用于直接将目的节点210映射到源节点210A。因此,源节点210A可以使用第一映射代理200A的本地L3地址将一个或多个(第一)数据包发送到目的节点210B。
控制器402还将第一映射代理200A配置为具有在预定义的地址范围内的唯一的虚拟L3地址,以支持多个节点210,特别是源节点210A和目的节点210B的直接映射。
此外,控制器402可以将第一映射代理200A的本地L3地址包括(加入)在一个或多个组播组中,目的节点210B应该是该组播组的一部分。控制器402还配置第一映射代理200A以使用一个或多个L2隧道协议和/或一个或多个L3网络协议将具有其本地L3地址的截取的(第一)数据包转发到第二映射代理200B,如在过程300和400中所述。
作为响应,网关212A可以启动并执行第一映射代理200A。
控制器402可以指示在第二网络202B启动第二映射代理200B。例如,如示例性序列410中所示,控制器402启动第二映射代理200B,以由网关(例如网关212B)(例如SDN交换机、路由器等等)执行,该网关212B将第二网络202B连接到网络220。
控制器402分配映射第二网络202B中的第二映射代理200B的本地L3地址,用于直接将目的节点210映射到源节点210A。因此,第二映射代理200B可以使用其本地L3地址将一个或多个数据包发送到目的节点210B。
控制器402还将第二映射代理200B配置为具有在预定义的地址范围内的唯一的虚拟L3地址,以支持多个节点210,特别是源节点210A和目的节点210B的直接映射。
控制器402还配置第二映射代理200B以将从第一映射代理200A接收到的(第一)数据包,特别是从自第一映射代理200A接收到的一个或多个封装数据包中提取的数据包转发到目的节点210B。
作为响应,网关212B可以启动并执行第二映射代理200B。
在操作(流量)阶段期间,如在过程300的步骤302中所述,源节点210A可以发送一个或多个(第一)数据包,例如单播、组播和/或广播数据包,这些数据包可以被第一映射代理200A拦截。例如,在源节点210A向目的节点210B发送一个或多个单播数据包的情况下,第一映射代理200A可以拦截这些单播数据包。在另一个示例中,在源节点210A向加入第一映射代理200A的组播组发送一个或多个组播数据包的情况下,第一映射代理200A可以拦截这些组播数据包。在另一个示例中,第一映射代理200A可以拦截由源节点210A发送的任何广播数据包。
如过程300的步骤306所述,第一映射代理200A可以根据第一映射代理200A配置为支持的L2和/或L3转发协议,将拦截的一个或多个(第一)数据包封装在一个或多个封装数据包中。第一映射代理200A可以在一个或多个封装数据包中包括指示第二映射代理200B的L2和/或L3网络地址的流量描述符,其中,流量描述符根据第二映射代理200B的虚拟L3地址解析。
如在过程300的步骤308中所述,第一映射代理200A然后可以传输(转发)一个或多个封装数据包,所述封装数据包通过网关212A路由到网络220。包括含有第二映射代理200B的L2和/或L3网络地址的流量描述符的封装数据包可以通过网络220路由到将第二网络202B连接到网络220的网关212B。
网关212B可以将一个或多个封装数据包传输到第二网络202B,其中,第二映射代理200B可以拦截具有流量描述符的每个封装数据包,所述流量描述符含有分配给第二映射代理200B的L2和/或L3网络地址,如在过程400的步骤402中所述。如在过程400的步骤404中所述,第二映射代理200B可以解封装接收到的一个或多个封装数据包,并提取最初由源节点210A通过第一网络202A发送的一个或多个单播、组播和/或广播数据包。第二映射代理200B还可以调整提取的数据包以包括目的节点的L3地址,如在过程400的步骤406中所述。最后,如在过程400的步骤408中所述,第二映射代理200B通过第二网络202B传输从一个或多个封装数据包提取并具有调整后的目的L3地址的单播、组播和/或广播数据包。目的节点210B可以拦截这些单播、组播和/或广播数据包,这些数据包分配有目的节点210B的目的L3地址。
显而易见,部署第一映射代理200A和第二映射代理200B支持目的节点210B接收单播、组播和/或广播数据包,如同目的节点210B直接连接在第一网络202A中一样。此外,源节点210A和第一映射代理200A都不需要了解在第二网络202B中应用的本地网络映射(即,本地L3地址),因为网络流量,特别是封装数据包是使用第二映射代理200B的虚拟L3地址传输的。
现在参考图5,图5是根据本发明的一些实施例,使用虚拟L3映射在连接到两个分离网络的网络节点之间传输数据包的网络的示例性实施例的示意图。还参考图6,图6是根据本发明的一些实施例,在示例性网络实施例中,由连接到两个分离网络的网络节点用来使用虚拟L3映射将数据包传输到远程网络节点的示例性序列的示意图。
示例性网络500(例如网络系统250)包括第一网络(例如第一网络202A)和第二网络(例如第二网络202B)。第一网络202A通过具有外部地址(例如外部L3地址(IP地址)134.25.85.14)的网关(例如网关212A)连接到公共网络。第二网络202B通过具有外部地址(例如外部IP地址164.27.19.200)的网关(例如网关212B)连接到网络。
网络节点(例如源节点210A)连接到第一网络202A并分配有本地L3地址(IP地址)192.168.1.3。与源节点210A相关联的第一映射代理(例如第一映射代理200A)在第一网络202A中启动并分配有本地L3地址192.168.200.4。还为第一映射代理200A分配虚拟L3地址,以相对于其它映射代理200映射第一映射代理200A,从而支持节点210A和210B的直接映射。具体地,为第一映射代理200A分配在预定义的L3地址范围128.0.x.x内的虚拟L3(IP地址)128.0.0.1。
网络节点(例如目的节点210B)连接到第二网络202B并分配有本地L3地址(IP地址)10.0.0.5。与目的节点210B相关联的第二映射代理(例如第二映射代理200B)在第二网络202B中启动并分配有本地L3地址10.0.7.3。还为第二映射代理200B分配虚拟L3地址以映射第二映射代理200B。具体地,为第二映射代理200B分配在预定义的L3地址范围128.0.x.x内的虚拟L3(IP地址)128.0.0.7。
连接到第一网络202A的本地DNS(例如DNS 230A)用于通过将第一映射代理200A与其本地L3地址(192.168.200.4)、其虚拟L3地址(128.0.0.1)和网关212A的外部地址(134.25.85.14)关联映射网络500中的第一映射代理200A。本地DNS 230A还用于通过将第二映射代理200B与其本地L3地址(10.0.7.3)、其虚拟L3地址(128.0.0.7)和网关212B的外部地址(164.27.19.200)关联映射网络500中的第二映射代理200B。
连接到第二网络202B的本地DNS(例如DNS 230B)也用于映射网络500中的第一映射代理200A和第二映射代理200B,就像DNS 230A所做的那样。
示例性序列600可以由在网络500中启动并分别执行过程300和400的第一映射代理200A和第二映射代理200B执行。
如序列600中所示,作为源节点的节点210A可以发送发往作为目的节点的节点210B的一个或多个(第一)数据包。因此,源节点210A可以构造一个或多个发送的数据包以包括第一映射代理200A的本地L3地址(IP地址),即192.168.200.4。
第一映射代理200A可以发现分配给自己和第二映射代理200B的虚拟L3地址。第一映射代理200A和第二映射代理200B各自分配有唯一的虚拟L3地址,该虚拟L3地址可以使用一种或多种方法、技术、工具和/或协议分配。例如,可以为第一映射代理200A和第二映射代理200B手动分配相应的虚拟L3地址。在另一个示例中,一个或多个网络管理系统和/或服务(例如控制器402)可以将相应的虚拟L3地址分配给第一映射代理200A和第二映射代理200B。在为每个映射代理200分配唯一的虚拟L3地址之后,分配的虚拟L3地址可以向一个或多个其它映射代理公布。例如,分配给第二映射代理200B的虚拟L3地址可以向第一映射代理200A公布,反之亦然,分配给第一映射代理200A的虚拟L3地址可以向第二映射代理200B公布。公布虚拟L3地址可以使用用于分配虚拟L3地址的一种或多种方法、技术、工具和/或协议来完成。然后,第一映射代理200A可以调整接收到的一个或多个(第一)数据包,如在过程300的步骤304中所述。具体地,第一映射代理200A将一个或多个数据包的源地址字段中源节点的本地L3地址(192.168.1.3)替换为第一映射代理200A的虚拟L3地址(128.0.0.1)。第一映射代理200A还将一个或多个(第一)数据包的目的地址字段中的第一映射代理200A的本地L3地址(192.168.200.4)替换为第二映射代理200B的虚拟L3地址(128.0.0.7)。
第一映射代理200A将调整后的一个或多个(第一)数据包封装在一个或多个封装数据包中,并在一个或多个封装数据包中包括根据第二映射代理200B的虚拟L3地址解析的流量描述符,如在过程300的步骤306中所述。例如,第一映射代理200A可以使用和/或访问DNS 230A,以根据第二映射代理的虚拟L3地址解析网关212B和可选的目的节点210B的网络地址。例如,假设一个或多个封装数据包使用一个或多个L3网络协议转发,则第一映射代理200A可以构造流量描述符以将网关212B的外部L3地址(IP地址)(164.27.19.200)包括在流量描述符的目的字段中。类似地,第一映射代理200A在流量描述符的源字段中包括网关212A的外部L3地址(IP地址)(134.25.85.14)。
第一映射代理200A可以转发(发送)一个或多个封装数据包,这些封装数据包根据其一个或多个流量描述符中指示的网络地址在网络500中路由,并因此可以到达网关212B,网关212B可以将这些封装数据包路由到第二映射代理200B。
第二映射代理200B可以如过程400的步骤404中所述解封装接收到的一个或多个封装数据包,以提取最初由源节点210A传输的一个或多个(第一)数据包(特别是调整后的一个或多个(第一)数据包)。然后,第二映射代理200B可以如过程400的步骤406中所述调整提取的一个或多个数据包,使得这些数据包指示目的节点210B作为这些数据包的目的地。具体地,第二映射代理200B将一个或多个数据包的源地址字段中的第一映射代理的虚拟L3地址(128.0.0.1)替换为第二映射代理200B的本地L3地址(10.0.7.3)。第二映射代理200B还将一个或多个数据包的目的地址字段中的第二映射代理200B的虚拟L3地址(128.0.0.7)替换为目的节点210B的本地L3地址(10.0.0.5)。
然后,第二映射代理200B可以通过第二网络202B向目的节点210B发送调整后的一个或多个数据包,并且由于这些数据包中的目的地址指示目的节点210B,目的节点210B拦截这些数据包。
显然,如序列600所示,第一映射代理200A使用第二映射代理200B的虚拟L3地址传输封装的数据包,因此可能完全不了解第二网络202B的本地网络映射。同样的情况也适用于响应路径,在响应路径中,第二映射代理200B使用第一映射代理200A的虚拟L3地址传输封装的数据包,因此可能完全不了解第一网络202A的本地网络映射。
如上所述,根据本发明的一些实施例,单个第二映射代理(例如第二映射代理200B)可以部署在第二网络(例如第二网络202B)中并与连接到第二网络202B的单个网络节点相关联,该单个网络节点作为连接到与第二网络202B分离的一个或多个其它网络202(例如第一网络202A和/或第三网络202C)的多个客户端网络节点(例如源节点210A和210C)的主机目的节点210B。
现在参考图7,图7是本发明的一些实施例提供的示例性网络系统的示意图,其中,使用单个映射代理将单个主机网络节点映射到连接到分离网络的多个客户端网络节点,所述单个映射代理用于网络节点的虚拟L3映射,以在主机网络节点与客户端网络节点之间传输数据包。还参考图8A和图8B,它们是本发明的一些实施例提供的示例性序列的示意图,连接到分离网络的单个主机网络节点和多个客户端网络节点应用所述示例性序列,以使用用于主机网络节点的虚拟L3映射的单个映射代理在主机网络节点与客户端网络节点之间传输数据包。
示例性网络700(例如网络系统250,特别是网络250D)包括第一网络(例如第一网络202A)、第二网络(例如第二网络202B)和第三网络(例如第三网络202C)。第一网络202A通过具有外部地址(例如外部L3地址(IP地址)134.25.85.14)的网关(例如网关212A)连接到公共网络。第二网络202B通过具有外部地址(例如外部IP地址164.27.19.200)的网关(例如网关212B)连接到网络。第三网络202C通过具有外部地址(例如外部IP地址19.85.44.3)的网关(例如网关212C)连接到网络。
网络节点(例如源节点210A)连接到第一网络202A并分配有本地L3地址(IP地址)192.168.1.3。与源节点210A相关联的第一映射代理(例如第一映射代理200A)在第一网络202A中启动并分配有本地L3地址192.168.200.4。还为第一映射代理200A分配虚拟L3地址,以相对于其它映射代理200映射第一映射代理200A,具体是为支持节点210A和210B的直接映射启动的第一映射代理200A。具体地,为第一映射代理200A分配在预定义的L3地址范围128.x.x.x内的虚拟L3(IP地址)128.0.0.1。
网络节点(例如目的节点210B)连接到第二网络202B并分配有本地L3地址(IP地址)10.0.0.5。与目的节点210B相关联的第二映射代理(例如第二映射代理200B)在第二网络202B中启动并分配有本地L3地址10.0.7.3。还为第二映射代理200B分配虚拟L3地址以映射第二映射代理200B。具体地,为第二映射代理200B分配在预定义的L3地址范围128.x.x.x内的虚拟L3(IP地址)128.0.0.7。
源节点210C(例如源节点210A)连接到第三网络202C并分配有本地L3地址(IP地址)172.23.0.7。与源节点210C相关联的第三映射代理200C(例如第一映射代理200A)在第三网络202C中启动并分配有本地L3地址172.24.1.19。还为第三映射代理200C分配虚拟L3地址以映射第三映射代理200C。具体地,为第三映射代理200C分配在预定义的L3地址范围128.x.x.x内的虚拟L3(IP地址)128.0.0.19。
连接到第一网络202A的本地DNS(例如DNS 230A)用于通过将第一映射代理200A与其本地L3地址(192.168.200.4)、其虚拟L3地址(128.0.0.1)和网关212A的外部地址(134.25.85.14)关联映射网络500中的第一映射代理200A。本地DNS 230A还用于通过将第二映射代理200B与其本地L3地址(10.0.7.3)、其虚拟L3地址(128.0.0.7)和网关212B的外部地址(164.27.19.200)关联映射网络500中的第二映射代理200B。
连接到第三网络202C的本地DNS 230C(例如DNS 230A)用于映射网络500中的第三映射代理200C和第二映射代理200B,就像DNS 230A所做的那样。
连接到第二网络202B的本地DNS(例如DNS 230B)用于映射网络500中的第一映射代理200A、第三映射代理200C和第二映射代理200B。
在图8A中呈现并在图8B中延续的示例性序列800可以由在网络500中启动并分别执行过程300和400的第一映射代理200A、第三映射代理200C和第二映射代理200B执行。
如序列800所示,源节点210A可以发送一个或多个(第一)数据包,发往作为目的(主机)节点的节点210B。因此,源节点210A可以构造一个或多个发送的数据包以包括第一映射代理200A的本地L3地址(IP地址),即192.168.200.4。第一映射代理200A可以调整接收到的一个或多个(第一)数据包并封装一个或多个(第一)数据包,如过程300的步骤304和306中所述以及针对序列600所述。第一映射代理200A可以调整一个或多个(第一)数据包的源地址和目的地址字段。因此,第一映射代理200A将一个或多个(第一)数据包的源地址字段中的本地L3地址192.168.1.3替换为虚拟L3地址128.0.0.1。第一映射代理200A还将目的地址字段中的本地L3地址192.168.200.4替换为虚拟L3地址128.0.0.7。第一映射代理200A将调整后的一个或多个(第一)数据包封装在一个或多个封装数据包中,该封装数据包具有根据第二映射代理200B的虚拟L3地址解析的流量描述符。例如,流量描述符可以包括目的字段中的网关212B的外部IP地址(164.27.19.200)和源字段中的网关212A的外部IP地址(134.25.85.14)。然后,第一映射代理200A可以转发(发送)一个或多个封装数据包,这些封装数据包根据其一个或多个流量描述符中指示的网络地址在网络700中路由,并因此可以到达网关212B,网关212B可以将这些封装数据包路由到第二映射代理200B。
类似地,源节点210C可以发送一个或多个(第一)数据包,发往作为目的(主机)节点的节点210B。因此,源节点210C可以构造一个或多个发送的(第一)数据包以包括第三映射代理200C的本地L3地址(IP地址),即172.24.1.19。第三映射代理200C可以调整接收到的一个或多个(第一)数据包并封装一个或多个(第一)数据包,如过程300的步骤304和306中所述以及针对序列600所述。第三映射代理200C可以调整一个或多个(第一)数据包的源地址和目的地址字段。因此,第三映射代理200C将一个或多个(第一)数据包的源地址字段中的本地L3地址172.23.0.7替换为虚拟L3地址128.0.0.19。第三映射代理200C还将目的地址字段中的本地L3地址172.24.1.19替换为虚拟L3地址128.0.0.7。第三映射代理200C将调整后的一个或多个(第一)数据包封装在一个或多个封装数据包中,该封装数据包具有根据第二映射代理200B的虚拟L3地址解析的流量描述符。例如,流量描述符可以包括目的字段中的网关212B的外部IP地址(164.27.19.200)和源字段中的网关212C的外部IP地址(19.85.44.3)。然后,第三映射代理200C可以转发(发送)一个或多个封装数据包,这些封装数据包根据其一个或多个流量描述符中指示的网络地址在网络700中路由,并因此可以到达网关212B,网关212B可以将这些封装数据包路由到第二映射代理200B。
显然,由第一映射代理200A传输的一个或多个封装数据包以及由第三映射代理200C传输的一个或多个封装数据包到达与目的节点210B相关联的单个第二映射代理200B。
因此,第二映射代理200B可以跟踪为每个数据包创建的每个连接,所述数据包使用与多个源节点210中的一个相关联的每个映射代理200传输。例如,第二映射代理200B可以创建并跟踪使用第一映射代理200A建立的第一连接(1)和使用第三映射代理200C建立的第二连接(2)。第二映射代理200B可以使用第一映射代理200A和/或第三映射代理200C使用的转发协议所支持的一种或多种连接跟踪协议、算法和/或工具来转发一个或多个封装数据包。例如,第二映射代理200B可以使用一个或多个层4(Layer 4,L4)协议中可用的一个或多个规定(例如TCP、UDP等等)来跟踪连接。例如,第二映射代理200B可以识别并记录包括始发网关212的外部IP地址的封装数据包的源L3地址,以跟踪与网关212A和/或网关212C的连接。在另一个示例中,第二映射代理200B可以识别并记录从包括始发映射代理的虚拟L3地址的封装数据包中提取的一个或多个(第一)数据包的源L3地址,以跟踪与第一映射代理200A和/或与第三映射代理200C的连接。
第二映射代理200B可以如过程400的步骤404中所述解封装接收到的一个或多个封装数据包,以提取最初由源节点210A传输的一个或多个(第一)数据包。然后,第二映射代理200B可以如过程400的步骤406中所述调整提取的一个或多个(第一)数据包,使得这些数据包指示目的节点210B作为一个或多个(第一)数据包的目的地,并且指示第二映射代理200B作为一个或多个(第一个)数据包的来源。具体地,第二映射代理200B将源地址字段中的虚拟L3地址128.0.0.1替换为本地L3地址10.0.7.3。第二映射代理200B进一步将目的地址字段中的虚拟L3地址128.0.0.7替换为本地L3地址10.0.0.5。
然后,第二映射代理200B可以通过第二网络202B向目的节点210B发送调整后的一个或多个(第一)数据包,并且由于这些(第一)数据包中的目的地址指示目的节点210B,目的节点210B拦截这些(第一)数据包。
在返回(响应)路径上,第二映射代理200B可以执行过程300,以向与源节点210A和/或210C相关联的映射代理200转发由目的节点210B响应于从源节点210A和/或210C接收到的(第一)数据包而发送的一个或多个(第二)数据包。但是,由于可能存在与多个源节点210相关联的多个映射代理的多个连接,例如,第一映射代理200A和第三映射代理200C,第二映射代理200B可以使用连接信息以便识别准确的始发映射代理200。根据对始发映射代理200A和/或200C的识别,第二映射代理200B可以调整从目的节点210接收到的(第二)数据包,以包括所识别的映射代理200A和/或200C的虚拟L3地址。类似地,根据对始发映射代理200A和/或200C的识别,第二映射代理200B可以解析托管所识别的映射代理200A和/或200C的网络202的相应网关212的外部IP地址,并可以相应地构造流量描述符。
对本发明各个实施例的描述只是为了说明的目的,而这些描述并不旨在穷举或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,本领域技术人员可以清楚理解许多修改和变化。相比于市场上存在的技术,选择此处使用的术语可最好地解释本实施例的原理、实际应用或技术进步,或使本领域其它技术人员理解此处公开的实施例。
预计在本申请到期之前专利的有效期内,将开发许多相关技术,术语“虚拟网络”、“虚拟节点”和“虚拟交换机”的范围旨在先验地包括所有此类新技术。
本文所使用的术语“约”是指±10%。
术语“包括”、“有”及其同义词表示“包括但不限于”。这个术语包括了术语“由……组成”以及“基本上由……组成”。
短语“由……组成”表示组成物或方法可以包含附加成分和/或步骤,但前提是所述附加成分和/或步骤不会实质上改变所要求保护的组成物或方法的基本和新颖特性。
除非上下文另有明确说明,否则本文使用的单数形式“一个”和“所述”包括复数含义。例如,术语“一种复合物”或“至少一种复合物”可以包括多种复合物,包括其混合物。
本文使用的词“示例性的”表示“作为一个例子、示例或说明”。任何描述为“示例性的”实施例并不一定解释为优先于或优越于其它实施例和/或并不排除结合其它实施例的特征。
本文使用的词语“可选地”表示“在一些实施例中提供且在其它实施例中没有提供”。本发明的任何特定的实施例可以包含多个“可选的”特征,除非这些特征相互矛盾。
在本申请中,本发明的各种实施例可以范围格式呈现。应理解,范围格式的描述仅为了方便和简洁起见,并且不应该被解释为对本发明范围的固定限制。因此,对范围的描述应被认为是已经具体地公开所有可能的子范围以及所述范围内的单独数值。例如,对于例如从1到6的范围的描述应被视为已具体公开了从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等的子范围以及该范围内的单独数字例如1、2、3、4、5和6。不论范围有多广,这都适用。
当本文指出一个数字范围时,表示包括在这个指出的范围内的任何所列举的数字(分数或整数)。短语“在第一指示数字与第二指示数字之间的范围”以及“从第一指示数字到第二指示数字的范围”在本文可互换使用,表示包括第一指示数字和第二指示数字以及二者之间所有的分数和整数。
应了解,为简洁起见在单独实施例的上下文中描述的本发明的某些特征还可以组合提供于单个实施例中。相反地,为了清楚起见而在单个实施例的上下文中描述的本发明的各种特征也可以单独地或通过任何合适的子组合或作为本发明的任何其它描述的实施例提供。在各个实施例的上下文中描述的某些特征不被认为是这些实施例的基本特征,除非在没有这些元件的情况下实施例是不可操作的。
此处,本说明书中提及的所有出版物、专利和专利申请书都通过全文引用并入本说明书中,同样,每个单独的出版物、专利或专利申请书也具体且单独地通过引用并入本文。此外,对本申请的任何参考的引用或识别不可当做是允许这样的参考在现有技术中优先于本发明。就使用节标题而言,不应该将节标题理解成必要的限定。此外,本申请的一个或多个任何优先权文件通过全文引用并入本文。
Claims (15)
1.一种用于传输数据的系统,其特征在于,包括:
至少一个处理电路,所述至少一个处理电路连接到第一网络并执行第一映射代理,所述第一映射代理具有连接到与所述第一网络分离的第二网络的目的节点的层3(Layer 3,L3)地址映射,所述第一映射代理包括用于执行以下操作的代码:
通过所述第一网络从源节点接收发往所述目的节点的第一数据包;
调整所述第一数据包以包括分配给第二映射代理的虚拟L3地址,所述第二映射代理在所述第二网络执行并与所述目的节点相关联;
将调整后的第一数据包封装在包括根据所述虚拟L3地址解析的流量描述符的封装数据包中;
将所述封装数据包转发给所述第二映射代理,所述第二映射代理用于将从所述封装数据包中提取的所述调整后的第一数据包通过所述第二网络发送到所述目的节点。
2.根据权利要求1所述的系统,其特征在于,所述封装数据包的所述流量描述符还包括分配给所述第一映射代理的虚拟L3地址,用于接收通过所述第二映射代理和所述第一映射代理从所述目的节点发送到所述源节点的第二数据包。
3.根据权利要求1所述的系统,其特征在于,所述封装数据包是使用至少一个层2(Layer 2,L2)隧道协议转发的,所述流量描述符包括由所述至少一个L2隧道协议定义的元数据中的所述第二映射代理的标识符。
4.根据权利要求1所述的系统,其特征在于,所述封装数据包是使用至少一个L3网络协议转发的,所述流量描述符包括所述第二映射代理的L3地址。
5.根据权利要求1所述的系统,其特征在于,所述第一网络和所述第二网络是在软件定义网络(Software Defined Network,SDN)中定义的虚拟网络,所述第一映射代理通过如下方式用于所述第一网络中:配置所述SDN的映射记录,以将所述目的节点的所述虚拟L3地址映射包括在分配给连接到所述第一网络的节点的虚拟L3地址列表中。
6.根据权利要求1所述的系统,其特征在于,所述第一网络和所述第二网络是通过两个相应的网络网关连接到公共网络基础设施的物理网络。
7.根据权利要求6所述的系统,其特征在于,所述第一映射代理是由将所述第一网络连接到所述公共网络基础设施的所述网络网关执行的。
8.根据权利要求6所述的系统,其特征在于,所述第一映射代理是由连接到所述第一网络的专用网络节点执行的。
9.根据权利要求1所述的系统,其特征在于,所述第一网络是软件定义网络(SoftwareDefined Network,SDN)中定义的虚拟网络,所述第二网络是通过网络网关连接到所述虚拟网络抽象化的网络的物理网络,虚拟端口部署在所述网络网关中以映射所述SDN中的所述目的节点,所述第一映射代理通过如下方式用于所述第一网络中:配置所述SDN的映射记录,以将所述虚拟端口的所述虚拟L3地址包括在分配给连接到所述第一网络的节点的虚拟L3地址列表中。
10.根据权利要求1所述的系统,其特征在于,所述第一数据包包括发往连接到所述第一网络的节点组的至少一个组播数据包,所述第一映射代理响应于从所述第二映射代理接收到的将所述目的节点包括在所述组中的请求而被配置为所述组的一部分,使得所述第一映射代理封装所述至少一个组播数据包并转发给所述第二映射代理以传送到所述目的节点。
11.根据权利要求1所述的系统,其特征在于,所述第一数据包包括发往连接到所述第一网络的所有节点的至少一个广播数据包,所述第一映射代理用于封装所述至少一个广播数据包并转发给所述第二映射代理,以传送到目的主机。
12.根据权利要求1所述的系统,其特征在于,还包括部署多个第一映射代理,所述多个第一映射代理中的每一个映射连接到与所述第一网络分离的至少一个第二网络的多个目的节点中的相应一个目的节点。
13.根据权利要求1所述的系统,其特征在于,还包括为连接到与所述第二网络分离的至少一个第一网络的多个源节点部署单个第二映射代理,所述单个第二映射代理映射连接到所述第二网络的目的节点,所述多个源节点中的每一个与在所述至少一个第一网络执行的相应的第一映射代理相关联,将所述第一数据包发送到所述第二映射代理的每个源节点的所述相应的第一映射代理是通过跟踪所述相应的第一映射代理的连接来识别的。
14.根据权利要求1所述的系统,其特征在于,还包括,所述流量描述符是根据所述目的节点的统一资源标识符(Uniform Resource Identifier,URI)解析的。
15.一种计算机实现的数据传输方法,其特征在于,包括:
通过第一网络从源节点接收发往连接到与所述第一网络分离的第二网络的目的节点的第一数据包;
调整所述第一数据包以包括分配给第二映射代理的虚拟层3(Layer 3,L3)地址,所述第二映射代理在所述第二网络执行并与所述目的节点相关联;
将调整后的第一数据包封装在包括根据所述虚拟L3地址解析的流量描述符的封装数据包中;
将所述封装数据包转发给所述第二映射代理,所述第二映射代理用于将从所述封装数据包中提取的所述调整后的第一数据包通过所述第二网络发送到所述目的节点。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2019/072989 WO2021037358A1 (en) | 2019-08-28 | 2019-08-28 | Virtual local presence based on l3 virtual mapping of remote network nodes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113994639A CN113994639A (zh) | 2022-01-28 |
CN113994639B true CN113994639B (zh) | 2023-09-22 |
Family
ID=67810599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980097584.XA Active CN113994639B (zh) | 2019-08-28 | 2019-08-28 | 基于远程网络节点的l3虚拟映射的数据传输方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113994639B (zh) |
WO (1) | WO2021037358A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116708043B (zh) * | 2023-08-08 | 2023-11-10 | 南京赛宁信息技术有限公司 | 一种网络靶场中用户流量追踪方法与系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102891903A (zh) * | 2012-10-31 | 2013-01-23 | 杭州华三通信技术有限公司 | 一种nat转换方法及设备 |
WO2014142278A1 (ja) * | 2013-03-14 | 2014-09-18 | 日本電気株式会社 | 制御装置、通信システム、通信方法及びプログラム |
CN107800628A (zh) * | 2016-09-07 | 2018-03-13 | 华为技术有限公司 | 用在软件定义网络中的数据转发装置及数据转发方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110110377A1 (en) * | 2009-11-06 | 2011-05-12 | Microsoft Corporation | Employing Overlays for Securing Connections Across Networks |
CN104869042B (zh) * | 2014-02-20 | 2018-07-13 | 华为技术有限公司 | 报文转发方法和装置 |
CN106341298B (zh) * | 2015-07-06 | 2019-03-22 | 中兴通讯股份有限公司 | 报文发送方法及装置 |
CN106936939B (zh) * | 2015-12-31 | 2020-06-02 | 华为技术有限公司 | 一种报文处理方法、相关装置及nvo3网络系统 |
-
2019
- 2019-08-28 WO PCT/EP2019/072989 patent/WO2021037358A1/en active Application Filing
- 2019-08-28 CN CN201980097584.XA patent/CN113994639B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102891903A (zh) * | 2012-10-31 | 2013-01-23 | 杭州华三通信技术有限公司 | 一种nat转换方法及设备 |
WO2014142278A1 (ja) * | 2013-03-14 | 2014-09-18 | 日本電気株式会社 | 制御装置、通信システム、通信方法及びプログラム |
CN107800628A (zh) * | 2016-09-07 | 2018-03-13 | 华为技术有限公司 | 用在软件定义网络中的数据转发装置及数据转发方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021037358A1 (en) | 2021-03-04 |
CN113994639A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6648308B2 (ja) | パケット伝送 | |
US10439843B2 (en) | Method and system for virtual and physical network integration | |
US9584546B2 (en) | Providing services to virtual overlay network traffic | |
EP3984181B1 (en) | L3 underlay routing in a cloud environment using hybrid distributed logical router | |
US9923732B2 (en) | Virtual gateways and implicit routing in distributed overlay virtual environments | |
JP5410614B2 (ja) | クラウドコンピューティングにおける企業のレイヤ2シームレスサイト拡張 | |
US8619779B2 (en) | Scalable architecture for enterprise extension in a cloud topology | |
CN103379010B (zh) | 一种虚拟网络实现方法及系统 | |
US20150124823A1 (en) | Tenant dhcp in an overlay network | |
US11070470B2 (en) | Host router in a virtual computing instance | |
US10530656B2 (en) | Traffic replication in software-defined networking (SDN) environments | |
US10015132B1 (en) | Network virtualization for container-based cloud computation using locator-identifier separation protocol | |
US10523464B2 (en) | Multi-homed access | |
EP2548346B1 (en) | Packet node for applying service path routing at the mac layer | |
US20150281062A1 (en) | System and method for route health injection using virtual tunnel endpoints | |
US20220239629A1 (en) | Business service providing method and system, and remote acceleration gateway | |
WO2017166936A1 (zh) | 一种实现地址管理的方法、装置、aaa服务器及sdn控制器 | |
CN114556868B (zh) | 虚拟专用网络vpn客户端的专用子网络 | |
US20180270084A1 (en) | Technique for exchanging datagrams between application modules | |
CN109246016B (zh) | 跨vxlan的报文处理方法和装置 | |
US11159451B2 (en) | Stretched EPG and micro-segmentation in multisite fabrics | |
CN113994639B (zh) | 基于远程网络节点的l3虚拟映射的数据传输方法及系统 | |
CN113647065B (zh) | 虚拟网络拓扑 | |
Mandekar et al. | Centralization of network using openflow protocol | |
US10812446B1 (en) | Dynamic host configuration across multiple sites in software defined access networks |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220223 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Huawei headquarters office building, Bantian, Longgang District, Shenzhen City, Guangdong Province Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |