CN118118208A - 智能防火墙流处理器 - Google Patents

智能防火墙流处理器 Download PDF

Info

Publication number
CN118118208A
CN118118208A CN202311557077.4A CN202311557077A CN118118208A CN 118118208 A CN118118208 A CN 118118208A CN 202311557077 A CN202311557077 A CN 202311557077A CN 118118208 A CN118118208 A CN 118118208A
Authority
CN
China
Prior art keywords
flow
nic
firewall
network
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311557077.4A
Other languages
English (en)
Inventor
R·科穆拉
R·古普塔
G·B·M·松卡达
T·班卡
T·斯里达尔
R·雅瓦特卡
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.)
Juniper Networks Inc
Original Assignee
Juniper Networks 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 Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN118118208A publication Critical patent/CN118118208A/zh
Pending legal-status Critical Current

Links

Abstract

本公开实施例涉及智能防火墙流处理器。描述了示例系统、方法和存储介质。一种示例网络系统包括处理电路和耦合到该处理电路的一个或多个存储器。该一个或多个存储器被配置为存储指令,当由处理电路执行这些指令时,使该网络系统获取遥测数据,该遥测数据包括与多个流关联的流处理数据。该指令使网络系统根据重要性对由遥测数据指示的多个流进行排名。该指令使网络系统向控制器或网络接口卡(NIC)中的至少一个发送指示多个流的至少一个相应排名的信息,该NIC包括NIC处理电路。

Description

