CN110870290A - 对逻辑网络地址分配唯一的网络地址 - Google Patents
对逻辑网络地址分配唯一的网络地址 Download PDFInfo
- Publication number
- CN110870290A CN110870290A CN201880043987.1A CN201880043987A CN110870290A CN 110870290 A CN110870290 A CN 110870290A CN 201880043987 A CN201880043987 A CN 201880043987A CN 110870290 A CN110870290 A CN 110870290A
- Authority
- CN
- China
- Prior art keywords
- logical
- network address
- address
- mfe
- packet
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 116
- 238000012545 processing Methods 0.000 claims description 35
- 238000005538 encapsulation Methods 0.000 claims description 25
- 230000009471 action Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 71
- 238000013507 mapping Methods 0.000 description 39
- 230000015654 memory Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 6
- 239000010410 layer Substances 0.000 description 6
- 235000008694 Humulus lupulus Nutrition 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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/2535—Multiple local networks, e.g. resolving potential IP address conflicts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
一些实施例提供了用于网络控制器的方法,该网络控制器管理由在多个主机机器上操作的多个受管理的转发元件(MFE)实现的多个逻辑网络。该方法从特定的MFE接收与逻辑转发元件的逻辑端口对应的接口已连接到特定的MFE并且具有特定的逻辑网络地址的通知。该方法向接口分配唯一的物理网络地址。连接到特定的MFE的多个接口中的每个接口被分配不同的物理网络地址。该方法将分配的唯一的物理网络地址提供给特定的MFE,用于特定的MFE对从特定的逻辑网络地址发送的数据消息进行转换以具有唯一的物理网络地址。
Description
背景技术
网络虚拟化在数据中心的操作中起着关键作用,其中一般使用两种不同的方法来实现网络虚拟化。在覆盖方法中,物理数据中心网络用作分组载体,并且(逻辑网络的)网络功能被分离并且实现在上面的覆盖层中。常见的技术是要将逻辑L2(数据链路层)分组嵌入在物理L3(网络层)分组中。在底层方法中,基于逻辑网络模型对物理网络设备(例如,交换机、路由器)进行编程,使得物理数据中心网络充当分组载体和逻辑网络提供者两者。
使用覆盖提供了灵活性,但是对于IP联网,网络堆栈包括五层,而不是三层。额外的协议层消耗额外的物理网络带宽,这意味着较少的带宽可用于实际的有效载荷。此外,分组封装以及所得到的碎片和校验和计算使用额外的CPU周期,这些CPU周期否则将可用于客户工作负载(例如,虚拟机)。由此,用于网络虚拟化的其它技术将是有用的。
发明内容
一些实施例提供了用于在物理网络中实现多个逻辑网络而不使用封装并且不需要物理网络来执行逻辑网络服务和处理的方法。代替地,一些实施例将每个逻辑网络地址映射到唯一的物理网络地址,并且对逻辑网络分组使用地址替换而不是封装。
在一些实施例中,网络控制器(或网络控制器的集群)维护可用物理网络地址的池,并且处理来自受管理的转发元件(MFE)的请求以将唯一的物理地址分配给连接到MFE的接口的逻辑网络地址。例如,当与逻辑转发元件的逻辑端口对应的虚拟机(VM)或其它数据计算节点(DCN)的接口(例如,虚拟网络接口控制器(VNIC))附连到MFE时,该接口被分配逻辑网络地址。该分配可以经由动态主机配置协议(DHCP)、静态地分配或者以其它方式预配置等。MFE向网络控制器通知新的逻辑网络地址。
网络控制器接收具有逻辑网络地址的该通知,并且对接口分配唯一的物理网络地址(即,映射到逻辑网络地址)。网络控制器将该物理网络地址提供给请求的MFE,并且存储逻辑网络地址(和接口)与物理网络地址之间的映射。在一些实施例中,基于其网络拓扑信息,网络控制器将映射分发给可能正在向逻辑网络地址发送分组(或从逻辑网络地址接收分组)并且因此将需要物理映射的其它MFE。在其它实施例中,当不同的MFE接收发送到逻辑网络地址(例如,从其本地DCN中的一个)或从物理网络地址发送的第一个分组时,该MFE向控制器发送对映射的请求。控制器关于映射通知MFE,使得MFE可以使用映射来处理分组,如下面进一步描述的。
在一些实施例中,每个物理网络地址不仅仅在特定逻辑网络内是唯一的,而且在物理网络内实现的所有逻辑网络的所有逻辑接口当中是唯一的。即,虽然逻辑地址空间可以在单独的逻辑网络之间重叠(即,可以在多个逻辑网络中使用相同的子网和/或IP地址),但是物理网络使用单个网络地址空间。在典型的数据中心中,该物理地址空间是私有分派的(即,不需要在数据中心之外使用或知道),因此可用的地址空间相当大。
为了在源MFE(即,将分组发送到物理网络上的MFE,其通常是首先从其源DCN接收分组的MFE)处处理分组,源MFE首先执行逻辑网络处理。该处理可以包括通过一个或多个逻辑转发元件(例如,逻辑交换机、逻辑路由器和另一个逻辑交换机)来逻辑地转发分组、执行逻辑ACL和分布式防火墙检查等。如果分组被路由,则存活时间和逻辑MAC地址可能被改变。
一旦该逻辑处理完成,典型的覆盖网络将基于其目的地地址被映射到物理隧道端点地址来封装分组。然而,在一些实施例中,MFE确定分组是否有资格进行地址替换而不是封装。在一些实施例中,仅在逻辑网络地址之间发送的单播分组有资格进行地址替换。即,多播/广播分组以及发送到逻辑网络之外的目的地(或从逻辑网络之外的目的地接收)的分组没有资格进行地址替换。假定分组有资格(并且MFE具有源和目的地地址的映射信息),那么源MFE将分组中的逻辑源和目的地网络(例如,IP)地址利用它们映射到的唯一的物理地址替换。一些实施例还利用将用于封装分组的那些地址(例如,与MFE的物理接口对应的源MAC和与物理网络下一跳对应的目的地MAC)来修改源和目的地数据链路(例如,MAC)地址。
此外,逻辑接口可能发送可以使物理网络路由器在使用地址替换时执行各种不需要的动作的分组(例如,ICMP分组)。而封装的分组将使该信息隐藏在内部报头中(利用例如TCP或UDP分组封装),通过地址替换,物理网络将看到该协议并且可能对其采取动作。因此,对于某些协议,源MFE利用未使用或保留的协议值替换协议报头字段值,该协议值(i)将不使物理网络采取任何不需要的动作,并且(ii)不应当在逻辑网络内使用。
分组然后如正常那样通过物理网络进行处理。一旦分组到达目的地MFE,就需要附加的处理来处理未封装的分组。如果需要(例如,如果协议值是在源MFE处不同值映射到的未使用或保留的值中的一个),则目的地MFE将协议字段值映射到其原始值。基于由MFE存储的映射,物理网络地址也被利用逻辑网络地址替换。为了确定逻辑数据链路地址,一些实施例使用网络拓扑。如果源和目的地网络地址位于相同的逻辑交换机上,则数据链路地址将是对应的逻辑接口的地址。然而,如果源网络地址位于与目的地不同的逻辑交换机上,则连接到逻辑交换机的逻辑路由器接口的数据链路地址将是源数据链路地址。一旦数据链路层地址也被替换,MFE就可以执行任何附加的所需的逻辑处理,并且将分组递送到目的地接口。
前面的发明内容旨在用作对本发明的一些实施例的简要介绍。这不意味着是对本文档中公开的所有发明主题的介绍或概述。以下的具体实施方式和在具体实施方式中参考的附图将进一步描述发明内容中描述的实施例以及其它实施例。相应地,为了理解本文档描述的所有实施例,需要对发明内容、具体实施方式和附图进行全面回顾。此外,要求保护的主题将不受发明内容、具体实施方式和附图中的说明性细节限制,而是要由所附权利要求限定,因为要求保护的主题可以在不背离主题的精神的情况下以其它特定形式实施。
附图说明
在所附权利要求中阐述了本发明的新颖特征。然而,出于解释的目的,在以下图中阐述了本发明的若干个实施例。
图1概念性地图示了网络控制器及其与MFE的通信以向MFE提供新连接的接口的物理IP地址。
图2概念性地图示了用于分配物理IP地址以映射到逻辑IP地址的一些实施例的处理。
图3概念性地图示了用于在逻辑接口被移动或释放时释放分配的物理IP地址的一些实施例的处理。
图4概念性地图示了在一些实施例的数据中心网络内实现至少一个逻辑网络的一组MFE、以及两个逻辑网络端点(例如,VM)之间的物理网络业务和逻辑网络端点与外部网络之间的物理网络业务的差异。
图5概念性地图示了用于利用物理IP地址替换逻辑IP地址的一些实施例的处理。
图6概念性地图示了用于在将分组递送到接口之前利用逻辑IP地址替换物理IP地址的一些实施例的处理。
图7概念性地图示了逻辑网络以及对该网络的端点分配的逻辑到物理IP地址映射。
图8和图9图示了通过该逻辑网络的物理实现发送的分组的示例。
图10概念性地图示了实现本发明的一些实施例的电子系统。
具体实施方式
在以下本发明的详细描述中,阐述和描述了本发明的许多细节、示例和实施例。然而,对于本领域技术人员将清楚和明白的是,本发明不限于所阐述的实施例,并且本发明可以在没有所讨论的具体细节和示例中的一些的情况下实践。
一些实施例提供了用于在物理网络中实现多个逻辑网络而不使用封装并且不需要物理网络来执行逻辑网络服务和处理的方法。代替地,一些实施例将每个逻辑网络地址映射到唯一的物理网络地址,并且对逻辑网络分组使用地址替换而不是封装。
在一些实施例中,网络控制器(或网络控制器的集群)维护可用物理网络地址的池,并且处理来自受管理的转发元件(MFE)的请求以将唯一的物理地址分配给连接到MFE的接口的逻辑网络地址。例如,当与逻辑转发元件的逻辑端口对应的虚拟机(VM)或其它数据计算节点(DCN)的接口(例如,虚拟网络接口控制器(VNIC))附连到MFE时,该接口被分配逻辑网络地址。
图1概念性地图示了这样的网络控制器100及其与MFE 105的通信以向MFE 105提供新连接的接口的物理IP地址。应当理解的是,虽然示出了单个中央网络控制器100,但是在一些实施例中,这样的控制器的集群进行操作以与许多主机机器上的许多MFE通信。
如所示的,MFE 105在主机110上操作,并且至少一个DCN(在这种情况下为VM 115)附连到MFE 105。在一些实施例中,MFE 105是在主机机器110的虚拟化软件(例如,管理程序)中操作并且由包括网络控制器100的网络控制系统配置的虚拟交换机或其它软件转发元件。在一些实施例中,本地控制器在主机机器110上(例如,也在虚拟化软件内)操作。该本地控制器从网络控制器100接收配置数据,并且针对MFE 105变换来自网络控制器100的配置数据。在一些这样的实施例中,MFE 105和控制器100之间的通信通过本地控制器发送。
VM 115经由VNIC或类似的接口附连到MFE 105。当VNIC附连到网络时,它将被分配逻辑网络地址。在随后的讨论中,将使用互联网协议(IP)地址,但是应当理解的是,在不同的实施例中,这些地址可以是其它类型的网络层地址。逻辑IP地址是VNIC用于在逻辑网络上发送/接收业务的地址。如以下进一步描述的,可以在单个物理数据中心网络内实现多个不同的逻辑网络,其中每个逻辑网络具有其自己的地址空间(其可以与其它逻辑网络的地址空间重叠)。MFE基于从网络控制器接收到的配置数据来实现逻辑网络。
IP地址的分配可以经由动态主机配置协议(DHCP)、静态分配、IP的其它预配置等来完成。当MFE 105识别新接口的逻辑IP地址(通过截获DHCP分组、接收来自VNIC的信息、处理来自VNIC的分组等)时,MFE 105向网络控制器100通知新的逻辑网络地址和接口,使得网络控制器100可以对接口分配唯一的物理IP地址(即,映射到逻辑网络地址)。
图2概念性地图示了用于分配物理IP地址以映射到逻辑IP地址的一些实施例的处理200。处理200由网络控制器(例如,控制器100)响应于从MFE(例如,MFE 105)接收到对物理IP地址的请求而执行。
如所示的,处理200开始于从MFE接收(在205处)新的逻辑IP地址和对应的接口。因为逻辑IP地址不一定是逻辑网络专有的,所以对映射需要附加的标识符。一些实施例使用唯一的VNIC标识符或唯一的逻辑端口标识符。图1图示了MFE 105利用VM 115通过其连接到MFE 105的VNIC的逻辑IP地址和接口向网络控制器100发送消息120。如所提及的,MFE可能在DHCP请求之后、当VM 115发送第一个分组时等已意识到这一点。在一些实施例中,来自MFE的消息120仅需要标识逻辑接口在主机110上的存在,因为控制器100已经具有已分配给接口的对应逻辑IP地址。
处理200响应于该请求将可用的唯一物理IP地址分配(在210处)给逻辑IP地址/接口组合。在一些实施例中,每个物理网络地址不仅仅在特定逻辑网络内是唯一的,而且在物理网络内实现的所有逻辑网络的所有逻辑接口当中是唯一的。即,虽然逻辑地址空间可以在单独的逻辑网络之间重叠(即,可以在多个逻辑网络中使用相同的子网和/或IP地址),但是物理网络使用单个网络地址空间。在典型的数据中心中,该物理地址空间是私有分派的(即,不需要在数据中心之外使用或知道),因此可用的地址空间相当大。在一些实施例中,数据中心可以使用IPv4和IPv6地址两者。在这样的实施例中,这些地址被单独地分派。即,当逻辑IPv4地址被发送到控制器100时,控制器100分派唯一的物理IPv4地址,并且当逻辑IPv6地址被发送到控制器100时,控制器100分派唯一的物理IPv6地址。
处理200然后将分配的唯一物理IP地址提供(在215处)给请求的MFE。如图1所示,网络控制器100将具有分配的物理IP地址的消息125发送到MFE 100。如所提到的,在一些实施例中,该消息被发送到主机100上的本地控制器,该本地控制器继而将数据提供给MFE105。MFE 105存储该映射,并且使用映射来处理发送到VM 115和来自VM 115的分组,如下面更详细描述的。在一些实施例中,MFE发送无偿的ARP分组来向物理网络通知新的IP地址。
处理200还存储(在220处)逻辑IP地址和接口到物理IP地址的映射。如图1所示,网络控制器100存储物理到逻辑网络地址映射表130、以及可用IP地址的池135和IP地址的等待池140。网络控制器100存储该映射表(在一些实施例中,该映射表还标识每个逻辑IP地址和接口组合的主机机器)以便将映射分发给需要数据的其它MFE。在一些实施例中,基于其网络拓扑信息,网络控制器将映射分发到可能正在向逻辑网络地址发送分组(或从逻辑网络地址接收分组)并且因此将需要物理映射的其它MFE。在其它实施例中,当不同的MFE接收发送到逻辑网络地址(例如,从其本地DCN中的一个)或从物理网络地址发送的第一个分组时,该MFE向控制器100发送对映射的请求。控制器100关于映射通知MFE,使得MFE可以使用映射来处理分组,如下面进一步描述的。
如所提到的,网络控制器135还包括可用物理IP地址的池135和物理IP地址的等待池140。如上所述,物理IP地址在数据中心(或其它私有分派的物理网络)内是唯一的。因此,可用物理IP地址池135列出了可用于映射的所有IP地址—即,当前未映射到操作接口的逻辑IP地址的物理IP地址。一旦网络控制器100将特定物理IP地址分配给接口,控制器100就将该映射存储在表130中并且从可用IP的池135中移除该物理IP地址。
图3概念性地图示了用于在逻辑接口被移动或释放时释放分配的物理IP地址的一些实施例的处理300。处理300由网络控制器(例如,控制器100)响应于从MFE(例如,MFE105)接收到逻辑接口不再使用的通知而执行。
如所示的,处理300开始于从MFE(或在具有MFE的主机上操作的本地控制器)接收(在305处)具有逻辑IP地址的接口不再存在于MFE上的通知。如果VM被迁移到不同的主机,则一些实施例释放物理IP并且重新分配新的物理IP;其它实施例保持相同的逻辑IP到物理IP映射。可以使逻辑IP地址不再存在于MFE上的其它情况是该接口从其逻辑网络的移除(即,通过管理员改变逻辑网络配置)、或者逻辑IP被改变(例如,也通过对逻辑网络配置的改变)。
作为响应,处理300将与释放的逻辑IP地址对应的物理IP地址放置(在310处)在等待池中达阈值时间段。如所指示的,网络控制器100包括物理IP地址的等待池140。等待池140用于确保物理IP地址在被释放之后不太快地被重新分派,从而给予网络时间来刷新可能被发送到该物理IP地址映射到的先前接口的分组。
因此,该处理确定(在315处)时间段是否已期满。如果没有,则该处理继续对此进行评估,直到时间段期满为止。应当理解的是,处理200(以及本文描述的其它处理)是概念性的处理,并且一些实施例对等待池140中的每个物理IP地址不执行连续检查。代替地,一些实施例使用事件驱动的处理,该处理简单地等待,然后在等待时段期满时采取动作。一旦时间段已期满,处理300就将物理地址从等待池移动(在320处)到可用物理IP地址的池中。即,网络控制器100将IP地址从等待池140移动到可用IP地址池135。
以上描述涉及分配和管理逻辑到物理IP地址映射的网络控制器操作。一旦分配了这些映射,分组就在MFE之间发送而不需要封装(至少对于满足某些标准的某些分组)。图4概念性地图示了在一些实施例的数据中心网络400内实现至少一个逻辑网络的一组MFE。具体地,该图图示了两个逻辑网络端点(例如,VM)之间的物理网络业务和逻辑网络端点与外部网络之间的物理网络业务的差异。
如所示的,数据中心400包括托管VM的两个主机机器405和410,这些VM属于相同的逻辑网络(它们可以附连到相同的逻辑交换机或不同的逻辑交换机)。VM 415和420分别连接到MFE 425和430,MFE 425和430在主机机器405和410上操作以实现逻辑网络。此外,VM415和420所属的逻辑网络包括到外部网络435的连接(例如,逻辑路由器连接)。该连接由在第三主机机器445上操作的网关440实现。在一些实施例中,网关440是逻辑路由器的单独组件,并且可以在主机445上的VM或其它DCN中、在主机445的数据路径中等实现。
当VM 420(或VM 415)向外部网络435发送业务或从该外部网络接收业务时,网关440和MFE 430之间的业务利用物理IP地址封装。如由分组450所示的,该业务包括内部IP和以太网报头以及外部(封装)IP和以太网报头。为简单起见,这里未示出其它内部和外部协议(例如,传输协议)。因为外部IP地址将不具有到唯一IP地址的映射,所以如果MFE或网关要替换分组中的该IP(例如,利用主机445的PNIC的IP地址),则接收MFE/网关将不能够将其映射回正确的IP地址。代替地,封装用于逻辑网络端点与外部网络之间的这种通信以便保留这些地址。
另一方面,当VM 415向VM 420发送分组(反之亦然)时,MFE 425执行地址替换以利用物理IP和MAC地址替换逻辑IP(和逻辑MAC)地址,如由分组455所指示的。如果网络受最大传送大小限制,则该分组455具有较少的报头,因此具有较大的空间用于有效载荷而不具有碎片。地址替换可用于分组455,因为业务是两个逻辑网络端点之间的单播通信,这两个逻辑网络端点具有与物理IP地址的一对一映射。在一些实施例中,MFE不将地址替换用于多播/广播通信,因为分组被发送到多个物理目的地。然而,在其它实施例中,至少一些多播/广播分组被MFE复制到单播分组中(例如,针对每个目的地的单独的单播分组,每个分组具有不同的目的地地址),并且这些单播分组可以使用地址替换而不是封装被发送到物理网络上。
图5和图6描述了由源MFE(即,分组的第一跳MFE)和目的地MFE(经由物理网络的这样的分组的接收者)执行以对分组执行地址替换的处理。这些处理假定执行相应处理的MFE具有逻辑IP到物理IP映射信息,并且不需要从网络控制器请求该信息以便处理分组。
将部分参考图7-9描述图5和图6的处理。图7概念性地图示了逻辑网络700和对该网络的端点分配的逻辑到物理IP地址映射,而图8和图9图示了通过该逻辑网络的物理实现发送的分组的示例。逻辑网络700包括通过逻辑路由器715逻辑地连接的两个逻辑交换机705和710。两个VM(VM1和VM2)连接到第一逻辑交换机705,并且两个VM(VM3和VM4)连接到第二逻辑交换机710。这些逻辑接口中的每一个具有MAC地址(MAC A、MAC B、MAC C和MAC D)。此外,逻辑路由器下行链路(与逻辑交换机的接口)具有它们自己的逻辑MAC地址(MAC E和MAC F)。
逻辑到物理IP地址映射表720是将由网络控制器(或网络控制器集群)以及实现逻辑网络的MFE存储的信息。如该表所示,VM在三个主机上实现,因此在这些主机上操作的三个MFE将存储映射表720中的信息。VM1和VM3在第一主机上实现,其中VM2在第二主机上并且VM4在第三主机上。第一逻辑交换机705被分配子网10.1.1.0/24,并且该子网上的两个VM的逻辑IP地址是10.1.1.5和10.1.1.6。类似地,第二逻辑交换机710被分配子网10.2.1.0/24,并且该子网上的两个VM的逻辑IP地址是10.2.1.5和10.2.1.6。根据映射表720,这些逻辑接口中的每一个映射到唯一的物理IP地址。虽然该示例仅示出单个逻辑网络,但是如果在主机上(或甚至在主机中的一些上)实现了其它逻辑网络,则那些主机也将附加的逻辑网络的逻辑IP地址映射到唯一的物理IP地址。单个主机例如对于逻辑IP地址10.1.1.5可以具有到不同逻辑网络的不同接口的不同物理IP地址的许多映射。
图5概念性地图示了用于利用物理IP地址替换逻辑IP地址的一些实施例的处理500。在一些实施例中,分组的源MFE(即,分组的源接口连接到的MFE)在接收到分组(例如,从VNIC)时对分组执行该处理500。
如所示的,处理500开始于从具有逻辑IP地址的接口接收(在505处)分组。发送的分组将具有逻辑源和目的地IP地址以及逻辑源和目的地MAC地址。源地址是MFE从其接收到分组的接口(例如,VNIC或类似的接口)的地址。目的地IP地址是分组的最终目的地的地址,而MAC地址或者是目的地的地址(如果目的地在相同的逻辑交换机上)或者是本地逻辑网关(如果分组需要逻辑路由)的地址。
图8和图9图示了通过物理网络发送这样的分组时它们的示例。在图8中,VM1将分组800发送到VM2(在相同的逻辑交换机上,但在不同的物理主机机器中操作)。发送到MFE805的分组900具有10.1.1.5的源IP地址、10.1.1.6的目的地IP地址、MAC A的源MAC地址以及MAC B的目的地MAC地址。此外,IP报头的协议字段具有值17(对于用户数据报协议(UDP))。在图9中,VM1将分组900发送到VM4(在不同的逻辑交换机上并且在不同的物理主机机器中操作)。发送到MFE 805的分组900具有10.1.1.5的源IP地址、10.2.1.6的目的地IP地址、MAC A的源MAC地址以及MAC E的目的地MAC地址(与VM1的默认网关对应)。此外,IP报头的协议字段具有值1(对于互联网控制消息协议(ICMP))。
返回到图5,处理500对接收到的分组执行(在510处)逻辑处理。即,MFE通过逻辑网络处理分组,这可以包括ACL和防火墙(例如,分布式防火墙)规则的应用、网络地址变换(NAT)处理、分布式负载均衡等。逻辑处理还包括逻辑交换和/或路由。如果需要逻辑路由(例如,对于图9的分组900),则修改逻辑MAC地址,并且对分组递减存活时间(TTL)。
在逻辑处理完成之后,处理500确定(在515处)分组是否有资格进行地址替换。在一些实施例中,仅逻辑网络地址之间发送的单播分组有资格进行地址替换。即,多播/广播分组以及发送到逻辑网络之外的目的地(或从逻辑网络之外的目的地接收)的分组没有资格进行地址替换。因为当使用地址替换时逻辑IP地址完全不再在分组中,所以一些实施例仅在被替换的逻辑IP地址与替换它们的物理IP地址之间存在1:1映射时才使用该技术。
在广播/多播的情况下,MFE不使用地址替换,因为分组被发送到多个物理目的地。然而,在其它实施例中,MFE将至少一些多播/广播业务复制到多个单播分组中,并且这些单播分组可以使用地址替换而不是封装被发送到物理网络上。对于发送到外部网络/从外部网络发送的分组,使用地址替换将需要对与逻辑网络通信的每个外部IP地址分配唯一的物理IP地址。鉴于这样的IP地址的数量大并且通信的性质更可能是瞬态的,因此这样的本地物理IP地址分配的价值可能较小。
如果分组没有资格进行地址替换(例如,分组是多接收者分组、或者被寻址到不是逻辑网络端点的外部IP地址或从不是逻辑网络端点的外部IP地址接收),则处理500封装(在520处)分组。对于封装报头,一些实施例使用物理网络上的但是与用于地址替换的唯一物理IP地址分开的隧道端点IP地址。处理500然后前进到550,如下所述。
另一方面,当分组有资格进行地址替换时,该处理识别(在525处)源和目的地逻辑IP地址以及接口的唯一物理IP地址。源MFE基于分组报头字段中的数据识别逻辑IP地址,并且基于从其接收分组的接口识别源接口。目的地逻辑接口由MFE在逻辑处理操作期间(例如,在逻辑转发期间)识别。
MFE查询其IP地址映射表以识别物理IP地址。在一些实施例中,如果MFE不具有对目的地逻辑IP地址和接口(或者源,如果这是来自源接口的初始分组)存储的唯一的物理IP地址,则MFE向网络控制器发送请求唯一的物理IP地址的消息。在一些实施例中(在该处理中未示出),不是等待控制器,而是第一个分组(或前几个分组)被封装而不是使用地址替换来发送,直到MFE从网络控制器接收到对应的物理IP地址为止。
然而,假定物理IP地址被识别,则处理500利用识别出的唯一物理IP地址替换(在530处)分组中的逻辑IP地址。此外,该处理修改(在532处)分组的存活时间(TTL)字段以考虑分组将经过的物理网络跳数(每一跳将使TTL字段递减)。在一些实施例中,仅应当通过逻辑处理(对于处理分组的每个逻辑路由器)来递减TTL字段。关于两个物理端点之间的物理跳数,物理数据中心网络通常将是稳定的(当逻辑网络接口被迁移时,这可能改变物理网络跳数,但是此时将对接口分配新的唯一物理网络地址)。一些实施例使用探测消息或其它技术来确定到每个可能的目的地物理IP地址的跳数,并且将该信息存储在映射表中(例如,作为表720中的另一列)。
处理500还利用物理网络MAC地址替换(在535处)逻辑MAC地址。源MAC是源物理IP地址对应的物理接口的MAC,而目的地MAC是本地网关的MAC(除非目的地物理接口位于与源物理接口相同的物理交换机上)。
图8图示了由源MFE 805发送的具有已替换的源和目的地物理IP地址的分组。源和目的地IP地址利用映射表720中所示的唯一物理IP地址替换为与10.1.1.5(VM1)和10.1.1.6(VM2)对应。对于物理MAC地址,源MAC(PMAC1)是192.168.1.10地址对应的PNIC的MAC,而目的地MAC(PMAC2)是本地默认网关的MAC。图9图示了分组900的源和目的地IP以及MAC地址的类似的地址替换。使用了相同的源物理IP地址,而使用了与10.2.1.6(VM4)对应的目的地IP地址。在这种情况下,使用与第一个分组相同的物理MAC地址,因为该分组再次被发送到物理网络上的本地默认网关。
除了利用物理地址替换逻辑地址之外,处理500还确定(在540处)IP报头的协议字段是否与一组预先指定的值中的一个匹配。当协议字段确实与这些预先指定的值中的一个匹配时,该处理利用替换值替换(在445处)协议字段值。逻辑接口(即,逻辑接口所属的DCN)可能发送可以使物理网络路由器在使用地址替换时执行各种不需要的动作的分组(例如,ICMP分组)。而封装的分组将使该信息隐藏在内部报头中(利用例如TCP或UDP分组封装),通过地址替换,物理网络将看到该协议并且可能对其采取动作。因此,对于某些协议,源MFE利用未使用或保留的协议值替换协议报头字段值,该协议值(i)将不使物理网络采取任何不需要的动作,并且(ii)不应当在逻辑网络内使用。
例如,图8的分组800具有与UDP对应的协议字段值17。由于UDP分组将由物理网络的路由器正常转发,因此MFE 805不修改该协议字段值。另一方面,图9的分组900具有与ICMP对应的协议字段值1。物理路由器可能以非期望的方式对ICMP分组采取动作,因此MFE805利用值143替换它,该值143是将被物理网络路由器忽略的保留值。
最后,无论分组是被封装还是已执行地址替换,该处理都将分组传送(在550处)到物理网络(即,物理数据中心网络810)。然后如正常那样通过物理网络处理分组,在此期间可以修改物理MAC地址。
图6概念性地图示了用于在将分组递送到接口之前利用逻辑IP地址替换物理IP地址的一些实施例的处理600。在一些实施例中,分组的目的地MFE(即,分组的目的地接口连接到的MFE)在从物理数据中心网络接收到分组时对分组执行处理600。
如所示的,处理600开始于接收(在605处)具有物理IP地址的逻辑网络分组。接收的分组将具有物理IP地址,该物理IP地址可能与逻辑接口对应或者可能是封装报头中的隧道端点地址。在一些实施例中,这些物理IP地址是或者作为封装报头添加或者在分组中由源MFE替换的IP地址(例如,使用诸如图5所示的处理)。在图8中,分组800在由目的地MFE815接收时具有与在由源MFE 805发送时相同的源和目的地物理IP地址,但是由于通过物理数据中心网络810的路由而具有不同的物理MAC地址。这在图9所示的示例中也是如此。
因此,处理600确定(在610处)分组是否被封装。在一些实施例中,与未封装的分组相比,对于封装的分组,IP地址将不同。具体地,如果源和目的地IP地址与源和目的地MFE的隧道端点对应,则分组是被封装的。另一方面,如果源和目的地IP地址在MFE的逻辑到物理IP地址映射表中是唯一的物理IP地址,则分组是使用地址替换被发送的。如果分组是被封装的,则该处理对分组进行解封装(在615处)并且前进到下面描述的645。应当注意的是,在一些实施例中,MFE执行附加的处理以确定分组不被发送到与VTEP和映射到逻辑IP地址的唯一物理IP地址都不关联的IP地址。例如,在一些实施例中,MFE可以接收和处理管理业务或其它类型的业务。
如果分组没有被封装(即,因为地址替换在源MFE处对分组执行),则处理600基本上执行与图5中的操作相反的操作。处理600确定(在620处)协议字段是否与一组预先指定的映射值中的一个匹配。这识别协议字段值是否是特定协议字段值(例如,ICMP)映射到的保留或未使用的值中的一个。如果是这种情况,则该处理利用原始值替换(在625处)协议字段值。例如,在图9中,MFE 905将值143(保留值)映射回原始值1(对于ICMP)。
处理600识别(在630处)源和目的地物理IP地址的逻辑IP地址和接口。如所提到的,每个物理IP地址不仅映射到逻辑IP地址,而且还映射到逻辑接口。虽然源接口对于目的地MFE不一定是关键的(尽管取决于所需的处理,它可能是关键的),但是就将分组递送到适当的接口而言,目的地接口是重要的。
基于从物理IP地址识别的信息,处理600利用识别出的逻辑IP地址替换(在635处)分组中的物理IP地址。这些应当是源MFE进行地址替换之前位于分组中的逻辑IP地址。此外,该处理基于逻辑网络拓扑利用逻辑MAC地址替换(在640处)物理MAC地址。如果源接口和目的地接口位于相同的逻辑交换机上,则MAC地址将是与这些接口对应的MAC地址。然而,如果源接口位于与目的地接口不同的逻辑交换机上,则连接到目的地逻辑交换机的逻辑路由器接口的MAC地址将是源MAC地址。
在图8中,MFE 815将源和目的地IP地址分别转换回10.1.1.5和10.1.1.6。类似地,因为源和目的地接口(VM1和VM2)位于相同的逻辑交换机705上,所以源和目的地逻辑MAC地址都是与接口对应的MAC地址(即,与分组被发送到MFE 805时相同)。然而,在图9中,从MFE905发送到目的地VM4的分组900中的源逻辑MAC地址是MAC F,即连接到逻辑交换机710的逻辑路由器接口的地址。此外,该分组的目的地逻辑MAC地址是MAC D,即目的地VM4的MAC地址。MFE 905基于网络拓扑识别出源接口位于不同的逻辑交换机705上,并且执行该MAC地址替换。
在已完成反向地址替换(或已对分组进行解封装)之后,处理600执行(在645处)任何附加的逻辑处理,诸如应用出口ACL规则、附加的分布式防火墙规则等。该处理然后将分组递送(在650处)到识别出的目的地接口。
以上描述的许多特征和应用作为软件处理实现,这些软件处理被指定为记录在计算机可读存储介质(也称为计算机可读介质)上的指令集。当这些指令由一个或多个处理单元(例如,一个或多个处理器、处理器的核或其它处理单元)执行时,它们使处理单元执行指令中指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等。计算机可读介质不包括无线地或通过有线连接传递的载波和电子信号。
在本说明书中,术语“软件”意在包括驻留在只读存储器中的固件或存储在磁存储设备中的应用,其可以被读取到存储器中以供处理器处理。而且,在一些实施例中,多个软件发明可以被实现为较大程序的子部分,同时保留不同的软件发明。在一些实施例中,多个软件发明也可以被实现为单独的程序。最后,一起实现这里描述的软件发明的单独的程序的任何组合都在本发明的范围内。在一些实施例中,软件程序在被安装以在一个或多个电子系统上操作时定义了一个或多个执行并进行软件程序的操作的特定机器实现。
图10概念性地图示了实现本发明的一些实施例的电子系统1000。电子系统1000可以用于执行上述控制、虚拟化或操作系统应用中的任何一个。电子系统1000可以是计算机(例如,桌面计算机、个人计算机、平板计算机、服务器计算机、大型机、刀片计算机等)、电话、PDA或任何其它种类的电子设备。这样的电子系统包括各种类型的计算机可读介质以及用于各种其它类型的计算机可读介质的接口。电子系统1000包括总线1005、处理单元1010、系统存储器1025、只读存储器1030、永久存储设备1035、输入设备1040和输出设备1045。
总线1005总体地表示通信地连接电子系统1000的许多内部设备的所有系统总线、外围总线和芯片组总线。例如,总线1005将处理单元1010与只读存储器1030、系统存储器1025和永久存储设备1035通信地连接。
从这些各种存储器单元,处理单元1010检索要执行的指令和要处理的数据以便执行本发明的处理。在不同的实施例中,处理单元可以是单个处理器或多核处理器。
只读存储器(ROM)1030存储电子系统的处理单元1010和其它模块所需的静态数据和指令。另一方面,永久存储设备1035是读写存储器设备。该设备是非易失性存储器单元,即使在电子系统1000关断时,其也存储指令和数据。本发明的一些实施例使用大容量存储设备(诸如磁盘或光盘及其对应的盘驱动器)作为永久存储设备1035。
其它实施例使用可移除存储设备(诸如软盘、闪存驱动器等)作为永久存储设备。像永久存储设备1035一样,系统存储器1025是读写存储器设备。然而,与存储设备1035不同,系统存储器是易失性读写存储器,诸如随机存取存储器。系统存储器存储处理器在运行时需要的指令和数据中的一些。在一些实施例中,本发明的处理被存储在系统存储器1025、永久存储设备1035和/或只读存储器1030中。从这些各种存储器单元,处理单元1010检索要执行的指令和要处理的数据以便执行一些实施例的处理。
总线1005还连接到输入和输出设备1040和1045。输入设备使得用户能够向电子系统传达信息和选择命令。输入设备1040包括字母数字键盘和指点设备(也称为“光标控制设备”)。输出设备1045显示由电子系统生成的图像。输出设备包括打印机和显示设备,诸如阴极射线管(CRT)或液晶显示器(LCD)。一些实施例包括用作输入设备和输出设备两者的设备,诸如触摸屏。
最后,如图10所示,总线1005还通过网络适配器(未示出)将电子系统1000耦合到网络1065。以这种方式,计算机可以是计算机的网络(诸如局域网(“LAN”)、广域网(“WAN”)、或内联网、或网络的网络(诸如互联网)的一部分。电子系统1000的任何组件或所有组件可以与本发明结合使用。
一些实施例包括电子组件,诸如微处理器、存储设备和存储器,其将计算机程序指令存储在机器可读或计算机可读介质(替代地称为计算机可读存储介质、机器可读介质或机器可读存储介质)中。这样的计算机可读介质的一些示例包括RAM、ROM、只读光盘(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、只读数字多功能盘(例如,DVD-ROM、双层DVD-ROM)、各种各样的可记录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存(例如,SD卡、小型SD卡、微型SD卡等)、磁性和/或固态硬盘驱动器、只读和可记录盘、超密度光盘、任何其它光学或磁性介质、以及软盘。计算机可读介质可以存储由至少一个处理单元可执行并且包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机代码的示例包括机器代码,诸如由编译器产生的代码,以及包括由计算机、电子组件或微处理器使用解释器执行的更高级代码的文件。
虽然以上讨论主要涉及执行软件的微处理器或多核处理器,但是一些实施例由一个或多个集成电路(诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA))执行。在一些实施例中,这样的集成电路执行存储在电路自身上的指令。
如本说明书中所使用的,术语“计算机”、“服务器”、“处理器”和“存储器”均指的是电子或其它技术设备。这些术语不包括人或人群。出于本说明书的目的,术语“显示”或“正显示”意指在电子设备上显示。如本说明书中所使用的,术语“计算机可读介质”、“计算机可读媒介”和“机器可读介质”整体限于以计算机可读形式存储信息的有形的物理对象。这些术语不包括任何无线信号、有线下载信号和任何其它短暂信号。
本说明书通篇涉及包括虚拟机(VM)的计算和网络环境。然而,虚拟机仅仅是数据计算节点(DCN)或数据计算端节点(也称为可寻址节点)的一个示例。DCN可以包括非虚拟化的物理主机、虚拟机、在主机操作系统之上运行而不需要管理程序或单独的操作系统的容器、以及管理程序内核网络接口模块。
在一些实施例中,VM使用通过虚拟化软件(例如,管理程序、虚拟机监视器等)虚拟化的主机的资源在主机上与它们自己的客户操作系统一起操作。租户(即,VM的所有者)可以选择哪个应用在客户操作系统之上操作。另一方面,一些容器是在主机操作系统之上运行而不需要管理程序或单独的客户操作系统的构造。在一些实施例中,主机操作系统使用名称空间来使容器彼此隔离,并且因此提供在不同容器内操作的不同应用组的操作系统级分离。该分离类似于在虚拟化系统硬件的管理程序虚拟化的环境中提供的VM分离,并且因此可以看作是一种虚拟化形式,其隔离了在不同容器中操作的不同应用组。这样的容器比VM更轻量。
在一些实施例中,管理程序内核网络接口模块是非VM DCN,其包括具有管理程序内核网络接口和接收/传送线程的网络堆栈。管理程序内核网络接口模块的一个示例是vmknic模块,其是VMware公司的ESXiTM管理程序的一部分。
应当理解的是,虽然本说明书涉及VM,但给出的示例可以是任何类型的DCN,包括物理主机、VM、非VM容器以及管理程序内核网络接口模块。实际上,在一些实施例中,示例网络可以包括不同类型的DCN的组合。
虽然已参考许多具体细节描述了本发明,但是本领域的普通技术人员将认识到,在不背离本发明的精神的情况下,可以以其它具体形式来实施本发明。此外,许多图(包括图2、3、5和6)概念性地图示了处理。这些处理的具体操作可以不以所示出和所描述的确切次序执行。具体操作可以不在一个连续的操作序列中执行,并且可以在不同的实施例中执行不同的具体操作。另外,处理可以使用若干个子处理来实现,或者作为较大的宏处理的一部分来实现。因此,本领域的普通技术人员将理解到,本发明将不限于前述说明性细节,而是要由所附权利要求限定。
Claims (40)
1.对于管理由在多个主机机器上操作的多个受管理的转发元件(MFE)实现的多个逻辑网络的网络控制器,一种方法包括:
从特定的MFE接收与逻辑转发元件的逻辑端口对应的接口已连接到所述特定的MFE并且具有特定的逻辑网络地址的通知;
向所述接口分配唯一的物理网络地址,其中,连接到所述特定的MFE的多个接口中的每个接口被分配不同的物理网络地址;以及
将分配的唯一的物理网络地址提供给所述特定的MFE,用于所述特定的MFE对从所述特定的逻辑网络地址发送的数据消息进行转换以具有所述唯一的物理网络地址。
2.如权利要求1所述的方法,其中,所述接口是在与所述特定的MFE相同的主机机器上操作的数据计算节点(DCN)的虚拟接口。
3.如权利要求2所述的方法,其中,多个DCN在与所述特定的MFE相同的主机机器上操作,其中,所述DCN中的每个DCN具有至少一个连接到所述特定的MFE的接口,所述方法还包括对所述接口中的每个接口分配唯一的物理网络地址。
4.如权利要求3所述的方法,其中,所述特定的逻辑网络地址是第一逻辑网络地址,所述虚拟接口是第一虚拟接口,并且所述逻辑转发元件是第一逻辑网络的第一逻辑转发元件,其中,连接到第二逻辑网络的第二逻辑转发元件的第二DCN的第二虚拟接口也具有所述特定的逻辑网络地址,所述方法还包括向所述第一虚拟接口和第二虚拟接口分配不同的物理网络地址。
5.如权利要求2所述的方法,其中,所述特定的逻辑网络地址是第一逻辑网络地址,并且所述唯一的物理网络地址是第一物理网络地址,其中,所述DCN至少包括连接到所述MFE并且具有第二逻辑网络地址的第二虚拟接口,所述方法还包括向所述接口分配第二唯一的物理网络地址。
6.如权利要求1所述的方法,其中,所述特定的MFE是第一MFE,所述接口是第一接口,所述逻辑端口是第一逻辑端口,所述逻辑网络地址是第一逻辑网络地址,并且所述唯一的物理网络地址是第一物理网络地址,所述方法还包括:
从第二MFE接收与所述逻辑转发元件的第二逻辑端口对应的第二接口已连接到所述第二MFE并且具有第二逻辑网络地址的通知;
向所述第二接口分配第二物理网络地址;
将分配的第二物理网络地址提供给所述第二MFE,用于所述第二MFE对从所述第二逻辑网络地址发送的数据消息进行转换以具有所述第二物理网络地址。
7.如权利要求6所述的方法,其中,所述第一逻辑网络地址和第二逻辑网络地址位于相同的第一子网中,其中,所述第一物理网络地址和第二物理网络地址位于不同的第二子网和第三子网中。
8.如权利要求1所述的方法,其中,所述特定的MFE还对发送到所述唯一的物理地址的数据消息进行转换以具有所述特定的逻辑网络地址。
9.如权利要求1所述的方法,其中,所述特定的MFE是第一MFE,所述方法还包括:
当第二MFE已接收到具有所述特定的逻辑网络地址作为目的地地址的数据消息时,从所述第二MFE接收请求;以及
将所述唯一的物理网络地址提供给所述第二MFE,用于所述第二MFE利用所述唯一的物理网络地址替换所述特定的逻辑网络地址作为至少后续的数据消息的目的地地址。
10.如权利要求1所述的方法,其中,所述特定的逻辑网络地址和唯一的物理网络地址是互联网协议(IP)地址,所述方法还包括对所述接口分配物理介质访问控制(MAC)地址。
11.如权利要求1所述的方法,其中,所述唯一的物理网络地址是从物理网络地址的池分配的。
12.如权利要求1所述的方法,还包括:
从所述特定的MFE接收所述接口不再连接到所述特定的MFE的通知;以及
将所述唯一的物理网络地址分派给等待池达一时间段;以及
在所述时间段之后,将所述唯一的物理网络地址分派给可用物理网络地址的池。
13.一种非暂态机器可读介质,所述非暂态机器可读介质存储网络控制器程序,所述网络控制器程序在由至少一个处理单元执行时管理由在多个主机机器上操作的多个受管理的转发元件(MFE)实现的多个逻辑网络,所述网络控制器程序包括用于以下的指令集:
从特定的MFE接收与逻辑转发元件的逻辑端口对应的接口已连接到所述特定的MFE并且具有特定的逻辑网络地址的通知;
向所述接口分配唯一的物理网络地址,其中,连接到所述特定的MFE的多个接口中的每个接口被分配不同的物理网络地址;以及
将分配的唯一的物理网络地址提供给所述特定的MFE,用于所述特定的MFE对从所述特定的逻辑网络地址发送的数据消息进行转换以具有所述唯一的物理网络地址。
14.如权利要求13所述的非暂态机器可读介质,其中,所述接口是在与所述特定的MFE相同的主机机器上操作的数据计算节点(DCN)的虚拟接口。
15.如权利要求14所述的非暂态机器可读介质,其中,多个DCN在与所述特定的MFE相同的主机机器上操作,其中,所述DCN中的每个DCN具有至少一个连接到所述特定的MFE的接口,所述网络控制器程序还包括用于对所述接口中的每个接口分配唯一的物理网络地址的指令集。
16.如权利要求15所述的非暂态机器可读介质,其中,所述特定的逻辑网络地址是第一逻辑网络地址,所述虚拟接口是第一虚拟接口,并且所述逻辑转发元件是第一逻辑网络的第一逻辑转发元件,其中,连接到第二逻辑网络的第二逻辑转发元件的第二DCN的第二虚拟接口也具有所述特定的逻辑网络地址,所述网络控制器程序还包括用于向所述第一虚拟接口和第二虚拟接口分配不同的物理网络地址的指令集。
17.如权利要求13所述的非暂态机器可读介质,其中,所述特定的MFE是第一MFE,所述接口是第一接口,所述逻辑端口是第一逻辑端口,所述逻辑网络地址是第一逻辑网络地址,并且所述唯一的物理网络地址是第一物理网络地址,所述网络控制器程序还包括用于以下的指令集:
从第二MFE接收与所述逻辑转发元件的第二逻辑端口对应的第二接口已连接到所述第二MFE并且具有第二逻辑网络地址的通知;
向所述第二接口分配第二物理网络地址;
将分配的第二物理网络地址提供给所述第二MFE,用于所述第二MFE对从所述第二逻辑网络地址发送的数据消息进行转换以具有所述第二物理网络地址。
18.如权利要求17所述的非暂态机器可读介质,其中,所述第一逻辑网络地址和第二逻辑网络地址位于相同的第一子网中,其中,所述第一物理网络地址和第二物理网络地址位于不同的第二子网和第三子网中。
19.如权利要求13所述的非暂态机器可读介质,其中,所述特定的MFE是第一MFE,所述网络控制器程序还包括用于以下的指令集:
当第二MFE已接收到具有所述特定的逻辑网络地址作为目的地地址的数据消息时,从所述第二MFE接收请求;以及
将所述唯一的物理网络地址提供给所述第二MFE,用于所述第二MFE利用所述唯一的物理网络地址替换所述特定的逻辑网络地址作为至少后续的数据消息的目的地地址。
20.如权利要求13所述的非暂态机器可读介质,其中,所述网络控制器程序还包括用于以下的指令集:
从所述特定的MFE接收所述接口不再连接到所述特定的MFE的通知;以及
将所述唯一的物理网络地址分派给等待池达一时间段;以及
在所述时间段之后,将所述唯一的物理网络地址分派给可用物理网络地址的池。
21.一种方法,包括:
接收具有第一逻辑网络地址作为源地址和第二逻辑网络地址作为目的地网络地址的分组;
利用对应的第一物理网络地址和第二物理网络地址替换所述第一逻辑网络地址和第二逻辑网络地址;以及
将具有所述第一物理网络地址和第二物理网络地址作为源网络地址和目的地网络地址的所述分组没有封装地传送到物理网络,用于递送到所述第二逻辑网络地址。
22.如权利要求21所述的方法,其中,所述方法由受管理的转发元件(MFE)执行,其中,接收所述分组包括从在与所述受管理的转发元件相同的主机机器上操作的数据计算节点的虚拟接口接收所述分组。
23.如权利要求21所述的方法,还包括在利用所述第一物理网络地址和第二物理网络地址替换所述第一逻辑网络地址和第二逻辑网络地址之前,对所述分组执行逻辑网络处理。
24.如权利要求21所述的方法,还包括,在利用所述第一物理网络地址和第二物理网络地址替换所述第一逻辑网络地址和第二逻辑网络地址之前,确定所述分组有资格进行网络地址替换和传送而不需要封装。
25.如权利要求24所述的方法,其中,所述分组仅在所述分组是从第一逻辑网络地址发送到第二逻辑网络地址的单播分组时才有资格进行网络地址替换和传送而不需要封装。
26.如权利要求24所述的方法,其中,从所述第一逻辑网络地址发送的多播分组需要封装。
27.如权利要求24所述的方法,其中,从所述第一逻辑网络地址发送到不是相同的逻辑网络的一部分的目的地网络地址的分组需要封装。
28.如权利要求21所述的方法,还包括:
确定所述分组的协议报头字段值与一组指定的值中的一个匹配;以及
利用不同的值替换所述分组的协议报头字段值。
29.如权利要求28所述的方法,其中,所述协议报头字段值与使物理网络转发元件响应于接收到所述分组而采取特定的动作的协议对应。
30.如权利要求21所述的方法,其中,所述分组是第一分组,所述方法还包括:
接收具有所述第二物理网络地址作为源地址和所述第一物理网络地址作为目的地地址的第二分组;
在所述第二分组中,利用对应的第一逻辑网络地址和第二逻辑网络地址替换所述第一物理网络地址和第二物理网络地址;以及
将所述第二分组递送到与所述第一逻辑网络地址对应的接口。
31.如权利要求30所述的方法,还包括:
在所述第二分组中,利用与所述接口对应的第一逻辑数据链路层地址替换目的地数据链路层地址;以及
在所述第二分组中,利用第二逻辑数据链路层地址替换源数据链路层地址。
32.如权利要求31所述的方法,其中,所述第二逻辑数据链路层地址对应于与所述第二逻辑网络地址相同的接口。
33.如权利要求31所述的方法,其中,所述第二逻辑数据链路层地址对应于逻辑路由器的逻辑接口。
34.如权利要求21所述的方法,还包括基于所述物理网络的分析将存活时间(TTL)字段值修改一定量。
35.一种非暂态机器可读介质,所述非暂态机器可读介质存储用于由至少一个处理单元执行的程序,所述程序包括用于以下的指令集:
接收具有第一逻辑网络地址作为源地址和第二逻辑网络地址作为目的地网络地址的分组;
利用对应的第一物理网络地址和第二物理网络地址替换所述第一逻辑网络地址和第二逻辑网络地址;以及
将具有所述第一物理网络地址和第二物理网络地址作为源网络地址和目的地网络地址的所述分组没有封装地传送到物理网络,用于递送到所述第二逻辑网络地址。
36.如权利要求35所述的非暂态机器可读介质,其中,所述程序还包括用于以下的指令集:
在利用所述第一物理网络地址和第二物理网络地址替换所述第一逻辑网络地址和第二逻辑网络地址之前,对所述分组执行逻辑网络处理;以及
基于所述物理网络的分析将存活时间(TTL)字段值修改一定量。
37.如权利要求35所述的非暂态机器可读介质,其中,所述程序还包括用于以下的指令集:在利用所述第一物理网络地址和第二物理网络地址替换所述第一逻辑网络地址和第二逻辑网络地址之前,确定所述分组有资格进行网络地址替换和传送而不需要封装。
38.如权利要求37所述的非暂态机器可读介质,其中,所述分组仅在所述分组是从第一逻辑网络地址发送到第二逻辑网络地址的单播分组时才有资格进行网络地址替换和传送而不需要封装,其中,从所述第一逻辑网络地址发送的多播分组需要封装,并且从所述第一逻辑网络地址发送到不是相同的逻辑网络的一部分的目的地网络地址的分组需要封装。
39.如权利要求35所述的非暂态机器可读介质,其中,所述程序还包括用于以下的指令集:
确定所述分组的协议报头字段值与一组指定的值中的一个匹配;以及
利用不同的值替换所述分组的协议报头字段值。
40.如权利要求35所述的非暂态机器可读介质,其中,所述分组是第一分组,所述程序还包括用于以下的指令集:
接收具有所述第二物理网络地址作为源地址和所述第一物理网络地址作为目的地地址的第二分组;
在所述第二分组中,利用对应的第一逻辑网络地址和第二逻辑网络地址替换所述第一物理网络地址和第二物理网络地址;以及
将所述第二分组递送到与所述第一逻辑网络地址对应的接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310301858.0A CN116319663A (zh) | 2017-06-30 | 2018-06-27 | 对逻辑网络地址分配唯一的网络地址 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/640,376 | 2017-06-30 | ||
US15/640,386 | 2017-06-30 | ||
US15/640,386 US10637800B2 (en) | 2017-06-30 | 2017-06-30 | Replacement of logical network addresses with physical network addresses |
US15/640,376 US10681000B2 (en) | 2017-06-30 | 2017-06-30 | Assignment of unique physical network addresses for logical network addresses |
PCT/US2018/039873 WO2019006042A1 (en) | 2017-06-30 | 2018-06-27 | ASSIGNING UNIQUE NETWORK ADDRESSES FOR LOGICAL NETWORK ADDRESSES |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310301858.0A Division CN116319663A (zh) | 2017-06-30 | 2018-06-27 | 对逻辑网络地址分配唯一的网络地址 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110870290A true CN110870290A (zh) | 2020-03-06 |
CN110870290B CN110870290B (zh) | 2023-03-28 |
Family
ID=62981345
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880043987.1A Active CN110870290B (zh) | 2017-06-30 | 2018-06-27 | 对逻辑网络地址分配唯一的网络地址 |
CN202310301858.0A Pending CN116319663A (zh) | 2017-06-30 | 2018-06-27 | 对逻辑网络地址分配唯一的网络地址 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310301858.0A Pending CN116319663A (zh) | 2017-06-30 | 2018-06-27 | 对逻辑网络地址分配唯一的网络地址 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3643052B1 (zh) |
CN (2) | CN110870290B (zh) |
WO (1) | WO2019006042A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268316A (zh) * | 2021-04-19 | 2021-08-17 | 广东荟萃网络科技有限公司 | 基于地址转换的多活动进程数据交换系统及其工作方法 |
CN113556414A (zh) * | 2021-09-18 | 2021-10-26 | 浙江国利信安科技有限公司 | 用于网络间通信的方法、网关设备和存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10637800B2 (en) | 2017-06-30 | 2020-04-28 | Nicira, Inc | Replacement of logical network addresses with physical network addresses |
US10681000B2 (en) | 2017-06-30 | 2020-06-09 | Nicira, Inc. | Assignment of unique physical network addresses for logical network addresses |
EP4029224A1 (en) * | 2020-02-06 | 2022-07-20 | Huawei Cloud Computing Technologies Co., Ltd. | Virtual address allocation to prevent conflicts in multi-network environments |
US11539633B2 (en) * | 2020-08-31 | 2022-12-27 | Vmware, Inc. | Determining whether to rate limit traffic |
US11336563B1 (en) * | 2021-04-28 | 2022-05-17 | Hewlett Packard Enterprise Development Lp | Routing subnets of branch gateways in a geographic region to a selected headend gateway |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8194674B1 (en) * | 2007-12-20 | 2012-06-05 | Quest Software, Inc. | System and method for aggregating communications and for translating between overlapping internal network addresses and unique external network addresses |
US20130322436A1 (en) * | 2012-05-31 | 2013-12-05 | Cisco Technology, Inc. | Loop dampening in a computer network |
US20150106489A1 (en) * | 2013-10-10 | 2015-04-16 | AdaptiveApps, Inc. | Adaptive overlay networking |
US20150281171A1 (en) * | 2014-03-27 | 2015-10-01 | Nicira, Inc. | Distributed network address translation for efficient cloud service access |
US20150312054A1 (en) * | 2014-04-28 | 2015-10-29 | International Business Machines Corporation | Reducing encapsulation overhead in overlay-based networks |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9977685B2 (en) * | 2013-10-13 | 2018-05-22 | Nicira, Inc. | Configuration of logical router |
US9338091B2 (en) * | 2014-03-27 | 2016-05-10 | Nicira, Inc. | Procedures for efficient cloud service access in a system with multiple tenant logical networks |
WO2015147943A1 (en) * | 2014-03-27 | 2015-10-01 | Nicira, Inc. | Distributed network address translation for cloud service access |
US9979593B2 (en) * | 2015-09-30 | 2018-05-22 | Nicira, Inc. | Logical L3 processing for L2 hardware switches |
-
2018
- 2018-06-27 WO PCT/US2018/039873 patent/WO2019006042A1/en unknown
- 2018-06-27 CN CN201880043987.1A patent/CN110870290B/zh active Active
- 2018-06-27 EP EP18743650.6A patent/EP3643052B1/en active Active
- 2018-06-27 CN CN202310301858.0A patent/CN116319663A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8194674B1 (en) * | 2007-12-20 | 2012-06-05 | Quest Software, Inc. | System and method for aggregating communications and for translating between overlapping internal network addresses and unique external network addresses |
US20130322436A1 (en) * | 2012-05-31 | 2013-12-05 | Cisco Technology, Inc. | Loop dampening in a computer network |
US20150106489A1 (en) * | 2013-10-10 | 2015-04-16 | AdaptiveApps, Inc. | Adaptive overlay networking |
US20150281171A1 (en) * | 2014-03-27 | 2015-10-01 | Nicira, Inc. | Distributed network address translation for efficient cloud service access |
US20150312054A1 (en) * | 2014-04-28 | 2015-10-29 | International Business Machines Corporation | Reducing encapsulation overhead in overlay-based networks |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268316A (zh) * | 2021-04-19 | 2021-08-17 | 广东荟萃网络科技有限公司 | 基于地址转换的多活动进程数据交换系统及其工作方法 |
CN113556414A (zh) * | 2021-09-18 | 2021-10-26 | 浙江国利信安科技有限公司 | 用于网络间通信的方法、网关设备和存储介质 |
CN113556414B (zh) * | 2021-09-18 | 2021-12-10 | 浙江国利信安科技有限公司 | 用于网络间通信的方法、网关设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110870290B (zh) | 2023-03-28 |
EP3643052A1 (en) | 2020-04-29 |
CN116319663A (zh) | 2023-06-23 |
EP3643052B1 (en) | 2022-07-27 |
WO2019006042A1 (en) | 2019-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10637800B2 (en) | Replacement of logical network addresses with physical network addresses | |
US11595345B2 (en) | Assignment of unique physical network addresses for logical network addresses | |
CN110870290B (zh) | 对逻辑网络地址分配唯一的网络地址 | |
US11736394B2 (en) | Address resolution using multiple designated instances of a logical router | |
US11516037B2 (en) | Methods to optimize multicast routing in overlay networks | |
US11736391B2 (en) | Defining routing domain for distributed packet processing | |
CN106576075B (zh) | 在网络虚拟化基础设施上操作逻辑网络的方法和系统 | |
CN107771384B (zh) | 虚拟分布式路由环境中的中间逻辑接口 | |
CN109937401B (zh) | 经由业务旁路进行的负载均衡虚拟机的实时迁移 | |
US8989187B2 (en) | Method and system of scaling a cloud computing network | |
WO2018112709A1 (zh) | 一种数据包处理方法、主机和系统 | |
US9413644B2 (en) | Ingress ECMP in virtual distributed routing environment | |
US10530656B2 (en) | Traffic replication in software-defined networking (SDN) environments | |
US20140376550A1 (en) | Method and system for uniform gateway access in a virtualized layer-2 network domain | |
WO2015147943A1 (en) | Distributed network address translation for cloud service access | |
US11936612B2 (en) | Address resolution handling at logical distributed routers | |
US10212122B2 (en) | Fan network management |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |