Network Security Integration 带内集成让您可以将自己的网络安全设备(例如防火墙或入侵检测系统)直接插入到网络流量路径中以进行检查。您可以使用这些网络设备来检查流量是否存在任何已识别的威胁,然后再将流量发送到目的地。
Network Security Integration 使用 Cloud Next Generation Firewall 和数据包拦截技术提供带内集成,从而为数据包处理流水线提供以服务为中心的方法。数据包拦截是一项 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 网络关联的同一拦截端点组。为了将数据包定向到生产者的数据包检查服务,消费者会在防火墙政策中使用入站或出站规则。
直接互联网出站流量
带内集成支持直接互联网出站流量部署模型。在此模型中,生产者网络中的网络设备会检查出站互联网流量,并通过其外部网络接口将其直接发送到公共互联网。然后,设备使用 GENEVE 将互联网响应数据包直接路由到消费者虚拟机。
如需使用直接互联网出站流量部署模型,请按照相应设备的文档中所述,将网络设备配置为直接互联网出站流量。您无需在提供方或使用方 VPC 网络或带内资源中进行额外配置。使用方 VPC 网络也不需要 Cloud NAT 或默认互联网路由。
比较带内流量
如果网络设备未配置为直接互联网出站流量,则以互联网为目的地的流量在 VPC 网络之间的边界上双向传输两次,总共需要四跳:
- 跃点 1:使用方虚拟机通过 GENEVE 隧道将出站数据包从使用方 VPC 网络跨边界发送到提供方 VPC 网络中的网络设备。
- 跃点 2:网络设备检查数据包,并通过 GENEVE 隧道将原始数据包跨边界发送回使用方 VPC 网络。然后,消费者虚拟机通过 Cloud NAT 或外部 IP 地址将数据包路由到互联网。
- 跃点 3:使用方虚拟机接收互联网响应数据包,并通过 GENEVE 隧道将其跨边界发送到提供方 VPC 网络中的网络设备,以进行入站检查。
- 跃点 4:网络设备检查响应,并通过 GENEVE 隧道将其发送回边界另一侧的使用方虚拟机。
当网络设备配置为直接出站到互联网时,出站到互联网的流量会在 VPC 网络之间的边界上双向各跨越一次,总共需要两次跃点:
- 跃点 1:使用方虚拟机通过 GENEVE 隧道将出站数据包跨 VPC 网络边界发送到提供方 VPC 网络中的网络设备。检查完成后,设备会通过其外部接口将数据包直接路由到互联网。
- 跃点 2:网络设备在其外部接口上接收互联网响应数据包,检查该数据包,然后通过 GENEVE 隧道将数据包跨边界发送回使用方 VPC 网络。
借助直接互联网出站流量,出站数据包会绕过返回跃点,直接到达消费方 VPC 网络。您无需在消费者 VPC 网络中配置 Cloud NAT 网关或外部 IP 地址。此方法可集中管理面向互联网的基础设施和费用。
带内集成的工作原理
在带内集成中,当消费者流量中的数据包与使用 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 支持团队寻求建议。