智能防火墙流处理器
相关申请的交叉引用
本申请要求2023年9月21日提交的序列号为18/472,123的美国申请的优先权,其要求2022年11月30日提交的序列号为202241069004的印度临时专利申请的优先权,其全部内容并入本文。
技术领域
本公开涉及计算机网络。
背景技术
在典型的云数据中心环境中,有许多提供计算和/或存储能力以运行各种应用的互联的服务器。例如,数据中心可以包括为订阅者托管应用和服务的设施,例如,数据中心提供方的客户。例如,该数据中心可以托管所有基础设施设备,例如网络和存储系统、冗余电源供应和环境控制器。在典型的数据中心中,存储服务器和应用服务器(计算节点)的集群经由通过物理网络交换机和路由器的一层或多层提供的高速交换机结构互联。更复杂的数据中心向遍布世界的基础设施提供位于各种物理托管设施中的订阅者支持设备。
在服务器和交换机结构之间的连接发生在被称为网络接口卡(NetworkInterface Card,NIC)的硬件模块处。传统的NIC包括应用专用集成电路(Application-Specific Integrated Circuit,ASIC),以执行分组转发,这包括一些基本的层2/层3(Layer 2/Layer 3,L2/L3)功能。在多个传统的NIC中,分组处理、管理和其他高级功能,被称为“数据路径”,其由该主机CPU执行,即包括该NIC的服务器的CPU。因此,在服务器中的CPU资源由运行在那个服务器上的应用以及也由数据路径处理共享。例如,在4核心x86服务器中,多个核心中的一个核心可以被保留用于数据路径,为应用和该主机操作系统留下三个核心(或CPU的75%)。
一些NIC供应方已经开始在NIC本身中包括附加的处理单元,以从主机CPU卸载数据路径处理的至少一些到NIC。例如,在NIC中的处理单元可以是多核心ARM处理器,该多核心ARM处理器有由数据处理单元(Data Processing Unit,DPU)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA),和/或ASIC提供的一些硬件加速。包括这种加强的数据路径处理能力的多个NIC通常被称为智能NIC。
发明内容
由于云原生应用的高度分布式性质和动态部署条件,云原生应用的出现正在为在网络之内的通信模式带来附加的复杂性。现在网络被期望是应用感知的,这要求例如服务器的终端节点参与各种传统上不由交换机和/或路由器执行的网络任务。这已经加速了用于以高效的方式执行不同的网络服务的数据处理单元(DPU)或智能网络接口卡(SmartNetwork Interface Card,SmartNIC)的出现。本公开提出用于使用智能NIC(本文也称为DPU)实现应用感知网络服务的闭环框架。在一些示例中,在设备和一个或多个智能NIC上执行的机器学习模型可以为基于微服务的应用的管理和观察创建自修正网络。伴随或通过机器学习技术的使用,智能NIC可以执行应用性能度量的连续监测,并且能够采取修正措施,以实时地(或接近实时地)补救安全或性能问题。
现代基于微服务的应用可以假定网络是黑盒子。这些服务可以使用诸如远程过程调用(例如,gRPC)和表述性状态传输(Representational State Transfer,REST)的框架相互交互。这些假设和交互创建了环境,在此环境中,网络不知道该网络正在传输的应用,并且反之亦然,这可能导致网络和基于微服务的应用的能力的利用不足。管理员可以监测发生在有不同的工具集的网络之内的应用和网络,这可能增加这种监测的成本,并且在这种监测期间响应于发现的失常、异常或其他问题创建不必要的延迟。
网络监测工具通常不是与其余基础设施完全集成的。在几乎所有的监测架构中,交换机和路由器使用例如简单网络管理协议(Simple Network Management Protocol,SNMP)或类似的机制导出遥测数据,以便运行在相同的网络或在云中的服务器上的监测软件可以分析该遥测数据。这些工具可以标识一些问题,但由于该工具接收有限的遥测数据(例如,网络层遥测数据),工具对分组流的影响有限。类似地,应用监测需要复杂的软件或使用许多系统资源在服务网格中运行的边车。因此,结合网络和应用层监测与分组转发管线可以是非常可取的。
基于独立于编程协议的分组处理器(Programming Protocol-independentPacket Processors,P4)的交换机,诸如可编程管线,为实现网络和应用监测与分组转发管线的结合提供一些希望,但是不受欢迎。网络处理器具有在某种程度上解决这种监测问题的潜力,但是网络处理器通常被呈现于网络的边缘,这可能不是最优的。DPU和/或智能NIC的出现通过允许监测软件成为分组转发流的部分向解决这种监测问题提供了机会,而不影响延迟和吞吐量。这种出现能够在带宽和时延方面大规模地使用智能NIC设计用于实现应用感知服务的闭环框架,例如应用感知威胁检测和SLA执行。例如,智能NIC可以被用于实时地和/或接近实时地监测、检测和消除威胁。之前的工作专注于使用智能NIC来加速工作负载性能。本文公开的闭环框架使以前可能是不可能的用例可能。例如,现有的基于学习的解决方法仅监测网络业务的一些部分,诸如数据中心进出的数据。由于这种限制,现有的基于学习的解决办法可以只在网络边缘处执行网络策略。随着公共云的普及,许多企业共享相同的计算和网络资源,对于在数据中心里的策略执行需要更大的需求。在本公开中描述的利用智能NIC的闭环系统可以检查在数据中心中生成的每个分组,从而形成真正的应用感知策略执行系统。
在本公开中,术语智能NIC旨在涵盖被称为DPU或基础设施处理单元(Infrastructure Processing Units,IPUs)的设备的类别。这些智能NIC通常以PCIe卡的形式要素附加到服务器。每张卡可以覆盖专用的硅组件(通常是单个芯片ASIC),这包括处理器核心的集和专用的硅复合体,该硅复合体可以被用于执行分组处理和安全功能。利用智能NIC的一个优点是智能NIC包括混合架构,例如通过例如ARM处理器核心的处理电路提供可编程性,并且通过ASIC提供专用的加速和卸载功能。由于在ARM核心上引入服务的能力,服务器可以是完全孤立在网络和运行在智能NIC上的安全服务之外的。
通常,技术被描述用于闭环应用感知网络服务,该服务包括充分利用智能NIC的处理单元来增加包括智能NIC的服务器的网络的处理和网络功能的边缘服务平台。由边缘服务平台提供的特征可以包括,例如:智能NIC的编排;API驱动的在智能NIC上的服务的部署;智能NIC的添加、删除和替换;服务(例如安全服务)和其他在智能NIC上的资源的监测;以及在各种运行在智能NIC上的服务之间的连接的管理。更具体地,本公开描述了用于动态生成和实现防火墙策略、动态修正服务等级协议(Service Level Agreement,SLA)问题、动态处理基于排名的流的分组、动态创建流表条目、动态优化防火墙策略搜索以及动态访问和/或缓解出口业务安全问题的技术,各自使用边缘服务平台和一个或多个智能NIC。
在一个示例中,本公开描述了包括处理电路的网络系统;以及一个或多个存储器,该一个或多个存储器耦合到处理电路并且被配置为存储指令,当由处理电路执行这些指令时,使网络系统:获取遥测数据,遥测数据包括与多个流关联的流处理数据;根据重要性,对由遥测数据指示的多个流进行排名;以及向控制器或网络接口卡NIC中的至少一个发送指示多个流的至少一个流的相应排名的信息,NIC包括NIC处理电路。
在另一示例中,本公开描述了一种方法,包括:获取遥测数据,遥测数据包括与多个流关联的流处理数据;根据重要性,对由遥测数据指示的多个流进行排名;以及向控制器或网络接口卡NIC中的至少一个发送指示多个流的至少一个流的相应排名的信息,NIC包括NIC处理电路。
在另一示例中,本公开描述了一种计算机可读存储介质,存储有指令,当指令被执行时使处理电路:获取遥测数据,遥测数据包括与多个流关联的流处理数据;根据重要性,对由遥测数据指示的多个流进行排名;以及向控制器或网络接口卡NIC中的至少一个发送指示多个流的至少一个流的相应排名的信息,NIC包括NIC处理电路。
本公开的一个或多个示例的细节在附图和以下描述中陈述。其他特征、对象和优点可以从描述和图以及从权利要求中明显看出。
附图说明
图1是示出了具有在其中本文描述的技术的示例可以被实现的数据中心的示例网络系统的框图。
图2是根据本文描述的技术示出了使用具有单独处理单元的网络接口卡以执行由边缘服务平台管理的服务的示例计算设备的框图。
图3是根据本公开的技术示出了具有服务器的数据中心的概念图,服务器各自包括由边缘服务平台控制的具有单独处理单元的网络接口卡。
图4是根据本文描述的技术示出了使用具有单独处理单元的网络接口卡以执行由边缘服务平台管理的服务的示例计算设备的框图。
图5是根据本公开的技术示出了示例系统的框图。
图6是根据本公开的一个或多个方面示出了用于在智能网络接口控制器(SmartNIC)中的应用感知服务的示例闭环架构的概念图。
图7是根据本公开的一个或多个方面示出了示例遥测收集器架构的框图。
图8是根据本公开的一个或多个方面示出了示例动作单元架构的框图。
图9是根据本公开的一个或多个方面示出了示例性能分析和故障排除引擎(Performance Analysis and Troubleshooting Engine,PATE)服务单元架构的框图。
图10是根据本公开的一个或多个方面示出了示例异常检测管线的框图。
图11A和图11B是根据本公开的一个或多个方面示出了示例攻击方试图阻止服务网格的服务发现控制平面功能的概念图。
图12是根据本公开的一个或多个方面示出了增加攻击的数目时示例异常缓解时间的图形图。
图13是根据本公开的一个或多个方面示出了用于每分钟服务发现DNS计数度量的示例异常检测的表。
图14是根据本公开的一个或多个方面示出了示例异常检测的流程图。
图15是根据本公开的一个或多个方面示出了在攻击之前和之后的示例应用通信拓扑的概念图。
图16是根据本公开的一个或多个方面示出了示例自动服务等级协议(SLA)执行技术的概念图。
图17是根据本公开的一个或多个方面示出了示例卸载技术的流程图。
图18是根据本公开的一个或多个方面示出了示例自学习流优先级技术的概念图。
图19是根据本公开的一个或多个方面示出了示例流排序技术的流程图。
图20是根据本公开的一个或多个方面示出了防火墙服务的示例分组处理技术的流程图。
图21是根据本公开的一个或多个方面示出了示例策略表填充技术的流程图。
图22是根据本公开的一个或多个方面示出了示例防火墙策略优化器的框图。
图23是根据本公开的一个或多个方面示出了用于减少分布到分布式防火墙的节点的防火墙策略的数目的示例技术的流程图。
图24是根据本公开的一个或多个方面示出了基于出口业务的示例攻击的概念图。
图25是根据本公开的一个或多个方面示出了示例自学习出口业务控制器的概念图。
图26是根据本公开的一个或多个方面示出了在出口攻击之前的示例应用知识图的概念图。
图27是根据本公开的一个或多个方面示出了示例更新的知识图的概念图。
图28是根据本公开的一个或多个方面示出了用于配置防火墙策略以缓解出口攻击的示例技术的时序图。
图29是根据本公开的一个或多个方面示出了用于配置防火墙策略以缓解出口攻击的示例技术的流程图。
图30是根据本公开的一个或多个方面示出了用于响应恶意出口连接的示例技术的流程图。
相似附图标记在整个描述和图中意指相似元素。
具体实施方式
图1是示出了具有在其中本文描述的技术的示例可以被实现的数据中心10的示例网络系统8的框图。通常,数据中心10为客户站点11提供应用和服务的操作环境,该客户站点11具有由服务提供方网络7耦合到数据中心10的一个或多个客户网络。例如,数据中心10可以托管基础设施设备,例如网络和存储系统、冗余电源供应和环境控制。服务提供方网络7被耦合到公共网络4。公共网络4可以表示由其他提供方管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施的部分,例如互联网。例如,公共网络4可以表示局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、互联网、虚拟LAN(VirtualLAN,VLAN)、公司LAN、第3层虚拟专用网络(Virtual Private Network,VPN)、由执行服务提供方网络7的服务提供方执行的互联网协议(Internet Protocol,IP)内联网、公司IP网络或一些它们的结合体。
虽然客户站点11和公共网络4被主要示出和描述为服务提供方网络7的边缘网络,但在一些示例中,一个或多个客户站点11和公共网络4是在数据中心10或另一数据中心之内的租户网络。例如,数据中心10可以托管多个租户(客户),租户(客户)各自与一个或多个虚拟专用网络(VPN)关联。VPN中的每个VPN可以实现客户站点11中的一个站点。
服务提供方网络7向附加的客户站点11、数据中心10和公共网络4提供基于分组的连通性。服务提供方网络7可以表示由服务提供方执行(并且可能拥有)以互联多个网络的网络。服务提供方网络7可以实现多协议标签交换(Multi-Protocol Label Switching,MPLS)转发以及在这种实例中可以被称为MPLS网络或MPLS主干网。在一些实例中,服务提供方网络7表示多个互联的自治系统,例如互联网,该自治系统提供来自一个或多个服务提供方的服务。
在一些示例中,数据中心10可以表示许多地理上分布的网络数据中心中的一个网络数据中心。如图1的示例所示出的,数据中心10可以是向客户提供网络服务的设施。服务提供方的客户可以是集体实体,例如公司和政府或个人。例如,网络数据中心可以为几个公司和终端用户托管web服务。其他模范服务可以包括数据存储、虚拟专用网络、业务工程、文件服务、数据挖掘、科学或超级计算等。虽然被示出为服务提供方网络7的单独边缘网络,但数据中心10的元素,例如一个或多个物理网络功能(Physical Network Function,PNF)或虚拟化网络功能(Virtualized Network Function,VNF),可以被包括在服务提供方网络7核心之内。
在本示例中,数据中心10包括经由交换结构14互联的存储和/或计算服务器,该交换结构14由物理网络交换机和路由器的一层或多层提供,其中服务器12A至12X(本文称为“服务器12”)被描述为与机架顶部(Top-Of-Rack,TOR)交换机16A至16N耦合。本公开可以将TOR交换机16A至16N统称为“TOR交换机16”。TOR交换机16可以是提供层2(MAC)和/或层3(例如,IP)路由和/或交换功能的网络设备。
服务器12也可以在本文中被称为“主机”或“主机设备”。数据中心10可以包括许多附加的服务器,该服务器与数据中心10的其他TOR交换机16耦合。在图1的示例中,服务器12A和12X在示出的示例中直接耦合到TOR交换机16,并且服务器12B、12C和12D在示出的示例中未直接耦合到TOR交换机16。服务器12B、12C和12D可以经由服务器12A或12X到达TOR交换机16和IP结构20,如下将进一步详细描述。
在示出的示例中的交换机结构14包括互联的TOR交换机16(或其他“叶”交换机),该TOR交换机16与机架交换机18A至18M(统称为“机架交换机18”)的配电层耦合。机架交换机也可以被称为“旋转”或“核心”交换机。虽然没有在图1的示例中显示,数据中心10也可以包括一个或多个非边缘交换机、路由器、集线器、网关、安全设备(例如,防火墙、入侵检测,和/或入侵防御设备)、服务器、计算机终端、笔记本计算机、打印机、数据库、无线移动设备(例如,手机或个人数字助理)、无线接入点、桥接器、电缆调制解调器、应用加速器和/或其他网络设备。
在一些示例中,TOR交换机16和机架交换机18向服务器12提供到IP结构20和服务提供方网络7的冗余(例如,多宿主)连接。机架交换机18汇聚业务流并且提供在TOR交换机16之间的连接。TOR交换机16和机架交换机18可以各自包括一个或多个处理器和存储器,并且能够执行一个或多个软件进程。机架交换机18被耦合到IP结构20,该IP结构20可以执行第3层路由以经由服务提供方网络7路由在数据中心10和客户站点11之间的网络业务。在图1中显示的数据中心10的交换架构仅仅是示例。例如,其他交换架构可以具有更多或更少的交换层。TOR交换机16和机架交换机18可以分别包括物理网络接口。
在本公开中,术语“分组流”、“业务流”或简单的“流”分别指源自特定源设备或端点并且向特定目的地设备或端点发送的分组集。例如,单个分组流可以由5元组:<源网络地址,目的地网络地址,源端口,目的地端口,协议>标识。这个5元组通常标识接收的分组对应的分组流。n元组指从该5元组得到的任意n个项目。例如,对于分组的2元组可以指对于分组的<源网络地址,目的地网络地址>或<源网络地址,源端口>的结合。术语“源端口”指传输层(例如,传输控制协议(Transmission Control Protocol,TCP)或用户数据报协议(UserDatagram Protocol,UDP))端口。“端口”可以指NIC的物理网络接口。
每个服务器12可以是计算节点、应用服务器、存储服务器或其他类型的服务器。例如,服务器12中的每个服务器可以表示被配置为根据本文描述的技术执行的计算设备,例如基于x86处理器的服务器,。服务器12可以为网络功能虚拟化架构(Network FunctionVirtualization,NFV)提供网络功能虚拟化基础设施(Network Function VirtualizationInfrastructure,NFVI).
服务器12可以托管用于一个或多个虚拟网络的端点,这些虚拟网络在图1中由IP结构20和交换结构14表示的物理网络上执行。端点可以包括一个或多个虚拟网络端点,例如虚拟机、容器化应用(例如,编排平台,包括Kubernetes、Docker swarm、Mesos/Marathon、OpenShift、OpenStack、VMWare和Amazon ECS),或在操作系统或裸机上原生地执行的应用。容器化是基于操作系统级别虚拟化的虚拟化方案。像是虚拟机,每个容器都是虚拟化的,并且可以维持彼此隔离和与主机隔离。然而,不像虚拟机器,每个容器都可以省略个人操作系统,并且只提供应用套件和特定于应用的库。通常,容器由主机作为隔离的用户空间实例执行,并且可以与在主机上执行的其他容器共享操作系统和通用库。容器可以作为逻辑相关的元素组(有时在一些例如Kubernetes的编排平台中被称为“荚(pod)”)管理。虽然主要是根据基于数据中心的交换网络描述,但其他物理网络,例如服务提供方网络7,可以支撑一个或多个虚拟网络。
服务器中的每个服务器12包括NIC 13A至13X(统称为“NIC 13”)中的至少一个网络接口卡NIC。例如,服务器12A包括NIC 13A。NIC 13中的每个NIC包括至少一个端口。每个NIC 13可以在耦合到NIC的端口的一个或多个通信链路上发送和接收分组。
在一些示例中,每个NIC 13中的每个NIC为虚拟化输入/输出(Input/Output,I/O)提供一个或多个虚拟硬件组件。用于虚拟化I/O的虚拟硬件组件可以是物理NIC 13(“物理功能”)的虚拟化。例如,在外围组件接口特殊兴趣组SR-IOV规范中被描述的单根I/O虚拟化(Single Root I/O Virtualization,SR-IOV)中,网络接口卡(或“网络适配器”)的外围组件接口(Peripheral Component Interface,PCI)表达(PCI Express,PCIe)物理功能被虚拟化以将一个或多个虚拟网络接口卡呈现为用于由在服务器12上执行的单独的端点使用的“虚拟功能”。通过这种方式,虚拟网络端点可以共享相同的PCIe物理硬件资源,并且虚拟功能是虚拟硬件组件的示例。作为另一示例,一个或多个服务器12可以实现可用的准虚拟化框架Virtio,例如,对于Linux操作系统,它提供模拟的NIC功能作为虚拟硬件组件的类型。作为另一示例,一个或多个服务器12可以实现Open vSwitch以执行在用于托管的虚拟机的一个或多个虚拟NIC(Virtual NIC,vNIC)之间的分布式虚拟多层交换,其中这种vNIC也可以表示虚拟硬件组件的类型。在一些实例中,虚拟硬件组件是虚拟I/O(例如,NIC)组件。在一些实例中,虚拟硬件组件是SR-IOV虚拟功能,并且可以向SR-IOV提供基于数据平面开发工具包(Data Plane Development Kit,DPDK)的直接进程用户空间访问。
在一些示例中,包括图1的示例,NIC 13中的一个或多个NIC包括多个端口。NIC 13可以经由NIC 13的端口和通信链路互相连接,以形成具有NIC结构拓扑的NIC结构23。NIC结构23是连接到NIC 13中的至少另一NIC的NIC 13的集合,该NIC 13,并且通信链路将NIC 13互相耦合。
NIC 13A至13X包括相应处理电路,例如处理单元25A至25X(统称为“处理单元25”)。处理单元25可以从服务器12的CPU卸载(offload)数据通路的方面。一个或多个处理单元25可以是具有由数据处理单元(Data Processing Unit,DPU)、提供的硬件加速的多核心ARM处理器、现场可编程门阵列(Field Programmable Gate Array,FPGA),和/或应用专用集成电路(Application-Specific Integrated Circuit,ASIC)。因为NIC 13包括处理单元25,所以NIC 13可以被称为“智能NIC”或“GeniusNIC”。
根据本公开的技术的各个方面,边缘服务平台使用NIC 13的处理单元25来增强包括NIC 13的交换结构14和/或服务器12的处理和联网功能。在图1的示例中,网络系统8包括边缘服务控制器28。本公开也可以将边缘服务控制器,例如边缘服务控制器28,称为边缘服务平台控制器。
边缘服务控制28可以通过由处理单元25执行的编排服务部分管理在NIC 13之内的边缘服务平台的操作;在NIC 13上编排API驱动的服务部署;在边缘服务平台之内编排NIC 13的添加、删除和替换;监测在NIC 13上的服务和其他资源;和/或管理在运行在NIC13上的各种服务133之间的连接。边缘服务控制器28可以包括一个或多个计算设备,例如服务器设备、个人计算机、中间网络设备等。
边缘服务控制器28可以将描述在NIC 13上可用的信息、NIC结构23的拓扑、或其他关于边缘服务平台的信息传达给编排系统(未显示)或控制器24。示例编排系统包括OpenStack、VMWARE的vCenter或华盛顿州雷德蒙德的Microsoft公司的系统中心。示例控制器包括JUNIPER NETWORKS或Tungsten Fabric的Contrail控制器。控制器24可以是网络结构管理器。关于与数据中心10或其他软件定义的网络的其它设备一起操作的控制器24的附加信息可以在于2013年6月5日提交并且标题为“用于虚拟网络分组流的物理路径确定”国际申请号PCT/US2013/044378中找到;以及在于2014年3月26日提交并且标题为“用于虚拟网络的隧道包聚合”的美国专利号9,571,394中找到,其中的每个都被参考纳入,就像本文完全阐述一样。
在一些示例中,边缘服务控制器28程序NIC 13的处理单元25以沿着数据路径通过NIC结构23路由数据分组,例如,基于与数据分组关联的应用(服务)。当在主机对上的多个服务互相通信时,沿着数据路径通过NIC结构23路由数据分组可以在NIC结构23中避免使个人NIC过载。例如,边缘服务控制器28可以管理在NIC结构23中路由的数据分组。如图1所示,NIC结构23包括众多在NIC结构拓扑中由通信链路耦合的NIC 13。在这一示例中,边缘服务控制器28可以从NIC 13接收资源可用性值。边缘服务控制器28可以经由包括至少一个NIC的NIC集确定用于使用协议从源NIC传输到目的地NIC的流的数据分组的数据路径。NIC 13包括源NIC、目的地NIC和NIC集。作为确定数据路径的部分,边缘服务控制器28可以基于资源可用性值选择NIC集。边缘服务控制器28可以向源NIC和在NIC集中的每个NIC传输数据路径数据,以使源NIC和在NIC集中的每个NIC使用协议的标识符标识流的数据分组,并且经由数据路径从源NIC向目的地NIC传输流的数据分组。边缘服务控制器28可以通过这种方式建立多条数据路径。不像在传统数据中心结构中,服务器12因此可以直接交换分组,而不是经由单独的交换设备(例如,机架交换机18)。以上可以被认为是服务负载平衡的形式。
图1的示例系统可以形成用于使用智能NIC实现应用感知网络服务的闭环框架,该智能NIC例如NIC 13,如下将进一步描述的。
图2是根据本文描述的技术示出了使用具有单独处理单元25的NIC230以执行由边缘服务平台管理的服务的示例计算设备200的框图。例如,NIC230可以实现分布式防火墙服务的部分,实现在服务器上执行的服务的部分,例如图1中的服务器12中的一个服务器,或类似的。图2的计算设备200可以表示真实的或虚拟的服务器,并且可以表示图1的任何服务器12的示例实例。在图2的示例中,计算设备200包括耦合计算设备200的硬件环境的硬件组件的总线242。具体来说,在图2的示例中,总线242耦合了支持单路由输入/输出虚拟化(SR-IOV)的NIC230、存储磁盘246和微处理器210。在一些示例中,前端总线耦合微处理器210和存储器设备。在一些示例中,总线242耦合存储器设备244、微处理器210和NIC230。总线242可以表示PCIe总线。在一些示例中,直接内存访问(Direct Memory Access,DMA)控制器可以控制耦合到总线242的组件之间的DMA传输。在一些例子中,耦合到总线242的组件控制耦合到总线242的组件之间的DMA传输。在一些示例中,耦合到总线242的组件控制耦合到总线242的组件之间的DMA传输。
微处理器210可以包括一个或多个处理器,每个处理器包括独立的执行单元(“处理核心”),以执行符合指令集架构的指令。执行单元可以被实现为单独的集成电路(Integrated Circuit,IC)或可以被组合在一个或多个多核处理器(或“众核”处理器)之内,多核处理器各自使用单个IC(即,芯片多处理器)实现。
磁盘246表示包括以任何方法或技术实现的易失性和/或非易失性的、可移动或不可移动的计算机可读存储介质,该介质用于信息的存储,例如处理器可读指令、数据结构、程序模块或其他数据。计算机可读存储介质包括但不限于随机访问存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、EEPROM、闪存、CD-ROM、数字多功能光盘(Digital Versatile Disc,DVD)或其他光存储、磁带、磁故事、磁盘存储或其他磁存储设备,或任何其他能够用于存储所需信息并且由微处理器210访问的介质。
存储设备244包括一个或多个计算机可读存储介质,它可以包括随机访问存储器(RAM),例如各种形式的动态RAM(Dynamic RAM,DRAM),例如DDR2/DDR3 SDRAM,或静态RAM(Static RAM,SRAM)、闪存,或任何其他形式的固定或可移动存储介质,该介质能够用于以指令或数据结构的形式承载或存储所需程序代码和程序数据,并且能够被计算机访问。存储器设备244提供了由可寻址的存储器位置组成的物理地址空间。
网络接口卡(NIC)230包括被配置为使用底层物理网络的链路交换数据分组的一个或多个接口232。接口232可以包括具有一个或多个网络端口的端口接口卡。NIC230也包括卡内存储器227以,例如,存储分组数据。在NIC230和耦合到总线242的其他设备之间的直接内存访问传输可以从存储器227读/写。
存储器设备244、NIC230、磁盘246和微处理器210为执行管理程序214和由管理程序214管理的一个或多个虚拟机228的软件栈提供操作环境。通常,虚拟机向在隔离的虚拟环境中执行应用提供了虚拟化的/客户操作系统。因为虚拟机是从主机服务器的物理硬件中虚拟化的,执行应用被隔离在主机的硬件和其他虚拟机之外。计算设备200执行管理程序214以管理虚拟机228。示例管理程序包括Linux内核的基于内核的虚拟机(Kernel-basedVirtual Machine,KVM)、Xen、VMWARE提供的ESXi、MICROSOFT提供的Windows Hyper-V,以及其他开源和专有的管理程序。管理程序214可以表示虚拟机管理器(Virtual MachineManager,VMM)。虚拟机228可以托管一个或多个应用,例如虚拟网络功能实例。在一些示例中,虚拟机228可以托管一个或多个VNF实例,其中VNF实例中的每个VNF实例都被配置为应用网络功能于分组。
虚拟机的另一备选是虚拟化容器,例如那些开源DOCKER容器应用提供的容器。像虚拟机,每个容器都是虚拟化的,并且可以与宿主机和其他容器保持隔离。然而,不像虚拟机,每个容器可以忽略单个操作系统,而只提供应用套件和特定于应用的库。容器作为隔离的用户空间实例由主机执行,并且可以与在主机上执行的其他容器共享操作系统和公共库。因此,容器可能比虚拟机需要更少的处理能力、存储和网络资源。真如本文使用的,容器也可以被称为虚拟化引擎、虚拟私有服务器、竖井或监狱(jail)。在一些实例中,本文描述的技术与容器和虚拟机或其他虚拟化组件有关。
虽然在图2中的虚拟网络端点是根据虚拟机示出和描述的,但其他操作环境,例如容器(例如,DOCKER容器)可以实现虚拟网络端点。操作系统内核(没有在图2中显示)可以在内核空间中执行,并且可以包括,例如,Linux、伯克利软件分布(Berkeley SoftwareDistribution,BSD)、另一Unix变型内核,或者可以从MICROSOFT获得的Windows服务器操作系统内核。
管理程序214包括物理驱动器225,以使用NIC230提供的物理功能。在一些情况下,NIC230也可以实现SR-IOV,以使在虚拟机224之间共享物理网络功能(I/O)。NIC230的每个端口可以与不同的物理功能关联。共享的虚拟设备,也称为虚拟功能,提供专用的资源,使每个虚拟机228(以及相应的客户操作系统)可以访问NIC230的专用资源,因此这对于每个虚拟机228来说都是专用的NIC。虚拟功能可以是轻量级的与物理功能和与其他虚拟功能共享物理资源的PCIe功能。根据SR-IOV标准,NIC230可以具有数千个可用的虚拟功能,但对于I/O密集型应用,配置的虚拟功能的数目通常少得多。
虚拟机228包括单独的被直接提交到虚拟机228的客户操作系统中的虚拟NIC229,从而经由总线242提供在NIC230和虚拟机228之间的直接通信,使用分配给虚拟机的虚拟功能。这可以减少管理程序214在基于软件的VIRTIO和/或vSwitch的实现中涉及的过载,其中在存储器设备244之内的管理程序214的存储器地址空间存储分组数据,并且因为将分组数据从NIC230复制到管理程序214的存储器地址空间,并且从管理程序214的存储器地址空间复制到虚拟机228的存储器地址空间,消耗微处理器210的周期。
NIC230还可以包括基于硬件的以太网桥234。以太网桥234可以是嵌入式交换机的示例。以太网桥234可以执行在NIC230的虚拟功能和物理功能之间的层2转发。因此,在一些情况下,以太网桥234经由总线242提供虚拟机228之间的分组转发的硬件加速,以及在管理程序214和任何虚拟机228之间的分组转发的硬件加速。管理程序214可以经由物理驱动器225访问物理功能。以太网桥234可以与处理单元25在物理上分开。
计算设备200可以耦合到包括覆盖网络的物理网络交换结构,该覆盖网络将交换结构从物理交换机扩展到软件或耦合到交换结构的物理服务器的“虚拟”路由器,其中包括虚拟路由器220。虚拟路由器可以是由物理服务器,例如图1中的服务器12,执行的进程、线程或它们的组件,其动态地创建和管理可用于在虚拟网络端点之间的通信的一个或多个虚拟网络。在一个示例中,虚拟路由器使用覆盖网络实现每个虚拟网络,该覆盖网络提供将端点的虚拟地址从在端点执行的服务器上的物理地址(例如,IP地址)解耦的能力。每个虚拟网络可以使用它自己的寻址和安全方案,并且可以被视为与物理网络及其寻址方案正交。各种技术可以在通过物理网络的虚拟网络之内以及跨虚拟网络上被用于传输包。虚拟路由器的至少部分功能可以作为服务233或结构服务235中的一个服务执行。在图2的示例中,虚拟路由器220在使用物理功能进行I/O的管理功能214之内执行,但是虚拟路由器220可以在管理程序、主机操作系统、主机应用、虚拟机228中的一个虚拟机和/或NIC230的处理单元25之内执行。
通常,每个虚拟机228可以被分配虚拟地址,以在相应的虚拟网络之内使用,其中每个虚拟网络可以与虚拟路由器220提供的不同虚拟子网关联。例如,虚拟机228可以被分配它自己的虚拟层三(L3)IP地址,用于发送和接收通信,但可能不知道虚拟机正在其上执行的计算设备200的IP地址。在这种情况下,“虚拟地址”是用于应用的地址,其不同于底层物理计算机系统(例如,计算设备200)的逻辑地址。
在一个实现中,计算设备200包括控制计算设备200的虚拟网络的覆盖的虚拟网络(Virtual Network,VN)代理(未显示),并且编排在计算设备200之内的数据分组的路由。通常,VN代理与多个虚拟网络的虚拟网络控制器通信,生成控制包的路由的命令。VN代理可以作为用于控制在虚拟机228和虚拟网络控制器之间的平面消息的代理服务器运行,虚拟网络控制器例如控制器24(图1)。例如,虚拟机可以经由VN代理请求发送使用其虚拟地址的消息,并且VN代理可以依次发送消息和响应于接收到的发出第一消息的虚拟机的虚拟地址的消息的请求。在一些情况下,虚拟机228可以调用由VN代理的应用编程接口提出的过程或函数调用,并且VN代理也可以处理消息的封装,包括寻址。
在一个示例中,由在虚拟网络域之内通过虚拟机228执行的应用的实例生成或消耗的网络分组,例如,三层(L3)IP分组或二层(L2)以太网分组,可以被封装在由物理网络传输的另一分组(例如,另一个IP或以太网分组)中。在虚拟网络中传输的分组在本文中可以被称为“内部分组”,而物理网络分组在本文中可以被称为“外部分组”或“隧道分组”。在物理网络分组之内的虚拟网络分组的封装和/或解封装可以由虚拟路由器220执行。这个功能在本文中被称为隧道,并且可以被用于创建一个或多个覆盖网络。除了IPinIP,其他可以被使用的示例隧道协议包括遍及通用路由封装(Generic Route Encapsulation,GRE)的IP、虚拟可扩展局域网(Virtual Extensible Local Area Network,VXLAN)、遍及GRE的多协议标签交换(Multiprotocol Label Switching,MPLS)(MPLSoGRE)、遍及用户数据报协议(User Datagram Protocol,UDP)的MPLS(MPLSoUDP)等。
如上所述,虚拟网络控制器可以提供逻辑上集中的控制器,以促进一个或多个虚拟网络的操作。例如,虚拟网络控制器可以维护路由信息库,例如,为物理网络以及一个或多个覆盖网络存储路由信息的一个或多个路由表。管理程序214的虚拟路由器220为N个虚拟网络实现网络转发表(Network Forwarding Table,NFT)222A至222N,为此虚拟路由器220作为隧道端点操作。通常,每个NFT 222存储为对应的虚拟网络转发的信息,并且标识数据分组在何处转发以及是否将数据分组封装在隧道协议中,例如使用可以包括为虚拟网络协议栈的不同层的一个或多个头的隧道头。每个NFT 222都可以是由虚拟路由器220实现的不同路由实例(未显示)的NFT。
根据本公开的技术,边缘服务控制器28(图1)使用NIC 230的处理单元25,以增强计算设备200的处理和网络功能。处理单元25包括处理电路231,以执行由边缘服务控制器28编排的服务。处理电路231可以表示处理核心、ASIC、FPGA或其他集成电路和可编程硬件的任何组合。在示例中,处理电路可以包括具有例如一个或多个核心的片上系统(System-on-Chip,SoC)、用于高速分组处理的网络接口、用于特定功能(例如,安全/密码、机器学习、存储)的一个或多个加速引擎、可编程逻辑、集成电路等。这种SoC可以被称为数据处理单元(Data Processing Unit,DPU)。DPU可以是处理单元25的示例。
在示例NIC230中,处理单元25执行操作系统内核237和用于服务的用户空间241。内核237可以是Linux内核、Unix或BSD内核、实时OS内核或其他用于管理处理单元25的硬件资源和管理用户空间241的内核。
服务233可以包括网络、安全(例如,分布式防火墙服务)、存储、数据处理、协同处理、机器学习或其他服务。服务233、边缘服务平台(Edge Service Platform,ESP)代理236和结构服务235包括可执行指令。处理单元25可以将服务233、ESP代理236和结构235的指令作为进程和/或在例如容器或虚拟机的虚拟执行元素之内执行。如在本公开中其他地方所述,服务233可以增强主机处理器(例如,微处理器210)的处理能力,例如,通过使计算设备200能够卸载分组处理、安全或其他本应由主机处理器执行的操作。服务233也可以在边缘提供安全性。服务233的网络服务可以包括安全服务(例如,分布式防火墙)、策略实施、代理、负载平衡或其他L4至L7服务。
处理单元25执行ESP代理236以与边缘服务控制器28交换用于边缘服务平台的数据(图1)。虽然在图2的示例中显示的是在用户空间241中,但在其他示例中,ESP代理236是内核237的内核模块。例如,ESP代理236可以向边缘服务控制器28收集和发送遥测数据。遥测数据可以由服务233生成,并且可以描述再网络中的业务、计算设备200或网络资源的可用性、处理单元25的资源(例如存储器或核心利用率)的资源可用性,或其他信息。如另一示例,ESP代理236可以从边缘服务控制器28接收以执行任何服务233的服务代码、以配置任何服务233的服务配置、用于注入到网络的分组或其他数据。
边缘服务控制器28通过由处理单元25执行的例如编排和配置的服务233、部署服务233管理处理单元25的操作;在边缘服务平台之内添加、删除和替换NIC、监测服务233和在NIC230上的其他资源,并且管理在运行在230上的各种服务233之间的连接。在NIC230上的示例资源包括存储器227和处理电路231。
处理电路231执行结构服务235以在NIC230和直接连接到NIC230端口的一个或多个其他NIC之间执行分组交换,即不经由外部交换机,例如TOR交换机16。边缘服务控制器28可以经由ESP代理236向结构服务235提供拓扑信息,该拓扑信息描述NIC结构23的拓扑。边缘服务控制器28可以经由ESP代理236向结构服务235提供流信息和/或转发信息。流信息描述,并且可用于标识分组流。该转发信息可用于向NIC230的输出端口映射由NIC230接收到的分组。在一些情况下,网络服务235可以独立地计算转发信息和/或流信息。
结构服务235可以确定在NIC230处接收的分组的处理和转发,并且通过以太网桥234桥接到处理单元25。由NIC230接收的分组可以是从另一计算设备的NIC发送到NIC230的,或者可以源自计算设备200的用户空间245。像NIC230的其他服务233,结构服务235可以处理接收到的分组。基于从边缘服务控制器28接收的信息或由结构服务235生成的信息,例如转发信息和/或流信息,结构服务235可以向输出端口映射接收的分组,该端口经由通信链路直接耦合到在NIC结构中的另一NIC。
图3是根据本公开的技术示出了具有服务器的数据中心的概念图,服务器各自包括由边缘服务平台控制的具有单独处理单元的网络接口卡。计算节点307A至307N的机架(统称为“计算节点307的机架”)可以对应于图1的服务器12,并且交换机308A至308N(统称为“交换机308”)可以对应于图1的交换结构14的交换机。代理302或编排器304表示由处理单元(如图3所示,作为数据处理单元或DPU)执行的软件,并且接收用于处理单元的配置信息,并且向编排器304发送用于包括处理单元的NIC的遥测和其他信息。网络服务312、L4至L7服务314、遥测服务316以及Linux和软件开发工具包(Software Development Kit,SDK)服务318可以表示服务233的示例。编排器304可以表示图1的边缘服务控制器28的示例。
网络自动化平台306连接并且管理网络设备和编排器304,通过它,网络自动化平台306能够利用边缘服务平台。例如,网络自动化平台306可以部署网络设备配置、管理网络、提取遥测信息,并且分析和提供网络状态的指示。
图4是根据本文描述的技术示出了使用具有单独处理单元的网络接口卡以执行由边缘服务平台管理的服务的示例计算设备的框图。虽然在本示例中显示了虚拟机,但是计算设备400的其他实例也可以或选择性地运行容器、本地进程或用于分组流的其他端点。不同类型的vSwitch可以被使用,例如Open vSwitch或虚拟路由器(例如,Contrail)。在端点和NIC之间的其他类型的接口也被考虑,例如tap接口、veth对接口等。
图5是根据本公开的技术示出了示例系统500的框图。系统500包括经由NIC结构523和交换结构514通信地耦合的多个服务器512A至512H(统称为“服务器512”)。系统500包括边缘服务控制器528。多个服务器512A至512H中的每个服务器可以包括NIC 513A至513H(统称为“NIC 513”)中的对应的NIC。NIC结构523包括NIC 513。NIC结构523可以包括在不遍历交换结构514的交换机的NIC 513对之间的多个潜在数据路径。这些“数据路径”中的每个数据路径都是通过NIC结构523从源NIC到目的地NIC的路径,并且这个术语与数据路径处理是不同的。边缘服务控制器528可以被通信耦合到在NIC结构523中的每个NIC 513。NIC结构523被通信耦合到交换结构514。交换结构514可以包括一个或多个交换机。
服务器512中的每个服务器可以具有类似于计算设备200配置的配置。NIC 513中的每个NIC可以具有类似于NIC230配置的配置。边缘服务控制器528可以类似于边缘服务控制器28。虽然在图5的示例系统500中显示了八个服务器512和八个NIC 513,但系统的备选示例可以包括数目较少或较多的服务器512和NIC513。虽然每个服务器被显示为包括单个NIC,但系统的备选示例可以包括具有多于一个NIC的服务器。
服务器512可以执行一个或多个应用。如根据图1所描述的,在示例中,一个或多个应用可以是由服务器512托管的服务器应用,并且可以表示端点。在一个示例中,一个或多个应用可以是由NIC 513的处理单元执行的NIC应用。在不同的服务器处的两个不同的NIC之间的数据路径的实现可以涉及两个阶段。第一阶段可以是编排阶段,并且第二阶段可以是转发阶段。边缘服务控制器528可以在编排阶段期间限定或编排在两个不同的服务器处的两个不同的NIC之间的一个或多个数据路径。边缘服务控制器528可以在数据路径中向NIC提供与被编排的数据路径关联的数据路径数据。在被编排的数据路径中的NIC可以在转发阶段期间根据被编排的数据路径转发数据分组。数据路径数据可以是根据图1描述的转发信息的示例。
编排阶段和转发阶段的实现将根据运行在服务器512E上的应用A1、A2和运行在服务器512D上的应用A3、A4描述。应用A1、A2、A3和A4可以是服务器应用(例如,由主机处理器执行的应用),或者可以是NIC应用(例如,由在NIC上的处理单元执行的应用)。在本示例中,应用A1和应用A3可以是服务链中的服务,并且应用A2和应用A4可以是服务链中的服务。
应用A1可以被配置为在数据分组中生成用于传输的应用数据,并且服务器512E可以被配置为根据用于传输的第一协议向应用A3发送数据分组。应用A1可以被称为第一源应用A1,并且应用A3可以被称为第一目的地应用。应用A2可以被配置为根据生成用于在数据分组中传输的应用数据,并且服务器512E可以被配置为根据第二协议来发送数据分组以用于传输到应用A4。应用A2可以被称为第二源应用A2,并且应用A4可以被成为第二目的地应用。第二协议可以不同于第一协议。
第一和第二协议的示例包括但不限于传输层协议或隧道协议(其可以充分利用传输层协议)。例如,第一协议可以是VXLAN协议。例如,第二协议可以是多协议标签交换/用户数据报协议(MPLSoUDP)协议。虽然本示例是根据VXLAN和MPLSoUDP协议描述的,但其他协议也可以被使用。包括源应用A1和A2的服务器512E可以被称为源服务器512E。在源服务器512E处的NIC 513E可以被称为源NIC 513E。服务器512D包括目的地应用A3和A4,并且可以被称为目的服务器512D。在目的服务器512D处的NIC 513D可以被称为目的地NIC 513D。
在NIC结构523中的NIC513和边缘服务控制器528可以实现基于NIC的数据分组转发。在这种环境下,在NIC 513中的处理单元25可以由运行在关联服务器512和NIC结构523上的服务共享。如果在两个服务器512集之间的所有业务始终采取相同的数据路径,在服务器之间的业务可以过载NIC 513,并且影响运行在服务器512上的服务。例如,如果从应用A1到应用A3的业务和从应用A2到应用A4的业务在相同的数据路径上从源NIC 513E向目的地NIC 513D转发,这可以导致那条数据路径上相对较高的任何NIC 513的资源利用率,从而影响性能。
边缘服务控制器528可以通过实现“服务感知”或“基于应用”的数据分组的路由解决这个问题。边缘服务控制器528可以编排基于应用的数据路径,并且NIC 51中的一个或多个NIC根据为在服务器512或NIC513上执行的应用对编排的基于应用的数据路径转发数据分组。
当应用(或服务)被部署在服务器512中的一个服务器或NIC513中的一个NIC处时,在对已部署的应用配置期间,网络服务控制器528可以被提供关于已部署的应用的数据。此类数据的示例可以包括与已部署的应用和可以与已部署的应用通信的其他应用关联的协议。此外,当应用被部署到主机(例如,服务器512中的一个服务器)时,边缘服务控制器528可以在NIC结构523中配置应用的首选传输。例如,如果第一业务(S1)和第三业务(S3)使用VXLAN互相通信,并且第二业务(S2)和第四业务(S4)使用MPLSoUDP用于通信,则边缘业务控制器528可以配置NIC结构523,以确保每个应用的传输需求被满足。例如,边缘服务控制器528可以指定,例如在流表中,对于在服务之间发送的分组进行外部头部封装。该服务可以运行在主机OS的顶端或由NIC 513的处理单元执行,或者两者兼有。在一些示例中,边缘服务控制器528可以使用本公开中其他地方描述的技术将应用或设备部署到服务器512,例如,基于NIC 513的本地服务等级协议(Service Level Agreement,SLA)和外部SLA。
在其中NIC 513E是源NIC,NIC 513D是目的地NIC的示例中,NIC结构523可以包括在源NIC 513E和目的地NIC 513D之间的多个不同的数据路径。服务233对分组的应用可以利用在NIC结构523中在每个网卡处的计算和带宽资源。在多个情况下,服务233对分组的应用可以利用在一些NIC 513处的全部可用计算资源的百分比,并且计算资源的剩余百分比可以被于实现数据分组转发功能(例如,结构服务235)。在NIC结构523中的NIC 513中的每个NIC都可以向边缘服务控制器528提供该网卡513处显示可用的计算资源的资源可用性值。资源可用性值的示例类型可以包括指示CPU利用率、网络利用率等的值。边缘服务控制器528可以基于资源可用性值,在NIC结构523中标识出适合实现数据分组转发功能的NIC513。例如,边缘服务控制器528可以将从NIC 513中的每个NIC接收到的资源可用性值与资源可用性阈值进行比较,或互相比较NIC 513的资源可用性,以标识在适合实现数据分组转发功能的NIC结构523中的NIC 513。适合的NIC 513可以包括在处理单元25中具有充足计算资源的NIC 513,以将结构服务应用于为应用通信对的业务的预期量、计算资源的阈值量或其他标准。边缘服务控制器528可以使用被标识的NIC以编排在NIC结构523中的NIC之间的数据路径。当边缘服务控制器528编排在NIC结构523中的NIC对之间的数据路径时,边缘服务控制器528可以向逻辑上位于该数据路径的NIC提供数据路径数据,以使NIC根据经编排的数据路径转发数据分组。
图6是根据本公开的一个或多个方面示出了用于在智能NIC中的应用感知服务的示例闭环架构的概念图。图6的该闭环架构包括控制器602和性能分析和故障排除引擎(PATE分析单元)604.控制器602可以是图1的边缘服务控制器28或图1的控制器24的示例或部分。PATE分析单元604可以是边缘服务控制器28的示例或部分,或可以在从控制器602分开的服务器或智能NIC上执行。
例如,Kubernetes集群(例如,智能NIC集群606)可以使用智能NIC606A至606N创建,其可以是图1的NIC 13的示例,作为常规工作节点。控制器602可以被配置为监测在智能NIC上执行的应用(例如,智能NIC集群606)以及智能NIC基础设施的健康状况,这些应用可以形成K8集群。除了监测之外,控制器602还可以被配置为提供和管理在基于智能NIC的工作节点上提供的不同应用感知服务。例如,在控制器602中的两个服务,即遥测收集器610和动作单元612,可以分别负责监测和管理应用。
图7是根据本公开的一个或多个方面更详细地示出了示例遥测收集器架构610的框图。如图7所示,遥测收集器610从存在于智能NIC集群606的各种软件和/或硬件组件中收集日志和/或度量,包括由控制器602管理的智能NIC 606A。遥测控制器610可以使用度量收集器614,例如Prometheus度量收集器。遥测收集器610也可以使用日志收集器618,例如Elasticsearch日志收集器,它可以是开源日志收集器。存在于DPU、服务网格、应用和操作系统(Operating System,OS)中的代理(未在图7中显示)可以向度量收集器614和日志收集器618导出度量和/或日志,该收集器可以将度量和/或日志存储在至少一个存储库中,例如时间序列数据库(Time Series Database,TSDB)(例如,度量DB615和/或日志DB617)。收集的遥测信息最终可以由PATE分析单元604用于进一步的监测和故障排除目的,这之后将在本公开中解释。
图8是根据本公开的一个或多个方面更详细地示出了示例动作单元612架构的框图。如图8所示,动作单元612可以被配置为基于从PATE分析单元604接收或获取的反馈来确定要采取的动作集。动作的示例包括但不限于用于在智能NIC集群606上执行的例如容器化防火墙的分布式防火墙的应用动态安全策略、有关确保由在智能NIC(例如,智能NIC集群606的智能NIC)上卸载工作负载的应用的SLA要求的动作等。对于不同的用例,例如安全性或SLA,PATE分析单元604可以生成不同类型的可操作反馈。对于每种类型的反馈,可能有相应的插件,这些插件被配置为生成动作集,其中包括将要在被管理实体上执行的一个或多个操作。如图8所示,安全动作单元620可以被配置为对于托管在智能NIC(例如,智能NIC集群606的智能NIC)上的分布式防火墙生成防火墙策略。类似地,SLA动作单元622可以被配置为动态地将工作负载卸载到智能NIC上(例如,智能NIC集群606的智能NIC),用于提高性能。网络一致性单元624可以被配置为跨被管理实体的配置提供一致性,例如智能NIC、交换机、主机等。
图9是根据本公开的一个或多个方面更详细地示出了示例PATE分析单元604架构的框图。PATE分析单元604可以被配置为对于端到端的可观察性和故障排除收集和分析应用和底层基础设施性能遥测。根据用例,PATE分析单元604可以生成可动作的反馈,控制器602的动作单元612可以使用这些反馈以采取纠正步骤来修复问题。
PATE分析单元604可以包括跨层遥测提取管线630、异常检测服务632、因果分析服务634和拓扑分析服务636。PATE分析单元604可以从在堆中的多个层接收遥测,例如应用、网络、计算、防火墙、智能NIC等。跨层遥测提取管线630可以被配置为正规化来自多个层的数据模型,并且在TSDB中(未在图9中显示)持久化,用于进一步分析,例如由异常检测服务632、因果分析服务634和拓扑分析服务636进一步分析,如下进一步描述。
图10是根据本公开的一个或多个方面示出了示例异常检测管线的框图。异常检测服务632可以包括存储在模型服务器646中的一个或多个机器学习模型645。异常检测服务632可以被配置为检测在栈中从多个层中接收的时间序列遥测数据中的任何异常。例如,异常检测服务632可以使用基于无监督学习的随机切割森林(Random Cut Forest,RCF)方法来检测与预期行为的任何偏差,和/或其他无监督学习模型来检测在接收的时间序列遥测数据中的异常。
来自跨应用、计算和网络层的多个来源的遥测数据可以由REST API 640(例如,Kafka服务)提取,并且然后持久化到TSDB 642,例如,这可以是Thanos TSDB。训练管线644可以被配置为在网络中跨层地学习的不同关键性能指标(Key Performance Indicator,KPI)的基线性能模型。模型服务器646可以被用于托管动态学习的性能模型(例如,机器学习模型645的训练的机器学习模型)。在推理时期期间,推理管线648可以订阅来自API 640的KPI遥测,并且为异常检测执行实时推理。无论何时检测到异常,根据KPI,指示异常的适当异常检测消息可以被发布在API 640上,这可以然后由不同的订阅服务使用,例如因果分析服务634(图9)。
参考回图9,因果分析服务634可以被配置为分析从应用层到网络层(或反过来)的跨层遥测,以推断可能根本原因从哪里而来,用于故障排除的目的。例如,在每个应用包括多个相互通信的微服务处,PATE分析单元604可以执行对微服务的每个实例和与其他服务交互的微服务的每个实例的持续监测。因果分析服务634可以被配置为确定应用性能下降的可能根本原因。在基于微服务的应用中,上游微服务性能可能被下游应用性能的影响。例如,因果分析服务634可以独立地分析来自调用序列每个段的遥测数据,并且帮助推断是否有任何下游微服务是导致应用的端到端性能下降的可能根本原因。
拓扑分析服务636可以被配置为监测任何拓扑变化并且为被监测的在任何层处的消费者生成(多个)反馈消息。拓扑变化的不受限制的示例是在基于微服务的应用中服务调用顺序的正常序列中的偏差。拓扑分析服务636可以分析每个层的这种偏差,以确定拓扑变化。例如,拓扑分析服务636可以确定:i.)新增节点集;ii.)被移除的节点集;iii.)新边缘集;和/或iv.)被删除的边缘集。这种分析对于安全用例是有用的,例如检测由入侵服务对服务的不正当访问。拓扑分析服务636可以生成包括任何分析结果的异常信号,并且提供异常信号作为向控制器602的反馈以采取补救措施,例如经由动作单元612(图8)。
本公开的自我修正框架,例如图6的那个,可以动态地检测不同类型的攻击并且缓解这些攻击,例如,使用基于服务网格(例如,Istio)的微服务应用。本公开现在讨论使用分布式拒绝服务(Distributed Denial-Of-Service,DDOS)攻击方、外部攻击方和内部攻击方用例的实验。
根据本公开的技术,例如图6的那个的系统可以被配置为执行机器学习模型,以基于在第一时间段内收集的业务会话度量数据来确定业务预测。该系统可以被配置为基于业务预测和在第二时间段或第二时间(例如,当前业务会话度量数据)处收集的业务会话度量数据的比较来确定在业务中的异常。例如,异常可以表示域名服务(Domain Name Service,DNS)攻击、TCP洪泛攻击等。基于异常的确定,系统可以被配置为生成异常的指示。系统可以被配置为使用异常的指示以确定或生成被配置为缓解异常的防火墙策略。
图11A和图11B是根据本公开的一个或多个方面示出了示例攻击方试图阻止服务网格的服务发现控制平面功能的概念图。例如,攻击方可以试图阻止服务网格的服务发现控制平面功能(图11A)。当攻击成功时,由于来自其他未受影响的服务的服务发现请求的失败,这种攻击能够使服务网格崩溃。因此,自学习防火墙策略实施程序可能被需要。服务网格实验平台在Kubernetes平台上搭建了基于域名服务(DNS)的服务发现技术。如图11B所示,分布式防火墙(例如,DF 650)可以运行在附加到Kubernetes平台每个节点的每个智能NIC(例如,POD 1、POD 2、POD 3)上。分布式防火墙可以监测进出Kubernetes集群的每个节点的服务网格业务。分布式防火墙可以向TSDB(例如,度量DB 615或类似的)导出业务会话度量(为简单的目的未在图11A至11B中显示)。PATE分析单元604(为简单的目的也未在图11A至11B中显示)可以分析从TSDB导出的会话度量数据,以标识由运行在Kubernetes节点上的受损(compromised)荚654的大量DNS服务请求。PATE分析单元604可以近实时地执行这样的分析,并且因此,可以近实时地检测异常。在一些示例中,例如当想要或需要实时学习时,分布式防火墙可以直接向PATE分析单元604导出业务会话度量数据,除了,或者代替向时间序列数据库导出业务会话度量。
当服务网格荚(例如,受损荚654)在预定时间段内发送的服务发现请求数目高于常规服务请求计数时,PATE分析单元604可以将在预定时间段之内的更高数目的服务发现请求的发送标识为异常,并且通知控制器602该异常。常规服务请求计数可以是由服务在正常情况下进行的服务请求的数目,诸如在与预定时间段相等的前一时间段期间。常规服务请求计数可以由PATE分析单元604的模型服务器646的机器学习模型645(图10)的机器学习模型学习。例如,当服务运行一段时间时,服务可以在时间轴中生成服务发现请求数目的模式。这种模式可以采取一系列服务发现请求计数的形式,可以由机器学习模型学习。根据图11A至图11B讨论的那些相似技术可以相似地应用于标识TCP洪泛攻击为异常。
在一些示例中,动作单元612(图8)可以动态地创建和/或选择分布式防火墙策略以缓解异常。如图11B所示,任何来自于荚654的受损服务的业务可以由分布式防火墙阻断。
图12是根据本公开的一个或多个方面示出了增加攻击的数目时示例异常缓解时间的图形图。如同所示,在一些已知的前提条件下,PATE分析单元604可以几乎立即地检测并且缓解异常,例如,当PATE分析单元604运行的机器学习模型645的机器学习模型是已经训练的模型,并且缓解过程包括用于分布式防火墙的预确定的防火墙规则时。
图13是根据本公开的一个或多个方面示出了用于每分钟服务发现DNS计数度量的示例异常检测的表。图13的表格显示上述PATE分析单元604(图9的两个)的异常检测服务632的性能。在本用例中,PATE分析单元604使用无监督学习模型随机切割森林执行异常检测。如图13所示,由于在图11B中显示的DDOS攻击,对于注入的异常,模型准确率总体约为98%,f-1得分高达97%。
图14是根据本公开的一个或多个方面示出了示例异常检测的流程图。图14的技术根据图6作为由系统的不同部分执行的被讨论。系统的每个部分可以执行属于相应部分的那些技术,或者,在一些示例中,属于系统的任一部分的一种或多种技术可以由系统的另一部分或系统的部分的组合执行。
智能NIC 606A可以向控制器602发送遥测数据,该遥测数据包括业务会话度量数据(660)。例如,智能NIC 606A可以监测与智能NIC 606A关联的遥测,并且向控制器602的遥测收集器610发送包括业务会话度量的遥测数据(例如,度量和/或日志),例如由智能NIC606A的主机设备的虚拟网络端点发出的DNS请求的数目的计数。
遥测收集器610可以监测离开多个NIC中的每个NIC的服务网格业务,NIC中的每个NIC包括NIC处理电路(662)。例如,遥测收集器610可以监测在遥测数据中表示的服务网格业务,剩下智能NIC 606A和智能NIC集群606的其他智能NIC。遥测收集器610可以监测进入每个NIC(664)的服务网格业务。例如,遥测收集器610可以监测在遥测数据中表示的进入智能NIC 606A和智能NIC集群606的其他智能NIC的服务网格业务。
遥测收集器610可以基于退出每个NIC的网格业务和进入每个NIC的网格业务(666)来确定业务会话度量数据。例如,遥测收集器610可以基于离开智能NIC 606A的网格业务来确定在各种时间段期间DNS请求的数目,并且离开智能NIC 606A
PATE分析单元604可以获取第一业务会话度量数据(668)。例如,PATE分析单元604可以从遥测收集器610接收或取回第一业务会话度量数据。
PATE分析单元604可以执行机器学习模型,以基于第一业务会话度量数据(670)来确定业务预测。例如,PATE分析单元604可以执行(多个)机器学习模型645(图10)以分析第一业务会话度量数据,以确定DNS请求的预期数目的预测。例如,(多个)机器学习模型645可以被训练以预测业务流,例如由被期望在给定的预期时间段的主机设备的虚拟网络端点的DNS请求的数目,并且PATE分析单元604可以将在业务会话度量数据中反映的预定时间段内的主机设备的虚拟网络端点的DNS请求的数目与DNS请求的预期数目进行比较。
PATE分析单元604可以获取第二业务会话度量数据(672)。例如,PATE分析单元604可以从遥测收集器610接收或取回第二业务会话度量数据。第二业务会话度量数据可以与在与第一业务会话度量数据相关联的业务之后的业务相关。
PATE分析单元604可以基于业务预测和第二业务会话度量数据(673)的比较来确定在业务中的异常。例如,PATE分析单元604可以基于业务会话度量数据的分析来确定在预定时间段之内的由业务会话度量数据的主机设备的虚拟网络端点的DNS请求的数目大于对于预定时间段的预期DNS请求的数目。
PATE分析单元604可以基于异常的确定来生成异常的指示(674)。例如,PATE分析单元604可以生成异常的指示,以向控制器602和/或智能NIC 606A提供。
控制器602可以从机器学习模型和基于业务会话度量数据来接收或以其他方式获取在业务中的异常的指示(676)。例如,控制器602可以接收由在步骤674中的由PATE分析单元604生成的异常的指示。
控制器602可以基于异常的指示(678)来确定防火墙策略。例如,控制器602可以从多个现有的防火墙策略选择防火墙策略或生成新的防火墙策略以解决异常。
控制器602可以向一个或多个NIC(680)的至少一个NIC发送防火墙策略的指示。例如,控制器602可以向智能NIC 606A发送防火墙策略的指示。
智能NIC 606A可以基于在业务中的异常的确定从控制器602接收防火墙策略的指示,业务中的异常基于业务会话度量数据而被确定(682)。例如,智能NIC 606A可以从控制器602接收防火墙策略的指示。智能NIC 606A可以实现防火墙策略(684)。例如,如果防火墙策略的指示标识存储在智能NIC 606A的存储器中的现有防火墙策略,智能NIC 606A可以加载并且执行现有防火墙策略。如果防火墙策略的指示包括新的防火墙策略,智能NIC 606A可以将新的防火墙策略存储在存储器中,和/或执行新的防火墙策略。通过这种方式,图14的技术可以以实时和/或接近实时地阻止当前DNS攻击和/或阻止未来DNS攻击的重复。
在一些示例中,PATE分析单元604可以向分布式防火墙的控制器发送异常的指示。例如,控制器602可以实现分布式防火墙的控制器。在一些示例中,异常指示DNS攻击或TCPflood攻击。在一些示例中,PATE分析单元604可以从时间序列数据库(例如,度量数据库615)获取业务会话度量数据。在一些示例中,第二业务会话度量数据包括在时间段之内由主机设备的虚拟网络端点的域名服务请求的数目,并且业务预测包括在时间段期间预期域名服务请求的预期数目。在一些示例中,作为确定异常的部分,PATE分析单元604可以确定在时间段之内由智能NIC 606A的主机设备的虚拟网络端点的域名服务请求的数目大于预期域名服务请求的数目。在一些示例中,预期域名服务请求的数目基于在前一时间段(例如,在正常运行期间)的操作期间的域名服务请求。例如,预期域名服务请求的数目可以由机器学习模型学习,该机器学习模型例如无监督随机切割森林机器学习模型。在一些示例中,第一业务会话度量数据和第二业务会话度量数据指示服务网格业务。在一些示例中,第一业务会话度量数据和第二业务会话度量数据与一个或多个NIC关联。在一些示例中,一个或多个NIC可以实现分布式防火墙。
在一些示例中,控制器602可以基于异常的指示生成或选择防火墙策略。在一些示例中,防火墙策略的指示包括防火墙策略或防火墙策略的标识中的至少一个。
在一些示例中,控制器602可以将业务会话度量数据存储在时间序列数据库(例如,度量数据库615)中。在一些示例中,业务会话度量数据包括在时间段之内由主机设备的虚拟网络端点的域名服务请求的数目,并且异常指示在时间段之内由主机设备的虚拟网络端点的域名服务请求的数目大于由机器学习模型确定的预期域名服务请求的数目。在一些示例中,预期域名服务请求的数目基于在正常运行期间做出域名服务请求,并且由机器学习模型确定。在一些示例中,控制器602可以选择防火墙策略或生成防火墙策略。
在一些示例中,业务会话度量数据包括在时间段之内由主机设备的虚拟网络端点的域名服务请求的数目,并且该异常由机器学习模型确定。在一些示例中,实现防火墙策略使智能NIC 606A停止从主机设备的虚拟端点发送域名服务请求。在一些示例中,智能NIC606A实现分布式防火墙的实例。
现在讨论网格出口恶意软件攻击。在这第二用例中,攻击方从外部获得对服务网格应用的访问,外部例如通过在应用中的漏洞或DevOps进程,然后攻击方可以进一步继续攻击外部web服务器、应用和/或数据库系统。攻击方可以试图窃取数据并且向攻击方的外部服务器传输数据。在一些情况下,攻击方可以试图从他们的服务器下载恶意代码到服务网格。所有这些情况可以导致在应用的常规通信模式中的变化。在该用例中,自修正框架,如图6的框架,可以检测这种出口业务攻击并且缓解这种攻击,例如,通过使用分布式防火墙隔离受损应用荚。PATE分析单元604可以使用拓扑分析服务636以检测和/或分析在应用通信模式中的任何不必要的变化。通过使用服务网格的遥测数据,拓扑分析服务636可以动态地建造捕捉基线应用通信模式的知识图,并且持续监测知识图的演化,以发现任何可疑的拓扑变化。
实验结果显示目前使用拓扑分析服务636的自修正闭环框架能够在4分钟内检测和缓解异常。然而,实验指示,实时或接近实时的基于事件的设计将进一步减少用于该用例的检测和故障排除时间。
现在讨论网格DDoS攻击。在这第三用例中,当服务网格应用荚受损时,攻击方能够使用受损荚生成恶意业务,以使网格的一些或全部服务变得不可用。虽然服务网格实现提供了一些技术以阻止这些种类的攻击,但这些技术大多局限于层7,并且局限于低带宽业务。
类似于用于第二用例的方法,PATE分析单元604使用拓扑分析服务636来检测DDoS攻击。在实验设置中,自修正框架能够在几分钟的顺序中检测异常。
现在描述使用智能NIC实现应用感知服务的闭环框架的其他用例。图15是根据本公开的一个或多个方面示出了在攻击之前和之后的示例应用通信拓扑的概念图。例如,通信拓扑685描述了在网络中在主机、荚和部署之间的通信路径。通信拓扑687描述了在攻击后在主机、荚和部署之间的通信路径。攻击可以导致在部署和/或新部署之间新的服务调用。
智能NIC的普及可以是由于智能NIC的能力以在硬件(例如,DPU)中执行分组处理。这种能力允许应用向DPU卸载一些应用的分组处理,这可以提升吞吐量和分组延迟,因此加速应用的工作流。然而,在DPU中的硬件资源是有限的。例如,在大多数DPU上,流实体的数目可以被限制为4K(例如,4,096)。其他DPU资源,例如加密单元、正则表达式处理等,具有其自身的局限性。为了削减成本,大多数云提供方在相同的服务器上运行数百个客户应用。为了提高整体系统性能,应当注意不要压过DPU。目前的解决方法要么手动地分配资源,要么按照先到先得的原则分配资源,这可能不是最优的。
本公开包括使用闭环监测和机器学习技术分配DPU资源的技术,以在需要时分配DPU资源。例如,如果应用不能满足其相关的SLA,系统可以加速应用。
图16是根据本公开的一个或多个方面示出了示例自动SLA实施技术的概念图。PATE分析单元604可以被配置为加速应用,例如基于应用不满足相关SLA的要求从服务器的处理电路发起应用或服务的部分的卸载到智能NIC的处理电路(例如,DPU)。例如,web应用690可以包括或利用加密,例如IP安全(IPSec 694)。在一个示例中,web应用690可以具有需要10,000个活动连接的SLA。PATE分析单元604可以持续监测web应用690的遥测数据,并且可以使密码能够卸载IPSec 694到DPU 692,例如,如果web应用正在丢失连接,导致活动连接的总数低于10,000,从而加速IPSec 694,以解决web应用690满足关联SLA的要求的失败。类似的技术可以被用于动态地提高网络吞吐量、分组延迟和/或其他SLA要求。
在一些示例中,PATE分析单元604可以继续监测活动连接的数目,并且如果观察到活动会话的丢失的改进等级,则会发起将IPSec694移动回到服务器的处理电路。例如,PATE分析单元604可以发起基于以满足阈值的活动连接或会话的掉线的数目或掉线的比率从DPU 692卸载IPSec 694回到服务器的处理电路。在一些示例中,PATE分析单元604可以使用一个或多个机器学习模型645来确定阈值。
图17是根据本公开的一个或多个方面示出了示例卸载技术的流程图。PATE分析单元604可以获取遥测数据(700)。例如,PATE分析单元604可以取回或接收与web应用690关联的遥测数据。
PATE分析单元604可以基于遥测数据来确定运行在服务器处理电路上的应用未满足至少一个服务等级协议(SLA)需求,该服务器处理电路不包括驻留在网络接口卡NIC(702)的处理电路。例如,PATE分析单元604可以确定运行在服务器696上的web应用690为满足SLA要求。
PATE分析单元604可以基于未满足至少一个SLA要求的应用确定将应用的至少一个组件卸载从服务器处理电路到驻留在NIC(704)上的处理电路。例如,PATE分析单元604可以确定从服务器696处理电路卸载IPSec 694到DPU 692的处理电路上。
在一些示例中,至少一个SLA要求包括以下至少一个:活动连接的数目、网络吞吐量或分组延迟。在一些示例中,至少一个组件包括密码函数。在一些示例中,PATE分析单元604可以向服务器中的至少一个服务器(例如,服务器696)或控制器(例如,控制器602)发送第一通知,该第一通知指示将应用的至少一个组件从服务器处理电路卸载到驻留在NIC上的处理电路的确定。在一些示例中,响应于第一通知,服务器696可以将应用的至少一个组件卸载从服务器处理电路到驻留在NIC上的处理电路。
在一些示例中,PATE分析单元604可以基于将应用的至少一个组件从服务器处理电路卸载到驻留在NIC上的处理电路的确定以及基于遥测数据的分析来确定应用满足至少一个SLA要求。PATE分析单元604可以确定关于至少一个SLA要求的应用的属性满足阈值。PATE分析单元604可以基于满足阈值的应用的属性确定将应用的至少一个组件从驻留在NIC上的处理电路移动到服务器处理电路。在一些示例中,PATE分析单元604可以执行机器学习模型(例如,(多个)机器学习模型645)来确定阈值。在一些示例中,应用的属性包括在预定的时间段内掉线的数目或在预定的时间段期间的活动连接或会话的掉线的比率。
在一些示例中,PATE分析单元604可以向至少一个服务器或控制器发送第二通知,该通知指示将应用的至少一个组件从驻留在NIC上的处理电路移动到服务器处理电路的确定。在一些示例中,响应于第二通知,服务器696可以将应用的至少一个组件从驻留在NIC上的处理电路移动到服务器处理电路。
图18是根据本公开的一个或多个方面示出了示例自学习流优先级技术的概念图。在智能NIC环境中由用户部署的普遍服务中的一个服务是分布式防火墙。在数据中心中管理东西业务,其中业务速率可以到达100xTbps,这对于网络管理员可能是困难的。在智能NIC上运行防火墙可以通过监管在主机处而不是在网络中的业务解决这个问题。通常,防火墙的工作是通过对于每个传入和传出分组应用所有经配置的策略,以确定该分组是应当被允许还是被拒绝。因为为每个数据分组应用每个策略可能是非常耗时的,为了加快处理,防火墙可以为每个新流创建流条目,并且使用在流表中缓存的信息来处理该流的未来数据分组。例如,防火墙可以应用多个策略查找于流的每个第一分组。防火墙可以跳过对流后续分组的多次策略查找,但这些后续分组仍然可能要经过流处理阶段(例如,在流表中查找后续分组)。这查找的整个序列也可能是耗时的,并且可能占用大量的CPU资源,这可能限制防火墙的总体吞吐量。
因此,为了提高防火墙吞吐量,分布式防火墙可以分析流,其中流处理是基于流的关键度或重要执行的。例如,PATE处理单元604的一个或多个机器学习模型645可以学习每个应用的流,并且根据应用的重要性对每个应用排序,例如根据权重。例如,PATE分析单元604可以基于以下陈述的标准来预测流的权重。因此,本文描述的技术可以提高防火墙吞吐量。例如,防火墙可以基于流的关键度或重要性来执行流处理,而不是处理流的每个后续数据分组的流处理。使用动态遥测数据,一个或多个机器学习模型645可以学习每个应用的流,并且基于相应流的重要性按顺序对流进行排序。可以被用于基于重要性确定流排序的示例标准包括但不限于流命中率、有关流的命中率、流接近未命中率、流度量关键性等。
流命中率(Flow Hit Rate,FHR)可以是评估的总数目中成功的防火墙流评估的数目。例如,FHR可以被计算为:FHR=成功的流评估的数目/评估的总数目。
有关流命中率(Related Flow Hit Rate,RFHR)可以是与该流相关的流的命中率的平均值。例如,如果两个流包括任何以下属性中的共性,则这两个流可以被认为是相关的流。这些属性可以包括源地址、目的地址、源端口、目的地端口、协议等。例如,RFHR可以被计算为:
RFHR=(所有有关流的总命中率)/(所有有关流的评估的总数目)。在一些示例中,当计算RFHR时,流本身可能被排除在外。
流接近未命中率(Flow Close Missed Rate,FCMR)可以是流的接近未命中率评估的数目与总流评估的数目的比率。接近评估未命中可以被限定为由于用户配置的属性阈值数目不匹配而导致的流评估失败。例如,如果流具有5个用于评估的属性,并且用户将接近未命中阈值配置为2。然后,如果由于2个(或更少)属性不匹配而导致流评估失败,则将流评估视为接近未命中率评估。例如,FCMR可以被计算为
FCMR=(接近未命中率评估的数目)/(评估的总数目)。
流关键性可以通过标志表示。例如,当在流中涉及的任何属性被视为关键事件的部分并且由用户通过在运行时将流标记为关键时,可以将标志附加到流。例如,当用户观察到可疑的安全威胁日志事件时,用户可以将所有有关流标记为关键流。当流被标记为关键时,流的权重可以自动设置为最大值。在这样的示例中,流评估器将优先流化用于评估。
使用上述参考的分析,PATE分析单元206可以确定或预测每个流的权重。根据流的权重,分布式防火墙的流处理器可以评估流。这些分析在评估历史中定期执行,并且预测或更新流权重。例如,如果流命中率为R1,则有关流命中率为R2,接近未命中率为R3。PATE分析单元604可以使用线性回归公式和以上计算的个人比率预测或确定流权重:
W1=a+b(R1)
W2=a+b(R2)
W3=a+b(R3)
其中a=(∑Wi)(∑Ri*2)-(∑Ri)(∑WiRi)/n(∑Ri*2)-(∑Ri)2
b=n(∑WiRi)-(∑Ri)(∑Wi)/n(∑Ri*2)-(∑Ri*)2
PATE分析单元604可以然后确定预测权重(W1,W2,and W3)的平均值作为流的权重:
PATE分析单元604可以向分布式防火墙发送流排序。分布式防火墙的流处理器可以基于这些动态预测的权重来评估流。
如图18所示,示例闭环系统可以确定排名并且将排名提供回给防火墙模块(例如,DPU 670A至670B)。分布式防火墙可以依次处理与流等级成正比的每个流。例如,防火墙可以比处理更低等级的流更频繁地处理更高等级的流。这可以减少防火墙需要为每个数据分组处理的流的数目,这可以增加防火墙吞吐量。基于上述计算的分析度量,权重因子可以为每个流计算,以指示流的优先级和重要性。较高的权重因子可以指示较高的优先级,并且较高优先级的流应当首先处理,和/或比其他具有更低权重的流处理得更频繁。这种对于流的动态优先级预测的技术也使分布式防火墙能够以任何顺序处理流,而不仅仅是降序处理。这意味着,流处理器能够按照权重的逆顺序选择流。这可以使大多数失败流按照优先级评估。
图19是根据本公开的一个或多个方面示出了示例流排序技术的流程图。PATE分析单元604可以获取遥测数据,该遥测数据包括与多个流(720)关联的流处理数据。例如,PATE分析单元604可以从控制器602取回或接收遥测数据。
PATE分析单元604可以根据重要性对由遥测数据指示的多个流进行排名(722)。例如,PATE分析单元604可以对多个流的每个流分配相应排名。该相应排名可以表示相应流的相对重要性的所确定的等级。
PATE分析单元604可以向控制器或网络接口卡NIC中的至少一个发送指示在多个流中的至少一个流处的相应排名的信息,该NIC包括NIC处理电路(724)。例如,PATE分析单元604可以向控制器602或智能NIC 606A发送多个流的一个或多个流的相应排名。
在一些示例中,作为根据重要性由遥测数据指示的多个流排名的部分,PATE分析单元604可以为多个流的每个相应流确定重要性标准,该重要性标准包括以下至少一个:流命中率,其中流命中率包括在时间段期间对于相应流的评估的总数目中,用于该相应流的成功的防火墙流评估的数目;有关流命中率,其中有关流命中率包括在该时间段期间对于一个或多个有关流的评估的总数中,用于该相应流的一个或多个有关流的成功的防火墙流评估的数目的指示;流接近未命中率,其中在该流接近未命中率率包括该时间段期间对于该相应流的评估的总数目中,对于满足属性阈值的相应流的失败防火墙流评估的数目的指示;或者是流关键性。
在一些示例中,作为基于重要性由遥测数据指示的多个流排序的部分,PATE分析单元604可以基于与相应流关联的重要性标准来确定每个相应流的相应重要性。在一些示例中,一个或多个有关流中的每个流都包括与相应流的至少一个属性中的共性。在一些示例中,至少一个属性包括以下至少一个:源地址、目的地址、源端口号、目的地端口号或协议。
在一些示例中,作为确定流接近未命中率的部分,PATE分析单元604可以确定在相应流的第一防火墙流评估期间失败的相应流的属性的第一数目;确定属性的第一数目满足属性阈值;并且基于满足属性阈值的属性的第一数目,将相应流的第一防火墙流评估分类为接近未命中;确定在相应流的第二防火墙流评估期间失败的相应流的属性的第二数目;确定属性的第二数目不满足属性阈值;基于未满足属性阈值的属性的第二数目,将相应流的第二防火墙流评估分类为接近未命中。在一些示例中,属性阈值是用户可限定的。
在一些示例中,流关键性是由用户可选择标志指示的,该用户可选择标志指示最高重要性或非最高重要性。在一些示例中,最高重要性的指示使网络系统(例如,PATE分析单元604)将相应流排序为最高重要性,并且其中非最高重要性的指示使网络系统利用其他重要性标准来确定相应流的重要性。
在一些示例中,PATE分析单元604可以执行机器学习模型,以基于重要性来对由遥测数据指示的多个流进行排序。在一些示例中,智能NIC 606A可以根据排名来处理多个流中的一个或多个流。
图20是根据本公开的一个或多个方面示出了防火墙服务的示例分组处理技术的流程图。图19显示了防火墙服务的分组处理管线。当分组到达防火墙(例如,例如可以在DPU710A至710B上实现的分布式防火墙)时,防火墙可以从分组730的分组报头构建流ID(例如,SIP、DIP、SPORT、DPORT、PROTO)。防火墙可以在流表中搜索此流ID,以确定这是现有流还是新流732。如果流是现有流(来自框732的“是”路径),则分组可以停留在数据路径中,并且防火墙可以执行在流表734中呈现的动作。例如,防火墙可以基于流表应用策略。如果流是新流(来自框732的“否”路径),则防火墙可以向控制平面发送分组,这可以分析被配置的策略(这可能有数千个),以标识防火墙应当在这个流中对于所有未来分组采取的动作。这种控制平面查找可以使耗时的,并且可以阻塞或延迟在该流中所有分组的转发,直到查找完成。例如,如果流是新流(来自框732的“否”路径),则防火墙可以确定新流当前是否正在由防火墙的控制平面736处理。如果新流当前没有由控制平面(来自框736的“否”路径)处理,则控制平面可以查找被配置的策略、分析被配置的策略、确定防火墙应当在这个流中对于所有未来分组采取的动作,并且在流表中创建新流的条目,指示应当对新流的分组采取哪个动作(738)。。如果新流当前正在由控制平台(来自框736的“是”路径)处理,则控制平面可以确定缓冲区是否是满的(740)。该缓冲区可以被用于存储等待处理的新流的分组,以避免丢弃此类分组。如果缓冲区不是满的(来自框740的“否”路径),控制平面可以将分组存储在缓冲区中,直到在流表中完成流的条目为止(742)。然而,如果缓冲区是满的(来自框740的“是”路径),则分组将被丢弃744。在传统的防火墙中,分组缓冲区是有限的,因为系统必须支持数千个活动流,这可能导致当在流表中的流表条目被创建时,大量(在一些情况下,大多数)分组被丢弃。
在典型的企业数据中心中,大多数应用遵循可预测的模式。例如,管理员通常将备份安排在大多数资源空闲的半夜。使用由PATE分析单元604的持续监测和机器学习,PATE分析单元604可以学习应用的行为(例如,模式)。因此,防火墙可以提前创建有关备份服务的流条目,这可以提升备份的速度。
图21是根据本公开的一个或多个方面示出了示例策略表填充技术的流程图。PATE分析单元604可以获取遥测数据,该遥测数据包括流的实例的创建的指示750。例如,PATE分析单元604可以从控制器602取回或接收遥测数据。
PATE分析单元604可以基于流的实例的创建的指示来确定流实例创建的模式752。例如,流的实例具有用于其创建的模式,例如在特定的时间和/或一周中的某一天定期创建。
PATE分析单元604可以基于流的实例的创建的模式而在接收流的特定实例的第一分组之前生成在用于流的特定实例的策略表中的动作条目(754)。例如,PATE分析单元604可以基于流的多个实例的创建的模式来创建预测流的特定实例,并且基于预测来生成动作条目。
在一些示例中,流的实例的创建发生在流的特定实例的创建之前。在一些示例中,作为确定流的实例的创建的模式的部分,PATE分析单元604可以执行机器学习模型(例如,(多个)机器学习模型645)。在一些示例中,作为生成动作条目的部分,PATE分析单元604可以执行机器学习模型(例如,(多个)机器学习模型645)。在一些示例中,机器学习模型是无监督的机器学习模型。在一些示例中,机器学习模型是使用多个流的实例的多个创建的相应指示训练的。
在一些示例中,智能NIC 606A可以接收流的特定实例的第一分组。智能NIC 606A可以基于在策略表中的动作条目来确定动作,并且在流的特定实例的第一分组上执行动作。在一些示例中,动作条目与备份服务有关。
图22是根据本公开的一个或多个方面示出了示例防火墙策略优化器的框图。防火墙软件通常分为三个主要组件,管理平面760、控制平面762(以上所述)和数据平面764。在一些示例中,管理平面760可能位于分布式防火墙控制器中,例如在控制器602中。在分布式防火墙中,每当创建防火墙的新实例时,管理平面760可以向防火墙的这个新实例发送所有用户配置的策略。在一些复杂的部署中,这些策略能够是在几千个范围中。如上所述,在本地主机766上的控制平面762可以将所有这些策略应用于流的每个第一数据分组以创建转发表。
对于新流的每个第一分组,所有策略被应用于第一分组,并且策略的应用的结果被用于更新流表。此操作可能是昂贵的,并且消耗许多CPU周期,这限制了防火墙的可伸缩性,因为防火墙通常可以每秒处理数千个流。尽管管理平面760通常向控制平面762发送所有被配置的策略,但控制平面762可以只需要由运行在该特定主机上的应用(当前或未来)使用的策略,特定主机例如主机766。因此,本公开的技术包括使用动态遥测数据,PATE分析单元604的闭环PATE机器学习单元(例如,一个或多个机器学习模型645)可以学习由每个应用使用的防火墙策略,以及哪些应用正在或预期在特定主机上运行。这种信息可以由管理平面760获取。例如,PATE分析单元604可以向管理平面760发送这种信息。管理平面760可以使用这种信息,以基于主机的确定和/或预测的当前和未来的需求来修剪管理平面760可以发送给给定主机的策略集。
例如,如果PATE分析单元604确定预测特定策略将被用于给定主机,则管理平面760可以在向该主机的控制平面发送的防火墙策略集中包括该策略。如果PATE分析单元604确定预测特定策略将不会被用于给定的主机,管理平面760可以移除来自向该主机的控制平面发送的防火墙策略集的该策略。以这种方式,只有由主机使用的策略预测可以被发送到主机。因为主机可以只接收策略的子集,主机的控制平面可以只将减少的策略集应用于任何流的第一分组,从而减少对于防火墙实例需要的CPU周期。
例如,当由控制平面762接收到分组时,控制平面762可以确定这分组是流的第一分组还是现有流的分组。如果分组是流的第一分组,则控制平面762可以执行流表查找,并且应用所有适用于流的策略。如果包是现有流的分组或已经具有了所有应用的策略,控制平面762可以执行流表查找,以确定如何处理分组,然后向转发单元提供分组。
图23是根据本公开的一个或多个方面示出了用于减少分布到分布式防火墙的节点的防火墙策略的数目的示例技术的流程图。PATE分析单元604可以获取遥测数据,该遥测数据与在多个主机上运行的多个应用关联(780)。例如,PATE分析单元604可以从控制器602取回或接收遥测数据。如本文所用,在多个主机上运行的多个应用意指多个应用中的应用可以在多个主机中的一个或多个主机上运行,而不必然要求每个应用都在每个主机上运行或所有应用在每个主机上运行。
PATE分析单元604可以基于遥测数据来确定运行在多个主机的第一主机上的多个应用的应用子集(782)。例如,PATE分析单元604可以确定多个应用的仅部分实际正常地运行在特定主机(例如,图22的主机766)上。
PATE分析单元604可以确定多个防火墙策略的防火墙策略子集,防火墙策略子集中的每个防火墙策略应用于应用子集的至少一个相应的应用(784)。例如,PATE分析单元604可以确定哪些防火墙策略实际地应用于在应用子集中的应用中的每个应用,并且确定防火墙策略子集,使得在防火墙策略子集中的每个防火墙策略应用于在应用子集中的至少一个应用。
PATE分析单元604可以生成防火墙策略子集的指示(786)。PATE分析单元604可以向分布式防火墙的管理平面发送该指示(788)。例如,PATE分析单元604可以向防火墙控制器(例如,控制器602)发送标识防火墙策略子集的指示。
在一些示例中,PATE分析单元604可以执行机器学习模型,以确定以下至少一个:哪些应用运行主机上,或者哪些防火墙策略应用于所确定的应用。在一些示例中,机器学习模型是无监督的机器学习模型。
在一些示例中,主机包括网络接口卡NIC,该NIC包括NIC处理电路。在一些示例中,分布式防火墙的控制平面和数据平面的实例运行在主机上。
在一些示例中,管理平面可以接收指示。在一些示例中,管理平面可以基于指示来修剪与多个防火墙策略对应的防火墙策略集,以生成所修剪的防火墙策略集,该修剪的防火墙策略集对应于防火墙策略的子集。在一些示例中,管理平面可以向执行在主机上的分布式防火墙的实例的控制平面发送所修剪的防火墙策略集。
在一些示例中,智能NIC 606A可以只将所修剪的防火墙策略集应用于新流的第一分组。在一些示例中,作为仅将所修剪的防火墙策略集应用于新流的第一分组的部分,智能NIC 606A可以将所修剪的防火墙策略集的每个策略应用于新流的第一分组,而避免应用不是所修剪的防火墙策略集的部分的防火墙策略集的策略。
正如本文所讨论的,使用闭环框架在智能NIC上实现不同的网络服务可以有效标识和响应于网络攻击。PATE分析单元604可以检测异常和拓扑变化,这可以由控制器动作单元612使用以动态地控制分布式防火墙的操作,这些操作可以在智能NIC上实现,以修复安全威胁。此外,还提出了附加的用例,其中该框架可以被用于SLA改进和安全防火墙的可伸缩性和优化。
图24是根据本公开的一个或多个方面示出了示例基于出口业务的攻击的概念图。当基于微服务的应用部署在Kubernetes或基于服务网格的环境中时,网络安全通常强调进入集群的业务(“入口业务”)。有时,当零信任策略是更被喜爱的,网络安全可能需要监测和保护集群内部业务。但是,当应用由于例如在应用代码中的漏洞(bug)、恶意供应链或DevOps管线中受损时,攻击方可以使用受损的应用服务或者攻击任何外部服务器,或者下载来自攻击方的(多个)服务器的恶意软件。因此,为了阻止基于出口业务的攻击,需要监测和保护出口业务。
例如,在可以在数据中心的集群网络792之内执行的安全代码中的漏洞可以存在。攻击方可以利用这个漏洞获取访问并且损害在集群网络792之内的审查服务790。例如,攻击方可以然后从审查服务790经由出口业务登录到攻击方的主服务器794,以将恶意软件下载到集群网络792。
作为保护出口网络业务的基本步骤,Kubernetes提供了集群网络策略,以帮助集群管理员配置静态网络策略(例如,直到被更改或删除,策略才保持在原地不变),以控制由应用服务对外部服务器的访问。例如,用于Kubernetes的插件可以为集群网络策略提供支持,也可以提供集群网络。然而,这种网络策略方法具有一定的局限性。例如,这种方法可能是基于IP地址的,并且在集群网络策略中可能不支持域名、可能无法处理高带宽业务,可能消耗大量的用于过滤业务的集群节点的计算资源,和/或当扩展应用服务或网络策略时可能负面地影响业务带宽。
当应用被部署在服务网格中时,出口业务可以使用反向代理(例如,“出口网关”)监测和控制。出口网关可以运行在集群的边缘处。可能希望与外部服务器通信的应用服务可以被配置为仅通过出口网关到达外部服务器。然而,这种出口网关方法也可能具有局限性。例如,这种出口网关方法可能会被绕过,因为应用服务可能通过建立直接的外部网络连接绕过出口网关、可能在外部服务通信中添加附加的网络跳、可能集中外部业务并且导致单点故障、可能只与TLS和HTTP业务工作、可能导致出口网关实例管理的可伸缩性和/或可用性问题、可能消耗集群节点的计算资源,和/或可能无法很好地处理高带宽业务。
因此,根据本公开的技术,公开了自学习出口业务控制器。例如,基于自学习知识图的分布式防火墙技术可以检测恶意出口连接,并且缓解由恶意出口连接导致的攻击。这些技术可以使用分布式防火墙来监测外部业务,并且缓解在集群节点等级处任何可能的基于出口业务的攻击。在一些示例中,分布式防火墙可以运行在附加到集群的每个节点的一个或多个智能NIC上。例如,在集群中的每个节点都可以被附加到智能NIC,并且在集群中每个节点的业务都可以通过智能NIC。
附加到每个集群节点的智能NIC可以由组件管理,例如智能NIC控制器。智能NIC控制器可以编排运行在这些智能NIC上的分布式防火墙。例如,智能NIC控制器可以使用运行在集群节点上的应用的过去的网络通信度量数据来学习应用拓扑。所学习的应用拓扑可以帮助智能NIC控制器标识恶意或受损的服务,这些服务可以做出出口连接以发起基于出口业务的攻击,诸如恶意软件攻击。
图25是根据本公开的一个或多个方面示出了示例自学习出口业务控制器的概念图。如图25所示,这些技术利用遥测数据导出器,例如在集群节点上的节点网络度量导出器(Node Network Metrics Exporter,NNME)802,例如集群节点Node-1 804,以及它们相应的智能NIC,例如智能NIC-1 806。当服务建立网络连接时,集群网络提供方,例如集群网络提供方808,可以执行网络地址转换(Network Address Translation,NAT)并且还依据目的地址路由该连接。通常,在Kubernetes环境中,当目的地址不属于集群网络地址范围时,集群网络提供方可以执行源NAT(Source NAT,SNAT)。在这种情况下,运行在智能NIC上的分布式防火墙可能无法获取发起连接的服务的实际源IP地址。为了获取实际源地址,集群网络提供方可以导出网络连接度量,该度量包括连接属性,诸如源IP地址和端口号、目的地址和端口等。然而,当在集群网络提供方处禁用SNAT时,度量的导出也在集群网络提供方处禁用。
因此,本公开的技术可以包括以下度量导出器。一种解决方法涉及一个或多个集群节点网络度量导出器(例如,节点网络度量导出器(NNME)802)和一个或多个防火墙度量导出器(例如,防火墙度量导出器(Firewall Metric Exporter,FME)810),以为训练机器学习模型(例如,机器学习模型645)提供输入数据。
在一些示例中,集群节点网络度量导出器(例如,节点网络度量导出器802)可以在每个集群节点上运行,以导出由集群网络提供方(例如集群网络提供方808)提供的连接度量。节点网络度量导出器802主要将有连接细节的度量导出为由在集群节点上运行的工作负载(这可以是容器或荚)起源的、用于每个连接的标签。示例标签包括源和目的IP地址、源和目的地端口号、源工作负载名称(这可以包括荚或容器名称)、连接协议和方向、集群节点名称和标识(ID)等。
防火墙度量导出器(例如,防火墙度量导出器810)可以运行在每个集群节点的智能NIC(例如,智能NIC(SN)806)上,并且导出由分布式防火墙(可以包括防火墙812)提供的连接度量。防火墙度量导出器810主要导出有连接属性的度量作为度量标签。示例标签包括源和目的IP地址、源和目的地端口号、方向等。
诸如遥测度量收集器814的度量收集器可以收集由节点网络度量导出器802和防火墙度量导出器810导出的度量。遥测度量收集器814可以在智能NIC控制器816之内运行,或在数据中心网络800之内或之外的某处运行。智能NIC控制器816可以是图6的控制器602的示例。在一些示例中,遥测度量收集器814可以包括事件队列,例如,当需要实时度量数据时。遥测度量收集器814可以向拓扑分析服务反馈所收集的度量数据,例如拓扑分析和学习引擎(Topology Analysis and Learning Engine,TALE)单元820。TALE单元820可以是图6的PATE分析单元604的拓扑分析服务605的示例。
TALE单元820可以分析网络连接度量数据并且构建表示应用的所有服务的通信拓扑的知识图。TALE单元820可以包括机器学习模型(类似于图10的机器学习模型645),该模型可以使用应用的历史通信数据训练。TALE单元820可以分析由TALE单元820获取的历史度量数据并且基于历史度量数据来构建知识图。在一些示例中,TALE单元820可以被配置为使用应用的动态通信数据来构建知识图。
在一些示例中,当网络连接由应用服务建立,并且与网络连接关联的度量被导出时,TALE单元820可以分析度量标签数据并且开始构建知识图。TALE单元820可以向知识图节点映射源工作负载名称,并且可以从该工作负载向图边缘映射任何网络连接。例如,{源工作负载名称}到知识图节点,以及{源IP地址,目的IP地址}到知识图边缘服务。
图26是根据本公开的一个或多个方面示出了在出口攻击之前的示例应用知识图的概念图。图26描绘了由TALE单元820使用简单的电子商务应用的历史数据构建的知识图830。知识图830显示只有计费服务832建立(例如,被允许建立)出口连接,例如到支付网关834的出口连接。TALE单元820可以持续地分析实时度量数据并且更新应用的知识图830。但是,当应用服务变得受损时,例如由于在应用代码中的漏洞、在供应链中的错误或受损的DevOp管线,应用可以尝试拨打应用的主服务器或攻击方的服务器,以下载恶意代码或恶意软件。此外,应用可以尝试通过发起指向其他外部服务的出口连接窃取其他外部服务。
当受损服务建立恶意出口连接时,TALE单元820可以接收有关这些新连接的度量数据。使用所接收的度量数据,TALE单元820可以更新有新的图节点和边缘的知识图830。当知识图830更新时,TALE单元820可以分析所更新的知识图,以确定在拓扑中的任何变化。当知识图830有变化时,TALE单元820可以生成有关于任何新出口连接的细节的网络异常事件。
图27是根据本公开的一个或多个方面示出了示例更新的知识图的概念图。例如,TALE单元820可以更新知识图830以生成所更新的知识图840。如图27所示,当电子商务应用的审查服务850受损时,攻击方可以使用审查服务850向攻击方的服务器852和外部支付网关服务854发起出口连接。TALE单元820标识这些新的出口连接为异常连接,因为TALE单元820已经学习到只有计费服务856做出出口连接。
当TALE单元820为(多个)新的出口连接生成网络异常事件时,运行在智能NIC控制器816之内的动作服务(例如,动作单元818)接收这些事件。动作服务可以处理异常事件并且配置防火墙策略以缓解攻击,例如,通过停止所有受损服务(例如,审查服务850)的业务。
图28是根据本公开的一个或多个方面示出了用于配置防火墙策略以缓解出口攻击的示例技术的时序图。例如,受损服务(例如,审查服务850)可以建立到集群网络提供方808的出口连接860。集群网络提供方808可以向节点网络度量导出器802提供连接数据862,并且将连接864路由到分布式防火墙,这可以包括防火墙812。防火墙812可以向防火墙度量导出器810提供连接数据866。遥测度量收集器814可以收集来自节点网络度量导出器802的节点网络度量868,并且收集来自防火墙度量导出器810的防火墙连接度量870。虽然被显示为从遥测度量收集器814发起,但在一些示例中,遥测度量收集器814可以被动地接收来自节点网络度量导出器802和/或防火墙度量导出器810的度量。遥测度量收集器814可以向TALE单元820反馈度量数据872。TALE单元820可以构建知识图874,例如经更新的知识图840。TALE单元820可以分析知识图876,并且通知异常事件878的动作服务(例如,图25的动作单元818)。动作服务可以创建(例如,生成)新的防火墙策略880或修改现有的防火墙策略。动作服务可以将新的防火墙策略或修改的防火墙策略882应用于分布式防火墙(例如,防火墙812),以缓解出口攻击。
图29是根据本公开的一个或多个方面示出了用于配置防火墙策略以缓解出口攻击的示例技术的流程图。例如,受损服务(例如,图27的审查服务850)可以建立到攻击方的服务器852的出口连接(900)。遥测度量收集器814可以收集来自节点网络度量导出器802和/或防火墙度量导出器810的度量。遥测度量收集器814可以向TALE单元820导出网络度量(902)。TALE单元820可以分析度量数据(904)。TALE单元820可以验证出口连接(906)。例如,TALE单元820可以基于现有的知识图来确定出口连接是否被允许。TALE单元820可以确定连接是否是异常连接(908)。例如,TALE单元820可以基于现有的知识图来确定连接是否被允许。如果TALE单元820确定连接不是异常连接(来自框908的“否”路径),TALE单元820可以忽略连接(910)。如果TALE单元820确定连接是异常连接(来自框908的“是”路径),TALE单元820可以向动作单元818报告异常事件(912)。动作单元818可以处理异常并且创建防火墙策略(914)。动作单元818可以将防火墙策略(916)应用于可以使用防火墙策略的分布式防火墙。
图30是根据本公开的一个或多个方面示出了用于响应恶意出口连接的示例技术的流程图。图30的技术被讨论为由关于图6的系统的不同部分执行。系统的每个部分可以执行属于相应部分的那些技术,或者,在一些示例中,属于系统的任何一个部分的一个或多个技术可以由系统的其他部分或系统的部分的组合执行。
智能NIC 606A可以将来自应用的应用服务的出口连接进行配置(920)。例如,智能NIC 606A可以建立从审查服务850到支付网关854(图27)的连接。
智能NIC 606A可以向计算设备发送有关出口连接的连接数据(924)。例如,智能NIC 606A可以向控制器602生成、记录和发送连接数据,控制器602可以是智能NIC控制器,例如图25的智能NIC控制器816。
控制器602可以接收与应用的应用服务的出口连接有关的连接数据(926)。例如,控制器602可以从智能NIC 606A接收连接数据。控制器602可以向计算设备发送连接数据(928)。例如,控制器602可以向PATE分析单元604发送连接数据。在一些示例中,控制器602可以在向PATE分析单元604发送连接数据之前处理连接数据。
PATE分析单元604可以获取与应用的应用服务的出口连接有关的连接数据(930)。例如,PATE分析单元604可以从控制器602取回或接收连接数据。
PATE分析单元604可以分析连接数据以确定出口连接是异常连接(932)。例如,PATE分析单元604可以确定出口连接不是预期出口连接,因此是异常的。
PATE分析单元604可以生成通知,该通知指示出口连接是异常连接(934)。PATE分析单元604可以向计算设备发送通知(936)。例如,PATE分析单元604可以向控制器602发送通知。
控制器602可以响应于发送连接数据从计算设备接收指示出口连接是异常连接的通知(938)。例如,控制器602可以从PATE分析单元604接收指示出口连接是异常连接的通知。
控制器602可以基于指示出口连接是异常的通知来生成应用防火墙策略的通知(940)。例如,控制器602可以确定应当由智能NIC 606A应用于解决异常连接的防火墙策略,并且可以由此生成通知。
控制器602可以向至少一个网络接口卡发送应用防火墙策略通知(942)。例如,控制器602可以向智能NIC 606A发送应用防火墙策略的通知。
智能NIC 606A可以响应于发送连接数据从计算设备接收应用防火墙策略的通知(944)。例如,智能NIC 606A可以从控制器602接收应用防火墙策略的通知。智能NIC 606A可以应用防火墙策略(946)。例如,智能NIC 606A可以从通知中提取防火墙策略并且执行该防火墙策略,或可以基于通知来确定防火墙策略的标识、从存储器加载防火墙策略,并且执行该防火墙策略。
在一些示例中,PATE分析单元604可以经由机器学习模型(例如,机器学习模型645)来分析连接数据。在一些示例中,机器学习模型使用应用的先前的连接数据而被训练。
在一些示例中,PATE分析单元604可以基于应用的先前的连接数据来生成先前的知识图(例如,图26的知识图830)。在一些示例中,先前的知识图指示了先前已经做出出口连接的应用的每个应用服务。在一些示例中,作为分析连接数据的部分,PATE分析单元604可以基于连接数据来生成第一知识图,该第一知识图(例如,图27的知识图840)指示做出出口连接的应用服务。PATE分析单元604可以将第一知识图与先前的知识图进行比较。
在一些示例中,连接数据包括节点网络度量和防火墙度量。在一些示例中,至少部分节点网络度量与集群节点关联,并且其中节点网络度量包括以下至少一个:源IP地址、目的IP地址、源端口号、目的地端口号、源工作负载名称、连接协议和出口连接的方向,或者集群节点标识符。在一些示例中,至少部分防火墙度量与运行在NIC上的分布式防火墙的实例关联,并且其中防火墙度量包括以下至少一个:源IP地址、目的IP地址、源端口号、目的地端口号或者出口连接的方向。
在一些示例中,指示出口连接是异常连接的通知包括与出口连接关联的信息。
在一些示例中,防火墙策略是新的防火墙策略。在一些示例中,用以应用防火墙策略的通知包括该新的防火墙策略。
在一些示例中,作为应用防火墙策略的部分,智能NIC 606A可以进行以下至少一个:丢弃出口连接或阻止来自应用服务的进一步出口连接。在一些示例中,作为生成用以应用防火墙策略的通知的部分,控制器602可以生成新的防火墙策略。在一些示例中,新的防火墙策略被配置为使至少一个网络接口卡进行以下至少一个:丢弃出口连接或阻止来自应用服务的进一步出口连接。
本文描述的技术可以在硬件、软件、固件或它们的任何组合中实现。被描述为模块、单元或组件的各种特征可以一起实现在集成的逻辑设备中,或者单独地实现为离散但可互操作的逻辑设备或其他硬件设备。在一些情况下,电子电路的各种特征可以实现为一个或多个集成电路设备,例如集成电路芯片或芯片集。
如果在硬件中被实现,本公开可以针对例如处理器或集成电路设备的装置,例如集成电路芯片或芯片组。备选地或附加地,如果在软件或固件中实现,该技术可以由包括指令的计算机可读数据存储介质至少部分地实现,当执行这些指令时,使处理器执行上述的一个或多个方法。例如,计算机可读数据存储介质可以存储这种指令以供由处理器执行。
计算机可读介质可以形成计算机程序产品的一部分,这可以包括包装材料。计算机可读介质可以包括计算机数据存储介质,例如随机访问存储器(RAM)、只读存储器(ROM)、非易失性随机访问存储器(Non-Volatile Random Access Memory,NVRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、闪存、磁或光数据存储介质等。在一些示例中,制品可以包括一个或多个计算机可读存储介质。
在一些示例中,计算机可读存储介质可以包括非暂态介质。术语“非暂态”可以指示该存储介质未被体现在载波或传播信号中。在某些示例中,非暂态存储介质可以存储能够随时间变化的数据(例如,在RAM或高速缓存中)。
代码或指令可以是由包括一个或多个处理器的处理电路执行的软件和/或固件,处理器例如一个或多个数字信号处理器(Digital Signal Processor,DSP)、通用微处理器、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA),或其他等效的集成或离散逻辑电路。因此,如本文使用的术语“处理器”可以指任何上述结构或任何其他适合本文描述的技术的实现的结构。此外,在一些方面,在本公开中描述的功能可以在软件模块或硬件模块之内提供。

