CN107925589B - 处理进入逻辑覆盖网络的远程设备数据消息的方法和介质 - Google Patents

处理进入逻辑覆盖网络的远程设备数据消息的方法和介质 Download PDF

Info

Publication number
CN107925589B
CN107925589B CN201680050484.8A CN201680050484A CN107925589B CN 107925589 B CN107925589 B CN 107925589B CN 201680050484 A CN201680050484 A CN 201680050484A CN 107925589 B CN107925589 B CN 107925589B
Authority
CN
China
Prior art keywords
data message
service
network
rule
mdm
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
Application number
CN201680050484.8A
Other languages
English (en)
Other versions
CN107925589A (zh
Inventor
J·贾殷
A·森谷普塔
S·尼玛加达
A·S·提阿吉
K·库玛
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.)
Nicira Inc
Original Assignee
Nicira Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nicira Inc filed Critical Nicira Inc
Priority to CN202110911378.7A priority Critical patent/CN113595804A/zh
Publication of CN107925589A publication Critical patent/CN107925589A/zh
Application granted granted Critical
Publication of CN107925589B publication Critical patent/CN107925589B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5045Making service definitions prior to deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2571NAT traversal for identification, e.g. for authentication or billing 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2585NAT traversal through application level gateway [ALG]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/12Setup of transport tunnels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing

Abstract

一些实施例提供了用于基于来自远程设备管理(RDM)系统的数据消息属性来处理网络中的远程设备数据消息的新颖方法。例如,一些实施例的方法识别与数据消息相关联的RDM属性集,并且然后基于识别出的RDM属性集来执行一个或多个服务操作。

Description

