如需大规模分析工作负载的网络流量,您可以使用带外 Network Security Integration 服务“数据包镜像”。借助数据包镜像,您可以使用第三方虚拟设备监控网络流量。
数据包镜像会根据防火墙政策的镜像规则中指定的过滤条件克隆网络流量。然后,此镜像流量会发送到您的虚拟设备部署,以进行深度数据包检测。
数据包镜像可捕获所有数据包数据,包括 IP 载荷和标头。您可以分析镜像的网络流量,以监控网络和应用性能,并检测网络中的威胁。
数据包镜像是一项可用区级服务,支持区域级部署。 不过,如果镜像部署的使用方和提供方位于不同的可用区,则您需要为跨可用区流量付费。为了提高镜像部署的可靠性,我们建议您在与镜像源相同的可用区中创建单独的生产者部署。这样做可以最大限度地减少跨可用区流量费用,并提高镜像设置的整体可靠性。
使用带外集成的优势
带外集成具有以下优势:
精细的流量匹配功能:借助精细的流量匹配功能,您可以在防火墙政策中指定镜像规则。这样一来,您就可以在定义镜像规则时使用全球网络防火墙政策。借助这些规则,您可以根据各种条件(包括来源或目标 IP 地址、协议和目标端口范围)镜像特定流量。如需详细了解镜像规则,请参阅镜像规则。
否定过滤条件:您可以在镜像规则中使用
DO_NOT_MIRROR操作来定义否定过滤条件。这样,您就可以在镜像规则中忽略特定流量。Geneve 封装:使用 Geneve 封装镜像流量。这有助于您在将原始数据包交付给收集器设备进行检查时保留这些数据包。如需了解详情,请参阅了解 GENEVE 格式。
除了原始数据包之外,geneve 封装还包含有关镜像源的信息。它会为重定向到镜像端点组以进行深度数据包检查的每个数据包添加唯一的虚拟私有云 (VPC) 网络标识符。如果您有多个 VPC 网络且其 IP 地址范围有重叠,此网络标识符有助于确保每个重定向的数据包都与其 VPC 网络正确关联。
将收集器作为服务进行镜像:您可以集中管理收集器设备的运营,同时以服务的形式将其提供给组织中的不同应用团队。这种集中式设备部署可以在不同的项目或不同的组织中进行,具体取决于团队的组织方式。
带外集成模式
带外集成提供以下模式,用于将使用方网络中的网络数据包镜像到一个或多个提供方网络。
直接模式:此模式会将来自使用方网络的 GENEVE 封装网络数据包直接镜像到生产方网络以进行分析。这是带外集成的默认模式。
直连模式仅涉及一个流量跃点。使用方网络将流量直接发送到提供方网络。
代理模式(预览版):此模式会将来自使用方网络的 GENEVE 封装网络数据包镜像到多个提供方网络以供分析。此模式包含直接模式的所有功能,并进一步扩展这些功能,以将数据包镜像到多个生产者网络,并添加额外的 GENEVE 元数据。
在此模式下,消费者网络会将封装在 GENEVE 中的数据包镜像到 Google 管理的代理组件(预览版)。代理组件(预览版)使用额外的 GENEVE 元数据封装接收到的网络数据包,并将其转发到配置的提供方网络。
代理模式(预览版)涉及两次流量跃点:
- 第一跃点:消费者网络将数据流量从源虚拟机实例镜像到 Google 管理的组件。
- 第二跳:代理组件(预览版)将 GENEVE 元数据添加到数据包,并将流量转发到指定的提供方网络。
如需详细了解这两种模式,请参阅带外集成的运作方式。
带外集成部署模型
带外集成基于生产者-消费者模型,其中消费者使用生产者提供的服务。
图 1 显示了直连模式下带外集成服务的高级部署架构。
图 2 显示了代理模式下带外集成服务的高级部署架构(预览版)。
提供方组件
提供方 VPC 网络包含一组负载均衡的收集器实例,这些实例能够从使用方网络接收 Geneve 封装的数据包。该实例组中的实例称为收集器实例。
指定收集器实例时,应输入与内部直通式网络负载平衡器关联的转发规则的名称。然后, Google Cloud会将镜像流量转发到这些收集器实例。数据包镜像的内部负载均衡器与其他内部负载均衡器类似,不同之处在于前者必须针对数据包镜像配置转发规则。发送到负载均衡器的所有非镜像的流量都会被丢弃。
镜像部署组和镜像部署
镜像部署是一种可用区级资源,指向内部直通网络负载平衡器的转发规则,该转发规则充当收集器实例的前端。虽然镜像部署是可用区级资源,但部署计算资源(收集器实例)可以位于区域中的任何位置。
这些镜像部署会进一步分组到项目内不同位置的镜像部署群组中,以便于使用和管理。
如需详细了解部署组和部署,请参阅镜像部署组概览和镜像部署概览。
使用方组件
镜像的来源是 Compute Engine 虚拟机 (VM) 实例,您可以在镜像规则中使用目标、来源和目的地参数来选择这些实例。您可以指定一个或多个来源类型;如果某实例至少与其中一个类型匹配,则会对其进行镜像。
数据包镜像会从应用了数据包镜像政策的网络中的实例网络接口收集流量。如果某个实例具有多个网络接口,除非已配置允许对这些接口进行镜像的其他政策,否则不会进行此操作。
以下部分介绍了消费类网络的组成部分。
镜像端点组
镜像端点组是使用方一端的项目级资源,直接对应于提供方的镜像部署组。然后,镜像部署组会将流量发送到与镜像源位于同一可用区的镜像部署以进行检查。您可以将各个 VPC 网络与镜像端点组相关联,以启用流量镜像。
我们建议您在安全管理员拥有的项目中创建镜像端点组。如需创建镜像端点组关联,安全管理员必须向此项目或网络管理员提供 Mirroring Endpoint Admin 角色 (roles/networksecurity.mirroringAdmin) 和 Mirroring Endpoint Network Admin 角色 (roles/networksecurity.mirroringEndpointNetworkAdmin)。
创建镜像端点组时,请指定其镜像模式:直接或代理(预览版)。如果您未指定模式,镜像端点组默认使用直接模式。
代理模式为镜像的镜像端点组(预览版)也称为代理端点组(预览版)。创建代理端点组(预览版)时,您需要指定代理端点组(预览版)可以向哪些生产者部署组发送流量。此提供方部署组列表是相应特定代理的符合条件的部署组的列表。
如需详细了解镜像端点组,请参阅镜像端点组概览。
镜像端点组关联
镜像端点组关联用于指定需要镜像并转移到生产方部署组以供检查的使用方 VPC 网络。
镜像端点组会将镜像流量发送到提供方网络中的相应部署组。不过,如需指定需要检查镜像流量的使用方 VPC 网络,您可以在 VPC 网络与镜像端点组之间创建关联。
创建镜像端点组关联后,防火墙政策镜像规则会确定要从关联的 VPC 网络镜像哪些数据包。如果未创建镜像端点组关联,则系统会忽略镜像规则,并且不会将数据包发送到部署组以进行检查。
如需详细了解端点组关联,请参阅创建和管理镜像端点组关联。
镜像端点
镜像端点(也称为代理端点)是一种由 Google 管理的区域级资源,可充当镜像代理模式的代理组件。它从使用方的网络接收 GENEVE 封装的镜像流量,使用额外的 GENEVE 元数据对其进行增强,并将其复制到多个提供方收集器。
只有在镜像的代理模式下才需要镜像端点。每个镜像端点组在每个可用区中仅支持一个镜像端点。
如需详细了解镜像端点,请参阅创建和管理镜像端点。
防火墙政策和规则
在使用方 VPC 网络中,您可以使用网络防火墙政策来选择要镜像和检查的流量。防火墙政策包含以下规则:
防火墙政策规则:允许或拒绝数据包传入或传出消费者虚拟机。防火墙政策规则可以执行以下操作之一:
ALLOW:允许流量,并停止评估其他优先级较低的防火墙政策规则。DENY:禁止流量,并停止评估其他优先级较低的防火墙政策规则。GOTO_NEXT:继续执行规则评估过程。
如需详细了解防火墙政策规则,请参阅防火墙政策规则概览。
镜像规则:确定是否镜像入站或出站数据包。镜像规则可以执行以下操作之一:
MIRROR:允许镜像流量,并停止评估其他优先级较低的镜像规则。DO_NOT_MIRROR:禁止镜像流量流,并停止评估其他优先级较低的镜像规则。您可以使用DO_NOT_MIRROR操作来精细过滤不需要镜像的流量。GOTO_NEXT:可用于将连接评估委托给较低级别的操作。如果满足以下任一条件,镜像规则允许处理后续规则:- 如果该操作为
goto_next,则评估会继续执行下一条规则。因此,多个goto_next规则不会相互影响。 - 如果传入流量与任何现有规则都不匹配,系统会默认执行
goto_next操作。这意味着当前政策级别未找到相关操作,因此评估会继续进行到下一个较低级别。
- 如果该操作为
镜像规则的政策和规则评估顺序
您可以向全球网络防火墙政策添加镜像规则。与防火墙政策规则类似,镜像规则按优先级降序评估,其中零 (0) 具有最高优先级。防火墙政策中的每个镜像规则都必须具有唯一的优先级。如果流量与镜像规则匹配,带外集成会镜像数据包,并跳过对任何优先级较低的镜像规则的评估。
在防火墙政策中配置镜像规则时,规则的评估顺序取决于进出虚拟机的流量方向。
在入站流量的情况下,系统会先根据防火墙政策规则评估顺序评估流量。
- 如果防火墙规则允许入站流量,则会根据镜像规则评估该流量。根据镜像规则的操作,流量随后会被镜像或不被镜像。
- 如果防火墙规则不允许入站流量,则不会根据镜像规则评估该流量,并且防火墙规则阻止的流量数据包会被丢弃,不会被镜像。
在出站流量的情况下,系统会先根据镜像规则评估流量。根据为镜像规则指定的操作,数据流量会被镜像或不被镜像,然后根据出站流量防火墙政策规则评估顺序对数据流量进行评估。
安全配置文件和安全配置文件组
镜像规则会引用安全配置文件组中的安全配置文件,以对镜像流量实施深度数据包检测。与镜像规则匹配的流量会镜像到镜像规则的安全配置文件所引用的镜像端点组。
创建安全配置文件时,您需要指定镜像端点组。对于代理模式(预览),您还需要指定安全配置文件允许将匹配的流量发送(或复制)到的镜像部署组列表。对于代理模式(预览版),您无法在安全配置文件中指定未包含在镜像端点组的允许列表中的部署组。
您必须创建一个安全配置文件组,其中包含指向镜像端点组以供检查的自定义安全配置文件。创建镜像规则时,您可以使用 --security-profile-group 标志将安全配置文件组与该规则相关联。安全配置文件和安全配置文件组都是组织级和项目级资源。
如需详细了解安全配置文件和安全配置文件组,请参阅安全配置文件概览和安全配置文件组概览。
带外集成的工作原理
带外集成使用数据包镜像技术从使用方 VPC 网络复制流量数据,并将其发送到提供方 VPC 网络。
以下部分介绍了带外集成模式下数据包的数据传输。
直接镜像模式
- 当消费者的 VPC 网络中的虚拟机实例发送或接收数据包时,流量镜像开始。系统会根据与 VPC 网络关联的防火墙政策评估数据包。
- 数据包与防火墙政策中镜像防火墙规则内的
MIRROR操作相匹配。- 镜像规则引用了安全配置文件组,其中包含类型为
CUSTOM_MIRRORING的安全配置文件。 - 安全配置文件指向使用方项目中的全局镜像端点组。
- 镜像规则引用了安全配置文件组,其中包含类型为
- 对于与镜像规则匹配的每个数据包,系统都会创建匹配数据包的副本(或复制数据包)。
- 副本数据包使用 GENEVE 协议进行封装,并向数据包添加
Network ID、Endpoint ID和Profile ID选项。目标端口设置为6081,即 GENEVE 的标准UDP端口。 为了确定数据包发送到的 IP 地址,系统会执行以下操作:
- 全球镜像端点组引用生产者网络中的全球镜像部署组。
全局镜像部署组指向可用区级镜像部署。为了使流量保持在同一可用区中,部署组会尝试从数据包的来源可用区获取镜像部署的详细信息。
如果在同一可用区中找到镜像部署,则内部直通式网络负载平衡器的转发规则的 IP 地址将用作镜像数据包的转发目标。如果在同一可用区中未找到镜像部署,则不会镜像相应数据包。
确定目标 IP 地址后,将 GENEVE 数据包的外部目标 IP 设置为负载均衡器的 IP 地址。
当数据包到达负载均衡器时,负载均衡器会将传入的数据包分发到后端网络设备以进行检查。
接收 GENEVE 封装的数据包、对其进行解封装、提取原始镜像数据包并执行深度数据包检测或分析的网络设备。
镜像的代理模式
- 当消费者的 VPC 网络中的虚拟机实例发送或接收数据包时,流量镜像便会开始。系统会根据与 VPC 网络关联的防火墙政策评估数据包。
- 数据包与防火墙政策中镜像防火墙规则的
MIRROR操作相匹配。- 镜像规则引用了安全配置文件组,其中包含类型为
CUSTOM_MIRRORING的安全配置文件。 - 安全配置文件指向使用方项目中的全局镜像端点组。它还引用了连接到镜像端点组的镜像部署组的子集。
- 镜像规则引用了安全配置文件组,其中包含类型为
- 系统会创建匹配数据包的副本(或复制数据包)。使用具有匹配 GENEVE 选项的 GENEVE 协议封装复制数据包,并将目标
UDP端口设置为6081。 - 对于复制数据包的第一个跃点,会发生以下情况:
- 如果全局镜像端点组未引用与捕获点位于同一可用区的可用区级 Google 管理型镜像端点,则不会镜像数据包。
- 如果全局镜像端点组引用了与捕获点位于同一可用区的区域级 Google 管理的镜像端点,则 GENEVE 数据包的外部目标 IP 会设置为区域级 Google 管理的镜像端点的 IP 地址,并且数据包会发送到该端点。
对于副本数据包的第二个跃点,会发生以下情况:
区域级 Google 管理的镜像端点会将数据包复制并转发到提供方网络的全球镜像部署组。
对于每个部署组,可用区级镜像端点都会检查与数据包位于同一可用区的可用区级镜像部署。
- 如果未找到匹配的区域部署,则不会将数据包转发到该部署组。
- 如果找到区域部署,则会创建副本数据包。此复制数据包的外部目标 IP 设置为由可用区级镜像部署指定的内部直通式网络负载均衡器的 IP 地址,并且该数据包会发送到负载均衡器。
当数据包到达负载均衡器时,负载均衡器会将传入的数据包分发到后端网络设备以进行检查。
接收 GENEVE 封装的数据包、对其进行解封装、提取原始镜像数据包并执行深度数据包检测或分析的网络设备。
比较带外集成模式
下表比较了带外集成模式:
| 功能 | 直接模式 | 代理模式(预览版) |
|---|---|---|
| 目的地数量 | 一个提供方网络 | 多个提供方网络 |
| 流量跳数 | 1 | 2 |
| 关键组件 |
提供方
使用方
|
提供方
使用方
|
| GENEVE 标头元数据 |
规格
以下部分介绍了带外集成的规范。
一般规范
- 数据包镜像支持所有第 4 层协议。
- 您可以在提供方一侧创建 IAM 权限,以控制哪些使用方可以连接到其提供方的部署组。
- 我们建议您在同一组织中拥有提供方项目和使用方项目。不过,您也可以将它们放在不同的组织中。
- 请勿在同一 VPC 网络中配置提供方和使用方,因为这会导致镜像循环。
- 您必须在生产者的 VPC 网络上配置一条入站防火墙政策规则,以允许来自生产者子网网关地址或本地子网范围的 UDP 端口 6081 上的 GENEVE 封装数据包。生产者端防火墙不需要消费者 IP 地址范围。您还必须允许来自内部直通式网络负载平衡器的健康检查探测。如需了解详情,请参阅使用全球网络防火墙政策和规则。
- 带外集成支持跨可用区镜像。 您可以在提供方一侧选择内部负载均衡器后端的可用区,以配置跨可用区或同一可用区镜像。
- 与防火墙规则类似,镜像规则基于会话。镜像规则根据会话发起者指定需要镜像的会话。对于镜像会话,传入和传出流量中的所有数据包都会被镜像。
- 数据包镜像的内部负载均衡器与其他内部负载均衡器类似,不同之处在于前者必须通过指定
--is_mirroring_collector标志来针对数据包镜像配置转发规则。发送到负载均衡器的所有非镜像的流量都会被丢弃。 如需详细了解如何为数据包镜像配置内部直通式网络负载均衡器,请参阅为数据包镜像创建负载均衡器。
流量镜像
数据包镜像仅从连接到 VPC 网络的虚拟机的网络接口收集流量数据,其中包含镜像规则的网络防火墙政策适用于该 VPC 网络。如果某个实例具有多个网络接口,您需要为每个网络接口配置单独的网络防火墙政策。
如需镜像同一 Google Kubernetes Engine 节点上的 Pod 之间传递的流量,您必须为集群启用节点内可见性。
过滤
- 您可以使用镜像规则来过滤镜像实例的流量,包括 IPv4 和 IPv6 流量。
- 镜像规则可以缩小镜像流量的范围,从而帮助您仅镜像所需的流量,以限制带宽消耗。
- 您可以配置镜像规则,以根据协议、无类别域间路由 (CIDR) 范围(IPv4、IPv6 或二者)、流量方向(仅入站流量、仅出站流量或二者)或它们的组合来收集流量。
防火墙规则日志记录
防火墙规则日志记录不会记录镜像的数据包。如果提供方虚拟机位于启用了防火墙规则日志记录的子网中,则系统会记录直接发送到该提供方虚拟机的流量,包括来自镜像虚拟机的流量。也就是说,如果原始目标 IPv4 或 IPv6 地址与生产者虚拟机的 IPv4 或 IPv6 地址匹配,则系统会记录流。如需详细了解防火墙规则日志记录,请参阅使用防火墙规则日志记录。
使用场景
以下部分介绍了一些真实场景,说明了为何建议您使用数据包镜像。
企业级安全
安全和网络工程团队必须确保能够捕获所有可能指示存在安全漏洞和入侵的异常情况和威胁。他们会对所有流量进行镜像,以全面检查可疑的流。由于攻击可能涉及多个数据包,因此安全团队必须能够获取每个流的所有数据包。
例如,以下安全工具要求您捕获多个数据包:
入侵检测系统 (IDS) 工具需要单个流的多个数据包来匹配签名,以便能够检测持续出现的威胁。
深度数据包检测引擎,负责检查数据包载荷以检测协议异常情况。
针对 PCI 合规性和其他法规用例的网络取证会要求检查大多数数据包。数据包镜像提供了一种针对不同攻击途径进行捕获的解决方案,例如不频繁的通信或尝试失败的通信。
应用性能监控
网络工程师可以使用镜像流量来排查应用和数据库团队报告的性能问题。为了检查网络问题,网络工程师可以查看传输的内容,而不是依赖应用日志。
例如,网络工程师可以使用数据包镜像中的数据来完成以下任务:
分析协议和行为,以便找到并解决诸如丟包或 TCP 重置等问题。
(实时)分析来自远程桌面、VoIP 和其他交互式应用的流量模式。网络工程师可以搜索影响应用用户体验的问题,如多次重新发送数据包或超出预期的重新连接次数。
安全审核
您可以根据需要收集和保留与网络相关的证据,以供任何审核使用。
VPC 数据包镜像与 Network Security Integration 数据包镜像的比较
下表总结了 VPC 数据包镜像与 Network Security Integration 数据包镜像之间的区别。
| 属性 | VPC 数据包镜像 | Network Security Integration 数据包镜像 |
|---|---|---|
| 封装 | 镜像数据包时不进行封装。 | 数据包采用 Geneve 封装。 |
| 镜像规则语义 | 系统会针对每个数据包评估镜像规则。VPC 数据包镜像政策可以指定仅镜像会话的一侧 | 镜像功能基于会话。此外,在镜像规则中,您可以指定以下两个选项之一:mirror 或 do-not-mirror。借助这些选项,您可以选择要镜像或不镜像的流量。 |
| 镜像规则过滤器 | 镜像规则支持按来源 (src) 和目标 (dst) IP 地址以及协议进行过滤。 |
与 VPC 数据包镜像相同,但增加了目标端口范围。 |
| 网络设备支持 | ||
| 受分层防火墙政策支持 | ||
| 受区域级网络防火墙政策支持 | ||
| 受全球网络防火墙政策支持 |
VPC 数据包镜像与 Network Security Integration 数据包镜像的互操作性
在工作负载级别,Network Security Integration 数据包镜像优先于 VPC 数据包镜像。如果工作负载具有 Network Security Integration 数据包镜像配置,数据平面会忽略任何现有的 VPC 数据包镜像配置。即使 Network Security Integration 数据包镜像配置隐式应用于工作负载,也是如此。
例如,预先存在的 VPC 数据包镜像政策配置为同时镜像 HTTP 和 ICMP 流量。当客户创建 Network Security Integration 数据包镜像配置并使用镜像规则来镜像 HTTP 时,系统会在全局网络防火墙政策中启用此规则,并将其与项目相关联。因此,Network Security Integration 数据包镜像配置优先于 VPC 数据包镜像政策,并且在数据包处理期间会发生以下变化:
- 系统会根据 Network Security Integration 数据包镜像配置来镜像 HTTP 流量。这意味着所有 HTTP 流量都会发送到指定的目标位置,以进行深度数据包检测。
- 数据平面会忽略所有工作负载的所有 VPC 数据包镜像配置。这意味着,在 VPC 数据包镜像政策中配置的 ICMP 流量镜像已终止,并且不再镜像 ICMP 流量。
这种行为变化可能会对您的广告资源网产生重大影响。 例如,如果您依赖 ICMP 流量镜像来排查网络问题,那么在应用 Network Security Integration 数据包镜像配置后,您将无法再这样做。
限制
对于生产者部署,唯一受支持的内部负载均衡器类型是具有实例组后端的内部直通式网络负载均衡器。这意味着,提供方部署不支持网络端点组 (NEG) 后端配置。
当网络数据包与任何镜像规则匹配时,Compute Engine 会以较慢的速率同时处理原始数据包和镜像数据包。数据包处理速率取决于机器类型、数据包大小和 CPU 利用率,与 VPC 网络外部的出站流量速率大致相似。如果您需要为镜像流量提供完整的网络和处理速度,请与支持团队联系,讨论替代解决方案。
不建议为第 3 代机器系列及更高版本启用镜像,因为较慢路由的速率会抵消其高带宽网络优势。
区域级网络防火墙政策不支持数据包镜像。
每个内部负载均衡器转发规则只能与单个镜像部署相关联。镜像部署必须与内部负载均衡器位于同一项目中,并且镜像部署的可用区必须位于内部负载均衡器的区域内。
镜像规则不支持来源安全标记。
一个 VPC 最多只能与一个镜像端点组关联相关联。
在代理模式(预览版)下,镜像端点和镜像部署资源必须位于同一可用区中。虽然镜像部署是可用区级资源,但关联的收集器实例资源可以位于该区域内的任何位置。
如果某个可用区仅包含镜像部署,而没有相应的镜像端点,则 Google Cloud 不会镜像流量,您也不会产生任何费用。
不过,如果某个可用区中存在 Google 管理的镜像端点,但没有相应的镜像部署,则 Google Cloud 仅将流量镜像到 Google 管理的镜像端点,而不会进一步镜像。