Claims (19)

1.一种网络系统,包括:
处理电路;以及
一个或多个存储器,所述一个或多个存储器被耦合到所述处理电路并且被配置为存储指令,所述指令在由所述处理电路执行时使所述网络系统:
获取遥测数据,所述遥测数据包括与多个流关联的流处理数据;
根据重要性,对由所述遥测数据指示的所述多个流进行排名;以及
向控制器或网络接口卡NIC中的至少一个发送指示多个流的至少一个流的相应排名的信息,所述NIC包括NIC处理电路。
2.根据权利要求1所述的网络系统,其中作为根据重要性对由所述遥测数据指示的所述多个流进行排名的部分,所述指令使所述网络系统针对多个流中的每个相应流确定重要性标准,所述重要性标准包括以下至少一项:
流命中率,其中所述流命中率包括时间段期间的针对所述相应流评估的总数目中的、针对所述相应流的成功的防火墙流评估的数目;
有关流命中率,其中所述有关流命中率包括所述时间段期间的针对一个或多个有关流的评估的总数目中的、针对所述相应流的所述一个或多个有关流的成功的防火墙流评估的数目的指示;
流接近未命中率,其中所述流接近未命中率包括所述时间段期间的针对所述相应流的评估的总数目中的、针对满足属性阈值的所述相应流的失败防火墙流评估的所述数目指示;或者
流关键性。
3.根据权利要求2所述的网络系统,其中所述一个或多个有关流的每个流包括在与所述相应流的至少一个属性中的共性。
4.根据权利要求3所述的网络系统,其中所述至少一个属性包括以下至少一项:源地址、目的地地址、源端口号、目的地端口号或协议。
5.根据权利要求2所述的网络系统,其中作为确定所述流接近未命中率的部分,所述指令使所述网络系统:
在所述相应流的第一防火墙流评估期间,确定失败的所述相应流的属性的第一数目;
确定属性的所述第一数目满足所述属性阈值;以及
基于属性的所述第一数目满足所述属性阈值,将所述相应流的所述第一防火墙流评估分类为接近未命中;
在所述相应流的第二防火墙流评估期间,确定失败的所述相应流的属性的第二数目;
确定属性的所述第二数目不满足所述属性阈值;以及
基于属性的所述第二数目不满足所述属性阈值,将所述相应流的所述第二防火墙流评估分类为接近未命中。
6.根据权利要求5所述的网络系统,其中所述属性阈值是用户可限定的。
7.根据权利要求2所述的网络系统,其中流关键性能够由用户可选择标志指示,所述用户可选择标志指示最高重要性或非最高重要性,其中最高重要性的指示使所述网络系统将所述相应流排名为最高重要性,并且其中非最高重要性的指示使所述网络系统利用其他重要性标准来确定所述相应流的所述重要性。
8.根据权利要求1至7中任一项所述的网络系统,其中所述指令使所述处理电路执行机器学习模型以基于重要性对由所述遥测数据指示的所述多个流进行排名。
9.根据权利要求1-7中任一项所述的网络系统,其中所述指令还使所述NIC根据所述排名来处理所述多个流中的一个或多个流。
10.一种方法,包括:
获取遥测数据,所述遥测数据包括与多个流关联的流处理数据;
根据重要性,对由所述遥测数据指示的所述多个流进行排名;以及
向控制器或至少一个网络接口卡NIC中的至少一个发送指示多个流的至少一个流的相应排名的信息,所述至少一个NIC包括NIC处理电路。
11.根据权利要求10所述的方法,其中根据重要性排序由所述遥测数据指示的所述多个流包括:对于所述多个流的每个相应流,确定重要性标准,所述重要性标准包括以下的至少一项:
流命中率,其中所述流命中率包括时间段期间的针对所述相应流评估的总数目中的、针对所述相应流的成功的防火墙流评估的数目;
有关流命中率,其中所述有关流命中率包括所述时间段期间的针对一个或多个有关流的评估的总数目中的、针对所述相应流的所述一个或多个有关流的成功的防火墙流评估的数目的指示;
流接近未命中率,其中所述流接近未命中率包括所述时间段期间的针对所述相应流的评估的总数目中的、针对满足属性阈值的所述相应流的失败防火墙流评估的所述数目指示;或者
流关键性。
12.根据权利要求11所述的方法,其中所述一个或多个有关流的每个流包括在与所述相应流的至少一个属性中的共性。
13.根据权利要求12所述的方法,其中所述至少一个属性包括以下至少一项:源地址、目的地地址、源端口号、目的地端口号或协议。
14.根据权利要求11所述的方法,其中确定所述流接近未命中率包括:
在所述相应流的第一防火墙流评估期间,确定失败的所述相应流的属性的第一数目;
确定属性的所述第一数目满足所述属性阈值;以及
基于属性的所述第一数目满足所述属性阈值,将所述相应流的所述第一防火墙流评估分类为接近未命中;
在所述相应流的第二防火墙流评估期间,确定失败的所述相应流的属性的第二数目;
确定属性的所述第二数目不满足所述属性阈值;以及
基于属性的所述第二数目不满足所述属性阈值,将所述相应流的所述第二防火墙流评估分类为接近未命中。
15.根据权利要求14所述的方法,还包括:从用户获取所述属性阈值。
16.根据权利要求11所述的方法,其中流关键性能够由用户可选择标志指示,所述用户可选择标志指示最高重要性或非最高重要性,其中最高重要性的指示使所述网络系统将所述相应流排名为最高重要性,并且其中非最高重要性的指示使所述网络系统利用其他重要性标准来确定所述相应流的所述重要性。
17.根据权利要求10至16中任一项所述的方法,其中对所述多个流进行排名包括:执行机器学习模型。
18.根据权利要求10至16中任一项所述的方法,还包括:由所述NIC根据所述排名来处理所述多个流中的一个或多个流。
19.一种计算机可读存储介质,所述计算机可读存储介质被编码有指令,所述指令用于使一个或多个可编程处理器执行根据权利要求10至18中任一项所述的方法。
CN202311557077.4A 2022-11-30 2023-11-21 智能防火墙流处理器 Pending CN118118208A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202241069004 2022-11-30
US18/472,123 2023-09-21

