Network Security Integration 带内集成可让您将自己的网络安全设备(例如防火墙或入侵检测系统)直接插入网络流量路径中以进行检查。您可以使用这些网络设备在流量到达目的地之前检查流量中是否存在任何已识别的威胁。
Network Security Integration 使用 Cloud Next Generation Firewall 和 Packet Intercept 技术提供带内集成,从而提供以服务为中心的数据包处理流水线方法。数据包拦截是一项 Google Cloud 功能,可让您将 网络设备插入网络流量路径中,而无需修改任何现有 路由政策。
数据包处理发生在出站数据包路由之前,以及入站路由数据包接收之后。带内集成使用 通用网络 虚拟化封装 (GENEVE) 封装 在发送或接收虚拟机 (VM) 与 数据包处理虚拟机(您的网络设备)之间安全 传输数据包。
带内集成的优势
带内集成具有以下优势:
- 可扩缩性:部署充当基于虚拟机的 防火墙、入侵检测系统或网络设备的数据包处理虚拟机。您可以扩缩数据包处理虚拟机以满足您的需求。
- Geneve 封装:在发送或接收虚拟机与数据包处理虚拟机之间传输数据包以进行检查时,保留原始数据包,包括其 来源和目标 IP 地址。如需详细了解 GENEVE,请参阅 GENEVE RFC。
- Cloud NGFW 技术:使用分层防火墙政策或全局网络防火墙政策中的入站或出站规则以及
apply_security_profile_group操作来配置数据包检查。这样可以消除对 VPC 网络中路由的依赖。如需了解详情,请参阅带内集成的工作原理。
生产方和使用方模型
带内集成使用 生产方-使用方 模型,设置如下:
服务提供方
服务提供方通过虚拟机提供数据包检查服务。虚拟机可以是网络设备,也可以是运行自定义软件解决方案的实例。生产方负责配置、伸缩和维护虚拟机。
服务提供方部署和管理 内部直通式网络负载平衡器,这些负载平衡器使用后端虚拟机提供数据包 检查服务。生产方通过可用区拦截部署向使用方提供数据包检查服务,这些部署分组到全局拦截部署组中。如需了解详情,请参阅设置生产方服务。
服务提供方使用以下关键组件提供数据包检查服务:
虚拟机实例:托管网络设备或自定义软件解决方案。 生产方负责配置、伸缩和维护虚拟机。生产方可以使用可用区非代管式实例组或可用区代管式实例组来托管数据包检查虚拟机。
内部直通式网络负载平衡器:将 流量分配给后端数据包检查虚拟机。负载平衡器的转发规则充当需要检查的流量的入口点。
拦截 部署: 引用内部直通式网络负载平衡器的转发规则的可用区级资源。 拦截部署表示生产方为可用区提供的检查服务。
拦截部署组: 包含多个可用区拦截部署的全球性资源。
服务使用方
服务使用方使用服务生产方提供的数据包检查服务。
您可以在 VPC 网络中使用多个生产方的数据包检查服务。您还可以在同一 VPC 网络中使用 Cloud Next Generation Firewall Enterprise 配置 防火墙端点。使用带内集成的防火墙端点和数据包检查服务并非互斥。您可以并行使用它们来满足您的安全要求。如需了解详情,请参阅设置使用方 服务。
服务使用方使用以下关键组件将流量发送到生产方的数据包检查服务:
拦截端点 组: 引用服务提供方的 拦截部署组的全局性项目级资源。
拦截端点组表示使用方打算在消费者 VPC 网络的一个或多个可用区中使用服务提供方的拦截部署组提供的数据包检查服务。
拦截端点组 关联: 将拦截端点 组与一个或多个使用方 VPC 网络进行逻辑连接的全局性项目级资源。
防火墙 规则: 将流量定向到数据包检查虚拟机的分层防火墙政策或全局网络防火墙政策规则。
安全配置文件 组:引用 安全配置文件的全局性组织级和项目级(预览版)资源。防火墙政策中的规则引用安全配置文件组,并使用
apply_security_profile_group操作将数据包发送到生产方的数据包检查服务。
拦截防火墙规则是有状态的。当新会话与规则匹配时,与该会话关联的所有后续入站和出站数据包都会被拦截,并在 GENEVE 标头中使用相应的安全配置文件组进行封装。
带内集成部署模型
带内集成基于生产方-使用方模型。
图 1 展示了带内集成服务的高级部署架构。
该图展示了以下生产方-使用方设置:
producer-project1是一个服务提供方项目,其中包含一个 VPC 网络producer-vpc。该网络配置了以下设置:- 服务提供方在
us-west1-a和us-west1-b可用区中提供数据包检查服务。 - 每个可用区都有一组数据包检查虚拟机、一个内部直通式网络负载平衡器和一个拦截部署。
- 服务提供方的数据包检查服务分组到一个拦截部署组中。
- 服务提供方在
consumer-project1是一个服务使用方项目,其中包含两个 VPC 网络consumer-vpc1和consumer-vpc2。这两个网络都配置为使用生产方的数据包拦截服务,设置如下:每个网络的防火墙政策和规则评估顺序都设置为
BEFORE_CLASSIC_FIREWALL。每个网络都有自己的拦截端点组关联,该关联引用一个通用拦截端点组。在该图中,通用拦截端点组位于
consumer-project2使用方项目中。拦截端点组表示使用方打算使用生产方的拦截部署组。在使用方的组织中,客户创建了一个包含安全配置文件的安全配置文件组。安全配置文件引用与
consumer-vpc1和consumer-vpc2VPC 网络关联的同一拦截端点组。如需将数据包定向到生产方的数据包检查服务,使用方可以使用防火墙政策中的入站或出站规则。
带内集成的工作原理
在带内集成中,当使用方流量中的数据包与使用 apply_security_profile_group 操作的防火墙规则匹配时,该数据包会被拦截。
与防火墙规则匹配的数据包会发送到服务提供方的 VPC 网络中的内部直通式网络负载平衡器。
数据包检查的要求
如需让防火墙规则成功拦截使用方流量,必须满足以下条件:
- 使用
apply_security_profile_group操作的防火墙规则必须属于与使用方 VPC 网络关联的分层防火墙政策或全局网络防火墙政策。 - 使用方的拦截端点组关联必须将使用方的 VPC 网络与正确的拦截端点组相关联。
防火墙规则的安全配置文件组必须包含引用正确拦截端点组的安全配置文件。
如果防火墙规则的安全配置文件引用的拦截端点组与 VPC 网络关联的拦截端点组不匹配,则不会拦截数据包。
可用区级亲和性
如需优化延迟时间和提高吞吐量,您可以为 Network Security Integration 部署使用可用区级 亲和性,并使用区域后端配置可用区级拦截。启用可用区级亲和性后,您的可用区级拦截部署会引用区域内部直通式网络负载平衡器,该负载平衡器在同一区域内的多个可用区中都有后端。如果源流量所在的可用区中存在运行正常的虚拟机实例,则此配置会优先将数据包路由到该可用区中的检查虚拟机实例。
数据包流
当数据包与满足 数据包检查 要求的防火墙规则匹配时, Google Cloud 会按如下方式处理数据包:
拦截使用方 VPC 网络可用区中的数据包。
Google Cloud 根据流量方向拦截数据包:
出站流量(从虚拟机发送的数据包):与用于数据包检查的 出站防火墙规则匹配的数据包会在数据包路由之前被拦截。
如果虚拟机为其 NIC 分配了外部 IPv4 地址,或者虚拟机 NIC 使用 Cloud NAT 网关, Google Cloud 则会在处理出站防火墙规则和数据包检查之后,但在路由出站数据包之前,更改数据包的来源 IPv4 地址。
入站流量(虚拟机接收的数据包):与用于数据包检查的 入站防火墙规则匹配的数据包会在数据包路由之后被拦截。
如果虚拟机为其 NIC 分配了外部 IPv4 地址 或虚拟机 NIC 使用 Cloud NAT 网关, Google Cloud 则会在接收路由的入站数据包之后,但在处理入站防火墙规则和数据包检查之前,更改数据包的目标 IPv4 地址。
封装数据包。
在防火墙处理阶段,原始出站或入站数据包使用 GENEVE 协议进行封装。此封装会在 GENEVE 数据包的载荷中保留原始数据包的来源和目标 IP 地址。
将封装的数据包发送给服务提供方。
封装的数据包会发送到服务提供方的 VPC 网络中的内部直通式网络负载平衡器的后端虚拟机。系统会根据流量被拦截的虚拟机的可用区以及拦截端点组引用的拦截部署组的配置来选择特定的负载均衡器。
处理数据包。
生产方的后端虚拟机在
UDP端口6081上接收 GENEVE 封装的数据包。每个数据包处理虚拟机都有软件,该软件了解如何从 GENEVE 数据包中提取原始数据包。虚拟机上的检查软件会提取原始数据包,对其进行检查,如果允许流量,则使用 GENEVE 重新封装该数据包,而不会更改原始数据包的 IP 地址、协议和端口。
返回数据包。
数据包处理虚拟机使用直接服务器返回 (DSR) 将重新封装的数据包发送回使用方网络。在此过程中,响应流量直接从网络设备发送到客户端,绕过负载均衡器以提高效率。如需了解详情,请参阅 内部直通式网络负载平衡器的工作原理。
限制
- 当网络数据包与任何拦截规则匹配时,Compute Engine 会以较慢的速率处理数据包。数据包处理速率 取决于机器类型、数据包大小和 CPU 利用率,与 VPC 网络外部目的地的出站流量速率相似。
- 区域网络防火墙政策不支持数据包拦截。
- 生产方拦截部署不支持将具有 Dynamic NIC 的实例作为后端。
被拦截的 TCP 会话必须以 SYN 数据包开头,以便拦截设备观察完整会话。对于未知连接,设备会在拦截之前丢弃任何非 SYN 数据包。
SYN 数据包是启动新 TCP 连接的第一个数据包。非 SYN 数据包是该连接中的任何其他数据包。如果您的流量模式包含非 SYN 启动器或拆分路由,请与 Cloud 支持团队联系以获取建议。