网络安全集成使用提供方-使用方模型来检查和监控数据。它通过带外集成与数据包镜像技术相结合,使用用户管理的虚拟设备来镜像网络流量。
本教程介绍了如何创建和配置生产者和消费者资源,以设置带外集成。
目标
本教程介绍了如何在项目中完成以下任务:
- 在同一项目中为生产者和消费者创建具有子网的自定义 Virtual Private Cloud (VPC) 网络。
- 对于生产者,请创建并配置生产者资源和镜像部署资源。提供方资源的一个示例是内部直通式网络负载平衡器。
- 对于消费者,创建并配置客户端和服务器虚拟机 (VM) 实例、镜像端点资源和防火墙政策,以镜像客户端-服务器流量。
- 测试连接并验证来自消费者虚拟机的网络流量数据包是否镜像到生产者的镜像资源。
下图展示了提供方 VPC 网络与使用方 VPC 网络之间的流量流动。
上图显示了以下内容:
- 网络流量通过镜像端点组从使用方网络流向提供方网络。
- 生产者网络包含一个虚拟机实例、一个内部直通式网络负载平衡器和一个镜像部署。
- 提供方网络的镜像部署群组包含可用区级镜像部署。
- 使用方网络包括客户端和服务器虚拟机实例。使用方网络中的防火墙规则和政策管理流量,安全配置文件组与防火墙政策相关联。
- 使用方网络与镜像端点组关联相关联,该关联会将使用方网络连接到镜像端点组。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- 为您的项目启用 Compute Engine API。
- 在要用于结算的 Google Cloud 项目中启用 Network Security API。
- 确保您在项目级层拥有 Compute Network Admin 角色 (
roles/compute.networkAdmin),并在组织级层拥有 Security Profile Admin 角色 (roles/networksecurity.securityProfileAdmin)。 - 如果您希望通过命令行进行操作,请安装 Google Cloud CLI。如需了解该工具的概念性信息和安装信息,请参阅 gcloud CLI 概览。
注意:如果您之前未运行过 Google Cloud CLI,请先运行
gcloud init以初始化 gcloud CLI 目录。 - 获取项目 ID。您需要使用该值来创建镜像资源和端点资源。如果您使用的是 gcloud CLI,则可以在此处或稍后在相应命令中替换
PROJECT_ID。 - 获取组织的 ID。您需要此权限才能创建组织级层资源,例如安全配置文件和安全配置文件组。如果您使用的是 gcloud CLI,则可以在此处或稍后在相应命令中替换
ORG_ID。
创建生产者资源
在本部分中,您将为生产者创建以下资源:
- 包含子网的自定义 VPC 网络。
- 一个非代管式实例组,其中包含一个用于记录传入的通用网络虚拟化封装 (GENEVE) 数据包的虚拟机实例。
- 具有后端服务和转发规则的内部直通式网络负载平衡器。
- 防火墙规则,用于允许 Google Cloud 健康检查。
- 镜像部署群组和镜像部署。
创建自定义 VPC 网络
在本部分中,您将创建一个包含子网的 VPC 网络。
控制台
在 Google Cloud 控制台中,前往 VPC 网络页面。
点击创建 VPC 网络。
对于名称,输入
producer-network。对于说明,输入
Producer VPC network。在子网部分中,执行以下操作:
- 对于子网创建模式,选择自定义。
- 在新子网部分中,输入以下信息:
- 名称:
producer-subnet - 区域:
us-west1 - IP 栈类型:IPv4(单栈)
- IPv4 范围:
10.10.0.0/16
- 名称:
- 点击完成。
点击创建。
打开 gcloud CLI 并运行以下命令,以增加 Google Cloud 控制台网络的最大传输单元 (MTU)。
gcloud compute networks update producer-network \ --mtu=1856在该命令中,指定 1856 字节的 MTU,这是控制台网络的默认 MTU(1460 字节)与网络安全集成 GENEVE 封装开销(396 字节)的总和。 Google Cloud
gcloud
创建 VPC 网络。
gcloud compute networks create producer-network \ --subnet-mode=custom \ --mtu=1856 \ --description="Producer VPC network"在该命令中,指定 1856 字节的 MTU,这是控制台网络的默认 MTU(1460 字节)与网络安全集成 GENEVE 封装开销(396 字节)之和。 Google Cloud
在 VPC 网络中,创建一个子网。
gcloud compute networks subnets create producer-subnet \ --network=producer-network \ --region=us-west1 \ --range=10.10.0.0/16
创建非托管实例组
在本部分中,您将创建一个非托管式实例组。
控制台
在 Google Cloud 控制台中,前往实例群组页面。
点击创建实例组。
点击新建非代管式实例组。
对于名称,输入
producer-instance-group。在位置部分,为区域选择
us-west1,为可用区选择us-west1-b。在网络和实例部分中,执行以下操作:
- 对于网络,请选择
producer-network。 - 对于子网,选择
producer-subnet。
- 对于网络,请选择
点击创建。
gcloud
gcloud compute instance-groups unmanaged create producer-instance-group \
--zone=us-west1-b
配置负载均衡器组件
在本部分中,您将为内部直通式网络负载平衡器创建组件,包括后端服务和转发规则。
控制台
开始配置
在 Google Cloud 控制台中,前往负载均衡页面。
- 点击创建负载均衡器。
- 对于负载均衡器的类型,选择网络负载均衡器 (TCP/UDP/SSL),然后点击下一步。
- 对于代理或直通,选择直通式负载均衡器,然后点击下一步。
- 在公共或内部字段中,选择内部,然后点击下一步。
- 点击配置。
基本配置
在创建内部直通网络负载均衡器页面上,输入以下信息:
- 负载均衡器名称:
producer-ilb - 区域:
us-west1 - 网络:
producer-network
配置后端
- 点击后端配置。
- 对于协议,请选择
UDP。 - 从健康检查列表中,选择创建健康检查,输入以下信息,然后点击创建。
- 名称:
producer-health-check - 范围:区域
- 端口:
80 - 代理协议:
NONE
- 名称:
- 在后端的新后端部分,选择 IP 栈类型作为 IPv4(单栈)。
在实例组中,选择
producer-instance-group实例组,然后点击完成。请先确认后端配置旁边是否有蓝色对勾标记,然后再继续操作。
配置前端
- 在新建前端 IP 和端口部分,输入以下信息,然后点击完成:
- 对于名称,输入
producer-ilb-fr。 - 对于子网,选择
producer-subnet。 - 对于端口,选择单个,然后在端口号中输入
6081。 - 在高级配置部分中,对于数据包镜像,选择为此负载均衡器启用数据包镜像
- 请先确认前端配置旁边是否有蓝色对勾标记,然后再继续操作。
- 对于名称,输入
检查配置
- 点击检查并最终确定。
- 查看负载均衡器配置设置。
- 点击创建。
gcloud
创建区域级健康检查。
gcloud compute health-checks create tcp producer-health-check \ --region=us-west1 \ --port=80创建后端服务。
gcloud compute backend-services create producer-backend-service \ --protocol=UDP \ --region=us-west1 \ --health-checks=producer-health-check \ --health-checks-region=us-west1 \ --load-balancing-scheme=INTERNAL为后端服务创建转发规则。
gcloud compute forwarding-rules create producer-ilb-fr \ --backend-service=producer-backend-service \ --region=us-west1 \ --network=producer-network \ --subnet=producer-subnet \ --ip-protocol=UDP \ --load-balancing-scheme=INTERNAL \ --is-mirroring-collector \ --ports=6081
创建虚拟机实例并将其添加到实例组
在本部分中,您将创建一个包含启动脚本的虚拟机实例,该脚本用于设置 GENEVE 封装的数据包的日志记录服务器。在创建虚拟机实例之前,请先获取子网网关的 IP 地址。您需要启动脚本的 IP 地址。
控制台
获取子网网关的 IP 地址
在 Google Cloud 控制台中,前往 VPC 网络页面。
点击
producer-networkVPC 网络。点击子网标签页。
在子网部分,记下网关列中的网关 IP 地址。
创建虚拟机实例
在 Google Cloud 控制台中,转到虚拟机实例页面。
- 点击创建实例。
- 对于名称,输入
producer-instance。 - 对于区域,请选择
us-west1。 - 对于可用区,请选择
us-west1-b。 - 将机器类型设置为 e2-micro。
- 点击网络,然后在网络接口部分中,点击添加网络接口并设置以下内容:
- 网络:
producer-network - 子网:
producer-subnet - 外部 IPv4 地址:无
- 网络:
点击高级,然后在启动脚本中输入以下脚本:
#!/bin/bash # Log incoming packets from the gateway IP and the GENEVE 6081 port. iptables -A INPUT -p udp -s '"$GW_IP"'/32 --dport 6081 -j LOG --log-prefix "[NSI MIRRORING] " # Spin up a simple server for health checks on port 80. nohup python3 -u -m http.server 80 &
替换以下内容:
GW_IP:子网网关的 IP 地址。
点击创建。
将虚拟机实例添加到实例组
在 Google Cloud 控制台中,前往实例群组页面。
点击
producer-instance-group。点击修改。
在虚拟机实例部分中,从选择虚拟机列表中选择
producer-instance虚拟机。点击保存。
gcloud
获取子网网关的 IP 地址。
GW_IP=$(gcloud compute networks subnets describe producer-subnet \ --region=us-west1 \ --format="get(gatewayAddress)")创建虚拟机实例。
gcloud compute instances create producer-instance \ --image-project=debian-cloud \ --image-family=debian-11 \ --machine-type=e2-micro \ --zone=us-west1-b \ --network-interface="subnet=producer-subnet,no-address" \ --metadata=startup-script='#!/bin/bash # Log incoming packets from the gateway IP and the GENEVE 6081 port. iptables -A INPUT -p udp -s '"$GW_IP"'/32 --dport 6081 -j LOG --log-prefix "[NSI MIRRORING] " # Spin up a simple server for health checks on port 80. nohup python3 -u -m http.server 80 &'将虚拟机实例添加到实例组。
gcloud compute instance-groups unmanaged add-instances producer-instance-group \ --instances=producer-instance \ --zone=us-west1-b将实例组添加到后端服务。
gcloud compute backend-services add-backend producer-backend-service \ --region=us-west1 \ --instance-group=producer-instance-group \ --instance-group-zone=us-west1-b
创建防火墙政策并添加防火墙规则
在本部分中,您将创建防火墙政策并添加防火墙规则,以允许通过 Identity-Aware Proxy (IAP) 将 UDP 流量、 Google Cloud 健康检查和 SSH 连接发送到生产者虚拟机实例。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
点击 创建防火墙政策。
在名称字段中,输入
producer-firewall-policy。在部署范围列表中,选择全局,然后点击继续。
为您的政策创建以下规则。
允许来自 VPC 网关 IP 地址的、具有 GENEVE 端口的 UDP 流量
- 点击创建防火墙规则,然后配置以下字段:
- 优先级:
100 - 流量方向:入站
- 匹配时执行的操作:允许
- 来源过滤条件 > IP 地址范围:
GATEWAY_IP - 协议和端口:选择指定的协议和端口,选中 UDP 复选框,然后在端口中指定
6081。
- 优先级:
- 点击创建。
将
GATEWAY_IP替换为子网网关的 IP 地址。允许 Google Cloud 健康检查
点击创建防火墙规则,然后配置以下字段:
- 优先级:
101 - 流量方向:入站
- 匹配时执行的操作:允许
- IP 范围:
35.191.0.0/16和130.211.0.0/22 - 协议和端口:选择指定的协议和端口,选中 TCP 复选框,然后在端口中指定
80。
- 优先级:
点击创建。
允许通过 Identity-Aware Proxy 建立与生产者虚拟机实例的 SSH 连接
- 点击创建防火墙规则,然后配置以下字段:
- 优先级:
102 - 流量方向:入站
- 匹配时执行的操作:允许
- IP 范围:
35.235.240.0/20 - 协议和端口:选择指定的协议和端口,选中 TCP 复选框,然后在端口中指定
22。
- 优先级:
- 点击创建。
- 点击创建防火墙规则,然后配置以下字段:
如需将政策与网络关联,请点击继续,然后点击关联。
选中
producer-network复选框。点击继续。
点击创建。
gcloud
创建全球网络防火墙政策。
gcloud compute network-firewall-policies create producer-firewall-policy \ --global将防火墙政策与提供方网络相关联。
gcloud compute network-firewall-policies associations create \ --name=producer-firewall-policy-assoc \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy \ --network=producer-network创建防火墙规则,以允许从 VPC 网关 IP 地址建立与 GENEVE 端口的 UDP 连接。
gcloud compute network-firewall-policies rules create 100 \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=udp:6081 \ --src-ip-ranges=$GW_IP/32创建防火墙规则以允许 Google Cloud 健康检查。
gcloud compute network-firewall-policies rules create 101 \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=tcp:80 \ --src-ip-ranges=35.191.0.0/16,130.211.0.0/22 # Google Cloud health check ranges创建防火墙规则,以允许通过 Identity-Aware Proxy 建立与生产者虚拟机实例的 SSH 连接。
gcloud compute network-firewall-policies rules create 102 \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=tcp:22 \ --src-ip-ranges=35.235.240.0/20 # Google Cloud IAP range
创建生产者镜像资源
在本部分中,您将创建镜像部署群组和镜像部署。
控制台
在 Google Cloud 控制台中,前往部署组页面。
点击创建部署组。
对于名称,输入
producer-deployment-group。对于网络,请选择
producer-network。对于用途,请选择 NSI 带外。
在镜像部署部分,点击创建镜像部署,指定以下字段,然后点击创建:
- 名称:
producer-deployment。 - 区域:
us-west1。 - 可用区:
us-west1-b。 - 内部负载均衡器:
producer-ilb。
- 名称:
点击创建。
gcloud
创建镜像部署组。
gcloud network-security mirroring-deployment-groups create producer-deployment-group \ --location=global \ --network=projects/PROJECT_ID/global/networks/producer-network \ --no-async将
PROJECT_ID替换为您的项目 ID。创建镜像部署。
gcloud network-security mirroring-deployments create producer-deployment \ --location=us-west1-b \ --forwarding-rule=producer-ilb-fr \ --forwarding-rule-location=us-west1 \ --mirroring-deployment-group=projects/PROJECT_ID/locations/global/mirroringDeploymentGroups/producer-deployment-group \ --no-async
创建使用方资源
在本部分中,您将为消费者创建以下资源:
- 包含子网的自定义 VPC 网络
- 服务器和客户端虚拟机
- 用于镜像流量的防火墙政策和规则
- 镜像端点组和镜像端点组关联
- 安全配置文件和安全配置文件组
创建自定义 VPC 网络
在本部分中,您将创建一个包含子网的 VPC 网络。
控制台
在 Google Cloud 控制台中,前往 VPC 网络页面。
点击 创建 VPC 网络。
对于名称,输入
consumer-network。对于说明,输入
Consumer VPC network。在子网部分中,执行以下操作:
- 对于子网创建模式,选择自定义。
- 在新子网部分中,输入以下信息:
- 名称:
consumer-subnet - 区域:
us-west1 - IP 栈类型:IPv4(单栈)
- IPv4 范围:
10.11.0.0/16
- 名称:
- 点击完成。
点击创建。
gcloud
创建使用方 VPC 网络。
gcloud compute networks create consumer-network \ --subnet-mode=custom \ --description="Consumer VPC network"在 VPC 网络中,创建一个子网。
gcloud compute networks subnets create consumer-subnet \ --network=consumer-network \ --region=us-west1 \ --range=10.11.0.0/16
创建服务器和客户端虚拟机
在本部分中,您将创建一个服务器虚拟机和一个客户端虚拟机。
控制台
创建服务器虚拟机
在 Google Cloud 控制台中,转到虚拟机实例页面。
点击创建实例。
将名称设置为
consumer-server-vm。将区域设置为
us-west1。将地区设置为
us-west1-b。将机器类型设置为 e2-micro。
点击网络,然后在网络接口部分中,点击添加网络接口并设置以下内容:
- 网络:
consumer-network - 子网:
consumer-subnet - 外部 IPv4 地址:无
- 网络:
点击高级,然后在启动脚本中输入以下脚本:
echo success > /tmp/connection_test && nohup python3 -u -m http.server --directory /tmp 8000 &
点击创建。
创建客户端虚拟机
在 Google Cloud 控制台中,转到虚拟机实例页面。
点击创建实例。
将名称设置为
consumer-client-vm。将区域设置为
us-west1。将地区设置为
us-west1-b。将机器类型设置为 e2-micro。
点击网络,然后在网络接口部分中,点击添加网络接口并设置以下内容:
- 网络:
consumer-network - 子网:
consumer-subnet - 外部 IPv4 地址:无
- 网络:
点击创建。
gcloud
创建服务器虚拟机。
gcloud compute instances create consumer-server-vm \ --image-project=debian-cloud \ --image-family=debian-11 \ --machine-type=e2-micro \ --zone=us-west1-b \ --network-interface="subnet=consumer-subnet,no-address" \ --metadata=startup-script="echo success > /tmp/connection_test && nohup python3 -u -m http.server --directory /tmp 8000 &"创建客户端虚拟机。
gcloud compute instances create consumer-client-vm \ --image-project=debian-cloud \ --image-family=debian-11 \ --machine-type=e2-micro \ --zone=us-west1-b \ --network-interface="subnet=consumer-subnet,no-address"
创建防火墙政策以允许入站流量
在本部分中,您将创建防火墙政策并添加防火墙规则,以允许向使用方虚拟机发送入站流量。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
点击 创建防火墙政策。
在名称字段中,输入
consumer-firewall-policy。在部署范围列表中,选择全局,然后点击继续。
点击创建防火墙规则,配置以下字段,然后点击创建:
- 优先级:
101 - 流量方向:入站
- 匹配时执行的操作:允许
- 来源过滤条件 > IP 地址范围:
35.235.240.0/20 - 协议和端口:选择指定的协议和端口,选中 TCP 复选框,然后在端口中指定
22。
IPv4 范围
35.235.240.0/20包含 Identity-Aware Proxy 用于 TCP 转发的所有 IP 地址。如需了解详情,请参阅准备您的项目以进行 IAP TCP 转发。- 优先级:
如需允许 TCP 端口
8000上的流量进入服务器虚拟机,请点击创建防火墙规则,然后配置以下字段:- 优先级:
102 - 流量方向:入站
- 匹配时执行的操作:允许
- 来源过滤条件 > IP 地址范围:
10.11.0.0/16 - 协议和端口:选择指定的协议和端口,选中 TCP 复选框,然后在端口中指定
8000。 - 点击创建
- 优先级:
如需将政策与网络关联,请点击继续,然后点击关联。
选中
consumer-network复选框。点击继续。
点击创建。
gcloud
创建全球网络防火墙政策。
gcloud compute network-firewall-policies create consumer-firewall-policy \ --global将防火墙政策与使用方网络相关联。
gcloud compute network-firewall-policies associations create \ --name=consumer-firewall-policy-assoc \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policy \ --network=consumer-network创建 SSH 允许规则,以允许通过 Identity-Aware Proxy 建立与客户端虚拟机实例的 SSH 连接。
gcloud compute network-firewall-policies rules create 101 \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=tcp:22 \ --src-ip-ranges=35.235.240.0/20 # Google Cloud IAP rangeIPv4 范围
35.235.240.0/20包含 IAP 用于 TCP 转发的所有 IP 地址。如需了解详情,请参阅准备您的项目以进行 IAP TCP 转发。创建防火墙规则,以允许 TCP 端口
8000上的流量进入服务器虚拟机。gcloud compute network-firewall-policies rules create 102 \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=tcp:8000 \ --src-ip-ranges=10.11.0.0/16
创建使用方端点组
在本部分中,您将创建镜像端点组和镜像端点组关联。
控制台
在 Google Cloud 控制台中,前往端点组页面。
点击创建端点组。
对于名称,输入
consumer-endpoint-group。对于用途,请选择 NSI 带外。
对于部署组,选择在项目中。
在部署组名称字段中,输入
producer-deployment-group。点击继续。
点击添加端点组关联。
在项目部分,选择当前项目。
对于网络,请选择
consumer-network。点击创建。
gcloud
创建镜像端点组。
gcloud network-security mirroring-endpoint-groups create consumer-endpoint-group \ --location=global \ --mirroring-deployment-group=projects/PROJECT_ID/locations/global/mirroringDeploymentGroups/producer-deployment-group \ --no-async将
PROJECT_ID替换为您的项目 ID。创建镜像端点组关联。
gcloud network-security mirroring-endpoint-group-associations create consumer-endpoint-group-association \ --location=global \ --mirroring-endpoint-group=projects/PROJECT_ID/locations/global/mirroringEndpointGroups/consumer-endpoint-group \ --network=consumer-network \ --no-async
创建安全配置文件和安全配置文件组
创建安全配置文件组和自定义安全配置文件以镜像流量。
控制台
创建自定义安全配置文件
在 Google Cloud 控制台中,前往安全配置文件页面。
从项目选择器中选择您的组织。
在安全配置文件标签页中,点击创建配置文件。
对于名称,输入
consumer-security-profile。对于用途,请选择 NSI 带外。
在项目部分,选择当前项目。
对于端点组,选择
consumer-endpoint-group。点击创建。
创建安全配置文件组
在 Google Cloud 控制台中,前往安全配置文件组页面。
从项目选择器中选择您的组织。
在安全配置文件组标签页中,点击创建配置文件组。
对于名称,输入
consumer-security-profile-group。对于用途,请选择 NSI 带外。
对于自定义镜像配置文件,选择
consumer-security-profile。点击创建。
gcloud
创建自定义镜像安全配置文件。
gcloud network-security security-profiles custom-mirroring create consumer-security-profile \ --location=global \ --organization=ORG_ID \ --mirroring-endpoint-group=projects/PROJECT_ID/locations/global/mirroringEndpointGroups/consumer-endpoint-group \ --billing-project=PROJECT_ID \ --no-async替换以下内容:
ORG_ID:您的组织的 ID。 安全配置文件是组织级资源。如需创建安全配置文件,您需要在组织级层具有 Security Profile Admin 角色 (networksecurity.securityProfileAdmin)。PROJECT_ID:您的项目的 ID。
创建镜像安全配置文件组。
gcloud network-security security-profile-groups create consumer-security-profile-group \ --location=global \ --organization=ORG_ID \ --custom-mirroring-profile=organizations/ORG_ID/locations/global/securityProfiles/consumer-security-profile \ --billing-project=PROJECT_ID \ --no-async替换以下内容:
ORG_ID:您的组织的 ID。 安全配置文件组是组织级资源。如需创建安全配置文件,您需要在组织级层具有 Security Profile Admin 角色 (networksecurity.securityProfileAdmin)。PROJECT_ID:您的项目的 ID。
创建防火墙政策规则以镜像流量
在本部分中,您将创建镜像规则以镜像流量。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
点击
consumer-firewall-policy。点击镜像规则标签页。
点击创建镜像规则,然后配置以下字段:
- 优先级:
100 - 流量方向:入站
- 对匹配项执行的操作:镜像
- 安全配置文件组:
consumer-security-profile-group - 来源:IPv4
- IP 范围:
10.11.0.0/16 - 协议和端口:选择指定的协议和端口,选中 TCP 复选框,然后在端口中指定
8000。
- 优先级:
点击创建。
gcloud
添加一条防火墙规则,以镜像服务器虚拟机的 TCP 端口
8000上的流量。gcloud compute network-firewall-policies mirroring-rules create 100 \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policy \ --action=mirror \ --security-profile-group=organizations/ORG_ID/locations/global/securityProfileGroups/consumer-security-profile-group \ --direction=INGRESS \ --layer4-configs=tcp:8000 \ --src-ip-ranges=10.11.0.0/16将
ORG_ID替换为您的组织的 ID。
测试连接
在本部分中,您将从使用方客户端虚拟机实例向使用方服务器虚拟机实例发送一些网络流量,然后检查提供方虚拟机实例的日志以验证镜像。
运行以下命令,通过 SSH 连接到消费者客户端虚拟机实例,并向消费者服务器虚拟机实例发送请求。
gcloud compute ssh consumer-client-vm \ --tunnel-through-iap \ --zone=us-west1-b \ --command="curl -m 3 -s http://consumer-server-vm:8000/connection_test || echo fail"运行上一个命令时,您会看到
success消息。表示流量是从客户端发送到服务器的。运行以下命令以检查提供方虚拟机实例的日志。
gcloud compute ssh producer-instance \ --tunnel-through-iap \ --zone=us-west1-b \ --command="cat /var/log/syslog | grep 'NSI MIRRORING'"您会看到类似
[NSI MIRRORING] IN=ens4 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=10.10.0.1 DST=10.10.0.2 LEN=136 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=45554 DPT=6081 LEN=116的消息。表示客户端-服务器流量由提供方虚拟机实例镜像。
清理
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
删除使用方资源
取消防火墙政策与使用方网络的关联,并删除防火墙政策。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
点击
consumer-firewall-policy政策。点击关联标签页。
选中
consumer-network关联复选框。点击移除关联。
点击移除。
点击页面顶部的删除。
再次点击删除进行确认。
gcloud
移除关联。
gcloud compute network-firewall-policies associations delete \ --name=consumer-firewall-policy-assoc \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policy删除防火墙政策。
gcloud compute network-firewall-policies delete consumer-firewall-policy \ --global
删除安全配置文件组。
控制台
在 Google Cloud 控制台中,前往安全配置文件页面。
从项目选择器中选择您的组织。
在安全配置文件组标签页中,选择
consumer-security-profile-group安全配置文件组,然后点击删除。再次点击删除进行确认。
gcloud
gcloud network-security security-profile-groups delete consumer-security-profile-group \ --location=global \ --organization=ORG_ID \ --billing-project=PROJECT_ID \ --quiet替换以下内容:
ORG_ID:您的组织 ID。PROJECT_ID:您的项目 ID
删除安全配置文件。
控制台
在 Google Cloud 控制台中,前往安全配置文件页面。
从项目选择器中选择您的组织。
在安全配置文件标签页中,选择
consumer-security-profile安全配置文件,然后点击删除。再次点击删除进行确认。
gcloud
gcloud network-security security-profiles custom-mirroring delete consumer-security-profile \ --location=global \ --organization=ORG_ID \ --billing-project=PROJECT_ID \ --quiet删除镜像端点组关联。
控制台
在 Google Cloud 控制台中,前往端点组页面。
点击
consumer-endpoint-group。选择
consumer-network关联,然后点击删除。再次点击删除进行确认。
gcloud
gcloud network-security mirroring-endpoint-group-associations delete consumer-endpoint-group-association \ --location=global \ --no-async删除镜像端点组。
控制台
在 Google Cloud 控制台中,前往端点组页面。
选择
consumer-endpoint-group,然后点击删除。再次点击删除进行确认。
gcloud
gcloud network-security mirroring-endpoint-groups delete consumer-endpoint-group \ --location=global \ --no-async删除服务器和客户端虚拟机。
控制台
在 Google Cloud 控制台中,转到虚拟机实例页面。
选中
consumer-client-vm和consumer-server-vm对应的复选框,然后点击删除。再次点击删除进行确认。
gcloud
删除客户端虚拟机。
gcloud compute instances delete consumer-client-vm \ --zone=us-west1-b \ --quiet删除服务器虚拟机。
gcloud compute instances delete consumer-server-vm \ --zone=us-west1-b \ --quiet
删除使用方网络和子网。
控制台
在 Google Cloud 控制台中,前往 VPC 网络页面。
点击
consumer-network。在子网标签页中,选中
consumer-subnet复选框,然后点击删除。再次点击删除进行确认。
点击删除 VPC 网络。
在文本字段中输入
consumer-network,然后点击删除。
gcloud
删除子网。
gcloud compute networks subnets delete consumer-subnet \ --region=us-west1 \ --quiet删除 VPC 网络。
gcloud compute networks delete consumer-network \ --quiet
删除提供方资源
取消防火墙政策与提供方网络的关联,并删除防火墙政策。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
点击
producer-firewall-policy政策。点击关联标签页。
选中
producer-network关联复选框。点击移除关联。
点击移除。
点击删除。
再次点击删除进行确认。
gcloud
移除关联。
gcloud compute network-firewall-policies associations delete \ --name=producer-firewall-policy-assoc \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy删除防火墙政策。
gcloud compute network-firewall-policies delete producer-firewall-policy \ --global
删除镜像部署和镜像部署群组。
控制台
在 Google Cloud 控制台中,前往部署组页面。
点击
producer-deployment-group。删除
producer-deployment。- 选中
producer-deployment复选框,然后点击删除。 - 再次点击删除进行确认。
- 选中
点击删除按钮。
再次点击删除进行确认。
gcloud
删除镜像部署。
gcloud network-security mirroring-deployments delete producer-deployment \ --location=us-west1-b \ --no-async删除镜像部署群组。
gcloud network-security mirroring-deployment-groups delete producer-deployment-group \ --location=global \ --no-async
删除负载均衡器资源。
控制台
在 Google Cloud 控制台中,前往负载均衡页面。
选中
producer-ilb复选框。点击页面顶部的删除按钮。
选中
producer-health-check复选框,然后点击删除负载均衡器和所选的资源。
gcloud
删除转发规则。
gcloud compute forwarding-rules delete producer-ilb-fr \ --region=us-west1 \ --quiet移除后端服务。
gcloud compute backend-services delete producer-backend-service \ --region=us-west1 \ --quiet删除健康检查。
gcloud compute health-checks delete producer-health-check \ --region=us-west1 \ --quiet
删除生产者虚拟机实例。
控制台
在 Google Cloud 控制台中,前往虚拟机实例页面。
选中
producer-instance复选框,然后点击删除。再次点击删除进行确认。
gcloud
gcloud compute instances delete producer-instance \ --zone=us-west1-b \ --quiet删除实例组。
控制台
在 Google Cloud 控制台中,前往实例群组页面。
选中
producer-instance-group复选框。点击删除。
在确认窗口中,点击删除。
gcloud
gcloud compute instance-groups unmanaged delete producer-instance-group \ --zone=us-west1-b \ --quiet删除提供方网络和子网。
控制台
在 Google Cloud 控制台中,前往 VPC 网络页面。
点击
producer-network。在子网标签页中,选中
producer-subnet对应的复选框,然后点击删除。再次点击删除进行确认。
点击删除 VPC 网络。
在文本字段中输入
producer-network,然后点击删除。
gcloud
删除子网。
gcloud compute networks subnets delete producer-subnet \ --region=us-west1 \ --quiet删除网络。
gcloud compute networks delete producer-network \ --quiet