处理进入逻辑覆盖网络的远程设备数据消息的方法和介质
Jayant Jain,Anirban Sengupta,Srini Nimmagadda,Alok Tiagi,Kausum Kumar
背景技术
安全远程访问是当今许多企业网络的共同特征。这种访问允许旅行的员工(例如,漫游的销售人员)或在家工作的使用电子通信的员工例如通过L3虚拟专用网络(VPN)来访问企业网络。安全远程访问还用于通过公共部署的网络基础设施(诸如安全套接字层(SSL)和互联网协议安全性(IPSec))使用L2VPN将多站点提供商的数据中心缝合在一起。
安全远程访问典型地通过在面向互联网的网络的周边安装VPN 网关来提供。VPN网关允许外部设备/网络经由隧道机制(诸如 SSL/DTLS或IKE/IPSec)连接到企业内部网络中。隧道端点对传出流量进行加密以用于转发,并且对传入流量进行解密并将其馈送到它们相应的网络中。基于路由和策略的转发(PBF)将相关流量从内部网络引导至本地隧道端点以用于转发,在本地隧道端点处,使用桥接或PBF进一步处理相关流量,以寻找到远程网络的正确隧道。在被授权并获得对专用网络的访问之后,外部客户端能够像位于专用网络内的任何其它客户端一样访问网络中的资源。
当今,并没有对来自外部客户端的流量实施许多策略。当今存在在终端用户设备上的应用级别处进行分段和安全性的各种技术。若干移动设备管理(MDM)平台(例如,Air-Watch/iOS)需要远程应用或者经由指定的VPN访问所有网络资源,或者基于用户身份维持针对应用的公用或专用姿态。
但是,现有平台不陷于同一粒度的基于简档的访问的网络侧。为了限制设备对数据中心内某些资源的访问,当今的现有平台使用静态防火墙规则,鉴于可能存在的大量简档,因此除了规则膨胀之外,对静态防火墙规则进行供给和管理会变得繁琐。这也没有考虑跨区域的设备移动性以及诸如DNS名称的应用访问供给,即,如何使不同应用服务于或路由到具有相同URI的不同用户/设备。
发明内容
一些实施例提供了用于基于来自远程设备管理(RDM)系统的数据消息属性来处理网络中的远程设备数据消息的新颖方法。例如,一些实施例的方法执行源网络地址转换(SNAT)操作,该操作基于与接收到的数据消息相关联的RDM属性集将新的源网络地址(例如,新的源互联网协议(IP)地址和/或新的源端口)插入到接收到的远程设备数据消息的报头中。然后该方法将数据消息转发到网络内的消息目的地。当消息穿过网络到其目的地时,网络的一个或多个网络元件基于消息报头中插入的源网络地址根据网络的一个或多个策略来处理该数据消息。这些操作的示例包括路由操作、防火墙操作、网络地址转换操作以及其它中间盒(middlebox)操作。
其它实施例的方法直接基于与数据消息相关联的RDM属性集对接收到的远程设备数据消息执行其它网络操作。例如,在一些实施例中,网络元件根据通过分析数据消息的RDM属性集而解析出的网络的一个或多个策略来处理数据消息。这样的网络元件的一个示例是基于接收到的消息的RDM属性集执行防火墙操作的防火墙设备。在一些实施例中,这些防火墙设备实施可以按照RDM属性集以及其它消息报头值(例如,L2-L7报头值)定义的防火墙规则。
在一些实施例中,网络元件是实施其它中间盒服务规则的其它中间盒元件,其中这些其它中间盒服务规则可以通过参考与接收到的远程设备数据消息相关联的RDM属性集来定义。例如,一些实施例的网络元件基于与数据消息流(即,具有相同分组报头(packetheader) 值的一组数据消息)相关联的RDM属性集来执行用于该数据消息流的DNS(域名系统)操作。在一些实施例中,网络元件基于数据消息的RDM属性集执行DNAT(目的地网络地址转换)操作,以便将数据消息路由到它们的目的地。一些实施例使用DNS或DNAT操作来确保与第一地理位置(例如,一个国家)相关联的远程设备仅访问第一地理位置中的网络,或者已经为第一地理位置的设备隔离的第二地理位置(例如,另一个国家)中的子网络。例如,这样的方法可以用于确保当欧洲公司的员工的远程设备在美国尝试虚拟专用网络 (VPN)连接时,该远程设备只能访问在欧洲的服务器或者美国数据中心中的已经为由公司的欧洲员工的使用而被隔离的服务器。
在一些实施例中,一个或多个网络控制器的集合从一个或多个 RDM服务器的集合接收(1)各种RDM属性的定义,以及(2)用于将这些RDM属性彼此相互关连以及与它们的值相互关连的一组运算符。RDM属性定义作为定义RDM属性和这些属性的可能值的字典的一部分而被提供。网络控制器集然后允许管理员基于接收到的 RDM属性定义和相关联的一组运算符来定义用于网络元件的策略和/ 或规则(例如,用于中间盒元件的服务规则、用于路由器的路由规则等)。在一些实施例中,管理员可以通过网络控制器集的用户界面或一组应用编程接口(API)对服务策略和/或服务规则进行编程。
网络控制器集将基于RDM的策略或规则分发给一个或多个网络元件(例如,将策略/规则推送到网络元件,或者允许网络元件拉取这些策略/规则)。在一些实施例中,网络元件将任何基于RDM的策略转换为它们实施的基于RDM的规则。VPN隧道网关是可以从网络控制器集接收基于RDM的策略或规则的网络元件的示例。这样的网关建立与通过VPN连接连接到网络的远程设备的隧道。换句话说,VPN网关通过要求远程设备(1)通过该网关建立与网络的 VPN隧道连接、(2)对远程设备通过VPN隧道发送的分组有效载荷进行加密、以及(3)对远程设备通过VPN隧道接收到的分组有效载荷进行解密,来限制远程设备对网络资源(例如,服务器等)的访问。在一些实施例中,VPN网关(1)利用隧道报头来封装从内部网络发送到远程设备的分组,并且(2)在将它从远程设备接收到的分组转发到内部网络中的网络元件之前从该分组中解封装(decapsulate) 隧道报头。
当远程设备尝试建立与网络的VPN隧道连接时,远程设备的请求(例如,通过网络的负载均衡器)被传递到VPN隧道网关。在一些实施例中,VPN隧道网关然后将它从远程设备获得的VPN凭证集传递到RDM服务器集,以便认证VPN请求。在认证远程设备的凭证集时,在一些实施例中,RDM服务器集提供用于请求VPN连接的远程设备、用户和/或应用的一个或多个RDM属性。
VPN网关将提供的(一个或多个)RDM属性与它后续通过 VPN连接接收到的数据消息相关联。而且,在一些实施例中,一旦建立VPN连接,远程设备就在VPN隧道报头中嵌入用于它所发送的数据消息的一个或多个RDM属性。VPN网关将它从RDM服务器集或远程设备接收到的任何RDM属性与由远程设备通过其VPN连接传送的数据消息相关联。
基于相关联的RDM属性集,VPN网关对它通过隧道从远程设备接收到的数据消息执行一个或多个操作。在一些实施例中,相关联的RDM属性集提供用于处理VPN网关实施的数据处理规则的上下文。这样的操作的示例包括上述基于RDM属性的SNAT操作和防火墙操作。
网络微分段(micro-segementation)是一些实施例的VPN网关基于与通过隧道接收到的远程设备数据消息相关联的RDM属性集而执行的另一个处理操作的示例。一些实施例在网络的网络元件(例如,转发元件、中间盒元件、主机等)的共享集合上实现多个逻辑网络。在一些实施例中,每个逻辑网络被实现为与底层物理拓扑解耦的覆盖网络(overlaynetwork)。在一些实施例中,覆盖网络是通过使用逻辑网络标识符(例如,虚拟网络标识符VNI)和通过使用网络中受管理的网络元件之间的隧道来创建的。
在一些实施例中,VPN网关的网络微分段操作涉及VPN网关基于数据消息的相关联RDM属性集将来自远程设备的数据消息与逻辑网络相关联。例如,在一些实施例中,VPN网关处理微分段规则,可以按照RDM属性的集合和逻辑网络标识符来指定这些微分段规则中的每一个。在这些实施例中,VPN网关可以将数据消息的RDM 属性集与其微分段规则之一的RDM属性集进行匹配,并且然后可以将匹配的规则的逻辑网络标识符用作用于该数据消息的逻辑网络标识符。在这种情况下,VPN网关然后将逻辑网络标识符插入该网关用来将数据消息转发到与逻辑网络相关联的转发元件或中间盒元件的隧道的隧道报头中。
在一些实施例中,VPN网关将它与远程设备的数据消息关联了的RDM属性集传递给网络内的一个或多个网络元件,使得这些元件可以基于该RDM属性集来执行一个或多个操作。这样的操作的示例包括基于RDM属性的防火墙操作、DNS操作、DNAT操作和/或其它中间盒操作或转发操作。在一些实施例中,VPN网关通过隧道的隧道报头将用于远程设备的RDM属性集传递到网络的内部转发元件和/或中间盒元件,其中该隧道将VPN网关连接到该元件。例如,在一些实施例中,VPN网关通过Geneve或VXLAN隧道连接到网络元件。这个隧道协议允许VPN网关在隧道报头中插入基于流的元数据 (其包括用于流的RDM属性集)。
在一些实施例中,VPN网关被实现为在主机计算机上与一个或多个其它虚拟机一起执行的虚拟机。在这些实施例中的一些实施例中, VPN网关的基于RDM的处理操作(例如,源网络地址转换、防火墙操作等)由服务模块执行,其中这些服务模块在VPN VM的主机计算机上执行并且在VPN VM解封装远程设备数据消息时捕获这些消息并将它们引导到网络的内部网络元件。例如,一些实施例的服务模块是由VM的虚拟网络接口卡(VNIC)或连接到这个VNIC的主机的软件交换机的端口所调用的过滤器模块。
前面的发明内容旨在用作对本发明的一些实施例的简要介绍。这并不意味着是对本文档中公开的所有发明性主题的介绍或概述。以下的具体实施方式和在具体实施方式中提及的附图将进一步描述在本发明内容中描述的实施例以及其它实施例。因此,为了理解由本文档描述的所有实施例,需要对发明内容、具体实施方式、附图和权利要求书进行全面审阅。而且,所要求保护的主题不受发明内容、具体实施方式和附图中的说明性细节的限制。
附图说明
本发明的新颖特征在所附权利要求中阐述。但是,为了解释的目的,在以下图中阐述了本发明的若干实施例。
图1示出基于来自MDM系统的数据消息属性处理移动设备数据消息的数据中心的示例。
图2示出一些实施例的VPN网关。
图3-图7示出针对不同服务动作的不同服务规则存储区(storage)的示例。
图8示出一些实施例的规则处理器执行的SNAT处理。
图9示出在一些实施例中规则处理器执行的防火墙处理。
图10示出在一些实施例中的规则处理器的微分段处理。
图11示出具有在多个主机上执行的多个这样的VPN VM和服务模块的数据中心。
图12更详细地示出一些实施例的主机计算机的软件体系架构。
图13示出VPN VM的服务模块基于与移动设备相关联的位置执行DNAT操作的两种不同方式。
图14示出执行基于MDM属性的DNAT操作的VPN VM的服务模块,该DNAT操作将从数据中心出来的第二移动设备的数据消息重新路由到用于访问第一区域中的数据中心DCN集群的第二区域移动设备的DCN服务器集群。
图15示出VPN VM的服务模块,其基于发送移动设备数据消息的移动设备的相关联区域,将需要DNS查找(DNS lookup)的这些数据消息重定向到两个不同的DNS服务器。
图16示出执行基于MDM属性的DNS操作的VPN VM服务模块,该DNS操作将从数据中心出来的第二移动设备的DNS名称查询重新路由到访问第一区域中的数据中心DNS服务器的第二区域移动设备的DNS服务器。
图17示出三个逻辑覆盖网络的示例,该三个逻辑覆盖网络被定义为(1)跨在主机的共享集合上执行的软件转发元件和服务模块的共享集合,并且(2)跨多个独立的共享转发元件和共享中间盒元件 (或服务装置)。
图18示出将来自第一租户的第一移动设备的数据消息与第一逻辑网络的第一逻辑网络标识符相关联、并且将来自第二租户的第二移动设备的数据消息与第二逻辑网络的第二逻辑网络标识符相关联的 VPN网关。
图19示出将来自同一租户的两个移动设备的数据消息关联到两个不同的逻辑网络的VPN网关。
图20示出将来自同一移动设备的两个不同数据消息流关联到两个不同逻辑网络的VPN网关。
图21示出VPN网关的示例,该VPN网关将来自两个不同的移动设备的数据消息连同用于这些数据消息的MDM属性集转发到两个不同的内部服务节点,使得这些服务节点可以基于MDM属性集来处理这些数据消息。
图22示出两个VPN网关的服务模块,这些服务模块跨服务节点集群中的若干中间盒服务节点分发用于不同移动设备数据消息流的服务操作。
图23示出一些实施例的VPN网关,该VPN网关(1)分析与数据消息流相关联的MDM属性集,(2)基于该分析识别一个或多个服务标签,以及(3)利用该数据消息流将识别出的(一个或多个) 服务标签在带内(inband)转发到网络元件。
图24示出负载均衡操作的示例,服务节点基于服务标签对两个移动设备数据消息流执行该负载均衡操作,其中该服务标签是由 VPN网关在分析与数据消息流相关联的MDM属性集之后分配的。
图25示出服务规则管理控制台的UI的示例,在一些实施例中,网络控制器集提供该服务规则管理控制台的UI,以便允许管理员基于MDM属性集和流报头值来指定服务规则。
图26示出本发明的一些实施例的网络控制器。
图27示出一些实施例的MDM属性索引树的示例。
图28示出可以针对以上提到的两个向量指定(vector-specified) 的服务规则定义的索引树。
图29示出为服务规则存储区构建MDM属性索引树结构的处理,其中该服务规则存储区存储来自网络控制器的一组服务规则。
图30示出服务节点用来基于数据消息流的MDM属性集和/或流报头值为该数据消息流选择服务规则存储区中的服务规则的处理。
图31概念性地示出使用其来实现本发明的一些实施例的计算机系统。
具体实施方式
在本发明的以下详细描述中,阐述和描述了本发明的许多细节、示例和实施例。但是,对于本领域技术人员将清楚和显而易见的是,本发明不限于所阐述的实施例,并且本发明可以在没有所讨论的一些具体细节和示例的情况下实践。
一些实施例基于来自远程设备管理(RDM)系统的数据消息属性来处理网络中的远程设备数据消息。远程设备包括尝试从外部公用网络访问位于专用网络内的资源的任何设备。这样的设备的示例包括服务器、台式机、膝上型电脑、平板电脑、智能电话等。在一些实施例中,远程设备管理系统是移动设备管理(MDM)系统。移动设备包括移动计算设备,诸如膝上型电脑、平板电脑、智能电话、虚拟桌面接口(VDI)、终端服务器等。
如在本文档中所使用的,数据消息是指以特定格式跨网络发送的位的集合。本领域普通技术人员将认识到的是,术语数据消息可以在本文中用于指可以跨网络发送的各种格式化的位的集合,诸如以太网帧、IP分组、TCP段、UDP数据报等。而且,如在本文档中所使用的,对L2、L3、L4和L7层(或层2、层3、层4、层7)的引用分别是对OSI(开放系统互连)层模型的第二数据链路层、第三网络层、第四传输层和第七应用层的引用。
基于与从远程设备(诸如远程移动设备)接收到的数据消息相关联的RDM属性集,一些实施例执行SNAT操作,该操作改变接收到的远程设备数据消息的源网络地址(例如,源互联网协议(IP)地址和/或源端口)。网络的一个或多个网络元件然后基于数据消息的改变后的源网络地址对远程设备数据消息执行一个或多个操作。这些操作的示例包括路由操作、逻辑分段操作、防火墙操作、网络地址转换操作以及其它中间盒操作。
一些实施例直接基于与数据消息相关联的RDM属性集对接收到的远程设备数据消息执行一个或多个网络操作。例如,在一些实施例中,一个或多个网络元件根据通过分析与数据消息相关联的RDM属性集而解析出的网络的一个或多个策略来处理数据消息。这样的网络元件的一种类型是防火墙设备,其基于接收到的数据消息的相关联 RDM属性集来执行防火墙操作。换句话说,一些实施例的防火墙设备实施按照RDM属性集定义的防火墙规则。
在一些实施例中,网络元件包括转发元件和/或其它中间盒元件,其实施通过参考与接收到的移动设备数据消息相关联的RDM属性集定义的其它规则。例如,一些实施例的网络元件基于与数据消息流 (即,具有相同分组报头值的一组数据消息)相关联的RDM属性集来执行针对该数据消息流的DNS操作或DNAT操作。
图1示出基于来自MDM系统的数据消息属性来处理移动设备数据消息的数据中心100的示例。该数据中心100具有VPN网关集合110,VPN网关集合110基于来自访问数据中心的资源的移动设备 150的数据消息的MDM属性来执行一个或多个操作。除了VPN网关集合110之外,数据中心100还包括一个或多个网络控制器的集合 115、一个或多个MDM服务器的集合120以及若干计算服务器135。数据中心的这些部件通过内部网络105通信地耦合,在一些实施例中,内部网络105是局域网或广域网。在一些实施例中,内部网络105可以(例如,通过专用的有线或无线连接,或者通过使用互联网的一个或多个覆盖网络)连接数据中心的不同物理位置。在其它实施例中,数据中心100是一个连续的物理位置,并且内部网络105由网络元件以及这些网络元件之间的有线和无线连接组成。
在一些实施例中,内部网络105的网络元件包括(1)基于消息报头参数转发数据消息的转发元件155(诸如交换机、路由器和网桥),以及(2)基于消息报头参数对数据消息执行服务(例如,防火墙、入侵检测、网络地址转换(NAT)等)的中间盒元件(MBE) 160。而且,在一些实施例中,这些元件也可以基于MDM属性执行它们的转发和服务操作。可以为来自移动设备的数据消息流指定的 MDM属性的示例包括设备标识符、用户标识符、应用标识符、应用组标识符、操作系统、移动设备位置、移动设备兼容性状态、移动设备越狱状态以及互联网协议版本。
这些网络元件对与服务器135、MDM服务器120、网络控制器 115和VPN网关组110相关联(例如,由其发送的或为其接收的) 的数据消息执行它们的转发和服务处理操作。服务器135执行计算和存储操作(例如,执行应用、存储文件等),这些操作对于数据中心之外的一个或多个移动设备150是可访问的。在一些实施例中,多个服务器135在主机计算机上执行。这样的服务器的示例包括虚拟机和容器。在这些实施例中的一些实施例中,如下面进一步描述的,一个或多个网络元件(例如,转发元件、中间盒元件、VPN网关)也可以在这样的主机计算机上执行。
VPN网关集合110建立与数据中心100之外的移动设备150的 VPN隧道,以便向这些设备提供到数据中心100的资源(例如,服务器135)的安全VPN连接。换句话说,VPN网关通过要求移动设备首先建立与该VPN网关的安全VPN隧道来限制移动设备对网络的资源(例如,服务器等)的访问。隧道使用隧道报头来封装来自不同协议的数据报中的一种类型的协议的分组。在一些实施例中,VPN 隧道使用PPTP(点对点隧道协议)来封装在诸如互联网的公共网络上的IP分组。VPN隧道利用一个或多个VPN密钥来对其(具有 VPN隧道报头的分组中的)VPN分组的有效载荷进行加密。这允许在移动设备和VPN网关之间安全地交换分组。
在一些实施例中,VPN网关(1)利用VPN隧道报头来封装并加密从内部网络105发送到移动设备150的分组,以及(2)将来自该VPN网关从移动设备150接收到的分组的隧道报头解封装,并且在将分组转发到内部网络105中的网络元件之前对这些分组进行解密。在一些实施例中,VPN网关110还包括代理服务器(例如,SOCKS 代理服务器),该代理服务器用作数据中心100内部的网络流量与数据中心100外部的网络流量之间的网桥。从数据中心100出去的任何流量看起来像来自代理服务器(例如,与代理服务器的IP地址相关联),而不是看起来像来自数据中心100内部的资源。虽然图1将 VPN网关示出为从移动设备接收数据消息的数据中心部件的初始集合,但是普通技术人员将认识到的是,在一些实施例中,数据中心100具有初始地接收和分发进入数据中心100的数据消息的一个或多个装置(例如,负载均衡器)。
当移动设备150尝试建立与VPN网关的VPN隧道连接时,在一些实施例中,VPN隧道网关将它从移动设备150获得的VPN凭证集传递给MDM服务器集120,以便对VPN请求进行认证。在认证移动设备的凭证集时,在一些实施例中,MDM服务器集120提供用于请求VPN连接的移动设备150、(移动设备的)用户和/或(在移动设备上执行的)应用的一个或多个MDM属性。如下面进一步描述的,在一些实施例中,在移动设备上运行的VPN客户端或代理客户端也提供MDM属性。例如,移动设备上的客户端可以提供应用标识符、设备标识符、位置、设备越狱状态等。
除了其在认证VPN请求中的角色之外,在一些实施例中, MDM服务器集120还是向移动设备供给对专用网络的资源(例如,数据中心100的资源)的访问的服务器集。在不同实施例中的供给涉及以下操作的不同组合:(1)将移动设备的标识符添加到可以具有远程访问的移动设备的列表,(2)添加用户标识符以识别可以通过移动设备具有远程访问的一个或多个用户,(3)向移动设备提供 VPN访问软件和/或设置,使得该移动设备可以设立与数据中心的安全VPN远程访问,以及(4)定义租户信息,比如公司标识符、用户权利等等。
VPN网关110将由MDM服务器集120提供的(一个或多个) MDM属性与它后续通过所建立的VPN连接从移动设备150接收到的数据消息相关联。而且,在一些实施例中,一旦建立了VPN连接,移动设备150就在VPN隧道报头中嵌入用于它发送的数据消息的一个或多个MDM属性。在一些实施例中,VPN网关110将它从 MDM服务器集120和移动设备150接收到的MDM属性聚合到一个 MDM属性集中,该VPN网关110将该MDM属性集与由移动设备 150通过其VPN连接传送的数据消息相关联。
基于相关联的MDM属性集,VPN网关110对它通过隧道从移动设备接收到的数据消息执行一个或多个操作。在一些实施例中,相关联的MDM属性集提供用于处理VPN网关110实施的数据处理规则的上下文。在一些实施例中,这些规则的(用于识别匹配的规则的) 规则标识符不仅通过参考MDM属性值而且还根据数据消息流的流标识符值(例如,L2-L4报头值或L2-L7报头值)来定义,如下面进一步描述的那样。
这种数据处理规则的一个示例包括基于MDM属性的SNAT规则。在一些实施例中,VPN网关110执行SNAT操作,该SNAT操作基于与接收到的数据消息相关联的MDM属性集将新的源网络地址(例如,新的源IP地址和/或新的源端口)插入到接收到的移动设备数据消息的报头中。然后,VPN网关110将数据消息转发到内部网络105内的消息目的地。当消息穿过内部网络105到达其目的地时,网络105的一个或多个内部网络元件(例如,转发元件155、中间盒元件160等)基于数据消息报头中插入的源网络地址根据一个或多个网络策略对数据消息执行操作。内部网络元件的这种操作的示例包括路由操作、逻辑分段操作、防火墙操作、网络地址转换操作以及其它中间盒操作。
其它实施例的VPN网关110直接基于与数据消息相关联的 MDM属性集对接收到的移动设备数据消息执行一个或多个网络操作。在一些实施例中,这些网络操作是由与VPN网关相关联的(例如,在与VPN网关相同的机器上执行或者通过物理连接或覆盖连接直接连接到VPN网关以便检查网关传递到内部网络105的所有数据消息的)一个或多个中间盒元件(例如,中间盒引擎或设备)直接基于移动设备数据消息的MDM属性集来执行的。这样的中间盒元件在下面被称为VPN网关的相关联的中间盒元件(MBE)。在一些实施例中,VPN网关110或其相关联的MBE 160根据通过分析数据消息的 MDM属性集而解析出的一个或多个规则来处理数据消息。
在一些实施例中,防火墙规则是按照MDM属性集定义的规则的一个示例。VPN网关110或其相关联的MBE 160使用数据消息的 MDM属性集来识别适用于该数据消息的防火墙规则,并且然后对该数据消息执行由这个规则指定的动作(允许、拒绝、重定向、重定向拷贝等)。
在一些实施例中,VPN网关110或其相关联的MBE 160基于与数据消息流(即,具有相同分组报头值的一组数据消息)相关联的 MDM属性集来执行用于该数据消息流的DNS操作。而且,在一些实施例中,该网关110或其相关联的MBE 160基于数据消息的 MDM属性执行DNAT操作,以便将数据消息路由到其目的地。一些实施例中使用DNS操作或DNAT操作来确保与第一地理位置(例如,一个国家)相关联的移动设备只能访问第一地理位置中的网络,或者在第二地理位置(例如,另一个国家)中的已经为第一地理位置的设备隔离的网络。例如,这样的方法可以用于确保当欧洲公司的员工的移动设备在美国尝试VPN连接时,该远程设备只能访问在欧洲的服务器或者在美国数据中心中已经为由公司欧洲员工的使用而被隔离的服务器。
在一些实施例中,网络微分段是VPN网关110或其相关联的 MBE 160基于移动设备数据消息的MDM属性执行的另一个处理操作的示例。一些实施例在网络的网络元件(例如,转发元件、中间盒元件等)的共享集合上实现多个逻辑网络。在一些实施例中,每个逻辑网络被实现为与底层物理拓扑解耦的覆盖网络。在一些实施例中,覆盖网络是通过使用逻辑网络标识符(例如,虚拟网络标识符VNI) 和通过使用网络中受管理的网络元件之间的隧道来创建的。
在一些实施例中,微分段操作涉及VPN网关或其相关联的MBE 基于数据消息的相关联MDM属性集将移动设备数据消息与逻辑网络相关联。例如,在一些实施例中,VPN网关或其相关联的MBE处理微分段规则,每个规则可以通过参考MDM属性的集合和逻辑网络标识符来指定。在这些实施例中,VPN网关或其相关联的MBE可以将数据消息的MDM属性集与其微分段规则之一的MDM属性集进行匹配,并且然后可以将匹配的规则的逻辑网络标识符用作用于该数据消息的逻辑网络标识符。在这种情况下,VPN网关然后将逻辑网络标识符插入到该网关用来将数据消息转发到与逻辑网络相关联的转发元件或中间盒元件的隧道的隧道报头中。
在一些实施例中,VPN网关将它与移动设备的数据消息相关联的MDM属性集传递给网络内的一个或多个网络元件,使得这些元件可以基于该MDM属性集来执行一个或多个操作(例如,防火墙操作、DNS操作、DNAT操作和/或其它中间盒操作或转发操作)。在一些实施例中,VPN网关通过隧道的隧道报头将用于移动设备的 MDM属性集传递到网络的内部转发元件和/或中间盒元件,其中该隧道将该VPN网关连接到该元件。例如,在一些实施例中,VPN网关通过Geneve或VXLAN隧道连接到网络元件。这个隧道协议允许 VPN网关在隧道报头中插入基于流的元数据(其包括用于该流的 MDM属性集)。
在一些实施例中,网络控制器集115生成基于MDM属性的规则,并将这些规则分发到VPN网关110、其相关联的MBE 160和/或其它网络元件(例如,转发元件155)。在一些实施例中,网络控制器集115从MDM服务器集120接收各种MDM属性的定义以及用于将这些MDM属性彼此相互关连以及与它们的值相互关连的一组运算符。MDM属性定义被提供为定义MDM属性和这些属性的可能值的字典的一部分。在一些实施例中,该组运算符可以包括以下运算符中的两个或更多个:与(AND)、或(OR)、等于、大于、小于、大于或等于、小于或等于、不等于,等等。
网络控制器集115然后允许管理员基于接收到的MDM属性定义和相关联的一组运算符来定义用于网络元件的策略和/或规则(例如,用于中间盒元件160的服务规则、用于转发元件155的转发规则等)。在一些实施例中,管理员可以通过网络控制器集115的用户界面或一组API(应用编程接口)对这些服务策略和/或服务规则进行编程。
网络控制器集115将基于MDM的策略或规则分发到VPN网关 110、其相关联的MBE和/或其它网络元件。在一些实施例中,网络控制器将策略/规则推送到这些元件。在这些或其它实施例中,网络控制器集允许网络元件(例如,VPN网关110、其相关联的MBE 160和/或其它网络元件)拉取这些策略/规则。在一些实施例中, VPN网关和/或网络元件将它们接收到的任何基于MDM的策略转换成它们实施的基于MDM的规则。
图2示出一些实施例的VPN网关205。该VPN网关205可以用作图1的数据中心100的VPN网关105。如图所示,VPN网关205 包括VPN处理器210、MDM认证器215、规则处理器220、网络控制器代理225、MDM代理230、规则数据存储区235和MDM属性存储区240。VPN处理器210包括VPN服务器(未示出),该VPN 服务器建立与数据中心外部的移动设备150的VPN隧道以便对从数据中心内的资源(例如,服务器)发送到移动设备的数据进行加密和保护。通常可在市场上获得许多这样的VPN服务器,诸如由 Juniper Networks(Pulse Secure VPN)、CiscoSystems公司(Easy VPN)和Dell公司(Sonicwall VPN服务器)销售的VPN服务器。
在一些实施例中,VPN处理器210(1)利用VPN隧道报头封装并加密从内部网络发送到移动设备150的分组,以及(2)将来自它从移动设备150接收到的分组的隧道报头解封装,并且在将分组转发到内部网络中的网络元件之前对这些分组进行解密。在一些实施例中,一个或多个数据中心部件在数据消息到达VPN处理器210之前初始地从移动设备150接收这些消息。
除了其执行隧道封装/解封装以及加密/解密的VPN服务器之外,一些实施例的VPN处理器210还包括用作VPN服务器面对的外部网络与数据中心的内部网络之间的网桥的代理服务器(例如,SOCKS 代理服务器)。
在一些实施例中,来自移动设备的VPN数据路径可以被表达为以下序列:(1)移动应用,(2)SOCKS代理客户端,(3)VPN 客户端,(4)VPN服务器,(5)SOCKS代理服务器,以及(6)数据中心中的目的地网络元件。反向序列表示从网络元件到移动设备的反向数据路径。当对移动设备数据消息执行基于MDM属性的服务时,用于移动设备的数据路径包括在套接字服务器和目的地网络元件之间的一个或多个基于MDM属性的服务。
当移动设备150尝试建立与VPN处理器210的VPN隧道连接时, VPN处理器210将它从移动设备150获得的VPN凭证集传递给认证器215。认证器215然后将凭证集中继到MDM服务器集120,以便对该VPN请求进行认证。一旦VPN请求被认证,认证器215就通知 VPN处理器210它可以建立用于移动设备150的VPN隧道。
在认证移动设备的凭证集时,MDM服务器集120在一些实施例中向认证器215提供请求VPN连接的移动设备、(移动设备的)用户和/或(在移动设备上执行的)移动设备应用的一个或多个MDM 属性。这样的数据的示例包括设备状态(例如,OS类型)、设备位置、一致性(conformance)状态等。
认证器215将这些属性存储在MDM属性存储区240中。在一些实施例中,VPN网关205通过其MDM代理230从MDM服务器 120在带外(out-of-band)获得MDM属性,而不是通过与认证器 215的带内通信从MDM服务器120接收MDM属性。在这些实施例中的一些实施例中,一旦MDM服务器120从认证器215接收到用于认证的VPN凭证集,MDM服务器120就将与所请求的VPN隧道相关联的(例如,与请求VPN隧道的移动设备、用户和/或移动设备应用相关联的)MDM属性集提供给MDM代理230。MDM代理230 将它从MDM服务器120接收到的任何MDM属性存储在MDM属性存储区240中。
在一些实施例中,该MDM属性存储区240将每个VPN隧道的相关联的MDM属性集存储在识别该VPN隧道及其相关联的MDM 属性集的记录中(例如,存储在存储用于该VPN隧道的标识符的记录中)。替代识别VPN隧道,或者除了识别VPN隧道之外(例如,除了存储VPN隧道标识符之外),该记录还识别用于通过隧道接收到的并且因此应该与该记录的MDM属性集相关联的数据消息的 (一个或多个)数据消息标识符(例如,五元组标识符,在一些实施例中,该五元组标识符是源IP、目的地IP、源端口、目的地端口和协议)。
一旦建立了VPN连接,在一些实施例中,移动设备150就将一个或多个MDM属性嵌入它所发送的数据消息的VPN隧道报头中。这些实施例中的VPN处理器210提取嵌入的MDM属性集,并将该集合存储在MDM属性存储区240中(例如,之前在存储区240中为从MDM服务器120接收到的MDM属性集创建的记录中)。在一些实施例中,该数据例如基于VPN隧道的标识符为所建立的VPN 隧道而存储。用于所建立的VPN隧道的聚合MDM属性提供了用于对通过这个隧道从移动设备150接收到的数据消息进行处理的MDM 上下文。
基于该上下文,规则处理器220可以对它通过所建立的VPN隧道和VPN处理器210从移动设备150接收到的数据消息执行一个或多个操作。具体而言,VPN处理器210对它通过所建立的VPN隧道从移动设备150接收到的VPN数据消息有效载荷进行解封装(即,从接收到的VPN数据消息中移除VPN隧道报头)。VPN处理器 210还对经解封装的VPN数据消息有效载荷进行解密。经解封装的、经解密的VPN数据消息有效载荷是在利用隧道报头对数据消息进行加密和封装之前由移动设备150发送的数据消息。
VPN处理器210将来自移动设备150的数据消息传递到规则处理器220。在一些实施例中,规则处理器220从MDM属性数据存储区240中检索与数据消息相关联的MDM属性集。在一些实施例中,数据存储区240中的每个记录指定(1)MDM属性集和(2)按照数据消息报头值、VPN隧道标识符或这两者定义的记录标识符。
因此,在一些实施例中,规则处理器220通过使用数据消息的报头值(例如,通过识别数据存储区240中具有与消息的五元组标识符匹配的规则标识符的记录)来识别用于数据消息的MDM属性集。在其它实施例中,规则处理器220通过使用VPN隧道的身份(例如,通过识别数据存储区240中具有VPN隧道标识符的记录)来识别消息的MDM属性集。在这些实施例中,VPN处理器210需要向规则处理器220通知它提供给规则处理器220的数据消息的VPN隧道身份。在还有的其它实施例中,规则处理器220通过使用数据消息的报头值和隧道标识符(隧道ID)两者来识别用于数据消息的MDM属性集。
规则处理器220然后使用识别出的MDM属性集来识别规则存储区235中的要实施的一个或多个服务规则。该存储区235存储基于 MDM属性集的服务规则。例如,在一些实施例中,每个规则(1) 指定动作,以及(2)具有MDM属性值的集合,规则处理器220可以尝试将该MDM属性值的集合与接收到的数据消息的MDM属性集进行匹配。当规则的MDM属性值集合与接收到的数据消息的 MDM属性集匹配时,规则处理器220执行由该规则指定的动作。当动作不涉及丢弃数据消息或将数据消息重新路由到数据中心之外的另一个资源时,在规则处理器220对数据消息执行其动作之后,规则处理器220将数据消息转发到内部网络中的数据消息的目的地。在一些实施例中,规则处理器220通过内部网络中的一组网络元件(例如,交换机和路由器)将数据消息转发到其目的地。
不是具有使用存储针对一个或多个服务动作的规则的一个规则存储区235的一个规则处理器220,VPN网关205在一些实施例中使用多个规则处理器和多个规则存储区以用于多个不同类型的服务动作。在其它实施例中,VPN网关205使用一个规则处理器220,该规则处理器220使用存储多种不同类型的服务规则的多个规则存储区。
图3-图7示出针对不同服务动作的不同服务规则存储区的示例。具体而言,图3示出SNAT规则存储区300,图4示出防火墙规则存储区400,图5示出DNAT规则存储区500,图6示出DNS规则存储区600,并且图7示出逻辑分段规则存储区700。如图所示,在一些实施例中,这些规则存储区中的规则中的每一个包括规则标识符,该规则标识符可以基于MDM属性集和/或流属性集(例如,L2-L4 分组报头值)来定义。对于具有特定MDM属性集的数据消息,规则处理器可以尝试通过比较数据消息的MDM属性集和/或报头值与规则的规则标识符,来识别这些规则存储区300-700中的任一个中的规则。在一些实施例中,规则存储区300-700中的每一个中的规则具有显式或隐式的(例如,如由表达的优先级值所指定的,或者如由它们在规则存储区中的顺序所指定的)优先级值。当规则存储区中的多个规则具有与数据消息的MDM属性集和/或报头值匹配的规则标识符时,规则处理器选择规则存储区中的最高优先级规则。
在SNAT规则存储区300中,SNAT规则存储用于在SNAT操作期间替换数据消息的源信息的源信息(例如,源IP地址和/或源端口)。防火墙规则存储区400中的防火墙规则指定用于具有与防火墙规则标识符匹配的MDM属性和/或流属性的数据消息的防火墙动作 (允许、拒绝、重定向、重定向拷贝、DNAT等)。
DNAT规则存储区500中的DNAT规则存储用于在DNAT操作期间替换数据消息的目的地元组(例如,接收到的数据消息的目的地 IP和/或目标端口)一个或多个候选目的地元组(例如,多组目的地 IP地址和/或目的地端口)。在图5示出的示例中,每个DNAT规则还可以包括指导规则处理器以负载均衡的方式选择候选目的地元组之一的一组负载均衡标准。图6的DNS规则存储区600中的DNS规则存储用于具有与DNS规则的规则标识符相匹配的MDM属性和流属性的数据消息的(识别DNS服务器的)DNS服务器标识符。
图7的逻辑分段规则存储区700中的每个分段规则存储逻辑网络标识符(LNI),该逻辑网络标识符(LNI)将接收到的移动设备数据消息与由数据中心的计算资源和公共共享网络实现的特定逻辑网络相关联。在一些实施例中,LNI包括虚拟网络标识符(VNI)。在一些实施例中,VNI识别逻辑交换机。在一些实施例中,LNI联合地或替代地指定其它虚拟标识符,诸如识别逻辑路由器的虚拟分布式路由器标识符。在一些实施例中,VPN网关通过隧道连接到实现逻辑网络的网络元件。在这些实施例中的一些实施例中,分段规则还可以指定到一个或多个网络元件的一个或多个隧道的集合,在利用隧道报头封装消息并在隧道报头中插入LNI之后,规则处理器可以使用该一个或多个隧道的集合来路由数据消息。
如上所述,规则数据存储区235中的服务规则由管理员通过网络控制器115来指定。基于MDM的规则通过参考网络控制器115从 MDM服务器120获得的MDM字典和运算符集来定义,如图2所示。网络控制器115通过VPN网关205的网络控制器代理225将这些规则存储在规则数据存储区235中。在一些实施例中,该代理225通过控制信道与网络控制器115通信。
规则存储区235中的服务规则可以指定任何数量的动作。动作的示例包括上述SNAT操作,其中移动设备数据消息的源信息(例如,源IP和/或源端口)被替换为新的源信息,该新的源信息影响内部网络105中的下游的网络转发元件和中间盒元件的转发和服务操作。其它示例操作包括上述防火墙、DNAT、DNS和网络分段操作。这些操作在下面进一步描述。
在一些实施例中,VPN处理器210和认证器215由在主机计算机上执行的VPN隧道处理VM来实现。如下面参考图11进一步描述的,该VPN隧道处理VM与其它访客VM(GVM)、服务VM(SVM)、受管理的软件转发元件(SFE)和/或基于管理程序的中间盒服务模块一起执行在该VPN隧道处理VM的主机上。在这些实施例中的一些实施例中,规则处理器220是在相同的主机计算机上执行的、并且由VPN隧道处理VM的VNIC(虚拟网络接口卡)或连接到这个VNIC的主机软件交换机的端口所调用的过滤器模块(例如,是管理程序提供的过滤器模块)。在一些实施例中,当VPN VM解封装移动设备数据消息时,该过滤器模块捕获这些消息并将它们引导到内部网络的网络元件。将在下面参考图12进一步描述该体系架构。
图8示出在一些实施例中规则处理器220执行的SNAT处理800。该处理检查VPN处理器210传递到内部网络105的移动设备数据消息。如以上提到的,在一些实施例中,规则处理器220是VPN隧道处理VM的过滤器模块,并且它在自VM(例如,从VPN VM的 VNIC或其相关联的SFE端口)的出口路径上捕获这些数据消息。
如图所示,处理800在规则处理器220(在805处)接收到VPN 处理器传递到内部网络105的数据消息时开始。处理800然后(在 810处)确定该数据消息是否是它先前处理过的数据消息流的一部分。在一些实施例中,规则处理器220维护连接存储区,该连接存储区包含用于规则处理器220所处理的每个数据消息流的记录。
在一些实施例中,连接存储区中的每个流的记录指定(1)指示是否必须对与该流相关联的数据消息执行SNAT操作的布尔值,以及(2)如果是这样,那么还指定应该被用来替换数据消息的现有源信息(例如,现有的源IP地址和/或源端口)的源信息(例如,新的源IP地址和/或源端口)。每个流的记录还指定流标识符(例如,流的五元组标识符)。在一些实施例中,处理800通过将数据消息的流标识符(例如,五元组标识符)与存储在存储区中的记录的流标识符进行比较来确定这个连接存储区是否包含用于接收到的数据消息的流的记录,以便识别具有与数据消息的流标识符相匹配的流标识符的记录。
当处理800(在810处)确定连接存储区存储有具有与接收到的数据消息的流标识符相匹配的流标识符的记录时,该处理(在815处) 确定匹配的记录是否指定SNAT操作,并且如果是这样,那么基于包含在匹配的记录中的源信息来执行SNAT操作(即,用该匹配的记录所指定的源信息替换数据消息的源信息)。当匹配的记录指定不需要执行SNAT操作时,处理800(在815处)允许数据消息不加改变地通过。在815之后,处理结束。
当处理800(在810处)确定其先前没有处理过作为与接收到的数据消息相同的流的一部分的数据消息时,处理800(在820处)检查MDM属性存储区240以识别与接收到的数据消息相关联的MDM 属性集。在一些实施例中,MDM属性存储区240基于流的标识符 (例如,五元组标识符)存储每个数据消息流的MDM属性集。因此,在这些实施例中,处理800通过使用消息的流标识符(在820处) 在MDM属性存储区240中寻找具有匹配的流标识符的记录,从而识别消息的相关联的MDM属性集。如上所述,其它实施例通过使用移动设备通过其发送消息的隧道的标识符来识别消息的相关联的 MDM属性集。
接下来,在825处,处理800确定基于MDM属性的规则存储区 235是否包含指定用于接收到的数据消息的MDM属性集的SNAT操作的记录。在一些实施例中,处理800通过将数据消息的(在820处识别出的)MDM属性集与存储在规则存储区235中的记录的MDM 属性集进行比较以确定该存储区是否包含具有与数据消息的MDM 属性集相匹配的MDM属性集的记录,从而做出这个确定。如以上提到的,规则存储区235中的规则的规则标识符也可以按照消息流报头值来定义。在一些实施例中,MDM属性存储区中的每个记录指定 SNAT操作和用于在SNAT操作期间替换数据消息的源信息的源信息。在一些实施例中,每个记录通过存储用于SNAT操作的非默认源信息来隐式地指定SNAT操作。
当处理800(在825处)确定规则存储区235存储有具有与接收到的数据消息的MDM属性集和/或报头值相匹配的MDM属性集和/ 或报头值的记录时,该处理(在835处)执行这个匹配的规则的 SNAT操作。该SNAT操作需要利用匹配的规则中所指定的源信息来替换数据消息的源信息(例如,源IP地址和/或源端口)。在835处,处理800还在连接存储区中创建指定必须针对该数据消息的流执行 SNAT操作的记录,并且存储需要被用于替换后续接收到的作为相同流的一部分的数据消息的源信息的(在825处从规则存储区235识别出的)源信息。在835之后,处理结束。
当该处理(在825处)确定规则存储区235没有存储具有与接收到的数据消息的MDM属性集相匹配的MDM属性集的记录时,该处理(在825处)确定针对接收到的数据消息或作为相同流的一部分的其它数据消息没有必须执行的SNAT操作。相应地,在830处,处理800在连接存储区中创建指定针对该数据消息的流没有必须执行的SNAT操作的记录,使得该记录可以用于快速地处理后续接收到的作为相同流的一部分的数据消息。在830之后,处理结束。
在一些实施例中,规则存储区235具有包罗(catch-all)规则,该包罗规则与不和规则存储区中的任何其它规则相匹配的数据消息流相匹配。在这些实施例中,包罗规则指定针对仅匹配该规则的数据消息流没有必须执行的SNAT操作。相应地,在这些实施例中,该处理(在825处)总是识别规则存储区235中的一个匹配的规则并且执行由该规则指定的SNAT操作(其不包括SNAT操作)。
在处理800分析数据消息(例如,使数据消息源信息保持不变,或者执行基于数据消息的MDM属性集用新的源信息替换数据消息的原始源信息的SNAT操作)之后,规则处理器220将数据消息转发到或者允许数据消息被转发到内部网络内的消息目的地。当消息穿过网络到达其目的地时,一个或多个网络元件(例如,一个或多个转发元件或中间盒元件)根据基于在消息报头中插入的源网络地址定义的网络的一个或多个策略来处理该数据消息。这些操作的示例包括路由操作、防火墙操作、网络地址转换操作以及其它中间盒操作。
图9示出在一些实施例中规则处理器220执行的防火墙处理900。该处理检查VPN处理器210传递到内部网络105的移动设备数据消息。如以上提到的,在一些实施例中,规则处理器220是VPN隧道处理VM的过滤器模块,并且它在自VM(例如,自VPN VM的 VNIC或其相关联的SFE端口)的出口路径上捕获这些数据消息。
如图所示,处理900在规则处理器220(在905处)接收到VPN 处理器传递到内部网络105的数据消息时开始。处理900然后(在 910处)确定该数据消息是否是它先前处理过的数据消息流的一部分。在一些实施例中,规则处理器220维护连接存储区,该连接存储区包含用于规则处理器220所处理的每个数据消息流的记录。
在一些实施例中,连接存储区中的每个流的记录指定(1)指示是否必须对与该流相关联的数据消息执行防火墙操作的布尔值,以及 (2)如果是这样,那么还指定应该被执行的防火墙动作(例如,允许或拒绝)。每个流的记录还指定一个或多个流标识符(例如,流的五元组标识符)。在一些实施例中,处理900通过将数据消息的流标识符(例如,五元组标识符)与存储在存储区中的记录的流标识符进行比较来确定这个连接存储区是否包含用于接收到的数据消息的流的记录,以便寻找具有与数据消息的流标识符相匹配的流标识符的记录。
当处理900(在910处)确定连接存储区存储有具有与接收到的数据消息的流标识符相匹配的流标识符的记录时,处理900然后(在 915处)执行该记录中指定的防火墙动作。在915之后,处理结束。当处理900(在910处)确定其先前没有处理过作为与接收到的数据消息相同的流的一部分的数据消息时(即,当它不能识别具有匹配的流标识符的记录时),处理900(在920处)检查MDM属性存储区 240以识别与接收到的数据消息相关联的MDM属性集。在一些实施例中,MDM属性存储区240基于流的标识符(例如,五元组标识符) 存储每个数据消息流的MDM属性集。因此,在这些实施例中,处理900通过使用消息的流标识符在MDM属性存储区240中寻找具有匹配的流标识符的记录,从而识别消息的相关联的MDM属性集。在一些实施例中,处理900联合地或替代地使用通过其接收到数据消息的隧道的标识符来在MDM属性存储区240中寻找记录。
接下来,在925处,处理900使用数据消息的识别出的MDM属性集和/或流标识符(例如,L2-L4值)来识别规则存储区235中的防火墙规则。在一些实施例中,规则存储区235具有包罗规则,该包罗规则与不和规则存储器中的任何其它规则相匹配的数据消息流相匹配。处理900然后(在930处)执行在925处识别出的规则的防火墙动作(允许或拒绝)。在930处,处理还在连接存储区中为数据消息的流创建记录。在930之后,处理结束。
图10示出在一些实施例中的规则处理器220的微分段处理1000。该处理将接收到的移动设备数据消息分配给由内部网络105的共享网络元件实现的逻辑网络。除了其在1015、1025和1030处执行的动作之外,处理1000与处理900类似。
在1015处,当处理1000(在910处)确定接收到的数据消息是先前评估的流的一部分时,微分段处理1000将该数据消息与它从其连接存储区中的先前创建的记录中识别出的逻辑网络标识符相关联。在一些实施例中,连接存储区记录还识别用于在隧道报头中将数据消息与LNI一起发送的隧道。在1015处,该处理还选择到与(由相关联的LNI识别出的)逻辑网络相关联的网络元件的隧道、利用隧道的报头来封装消息、将LNI插入到隧道报头中、以及将数据消息沿着隧道转发到网络元件。
在1025处,在该处理识别出用于不是先前评估的流的一部分的数据消息的MDM属性集之后,分段处理1000通过使用该处理在 920处识别出的用于数据消息的MDM属性集来在规则存储区700中识别用于该数据消息的逻辑网络标识符(例如,VNI和/或虚拟分布式路由器VDRI)。如以上提到的,在一些实施例中,对指定这个 LNI的记录的识别也可以基于接收到的数据消息的报头值。而且,如以上提到的,规则存储区700中的记录还指定可以用于与由该记录指定的LNI相关联的逻辑覆盖网络的一个或多个隧道的集合。
在1030处,处理1000然后选择由在1025处识别出的记录识别的隧道。该隧道是与和逻辑网络标识符相关联的逻辑网络相关联的网络元件。在1030处,处理1000将利用隧道的报头来封装消息、将在 1025处识别出的LNI插入隧道报头中、以及将数据消息转发到网络元件。在1030处,该处理还在连接存储区中为数据消息的流创建记录,并将LNI和隧道标识符与流的标识符一起存储在该记录中。
如以上提到的,在一些实施例中,VPN网关205是利用(1)与一个或多个其它VM一起在主机计算机上执行的VPN VM以及(2) VPN VM的相关联的服务模块来实现的。图11示出具有在多个主机 1105上执行的多个这样的VPN VM 1110和服务模块1120的数据中心1100。在该数据中心中,VPN VM不必在每个主机上执行,但是数据中心1100中的多个主机具有在它们上执行的VPN VM。
每个VPN VM 1110与一个或多个服务模块1120配对以实现 VPN网关,比如VPN网关205。在这个实现方案中,与VPN VM配对的服务模块充当规则处理器220。这个实现方案允许在多个主机计算机上建立多个VPN网关,从而允许建立分布式VPN网关体系架构。在该分布式体系架构中,多个VPN网关可以在多个主机计算机上工作以共享数据中心1100中的VPN流量负载。而且,在该分布式体系架构中,VPN网关不需要被放置在数据中心的入口物理边缘处,因为这些VPN网关可以分布在其它VM在其上执行的数据中心中的共享主机计算机之间。
如图11所示,每个主机计算机1105可以执行(1)一个或多个访客VM(GVM)1102(其为数据中心1100的一个或多个租户执行计算操作(例如,网络服务器、应用服务器、数据库服务器操作)),和/或(2)一个或多个服务VM 1104(SVM),其为由GVM 1102 发送或发送到GVM 1102的数据消息执行服务操作(例如,防火墙操作、负载均衡器操作等)。在一些实施例中,数据中心1100是企业的私有数据中心,并且其所有租户都属于一个实体(例如,一个公司)。在其它实施例中,数据中心是由许多不同的不相关租户使用的公共数据中心。
每个主机计算机1105还执行一个或多个软件转发元件1130,诸如软件交换机或软件路由器。软件转发元件(SFE)连接其主机计算机1105上的VM并将这些VM连接到主机外部的其它设备(例如,其它VM)。每个主机还执行一个或多个服务模块1120,该一个或多个服务模块1120执行一个或多个服务动作,诸如加密操作、逻辑分段操作、防火墙操作、负载均衡操作和/或其它中间盒服务操作。
在一些实施例中,一个或多个服务模块1120为相关联的VPN VM 1110充当MDM规则处理器220。这样的规则处理服务模块执行 VPN网关的基于MDM的处理操作(例如,源网络地址转换、防火墙操作等)。当这样的服务模块1120的相关联的VPN VM解封装移动设备数据消息时,这样的服务模块1120捕获这些消息并将它们引导到网络的内部网络元件(例如,将它们引导到由数据消息中的目的地元组识别出的目的地节点,或者将它们重定向到其它目的地节点)。如下面参考图12进一步描述的,一些实施例的服务模块1120是过滤器模块,其由VM的虚拟网络接口卡(VNIC)或连接到该VNIC的主机的SFE的端口调用。
服务模块1120基于存储在服务规则存储区1125中的服务规则来执行其服务操作。在一些实施例中,这些服务规则中的许多个服务规则包括按照MDM属性集定义的规则标识符。在一些实施例中,服务模块从其主机上的MDM属性数据存储区1135中检索用于数据消息流的MDM属性集,并且然后使用检索出的MDM属性集来在服务规则存储区1125中识别要处理的服务规则。
如图11所示,一个或多个代理1140在每个主机计算机1105上执行以与各种控制器(即,各种管理服务器)交互。这些控制器包括参考图1和2描述的网络控制器115和MDM控制器120。这些控制器还包括在主机上供给和部署GVM和/或SVM的VM管理控制器 1150。代理1140与这些控制器115、120和1150交互以供给和配置 GVM、SVM和服务模块。这些代理1140还与网络和MDM控制器 115和120交互以接收服务规则和MDM属性集。如图所示,数据中心的网络105通信地连接所有主机和控制器。
图12更详细地示出一些实施例的主机计算机1200的软件体系架构。这个更详细的视图示出服务模块被插入作为过滤器模块,该过滤器模块与在主机上执行的VM配对,以捕获去往和/或来自VM的数据消息。这些服务模块中的一个或多个用作VPN VM 1110的(一个或多个)规则处理器220,如下面进一步描述的那样。
像图11的主机1105一样,主机计算机1200包括(1)一个或多个GVM 1102,(2)一个或多个SVM 1104,(3)VPN VM 1110, (4)SFE 1130,(5)一个或多个服务模块1120,(6)代理1140,以及(7)MDM属性存储区1135。如所示出的,主机1200还包括主机级规则存储区1215、规则发布器1220、连接状态存储区1232、 MDM属性规则存储区1226和流报头规则存储区1227。规则存储区 1226和1227一起用作图11的服务规则存储区1125。
SFE 1130在主机1200上执行以通过主机的物理NIC(PNIC) 和在主机外部操作的一个或多个转发元件(例如,交换机和/或路由器)将主机的VM彼此以及与主机外部的其它VM(例如,其它主机上的其它VM)通信地耦合。如所示出的,SFE 1130包括连接到主机的PNIC(未示出)的端口1230。对于每个VM,SFE 1130还包括连接到VM的VNIC 1225的端口1235。在一些实施例中,VNIC 是由虚拟化软件(例如,由管理程序)实现的PNIC的软件抽象。每个VNIC 1225负责通过其对应的SFE端口1235在其VM和SFE 1130之间交换分组。如所示出的,用于VM的数据消息的VM的出口数据路径包括(1)VM的VNIC 1225,(2)连接到这个VNIC的SFE端口1235,(3)SFE 1130,和(4)连接到主机的PNIC的 SFE端口1230。VM的入口数据路径除了顺序相反(即,首先是端口1230,然后是SFE 1130,然后是端口1235,并且最后是VNIC1225)之外,其它是相同的。
在一些实施例中,SFE 1130是软件交换机,而在其它实施例中,它是软件路由器或组合软件交换机/路由器。SFE 1130在一些实施例中实现具有在多主机环境中的其它主机上执行的SFE的一个或多个逻辑转发元件(例如,逻辑交换机或逻辑路由器)。在一些实施例中,逻辑转发元件可以跨越多个主机以连接在不同主机上执行但属于一个逻辑网络的VM。换句话说,可以定义不同的逻辑转发元件来为不同的用户指定不同的逻辑网络,并且每个逻辑转发元件可以由多个主机上的多个SFE来定义。每个逻辑转发元件将一个逻辑网络的VM的流量与由另一个逻辑转发元件服务的另一个逻辑网络的VM隔离。逻辑转发元件可以连接在相同主机和/或不同主机上执行的VM。
通过其端口1230和NIC驱动器(未示出),SFE 1130连接到主机的PNIC以发送传出分组和接收传入分组。SFE 1130执行消息处理操作以将它在其端口之一上接收到的消息转发到其端口中的另一个。例如,在一些实施例中,SFE尝试使用数据消息中的报头值来将消息与基于流的规则匹配,并且在找到匹配时,执行由匹配的规则指定的动作(例如,将分组交给其端口1230或1235中的一个,该端口引导该分组被供应给目的地VM或PNIC)。在一些实施例中, SFE从数据消息中提取逻辑网络标识符(例如,VNI)和MAC地址。这些实施例中的SFE使用提取出的VNI来识别逻辑端口组,并且然后使用MAC地址来识别端口组内的端口。
在一些实施例中,SFE端口1235包括对一个或多个服务模块 1120的一个或多个功能调用,该一个或多个服务模块1120对在端口处接收到的传入和传出分组执行特殊的输入/输出(I/O)操作。这样的I/O操作的示例包括中间盒操作(例如,防火墙操作、负载均衡操作、DNAT操作、DNS重新路由操作等)、ARP代理操作、消息封装操作(例如,沿着隧道发送消息以实现覆盖逻辑网络操作所需的封装操作)等。通过实现这样的功能调用的栈,在一些实施例中,端口可以对传入和/或传出消息实现一连串的I/O操作。替代从端口1235 调用I/O运算符(包括服务模块1120),其它实施例从VM的 VNIC或从SFE的端口1230调用这些运算符。
服务模块1120的三种类型的服务操作特别地与由VPN VM 1110 传递的移动设备数据消息的基于MDM属性的处理相关。这些服务操作是:(1)在执行VPN VM的主机上执行的基于MDM属性的服务操作,(2)隧道封装操作,其在隧道的隧道报头中插入MDM属性集,使得MDM属性集可以在带内转发以将移动设备数据消息转发到其它服务节点,以及(3)由这些其它服务节点基于在带内传送的MDM属性集对数据消息执行的服务操作。
在一些实施例中,第一类型的服务操作涉及VPN VM 1110的服务模块1120对其从VPN VM的出口数据路径截获的数据消息执行基于MDM属性的服务操作。在这些实施例中的一些实施例中,多个服务模块1120可以与VPN VM相关联,并且这些服务模块可以对它们从VPN VM的出口数据路径截获的数据消息执行多个不同的基于 MDM属性的服务操作。在这种情况下,连接到VPN VM的VNIC 1225的SFE端口1235在它逐步通过功能调用列表时调用MDM属性处理服务模块,其中SFE端口1235为它从VPN VM接收到的数据消息处理该功能调用列表。
对于新数据流的数据消息,VPN VM 1110的服务模块1120通过初始地从属性存储区1135检索该消息的MDM属性集来执行基于 MDM属性的服务处理。在一些实施例中,(例如,作为认证处理的一部分)VPN VM 1110在从远程设备和/或从MDM服务器在带内获得MDM属性数据之后将该MDM属性集中的一些或全部存储在存储区1135中。联合地或替代地,作为认证处理的一部分,代理1140 在从MDM服务器(在带外(out-of-band,OOB))获得该数据时,将MDM属性集中的一些或全部存储在MDM存储区1135中。
一些实施例基于消息流报头值将MDM属性集存储在MDM属性存储区1135中。相应地,在这些实施例中,服务模块1120通过使用消息的流报头值来从存储区1135中检索消息的MDM属性集,以识别具有一组匹配的流值的MDM属性集。在检索到消息的MDM 属性集之后,VPN VM的服务模块1120使用这个属性集和/或消息的流报头值(例如,L2-L7参数)来识别规则存储区1226/1227中的用于处理数据消息的服务规则。在一些实施例中,存储区1226和1227 两者仅存储服务规则的一个拷贝(copy),但是它们使用不同的索引结构来快速识别与数据消息的流报头值和MDM属性值相匹配的规则。一些实施例为流报头值使用基数树索引(radix tree index)结构并且为MDM属性使用MDM属性树结构。下面进一步描述这些结构。
服务模块1120然后基于识别出的服务规则对消息执行服务,然后连接状态存储区1232中创建该服务规则和/或它执行的操作的记录。服务模块1120然后可以使用连接存储区中的这个记录来处理作为相同数据消息流的一部分的其它数据消息。当服务操作不需要丢弃数据消息时,服务模块1120然后将数据消息返回到VPN VM的相关联的 SFE端口1235,使得数据消息可以由下一个服务模块1120处理,或者它可以由SFE 1130转发到其目的地。
如所示出的,服务规则由发布器1220分发到规则存储区1226和 1227。在一些实施例中,代理1140从网络控制器接收基于流的规则和基于MDM属性的规则,并将这些规则存储在主机级规则存储区 1215中。在一些实施例中,发布器1220然后将这些规则存储到基于MDM属性的规则存储区1226和基于流的规则存储区1227中的不同的表。其它实施例为不同的服务模块指定不同的规则存储区1226和 1227(以及连接状态存储区1232)。在这些实施例中,发布器1220 将用于服务模块1120的服务规则集分发到该服务模块的相应的基于MDM属性的规则存储区1226和基于流的规则存储区1227。
与基于MDM属性的处理相关的两种其它类型的服务操作针对如下实施例,即,将数据消息的相关联的MDM属性在带内转发到另一个服务节点(例如,另一个主机上的SVM或服务模块,或独立的服务装置)以让其它服务节点执行对该数据消息的基于MDM属性的处理。在这样的实施例中,第二类型的服务操作涉及VPN VM 1110的服务模块1120利用主机1200的SFE 1130和服务节点之间的隧道的隧道报头来封装数据消息,其中该服务节点将执行对该数据消息的基于MDM的处理或者将把数据消息转发到将执行基于MDM 的处理的服务节点。在封装数据消息时,服务模块1120将数据消息的MDM属性集插入到隧道的报头中。在一些实施例中,隧道是可以具有可变长度报头的Geneve隧道或VXLAN隧道。
当MDM属性被发送到执行另一个主机的服务模块时,在一些实施例中,隧道位于两个主机的SFE之间。而且,在一些实施例中,数据消息及其MDM属性的识别出的目的地不是服务模块,而是服务模块的相关联的VM。尽管如此,服务模块在允许数据通过其VM 之前,基于接收到的数据消息的MDM属性来执行其服务操作。
当服务节点沿着隧道接收到数据消息及其MDM属性集时,服务节点解封装隧道报头、从隧道报头中解析MDM属性集、并且在一些实施例中存储MDM属性集(例如,存储在MDM属性存储区 1135中)。在一些实施例中,与数据消息的目的地节点(例如,目的地GVM)相关联的服务模块1120(1)通过截获沿着目的地节点的入口数据路径的数据消息来执行解封装操作,以及(2)执行存储操作以将从隧道报头中检索到的MDM属性存储在MDM属性存储区中。在一些实施例中,这个解封装服务模块由执行目的地节点的主机的SFE的端口1230或1235调用。
目的地节点的入口数据路径中的这个解封装服务模块或另一个服务模块然后执行对远程设备数据消息的第三种类型的基于MDM属性的处理。具体而言,这个服务模块从隧道报头解封装之后存储属性集的存储区1135中检索消息的MDM属性集,并且然后使用这个属性集和/或流报头值来识别规则存储区1226/1227中用于处理数据消息的服务规则。
在一些实施例中,在处理流的一个数据消息之后,该服务模块 1120在连接存储区1232中存储要对数据消息流执行的服务规则和/或操作。对于该流的后续数据消息,服务模块1120然后使用这个服务规则和/或操作,而不是针对要执行的服务规则搜索规则数据存储区 1226和1227。
类似地,在一些实施例中,封装服务模块和解封装服务模块不针对数据消息流中的每个数据消息来插入和/或解析用于该流的MDM 属性集。例如,在一些实施例中,这些模块仅对流中的第一个数据消息或前几个数据消息执行这些操作。这是因为在一些实施例中,用于远程数据消息流的MDM属性集不能在流的中间改变。在其它实施例中,MDM属性集可以在流的中间改变。因此,在这些实施例中,封装和/或解封装服务模块重复地、周期性地或偶尔地插入和/或解析用于数据消息流MDM属性集。在这些实施例中,解封装服务模块可能并不总是依赖于先前在连接存储区1232中为数据消息流创建的记录,因为它可能必须基于用于数据消息流的新的MDM属性集来对记录进行更新。
不同的实施例使用基于MDM属性的服务处理的不同组合。一些实施例仅在与VPNVM相同的主机上执行的(一个或多个)服务模块处执行基于MDM属性的服务处理,并且捕获沿着VPN VM的出口数据路径的数据消息。其它实施例仅对如下的服务节点执行基于 MDM属性的服务处理,即,该服务节点在通过隧道连接到VPN VM 的主机的设备上执行并且通过该隧道从VPN VM的服务模块在带内接收MDM属性集。还有的其它实施例在VPN VM的服务模块处执行一些基于MDM属性的服务处理,同时基于由该VPN VM的服务模块在带内传递的MDM属性集在分开的设备上执行基于其它基于 MDM属性的服务处理。
而且,在一些实施例中,在与VPN VM相同或不同的主机上执行的SVM 1104基于该VPN VM传递到网络的数据消息的MDM属性集来执行基于MDM属性的服务处理。在这些实施例中的一些实施例中,SVM 1104具有对MDM属性存储区1135的直接访问或间接访问(例如,通过API),或者这个存储区1135中的记录与SVM 1104的存储区的记录是同步的。
现在将参考图13-图24描述执行基于MDM属性的服务操作的若干示例。图13-图20示出第一组示例,其中服务操作由VPN VM 的服务模块执行。图21-图24示出第二组示例,其中服务操作由不在执行VPN VM的主机上的服务节点执行。在第二组示例中,VPN VM的服务模块在带内将MDM属性集转发到服务节点(即,在它们将由VPN VM输出的数据消息转发到服务节点时,将MDM属性集封装在隧道报头中)。
图13示出VPN VM的服务模块基于与移动设备相关联的位置执行DNAT操作的两种不同的方式。这个示例中的两个移动设备1302 和1304是一个实体(例如,一个公司)的一部分,但是与两个不同区域(例如,两个不同国家,诸如美国和德国)中的办公室相关联。而且,在这个示例中,数据中心1300与第一移动设备1302的第一区域相关联,并且两个移动设备在它们访问数据中心1300时都位于第一区域中。
为了监管、安全性或其它原因,第二移动设备1304不应当访问数据中心1300中的与第一移动设备1302相同的数据计算节点 (DCN)的集群。因此,一旦VPN VM 1110建立与移动设备的 VPN连接,VPN VM 1110就允许来自移动设备的数据消息向前传递到由数据消息的目的地元组识别出的DCN。在这个示例中,数据消息的目的地IP地址是与DCN集群(例如,web服务器集群或应用服务器集群)相关联的虚拟IP(VIP)地址。
VPN VM的服务模块1320从VPN VM的出口数据路径截获数据消息。当它初始地截获来自第一移动设备1302的数据消息时, DNAT服务模块1320从MDM属性数据存储区1135(未示出)中检索与这个数据消息相关联的MDM属性集。在一些实施例中,服务模块通过使用数据消息流报头值来检索MDM属性集。
服务模块1320然后使用这个MDM属性集来识别MDM属性规则存储区1226(未示出)中具有与检索到的MDM属性集相匹配的规则标识符的DNAT规则。这个规则指定不需要对第一移动设备 1302的数据消息执行DNAT操作。这是因为第一移动设备1302可以访问第一区域中用于与第一区域相关联的移动设备的DCN服务器集群1325。因此,服务模块1320不执行DNAT操作来重新路由数据消息,并且允许来自第一移动设备的数据消息传递到DCN服务器集群 1325。服务模块1320还在其连接存储区中创建这个操作的记录,使得它可以使用这个记录来快速处理来自第一移动设备的作为相同流的一部分的后续消息。
当DNAT服务模块1320初始地截获来自第二移动设备1304的数据消息时,这个服务模块再次从MDM属性数据存储区1135(未示出)中检索与这个数据消息相关联的MDM属性集,并且然后使用这个MDM属性集来识别MDM属性规则存储区1226(未示出) 中的DNAT规则。但是,这次,识别出的规则指定需要对第二移动设备1304的数据消息执行DNAT操作,以便将它们重新路由到第一区域中的DCN服务器集群1330,该DCN服务器集群1330已经与该区域中的其它DCN服务器集群和其它资源隔离,专门用于由访问第一区域中的数据中心资源的第二区域移动设备的安全、专门的使用。在一些实施例中,通过各种防火墙装置和/或其它安全性设备将隔离的DCN服务器集群1330相对于数据中心1300中的其它资源保护起来。
为了将第二移动设备的数据消息重新路由到隔离的DCN服务器集群1330,在一些实施例中,DNAT服务模块1320在数据消息的目的地IP地址字段中利用第二DCN服务器集群1330的VIP替换第一 DCN服务器集群1325的VIP。服务模块1320还在其连接存储区中创建这个操作的记录,使得它可以使用这个记录来快速处理来自第二移动设备1304的作为相同流的一部分的后续消息。
一些实施例将第二移动设备1304的数据消息重新路由到第二区域或另一个区域中的DCN服务器集群,而不是将该数据消息重新路由到第一区域的数据中心1300中的第二DCN服务器集群1330。图 14示出一个这样的示例。具体而言,这个图示出执行基于MDM属性的DNAT操作的VPN VM的服务模块1420,该服务模块1420将第二移动设备1304的数据消息重新路由出数据中心1400到用于访问第一区域中的数据中心DCN集群1325的第二区域移动设备的DCN 服务器集群1430。在一些实施例中,DCN服务器集群1430位于第二区域中,而在其它实施例中,DCN服务器集群1430位于另一个区域中。在一些实施例中,DNAT重新路由操作使用隧道将第二移动设备的数据消息从数据中心1300转发到DCN服务器集群1430。
图15和图16示出基于MDM属性的重新路由操作的两个其它示例。在这些示例中,重新路由操作重定向DNS名称查询。图15示出 VPN VM的服务模块,该VPN VM的服务模块基于发送移动设备数据消息的移动设备的相关联区域,将需要DNS查找的这些数据消息重定向到两个不同的DNS服务器。如前所述,这个示例中的两个移动设备1302和1304与两个不同的区域(例如,两个不同的国家,诸如美国和德国)相关联,但是当它们访问数据中心1500时都位于第一区域中,其中数据中心1500与第一移动设备1302的第一区域相关联(例如,在第一区域中)。而且,在这个示例中,出于监管、安全性或其它原因,与第二区域相关联的第二移动设备1304必须访问与和第一区域相关联的第一移动设备1302不同的DNS服务器。
一旦VPN VM 1110建立与移动设备的VPN连接,VPN VM 1110就接收DNS名称查询,它允许该DNS名称查询传递到数据中心的默认DNS服务器1525。VPN VM的服务模块1520截获用于移动设备1302和1304两者的DNS名称查询。在一些实施例中,服务模块1520基于数据消息的目的地元组(例如,目的地端口)确定数据消息是DNS相关联的消息。在其它实施例中,VPN VM或服务模块对消息执行软终止,使得它可以检查分组以识别分组内部的DNA 名称查询。
当服务模块1520初始地截获来自第一移动设备1302的数据消息时,服务模块1520从MDM属性数据存储区1135(未示出)中检索与这个数据消息相关联的MDM属性集。在一些实施例中,服务模块通过使用数据消息流报头值来检索MDM属性集。服务模块1520 然后使用这个MDM属性集来识别MDM属性规则存储区1226(未示出)中具有与检索到的MDM属性集相匹配的规则标识符的DNS 规则。这个规则指定不需要为第一移动设备1302的数据消息执行DNS重新路由操作。这是因为第一移动设备1302与第一区域相关联并且可以访问第一区域的DNS服务器1525。因此,服务模块1520 允许来自第一移动设备1302的数据消息不加改变地传递到DNS服务器1525。
当服务模块1520初始地截获来自第二移动设备1304的数据消息时,这个服务模块1520再次从MDM属性数据存储区1135(未示出) 中检索与这个数据消息相关联的MDM属性集,并且然后使用这个 MDM属性集来识别MDM属性规则存储区1226(未示出)中的 DNS规则。但是,这次,识别出的规则指定需要为第二移动设备 1304的DNS名称查询执行DNS重新路由操作,以便将它们重新路由到第一区域中的用于访问第一区域的数据中心1500的第二区域移动设备的DNS服务器1530。
在一些实施例中,第二区域的DNS服务器1530可以与第一区域的DNS服务器1525不同地解析一个或多个DNS名称查询,以便符合针对第二区域移动设备的监管、安全性或其它标准。为了重新路由第二移动设备的DNS名称查询,在一些实施例中,服务模块1520将 DNS名称查询消息中的目的地IP地址从DNS服务器1525的目的地 IP地址替换为DNS服务器1530的目的地IP地址。
不是将第二移动设备1304的DNS名称查询重新路由到第一区域的数据中心1500中的第二DNS服务器1530,一些实施例而是将这个数据消息重新路由到第二区域或另一个区域中的DNS服务器。图 16示出一个这样的示例。具体而言,这个图示出执行基于MDM属性的DNS操作的VPN VM的服务模块1620,服务模块1620将第二移动设备1304的DNS名称查询重新路由出数据中心1600到用于访问第一区域中的数据中心DNS服务器的第二区域移动设备的DNS服务器1630。在一些实施例中,DNS服务器1630位于第二区域中,而在其它实施例中,DNS服务器1630位于另一个区域中。在一些实施例中,DNS重新路由操作使用隧道将第二移动设备的数据消息从数据中心1600转发到DNS服务器1630。
网络微分段是一些实施例的VPN网关基于与通过隧道接收到的移动设备数据消息相关联的MDM属性集而执行的另一个处理操作的示例。一些实施例在网络的网络元件(例如,转发元件、中间盒元件等)的共享集合上实现多个逻辑网络。在一些实施例中,每个逻辑网络被实现为与底层物理拓扑解耦的覆盖网络。在一些实施例中,覆盖网络是通过使用逻辑网络标识符(例如,虚拟网络标识符VNI) 并且通过使用网络中受管理的网络元件之间的隧道来创建的。
为了示出逻辑网络构造的概念,图17示出逻辑覆盖网络1705、 1710和1715的示例,这些逻辑覆盖网络被定义为(1)跨在主机的共享集合1730上执行的软件转发元件1720和服务模块1725的共享集合以及(2)跨多个独立的共享转发元件1735和共享中间盒元件(或服务装置)1740。具体而言,这个图示出在若干个主机1730上执行的多个GVM,其中该若干个主机1730分别执行软件转发元件 1720和服务模块1725。
共享的软件转发元件1720和独立的共享转发元件1735(例如,架顶式交换机(TOR))可以实现任意数量的逻辑交换机1750和逻辑路由器1755。如所示出的,一个逻辑网络(例如,网络1715)可以具有多个逻辑交换机和/或逻辑路由器,而另一个逻辑网络(例如,网络1705)可以仅具有一个逻辑转发元件(例如,逻辑交换机)。一个逻辑转发元件可以通信地连接在不同主机上的VM。例如,图 17示出连接在主机1730a和1730b上执行的GVM 1和GVM2的逻辑交换机1750a,而逻辑交换机1750b连接在这两个主机上执行的 GVMn和GVMx。
一个逻辑网络的一个或多个逻辑转发元件将其网络的VM(即,它们互连的GVM和SVM)之间的数据消息通信与另一个逻辑网络的VM之间的数据消息通信隔离。在一些实施例中,这种隔离通过将逻辑网络标识符(LNI)与在逻辑网络的VM之间传送的数据消息相关联来实现。在这些实施例中的一些实施例中,这样的LNI被插入在共享网络元件(例如,主机、独立服务装置、独立转发元件等) 之间建立的隧道的隧道报头中。
在管理程序中,软件交换机有时被称为虚拟交换机,因为它们是软件并且它们向VM提供对主机的(一个或多个)PNIC的共享访问。但是,在本文档中,软件交换机被称为物理交换机,因为它们是物理世界中的物品。这个术语还将软件交换机与逻辑交换机区分开来,逻辑交换机是由软件交换机提供的连接类型的抽象。存在用于从软件交换机创建逻辑交换机的各种机制。VXLAN提供了用于创建这种逻辑交换机的一种方式。VXLAN标准在Mahalingam,Mallik;Dutt, Dinesh G.等人的(2013-05-08),VXLAN:A Framework forOverlaying Virtualized Layer 2Networks over Layer 3Networks, IETF中描述。
如还示出的,主机服务模块1725和独立服务装置1740还可以实现用于在逻辑网络中提供任意数量的服务的任意数量的逻辑分布式中间盒1770。这样的服务的例子包括防火墙服务、负载均衡服务、 DNAT服务等。如所示出的,一个逻辑网络(例如,网络1715)可以实现多个分布式中间盒服务元件1770,而另一个逻辑网络(例如,网络1705)可以实现仅一个分布式中间盒服务元件。
图18-图20呈现了三个示例,其示出一些实施例的VPN网关基于数据消息的MDM属性集将不同的移动设备数据消息与不同的逻辑网络相关联的三种不同的方式。图18示出VPN网关205,其将来自第一租户的第一移动设备1802的数据消息与第一逻辑网络1810的第一逻辑网络标识符(LNI1)相关联,并将来自第二租户的第二移动设备1804的数据消息与第二逻辑网络1815的第二逻辑网络标识符 (LNI2)相关联。
第一逻辑网络1810连接第一租户的GVM,而第二逻辑网络 1815连接第二租户的GVM。如所示出的,逻辑网络1810包括在数据中心的共享计算、转发和服务架构上实现的逻辑交换机1825和分布式中间盒元件1830,而逻辑网络1815包括在数据中心的共享计算、转发和服务架构上实现的两个逻辑交换机1835和1840、一个逻辑路由器1845和两个分布式中间盒元件1850和1855。每个逻辑网络将从其GVM发送的和发送到其GVM的数据消息与其它逻辑网络的 VM隔离。
VPN网关205基于数据消息的MDM属性集将移动设备数据消息与逻辑网络相关联。例如,在一些实施例中,VPN网关205由在相同主机上执行的VPN VM及其相关联的服务模块来实现。一旦 VPN VM建立与移动设备的VPN连接,VPN VM就允许来自移动设备的数据消息传递到数据中心中的其寻址的目的地。VPN VM的服务模块从VPN VM的出口数据路径截获数据消息。
当服务模块截获来自移动设备的初始数据消息时,服务模块从 MDM属性数据存储区240中检索与这个数据消息相关联的MDM属性集。在一些实施例中,服务模块通过使用数据消息流报头值来检索 MDM属性集。服务模块然后使用这个MDM属性集来识别MDM属性规则存储区235中具有与检索到的MDM属性集匹配的规则标识符的LS(逻辑分段)规则。
在图18所示的示例中,每个LS规则指定包括租户标识符的规则标识符。该规则还指定用于来自与租户标识符相关联的移动设备的数据消息的LNI。因此,在一些实施例中,由于检索到的MDM属性集包括租户标识符,因此服务模块使用租户标识符来识别指定用于来自特定租户的移动设备的数据消息的LNI的LS规则。然后,服务模块将识别出的LNI(例如,用于来自租户1的移动设备的数据消息的LNI1和用于来自租户2的移动设备的数据消息的LNI2)插入到隧道的隧道报头中,其中VPN网关205使用该隧道将数据消息转发到与逻辑网络相关联的转发元件或中间盒元件。
在一些实施例中,识别出的LS规则还指定隧道标识符,该隧道标识符识别用于转发移动设备的数据消息的隧道。在一些实施例中,只要每个数据消息的隧道报头包括该消息的相关联的LNI,不同租户的数据消息就可以沿着相同的隧道被发送。在其它实施例中,即使在不同租户的数据消息正穿越相同的两个设备之间时,不同租户的数据消息也必须沿着不同的隧道被发送。
在识别用于来自移动设备的数据消息的LNI之后,服务模块在其连接存储区中创建记录以存储该LNI以用于来自移动设备的后续数据消息。在这个记录中,服务模块存储数据消息流属性(例如,报头值)和/或检索到的MDM属性集,使得它以后可以使用该存储的数据来识别这个记录以用于来自移动设备的具有匹配的流和/或 MDM属性的后续数据消息。连接存储记录允许服务模块快速处理来自移动设备的作为相同流的一部分的后续消息。
图19示出将来自同一租户的两个移动设备1902和1904的数据消息关联到两个不同的逻辑网络1910和1915的VPN网关205。VPN网关205可以通过依赖于不仅仅是与移动设备数据消息相关联的检索到的MDM属性集中的租户标识符来这样做。例如,在一些实施例中,MDM属性规则存储区235中的LS规则的规则标识符不仅是按照租户标识符来定义的,而且还根据可以用于区分租户的不同移动设备的一个或多个其它MDM属性来定义。其它这样的MDM属性的示例包括用户标识符、组标识符、部门标识符、移动设备的越狱状态、位置标识符等。不同的LS规则可以通过也使用LS规则的规则标识符中的这些其它属性(用户标识符、组标识符、部门标识符、移动设备的越狱状态、位置标识符等)中的任何一个来为同一租户标识符指定不同的LNI。
越狱设备是已经对其执行越狱处理的设备。越狱是消除设备上由设备的操作系统(OS)强加的软件或硬件限制的处理。这些限制可以限制在设备上执行的软件,或者可以出于其它安全性原因而定义。在一些情况下,设备限制由在设备上执行的数字版权管理(DRM)层来定义。在这样的设备中,越狱是绕过DRM限制以允许加载未授权的软件并对OS进行其它改变的黑客入侵(hacking)处理。在一些实施例中,越狱允许对OS文件系统和管理器的根访问,从而允许下载未经授权的应用和扩展。在一些情况下,越狱涉及安装一组内核补丁(其中内核是OS的监督程序(supervisor)),以允许执行未签名的代码。它还提供以其他方式不可用的根级访问。如这里所使用的,根级访问是指具有对所有文件不受限制的权限和许可的超级用户访问级别。
通过使用设备的越狱状态,LS规则可以指示VPN网关205将来自租户的越狱的第一移动设备1902的数据消息关联到第一逻辑网络 1910,同时将来自租户的未被越狱的第二移动设备1904的数据消息关联到第二逻辑网络1915。在一些实施例中,由于越狱设备被视为不太安全的设备,因此第一逻辑网络可以访问比第二逻辑网络更少的资源。这种方法将允许越狱设备能够远程访问一些资源,同时与它们不应该能够访问的其它资源隔离。
类似地,通过使用组标识符或部门标识符,LS规则可以指示 VPN网关205将来自与第一用户组(例如,主管人员)相关联的租户的第一移动设备1902的数据消息与第一逻辑网络1910相关联,而将来自与第二用户组(例如,员工)相关联的租户的第二移动设备 1904的数据消息与第二逻辑网络1915相关联。将不同的组置于不同的逻辑网络上允许对资源的远程访问被隔离,使得一组用户(例如,主管人员)比另一组用户(例如,员工)对资源中的一些具有更大访问权限。
图20示出将来自同一移动设备2002的两个不同数据消息流关联到两个不同逻辑网络2010和2015的VPN网关205。VPN网关205 可以通过依赖于将来自移动设备2002的一个数据消息流与来自该移动设备的另一个数据消息流区分开的MDM属性和/或基于流的报头值来这样做。例如,在一些实施例中,MDM属性规则存储区1226 中的LS规则的规则标识符不仅按照租户标识符来定义,而且还按照应用标识符来定义,其中应用标识符识别正在尝试进行远程访问的移动设备应用。通过使用应用标识符,LS规则可以指示VPN网关205 将来自第一应用(例如,浏览器应用)的数据消息引导到第一逻辑网络2010,而将来自第二应用(例如,本地企业应用)的数据消息引导到第二逻辑网络2015。
图13-图20中所示的示例仅仅是VPN网关205可以基于MDM 属性指定的服务规则执行的服务操作类型的几个示例。普通技术人员将认识到的是,一些实施例的VPN网关可以执行基于MDM属性的服务操作的许多其它示例。这些其它示例包括防火墙操作、负载均衡操作、其它中间盒服务操作等。
在一些实施例中,VPN网关将MDM属性集(VPN网关将该 MDM属性集与远程设备的数据消息相关联)传递给网络内的一个或多个网络元件,使得这些元件可以基于MDM属性集执行一个或多个操作。图21-图24示出若干这样的示例,其中VPN网关将MDM 属性在带内转发到服务节点。在这些示例中,在VPN网关将远程设备数据消息转发到服务节点以进行处理时,VPN网关将MDM属性集封装在隧道报头中。在这些实施例中的一些实施例中,隧道是可以具有可变长度的隧道报头的Geneve隧道,该可变长度的隧道报头允许不同量的MDM属性沿着不同隧道被转发。
图21示出VPN网关2105的示例,VPN网关2105将来自两个不同的移动设备2102和2104的数据消息连同用于这些数据消息的 MDM属性集一起转发到两个不同的内部服务节点2150和2155,使得服务节点可以基于这些MDM属性集处理这些数据消息。在这个示例中,VPN网关2105由VPN VM 1110及其相关联的服务模块 2120来实现,其中VPN VM 1110及其相关联的服务模块2120与其它VM一起在主机计算机上执行。
通过两个VPN隧道2112和2114,VPN VM 1110从第一移动设备2102和第二移动设备2104接收两个不同的数据消息流。如所示出的,每个隧道2112或2114的报头包括该设备2102或2104发送到 VPN网关2105的MDM属性集。在解封装VPN隧道报头时,VPN VM将来自移动设备的MDM属性集存储在MDM属性存储区(未示出)中。这个存储区还存储MDM服务器在认证VPN连接会话之后为数据消息流提供的MDM属性。
一旦VPN VM 1110传递从移动设备接收到的数据消息,这个 VM的相关联的服务模块2120就从MDM属性存储区中检索用于该数据消息的MDM属性集。在一些实施例中,检索到的MDM属性集包括从移动设备接收到的(一个或多个)MDM属性和从MDM服务器接收到的(一个或多个)MDM属性。服务模块2120然后利用新的隧道报头(例如,Geneve隧道报头)封装数据消息、将检索到的MDM属性集插入到隧道报头中、并且将经封装的数据消息沿着其隧道发送到与该隧道连接的服务节点。
图21示出服务模块2120将来自第一移动设备2102的数据消息 (例如,数据分组)沿着隧道2140转发到独立中间盒装置2150,而将来自第二移动设备2104的数据消息转发到(在主机2160上执行的) 服务模块2155。这个图示出第一移动设备的数据消息在VPN隧道2112的报头中被接收到时具有的一个MDM属性集,但是这个数据消息在隧道2140的报头中被发送到中间盒2150时具有另一个MDM 属性集。类似地,这个图示出了第二移动设备的数据消息在VPN隧道2114的报头中被接收到时具有一个MDM属性集,但是这个数据消息在隧道2145的报头中被发送到服务模块2155时具有另一个 MDM属性集。这是因为服务模块2120可能不会转发移动设备发送的所有MDM属性。而且,服务模块2120可能将由MDM服务器提供的附加MDM属性转发到服务节点。
如所示出的,服务节点2150和2155两者包括规则处理器2170 和2175,其使用在隧道2140和2145的报头中提供的MDM属性集来识别其MDM规则存储区2180和2185中的基于MDM属性的规则。在识别匹配的规则之后,每个服务节点2150或2155然后对接收到的数据消息执行由服务规则指定的服务操作。这样的操作的示例包括基于MDM属性的防火墙操作、DNS操作、DNAT操作和/或其它中间盒操作或转发操作。
在一些实施例中,服务模块2120必须检查其自己的规则数据存储区,以便确定它应该选择哪个服务节点或服务节点集群来处理数据消息。而且,在一些实施例中,这个服务模块2120执行负载均衡操作以在服务节点集群中的若干个可能的服务节点当中进行选择,以对来自移动设备的数据消息流执行服务操作。在这些实施例中的一些实施例中,服务节点的规则数据存储区和/或其负载均衡操作可以基于移动设备数据消息的MDM属性。
图22示出一个这样的示例。这个图示出两个VPN网关2202和 2204的服务模块2220,其跨服务节点集群2255中的若干个中间盒服务节点2250分发用于不同移动设备数据消息流的服务操作。基于数据消息流的报头值,每个服务模块2220从MDM属性存储区1125中检索用于该数据消息流的MDM属性集。
基于检索到的MDM属性集,服务模块2220识别其基于MDM 属性的规则数据存储区1226中的服务规则。在一些实施例中,这个服务规则识别去往执行一种类型的服务操作(例如,防火墙操作)的服务节点集群的隧道集合。在一些实施例中,识别出的服务规则还指定用于指定服务模块2220应该如何在服务节点集群2255的服务节点之间分发移动设备数据消息流的一组负载均衡标准。这种负载均衡标准的示例包括控制服务模块2220如何对新数据消息流执行服务节点的加权循环选择的一组权重值。
在一些实施例中,识别出的服务规则不指定一组负载均衡标准。例如,在一些实施例中,服务模块2220被配置为具有一组负载均衡标准,服务模块2220将该组负载均衡标准用于其执行的任何负载均衡操作以在任何服务节点集群的服务节点之间分发负载。不管如何定义负载均衡标准,服务模块2220都使用该标准来选择集群2255中的服务节点2250用于新的移动设备数据消息流,并且然后它使用这个选定的服务节点的隧道将这个流中的数据消息转发到选定的服务节点。在转发数据消息时,服务模块2220将其从MDM属性存储区1125检索到的用于数据消息流的MDM属性数据集转发。
一些实施例的VPN网关(1)分析与数据消息流相关联的MDM 属性集,(2)基于这个分析,识别一个或多个服务标签,以及(3) 利用数据消息流将识别出的(一个或多个)服务标签在带内转发到网络元件,而不是将MDM属性在带内转发到数据中心内部的网络元件(例如,服务节点和/或转发元件)。图23示出一个这样的VPN 网关2305。
VPN网关2305类似于VPN网关2105,除了VPN网关2305的服务模块2320基于与流相关联的MDM属性集来识别用于数据消息流的服务标签,并且分别沿着隧道2340和2345将识别出的服务标签在带内转发到中间盒服务装置2350和服务模块2355之外。服务装置 2350和服务模块2355然后使用它们接收到的服务标签来识别其服务标签规则存储区2380和2385中的服务规则。在一些实施例中,这些服务规则中的每一个具有(1)可以指定服务标签的规则标识符,以及(2)服务动作,该服务动作指定要对具有匹配的服务标签的数据消息执行的服务操作。因此,在接收到具有服务标签的新数据消息之后,服务节点2350或2355使用服务标签来识别其规则存储区2380 或2385中的具有匹配的规则标识符的服务规则。一旦它找到匹配的规则,服务节点2350或2355然后就对数据消息执行匹配的规则的服务动作。
这种服务标签方法允许服务模块2320将若干不同的MDM属性集映射到相同的服务标签,以便减少服务节点必须在下游处理的服务规则的数量。这是因为若干个不同的MDM属性集可以指示相同的条件。因此,将较大数量的MDM属性集映射到较少数量的服务标签可以简化下游的服务规则处理。
例如,在一些实施例中,服务标签是安全性标签,其可以针对不同的数据消息流来量化不同的安全性风险评估。在这些实施例中,不同的MDM属性集可能被视为表现出相同的安全性风险级别。例如,从越狱设备访问数据中心可能被视为与从特定国家访问数据中心有一样风险的活动。在这种情况下,服务模块2320可以通过分析数据消息流的MDM属性集将数据消息流与高风险服务标签相关联。然后,服务节点2350和2355可以基于高风险服务标签对这些数据消息流执行服务操作。这样的操作的示例包括基于MDM属性的逻辑分段操作、防火墙操作、DNS操作、DNAT操作和/或其它中间盒操作或转发操作。
图24示出服务节点基于VPN网关在分析与数据消息流相关联的 MDM属性集之后分配的服务标签对两个移动设备数据消息流执行的负载均衡操作的示例。VPN网关2400包括服务模块2420,服务模块 2420基于数据消息流的报头值从MDM属性存储区1125中检索用于数据消息流的MDM属性集。对于每个数据消息流,服务模块2420 使用这个流的检索到的MDM属性集来识别其基于MDM属性的规则数据存储区1226中的服务规则。在一些实施例中,这个服务规则识别要与数据消息流相关联的服务标签和去往负载均衡服务节点 2450的隧道。
服务模块2420将用于每个流的数据消息沿着识别出的隧道转发到负载均衡器2450。对于每个流的数据消息中的一些或全部数据消息,服务模块2420将它为该流识别出的服务标签包括在隧道报头中。因此,如所示出的,服务模块2420向负载均衡器2450发送(1)用于来自第一移动设备2402的数据消息中的一些或全部数据消息的服务标签1,以及(2)用于来自第二移动设备2404的数据消息中的一些或全部数据消息的服务标签2。作为示例,服务标签1可能是高风险安全性标签,因为移动设备1是越狱设备,而服务标签2可能是低风险安全性标签,因为移动设备2不是越狱设备。通过评估与数据消息流相关联的风险因素,安全性标签实际上正在评估数据消息流从其发出的移动设备或应用的可信度。服务模块2420可以从量化三个或更多个级别的设备和/或应用可信度的更大的服务标签组中指定服务标签,而不是仅仅是两个信任因素(即,高风险和低风险)。
负载均衡器2450具有负载均衡规则处理器2455,负载均衡规则处理器2455使用其接收到的用于数据消息流的服务标签来识别DCN 集群并在识别出的集群中挑选一个DCN用于接收数据消息流。如所示出的,规则处理器2455使用服务标签来识别服务标签规则存储区 2460中的规则。然后,识别出的规则(1)识别要使用的DCN集群 (例如,识别该集群中的DCN或者在另一个存储区中识别识别该集群中的DCN的DCN记录)和(2)一组负载均衡标准(例如,用于执行加权循环负载均衡操作的一组权重值)。
在一些实施例中,识别出的服务规则不指定一组负载均衡标准 (例如,该组负载均衡标准可以被预先配置)。无论如何定义负载均衡标准,规则处理器2455都使用该标准来选择DCN集群中用于新的移动设备数据消息流的DCN,并且然后它将这个流中的数据消息转发到选定的DCN。这个示例中的两个DCN集群2480和2485与两个服务标签相关联。例如,一个DCN集群2480可以与高风险数据消息相关联,而另一个DCN集群2485可以与低风险数据消息相关联。高风险集群2480中的DCN可能提供更有限的一组功能(例如,数据访问功能等)。
在一些实施例中,基于MDM属性将服务标签与移动设备数据消息相关联的服务节点在VPN网关在其上操作的设备的外部操作。而且,普通技术人员将认识到的是,其它实施例可以使用除了以上描述的那些之外的其它类型的服务标签。例如,在一些实施例中,服务标签可以识别设备是否正在从另一个国家访问数据中心(例如,可以识别设备的位置)。在一些实施例中,服务标签与MDM属性集没有重叠,而在其它实施例中,服务标签可以与MDM属性集具有一些重叠,只要它们还包含不在MDM属性集中的属性。
服务标签也可以用于识别不同组的用户和/或设备。作为示例,假定数据中心的租户之一是雇用医生、护士和管理员的医院。对于这样的租户,一些实施例的网络控制器允许医院的网络管理员按照组指派(即,按照医生标签、护士标签和管理员服务标签)来指定服务规则。这些网络控制器还为医院的VPN网关服务模块定义基于MDM 属性的规则,这些规则允许该模块将移动设备数据消息流映射到服务标签。使用这些规则,服务模块将来自每个移动设备的每个数据消息流与组指派标签(即,与医生服务标签、护士服务标签和管理员服务标签)相关联。然后,数据中心下游的服务节点可以使用这些组指派标签来有差别地处理来自不同组的远程服务访问(例如,将不同的远程用户组成员路由到不同的DCN集群等)。服务节点还可以为不同的组指定不同的服务操作(例如,指定医生和护士的远程通信应该被加密等)。
如以上提到的,网络控制器集从MDM服务器集接收(1)各种 MDM属性的定义,以及(2)用于将这些MDM属性彼此相互关连以及与它们的值相互关连的一组运算符。在一些实施例中,MDM服务器集提供MDM属性定义作为定义MDM属性和这些属性的可能值的字典的一部分。网络控制器集然后允许管理员基于接收到的 MDM属性定义和相关联的一组运算符来定义用于网络元件的策略和 /或规则(例如,用于中间盒元件的服务规则、用于路由器的路由规则等)。在一些实施例中,管理员可以通过网络控制器集的用户界面 (UI)或一组API(应用编程接口)对服务策略和/或服务规则进行编程。
为了提供说明性示例,图25和图26呈现了一些实施例如何定义和分发基于MDM属性的服务规则。图25示出服务规则管理控制台 2500的UI的示例,在一些实施例中网络控制器集提供该服务规则管理控制台2500以便允许管理员基于MDM属性集和流报头值来指定服务规则。如所示出的,在一些实施例中,这个控制台是网络配置器控制台的一部分(即,在这个控制台中的一系列选项页(tab)中的一个选项页),通过该控制台,其它受管理的网络元件(例如,受管理的转发元件、网关、架顶式交换机等)可以被管理以实现期望的网络功能(例如,逻辑覆盖功能)。在其它实施例中,这个服务规则管理控制台2500是独立界面,或者是另一个数据中心管理界面的一部分。
在图25中,示出在两个操作阶段2502和2504中的示例。第一阶段2502示出服务规则管理(SR)控制台2500,通过该控制台可以为诸如防火墙规则、负载均衡规则等的一个或多个服务定义服务规则。如所示出的,SR管理控制台2500具有服务选项页部分2515和规则部分2520。服务选项页部分2515具有用于多种类型的服务的多个选项页。在这个示例中,已经选择了防火墙规则的服务选项页。普通技术人员将认识到的是,这个图中的讨论同样适用于定义其它基于 MDM属性的规则。
每当在服务选项页部分2515中选择其中一个服务选项页时,控制台显示用于与选定的服务选项页相关联的服务类型的规则部分 2520。如所示出的,规则部分2520显示规则列表2525和若干UI控件2530。在第一阶段2502中,规则列表2525显示若干防火墙规则,并且UI控件2530与防火墙规则相关,因为防火墙服务选项页2545 已经在服务选项页部分2515中被选择。在一些实施例中,这些UI 控件2530包括(1)用于添加防火墙规则的控件,(2)拷贝防火墙规则,(3)删除防火墙规则,(4)在正被显示的规则部分列表中上下移动防火墙规则,(5)应用过滤器来过滤掉规则部分列表中不满足一个或多个过滤标准的规则,(6)移除过滤器,以及(7)搜索满足某个标准的防火墙规则。在一些实施例中,在规则列表中向上或向下移动防火墙规则改变其在防火墙规则列表中的优先级。这些控件在美国专利申请14/788,689中进一步描述,该专利申请通过引用被结合于此。
如在第一阶段2502中所示出的,规则列表2525中的每个防火墙规则可以按照一种或多种类型的元组来定义,这一种或多种类型的元组包括(一个或多个)MDM元组、源元组、目的地元组和服务元组。防火墙规则可以按照这些元组类型中的仅仅一种类型来定义,或者按照这些元组类型中的几种类型来定义。如所示出的,每个规则还具有动作元组和AppliedTo(应用到)元组,这将在下面描述。
在一些实施例中,源元组和目的地元组可以用于指定防火墙节点要对其处理防火墙规则的数据消息的源报头值和目的地报头值。换句话说,防火墙规则标识符可以按照数据消息的源报头值和目的地报头值来定义。对于L3/L4防火墙规则,源报头值和目的地报头值可以按照IP地址和/或端口值(例如,TCP、UDP或其它L4端口值)来指定。对于以太网防火墙规则,源报头值和目的地报头值可以按照数据消息L2参数值(诸如MAC地址、L2服务(协议)等)来指定。
在一些实施例中,可以使用服务元组来定义数据消息使用的服务协议。换句话说,防火墙规则标识符可以不仅按照数据消息的源报头值和目的地报头值来定义,而且可以按照数据消息报头中指定的服务协议来定义。如所示出的,规则列表2525允许源、目的地和服务元组以各种级别的粒度来定义,因为这个控制台由将较高级别元组值 (例如,数据中心(DC1,DC2)、计算集群、服务器类型(Web 服务器、AppServers等)、逻辑交换机、逻辑路由器、更高级别的服务构造)解析为较低级别的值(例如,IP地址、MAC地址、服务协议名称等)的后端引擎所支持,如下面进一步描述的那样。
每个防火墙规则的动作元组指定要相对于具有与规则的消息匹配元组(例如,源、目的地和服务元组)相匹配的报头值的数据消息执行的动作。动作元组值的示例包括允许、拒绝(也称为丢弃或阻止)、重定向等。每个防火墙规则的AppliedTo元组允许为规则定义网络中的一组防火墙实施点。这样的实施点的示例包括主机级防火墙引擎 (被称为分布式防火墙、DFW)和外围防火墙设备(例如,防火墙装置)。
像源、目的地和服务数据元组一样,在一些实施例中, AppliedTo元组可以按照高级别构造或低级别构造来定义,这是因为由于防火墙管理控制台的后端引擎将高级别构造解析到较低级别的构造。在图25所示的示例中,除了第四个之外的所有防火墙规则都是为逻辑网络的分布式防火墙(DFW)节点定义的,而第四个防火墙规则是为防火墙装置(FA)定义的。
防火墙规则的MDM元组控件2540允许为防火墙规则的标识符指定一个或多个MDM属性。该控件的选择指示控制台在规则部分 2520上打开窗口2550。第二阶段2504示出了这个窗口2550。如所示出的,这个窗口列出了多个MDM属性以及让每个属性定义可接受的值或这个属性的值的字段2575。在选择MDM属性的字段之后,在一些实施例中,管理员可以键入用于该属性的可接受的一个或多个值或值范围,或者可以从在选择字段时在这个字段下面打开的下拉窗口中选择一个或多个值/范围。
在图25的示例中,窗口2550显示以下MDM属性:设备标识符、用户标识符、应用标识符、应用组标识符、操作系统、移动设备位置、移动设备兼容性状态、移动设备越狱状态以及互联网协议版本。在一些实施例中,防火墙规则可以按照这些MDM属性中的一个或多个来指定(即,防火墙规则标识符可以按照这些属性中的一个或多个来指定)、按照流报头值(即,源、目的地和协议元组)来指定、或者按照MDM和流报头值两者来指定。而且,在一些实施例中,窗口 2550列出了其它MDM属性,因为基于MDM的防火墙规则可以按照这样的其它MDM属性来定义。
在指定每个MDM属性的(一个或多个)值时,在一些实施例中,管理员可以使用一个或多个运算符将该(一个或多个)值与 MDM属性相关。这样的运算符的示例包括等于、大于、小于、大于或等于、小于或等于、不等于等。在一些实施例中,MDM服务器集指定这些运算符以及网络控制器集的MDM属性集。
而且,如所示出的,窗口2550在每个MDM属性旁边显示运算符控件2580。在一些实施例中,这个控件可以指定“与”(AND) 运算符、“与非”(NOT AND)运算符或者“或”(OR)运算符。当在窗口中为MDM属性指定一个或多个值时,运算符控件的值指定所指定的MDM属性的值是否应该与任何其它MDM属性的指定值进行“与”、“与非”或者“或”运算。
在一些实施例中,服务规则控制台2500还提供运算符控件(未示出),该运算符控件允许管理员指定可以如何将指定的MDM属性与为防火墙规则指定的任何流报头值(例如,源、目的地和协议元组)组合。在其它实施例中,通过窗口2550指定的MDM属性与通过参考源、目的地和协议元组定义的任何基于流的属性进行“与”运算。一些实施例还提供UI控件,其允许管理员定义MDM属性的嵌套组合,其中运算符定义不同嵌套组之间的关系。可替代地,其它实施例仅允许按照彼此“与”的MDM和/或流元组属性来指定防火墙规则标识符。这些实施例中的一些实施例不提供用于指定“与”、“与非”或者“或”运算符的运算符控件2580,因为运算符默认地是“与”运算符。
在窗口2550中为一个或多个MDM属性指定一个或多个值之后,管理员可以选择输入控件2560来指示服务规则控制台2500将选定的 (一个或多个)MDM属性和指定的(一个或多个)值添加到选定的防火墙规则(即,与导致打开窗口2550的选定的MDM控件2540相关联的防火墙规则)的定义。如以上提到的,选定的防火墙规则也可以为其规则标识符指定一个或多个流报头值,或者该规则可以仅按照指定的MDM属性集来定义。
网络控制器集将基于MDM的策略或基于MDM的规则分发给一个或多个网络元件(例如,将策略/规则推送到网络元件,或者允许网络元件拉取这些策略/规则)。在一些实施例中,网络元件将它们接收到的任何基于MDM的策略转换为它们实施的基于MDM的规则。在一些实施例中,基于MDM的策略是按照较高级别构造 (例如,数据中心、计算集群、服务器类型、逻辑交换机、逻辑路由器、更高级别的服务构造)指定的规则。
在一些实施例中,网络控制器分发按照较低级别构造(例如,IP 地址、MAC地址、服务协议名称等)定义的基于MDM的规则。当管理员指定的基于MDM的策略是按照较高级别构造而定义的时,在将基于MDM的规则分发给网络元件(例如,分发给在主机1200 上执行的代理1140)之前,这些实施例中的网络控制器将较高级别的元组值(例如,数据中心、计算集群、计算机服务器类型、逻辑交换机、逻辑路由器、更高级别的服务构造)解析为较低级别的值(例如,IP地址、MAC地址、服务协议名称等)。
图26示出本发明的一些实施例的网络控制器115。这个控制器可以按照较高级别的标识符来定义防火墙和其它服务规则,但是按照较低级别的标识符来分发这些规则。控制器115包括规则配置器 2605、转换引擎2610、发布引擎2615、高级别规则存储区2620、低级别规则存储区2625、用户界面(UI)模块2630、自动供给模块 2635、组定义数据存储区2640、MDM字典和运算符数据存储区 2660、以及若干实施设备数据存储区2655和2665。
规则配置器2605通过经由UI模块2630与用户(例如,网络管理员)交互来配置服务规则(例如,防火墙规则、负载均衡规则、 DNAT规则等)。如所示出的,UI模块2630允许通过参考存储在存储区2660中的MDM字典和运算符来定义基于MDM属性的服务规则。如进一步示出的,网络控制器115从MDM服务器120接收该字典和运算符。
规则配置器2605还在指示规则配置器2605的自动供给模块 2635的指示下配置服务规则,以将这些规则指定为物理网络或逻辑网络的供给的一部分。例如,当控制器115是管理多用户(例如,多租户)托管环境中的逻辑网络的网络控制系统的一部分时,在一些实施例中,供给模块2635当为一个用户(例如,为一个租户)指定逻辑网络时和/或当在主机上供给新的VM时指示配置器2605指定至少一些服务规则。在一些实施例中,供给模块2635可以通过使用存储在存储区2660中的属性集和运算符来(在没有任何用户输入的情况下)自动供给基于MDM属性的服务规则。
配置器2605允许用户(通过UI模块2630或供给模块2635)按照高级别构造来指定服务规则。这样的高级别构造的示例是高级别网络、计算和安全性构造,诸如逻辑交换机、逻辑路由器、逻辑网络、物理网络、计算集群、数据中心、分布式防火墙等。配置器2605将它配置的服务规则存储在高级别规则存储区2620中。
转换引擎2610从高级别规则存储区2620中检索服务规则,并将检索到的规则的元组中的高级别构造标识符转换为较低级别的构造标识符。例如,在一些实施例中,转换引擎2610将计算构造(例如,数据中心标识符、计算集群标识符、主机标识符等)、网络构造(例如,LFE标识符、逻辑网络标识符等)和(由一个或多个网络或计算构造形成的)安全性组转换为IP地址、VNIC标识符和通配符(wildcard)值。在如此转换构造标识符时,转换引擎2610确保根据低级别标识符定义的所有服务规则可以由接收到服务规则的所有实施设备进行解密(deciphere)。转换引擎2610将它检索到的并且在必要时转换的服务规则存储在低级别规则数据存储区2625中。
为了将高级别标识符(例如,由AppliedTo元组定义的高级别网络构造、计算构造和安全性组)转换为低级别标识符(例如,IP地址、VNIC标识符和通配符值),转换引擎2610依赖于存储在组定义数据存储区2640中的高级别组的定义。这些定义由用户(通过UI 模块2630)或由自动供给模块2635存储。
在一些实施例中,这些定义是静态定义的。在其它实施例中,高级别组定义中的一些或全部可由用户或供给模块2635动态修改。具体而言,在一些实施例中,标识符中的一个或多个可以指动态可修改的构造,这进而允许控制器115通过动态地改变标识符的定义来动态地调整服务规则。在一些实施例中,规则配置器2605可以将计算构造、网络构造和安全性组中的一个或多个指定为动态集合,这些动态集合可以具有动态添加的和/或从其动态移除的成员(例如,转发元件、主机、VNIC等)。
对于通过参考静态组或动态组定义的构造,转换引擎2610(1) 使用组定义数据存储区2640中的组定义来识别与高级别标识符相关联的低级别标识符(例如,VNIC和通配符值),(2)用识别出的低级别标识符替换高级别标识符,以及(3)将得到的规则存储在低级别规则存储区2625中。当用于定义一个或多个服务规则的(一个或多个)元组的动态集合被修改时,转换引擎2610更新受影响的服务规则的低级别标识符。如下面进一步描述的,发布引擎2615然后将用于受影响的服务规则的经更新的成员资格变化发送到需要被通知这种成员资格变化的服务规则实施设备。这种方法不需要将受影响的服务规则重新发送给先前接收到这些规则的实施设备。但是,当对动态集合的成员资格变化需要添加新的实施设备时,发布引擎2615将把受影响的服务规则发送到新的实施设备。
发布引擎2615从低级别数据存储区2625收集和分发实施设备服务规则。如图26所示,发布引擎2615包括规则提取器2650和分发引擎2645。对于每个实施设备,规则提取器2650从较低级别数据存储区2625中识别和检索与实施设备有关的服务规则。规则提取器2650将用于每个特定实施设备的检索到的服务规则存储在发布引擎 2615为该特定实施设备维护的数据存储区(例如,数据存储区2655 和2665)中。
在一些实施例中,规则提取器2650仅为每个实施设备检索和存储与那个实施设备有关的服务规则。因此,实施设备数据存储区(例如,存储用于每个实施设备的服务规则的数据存储区2655和2665) 典型地比高级别数据存储区2620和低级别数据存储区2625小得多,这是因为实施设备数据存储区仅包含与其相应的实施设备有关的服务规则。
在一些实施例中,与实施设备有关的服务规则包括与连接到实施设备的数据端节点(例如,VM或VM VNIC)相关的服务规则。在一些实施例中,与每个实施设备有关的规则还包括与可以连接到该实施设备的数据端节点相关的服务规则。例如,当特定主机属于实现特定逻辑网络的计算集群时,一些实施例的规则提取器2650甚至在属于该逻辑网络的VM在该特定主机上实例化之前就在用于该特定主机的数据存储区中存储为该逻辑网络指定的服务规则。提前将服务规则推送到这样的主机是有利的,因为它允许主机在不与控制器交互的情况下为VM配置服务规则。
图26示出了规则提取器2650维护的三个数据存储区2655和 2665。这些数据存储区2655中的两个是用于执行服务模块的主机,该服务模块用作在主机上执行的VM的实施设备。第三数据存储区 2665用于服务装置(例如,防火墙装置)。在一些实施例中,发布引擎2615的分发引擎2645将存储在规则提取器2650为实施设备维护的数据存储区中的服务规则(通过网络)推送给每个实施设备。在其它实施例中,实施设备从分发引擎2645拉取服务规则。在还有的其它实施例中,分发引擎2645将服务规则推送到实施设备中的一些,同时用作其它实施设备可以从其拉取服务规则的资源。
如以上提到的,当用户或自动化处理动态地修改实施点集合时,发布引擎2615向实施设备分发对这些集合的更新。在一些实施例中,这样的修改使得转换引擎2610更新较低级别数据存储区2625中的服务规则。这又可以使得规则提取器2650在其为实施设备维护的一个或多个实施设备数据存储区(例如,数据存储区2655和2665)中更新或创建一个或多个规则。分发引擎然后将经更新的规则(例如,通过推送或拉取动作)分发到受影响的实施设备。
在一些实施例中,MDM属性处理服务模块使用新颖的基于 MDM属性的服务规则存储区来存储基于MDM属性的服务规则。这个服务规则存储区具有索引结构,该索引结构可以快速识别可具有任何数量的任意MDM属性和属性值的基于MDM属性的规则。在一些实施例中,这种索引结构在服务模块处根据由网络控制器以向量形式定义的服务规则来动态地构建。通过在服务模块处基于向量定义的服务规则动态地构建这种索引结构,可以为新的或经更新的MDM 属性和/或值的集合快速地创建和/或更新服务规则存储区。在一些实施例中,服务规则存储区还生成用于快速识别与数据消息的流报头值相匹配的规则的索引结构。
为了以向量形式定义基于MDM属性的服务规则,一些实施例的网络控制器按照一个或多个向量标记来定义每个规则,其中(1) 每个向量标记按照一个或多个MDM标记和每个标记的一个或多个可能的值来定义,并且(2)两个或更多个向量标记(当规则通过参考两个或更多个向量标记来定义时)通过一个或多个运算符彼此相互关连。每个MDM标记是MDM属性,并且每个MDM标记值是 MDM属性可以具有的值。规则中的每个向量标记具有如下形式:
向量标记{
名称:标记名称
值:向量{.·.}
},
在一些实施例中,可以通过使用“与”和“与非”运算符在规则中关联两个或更多个MDM标记。“与”运算符意味着对于要满足的规则必须存在标记及其(一个或多个)指定值,而“与非”运算符意味着对于要满足的规则不能存在标记及其(一个或多个)指定值。当为MDM标记指定了多于一个值时,在一些实施例中,这些值按照显式或隐式“或”运算符来指定,这意味着任何一个指定值的存在都满足由该值的相关联标记指定的规则的条件。
下面提供了向量定义的服务规则的若干示例。这些示例示出当指定多个向量标记时,它们按照显式“与”运算符相互关连,并且用于标记的每个指定值与为该标记指定的任何其它值通过隐式“或”运算符相互关连。这些示例还示出标记向量可以通过使用显式“与非”运算符在规则中被否定。
规则1{
向量标记{
名称:User_Location
值:{A,B,C}
}
<AND>
向量标记{
名称:Phone_Status
值:{D,E}
}
<AND NOT>
向量标记{
名称:Phone_Ownership
值:{F,G}
}
到目的地IP地址N
动作
允许}
规则2{
向量标记{
名称:User_Location
值:{A,B,C1}
}
<AND>
向量标记{
名称:Phone_Ownership
值:{F,G1}
}
到目的地IP地址B
动作
拒绝
}
以上表达的示例性规则是防火墙规则。用于表达防火墙规则的这种新颖的向量形式可以指定取决于多个MDM属性的复杂防火墙规则结构。具体而言,这些简单的向量可以高效地表达复杂的基于 MDM属性的规则:
规则1:从User_Location=(A|B|C)并且(Phone_Status= (D|E)并且Phone_Ownership不是(F|G)到IP地址N:允许
规则2:从User_Location=(A|B|C1)并且Phone_Ownership 不是(F|G1)到IP地址B:拒绝。
一些实施例使用这种新颖的向量形式来指定其它服务规则(例如,负载均衡规则、NAT规则等)。在一些实施例中,网络控制器向服务节点(例如,服务模块、服务装置等)发布向量指定的服务规则。然后,每个服务节点动态地生成索引图(例如,有向非循环图 DAG),该索引图以后可以用于快速识别与消息流的MDM属性集相匹配的规则。图27示出一些实施例的索引图2700的示例。如所示出的,索引图2700是三级树。第一级2705是根级,并且在这个示例中被称为标记。
第二级2710包括表示可以在服务规则中使用的每个唯一的 MDM标记的一个节点。在这个示例中,示出三个MDM标记,这三个MDM标记分别是位置、OS和越狱状态。每个MDM标记节点是根级别的子节点,并且定义了根节点的树分支。每个树分支对应于一个MDM标记(一个MDM属性)。
对于每个MDM标记,第三级2715包括表示该MDM标记的每个指定值的节点。如所示出的,每个值节点识别规则存储区2750中的至少一个服务规则2730。例如,在一些实施例中,每个值节点包含对按照标记值定义的至少一个服务规则2730的引用(例如,指针)。由于多个规则2730可以按照标记值来定义,因此每个值节点可以链接到多个规则。在一些实施例中,一个值节点(即,一个第三级节点)可以指定值的范围。
在一些实施例中,服务模块以与服务规则2730从网络控制器发送的向量指定格式相同的向量指定格式来存储服务规则2730。在其它实施例中,服务模块以与网络控制器用于发送服务规则的向量格式不同的格式来存储这些规则。例如,在一些实施例中,服务模块使用标签长度值(TLV)格式来存储服务规则。在这样的实施例中,服务模块将服务规则的定义从向量指定的格式转换成TLV格式,并且然后将经转换的规则2730存储在规则存储区2750中。而且,在一些实施例中,服务规则2730与识别其优先顺序的一组优先级值一起存储,而在其它实施例中,服务规则的优先级值基于规则2730在规则存储结构2750(例如,规则表)中存储的顺序被隐式地定义。
图28示出可以为以上提到的两个向量指定的服务规则定义的索引树2800。如所示出的,这个树可以具有用于User_Location(用户位置)标记、Phone_Status(电话状态)标记和Phone_Ownership (电话所有权)标记的三个分支2805、2810和2815。如所示出的,用户位置值A和B参考规则1和2,用户位置值C参考规则1,并且用户位置值C1参考规则2。电话状态值D和E参考规则1。电话所有权值F参考规则1和2,而电话所有权值G参考规则1并且电话所有权值G1参考规则2。其它实施例为每个MDM标记定义单独的树结构,而不是为每个MDM标记创建树分支并且将所有的树分支放置在一个树结构中。
对于数据消息流的MDM属性集,将针对MDM标记及其在索引树中的(一个或多个)相关联的值来检查集合中的每个MDM属性及其相关联的值,以便生成由与MDM属性值匹配的MDM标记值引用的规则列表。一旦生成规则列表,就为流的MDM属性集和/ 或其它基于流的属性处理这个列表上规则中的一个或多个规则,以便识别与MDM属性集匹配的最高优先级的服务规则。
在一些实施例中,服务模块不仅为MDM属性创建索引树,而且还创建用于快速识别与数据消息的流报头值相匹配的规则的索引树。在这些实施例中的一些实施例中,基于流报头的索引树是基数树。在美国专利申请14/295,553中描述了创建和使用基数树来索引和检索分组报头值的防火墙规则,该专利申请通过引用被结合于此。
下面将通过参考图30来进一步描述用于针对流的MDM属性集检查树索引结构和服务规则的处理。但是,在描述这个处理之前,将首先描述图29的处理2900。这个处理2900为存储来自网络控制器的一组服务规则的服务规则存储区建立MDM属性索引树结构。在一些实施例中,服务节点(例如,服务模块、服务装置等)在每次它接收到一组新的向量指定的服务规则或一组经更新的服务规则时,执行处理2900。
在2905处,处理2900将接收到的服务规则集存储在规则存储区的服务规则数据存储结构(例如,表)中。在一些实施例中,在存储服务规则之前,处理2900将服务规则的定义从接收到的向量格式转换为另一种格式(例如,TLV格式)。在图29所示的示例中,接收到的一组服务规则是由服务节点接收到的第一组规则,或者它是意图完全代替先前由服务节点接收到的一组规则的一组规则。因此,在 2905处,处理2900定义新的索引树。下面将描述基于经更新的服务规则集对先前创建的索引树进行更新的处理。
在2910处,处理2900在接收到的服务规则集中选择服务规则。然后它(在2915处)选择选定的服务规则中的标记。接下来,在 2920处,它确定索引树是否已经具有用于选定的标记的第二级标记节点。如果没有,那么它创建第二级节点、将这个节点与根级标记节点相关联、并且转变到2930。当处理2900确定它通过2920在先前的迭代中为选定的标记创建了第二级节点时,处理2900也转变到 2930。
在2930处,处理2900选择选定的规则所指定的用于选定的标记的值。接下来,在2935处,它确定索引树是否已经具有用于选定的值的第三级值节点。如果没有,那么它创建第三级值节点、将这个节点与第二级标记节点相关联、并且转变到2945。在允许值节点表示值范围的实施例中,处理2900可以(在2930处)选择用于选定的标记的值范围,并且它可以(在2935处)指定用于选定的值范围的值节点。
当处理确定它通过2935在先前的迭代中为选定的标记和选定的值创建了第三级值节点时,该处理也转变到2945。在2945处,处理 2900确定它是否已经检查了选定的规则为选定的标记指定的所有的值。如果不是,那么它返回到2930以选择另一个值。否则,在2950 处,处理2900确定它是否已检查选定的规则中指定的所有标记。
当处理2900(在2950处)确定它还没有检查完所有标记时,它返回到2915以选择指定的规则中的另一个标记。否则,在2955处,处理2900确定它是否已检查接收到的规则集中的所有规则。如果是,那么处理2900结束。如果它还没有检查所有规则,那么它返回到 2910以在指定的规则集中选择另一个规则来检查。
在一些实施例中,每当网络控制器更新用于服务节点的服务规则集时,网络控制器将整个规则集(即,包含旧规则、新规则和经更新的规则的规则集)发送到服务节点,并且服务节点为其接收到的每个规则集从头开始创建MDM属性索引结构。在其它实施例中,当网络控制器创建一些新的服务规则和/或更新其它服务规则时,它不将整个规则集发送到服务节点。在这些实施例中,网络控制器向服务节点发送服务规则更新。
当接收到的规则集是意图对先前接收到的规则集进行更新的更新集时,服务节点为更新集中新指定的规则执行与处理2900类似的处理,以便更新MDM属性索引树。但是,接收到的规则集可能移除先前指定的规则。当规则被删除时,网络控制器在更新规则集中提供已移除规则的定义。当标记分支没有被任何其它服务规则使用时,服务节点然后遍历已移除规则的标记以从先前创建的索引树中移除标记分支。
在一些实施例中,每个第二级标记节点维护使用该第二级标记节点的服务规则的数量的计数,并且每个第三级值节点维护使用该第三级值节点的服务规则的数量的计数。当处理需要移除服务规则的服务规则更新时,如果其计数为1,那么服务节点删除第二级或第三级节点。否则,它将计数递减1。当先前指定的服务规则正被更新为包括新的标记或值时,一些实施例的网络控制器供应两个记录:移除先前创建的服务规则的一个服务规则移除记录,以及添加新的服务规则的一个服务规则创建记录。
图30示出服务节点用于基于流的MDM属性集和/或流报头值在服务规则存储区2750中为数据消息流选择服务规则2730的处理 3000。该处理将数据消息的MDM属性集和/或流属性与存储在服务规则存储区中的服务规则进行匹配。如所示出的,该处理初始地(在3005处)确定是否有任何服务规则与接收到的数据消息的报头值匹配。如果不是,那么该处理转变到3015。
否则,该处理(在3010处)选择与消息的报头值匹配的所有服务规则,并将它们添加到服务规则的第一集合。在一些实施例中,该处理在一些实施例中使用基数树结构来识别匹配的服务规则。而且,在一些实施例中,该处理检索匹配消息的报头值的所有服务规则,而不是只检索最高优先级的匹配的服务规则,这是因为这个最高优先级的匹配的服务规则可能不匹配数据消息的MDM属性。在一些实施例中,服务规则存储区2750总是具有与任何报头值集合都匹配的至少一个默认服务规则。
处理3000从3010转变到3015,在3015中,它识别由接收到的数据消息的MDM属性集中的任何MDM属性的值引用的任何服务规则。为了识别这样的服务规则,在一些实施例中,该处理使用 MDM属性树结构(诸如索引树2700和2800)。该处理将所有识别出的服务规则(在3015处)放置在规则的第二集合中。
接下来,在3020处,该处理从在3010处识别出的第一服务规则集中丢弃在其规则标识符中具有MDM属性并且不在第二服务规则集中的任何服务规则。在3020处,该处理然后通过向第二服务规则集添加第一集中的在3020处未被丢弃的任何服务规则来定义第三规则集合集。在一些实施例中,该处理不从第一规则集中丢弃不在第二规则集中但在其规则标识符中没有MDM属性的服务规则,因为这样的第一集规则可能是与数据消息匹配的最高优先级规则。在一些实施例中,每个服务规则具有指派规则的标识符是否至少部分地基于MDM属性来定义的字段。在一些实施例中,处理3000使用这个字段来快速识别在其规则标识符中具有MDM属性的任何第一集规则。
在3020之后,该处理(在3025处)检查在3020处定义的第三集合集中的一个或多个服务规则。在检查第三集合集中的服务规则时,该处理将接收到的数据消息的MDM属性值和流报头值与规则的 MDM属性、值、运算符和流报头值进行比较,以便确定数据消息的属性是否与规则的标识符的属性相匹配。在3030处,该处理选择与数据消息的MDM属性和/或流报头值匹配的最高优先级服务规则,然后结束。
在一些实施例中,操作3030是操作3025的隐式部分,因为该处理根据规则的优先级检查第三集合集中的规则,并且一旦该处理识别出与接收到的数据消息的MDM属性和/或流报头值匹配的规则,该处理就停止其对规则的检查。一旦服务节点识别出与接收到的数据消息匹配的最高优先级服务规则,服务节点就基于匹配的服务规则的 (一个或多个)动作元组值对数据消息执行其服务操作。
以下示例示出消息的MDM属性集如何与一个或多个基于MDM 属性的规则进行匹配。假设消息的MDM属性集的形式为<IP:端口><标记L1:V1,L2:V2,L3:V3....>。一个这样的示例将是
10.10.1.5:45634<User_Location:B,Phone_Status:D,
Phone_Ownership:G1,Mempership_Status:Elite,
Group_Member:M|O|P>
处理3000初始地识别与接收到的数据消息的流报头值匹配的任何服务规则,并将所有识别出的服务规则放置在第一收集的规则集中以用于评估。该处理然后针对标记树检查消息的每个MDM属性值。如果属性值与树中指定的标记值之一匹配,那么匹配的标记值所引用的唯一规则被收集并且被放入第二收集的规则集中以用于评估。对于以上示例,由于规则1被用户位置值B和电话状态值D引用,并且规则2被用户位置值B和电话所有权G1引用,因此规则1和2两者将被收集。
处理3000然后执行其规则交集(intersection)操作以丢弃第一收集的集中的在其规则标识符中具有MDM属性并且不在第二收集的集中的任何规则。然后该处理将第一收集的集中的所有剩余规则添加到第二收集的集中,以产生第三收集的规则集。现在,对于第三收集的集中的每个规则,标记评估是从所有标记属性和标记运算符<与,与非>的精确匹配的篮子(basket)中完成的。如以上提到的,一些实施例以规则优先级的顺序执行规则匹配,使得当较高优先级规则匹配MDM属性集时,可以在不检查较低优先级规则的情况下停止规则检查。
对于以上示例,假定两个规则都没有按照流属性定义的标识符。当对于所有标记来匹配规则1时,以下各项将匹配:
·标记User_Location:B真
·标记Phone_Stauts:D真
·标记Phone_Ownership:G1假
在评估运算符User_Location“与”Phone_Stauts“与非”Phone_Ownership(User_Location AND Phone_Stauts AND NOT Phone_Ownership)之后,规则将被认定为适用于流量。接下来将如下进行规则2匹配:
·标记User_Location:B真
·标记Phone_Ownership:G1真
在评估运算符之后,甚至规则2都将是适用的。因此,将选择 {规则1,规则2}中较低的一个,并且基于动作允许/丢弃分组。
如果一个或多个移动设备MDM属性(例如,位置)突然改变,那么上述规则检查方法允许服务节点重新检查规则。然后,可以在连接仍然继续的同时为下一个传入分组重新评估规则,并且基于确定来允许或中途中断连接。更一般地,上述方法提供了可以处理大量动态标记以及这些标记之间的各种复杂值和关系的快速和可扩展的解决方案。这种方法的强大之处在于,即使对于为不同策略配置的超过 100K个规则,它也可以极高效地处理大量动态标签,以便为订户维持的合理的连接和吞吐率。
许多上述特征和应用被实现为软件处理,其被指定为记录在计算机可读存储介质(也被称为计算机可读介质)上的一组指令。当这些指令被一个或多个处理单元(例如,一个或多个处理器、处理器的核心、或其它处理单元)执行时,它们使得这(一个或多个)处理单元执行在指令中指示的动作。计算机可读介质的示例包括但不限于CD- ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等。计算机可读介质不包括无线地或通过有线连接传递的载波和电子信号。
在本说明书中,术语“软件”是指包括驻留在只读存储器中的固件或者存储在磁存储装置中的应用,其可以被读入到存储器中以被处理器处理。此外,在一些实施例中,多个软件发明可以被实现为更大程序的子部分,同时保持明显的软件发明。在一些实施例中,多个软件发明也可以被实现为单独的程序。最后,一起实现本文所描述的软件发明的单独程序的任意组合是在本发明的范围之内。在一些实施例中,当软件程序被安装以在一个或多个电子系统上操作时,该软件程序定义执行和运行该软件程序的操作的一个或多个特定的机器实现方案。
图31概念性地示出了实现本发明的一些实施例的计算机系统 3100。计算机系统3100可以用于实现任何上述主机、控制器和管理器。由此,它可以用于执行任何上述处理。该计算机系统包括各种类型的非临时性机器可读介质和用于各种其它类型的机器可读介质的接口。计算机系统3100包括总线3105、(一个或多个)处理单元3110、系统存储器3125、只读存储器3130、永久存储设备3135、输入设备 3140和输出设备3145。
总线3105统一地表示通信地连接计算机系统3100的众多内部设备的所有系统总线、外围设备总线和芯片组总线。例如,总线3105 将(一个或多个)处理单元3110与只读存储器3130、系统存储器 3125和永久存储设备3135通信地连接。
(一个或多个)处理单元3110从这些各种存储器单元中检索要执行的指令和要处理的数据,以便执行本发明的处理。(一个或多个) 处理单元在不同实施例中可以是单个处理器或多核心处理器。只读存储器(ROM)3130存储由(一个或多个)处理单元3110和计算机系统的其它模块所需要的静态数据和指令。另一方面,永久存储设备 3135是读和写存储器设备。这个设备是即使当计算机系统3100关闭时也存储指令和数据的非易失性存储单元。本发明的一些实施例使用大容量存储设备(诸如磁盘或光盘及其对应的盘驱动器)作为永久存储设备3135。
其它实施例使用可移除存储设备(诸如软盘、闪存驱动器等)作为永久存储设备。与永久存储设备3135一样,系统存储器3125是读和写存储器设备。但是,与存储设备3135不同,系统存储器是易失性读和写存储器,诸如随机存取存储器。系统存储器存储处理器在运行时需要的一些指令和数据。在一些实施例中,本发明的处理被存储在系统存储器3125、永久存储设备3135和/或只读存储器3130中。 (一个或多个)处理单元3110从这些各种存储器单元中检索要执行的指令和要处理的数据,以便执行一些实施例的处理。
总线3105还连接到输入设备3140和输出设备3145。输入设备使用户能够传递信息和选择到计算机系统的命令。输入设备3140包括字母数字键盘和定点设备(也称为“光标控制设备”)。输出设备 3145显示由计算机系统生成的图像。输出设备包括打印机和显示设备,诸如阴极射线管(CRT)或液晶显示器(LCD)。一些实施例包括诸如用作输入和输出设备两者的触摸屏的设备。
最后,如图31所示,总线3105还通过网络适配器(图中未示出) 将计算机系统3100耦合到网络3165。以这种方式,计算机可以是计算机的网络(诸如局域网(“LAN”)、广域网(“WAN”)、或内联网、或诸如互联网的网络网)的一部分,计算机系统3100的任何或所有部件可以与本发明结合使用。
一些实施例包括电子部件,诸如微处理器、在机器可读或计算机可读介质(可替代地称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令的存储设备和存储器。这种计算机可读介质的一些示例包括RAM、ROM、只读压缩盘(CD-ROM)、可记录压缩盘(CD-R)、可重写压缩盘(CD-RW)、只读数字多功能盘(例如,DVD-ROM,双层DVD-ROM)、各种可记录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存存储器(例如,SD卡、小型SD卡、微型SD卡等)、磁和/或固态硬盘驱动器、只读和可记录Blu-
Figure BDA0001585214200000711
盘、超密度光盘、任何其它光或磁介质、以及软盘。计算机可读介质可以存储可由至少一个处理单元执行的并且包括用于执行各种操作的指令集合的计算机程序。计算机程序或计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机、电子部件、或利用解释器的微处理器执行的更高级代码的文件。
虽然以上讨论主要指执行软件的微处理器或多核心处理器,但是一些实施例由一个或多个集成电路来执行,诸如专用集成电路 (ASIC)或现场可编程门阵列(FPGA)。在一些实施例中,这种集成电路执行存储在该电路自身上的指令。
如在本说明书中所使用的,术语“计算机”、“服务器”、“处理器”、以及“存储器”都是指电子或其它技术设备。这些术语不包括人或人群。为了本说明书的目的,术语显示或正在显示意味着在电子设备上显示。如本说明书中所使用的,术语“计算机可读介质”、“多个计算机可读介质”和“机器可读介质”被完全限制为以由计算机可读的形式存储信息的、有形的、物理的对象。这些术语不包括任何无线信号、有线下载信号、以及任何其它短暂或临时信号。
虽然本发明已经参考许多特定细节进行了描述,但是本领域普通技术人员将认识到,在不脱离本发明的精神的情况下,本发明可以以其它特定形式体现。例如,上述许多示例涉及移动设备、MDM服务器和MDM属性。普通技术人员将认识到的是,所有这些示例都同样适用于任何类型的远程设备、RDM服务器和RDM属性。
此外,本说明书贯穿全文地涉及包括虚拟机(VM)的计算和网络环境。但是,虚拟机仅仅是数据计算节点(DCN)或数据计算终端节点(也称为可寻址节点)的一个示例。DCN可以包括非虚拟化物理主机、虚拟机、在主机操作系统之上运行而不需要管理程序或单独的操作系统的容器、以及管理程序内核网络接口模块。
在一些实施例中,VM使用由虚拟化软件(例如,管理程序、虚拟机监视器等)虚拟化的主机的资源利用在主机上其自己的访客操作系统来操作。租户(即VM的所有者)可以选择在访客操作系统之上要操作哪些应用。另一方面,一些容器是在主机操作系统之上运行而不需要管理程序或单独的访客操作系统的构造。在一些实施例中,主机操作系统使用名称空间将容器彼此隔离,并且因此提供在不同容器内操作的不同应用组的操作系统级隔离。这种隔离类似于在对系统硬件进行虚拟化的管理程序虚拟化环境中提供的VM隔离,并且因此可以被视为隔离在不同容器中操作的不同应用组的一种虚拟化形式。这种容器比VM更轻巧。
在一些实施例中,管理程序内核网络接口模块是包括具有管理程序内核网络接口和接收/发送线程的网络栈的非VM DCN。管理程序内核网络接口模块的一个示例是作为VMware公司的ESXiTM管理程序的一部分的vmknic模块。本领域普通技术人员将认识到,虽然本说明书提到VM,但是给出的示例可以是任何类型的DCN,包括物理主机、VM、非VM容器和管理程序内核网络接口模块。事实上,在一些实施例中,示例网络可以包括不同类型的DCN的组合。
许多图(例如,图8-图10,图29和图30)概念性地示出了处理。这些处理的特定操作可以不以所示出和描述的确切顺序执行。特定操作可以不在一系列连续的操作中执行,并且不同的特定操作可能在不同的实施例中执行。此外,处理可以使用若干子处理来实现,或者作为更大的宏处理的一部分来实现。鉴于上述,本领域普通技术人员将理解,本发明不受上述说明性细节的限制,而是由所附权利要求来定义。

Claims (20)

1.一种存储程序的非瞬态机器可读介质,所述程序用于处理进入逻辑覆盖网络的远程设备数据消息,所述程序包括用于以下操作的指令集:
在通过使用封装隧道报头在物理网络上形成的所述逻辑覆盖网络的网关处:
接收由远程设备发送的数据消息;
识别与接收到的数据消息相关联并且由管理所述远程设备的远程设备管理RDM系统指定的RDM属性集;以及
利用隧道报头封装所述数据消息并且将识别出的RDM属性集插入所述隧道报头中;以及
向与所述网络相关联的特定网络元件转发封装的数据消息;
所述隧道报头中的插入的RDM属性集用于识别要在与所述网络相关联的一个或多个网络元件的集合处对所述数据消息执行的服务操作,
其中,所述逻辑网络包括跨多个物理转发元件的至少一个逻辑转发元件,所述多个物理转发元件在多个主机计算机上执行。
2.如权利要求1所述的非瞬态机器可读介质,其中所述特定网络元件是基于所述识别出的RDM属性集对经转发的数据消息执行中间盒服务操作的设备。
3.如权利要求2所述的非瞬态机器可读介质,其中所述设备通过使用插入的RDM属性集识别指定要对所述经转发的数据消息执行的所述服务操作的服务规则,来执行所述中间盒服务操作。
4.如权利要求1所述的非瞬态机器可读介质,其中所述特定网络元件执行中间盒服务节点,所述中间盒服务节点基于所述识别出的RDM属性集对经转发的数据消息执行中间盒服务操作。
5.如权利要求4所述的非瞬态机器可读介质,其中所述中间盒服务操作包括以下各项中的一个:基于所述插入的RDM属性集对所述数据消息的目的地网络地址转换操作、防火墙操作、负载均衡操作、以及逻辑网络分段操作。
6.如权利要求4所述的非瞬态机器可读介质,其中所述服务节点通过使用所述插入的RDM属性集识别具有与所述插入的RDM属性集匹配的RDM属性集的服务规则,来执行所述中间盒服务操作,识别出的服务规则指定要对所述经转发的数据消息执行的所述服务操作。
7.如权利要求1所述的非瞬态机器可读介质,其中
所述隧道是第一隧道,并且
所述程序还包括用于接收由所述远程设备通过将所述远程设备连接到所述逻辑覆盖网络的网关的第二隧道发送的所述数据消息的指令集。
8.如权利要求7所述的非瞬态机器可读介质,其中
所述程序还包括用于执行负载均衡操作以便从执行所述服务操作的多个服务网络元件中选择所述特定网络元件的指令集,并且
所述网关沿着至少两个不同的隧道向至少两个不同的服务网络元件转发数据消息。
9.如权利要求1所述的非瞬态机器可读介质,其中用于利用隧道报头封装所述数据消息的指令集包括用于以下操作的指令集:
当所述网关向所述网络内的目的地转发所述数据消息时,从所述网关的出口路径截获所述数据消息;以及
利用用于向所述特定网络元件转发截获的数据消息的隧道报头来封装所述数据消息。
10.如权利要求1所述的非瞬态机器可读介质,其中所述特定网络元件和所述网关在两个不同的物理设备上操作。
11.如权利要求7所述的非瞬态机器可读介质,其中
所述隧道报头是第一隧道报头,并且
其中所述程序还包括用于以下操作的指令集:
在所述网关处,接收由所述远程设备发送的具有第二隧道报头的所述数据消息;以及
从所述第二隧道报头提取所述RDM属性集的至少子集。
12.如权利要求1所述的非瞬态机器可读介质,其中所述程序还包括用于从RDM服务器接收所述RDM属性集的至少子集的指令集,其中所述网关使用所述RDM服务器来对来自所述远程设备的、建立与所述网关的VPN会话的请求进行认证。
13.如权利要求12所述的非瞬态机器可读介质,其中用于接收所述RDM属性子集的指令集包括用于从所述RDM服务器接收作为认证批准的一部分的RDM属性子集的指令集。
14.如权利要求12所述的非瞬态机器可读介质,其中所述程序还包括用于从所述RDM服务器接收认证批准的指令集,其中用于接收所述RDM属性子集的指令集包括用于在来自所述RDM服务器的、与所述认证批准分开的通信中接收所述RDM属性子集的指令集。
15.一种处理进入逻辑覆盖网络的远程设备数据消息的方法,其中所述逻辑覆盖网络包括多个网络元件,所述方法包括:
在通过使用封装隧道报头在物理网络上形成的所述逻辑覆盖网络的网关处:
接收由远程设备发送的数据消息;
识别与接收到的数据消息相关联并且由管理所述远程设备的远程设备管理RDM系统指定的RDM属性集;以及
利用隧道报头封装所述数据消息并且将识别出的RDM属性集插入所述隧道报头中;
向与所述网络相关联的特定网络元件转发封装的数据消息;
所述隧道报头中的插入的RDM属性集用于识别要在与所述网络相关联的一个或多个网络元件的集合处对所述数据消息执行的服务操作,
其中,所述逻辑网络包括跨多个物理转发元件的至少一个逻辑转发元件,所述多个物理转发元件在多个主机计算机上执行。
16.如权利要求15所述的方法,其中
所述隧道是第一隧道,并且
接收所述远程设备数据消息包括接收由所述远程设备通过将所述远程设备连接到所述网络的网关的第二隧道发送的所述数据消息。
17.如权利要求15所述的方法,其中所述特定网络元件通过使用所述插入的RDM属性集识别指定要对经转发的数据消息执行的所述服务操作的服务规则,来对经转发的数据消息执行中间盒服务操作。
18.如权利要求16所述的方法,其中所述隧道报头是第一隧道报头,所述方法还包括从所述数据消息中移除用于所述第二隧道的第二隧道报头。
19.如权利要求18所述的方法,还包括接收所述第二隧道的第二隧道报头中的所述RDM属性集的至少子集。
20.如权利要求15所述的方法,还包括从RDM服务器接收所述RDM属性集的另一个子集,所述RDM服务器被用于对来自所述远程设备的、建立与所述网关的VPN会话的请求进行认证。
CN201680050484.8A 2015-08-28 2016-08-26 处理进入逻辑覆盖网络的远程设备数据消息的方法和介质 Active CN107925589B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110911378.7A CN113595804A (zh) 2015-08-28 2016-08-26 将远程设备管理属性分发给服务节点以用于服务规则处理

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US201562211677P 2015-08-28 2015-08-28
US62/211,677 2015-08-28
US14/929,403 2015-11-01
US14/929,404 US9906562B2 (en) 2015-08-28 2015-11-01 Associating service tags with remote data message flows based on remote device management attributes
US14/929,402 US10051002B2 (en) 2015-08-28 2015-11-01 Distributed VPN gateway for processing remote device management attribute based rules
US14/929,405 US10397275B2 (en) 2015-08-28 2015-11-01 Creating and using remote device management attribute rule data store
US14/929,399 US9894103B2 (en) 2015-08-28 2015-11-01 Performing source network address translation based on remote device management attributes
US14/929,404 2015-11-01
US14/929,405 2015-11-01
US14/929,399 2015-11-01
US14/929,400 US9860279B2 (en) 2015-08-28 2015-11-01 Defining network rules based on remote device management attributes
US14/929,400 2015-11-01
US14/929,401 US9906560B2 (en) 2015-08-28 2015-11-01 Distributing remote device management attributes to service nodes for service rule processing
US14/929,402 2015-11-01
US14/929,401 2015-11-01
US14/929,403 US9906561B2 (en) 2015-08-28 2015-11-01 Performing logical segmentation based on remote device attributes
PCT/US2016/049109 WO2017040334A1 (en) 2015-08-28 2016-08-26 Distributing remote device management attributes to service nodes for service rule processing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110911378.7A Division CN113595804A (zh) 2015-08-28 2016-08-26 将远程设备管理属性分发给服务节点以用于服务规则处理

Publications (2)

Publication Number Publication Date
CN107925589A CN107925589A (zh) 2018-04-17
CN107925589B true CN107925589B (zh) 2021-08-24

Family

ID=58096257

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680050484.8A Active CN107925589B (zh) 2015-08-28 2016-08-26 处理进入逻辑覆盖网络的远程设备数据消息的方法和介质
CN202110911378.7A Pending CN113595804A (zh) 2015-08-28 2016-08-26 将远程设备管理属性分发给服务节点以用于服务规则处理

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110911378.7A Pending CN113595804A (zh) 2015-08-28 2016-08-26 将远程设备管理属性分发给服务节点以用于服务规则处理

Country Status (8)

Country Link
US (8) US9906560B2 (zh)
EP (2) EP3342100B1 (zh)
JP (3) JP6910348B2 (zh)
CN (2) CN107925589B (zh)
AU (3) AU2016315646B2 (zh)
CA (2) CA2996421C (zh)
IL (3) IL300834A (zh)
WO (1) WO2017040334A1 (zh)

Families Citing this family (170)

* 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
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
US10749711B2 (en) 2013-07-10 2020-08-18 Nicira, Inc. Network-link method useful for a last-mile connectivity in an edge-gateway multipath system
US9276904B2 (en) 2014-02-20 2016-03-01 Nicira, Inc. Specifying point of enforcement in a firewall rule
US10212136B1 (en) 2014-07-07 2019-02-19 Microstrategy Incorporated Workstation log-in
US10516568B2 (en) 2014-09-30 2019-12-24 Nicira, Inc. Controller driven reconfiguration of a multi-layered application or service model
US9774537B2 (en) 2014-09-30 2017-09-26 Nicira, Inc. Dynamically adjusting load balancing
US9531590B2 (en) 2014-09-30 2016-12-27 Nicira, Inc. Load balancing across a group of load balancers
US10609091B2 (en) 2015-04-03 2020-03-31 Nicira, Inc. Method, apparatus, and system for implementing a content switch
US10135789B2 (en) 2015-04-13 2018-11-20 Nicira, Inc. Method and system of establishing a virtual private network in a cloud service for branch networking
US10425382B2 (en) 2015-04-13 2019-09-24 Nicira, Inc. Method and system of a cloud-based multipath routing protocol
US10498652B2 (en) 2015-04-13 2019-12-03 Nicira, Inc. Method and system of application-aware routing with crowdsourcing
US10243848B2 (en) 2015-06-27 2019-03-26 Nicira, Inc. Provisioning logical entities in a multi-datacenter environment
US9680706B2 (en) 2015-06-30 2017-06-13 Nicira, Inc. Federated firewall management for moving workload across data centers
US9906560B2 (en) 2015-08-28 2018-02-27 Nicira, Inc. Distributing remote device management attributes to service nodes for service rule processing
US10079693B2 (en) 2015-12-28 2018-09-18 Netapp, Inc. Storage cluster management proxy
US11025477B2 (en) * 2015-12-31 2021-06-01 Akamai Technologies, Inc. Overlay network ingress edge region selection
US11290425B2 (en) * 2016-02-01 2022-03-29 Airwatch Llc Configuring network security based on device management characteristics
US10523636B2 (en) 2016-02-04 2019-12-31 Airwatch Llc Enterprise mobility management and network micro-segmentation
US10855664B1 (en) * 2016-02-08 2020-12-01 Microstrategy Incorporated Proximity-based logical access
US10231128B1 (en) 2016-02-08 2019-03-12 Microstrategy Incorporated Proximity-based device access
US10122589B2 (en) * 2016-04-08 2018-11-06 Cisco Technology, Inc. Configuring the design of an industrial automation network
US10348685B2 (en) 2016-04-29 2019-07-09 Nicira, Inc. Priority allocation for distributed service rules
US10135727B2 (en) 2016-04-29 2018-11-20 Nicira, Inc. Address grouping for distributed service rules
US10944722B2 (en) 2016-05-01 2021-03-09 Nicira, Inc. Using activities to manage multi-tenant firewall configuration
US11171920B2 (en) 2016-05-01 2021-11-09 Nicira, Inc. Publication of firewall configuration
US10135859B2 (en) * 2016-05-03 2018-11-20 Cisco Technology, Inc. Automated security enclave generation
US10348648B2 (en) * 2016-05-17 2019-07-09 Cisco Technology, Inc. Service chain overlay network operations visibility via data packets
US10375121B2 (en) 2016-06-23 2019-08-06 Vmware, Inc. Micro-segmentation in virtualized computing environments
US10554614B2 (en) * 2016-06-23 2020-02-04 Cisco Technology, Inc. Utilizing service tagging for encrypted flow classification
US11258761B2 (en) 2016-06-29 2022-02-22 Nicira, Inc. Self-service firewall configuration
US11088990B2 (en) 2016-06-29 2021-08-10 Nicira, Inc. Translation cache for firewall configuration
US10560480B1 (en) * 2016-07-08 2020-02-11 Juniper Networks, Inc. Rule enforcement based on network address requests
US10419394B2 (en) * 2016-10-24 2019-09-17 Nubeva, Inc. Providing scalable cloud-based security services
US10778722B2 (en) * 2016-11-08 2020-09-15 Massachusetts Institute Of Technology Dynamic flow system
US10992558B1 (en) 2017-11-06 2021-04-27 Vmware, Inc. Method and apparatus for distributed data network traffic optimization
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. High performance software-defined core network
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group High performance software-defined core network
US11252079B2 (en) 2017-01-31 2022-02-15 Vmware, Inc. High performance software-defined core network
US11121962B2 (en) 2017-01-31 2021-09-14 Vmware, Inc. High performance software-defined core network
US20180219765A1 (en) 2017-01-31 2018-08-02 Waltz Networks Method and Apparatus for Network Traffic Control Optimization
US11706127B2 (en) 2017-01-31 2023-07-18 Vmware, Inc. High performance software-defined core network
US10778528B2 (en) 2017-02-11 2020-09-15 Nicira, Inc. Method and system of connecting to a multipath hub in a cluster
EP3376731B1 (en) * 2017-03-15 2019-12-25 ABB Schweiz AG Rule-based information exchange in internet of things
US10708233B2 (en) * 2017-03-30 2020-07-07 Zscaler, Inc. Identification of certificate pinned mobile applications in cloud based security systems
US10657242B1 (en) 2017-04-17 2020-05-19 Microstrategy Incorporated Proximity-based access
US11140157B1 (en) 2017-04-17 2021-10-05 Microstrategy Incorporated Proximity-based access
US10771458B1 (en) 2017-04-17 2020-09-08 MicoStrategy Incorporated Proximity-based user authentication
CN107135226B (zh) * 2017-05-19 2021-02-05 四川世纪银通科技有限公司 基于socks5的传输层代理通信方法
CN107171786A (zh) * 2017-05-19 2017-09-15 成都极玩网络技术有限公司 网络代理账户控制方法
US10958623B2 (en) * 2017-05-26 2021-03-23 Futurewei Technologies, Inc. Identity and metadata based firewalls in identity enabled networks
US10523539B2 (en) 2017-06-22 2019-12-31 Nicira, Inc. Method and system of resiliency in cloud-delivered SD-WAN
US10999318B2 (en) * 2017-07-07 2021-05-04 Uniken Inc. Algorithmic packet-based defense against distributed denial of service
US10454930B2 (en) 2017-07-14 2019-10-22 EMC IP Holding Company LLC System and method for local data IP based network security for preventing data breach attempts in a multi-tenant protection storage deployment
US10146953B1 (en) * 2017-07-14 2018-12-04 EMC IP Holding Company LLC System and method for physical data packets isolation for different tenants in a multi-tenant protection storage environment
US11283694B2 (en) * 2017-07-20 2022-03-22 Movius Interactive Corportion System and method providing usage analytics for a mobile device
CN108462683B (zh) * 2017-08-03 2020-04-03 新华三技术有限公司 认证方法和装置
US10999100B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider
US11089111B2 (en) 2017-10-02 2021-08-10 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10666460B2 (en) 2017-10-02 2020-05-26 Vmware, Inc. Measurement based routing through multiple public clouds
US10999165B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Three tiers of SaaS providers for deploying compute and network infrastructure in the public cloud
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10959098B2 (en) 2017-10-02 2021-03-23 Vmware, Inc. Dynamically specifying multiple public cloud edge nodes to connect to an external multi-computer node
US10805181B2 (en) * 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US11095617B2 (en) 2017-12-04 2021-08-17 Nicira, Inc. Scaling gateway to gateway traffic using flow hash
JP6375047B1 (ja) * 2017-12-05 2018-08-15 株式会社サイバーセキュリティクラウド ファイアウォール装置
US10652283B1 (en) * 2017-12-06 2020-05-12 Amazon Technologies, Inc. Deriving system architecture from security group relationships
EP3729907A4 (en) * 2017-12-19 2021-08-25 Radio IP Software Inc. TUNNEL FILTER SYSTEM AND PROCEDURE
US10659252B2 (en) 2018-01-26 2020-05-19 Nicira, Inc Specifying and utilizing paths through a network
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
US10932322B2 (en) * 2018-02-23 2021-02-23 Cisco Technology, Inc. Policy mapping methods and apparatus for use in interconnecting software-defined wide area network (SD-WAN) fabrics with mobile networks for communications with UEs
US11218447B2 (en) * 2018-03-02 2022-01-04 Disney Enterprises, Inc. Firewall rule remediation for improved network security and performance
US10728174B2 (en) 2018-03-27 2020-07-28 Nicira, Inc. Incorporating layer 2 service between two interfaces of gateway device
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US11290459B2 (en) * 2018-05-15 2022-03-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Granting guest devices access to a network using out-of-band authorization
CA3175443A1 (en) 2018-06-06 2019-12-12 Slack Technologies, Llc Method, apparatus, and computer program product for encryption key management within a group-based communication system
US11539675B2 (en) 2018-06-06 2022-12-27 Slack Technologies, Llc Encryption key management for international data residency
US10897392B2 (en) 2018-06-11 2021-01-19 Nicira, Inc. Configuring a compute node to perform services on a host
US11283676B2 (en) * 2018-06-11 2022-03-22 Nicira, Inc. Providing shared memory for access by multiple network service containers executing on single service machine
US10942788B2 (en) 2018-06-15 2021-03-09 Vmware, Inc. Policy constraint framework for an sddc
US10812337B2 (en) 2018-06-15 2020-10-20 Vmware, Inc. Hierarchical API for a SDDC
CN110661896B (zh) * 2018-06-29 2021-06-22 网宿科技股份有限公司 一种确定数据流的映射地址的方法及服务器
US11184327B2 (en) * 2018-07-05 2021-11-23 Vmware, Inc. Context aware middlebox services at datacenter edges
US10999220B2 (en) 2018-07-05 2021-05-04 Vmware, Inc. Context aware middlebox services at datacenter edge
US10938626B2 (en) * 2018-07-25 2021-03-02 Microsoft Technology Licensing, Llc Fast failover for gateway instances
US11086700B2 (en) * 2018-08-24 2021-08-10 Vmware, Inc. Template driven approach to deploy a multi-segmented application in an SDDC
EP3814904A1 (en) * 2018-08-24 2021-05-05 VMware, Inc. Hierarchical api for defining a multi-segmented application in an sddc
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
CN109152096B (zh) * 2018-09-27 2020-09-25 安科讯(福建)科技有限公司 Eps架构的报文传输方法及计算机可读存储介质
US10812377B2 (en) 2018-10-12 2020-10-20 Cisco Technology, Inc. Methods and apparatus for use in providing transport and data center segmentation in a mobile network
US10848576B2 (en) 2018-10-29 2020-11-24 Cisco Technology, Inc. Network function (NF) repository function (NRF) having an interface with a segment routing path computation entity (SR-PCE) for improved discovery and selection of NF instances
EP3667514B1 (en) * 2018-12-14 2022-10-12 Slack Technologies, LLC Methods, apparatuses, and computer program products for management of and search index generation based on geographically distributed data
US11949739B2 (en) 2018-12-14 2024-04-02 Salesforce, Inc. Methods, apparatuses, and computer program products for management of data deletion requests based on geographically distributed data
CN111511041B (zh) * 2019-01-31 2022-03-29 大唐移动通信设备有限公司 一种远程连接方法及装置
US11042397B2 (en) 2019-02-22 2021-06-22 Vmware, Inc. Providing services with guest VM mobility
CN111669310B (zh) * 2019-03-08 2022-05-10 厦门网宿有限公司 一种pptp vpn中网络隔离空间的批量处理方法及pptp vpn服务器
US11310202B2 (en) 2019-03-13 2022-04-19 Vmware, Inc. Sharing of firewall rules among multiple workloads in a hypervisor
US11683308B2 (en) * 2019-06-06 2023-06-20 Cisco Technology, Inc. Systems and methods for generating contextual labels
CN110311919B (zh) * 2019-07-10 2021-05-18 中国联合网络通信集团有限公司 一种基于FreeSwitch的外呼系统
WO2021022425A1 (zh) 2019-08-02 2021-02-11 深圳市汇顶科技股份有限公司 指纹检测装置和电子设备
EP3767910A1 (de) * 2019-07-19 2021-01-20 Siemens Aktiengesellschaft Verfahren zur konfiguration von firewall-einrichtungen für ein kommunikationsnetz und kommunikationsnetz-management-system
US11700150B2 (en) * 2019-07-31 2023-07-11 Vmware, Inc. Allocation of tokens for network packets based on application type
CN110636016B (zh) * 2019-08-08 2023-09-29 西安万像电子科技有限公司 数据传输方法及系统
CN112398800A (zh) * 2019-08-19 2021-02-23 华为技术有限公司 一种数据处理方法及装置
CN110636337B (zh) * 2019-08-20 2021-08-17 腾讯科技(深圳)有限公司 视频图像的截取方法、装置及系统
US11252105B2 (en) 2019-08-27 2022-02-15 Vmware, Inc. Identifying different SaaS optimal egress nodes for virtual networks of different entities
US11095559B1 (en) 2019-09-18 2021-08-17 Cisco Technology, Inc. Segment routing (SR) for IPV6 (SRV6) techniques for steering user plane (UP) traffic through a set of user plane functions (UPFS) with traffic handling information
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor
US11271777B2 (en) 2019-09-24 2022-03-08 Pribit Technology, Inc. System for controlling network access of terminal based on tunnel and method thereof
US11190494B2 (en) 2019-09-24 2021-11-30 Pribit Technology, Inc. Application whitelist using a controlled node flow
US11381557B2 (en) 2019-09-24 2022-07-05 Pribit Technology, Inc. Secure data transmission using a controlled node flow
KR102119257B1 (ko) * 2019-09-24 2020-06-26 프라이빗테크놀로지 주식회사 터널에 기반하여 단말의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
US11044190B2 (en) 2019-10-28 2021-06-22 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
CN114342342A (zh) * 2019-10-30 2022-04-12 Vm维尔股份有限公司 跨多个云的分布式服务链
US11394640B2 (en) 2019-12-12 2022-07-19 Vmware, Inc. Collecting and analyzing data regarding flows associated with DPI parameters
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
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
US11722925B2 (en) 2020-01-24 2023-08-08 Vmware, Inc. Performing service class aware load balancing to distribute packets of a flow among multiple network links
US11489875B2 (en) * 2020-01-28 2022-11-01 Cisco Technology, Inc. Device context in network security policies
CN115380514B (zh) 2020-04-01 2024-03-01 威睿有限责任公司 为异构计算元件自动部署网络元件
US11394634B2 (en) 2020-04-06 2022-07-19 Vmware, Inc. Architecture for stretching logical switches between multiple datacenters
US11088902B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Synchronization of logical network state between global and local managers
US11088919B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Data structure for defining multi-site logical network
US11374817B2 (en) * 2020-04-06 2022-06-28 Vmware, Inc. Determining span of logical network element
US11777793B2 (en) 2020-04-06 2023-10-03 Vmware, Inc. Location criteria for security groups
US11277331B2 (en) 2020-04-06 2022-03-15 Vmware, Inc. Updating connection-tracking records at a network edge using flow programming
US11394563B2 (en) 2020-04-30 2022-07-19 Zscaler, Inc. Encrypted traffic inspection in a cloud-based security system
US11245641B2 (en) 2020-07-02 2022-02-08 Vmware, Inc. Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN
US10897351B1 (en) 2020-07-02 2021-01-19 Slack Technologies, Inc. Encryption key management for an automated workflow
US11803408B2 (en) 2020-07-29 2023-10-31 Vmware, Inc. Distributed network plugin agents for container networking
US11709710B2 (en) 2020-07-30 2023-07-25 Vmware, Inc. Memory allocator for I/O operations
US11863352B2 (en) 2020-07-30 2024-01-02 Vmware, Inc. Hierarchical networking for nested container clusters
US11552930B2 (en) 2020-08-31 2023-01-10 Equinix, Inc. Virtual domains within a shared device
US11343283B2 (en) 2020-09-28 2022-05-24 Vmware, Inc. Multi-tenant network virtualization infrastructure
US11575591B2 (en) 2020-11-17 2023-02-07 Vmware, Inc. Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN
US11716355B1 (en) 2020-11-24 2023-08-01 Wells Fargo Bank, N.A. Company controlled virtual computer over a network
US11575600B2 (en) 2020-11-24 2023-02-07 Vmware, Inc. Tunnel-less SD-WAN
CN112653609B (zh) * 2020-12-14 2022-05-27 北京指掌易科技有限公司 一种vpn识别应用方法、装置、终端及存储介质
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11929903B2 (en) 2020-12-29 2024-03-12 VMware LLC Emulating packet flows to assess network links for SD-WAN
CN116783874A (zh) 2021-01-18 2023-09-19 Vm维尔股份有限公司 网络感知的负载平衡
US11979325B2 (en) 2021-01-28 2024-05-07 VMware LLC Dynamic SD-WAN hub cluster scaling with machine learning
US11228642B1 (en) * 2021-04-14 2022-01-18 Veeva Systems Inc. Computing networks and systems for submitting data
US11388086B1 (en) 2021-05-03 2022-07-12 Vmware, Inc. On demand routing mesh for dynamically adjusting SD-WAN edge forwarding node roles to facilitate routing through an SD-WAN
US11729065B2 (en) 2021-05-06 2023-08-15 Vmware, Inc. Methods for application defined virtual network service among multiple transport in SD-WAN
US11606254B2 (en) 2021-06-11 2023-03-14 Vmware, Inc. Automatic configuring of VLAN and overlay logical switches for container secondary interfaces
US11489720B1 (en) 2021-06-18 2022-11-01 Vmware, Inc. Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics
US11375005B1 (en) 2021-07-24 2022-06-28 Vmware, Inc. High availability solutions for a secure access service edge application
US11489808B1 (en) * 2021-08-03 2022-11-01 Oversec, Uab Providing a split-configuration virtual private network
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US20230110199A1 (en) * 2021-10-12 2023-04-13 Hewlett Packard Enterprise Development Lp Auto-grouping and routing platform
CN113965538B (zh) * 2021-10-21 2023-04-18 青岛海信智慧生活科技股份有限公司 设备状态消息处理方法、装置及存储介质
US11863514B2 (en) * 2022-01-14 2024-01-02 Vmware, Inc. Performance improvement of IPsec traffic using SA-groups and mixed-mode SAs
US20230231741A1 (en) 2022-01-14 2023-07-20 Vmware, Inc. Per-namespace ip address management method for container networks
US11444911B1 (en) 2022-02-22 2022-09-13 Oversec, Uab Domain name system configuration during virtual private network connection
CN114978660B (zh) * 2022-05-17 2024-04-19 阿里巴巴(中国)有限公司 带外网络的构建方法和基于带外网络的带外处理方法
US11956213B2 (en) 2022-05-18 2024-04-09 VMware LLC Using firewall policies to map data messages to secure tunnels
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs
US20240015132A1 (en) * 2022-07-11 2024-01-11 Cisco Technology, Inc. Leveraging contextual metadata communication to improve dns security
US11848910B1 (en) 2022-11-11 2023-12-19 Vmware, Inc. Assigning stateful pods fixed IP addresses depending on unique pod identity
US11831511B1 (en) 2023-01-17 2023-11-28 Vmware, Inc. Enforcing network policies in heterogeneous systems
CN116992494B (zh) * 2023-09-27 2023-12-08 四川启明芯智能科技有限公司 一种用于景区数据流通的安全保护方法、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6079020A (en) * 1998-01-27 2000-06-20 Vpnet Technologies, Inc. Method and apparatus for managing a virtual private network
EP1326393A1 (en) * 2001-12-18 2003-07-09 Stonesoft Corporation Validation of the configuration of a Firewall
CN104519121A (zh) * 2013-09-30 2015-04-15 瞻博网络公司 计算机网络内的会话感知服务链
CN107395445A (zh) * 2011-11-15 2017-11-24 Nicira股份有限公司 具有中间盒的网络架构

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754831B2 (en) 1998-12-01 2004-06-22 Sun Microsystems, Inc. Authenticated firewall tunneling framework
US20030033398A1 (en) 2001-08-10 2003-02-13 Sun Microsystems, Inc. Method, system, and program for generating and using configuration policies
US7325140B2 (en) 2003-06-13 2008-01-29 Engedi Technologies, Inc. Secure management access control for computers, embedded and card embodiment
US7616597B2 (en) 2002-12-19 2009-11-10 Intel Corporation System and method for integrating mobile networking with security-based VPNs
US7478427B2 (en) 2003-05-05 2009-01-13 Alcatel-Lucent Usa Inc. Method and apparatus for providing adaptive VPN to enable different security levels in virtual private networks (VPNs)
US20090328192A1 (en) 2006-08-02 2009-12-31 Alan Yang Policy based VPN configuration for firewall/VPN security gateway appliance
US8284943B2 (en) 2006-09-27 2012-10-09 Certes Networks, Inc. IP encryption over resilient BGP/MPLS IP VPN
WO2008082441A1 (en) 2006-12-29 2008-07-10 Prodea Systems, Inc. Display inserts, overlays, and graphical user interfaces for multimedia systems
CN101257431B (zh) * 2008-03-11 2010-09-08 网经科技(苏州)有限公司 逆向安全通道远程设备管理模式
US9294621B2 (en) 2008-04-21 2016-03-22 Aetherpal Inc. Virtual mobile management—remote control
US20100150120A1 (en) 2008-09-04 2010-06-17 Ludger Schlicht Mobile applications for a mobile, broadband, routable internet
US8745213B2 (en) 2008-12-19 2014-06-03 Openpeak Inc. Managed services platform and method of operation of same
US8612582B2 (en) * 2008-12-19 2013-12-17 Openpeak Inc. Managed services portals and method of operation of same
US8856322B2 (en) * 2008-12-19 2014-10-07 Openpeak Inc. Supervisory portal systems and methods of operation of same
US8788655B2 (en) 2008-12-19 2014-07-22 Openpeak Inc. Systems for accepting and approving applications and methods of operation of same
US8615581B2 (en) 2008-12-19 2013-12-24 Openpeak Inc. System for managing devices and method of operation of same
US8473442B1 (en) * 2009-02-25 2013-06-25 Mcafee, Inc. System and method for intelligent state management
EP2256660B1 (en) 2009-05-28 2015-08-12 Sap Se Computer-implemented method, computer system, and computer program product for optimization of evaluation of a policy specification
US8918093B2 (en) 2009-08-31 2014-12-23 Aetherpal Inc. User initiated virtual mobile management
US8949169B2 (en) 2009-11-17 2015-02-03 Jerome Naifeh Methods and apparatus for analyzing system events
US8712596B2 (en) * 2010-05-20 2014-04-29 Accenture Global Services Limited Malicious attack detection and analysis
US10142292B2 (en) 2010-06-30 2018-11-27 Pulse Secure Llc Dual-mode multi-service VPN network client for mobile device
US8127350B2 (en) 2010-06-30 2012-02-28 Juniper Networks, Inc. Multi-service VPN network client for mobile device
US8458787B2 (en) 2010-06-30 2013-06-04 Juniper Networks, Inc. VPN network client for mobile device having dynamically translated user home page
US8473734B2 (en) 2010-06-30 2013-06-25 Juniper Networks, Inc. Multi-service VPN network client for mobile device having dynamic failover
US8359016B2 (en) 2010-11-19 2013-01-22 Mobile Iron, Inc. Management of mobile applications
US9319459B2 (en) * 2011-09-19 2016-04-19 Cisco Technology, Inc. Services controlled session based flow interceptor
US8959572B2 (en) 2011-10-28 2015-02-17 Google Inc. Policy enforcement of client devices
US8813210B2 (en) * 2011-11-29 2014-08-19 Samsung Electronics Co., Ltd. Enhancing network controls in mandatory access control computing environments
JP2013126219A (ja) 2011-12-16 2013-06-24 Kamome Engineering Inc 転送サーバおよび転送プログラム
US8793783B2 (en) 2011-12-20 2014-07-29 International Business Machines Corporation Dynamic allocation of network security credentials for alert notification recipients
US9065802B2 (en) 2012-05-01 2015-06-23 Fortinet, Inc. Policy-based configuration of internet protocol security for a virtual private network
US9300570B2 (en) 2012-05-22 2016-03-29 Harris Corporation Multi-tunnel virtual private network
US8811409B2 (en) 2012-06-04 2014-08-19 Telefonaktiebolaget L M Ericsson (Publ) Routing VLAN tagged packets to far end addresses of virtual forwarding instances using separate administrations
IL221175A (en) 2012-07-29 2017-08-31 Verint Systems Ltd A system and method for automating the creation of a multi-stage, statutory communication filter
CN104871495B (zh) * 2012-09-26 2018-07-13 华为技术有限公司 用于叠加网络的虚拟叠加网关
US9584426B2 (en) 2013-04-11 2017-02-28 Broadcom Corporation Congestion management in overlay networks
WO2014169251A1 (en) * 2013-04-12 2014-10-16 Huawei Technologies Co., Ltd. Service chain policy for distributed gateways in virtual overlay networks
US9894099B1 (en) * 2013-07-12 2018-02-13 Palo Alto Networks, Inc. Automatically configuring mobile devices and applying policy based on device state
WO2015089483A1 (en) 2013-12-12 2015-06-18 Mobile Iron, Inc. Application synchornization
KR102108000B1 (ko) 2013-12-23 2020-05-28 삼성에스디에스 주식회사 가상 사설망 접속 제어 시스템 및 방법
JP6340848B2 (ja) 2014-03-17 2018-06-13 株式会社リコー 機器管理システム、情報処理装置、機器管理方法およびプログラム
US9774707B2 (en) 2014-06-04 2017-09-26 Nicira, Inc. Efficient packet classification for dynamic containers
US10375028B2 (en) 2014-07-03 2019-08-06 Hewlett-Packard Development Company, L.P. Receive device management request through firewall
WO2016023232A1 (en) 2014-08-15 2016-02-18 Hewlett-Packard Development Company, L.P. Memory efficient packet classification method
US9787641B2 (en) 2015-06-30 2017-10-10 Nicira, Inc. Firewall rule management
US9906560B2 (en) 2015-08-28 2018-02-27 Nicira, Inc. Distributing remote device management attributes to service nodes for service rule processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6079020A (en) * 1998-01-27 2000-06-20 Vpnet Technologies, Inc. Method and apparatus for managing a virtual private network
EP1326393A1 (en) * 2001-12-18 2003-07-09 Stonesoft Corporation Validation of the configuration of a Firewall
CN107395445A (zh) * 2011-11-15 2017-11-24 Nicira股份有限公司 具有中间盒的网络架构
CN104519121A (zh) * 2013-09-30 2015-04-15 瞻博网络公司 计算机网络内的会话感知服务链

Also Published As

Publication number Publication date
US20170063797A1 (en) 2017-03-02
JP7273899B2 (ja) 2023-05-15
US9906561B2 (en) 2018-02-27
CN107925589A (zh) 2018-04-17
CA2996421C (en) 2023-05-09
AU2016315646B2 (en) 2020-06-25
US20190342346A1 (en) 2019-11-07
AU2020239820A1 (en) 2020-10-29
US20170063787A1 (en) 2017-03-02
US20170064749A1 (en) 2017-03-02
AU2016315646A1 (en) 2018-03-22
JP2023103300A (ja) 2023-07-26
WO2017040334A1 (en) 2017-03-09
US20170063928A1 (en) 2017-03-02
US9906560B2 (en) 2018-02-27
US9906562B2 (en) 2018-02-27
CA3192687A1 (en) 2017-03-09
EP3599742B1 (en) 2022-08-03
US10051002B2 (en) 2018-08-14
EP3342100B1 (en) 2019-10-16
US9894103B2 (en) 2018-02-13
JP2018532300A (ja) 2018-11-01
IL300834A (en) 2023-04-01
IL257708A (en) 2018-04-30
CA2996421A1 (en) 2017-03-09
JP6910348B2 (ja) 2021-07-28
US20170063822A1 (en) 2017-03-02
US20170063794A1 (en) 2017-03-02
AU2022204565A1 (en) 2022-07-21
US10397275B2 (en) 2019-08-27
EP3342100A1 (en) 2018-07-04
IL257708B (en) 2021-05-31
CN113595804A (zh) 2021-11-02
IL282724A (en) 2021-06-30
EP3599742A1 (en) 2020-01-29
US9860279B2 (en) 2018-01-02
US20170063782A1 (en) 2017-03-02
JP2021184605A (ja) 2021-12-02
IL282724B1 (en) 2023-04-01
AU2020239820B2 (en) 2022-03-31
IL282724B2 (en) 2023-08-01

Similar Documents

Publication Publication Date Title
CN107925589B (zh) 处理进入逻辑覆盖网络的远程设备数据消息的方法和介质
US11792138B2 (en) Centralized processing of north-south traffic for logical network in public cloud

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