CN116319541A - 逻辑网关处的服务插入方法、设备和系统 - Google Patents

逻辑网关处的服务插入方法、设备和系统 Download PDF

Info

Publication number
CN116319541A
CN116319541A CN202310339981.1A CN202310339981A CN116319541A CN 116319541 A CN116319541 A CN 116319541A CN 202310339981 A CN202310339981 A CN 202310339981A CN 116319541 A CN116319541 A CN 116319541A
Authority
CN
China
Prior art keywords
logical
service
data
data message
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
CN202310339981.1A
Other languages
English (en)
Inventor
A·纳温
K·蒙达拉吉
R·米施拉
F·卡瓦迪亚
R·科甘蒂
P·罗兰多
冯勇
J·贾殷
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.)
VMware LLC
Original Assignee
VMware LLC
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
Priority claimed from US16/120,283 external-priority patent/US11595250B2/en
Priority claimed from US16/120,281 external-priority patent/US10944673B2/en
Application filed by VMware LLC filed Critical VMware LLC
Publication of CN116319541A publication Critical patent/CN116319541A/zh
Pending legal-status Critical Current

Links

Images

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/42Centralised routing
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing

Landscapes

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

Abstract

本发明涉及逻辑网关处的服务插入方法、设备和系统。许多公司和其他实体使用软件定义的数据中心(例如,本地数据中心和/或公共云数据中心)来托管其网络。软件定义的数据中心的提供商通常提供各种网络安全选项,但一些实体希望将现有的第三方安全服务(或其他服务)合并到它们的托管网络中。因此,用于更容易地将这些服务合并到虚拟网络中的技术将是有用的。

Description