Publications (1)

Publication Number Publication Date
CN118118208A true CN118118208A (zh) 2024-05-31

Family

ID=

Similar Documents

Publication Publication Date Title
US11700237B2 (en) Intent-based policy generation for virtual networks
US20210344692A1 (en) Providing a virtual security appliance architecture to a virtual cloud infrastructure
CN110830357B (zh) 使用高级拓扑描述的多云虚拟计算环境供应
CN110378103B (zh) 一种基于OpenFlow协议的微隔离防护方法及系统
EP3588292A1 (en) Monitoring and policy control of distributed data and control planes for virtual nodes
US11799972B2 (en) Session management in a forwarding plane
Krishnan et al. Cloudsdn: Enabling sdn framework for security and threat analytics in cloud networks
Wang et al. Tualatin: Towards network security service provision in cloud datacenters
US20240179074A1 (en) Self-learning egress traffic controller
EP4380108A1 (en) Intelligent firewall policy processor
EP4380110A1 (en) Self-correcting service level agreement enforcer
EP4380126A1 (en) Intelligent firewall flow creator
EP4380107A1 (en) Self-learning egress traffic controller
EP4380105A1 (en) Self learning firewall policy enforcer
EP4380106A1 (en) Intelligent firewall flow processor
CN118118208A (zh) 智能防火墙流处理器
CN118118207A (zh) 智能防火墙流创建器
CN118118362A (zh) 自修正服务等级协议实施器
CN118118205A (zh) 自学习防火墙策略执行方
CN118118349A (zh) 自学习出口业务控制器
CN118118206A (zh) 智能防火墙策略处理器

Legal Events

Date Code Title Description
PB01 Publication