逻辑网关处的服务插入方法、设备和系统
本申请是申请号为201980057472.1、申请日为2019年8月21日、发明名称为“逻辑网关处的服务插入方法、设备和系统”的发明专利申请的分案申请。
背景技术
许多公司和其他实体使用软件定义的数据中心(例如,本地数据中心和/或公共云数据中心)来托管其网络。软件定义的数据中心的提供商通常提供各种网络安全选项,但一些实体想要将现有的第三方安全服务(或其他服务)合并到它们的托管网络中。因此,用于更容易地将这些服务合并到虚拟网络中的技术将是有用的。
发明内容
一些实施例提供了一种网络管理和控制系统,其使得能够集成用于处理进入和/或退出逻辑网络的数据流量的第三方服务机器。这些第三方服务可以包括各种类型的非分组转发服务,诸如防火墙、虚拟专用网(VPN)服务、网络地址转换(NAT)、负载平衡等。在一些实施例中,网络管理和控制系统管理这些服务机器的集成,但不管理机器本身的生命周期。
在一些实施例中,逻辑网络包括逻辑网络端点(例如,诸如虚拟机、容器等的数据计算节点)连接到的至少一个逻辑交换机以及用于处理进入和/或退出逻辑网络的数据流量的逻辑路由器。此外,逻辑网络可以包括通过前述逻辑路由器或另一逻辑路由器彼此逻辑连接的多个逻辑交换机。在一些实施例中,逻辑网络包括多层级(tier)的逻辑路由器。第一层级中的逻辑路由器连接逻辑交换机(例如,特定租户的逻辑交换机)组。针对向和从逻辑网络发送的数据流量(例如,来自连接到逻辑网络中托管的web服务器的外部客户端的数据流量等),这些第一层级逻辑路由器连接到第二层级中的逻辑路由器。第二层级逻辑路由器至少部分地以集中式方式实现,用于处理到外部网络的连接,并且在一些实施例中,第三方服务机器附接到这些逻辑路由器的集中式组件。其他实施例的逻辑网络仅包括第三方服务附接到的单个层级的逻辑路由器。
在一些实施例中,网络管理和控制系统(后面被称为网络控制系统)接收(i)定义逻辑网络(即,逻辑交换机、数据计算节点到逻辑交换机的附接、逻辑路由器等)的配置数据以及(ii)将第三方服务附接到逻辑路由器(即,处理到外部网络的连接的逻辑路由器)的配置数据这两者。基于该配置数据,网络控制系统配置各种受管理转发元件(managedforwarding element)以实现逻辑转发元件(逻辑交换机、逻辑路由器的分布式方面等)以及逻辑网络的其他分组处理操作(例如,分布式防火墙规则)。此外,一些实施例配置在网关机器上操作的特定受管理转发元件,以实现处理逻辑网络到一个或多个外部网络的连接的集中式逻辑路由组件。网关机器上的这种受管理转发元件还被配置为经由网关的单独的接口将逻辑网络和外部网络之间的该流入和/或流出数据流量的至少子集重定向(例如,使用基于策略的路由)到所附接的第三方服务。
在一些实施例中,接收附接第三方服务的配置数据包括若干单独的配置输入(例如,来自管理员)。在配置逻辑路由器之后,一些实施例接收(i)定义逻辑路由器的服务附接接口、(ii)定义服务附接接口连接到的逻辑交换机、(iii)定义服务接口(例如,数据流量被重定向到的服务机器的接口)、以及(iv)将逻辑路由器的服务附接接口和服务接口连接到逻辑交换机的配置数据。此外,在一些实施例中,管理员定义指定哪些流入和/或流出流量被重定向到服务接口的规则或一组规则。
一些实施例使用各种不同的拓扑来使得多个服务能够连接到逻辑路由器。例如,多个服务可以连接到同一逻辑交换机,在这种情况下,这些服务都具有同一子网中的接口,并且可以在彼此之间直接发送数据流量(如果被配置为这样做的话)。在此设置中,逻辑路由器可以具有连接到逻辑交换机的单个接口(针对到所有服务的流量),或者针对每个附接的服务连接到逻辑交换机的单独的接口。在其他情况下,可以针对每个服务定义单独的逻辑交换机(其中单独的逻辑路由器接口连接到每个逻辑交换机)。此外,可以针对每个服务机器定义多个接口,用于处理不同的流量集合(例如,去往/来自不同外部网络或不同逻辑网络子网的流量)。
此外,在一些实施例中,服务机器可以经由不同类型的连接来连接到逻辑路由器。具体地,一些实施例允许以以下任一种方式连接服务机器:(i)L2线路插件模式或(ii)L3单臂模式。在L2模式下,逻辑路由器的两个接口经由两个单独的逻辑交换机连接到服务机器的两个单独的接口,并且数据流量经由接口之一发送到服务机器,并且经由另一个接口从服务机器接收回来。数据流量可以经由用于流量进入逻辑网络的一个接口以及经由用于流量退出逻辑网络的另一个接口被发送到服务机器。在L3模式中,针对与服务机器的每个连接,在逻辑路由器上使用单个接口。
一旦配置好,网关就会将逻辑网络和外部网络之间的某些或全部数据流量重定向到服务机器。如上所述,一些实施例使用一组基于策略的路由(PBR)规则来确定是否重定向每个数据消息。在一些实施例中,网关在对数据消息执行逻辑路由之后将这些PBR规则应用于传出数据消息,并且在对传入数据消息执行逻辑路由和/或交换之前将PBR规则应用于传入数据消息。
也就是说,对于传出数据消息,网关执行逻辑交换(如果需要),然后针对连接到外部网络的路由组件执行逻辑路由以确定数据消息实际上指向逻辑网络外部,然后应用PBR规则来确定是否将数据消息重定向到服务。如果数据消息被重定向,则在其从服务返回时(如果数据消息未被服务丢弃/阻止),网关将数据消息转发到外部网络。
对于传入数据消息,网关应用PBR规则来确定在通过任何逻辑转发元件处理数据消息之前是否将数据消息重定向到服务。如果数据消息被重定向,则在其从服务返回时(如果数据消息未被服务丢弃/阻止),网关然后对数据消息执行逻辑路由和交换等,以确定如何将数据消息转发到逻辑网络。
在一些实施例中,PBR规则使用两阶段查找来确定是否重定向数据消息(以及将数据消息重定向到哪个接口)。具体地,每个规则指定唯一标识符,而不是PBR规则(即,基于除目的地网络地址以外的报头字段的路由规则)提供重定向细节。每个标识符对应于服务机器,并且网关存储用于每个标识符的动态更新的数据结构。在一些实施例中,这些数据结构指示到服务的连接类型(例如,L2线路插件或L3单臂)、数据消息被重定向到的服务的接口的网络地址(对于L2模式,一些实施例使用与网关的返回服务附接接口的数据链路层地址对应的虚拟网络地址)、动态更新的状态数据和故障转移策略。状态数据基于服务的健康/可达性而被动态更新,服务的健康/可达性动态可以使用诸如双向转发检测(BFD)的心跳协议来测试。在一些实施例中,故障转移策略指定在服务不可达的情况下如何处理数据消息。这些故障转移策略选项可以包括例如丢弃数据消息、将数据消息转发到其目的地而不重定向到服务、重定向到备份服务机器等。
前述发明内容旨在用作对本发明的一些实施例的简要介绍。它并不意味着对本文档中公开的所有发明主题的介绍或概述。下面的具体实施方式和具体实施方式中参照的附图将进一步描述发明内容中描述的实施例以及其他实施例。因此,为了理解本文档描述的所有实施例,需要对发明内容、具体实施方式和附图进行全面审查。此外,要求保护的主题不受发明内容、具体实施方式和附图中的说明性细节的限制,而是由所附权利要求书限定,因为所要求保护的主题可以在不背离主题精神的情况下以其他具体形式体现。
附图说明
本发明的新颖特征在所附权利要求中陈述。然而,出于解释的目的,在以下附图中阐述了本发明的几个实施例。
图1概念性地示出了一些实施例的第三方服务可以连接到的示例逻辑网络。
图2概念性地示出了将第三方服务机器连接到集中式路由器的示例。
图3概念性地示出了一些实施例的用于配置逻辑网络的网关机器以将流入和/或流出数据流量重定向到第三方服务机器的过程。
图4概念性地示出了具有两个服务附接接口的集中式路由组件,这两个服务附接接口经由两个单独的逻辑交换机连接到第三方服务机器的两个单独的服务端点接口。
图5概念性地示出了具有一个服务附接接口的集中式路由组件,这一个服务附接接口经由一个逻辑交换机连接到第三方服务机器的两个单独的接口。
图6概念性地示出了具有一个服务附接接口的集中式路由组件,这一个服务附接接口经由一个逻辑交换机连接到两个不同的第三方服务机器的接口。
图7概念性地示出了具有两个服务附接接口的集中式路由组件,每个服务附接接口经由单独的逻辑交换机连接到两个服务机器中的不同服务机器。
图8示出了流入数据消息通过由以L3单臂模式连接的第三方服务机器和网关受管理转发元件实现的多个逻辑处理阶段的路径。
图9示出了流出数据消息通过图8的网关MFE和第三方服务机器实现的多个逻辑处理阶段的路径。
图10示出了流入数据消息通过由以L2线路插件模式连接的第三方服务机器和网关MFE实现的多个逻辑处理阶段的路径。
图11示出了流出数据消息通过图10的网关MFE和第三方服务机器实现的多个逻辑处理阶段的路径。
图12概念性地示出了一些实施例的用于将基于策略的路由重定向规则应用于数据消息的过程。
图13示出了基于策略的路由规则的表格。
图14概念性地示出了基于数据结构将数据消息重定向到的服务机器的连接状态的改变而动态更新的数据结构。
图15概念性地示出了用于实现本发明的一些实施例的电子系统。
具体实施方式
在本发明的以下具体实施方式中,阐述和描述了本发明的许多细节、示例和实施例。然而,对于本领域技术人员清楚和明显的是,本发明不限于所阐述的实施例,并且本发明可以在没有所讨论的一些具体细节和示例的情况下实施。
一些实施例提供了一种网络管理和控制系统,其使得能够集成用于处理进入和/或退出逻辑网络的数据流量的第三方服务机器。这些第三方服务可以包括各种类型的非分组转发服务,诸如防火墙、虚拟专用网(VPN)服务、网络地址转换(NAT)、负载平衡等。在一些实施例中,网络管理和控制系统管理这些服务机器的集成,但不管理这些机器本身的生命周期(因此将这些服务机器称为第三方服务)。
在一些实施例中,逻辑网络包括逻辑网络端点(例如,诸如虚拟机、容器等的数据计算节点)连接到的至少一个逻辑交换机以及用于处理进入和/或退出逻辑网络的数据流量的逻辑路由器。此外,逻辑网络可以包括通过前述逻辑路由器或另一逻辑路由器彼此逻辑连接的多个逻辑交换机。
图1概念性地示出了一些实施例的第三方服务可以连接到的示例逻辑网络100。如图所示,该逻辑网络100包括第0层级逻辑路由器105(也被称为提供商逻辑路由器)、第l层级逻辑路由器110(也被称为租户逻辑路由器)以及两个逻辑交换机115和120。数据计算节点(DCN)125-140(例如,虚拟机、容器等)附接到逻辑交换机115和120中的每一个。这些数据计算节点125通过实现该逻辑网络(例如,在数据中心内)的物理网络彼此交换数据消息,并与一个或多个外部网络145交换数据消息。
逻辑网络100表示一些实施例的由网络管理和控制系统的用户配置的网络的抽象。也就是说,在一些实施例中,网络管理员将逻辑网络100配置成逻辑交换机、路由器等的概念性集合,其中策略被应用于这些逻辑转发元件。网络管理和控制系统针对物理的受管理转发元件(例如,在作为逻辑网络网关操作的主机、虚拟机和/或裸金属机器的虚拟化软件中操作的软件虚拟交换机等)生成配置数据,以实现这些逻辑转发元件。例如,当物理主机上托管的DCN 125-140发送数据消息时,在一些实施例中,在主机的虚拟化软件中执行的受管理转发元件对数据消进行处理以实现逻辑网络。受管理转发元件将会应用针对DCN附接到的逻辑交换机的逻辑交换机配置,然后应用第1层级逻辑路由器配置等以确定数据消息的目的地。
在一些实施例中,如在该示例中,逻辑网络包括多层逻辑路由器。第一层中的逻辑路由器(例如,第1层级逻辑路由器110)连接逻辑交换机(例如,特定租户的逻辑交换机)组。针对向和从逻辑网络发送的数据流量(例如,来自连接到逻辑网络中托管的web服务器的外部客户端的数据流量等),这些第一层级逻辑路由器连接到第二层级中的逻辑路由器(例如,第0层级逻辑路由器105)。
一些实施例的网络管理和控制系统(以下被称为网络控制系统)针对至少一些逻辑路由器定义多个路由组件。具体地,本示例中的第0层级逻辑路由器105具有分布式路由组件150(“分布式路由器”)和集中式路由组件155,它们通过被称为转接逻辑交换机的内部逻辑交换机160连接。在一些情况下,针对第0层级逻辑路由器定义多个集中式路由器,每个集中式路由器连接到转接逻辑交换机160。例如,一些实施例定义了两个集中式路由器,一个活动的,一个备用的。
在一些实施例中,分布式路由器150和转接逻辑交换机160以分布式方式实现(如利用逻辑交换机115和120以及第l层级逻辑路由器110),这意味着数据消息的第一跳受管理转发元件将那些逻辑转发元件的策略应用于数据消息。然而,集中式路由器155以集中式方式实现(即,单个主机实现每个这样的集中式路由器)。这些集中式路由器处理逻辑网络到外部网络(例如,到在相同或其他数据中心实现的其他逻辑网络、到外部web客户端等)的连接。集中式路由器可以执行各种有状态服务(例如,网络地址转换、负载平衡等)以及与一个或多个外部路由器交换路由(使用例如,BGP或OSPF)。不同的实施例可以使用裸金属机器、虚拟机、在主机的虚拟化软件中执行的虚拟交换机或其他上下文来实现集中式路由器。
如所提到的,一些实施例允许管理员使用网络控制系统将第三方服务附接到逻辑路由器。在一些这样的实施例中,这些第三方服务被附接到处理逻辑网络端点和外部网络之间的数据流量的集中式路由器(例如,第0层级路由器的集中式路由器155)。虽然随后的讨论主要涉及第三方服务到第0层级逻辑路由器的连接,但是在一些实施例中,第三方服务也可以连接到第l层级逻辑路由器。
图2概念性地示出了将第三方服务机器200连接到集中式路由器205的示例。具体地,在一些实施例中,网络管理员定义逻辑路由器上的服务附接接口210、第三方服务机器的服务端点215、用于服务附接的特定逻辑交换机220,并且将服务附接接口210和服务端点215两者都附接到逻辑交换机220。在一些实施例中,管理员通过网络控制系统的管理平面的应用编程接口(API)提供该信息(例如,使用将用户交互转换成对管理平面的API调用的网络管理应用用户接口)。
在一些实施例中,管理平面接收(i)定义逻辑网络(即,逻辑交换机、数据计算节点到逻辑交换机的附接、逻辑路由器等)的配置数据,以及将一个或多个第三方服务附接到处理逻辑网络到外部网络的连接的逻辑路由器的配置数据。基于该配置数据,网络控制系统配置各种受管理转发元件以实现逻辑转发元件(逻辑交换机、逻辑路由器的分布式方面等)以及针对逻辑网络的其他分组处理操作(例如,分布式防火墙规则)。在一些实施例中,管理平面基于输入来生成配置数据,并将该配置数据提供给中央控制平面(例如,一组集中式控制器)。中央控制平面识别需要每个原子配置数据的受管理转发元件,并将配置数据分发到针对每个识别出的受管理转发元件的本地控制器。然后,这些本地控制器负责配置受管理转发元件(包括实现集中式路由器的网关机器)以实现逻辑网络的逻辑转发元件,包括将适当的数据消息重定向到第三方服务(例如,根据管理员提供的基于策略的路由规则)。
在一些实施例中,接收用于附接第三方服务的配置数据包括几个单独的配置输入(例如,来自管理员)。图3概念性地示出了一些实施例的用于配置逻辑网络的网关机器以将流入和/或流出数据流量重定向到第三方服务机器的过程300。在一些实施例中,过程300由通过API调用接收输入的网络控制系统的管理平面执行。
在该过程的描述中,假设已经配置了逻辑网络,并且该逻辑网络包括逻辑路由器,该逻辑路由器具有被配置为处理进入和退出逻辑网络的数据流量的至少一个集中式组件。一些实施例配置在网关机器上操作的特定受管理转发元件,以实现处理逻辑网络到一个或多个外部网络的连接的这些集中式逻辑路由组件。
如图所示,过程300开始于接收(在305)输入以定义逻辑路由器的服务附接接口。在一些实施例中,服务附接接口是逻辑路由器的专用类型的接口。在不同的实施例中,管理员要么在特定的集中式组件上要么通常在逻辑路由器上定义该服务附接接口。在后一种情况下,管理平面要么将接口应用于特定的一个组件(例如,如果管理员定义服务附接接口将仅处理向或从被分配给特定集中式组件的逻辑路由器的特定上行链路接口发送的流量),要么针对逻辑路由器的每个集中式组件创建单独的接口。例如,在一些实施例中,定义了活动的和备用的集中式路由组件,并且在这些组件中的每一个上创建接口。
接下来,过程300接收(在310)输入以定义用于将逻辑路由器连接到第三方服务的逻辑交换机。此外,该过程接收(在315)输入以将服务附接接口附接到该逻辑交换机。在一些实施例中,该逻辑交换机的创建类似于数据计算节点(例如,VM等)附接到的逻辑网络的逻辑交换机。在其他实施例中,逻辑交换机由管理员定义为特定的服务附接逻辑交换机。该逻辑交换机具有私有分配的子网,该子网(i)包括附接到逻辑交换机的服务附接接口的网络地址,并且(ii)只需要包括足够的网络地址用于第三方服务的任何接口和连接到逻辑交换机的任何服务附接接口。例如,如下所示,使用无类别域间路由(CIDR)表示法,将单个逻辑路由器接口连接到单个第三方服务接口的逻辑交换机可以是“/31”子网。即使逻辑路由器对逻辑网络子网执行到外部物理路由器的路由通告(例如,使用BGP或OSPF),但在一些实施例中不通告针对服务附接逻辑交换机的子网(或不将其输入到针对各种逻辑路由器层的路由表中)。
在一些实施例中,如果逻辑路由器包括多个集中式组件(例如,活动的和备用的组件),并且服务附接接口对应于这些组件中的每一个上的接口,则附接服务附接接口实际上将这些接口中的每一个附接到逻辑交换机。在这种情况下,每个集中式组件接口在逻辑交换机的子网中都具有单独的网络地址。
接下来,过程300接收(在320)输入以定义服务端点接口,并接收(在325)输入以将该服务端点接口附接到(逻辑路由器的服务附接接口附接到的)逻辑交换机。在一些实施例中,该服务端点接口表示第三方服务机器上的接口。在一些实施例中,当管理员定义集中式路由组件将连接到的端点接口时,这些接口可以是服务端点接口(也被称为逻辑端点接口,其对应于服务机器并通过逻辑交换机连接到服务附接接口)或外部接口(也被称为虚拟端点接口,其对应于可从集中式组件到达的网络地址)。外部路由器接口是这后一种接口的示例。
此外,一些实施例要求管理员定义第三方服务机器(要么通过网络控制系统、要么通过单独的数据中心计算管理器)。例如,在一些实施例中,网络管理员定义服务类型以及服务实例(例如,该服务类型的实例)这两者。如上所述,服务端点接口还应该具有该接口所附接到的逻辑交换机的子网内的网络地址。
应当理解,操作305-325不需要以图3所示的特定顺序发生。例如,网络管理员最初可以创建两个接口(逻辑路由器上的服务附接接口以及表示第三方服务的服务端点接口),然后随后创建逻辑交换机并将接口附接到该逻辑交换机。
此外,过程300接收(在330)用于将数据消息重定向到服务端点接口的一个或多个规则。在一些实施例中,这些是基于策略的路由规则,其(i)指定哪些流入和/或流出流量将被重定向到服务接口,以及(ii)由网关机器独立于其通常的路由操作来应用。在一些实施例中,管理员根据一个或多个数据消息报头字段(诸如源和/或目的地网络地址、源和/或目的地传输层端口、传输协议、接收数据消息的接口等)来定义重定向规则。对于每个服务接口,管理员可以创建一个重定向规则或多个规则。例如,被重定向的数据消息可以包括针对特定上行链路的所有传入和/或传出数据消息、仅从或向特定逻辑交换子网发送的数据消息等。
最后,在接收到上述配置数据之后,过程300配置(在335)网关机器以实现集中式逻辑路由器和到服务端点接口的重定向。然后,过程300结束。如果多个集中式路由组件具有附接到用于服务端点的逻辑交换机接口,则配置用于这些组件中的每一个的网关机器。在一些实施例中,管理平面生成用于服务附接接口和重定向规则的配置数据,并将该信息提供给中央控制平面。中央控制平面识别需要该信息的每个网关机器,并向该网关机器的本地控制器提供适当的配置数据。一些实施例的本地控制器将该配置数据转换成网关机器可读的格式(如果它还不是这样的格式),并且直接配置网关机器以实现基于策略的路由规则。
一些实施例使用各种不同的拓扑来使得多个服务能够连接到逻辑路由器。例如,多个服务可以连接到相同的逻辑交换机,在这种情况下,这些服务都具有同一子网中的接口,并且可以在彼此之间直接发送数据流量(如果被配置为这样做的话)。在此设置中,逻辑路由器可以具有连接到逻辑交换机的单个接口(用于到所有服务的流量),或者针对每个所附接的服务具有连接到逻辑交换机的单独的接口。在其他情况下,可以针对每个服务定义单独的逻辑交换机(其中单独的逻辑路由器接口连接到每个逻辑交换机)。此外,可以针对每个服务机器定义多个接口,用于处理不同的流量集合(例如,去往/来自不同外部网络或不同逻辑网络子网的流量)。
图4-7概念性地示出了用于将逻辑路由器的集中式路由组件连接到一个或多个服务机器的几种不同的这种拓扑。这些图中的每个图都示出了连接到一个或多个逻辑交换机的一个集中式路由器,一个或多个服务机器也连接到该一个或多个逻辑交换机。应当理解,这些图表示连接的逻辑视图,并且在一些实施例中,实现集中式路由器的网关机器也将实现(多个)逻辑交换机。
图4概念性地示出了具有两个服务附接接口的集中式路由组件400,这两个服务附接接口经由两个单独的逻辑交换机410和415连接到第三方服务机器405的两个单独的服务端点接口。此拓扑实质上针对到第三方服务的每个连接使用单独的服务附接接口和单独的逻辑交换机。在该示例中,逻辑交换机410和415中的每一个被分配包括两个网络地址的“/31”子网。由于每个逻辑交换机是专门针对将集中式路由组件400的一个服务附接接口连接到服务机器405而创建的,因此针对每个交换机只需要两个地址。在一些实施例中,用于路由器的重定向规则将向和从每个上行链路发送的数据消息重定向到第三方服务机器的不同接口(从而使用不同一个的服务附接接口)。
图5概念性地示出了具有一个服务附接接口的集中式路由组件500,该服务附接接口经由一个逻辑交换机510连接到第三方服务机器505的两个单独接口。在一些实施例中,针对每个第三方服务机器,管理员利用集中式路由器组件上的一个服务附接接口创建一个逻辑交换机,但是针对该第三方服务机器定义多个服务端点接口。在这种情况下,逻辑交换机子网容纳更大数量的网络地址(在本示例中,使用的是“/24”子网)。在一些实施例中,重定向规则被设置为经由相同的服务附接接口和逻辑交换机将向和从每个上行链路发送的数据消息重定向到第三方服务机器的不同接口。在一些实施例中,在服务机器上使用具有附接到同一逻辑交换机的多个服务端点接口的设置要求第三方服务机器针对每个接口使用单独的路由表(例如,虚拟路由和转发实例)。
图6概念性地示出了具有一个服务附接接口的集中式路由组件600,该服务附接接口经由一个逻辑交换机615连接到两个不同的第三方服务机器605和610的接口。该场景中的服务机器605和610可以提供两个单独的服务(例如,防火墙和云扩展服务),或者是针对单个高可用性服务的主机器和备用机器。在一些实施例中,因为服务机器605和610的接口在同一逻辑交换机上,所以数据消息也可以从一个服务发送到另一个服务。在该示例中,集中式路由组件600具有单个上行链路;使用该配置的一些实施例将包括各自连接到两个服务机器的(不同)接口的两个服务附接和两个逻辑交换机,以处理针对两个不同的上行链路接收的数据消息或去往两个不同的上行链路的数据消息。
图7概念性地示出了具有两个服务附接接口的集中式路由组件700,每个服务附接接口经由单独的逻辑交换机715和720连接到两个服务机器705和710的不同服务机器。与前面的示例一样,这两个服务机器可以提供两个单独的服务,也可以作为针对单个高可用性服务的主机和备用机。在该示例中,集中式路由组件具有单个上行链路;使用该配置的一些实施例将包括与每个附加上行链路对应的两个附加服务附接,它们经由单独的逻辑交换机连接到每个服务机器上的单独接口。在这些示例中,使用与每个不同的上行链路对应的服务机器上的单独接口允许服务机器将特定的处理配置应用于发送到每个不同的上行链路或从每个不同的上行链路接收的数据消息。
除了这些各种不同的拓扑之外,在一些实施例中,第三方服务机器还可以经由不同类型的连接被连接到集中式路由组件。具体地,一些实施例允许服务机器以(i)L2线路插件模式或(ii)L3单臂模式连接。在图10和图11所示的L2模式中,逻辑路由器的两个接口经由两个单独的逻辑交换机连接到服务机器的两个单独接口,并且数据流量经由其中一个接口发送到服务机器,并经由另一个接口从服务机器接收回来。对于进入逻辑网络的流量,数据流量可以经由一个接口发送到服务机器,以及对于退出逻辑网络的流量,数据流量经由另一个接口发送到服务机器。
在图8和图9所示的L3模式中,对于与服务机器的每个连接,在逻辑路由器上使用单个接口。一旦配置好,则网关将逻辑网络和外部网络之间的一些或全部数据流量重定向到服务机器。如上所述,一些实施例使用一组基于策略的路由(PBR)规则来确定是否重定向每个数据消息。在一些实施例中,网关在对数据消息执行逻辑路由之后,将这些PBR规则应用于传出数据消息,并且在对传入数据消息执行逻辑路由和/或交换之前,将PBR规则应用于传入数据消息。
图8示出了流入数据消息通过由网关管理转发元件800和第三方服务机器805实现的多个逻辑处理阶段的路径(由虚线表示)。如上所述,在该示例中,第三方服务机器以L3单臂模式连接。在这种模式下,数据消息被发送到第三方服务机器的网络地址,第三方服务机器将数据消息发送回逻辑路由器服务附接接口的网络地址。
网关MFE 800实现逻辑网络处理的几个阶段,包括基于策略的路由(PBR)重定向规则810、集中式路由组件处理815、服务附接逻辑交换机处理820和附加逻辑处理825(例如,转接逻辑交换机处理、分布式路由组件处理、用于网络端点连接到的其他层级的逻辑路由器和/或逻辑交换机的处理等。在一些实施例中,网关MFE 800是裸金属计算机或虚拟机中的数据路径(例如,基于数据平面开发包(DPDK)的数据路径)。其他实施例的网关MFE执行主机的虚拟化软件中的数据路径。而其他实施例实现这种数据路径中的逻辑处理的一部分,同时在虚拟机、命名空间或类似构造中实现集中式路由组件。
对于图8中的传入数据消息,网关MFE 800应用PBR规则810以确定在通过任意逻辑转发元件处理数据消息之前是否重定向数据消息。在一些实施例中,网关MFE还在应用PBR规则之前执行附加操作,例如IPSec和/或其他在本地应用的服务。下面更详细地描述的PBR规则识别给定数据消息是否将被重定向(例如,基于各种数据消息报头字段,诸如源和/或目的地IP地址)、如何重定向与特定报头字段值集合匹配的数据消息等。在这种情况下,PBR规则810指定将数据消息重定向到第三方服务机器805的接口。
基于该确定,集中式路由组件处理815识别重定向接口对应于服务附接逻辑交换机,因此网关MFE 800然后执行该逻辑交换机处理820。基于该逻辑交换机处理,网关MFE向第三方服务机器805发送数据消息(例如,带有封装)。该服务机器805执行其服务处理(例如,防火墙、NAT、云扩展等)并将数据消息返回给网关MFE(除非服务丢弃/阻止数据消息)。在数据消息从服务返回时,网关MFE然后执行集中式路由组件处理815(例如,基于目的地网络地址的路由),并且进而执行附加逻辑处理操作825。在一些实施例中,用标志来标记从第三方服务机器返回的数据消息,以指示不需要再次应用PBR规则。基于这些操作,网关MFE800将数据消息发送到其在逻辑网络中的目的地(例如,通过封装数据消息并将数据消息发送到数据中心中的主机)。
图9示出了流出数据消息通过由网关MFE 800和第三方服务机器805实现的多个逻辑处理阶段的路径(由虚线表示)。在接收到数据消息时,网关MFE 800首先应用集中式路由组件之前所需的任何逻辑网络处理825,诸如转接逻辑交换机(在分布式路由组件和集中式路由组件之间)。在一些情况下,第l层逻辑路由器还会具有在网关MFE上实现的集中式路由组件,在这种情况下,附加逻辑处理可以包括该集中式路由组件、第0层逻辑路由器的分布式路由组件、它们之间的转接逻辑交换机等。
集中式路由组件处理815将上行链路接口识别为其输出接口,这导致应用PBR规则810。在这种情况下,这些规则还将传出数据消息重定向到服务机器805,因此网关MFE 800再次应用集中式路由组件处理815,并且随后应用服务附接逻辑交换机处理820,并将数据消息发送到第三方服务机器805。假设数据消息没有被服务机器805丢弃,则网关MFE 800经由其对应于服务附接逻辑交换机的接口接收数据消息。此时,集中式路由组件处理815再次将上行链路识别为用于该组件的输出接口,并且网关MFE将数据消息发送到与上行链路相关联的外部物理网络路由器。如上所述,在从服务机器805接收到数据消息时,用标志来标记数据消息,使得在一些实施例中,网关MFE不会再次应用PBR规则810。
如果服务机器在逻辑上连接到第l层级逻辑路由器,则在一些实施例中,在第l层级逻辑路由器处理之后并且在第0层级逻辑路由器处理之前应用PBR规则(针对流出数据消息)。当从服务机器返回时,网关MFE然后应用第0层级分布式路由组件、转接逻辑交换机和第0层级集中式路由组件。通过在第0层级分布式路由组件之后并且在应用第l层级集中式路由组件之前应用PBR规则,类似地处理流入流量。
如上所述,图10和图11示出了使用L2线路插件模式将服务机器连接到集中式路由组件。图10示出了流入数据消息通过由网关MFE 1000和第三方服务机器1005实现的多个逻辑处理阶段的路径(由虚线表示)。在L2线路插件模式中,逻辑路由器的两个接口与到服务机器1005的每个连接相关联。数据消息经由其中一个接口发送到服务机器,并且经由另一个接口返回。
如图8和9的示例中所示,网关MFE 1000实现PBR重定向规则1010、集中式路由组件处理1015和附加逻辑处理1030。因为有两个单独的接口用于连接到服务机器1005,所以网关MFE 1000还实现两个单独的服务附接逻辑交换机1020和1025。在一些实施例中,与第一逻辑交换机1020相关联的接口是“不受信任的”接口,而与第二逻辑交换机1025相关联的接口是“受信任的”接口。在此图中,每个集中式路由组件服务附接接口都与网关MFE 1000的单独接口相关联。然而,在其他实施例中,这些服务附接接口共享一个网关MFE接口。
对于图10中的传入数据消息,网关MFE 1000应用PBR规则1010,以确定在通过任意逻辑转发元件处理数据消息之前是否重定向数据消息。在一些实施例中,网关MFE还在应用PBR规则之前执行附加操作,例如IPSec和/或其他在本地应用的服务。下面更详细描述的PBR规则识别给定数据消息是否将被重定向(例如,基于各种数据消息报头字段,诸如源和/或目的地IP地址)、如何重定向与特定报头字段值集合匹配的数据消息等。在这种情况下,PBR规则1010指定将数据消息重定向到与第一逻辑交换机1020相关联的第三方服务机器805的接口。
基于该确定,集中式路由组件处理815识别重定向接口对应于第一服务附接逻辑交换机1020。因为服务机器1005是以L2线路插件模式连接的,所以集中式路由组件使用该接口的MAC地址作为重定向数据消息的源地址,并且使用另一个服务附接接口(连接到第二逻辑交换机1025)的MAC地址作为目的地地址。这使得数据消息由服务机器1005返回到该第二(受信任的)接口。
然后,网关MFE 1000执行逻辑交换处理1020,并且基于该逻辑交换处理向第三方服务机器1005发送数据消息。该服务机器1005执行其服务处理(例如,防火墙、NAT、云扩展等)并将数据消息返回给网关MFE(除非服务丢弃/阻止数据消息)。在数据消息从服务返回时,网关MFE基于数据消息的目的地地址和/或在其上接收消息的网关MFE接口来识别第二逻辑交换机1025以供处理,然后执行集中式路由组件1015的处理(例如,基于目的地网络地址的路由),并且进而执行附加逻辑处理操作1030。在一些实施例中,用标志来标记从第三方服务机器返回的数据消息,以指示不需要再次应用PBR规则。基于这些操作,网关MFE 800将数据消息发送到其在逻辑网络中的目的地(例如,通过封装数据消息并将数据消息发送到数据中心中的主机)。
图11示出了流出数据消息通过由以L2线路插件模式连接的网关MFE 1000和第三方服务机器1005实现的多个逻辑处理阶段的路径(由虚线表示)。在接收到数据消息时,网关MFE 1000首先应用集中式路由组件之前所需的任何逻辑网络处理1030,例如转接逻辑交换机(在分布式路由组件和集中式路由组件之间)。在一些情况下,第l层级逻辑路由器还将具有在网关MFE上实现的集中式路由组件,在这种情况下,附加逻辑处理1030可以包括该集中式路由组件、第0层级逻辑路由器的分布式路由组件、它们之间的转接逻辑交换机等。
然后,集中式路由组件处理1015将上行链路接口识别为其输出接口,这导致应用PBR规则1010。在这种情况下,这些规则经由附接到第二逻辑交换机1025的受信任的接口将传出数据消息重定向到服务机器805。因此,网关MFE 800再次应用集中式路由组件处理1015,随后应用第二服务附接逻辑交换机1025的处理,并且将数据消息发送到第三方服务机器1005。在该方向上,数据消息将受信任的接口MAC地址作为其源地址,并且将不受信任的接口MAC地址作为其目的地地址,对于传入数据消息,则穿过从集中式路由组件1015到服务机器1005并返回的相反路径。
假设数据消息没有被服务机器1005丢弃,网关MFE 800经由与第一服务附接逻辑交换机1020对应的接口接收数据消息。此时,集中式路由组件处理1015再次将上行链路识别为输出接口,并且网关MFE将数据消息发送到与上行链路相关联的外部物理网络路由器。如上所述,在一些实施例中,在从服务机器1005接收时,用标志对数据消息进行标记,使得网关MFE不会再次应用PBR规则1010。
在一些实施例中,PBR规则使用两阶段查找来确定是否重定向数据消息(以及将数据消息重定向到哪个接口)。具体地,每个规则指定唯一的标识符,而不是PBR规则直接提供重定向细节信息。每个标识符对应于服务机器,并且网关存储用于每个标识符的动态更新的数据结构,该数据结构提供关于如何重定向数据消息的细节信息。
图12概念性地示出了一些实施例的用于将基于策略的路由重定向规则应用于数据消息的过程1200。在一些实施例中,当将PBR规则应用于传入(从外部网络)或传出(从逻辑网络)数据消息时,过程300由诸如图8-图11所示的那些网关MFE来执行。将部分参照图13来描述该过程1200,其示出了一组PBR规则和用于这些规则中的一些规则的数据结构。
如图所示,过程1200通过接收(在1205)用于PBR处理的数据消息开始。这可以是经由逻辑路由器上行链路从外部网络接收的数据消息或由逻辑网络端点发送的数据消息,对于该逻辑网络端点,网关MFE已经将上行链路识别为集中式路由组件的流出端口。在一些实施例中,过程1200不被应用于设置了指示数据消息是从第三方服务机器接收的标志的数据消息。
然后,过程1200执行(在1210)对一组PBR规则的查找。在一些实施例中,这些规则被组织为一组流条目,具有匹配条件和匹配每组匹配条件的针对数据消息的动作。根据网关数据路径的上下文,一些实施例的PBR规则使用散列表(或散列表集合),该散列表使用数据消息报头字段集合的一个或多个散列。其他实施例使用其他技术来识别匹配的PBR规则。
图13示出了PBR规则1300的表格。在这种情况下,规则都在源和目的IP地址上匹配,但是一些实施例的PBR规则也可以在其他报头字段(以及其他报头字段与源和/或目的IP地址的组合)上匹配。例如,前两个匹配条件彼此相反,一个用于处理流入数据消息(从外部网络中的70.70.70.0/24到逻辑网络中的60.60.60.0/24子网),另一个用于处理相应的流出数据消息。第三匹配条件在从源子网20.20.20.0/24发送的任何数据消息(即,与目的地地址无关)上匹配。如下文进一步描述的,动作指定唯一的策略标识符,而不是特定的重定向动作。
返回图12,过程1200基于PBR查找来确定(在1215)数据消息是否匹配任何PBR规则。在一些实施例中,PBR规则表包括用于不匹配任何其他规则的数据消息的默认(最低优先级)规则(或一组规则)。如果数据消息不匹配任何PBR规则(或仅匹配默认规则),则该过程将数据消息转发(在1220)到其目的地,而不进行任何重定向。因此,传出数据消息被发送到适当的物理路由器(在执行任何附加的IPSec或其他本地服务处理之后),而传入数据消息在集中式逻辑路由器处开始逻辑处理。
另一方面,如果数据消息与PBR规则之一匹配,则该过程查找(在1225)用于由所匹配的PBR规则指定的唯一标识符的数据结构。如图13所示,每个PBR规则的动作不直接指定将匹配的数据消息重定向到特定的下一跳地址。相反,这些动作指定唯一策略标识符,该唯一策略标识符进而映射到相应的动态更新的数据结构。也就是说,网关MFE被配置为存储用于在PBR动作中指定的针对每个唯一标识符的数据结构。这些数据结构可以是数据库表条目或任何其他类型的可修改数据结构。在一些实施例中,基于例如当前网络条件,网关MFE被配置为数据结构的一些或所有字段。
在一些实施例中,这些数据结构指示到服务的连接的类型(例如,L2插线或L3单臂)、数据消息被重定向到的服务的接口的网络地址、动态更新的状态数据以及故障转移策略。状态数据基于服务的健康/可达性被动态地更新,服务的健康/可达性可以使用诸如双向转发检测(BFD)的心跳协议来测试。在一些实施例中,故障转移策略指定在服务不可达的情况下如何处理数据消息。
图13示出了这些数据结构中的两个数据结构的内容。用于唯一标识符ABCDE的数据结构1305指示该策略重定向到的服务机器是以L2线路插件模式连接的(使得与第二PBR规则匹配的相反方向的数据消息将被重定向到相反方向上的同一服务机器)。数据结构1305还指示用于重定向的伪IP地址。该伪IP实际上不是服务机器的地址,而是解析为数据消息将经由其返回的集中式路由组件的服务附接接口(例如,针对流入数据消息,为集中式路由组件的受信任的接口)的MAC地址。在一些实施例中,该地址解析可以利用静态配置的ARP条目来执行。
此外,数据结构1305指定到服务机器的连接的当前BFD状态(连接当前为连上(up))以及指示如果BFD状态为断开(down)的情况下如何处理数据消息的故障转移策略。应当注意,虽然这些示例使用BFD,但是也可以使用用于监视服务机器的可达性的其他机制(例如,其他心跳协议、连接状态的其他测量等)。在这种情况下,故障转移策略指示如果服务计算机不可用,则应丢弃数据消息。其他故障转移策略选项可以包括例如将数据消息转发到其目的地,而无需重定向到服务、重定向到备份服务机器等。
用于唯一标识符ZYXWV的数据结构1310指示该策略重定向到的服务机器是以L3单臂模式连接的,因此重定向IP地址提供了服务机器接口的地址(而不是伪IP)。此连接的BFD状态也为up,但在这种情况下,故障转移策略提供重定向到位于不同子网(即连接到不同逻辑交换机)上不同IP地址处的备份服务机器。
返回图12,过程1200根据用于唯一标识符的数据结构中的指令来处理(在1230)数据消息。这可以包括将数据消息重定向到由数据结构指定的下一跳IP地址;如果连接为down并且故障策略指定丢弃数据消息,则丢弃数据消息;或者如果连接为down并且故障策略指定忽略重定向,则根据逻辑网络处理转发数据消息。
如上所述,由网关MFE动态地更新用于每个重定向策略的数据结构。在一些实施例中,BFD线程在网关机器上执行以(i)向服务机器发送BFD消息和(ii)从服务机器接收BFD消息。对于以L3单臂模式连接的服务机器,服务机器还执行向网关发送BFD消息的BFD线程。另一方面,在L2线路插件模式中,BFD线程从将集中式路由组件连接到服务机器的接口之一向服务机器发送BFD消息,并在另一个接口上接收回这些消息。一些这样的实施例通过两个接口将BFD消息(其中BFD消息从受信任的接口发送、在不受信任的接口处接收,反之亦然)发送出去。该过程在美国专利申请15/937,615中有更详细的描述,该申请通过引用结合于此。在一些实施例中,一个BFD线程在每个网关MFE上执行并与所有连接的服务机器交换消息,而在其他实施例中,单独的BFD线程在网关MFE上执行以与每个连接的服务机器交换消息。当BFD线程检测到不再从特定服务机器接收BFD消息时,网关MFE修改用于该服务机器的数据结构。
图14概念性地示出了基于数据结构将数据消息重定向到的服务机器的连接状态的改变而动态更新的数据结构1310。该图示出了在两个阶段1405和1410上数据结构1310以及网关机器1400与两个服务机器1415和1420之间的连接。
在第一阶段1405中,数据结构1310处于与图13相同的状态,指示根据BFD状态,到服务机器端点接口169.254.10.1的连接当前为up。网关机器1400除了利用其逻辑网络处理、PBR规则等操作网关MFE之外,还执行BFD线程1425。该BFD线程1425定期向第一服务机器1415(在其IP地址为169.254.10.1的接口处)和第二服务机器1420(在其IP地址为169.254.11.1的接口处)这两者发送BFD消息。此外,这些服务机器1415和1420中的每一个分别执行它们自己的BFD线程1430和1435,BFD线程1430和1435定期向网关机器发送BFD消息。如大X所示,在此阶段1405,网关机器1400和第一服务机器1415之间的连接变为down。这可能由于物理连接问题、服务机器1415崩溃的问题等而发生。因此,BFD线程1425将不再从服务机器1415接收BFD消息。
在第二阶段1410中,网关机器1400和服务机器1415之间的连接不复存在。此外,数据结构1305已经由网关MFE动态更新以指示BFD状态为down。作为由该数据结构1305指定的故障转移策略的结果,具有子网20.20.20.0/24中的源IP的数据消息将被重定向到第二服务机器1420的169.254.11.1接口,直到与第一服务机器1415的连接恢复为up。
在一些实施例中,多个线程可以写入数据结构1305和1310。例如,一些实施例允许BFD线程以及配置接收器线程既写入这些数据结构(例如,以修改BFD状态、又做出从网络控制系统接收的任何配置改变)。此外,一个或多个分组处理线程能够读取这些数据结构以执行分组查找。一些实施例使得这些分组处理线程能够从数据结构中读取,即使写入器线程之一当前正在访问这些结构,从而分组处理不会被写入器线程中断。
图15概念性地示出了用于实现本发明的一些实施例的电子系统1500。电子系统1500可以是计算机(例如,台式计算机、个人计算机、平板计算机、服务器计算机、大型机、刀片计算机等)、电话、PDA或任何其他类型的电子设备。这种电子系统包括各种类型的计算机可读介质和各种其他类型的计算机可读介质的接口。电子系统1500包括总线1505、(多个)处理单元1510、系统存储器1525、只读存储器1530、永久性存储设备1535、输入设备1540和输出设备1545。
总线1505笼统地表示通信地连接电子系统1500的众多内部设备的所有系统、外围设备和芯片组总线。例如,总线1505将(多个)处理单元1510与只读存储器1530、系统存储器1525和永久性存储设备1535通信地连接。
(多个)处理单元1510从这些不同的存储器单元中取回要执行的指令和要处理的数据,以便执行本发明的处理。在不同实施例中,(多个)处理单元可以是单个处理器或多核处理器。
只读存储器(ROM)1530存储电子系统的(多个)处理单元1510和其他模块所需的静态数据和指令。另一方面,永久性存储设备1535是读写存储器设备。该设备是即使在电子系统1500关闭时也存储指令和数据的非易失性存储器单元。本发明的一些实施例使用大容量存储设备(诸如磁盘或光盘及其对应的盘驱动器)作为永久性存储设备1535。
其他实施例使用可移动存储设备(例如软盘、闪存驱动器等)。作为永久性存储设备。与永久性存储设备1535一样,系统存储器1525是读写存储器设备。然而,与存储设备1535不同,系统存储器是易失性读写存储器,例如随机存取存储器。系统存储器存储处理器在运行时需要的一些指令和数据。在一些实施例中,本发明的进程被存储在系统存储器1525、永久性存储设备1535和/或只读存储器1530中。(多个)处理单元1510从这些不同的存储器单元中取回要执行的指令和要处理的数据,以便执行一些实施例的处理。
总线1505还连接到输入和输出设备1540和1545。输入设备使得用户能够向电子系统传送信息和选择命令。输入设备1540包括字母数字键盘和定点设备(也被称为“光标控制设备”)。输出设备1545显示由电子系统生成的图像。输出设备包括打印机和显示设备,例如阴极射线管(CRT)或液晶显示器(LCD)。一些实施例包括诸如触摸屏之类的设备作为输入和输出设备。
最后,如图15所示,总线1505还通过网络适配器(未示出)将电子系统1500耦合到网络1565。以这种方式,计算机可以是计算机网络(诸如局域网(“LAN”)、广域网(“WAN”)或内联网或诸如因特网的网络之一)的一部分。电子系统1500的任何或所有组件可以结合本发明使用。
一些实施例包括在机器可读或计算机可读介质(或者被称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令的电子组件,诸如微处理器、存储装置和存储器。这种计算机可读介质的一些示例包括RAM、ROM、只读光盘(CD-ROM)、可记录紧凑盘(CD-R)、可重写紧凑盘(CD-RW)、只读数字多功能盘(例如,DVD-ROM、双层DVD-ROM)、各种可记录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存(例如,SD卡、迷你-SD卡、微-SD卡等)、磁性和/或固态硬盘驱动器、只读和可记录
Figure BDA0004157827180000241
盘、超高密度光盘、任何其他光学或磁性介质以及软盘。该计算机可读介质可以存储计算机程序,该计算机程序可由至少一个处理单元执行并且包括用于执行各种操作的指令集。计算机程序或计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机、电子组件或微处理器使用解释器执行的高级代码的文件。
虽然以上讨论主要提及执行软件的微处理器或多核处理器,但一些实施例由诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)的一个或多个集成电路来执行。在一些实施例中,这样的集成电路执行在电路本身上存储的指令。
如本说明书中所使用的,术语“计算机”、“服务器”、“处理器”和“存储器”都是指电子或其他技术设备。这些术语不包括人或人群。为了说明的目的,术语显示是指在电子设备上显示。如本说明书中所使用的,术语“计算机可读介质”、“多个计算机可读介质”和“机器可读介质”完全限于以计算机可读形式存储信息的有形、物理物体。这些术语不包括任何无线信号、有线下载信号和任何其他临时信号。
本说明书通篇涉及包括虚拟机(VM)的计算和网络环境。然而,虚拟机仅是数据计算节点(DCN)或数据计算端节点(也称为可寻址节点)的一个示例。DCN可以包括非虚拟化物理主机、虚拟机、在主机操作系统之上运行而不需要管理程序或单独的操作系统的容器、以及管理程序内核网络接口模块。
在一些实施例中,VM使用由虚拟化软件(例如,管理程序、虚拟机监视器等)虚拟化的主机的资源在主机上使用它们自己的客户操作系统来操作。租户(即,VM的所有者)可以选择在访客操作系统之上运行哪些应用。另一方面,一些容器是在主机操作系统之上运行的构造,而不需要管理程序或单独的访客操作系统。在一些实施例中,主机操作系统使用名称空间以将容器彼此隔离,并因此提供在不同容器内操作的不同应用组的操作系统级隔离。这种隔离类似于在虚拟化系统硬件的虚拟机管理程序虚拟化的环境中提供的VM隔离,因此可以将其视为一种虚拟化形式,它隔离在不同容器中运行的不同应用组。这样的容器比VM更轻量级。
在一些实施例中,管理程序内核网络接口模块是包括具有管理程序内核网络接口和接收/发送线程的网络堆栈的非VMDCN。管理程序内核网络接口模块的一个示例是vmknic模块,其是VMware公司的ESXiTM管理程序的一部分。
应当理解,虽然本说明书涉及VM,但是给出的示例可以是任何类型的DCN,包括物理主机、VM、非VM容器和管理程序内核网络接口模块。事实上,在一些实施例中,示例网络可以包括不同类型的DCN的组合。
虽然已经参考许多具体细节描述了本发明,但是本领域普通技术人员将认识到,在不背离本发明精神的情况下,本发明可以以其他具体形式实现。此外,许多图(包括图10和图12)概念性地示出了过程。这些过程的具体操作可以不按照所示和所描述的确切顺序执行。特定操作可以不按照一个连续的操作系列执行,并且在不同的实施例中可以执行不同的特定操作。此外,过程可以使用多个子过程来实现,或者作为更大的宏过程的一部分来实现。因此,本领域普通技术人员将理解,本发明不受前述说明性细节的限制,而是由所附权利要求限定。

Claims (18)

1.一种用于转发数据消息的方法,所述方法包括:
执行查找以将所述数据消息的一组报头字段映射到与对数据消息执行非转发处理的特定服务对应的特定标识符,其中所述特定标识符是数据消息的报头字段被映射到的多个标识符之一,每个标识符对应于不同的服务并且与单独的动态更新的数据结构相关联,所述动态更新的数据结构包括用于将数据消息转发到对应的服务的指令;
使用与所述特定标识符相关联的特定的动态更新的数据结构来取回用于将数据消息转发到所述特定服务的指令;以及
根据从与所述特定标识符相关联的特定数据结构中取回的指令来转发所述数据消息。
2.如权利要求1所述的方法,其中,所述方法由在数据中心中实现的逻辑网络的网关执行,所述网关用于处理在所述数据中心中操作的逻辑网络端点与所述数据中心外部的物理网络之间的数据消息。
3.如权利要求2所述的方法,其中:
所述逻辑网络包括(i)所述逻辑网络端点连接到的至少一个逻辑交换机和(ii)逻辑路由器;
所述逻辑路由器包括分布式路由组件和一个或多个集中式路由组件;并且
所述网关实现所述集中式路由组件之一,以处理所述逻辑网络端点与所述数据中心外部的物理网络之间的数据消息。
4.如权利要求1所述的方法,其中,所述查找包括基于策略的路由决策。
5.如权利要求1所述的方法,其中,所述一组报头字段至少包括所述数据消息的源网络地址。
6.如权利要求1所述的方法,其中,所述特定服务是在一个或多个虚拟机上执行的第三方服务。
7.如权利要求1所述的方法,其中,与所述特定标识符相关联的所述特定的动态更新的数据结构指定(i)用于到达所述特定服务的IP地址,(ii)所述特定服务的可达性状态,以及(iii)用于当所述特定服务不可达时的故障转移策略。
8.如权利要求7所述的方法,其中,所述可达性状态基于可达性协议被动态地更新。
9.如权利要求7所述的方法,其中,所述特定服务是使用层2(L2)线路插件模式连接的,其中所述IP地址是与转发所述数据消息的网关的接口对应的伪地址。
10.如权利要求9所述的方法,其中,所述接口是第一接口,其中所述网关执行双向转发检测(BFD)线程,所述BFD线程通过第二接口向所述特定服务发送BFD消息并通过所述第一接口从所述特定服务接收所述BFD消息。
11.如权利要求7所述的方法,其中,所述IP地址是实现所述特定服务的机器的地址。
12.如权利要求7所述的方法,其中,所述故障转移策略指定当所述特定服务不可达时丢弃数据消息。
13.如权利要求7所述的方法,其中,所述故障转移策略指定当所述特定服务不可达时基于所述目的地网络地址来路由数据消息。
14.如权利要求7所述的方法,其中,所述故障转移策略指定当所述特定服务不可达时要将所述数据消息重定向到的备份服务。
15.一种存储程序的机器可读介质,所述程序在由至少一个处理单元实现时实现根据权利要求1-14中的任一项所述的方法。
16.一种计算设备,包括:
一组处理单元;以及
存储程序的机器可读介质,所述程序在由所述处理单元中的至少一个实现时实现根据权利要求1-14中的任一项所述的方法。
17.一种系统,包括用于实现根据权利要求1-14中的任一项所述的方法的装置。
18.一种包括指令的计算机程序产品,所述指令在由计算机执行时使计算机执行根据权利要求1-14中的任一项所述的方法。
CN202310339981.1A 2018-09-02 2019-08-21 逻辑网关处的服务插入方法、设备和系统 Pending CN116319541A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US16/120,283 US11595250B2 (en) 2018-09-02 2018-09-02 Service insertion at logical network gateway
US16/120,281 2018-09-02
US16/120,281 US10944673B2 (en) 2018-09-02 2018-09-02 Redirection of data messages at logical network gateway
US16/120,283 2018-09-02
PCT/US2019/047586 WO2020046686A1 (en) 2018-09-02 2019-08-21 Service insertion at logical network gateway
CN201980057472.1A CN112673596B (zh) 2018-09-02 2019-08-21 逻辑网关处的服务插入方法、设备和系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201980057472.1A Division CN112673596B (zh) 2018-09-02 2019-08-21 逻辑网关处的服务插入方法、设备和系统

Publications (1)

Publication Number Publication Date
CN116319541A true CN116319541A (zh) 2023-06-23

Family

ID=67841276

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980057472.1A Active CN112673596B (zh) 2018-09-02 2019-08-21 逻辑网关处的服务插入方法、设备和系统
CN202310339981.1A Pending CN116319541A (zh) 2018-09-02 2019-08-21 逻辑网关处的服务插入方法、设备和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201980057472.1A Active CN112673596B (zh) 2018-09-02 2019-08-21 逻辑网关处的服务插入方法、设备和系统

Country Status (3)

Country Link
EP (1) EP3815312A1 (zh)
CN (2) CN112673596B (zh)
WO (1) WO2020046686A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US10225137B2 (en) 2014-09-30 2019-03-05 Nicira, Inc. Service node selection by an inline service switch
US9774537B2 (en) 2014-09-30 2017-09-26 Nicira, Inc. Dynamically adjusting load balancing
US9825810B2 (en) 2014-09-30 2017-11-21 Nicira, Inc. Method and apparatus for distributing load among a plurality of service nodes
US10594743B2 (en) 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
US10797966B2 (en) 2017-10-29 2020-10-06 Nicira, Inc. Service operation chaining
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US10944673B2 (en) 2018-09-02 2021-03-09 Vmware, Inc. Redirection of data messages at logical network gateway
US11467861B2 (en) 2019-02-22 2022-10-11 Vmware, Inc. Configuring distributed forwarding for performing service chain operations
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11223494B2 (en) 2020-01-13 2022-01-11 Vmware, Inc. Service insertion for multicast traffic at boundary
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11153406B2 (en) 2020-01-20 2021-10-19 Vmware, Inc. Method of network performance visualization of service function chains
US11438257B2 (en) 2020-04-06 2022-09-06 Vmware, Inc. Generating forward and reverse direction connection-tracking records for service paths at a network edge
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106134137B (zh) * 2014-03-14 2020-04-17 Nicira股份有限公司 受管理网关的路由通告
US10225137B2 (en) * 2014-09-30 2019-03-05 Nicira, Inc. Service node selection by an inline service switch
US10341188B2 (en) * 2015-01-27 2019-07-02 Huawei Technologies Co., Ltd. Network virtualization for network infrastructure
US10079779B2 (en) * 2015-01-30 2018-09-18 Nicira, Inc. Implementing logical router uplinks
US10038628B2 (en) * 2015-04-04 2018-07-31 Nicira, Inc. Route server mode for dynamic routing between logical and physical networks
US10095535B2 (en) * 2015-10-31 2018-10-09 Nicira, Inc. Static route types for logical routers
US10333849B2 (en) * 2016-04-28 2019-06-25 Nicira, Inc. Automatic configuration of logical routers on edge nodes
US10841273B2 (en) * 2016-04-29 2020-11-17 Nicira, Inc. Implementing logical DHCP servers in logical networks

Also Published As

Publication number Publication date
WO2020046686A1 (en) 2020-03-05
EP3815312A1 (en) 2021-05-05
CN112673596A (zh) 2021-04-16
CN112673596B (zh) 2023-05-02
WO2020046686A9 (en) 2020-05-22

Similar Documents

Publication Publication Date Title
CN112673596B (zh) 逻辑网关处的服务插入方法、设备和系统
US20230179474A1 (en) Service insertion at logical network gateway
US10944673B2 (en) Redirection of data messages at logical network gateway
US10601705B2 (en) Failover of centralized routers in public cloud logical networks
US10862753B2 (en) High availability for stateful services in public cloud logical networks
US11115465B2 (en) Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10491516B2 (en) Packet communication between logical networks and public cloud service providers native networks using a single network interface and a single routing table
US20210314289A1 (en) Tunnel endpoint group records
US20220329461A1 (en) Transitive routing in public cloud
CN112640369B (zh) 在公共云中智能地使用对等的方法、设备和机器可读介质
US11848800B2 (en) Connecting virtual computer networks with overlapping IP addresses using transit virtual computer network
CN110278151B (zh) 用于逻辑路由器的动态路由
EP3669504B1 (en) High availability for stateful services in public cloud logical networks
US9183028B1 (en) Managing virtual computing nodes
US10715419B1 (en) Software defined networking between virtualized entities of a data center and external entities
US20190109780A1 (en) Routing information validation in sdn environments
US9444723B1 (en) Passing data over virtual links
CN114726786A (zh) 受管理网关的路由通告
WO2019040720A1 (en) ACCESS TO END POINTS IN LOGIC NETWORKS AND NATIVE NETWORKS OF PUBLIC CLOUD SERVICE PROVIDERS USING ONLY ONE NETWORK INTERFACE AND ONE ROUTING TABLE
US11895030B2 (en) Scalable overlay multicast routing
US9967140B2 (en) Virtual links for network appliances
US9166947B1 (en) Maintaining private connections during network interface reconfiguration
US10491483B2 (en) Using application programming interface calls for communication between network functions

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
CB02 Change of applicant information

Country or region after: U.S.A.

Address after: California, USA

Applicant after: Weirui LLC

Address before: California, USA

Applicant before: VMWARE, Inc.

Country or region before: U.S.A.

CB02 Change of applicant information