完成本页面上的以下步骤,了解如何运行 Connectivity Tests。
如需修改或删除一个或多个测试,请参阅更新或删除测试。
如需了解 Connectivity Tests,请参阅概览。
准备工作
请先在 Google Cloud 中设置以下各项,然后才能使用 Connectivity Tests:
在 Google Cloud Console 中,转到项目选择器页面。
选择或创建 Google Cloud 项目。
- 确保您的 Google Cloud 项目已启用结算功能。
安装 Google Cloud CLI 中的 Google Cloud CLI。如需安装最新版本的 gcloud CLI,请参阅 gcloud CLI 文档。
如需查看所有命令的列表,请参阅
gcloud
命令参考文档。启用 Network Management API。启用 API 可为您提供以下内容:
使用 Network Management API 的示例 API 调用
您可以使用 API Explorer 测试 Network Management API 命令。在 Network Management API 参考文档中,使用
Try this API
列了解 API 字段,并运行测试。使用 API Python 客户端的示例代码
示例代码假设您已构建名为
api
的资源以与 Network Management API 交互。如需构建资源,请使用build
函数。请参阅以下示例:from googleapiclient.discovery import build api = build('networkmanagement', 'v1')
如需详细了解 API Python 客户端,请参阅以下内容:
- GitHub 中的 Python 版 Google API 客户端库文档,其中包含安装和身份验证说明。
- API Python 客户端的 Network Management API 参考文档。
- 获取运行和查看测试所需的权限。有关详情,请参阅分配访问权限。
运行 Connectivity Tests
运行 Connectivity Tests 测试时,测试输入应采取无源端口的 5 元组形式提供。
以下各个部分介绍了如何对常见用例中所述的来源端点和目标端点运行测试。
在 Google Cloud 控制台中,您可以使用以下任一方式运行 Connectivity Tests:
Connectivity Tests 页面,可从网络 > Network Intelligence Center 菜单访问。
Compute Engine 虚拟机 (VM) 实例网络接口的网络接口详情页面。如果您使用此页面,则必须使用当前网络接口作为测试的来源或目标。此页面仅列出与当前网络接口相关的测试。
您创建的每个测试都会在您创建后立即运行,并存储在 Connectivity Tests 资源中。测试会一直存在,直到您将其删除。
如需在测试操作运行时检查其状态,请参阅检查正在运行的测试操作。 测试操作的示例包括 create
和 rerun
。
当使用 IP 地址作为来源端点或目标端点时,可能需要指定其他字段。
最佳做法
当测试共享 VPC 服务项目中的端点(虚拟机或 IP 地址)时,从服务项目中运行测试更为方便。这是因为您可以从 Google Cloud 控制台中的下拉框中选择虚拟机或 IP 地址。
但是,您仍然必须先指定宿主项目,然后再指定 Virtual Private Cloud (VPC) 网络,因为该网络位于宿主项目中。如需了解详情,请参阅在共享 VPC 网络中测试 IP 地址。
在 VPC 网络和对等网络或本地网络之间运行测试时,使用本地 IP 地址作为来源端点,并使用 VPC 网络中的虚拟机实例或 IP 地址作为目标端点有助于运行另一个 Connectivity Tests 测试。
这类测试可验证 Google Cloud 是否按预期将路由发布到本地网络。但是,Connectivity Tests 不会验证本地网络是否已接收并实现了这些路由。
Connectivity Tests 需要 20 秒到 120 秒才能接收到配置更新并将其整合到分析中。如果您在配置更改后立即运行测试,则可能无法看到预期的结果。确保在更改配置后等待足够长的时间再运行测试。
此延迟不适用于实时数据平面分析。因此,您可能会看到实时数据平面分析和配置分析显示的结果之间存在暂时不匹配的情况。例如,如果添加防火墙规则,则实时数据平面分析可能能够访问该规则。但是,您可能需要等待一段时间,配置分析才能访问该防火墙规则。
在具有多个网络接口的虚拟机之间进行测试
本部分介绍如何在虚拟机的非主要网络接口之间进行测试。
控制台
如果您指定具有多个网络接口的虚拟机实例作为测试的来源或目标,则 Connectivity Tests 会提示您从列表中选择网络接口。
或者,从 Compute Engine 虚拟机实例网络接口的网络接口详情页面中运行测试。如果您使用此页面,则必须使用当前网络接口作为测试的来源或目标。
gcloud 和 API
您必须通过以下任一方式指定用于测试的网络接口:
- IP 地址和网络 URI
- IP 地址和虚拟机 URI
- 网络 URI 和虚拟机 URI
仅为具有多个接口的虚拟机提供 URI,只会选择虚拟机的主接口。
列出项目的所有测试
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 在页面顶部的项目下拉菜单中选择项目。
- Connectivity Tests 页面将刷新并显示该项目的测试。
gcloud
如需列出项目拥有的所有测试,请输入以下 gcloud
命令。此命令会显示当前所选项目中的测试。
gcloud network-management connectivity-tests list
如需列出特定项目中的测试,请指定 PROJECT_ID
。
gcloud network-management connectivity-tests list --project=PROJECT_ID
API
如需列出项目拥有的所有现有测试,请使用 projects.locations.global.connectivityTests.list
方法。
GET https://networkmanagement.googleapis.com/v1/{parent=projects/PROJECT_ID/locations/global}/connectivityTests
- 将
PROJECT_ID
替换为包含所要列出测试的项目的 ID。
Python
以下示例代码列出了项目拥有的所有现有测试。如需了解详情,请参阅 Python 版 Google API 客户端库中的 list
。
project_id = "PROJECT_ID" parent = 'projects/%s/locations/global' % project_id request = api.projects().locations().global_().connectivityTests().list(parent=parent)
print(json.dumps(request.execute(), indent=4))
将 PROJECT_ID
替换为包含所要列出测试的项目的 ID。
在 VPC 网络中的虚拟机实例之间进行测试
这些步骤假定两个虚拟机实例都在同一个 Google Cloud 项目中。
控制台
在“Connectivity Tests”的主页面上
-
在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建连接测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
-
对于来源,请进行以下设置:
- 在来源端点菜单中,选择虚拟机实例。
- 在来源虚拟机实例菜单中,选择特定的来源虚拟机实例。
在来源网络接口菜单中,选择网络接口。
如果虚拟机实例具有多个网络接口,请选择一个虚拟机网络接口,以唯一标识来源位置。
- 可选:从列表中选择来源 IP 地址。默认值为来源虚拟机实例的 IP 地址。
-
对于目标,执行以下操作:
- 在目标端点菜单中,选择虚拟机实例。
- 在目标虚拟机实例菜单中,选择特定的目标虚拟机实例。
在目标网络接口菜单中,选择网络接口。
如果虚拟机实例具有多个网络接口,请选择一个虚拟机网络接口,以唯一标识目标位置。
- 可选:从列表中选择目标 IP 地址。默认值为目标虚拟机实例的 IP 地址。
- 在目标端口字段中,输入目标端口。
- 点击创建。
注意:对于双栈实例,来源和目标 IP 地址的类型必须相同。例如,您无法测试从具有 IPv4 地址的虚拟机到具有 IPv6 地址的虚拟机的连接。
测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。 继续查看测试结果。
在“网络接口详情”页面上
- 在 Google Cloud 控制台中,前往虚拟机实例页面。
- 如果尚未选择,请选择包含要为其运行测试的实例的项目。
- 点击要用于运行测试的实例。
对于网络接口,选择要用于运行测试的网络接口。
如果虚拟机实例具有多个网络接口,请选择一个虚拟机网络接口,以唯一标识目标位置。
在网络分析部分,点击创建 Connectivity Tests 测试,然后执行以下操作:
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
在来源部分,您可以选择当前网络接口或其他。
如果您选择当前网络接口,请执行以下操作:
- 在目标端点菜单中,选择虚拟机实例。
- 在目标虚拟机实例菜单中,选择相应实例。
- 在目标网络接口菜单中,选择网络接口。
- 可选:选择目标 IP 地址。默认值为目标虚拟机实例的 IP 地址。
如果您选择了其他,请执行以下操作:
- 在来源端点菜单中,选择虚拟机实例。
- 在来源虚拟机实例菜单中,选择相应实例。
- 在来源网络接口菜单中,选择网络接口。
- 可选:选择来源 IP 地址。默认值为来源虚拟机实例的 IP 地址。
在目标端口字段中,输入指定目标的目标端口。
点击创建。
测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-instance=SOURCE_INSTANCE \ --source-ip-address=SOURCE_IP_ADDRESS \ --destination-instance=DESTINATION_INSTANCE \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --destination-port=DESTINATION_PORT \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。DESTINATION_INSTANCE
:目标虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-2
。DESTINATION_IP_ADDRESS
:您要测试的目标虚拟机实例的 IP 地址。该 IP 地址应为目标虚拟机实例的 IP 地址之一。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
Terraform
您可以使用 Terraform 资源在 VPC 网络中的两个虚拟机实例之间创建测试。
API
以下示例测试确定现有网络配置是否允许虚拟机 instance1
ping 虚拟机 instance2
。
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "instance": "SOURCE_INSTANCE", "ipAddress": "SOURCE_IP_ADDRESS", }, "destination": { "instance": "DESTINATION_INSTANCE", "ipAddress": "DESTINATION_IP_ADDRESS", }, "protocol": "PROTOCOL", }'
请替换以下内容:
PROJECT_ID
:来源虚拟机的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。DESTINATION_INSTANCE
:目标虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-2
。DESTINATION_IP_ADDRESS
:您要测试的目标虚拟机实例的 IP 地址。该 IP 地址应为目标虚拟机实例的 IP 地址之一。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
Python
以下示例代码在两个虚拟机实例之间创建了测试。如需了解详情,请参阅 Python 版 Google API 客户端库中的 create
。
test_input = { "source": { "instance": "SOURCE_INSTANCE", "ipAddress": "SOURCE_IP_ADDRESS", "projectId": "SOURCE_INSTANCE_PROJECT_ID" }, "destination": { "instance": "DESTINATION_INSTANCE", "ipAddress": "DESTINATION_IP_ADDRESS", "projectId": "DESTINATION_INSTANCE_PROJECT_ID" }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
请替换以下内容:
SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。SOURCE_INSTANCE_PROJECT_ID
:来源虚拟机的项目 ID。DESTINATION_INSTANCE
:目标虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-2
。DESTINATION_IP_ADDRESS
:您要测试的目标虚拟机实例的 IP 地址。该 IP 地址应为目标虚拟机实例的 IP 地址之一。DESTINATION_INSTANCE_PROJECT_ID
:目标虚拟机的项目 ID。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
在 VPC 网络中的专用 IP 地址之间进行测试
此示例假定两个 IP 地址都是同一 Google Cloud 项目和同一 VPC 网络中的专用 IP 地址。
如果要在对等 VPC 网络之间进行测试,请选择每个对等网络的来源网络和目标网络。
控制台
-
在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
其余步骤会显示在 Google Cloud 控制台中。
-
选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
-
在来源部分,执行以下操作:
- 在来源端点列表中,选择 IP 地址。
- 在来源 IP 地址字段中,输入来源 IP 地址。
-
如果来源 IP 地址的 VPC 网络位于当前项目中,请清除这是 Google Cloud 中使用的 IP 地址复选框。
如果 VPC 网络位于其他项目中,请在来源 IP 地址或服务项目字段中,选择网络所在的项目。
如果 IP 地址不在 RFC 1918 地址空间内,请选中我确认源端点位于 RFC 1918 地址空间外的范围内复选框。然后,在来源网络列表中,选择包含来源 IP 地址的网络。
-
在目标部分,执行以下操作:
- 在目标端点列表中,选择 IP 地址。
- 在目标 IP 地址字段中,输入目标 IP 地址。
-
如果目标 IP 地址的 VPC 网络位于当前项目中,请清除这是 Google Cloud 中使用的 IP 地址复选框。
如果 VPC 网络位于其他项目中,请在目标 IP 地址或服务项目字段中,选择网络所在的项目。
如果 IP 地址不在 RFC 1918 地址空间内,请选中我确认目标端点位于 RFC 1918 地址空间外的范围中复选框。然后,在目标网络列表中,选择包含目标 IP 地址的网络。
- 在目标端口字段中,输入有效的目标端口号。该数字必须介于 0 和 65535 之间(包括这两个数值)。
- 点击创建。
测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
将命令选项的变量替换为 VPC 网络中的值。
gcloud network-management connectivity-tests create NAME \ --source-ip-address=SOURCE_IP_ADDRESS \ --source-network=SOURCE_NETWORK \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --destination-network=DESTINATION_NETWORK \ --destination-port=DESTINATION_PORT \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK
:来源 IP 地址所在的 VPC 网络的 URI,例如projects/myproject/global/networks/default
。DESTINATION_IP_ADDRESS
:您要测试的内部或外部目标 IP 地址。DESTINATION_NETWORK
:目标 IP 地址所在的 VPC 网络的 URI,例如projects/myproject/global/networks/network-a
。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 或 UDP 协议。默认值为端口80
。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
如果网络未知,或者您没有访问网络的权限,则可以将网络指定为 GCP_NETWORK
,而不是提供网络 URI。
您无需确认您的 IP 地址是否在 Google Cloud 中,或者来源端点和目标端点是否在 RFC 1918 地址空间之外。系统会根据您的来源和目标 IP 地址自动选择这些参数。
gcloud network-management connectivity-tests create NAME \ --source-ip-address=SOURCE_IP_ADDRESS \ [--source-network-type=GCP_NETWORK] \ --destination-instance=DESTINATION_INSTANCE \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --destination-port=DESTINATION_PORT \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK_TYPE
:来源所在的网络类型。在本例中,请使用值GCP_NETWORK
。DESTINATION_INSTANCE
:目标虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-2
。DESTINATION_IP_ADDRESS
:您要测试的内部或外部目标 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 或 UDP 协议。默认值为端口80
。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
当您指定的来源 IP 地址是 Google Cloud 之外的外部 IP 地址时,必须指定 networkType
为 NON_GCP_NETWORK
。将以下命令中的值替换为 VPC 网络中的值。
gcloud network-management connectivity-tests create NAME \ --source-ip-address=SOURCE_IP_ADDRESS \ --source-network-type=NON_GCP_NETWORK \ --destination-ip-address= DESTINATION_IP_ADDRESS \ --destination-network=DESTINATION_NETWORK \ --destination-port=DESTINATION_PORT \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK_TYPE
:来源所在的网络类型。在本例中,请使用值NON_GCP_NETWORK
。DESTINATION_IP_ADDRESS
:您要测试的内部或外部目标 IP 地址。DESTINATION_NETWORK
:目标 IP 地址所在 VPC 网络的 URI,例如projects/myproject/global/networks/default
。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
Terraform
您可以使用 Terraform 资源在 VPC 网络中的两个 IP 地址之间创建测试。
您无需确认您的 IP 地址是否在 Google Cloud 中,或者来源端点和目标端点是否在 RFC 1918 地址空间之外。系统会根据您的来源和目标 IP 地址自动选择这些参数。
API
本示例测试从来源 IP 地址到目标 IP 地址进行 ping 的能力。
使用 projects.locations.global.connectivityTests.create
方法。
POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "network": "SOURCE_NETWORK" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "network": "DESTINATION_NETWORK", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL". }'
请替换以下内容:
PROJECT_ID
:来源虚拟机的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK
:来源 IP 地址所在的 VPC 网络的 URI,例如projects/myproject/global/networks/default
。DESTINATION_IP_ADDRESS
:您要测试的内部或外部目标 IP 地址。DESTINATION_NETWORK
:目标 IP 地址所在 VPC 网络的 URI,例如projects/myproject/global/networks/network-a
。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
如果 VPC 网络未知,或者您没有访问网络的权限,则可以将网络指定为 GCP_NETWORK
,而不是提供网络 URI。
您无需确认您的 IP 地址是否在 Google Cloud 中,或者来源端点和目标端点是否在 RFC 1918 地址空间之外。系统会根据您的来源和目标 IP 地址自动选择这些参数。
POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?connectivityTestId=TEST_ID' { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "networkType": "GCP_NETWORK" }, "destination": { "instance": "DESTINATION_INSTANCE", "ipAddress": "DESTINATION_IP_ADDRESS" }, "protocol": "PROTOCOL" }'
请替换以下内容:
PROJECT_ID
:来源虚拟机的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK_TYPE
:来源所在的网络类型。在本例中,请使用值GCP_NETWORK
。DESTINATION_INSTANCE
:目标虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-2
。DESTINATION_IP_ADDRESS
:您要测试的内部或外部目标 IP 地址。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
当您指定的来源 IP 地址是 Google Cloud 之外的外部 IP 地址时,必须指定 networkType
为 NON_GCP_NETWORK
。将以下命令中的值替换为 Google Cloud 网络的值。
POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "networkType": "NON_GCP_NETWORK", }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "network": "DESTINATION_NETWORK", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", }'
Python
以下示例代码在两个 IP 地址之间创建一个测试。如需了解详情,请参阅 Python 版 Google API 客户端库中的 create
。
test_input = { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "projectId": "SOURCE_IP_PROJECT_ID" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": "DESTINATION_PORT", "projectId": "DESTINATION_IP_PROJECT_ID" }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
请替换以下内容:
SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_IP_PROJECT_ID
:来源 IP 地址的项目 ID。DESTINATION_IP_ADDRESS
:您要测试的内部或外部目标 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。DESTINATION_IP_PROJECT_ID
:目标 IP 地址的项目 ID。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
如果 VPC 网络未知,或者您没有访问网络的权限,则可以将网络指定为 GCP_NETWORK
,而不是提供网络 URI。
您无需确认您的 IP 地址是否在 Google Cloud 中,或者来源端点和目标端点是否在 RFC 1918 地址空间之外。系统会根据您的来源和目标 IP 地址自动选择这些参数。
以下示例在两个 IP 地址之间创建一个测试:
test_input = { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "networkType": "GCP_NETWORK" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": "DESTINATION_PORT", "projectId": "DESTINATION_IP_PROJECT_ID" }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
请替换以下内容:
SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK_TYPE
:来源所在的网络类型。在本例中,请使用值GCP_NETWORK
。DESTINATION_IP_ADDRESS
:目标虚拟机的 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。DESTINATION_IP_PROJECT_ID
:目标 IP 地址的项目 ID。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
如果您指定的来源 IP 地址是 Google Cloud 之外的外部 IP 地址,则必须指定 networkType
为 NON_GCP_NETWORK
。
在共享 VPC 网络中测试 IP 地址
如果拥有共享 VPC 网络,则可以从宿主项目或服务项目创建并运行测试。
以下示例展示了两种情况,并使用了在服务项目中分配的目标 IP 地址。对于每种情况,Google Cloud 控制台中的字段值略有不同。不过,Google Cloud CLI 和 API 调用的命令选项是相同的。
控制台:从宿主
- 在 Google Cloud 控制台中,从宿主项目前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
- 对于来源,请进行以下设置:
- 在来源端点菜单中,选择 IP 地址。
- 输入来源 IP 地址。
- 选中这是 Google Cloud 中使用的 IP 地址复选框。
- 如果这是内部 IP 地址,无法从互联网访问,请选择该地址所在的 VPC 网络。
- 如果您的专用 IP 地址在 RFC 1918 地址空间之外,请选中我确认来源端点位于 RFC 1918 地址空间之外的范围内,然后选择包含该 IP 地址的目标网络。
- 在目标部分,执行以下操作:
- 在目标端点菜单中,选择 IP 地址。
- 输入目标 IP 地址。
- 选中这是 Google Cloud 中使用的 IP 地址复选框。
- 如果这是内部 IP 地址,无法从互联网访问,请选择该地址所在的 VPC 网络。
- 如果您的专用 IP 地址在 RFC 1918 地址空间之外,请选中我确认来源端点位于 RFC 1918 地址空间之外的范围内,然后选择包含该 IP 地址的目标网络。
- 在目标端口字段中,输入指定目标的目标端口。
- 点击创建。
- 测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
控制台:从服务
- 在 Google Cloud 控制台中,从服务项目前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
- 对于来源,请进行以下设置:
- 在来源端点菜单中,选择 IP 地址。
- 输入来源 IP 地址。
- 选中这是 Google Cloud 中使用的 IP 地址复选框。
- 如果这是内部 IP 地址,无法从互联网访问,请选择该地址所在的 VPC 网络。
- 在目标部分,执行以下操作:
- 在目标端点菜单中,选择 IP 地址。
- 输入目标 IP 地址。
- 选中这是 Google Cloud 中使用的 IP 地址复选框。
- 指定该 IP 地址所在的目标 IP 地址或服务项目。
- 如果您的专用 IP 地址在 RFC 1918 地址空间之外,请选中标记为 I confirm that the source endpoint resides in a range outside of the RFC 1918 address space(我确认来源端点位于 RFC 1918 地址空间之外的范围内)的复选框,然后选择包含该 IP 地址的目标网络。
- 在目标端口字段中,输入指定目标的目标端口。
- 点击创建。
- 测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
输入以下命令,可测试主机中两个专用 IP 地址以及目标 IP 地址所在的服务项目中的两个专用 IP 地址。将命令选项的变量替换为 VPC 网络中的值。
因为目标 IP 地址在服务项目中,所以请指定服务项目以及宿主项目的网络 URI。在这种情况下,default
表示 host-project
的默认 VPC 网络。
gcloud network-management connectivity-tests create NAME \ --source-ip-address=SOURCE_IP_ADDRESS \ --source-project=SOURCE_PROJECT \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --destination-network=DESTINATION_NETWORK \ --destination-project=DESTINATION_PROJECT \ --destination-port=DESTINATION_PORT \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_PROJECT
:来源端点的项目 ID。DESTINATION_IP_ADDRESS
:您要在服务项目中测试的内部或外部目标 IP 地址。DESTINATION_NETWORK
:宿主项目的 VPC 网络的 URI,例如projects/host-project/global/networks/default
。DESTINATION_PROJECT
:目标端点的项目 ID,例如名为service-project
的项目,表示此共享 VPC 网络使用的服务项目。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
API
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "projectId": "SOURCE_PROJECT", }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "projectId": "DESTINATION_PROJECT", "network": "DESTINATION_NETWORK", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", }'
请替换以下内容:
PROJECT_ID
:来源虚拟机的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_PROJECT
:来源端点的项目 ID。DESTINATION_IP_ADDRESS
:您要在服务项目中测试的内部或外部目标 IP 地址。DESTINATION_PROJECT
:目标端点的项目 ID,例如名为service-project
的项目,表示此共享 VPC 网络使用的服务项目。DESTINATION_NETWORK
:宿主项目的 VPC 网络的 URI,例如projects/host-project/global/networks/default
。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
Python
以下示例代码在两个 IP 地址之间创建一个测试。如需了解详情,请参阅 Python 版 Google API 客户端库中的 create
。
test_input = { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "projectId": "SOURCE_IP_PROJECT_ID" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "projectId": "DESTINATION_IP_PROJECT_ID", "network": "DESTINATION_NETWORK", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
请替换以下内容:
SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_IP_PROJECT_ID
:来源端点的项目 ID。DESTINATION_IP_ADDRESS
:您要在服务项目中测试的内部或外部目标 IP 地址。DESTINATION_IP_PROJECT_ID
:目标端点的项目 ID,例如名为service-project
的项目,表示此共享 VPC 网络使用的服务项目。DESTINATION_NETWORK
:宿主项目的 VPC 网络的 URI,例如projects/host-project/global/networks/default
。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
从虚拟机到 Google 管理的服务的测试
本部分介绍如何进行从您的 VPC 网络中的虚拟机到在 Google 拥有的 VPC 网络中运行的服务的测试。例如,您可以按照本部分中的步骤测试与 Cloud SQL 实例或 GKE 集群控制平面的连接。您还可以使用 Google 管理的服务端点作为来源,并使用您的 VPC 网络中的端点作为目标来运行测试。
默认情况下,Connectivity Tests 会尝试使用 Google 管理的服务端点的专用 IP 地址运行测试。如果端点没有专用 IP 地址,则 Connectivity Tests 会使用公共 IP 地址。 Connectivity Tests 会分析数据包能否到达端点,包括分析 Google 拥有的 VPC 网络中的配置。如果在项目中检测到配置问题,此分析会在分析 Google 拥有的网络配置之前停止。
如需进行从虚拟机到由 Google 管理的服务的测试,请参阅以下说明。
控制台
在“Connectivity Tests”的主页面上
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
在来源部分,执行以下操作:
- 在来源端点菜单中,选择虚拟机实例。
- 在来源虚拟机实例菜单中,选择特定的来源虚拟机实例。
在来源网络接口菜单中,选择网络接口。
如果虚拟机实例具有多个网络接口,请选择一个唯一标识来源位置的虚拟机网络接口。
可选:从列表中选择来源 IP 地址。默认值为来源虚拟机实例的 IP 地址。
在目标部分,执行以下操作:
- 在目标端点菜单中,选择一种由 Google 管理的服务资源,例如 GKE 集群控制平面。
- 在目标 GKE 集群控制平面菜单中,选择要测试与 GKE 控制平面的连接的集群。
- 可选:从列表中选择目标 GKE 集群控制平面 IP 地址。默认值为来源虚拟机实例的 IP 地址。
在目标端口字段中,输入指定目标的目标端口。
点击创建。
测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
在“网络接口详情”页面上
- 在 Google Cloud 控制台中,前往虚拟机实例页面。
- 如果尚未选择,请选择包含要为其运行测试的实例的项目。
- 点击要用于运行测试的实例。
- 对于网络接口,选择要用于运行测试的网络接口。
- 在网络分析部分,点击创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
- 在来源部分,选择当前网络接口。
- 在目标部分,执行以下操作:
- 在目标端点菜单中,选择一种由 Google 管理的服务资源,例如 GKE 集群控制平面。
- 在目标 GKE 集群控制平面菜单中,选择要测试与 GKE 控制平面的连接的集群。
- 可选:从列表中选择目标 GKE 集群控制平面 IP 地址。默认值为来源虚拟机实例的 IP 地址。
- 在目标端口字段中,输入指定目标的目标端口。
- 点击创建。
- 测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
按照以下指南替换命令选项的变量:
gcloud network-management connectivity-tests create NAME \ --source-instance=SOURCE_INSTANCE \ --source-ip-address=SOURCE_IP_ADDRESS \ DESTINATION_RESOURCE_FLAG=DESTINATION_ENDPOINT \ --destination-port=DESTINATION_PORT \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。DESTINATION_RESOURCE_FLAG
:用于指定由 Google 管理的服务资源类型的标志。如需了解可用选项,请参阅以下内容:
--destination-gke-master-cluster
--destination-cloud-sql-instance
如需了解详情,请参阅
gcloud network-management connectivity-tests create
参考文档。DESTINATION_ENDPOINT
:目标端点的 URI,例如标志--destination-gke-master-cluster
的projects/myproject/locations/us-central1/clusters/cluster-1
。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅对 TCP 协议或 UDP 协议有效。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
API
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "instance": "SOURCE_INSTANCE", "ipAddress": "SOURCE_IP_ADDRESS", }, "destination": { "DESTINATION_RESOURCE_FIELD": "DESTINATION_ENDPOINT", "port": DESTINATION_PORT }, "protocol": "PROTOCOL", }'
请替换以下内容:
PROJECT_ID
:来源虚拟机的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。DESTINATION_RESOURCE_FIELD
:用于指定由 Google 管理的服务资源类型的字段。如需了解可用选项,请参阅以下内容:
gkeMasterCluster
cloudSqlInstance
如需了解详情,请参阅端点参考文档。
DESTINATION_ENDPOINT
:目标端点的 URI(例如,字段gkeMasterCluster
的projects/myproject/locations/us-central1/clusters/cluster-1
)。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅对 TCP 协议或 UDP 协议有效。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
Python
以下示例代码可在虚拟机实例和由 Google 管理的服务端点之间创建测试。如需了解详情,请参阅 Python 版 Google API 客户端库中的 create
。
test_input = { "source": { "instance": "SOURCE_INSTANCE", "ipAddress": "SOURCE_IP_ADDRESS", "projectId": "SOURCE_INSTANCE_PROJECT_ID" }, "destination": { "DESTINATION_RESOURCE_FIELD": "DESTINATION_ENDPOINT", "port": "DESTINATION_PORT" }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
请替换以下内容:
SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。SOURCE_INSTANCE_PROJECT_ID
:来源虚拟机的项目 ID。DESTINATION_RESOURCE_FIELD
:用于指定由 Google 管理的服务资源类型的字段。如需了解可用选项,请参阅以下内容:
gkeMasterCluster
cloudSqlInstance
如需了解详情,请参阅端点参考文档。
DESTINATION_ENDPOINT
:目标端点的 URI(例如,字段gkeMasterCluster
的projects/myproject/locations/us-central1/clusters/cluster-1
)。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅对 TCP 协议或 UDP 协议有效。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
从虚拟机到 Private Service Connect 端点的测试
本部分介绍如何进行从虚拟机到 Private Service Connect 端点的测试。
例如,您可以按照本部分中的步骤测试数据包是否可以发送到使用 Private Service Connect 的已发布服务。Connectivity Tests 会分析数据包能否到达端点,包括分析连接的端点、已发布的服务和代理连接。如果与使用 Private Service Connect 的已发布服务的连接未被接受,则分析会提前结束。
您可以测试与以下各项的连接:
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
在来源部分,执行以下操作:
- 在来源端点菜单中,选择虚拟机实例。
- 在来源虚拟机实例菜单中,选择特定的来源虚拟机实例。
在来源网络接口菜单中,选择网络接口。
如果虚拟机实例具有多个网络接口,请选择一个唯一标识来源位置的虚拟机网络接口。
可选:从列表中选择来源 IP 地址。默认值为来源虚拟机实例的 IP 地址。
在目标部分,执行以下操作:
- 在目标端点菜单中,选择 PSC 端点。
在目标 PSC 端点菜单中,选择 PSC 端点。
如果目标端点位于当前项目以外的项目中,请选择端点在“
PROJECT_NAME
”以外的项目中。然后,在目标端点项目字段中,选择端点所在的项目。
在目标端口字段中,输入指定目标的目标端口。
点击创建。
测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
使用 gcloud network-management connectivity-tests create
命令。将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-instance=SOURCE_INSTANCE \ --source-ip-address=SOURCE_IP_ADDRESS \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --destination-network=DESTINATION_NETWORK \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。DESTINATION_IP_ADDRESS
:您要测试的端点或后端的 IP 地址。DESTINATION_NETWORK
:目标 IP 地址所在 VPC 网络的 URI,例如projects/myproject/global/networks/default
。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
如果端点或后端用于访问已发布的服务,则必须指定 DESTINATION_NETWORK,因为端点或后端具有内部 IP 地址。
API
以下示例测试会确定现有网络配置是否允许虚拟机 instance1
对 Private Service Connect 端点的 IP 地址进行 ping 操作。
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "instance": "SOURCE_INSTANCE", "ipAddress": "SOURCE_IP_ADDRESS", }, "destination": { "forwardingRule": "DESTINATION_FORWARDING_RULE", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", }'
请替换以下内容:
PROJECT_ID
:来源虚拟机的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。DESTINATION_IP_ADDRESS
:您要测试的端点或后端的 IP 地址。DESTINATION_NETWORK
:目标 IP 地址所在 VPC 网络的 URI,例如projects/myproject/global/networks/default
。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
如果端点或后端用于访问已发布的服务,则必须指定 DESTINATION_NETWORK,因为端点或后端具有内部 IP 地址。
Python
以下示例代码创建虚拟机实例和 Private Service Connect 端点之间的测试。如需了解详情,请参阅 Python 版 Google API 客户端库中的 create
。
test_input = { "source": { "instance": "SOURCE_INSTANCE", "ipAddress": "SOURCE_IP_ADDRESS", "projectId": "SOURCE_INSTANCE_PROJECT_ID" }, "destination": { "forwardingRule": "DESTINATION_FORWARDING_RULE", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
请替换以下内容:
SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。SOURCE_INSTANCE_PROJECT_ID
:来源虚拟机的项目 ID。DESTINATION_IP_ADDRESS
:您要测试的端点或后端的 IP 地址。DESTINATION_NETWORK
:目标 IP 地址所在 VPC 网络的 URI,例如projects/myproject/global/networks/default
。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
如果端点或后端用于访问已发布的服务,则必须指定 DESTINATION_NETWORK
,因为端点或后端具有内部 IP 地址。
从 App Engine 标准环境版本到目标的测试
本部分介绍如何测试从 App Engine 标准环境版本到虚拟机实例、IP 地址或 Google 代管式服务的连接。
App Engine 标准环境应用由包含一项或多项服务的单个应用资源组成。在每项服务中,您可以部署该服务的多个“版本”,您可以测试从 App Engine 标准环境服务到虚拟机实例、IP 地址或 Google 代管式服务的可达性。
如需查看详细的配置分析,您必须将服务配置为使用无服务器 VPC 访问通道连接器。每种版本的服务的连接性测试结果可能会有所不同。您只能测试使用 UDP 或 TCP 协议的测试数据包的可达性。
测试从 App Engine 标准环境服务版本到虚拟机实例的连接
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 输入测试的名称。
- 选择一个协议。
- 在来源端点菜单中,选择 App Engine。
- 在 App Engine 服务菜单中,选择要测试其连接的特定 App Engine 标准环境服务。例如,选择
helloworld-service
。- 如果来源端点位于当前项目以外的项目中,请选中端点位于“
PROJECT_NAME
”以外的项目中复选框。 - 选择存在端点的项目。
- 如果来源端点位于当前项目以外的项目中,请选中端点位于“
- 在 App Engine 版本菜单中,选择您要从其中测试连接的 App Engine 标准环境服务的版本。
- 在 App Engine 服务菜单中,选择要测试其连接的特定 App Engine 标准环境服务。例如,选择
在目标部分,从列表中选择一个目标虚拟机实例。
如果虚拟机实例具有多个网络接口,请选择一个虚拟机网络接口,以唯一标识目标位置。
可选:从列表中选择目标 IP 地址。默认值为目标虚拟机实例的 IP 地址。
在目标端口字段中,输入指定目标的目标端口。
点击创建。
测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
使用 gcloud network-management connectivity-tests create
命令。将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-app-engine-version=APP_ENGINE_VERSION \ --destination-instance=DESTINATION_INSTANCE \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。APP_ENGINE_VERSION
:来源 App Engine 标准环境版本的 URI,例如apps/myproject/services/service-name/versions/version-name
。DESTINATION_INSTANCE
:目标虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-2
。DESTINATION_IP_ADDRESS
:您要测试的目标虚拟机实例的 IP 地址。该 IP 地址应为目标虚拟机实例的 IP 地址之一。PROTOCOL
:无服务器 VPC 访问通道连接器支持的网络协议 -TCP
或UDP
。
API
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "appEngineVersion": { "uri": "APP_ENGINE_VERSION", }, }, "destination": { "instance": "DESTINATION_INSTANCE", "ipAddress": "DESTINATION_IP_ADDRESS", }, "protocol": "PROTOCOL", }'
替换以下内容:
PROJECT_ID
:来源 Cloud Run 函数的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。APP_ENGINE_VERSION
:来源 App Engine 标准环境版本的 URI,例如apps/myproject/services/service-name/versions/version-name
。DESTINATION_INSTANCE
:目标虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-2
。DESTINATION_IP_ADDRESS
:您要测试的目标虚拟机实例的 IP 地址。该 IP 地址应为目标虚拟机实例的 IP 地址之一。PROTOCOL
:无服务器 VPC 访问通道连接器支持的网络协议 -TCP
或UDP
。
测试从 App Engine 标准环境服务版本到 IP 地址的连接
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 输入测试的名称。
- 选择一个协议。
- 在来源端点菜单中,选择一个 App Engine。
- 在 App Engine 服务菜单中,选择要测试其连接的特定 App Engine 标准环境服务。例如,选择
helloworld-service
。- 如果来源端点位于当前项目以外的项目中,请选择端点位于“
PROJECT_NAME
”以外的项目中。 - 选择存在端点的项目。
- 如果来源端点位于当前项目以外的项目中,请选择端点位于“
- 在 App Engine 版本菜单中,选择您要从其中测试连接的 App Engine 标准环境服务的版本。
- 在 App Engine 服务菜单中,选择要测试其连接的特定 App Engine 标准环境服务。例如,选择
- 对于目标,选择 IP 地址,然后输入一个 IP 地址。
- 输入一个目标端口。
- 点击创建。
- 测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
使用 gcloud network-management connectivity-tests create
命令。将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-app-engine-version=APP_ENGINE_VERSION \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。APP_ENGINE_VERSION
:来源 App Engine 标准环境版本的 URI,例如apps/myproject/services/service-name/versions/version-name
。DESTINATION_IP_ADDRESS
:您要测试的外部目标 IP 地址。PROTOCOL
:无服务器 VPC 访问通道连接器支持的网络协议 -TCP
或UDP
。
API
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "appEngineVersion": { "uri": "APP_ENGINE_VERSION", }, }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", }, "protocol": "PROTOCOL", }'
替换以下内容:
PROJECT_ID
:来源 Cloud Run 函数的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。APP_ENGINE_VERSION
:来源 App Engine 标准环境版本的 URI,例如apps/myproject/services/service-name/versions/version-name
。DESTINATION_IP_ADDRESS
:您要测试的外部目标 IP 地址。PROTOCOL
:无服务器 VPC 访问通道连接器支持的网络协议 -TCP
或UDP
。
测试从 App Engine 标准环境服务版本到 Google 代管式服务的连接
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 输入测试的名称。
- 选择一个协议。
- 在来源端点菜单中,选择一个 App Engine。
- 在 App Engine 服务菜单中,选择要测试其连接的特定 App Engine 标准环境服务。例如,选择
helloworld-service
。- 如果来源端点位于当前项目以外的项目中,请选择端点位于“
PROJECT_NAME
”以外的项目中。 - 选择存在端点的项目。
- 如果来源端点位于当前项目以外的项目中,请选择端点位于“
- 在 App Engine 版本菜单中,选择您要从其中测试连接的 App Engine 标准环境服务的版本。
- 在 App Engine 服务菜单中,选择要测试其连接的特定 App Engine 标准环境服务。例如,选择
- 在目标部分,执行以下操作:
- 在目标端点菜单中,选择一种由 Google 管理的服务资源,例如 GKE 集群控制平面。
- 在目标 GKE 集群控制平面菜单中,选择要测试与 GKE 控制平面的连接的集群。
- 可选:从列表中选择目标 GKE 集群控制平面 IP 地址。默认值为来源虚拟机实例的 IP 地址。
- 在目标端口字段中,输入指定目标的目标端口。
- 点击创建。
- 测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
使用 gcloud network-management connectivity-tests create
命令。将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-app-engine-version=APP_ENGINE_VERSION \ --destination-ip-address=DESTINATION_IP_ADDRESS \ DESTINATION_RESOURCE_FLAG=DESTINATION_ENDPOINT \ --destination-port=DESTINATION_PORT \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。APP_ENGINE_VERSION
:来源 App Engine 标准环境版本的 URI,例如apps/myproject/services/servicename/versions/version-number
。DESTINATION_IP_ADDRESS
:您要测试的内部或外部目标 IP 地址。DESTINATION_RESOURCE_FLAG
:用于指定由 Google 管理的服务资源类型的标志。如需了解可用选项,请参阅以下内容:
--destination-gke-master-cluster
--destination-cloud-sql-instance
如需了解详情,请参阅
gcloud network-management connectivity-tests create
参考文档。DESTINATION_ENDPOINT
:目标端点的 URI(例如标志--destination-gke-master-cluster
的projects/myproject/locations/us-central1/clusters/cluster-1
)。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 或 UDP 协议。默认值为端口80
。PROTOCOL
:无服务器 VPC 访问通道连接器支持的网络协议 -TCP
或UDP
。
API
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "appEngineVersion": { "uri": "APP_ENGINE_VERSION", }, }, "destination": { "DESTINATION_RESOURCE_FIELD": "DESTINATION_ENDPOINT", "ipAddress": "DESTINATION_IP_ADDRESS", "port": DESTINATION_PORT, }, "protocol": "PROTOCOL", }'
替换以下内容:
PROJECT_ID
:来源 Cloud Run 函数的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。APP_ENGINE_VERSION
:来源 App Engine 标准环境版本的 URI,例如apps/myproject/services/servicename/versions/version-number
。DESTINATION_RESOURCE_FIELD
:用于指定由 Google 管理的服务资源类型的字段。如需了解可用选项,请参阅以下内容:
gkeMasterCluster
cloudSqlInstance
如需了解详情,请参阅端点参考文档。
DESTINATION_ENDPOINT
:目标端点的 URI(例如,字段gkeMasterCluster
的projects/myproject/locations/us-central1/clusters/cluster-1
)。DESTINATION_IP_ADDRESS
:您要测试的内部或外部目标 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 或 UDP 协议。默认值为端口80
。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
测试从 Cloud Run 函数到目标位置的连接
本部分介绍如何测试从特定 Google Cloud 区域中部署的 Cloud Run 函数到虚拟机实例、IP 地址或 Google 代管式服务的连接。例如,您可以按照本部分中的步骤测试从 Cloud Run 函数(部署在 us-central1
中,作为来源)到 VPC 网络中的端点(作为目标)的连接。
如需查看详细的配置分析,请确保您的 Cloud Run 函数处于活跃状态,并且已为 Cloud Run 函数配置无服务器 VPC 访问通道连接器。
Cloud Run 函数的出站流量设置控制来自 Cloud Run 函数的出站 HTTP 请求的路由,并控制通过连接器路由到您的 VPC 网络的流量类型。如需了解详情,请参阅 Cloud Run 函数出站流量设置。
测试从 Cloud Run 函数到虚拟机实例的连接
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
- 对于来源,请进行以下设置:
- 从来源端点菜单中,选择 Cloud Functions(第 1 代)。
- 从 Cloud Functions 函数菜单中,选择要测试其连接的特定 Cloud Run 函数。例如,选择
function-1
。 - 从 Cloud Functions 函数位置菜单中,选择部署了该 Cloud Run 函数的 Google Cloud 区域。您可以将 Cloud Run 函数部署到配置不同但名称相同的多个区域中。
在目标部分,执行以下操作:
- 在目标端点菜单中,选择虚拟机实例。
- 在目标虚拟机实例菜单中,选择一个虚拟机实例。
在目标网络接口菜单中,选择网络接口。
如果虚拟机实例具有多个网络接口,请选择一个唯一标识目标位置的虚拟机网络接口。
可选:从列表中选择目标 IP 地址。默认值为目标虚拟机实例的 IP 地址。
在目标端口字段中,输入指定目标的目标端口。
点击创建。
测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
使用 gcloud network-management connectivity-tests create
命令。将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-cloud-function=SOURCE_CLOUD_FUNCTION \ --destination-instance=DESTINATION_INSTANCE \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --destination-port=DESTINATION_PORT \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_CLOUD_FUNCTION
:Cloud Run 函数的 URI,例如projects/myproject/locations/us-central1/functions/function-1
。DESTINATION_INSTANCE
:目标虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-2
。DESTINATION_IP_ADDRESS
:您要测试的目标虚拟机实例的 IP 地址。该 IP 地址应为目标虚拟机实例的 IP 地址之一。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
API
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "cloudFunction": { "uri": "SOURCE_CLOUD_FUNCTION", }, }, "destination": { "instance": "DESTINATION_INSTANCE", "ipAddress": "DESTINATION_IP_ADDRESS", }, "protocol": "PROTOCOL", }'
替换以下内容:
PROJECT_ID
:来源 Cloud Run 函数的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。SOURCE_CLOUD_FUNCTION
:Cloud Run 函数的 URI,例如projects/myproject/locations/us-central1/functions/function-1
。DESTINATION_INSTANCE
:目标虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-2
。DESTINATION_IP_ADDRESS
:您要测试的目标虚拟机实例的 IP 地址。该 IP 地址应为目标虚拟机实例的 IP 地址之一。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
测试从 Cloud Run 函数到 IP 地址的连接
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
- 对于来源,请进行以下设置:
- 从来源端点菜单中,选择 Cloud Functions(第 1 代)。
- 从 Cloud Functions 函数菜单中,选择要测试其连接的特定 Cloud Run 函数。例如,选择
function-1
。 - 从 Cloud Functions 函数位置菜单中,选择部署了该 Cloud Run 函数的 Google Cloud 区域。您可以将 Cloud Run 函数部署到配置不同但名称相同的多个区域中。
- 对于目标,选择 IP 地址,然后输入一个 IP 地址。
- 在目标端口字段中,输入指定目标的目标端口。
- 点击创建。
- 测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续前往本页面后面的查看测试结果部分。
gcloud
使用 gcloud network-management connectivity-tests create
命令。将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-cloud-function=SOURCE_CLOUD_FUNCTION \ --destination-ip-address==DESTINATION_IP_ADDRESS \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_CLOUD_FUNCTION
:Cloud Run 函数的 URI,例如projects/myproject/locations/us-central1/functions/function-1
。DESTINATION_IP_ADDRESS
:您要测试的目标 IP 地址。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
API
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "cloudFunction": { "uri": "SOURCE_CLOUD_FUNCTION", }, }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", }, "protocol": "PROTOCOL", }'
替换以下内容:
PROJECT_ID
:来源 Cloud Run 函数的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。SOURCE_CLOUD_FUNCTION
:Cloud Run 函数的 URI,例如projects/myproject/locations/us-central1/functions/function-1
。DESTINATION_IP_ADDRESS
:您要测试的目标 IP 地址。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
测试从 Cloud Run 函数到由 Google 代管式服务的连接
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
- 对于来源,请进行以下设置:
- 从来源端点菜单中,选择 Cloud Functions(第 1 代)。
- 从 Cloud Functions 函数菜单中,选择要测试其连接的特定 Cloud Run 函数。例如,选择
function-1
。 - 从 Cloud Functions 函数位置菜单中,选择部署了该 Cloud Run 函数的 Google Cloud 区域。您可以将 Cloud Run 函数部署到配置不同但名称相同的多个区域中。
- 在目标部分,执行以下操作:
- 在目标端点菜单中,选择一种由 Google 管理的服务资源,例如 Cloud SQL 实例。
- 在目标 Cloud SQL 实例菜单中,选择要从中测试连接的 Cloud SQL 实例。
- 可选:从列表中选择目标 Cloud SQL 实例 IP 地址。默认值为来源 Cloud Run 函数的 IP 地址。
- 在目标端口字段中,输入指定目标的目标端口。
- 点击创建。
- 测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续前往本页面后面的查看测试结果部分。
gcloud
使用 gcloud network-management connectivity-tests create
命令。将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-cloud-function=SOURCE_CLOUD_FUNCTION \ DESTINATION_RESOURCE_FLAG=DESTINATION_ENDPOINT \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --destination-port=DESTINATION_PORT \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_CLOUD_FUNCTION
:Cloud Run 函数的 URI,例如projects/myproject/locations/us-central1/functions/function-1
。DESTINATION_RESOURCE_FLAG
:用于指定由 Google 管理的服务资源类型的标志。如需了解可用选项,请参阅以下内容:
--destination-gke-master-cluster
--destination-cloud-sql-instance
如需了解详情,请参阅
gcloud network-management connectivity-tests create
参考文档。DESTINATION_ENDPOINT
:目标端点的 URI(例如标志--destination-gke-master-cluster
的projects/myproject/locations/us-central1/clusters/cluster-1
)。DESTINATION_IP_ADDRESS
:您要测试的内部或外部目标 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 或 UDP 协议。默认值为端口80
。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
测试从 Cloud Run 修订版本到目标位置的连接
本部分介绍如何测试从 Cloud Run 修订版本到虚拟机实例、IP 地址或 Google 代管式服务的连接。
您可以在单个项目中部署多个 Cloud Run 服务。每项 Cloud Run 服务都有一个位于 *.run.app
网域的唯一子网域上的 HTTPS 端点。Cloud Run 服务的每次部署都会创建一个新的不可变修订版本。您可以测试从修订版本到虚拟机实例、IP 地址或 Google 代管式服务的可达性。如需查看详细的配置分析,您必须为修订版配置无服务器 VPC 访问通道连接器。每个修订版的连接测试结果可能会有所不同。
例如,名为 cloud_run_test
的 Cloud Run 服务有一个修订版本 first-revision
配置为使用无服务器 VPC 访问通道连接器,另一个修订版本 second-revision
未配置为使用无服务器 VPC 访问通道连接器。总体可达性结果可能为 first-revision
可访问,但 second-revision
不可访问。
创建连接测试时,您可以从 Cloud Run 服务的修订版本列表中进行选择。
测试从 Cloud Run 服务修订版本到虚拟机实例的连接
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 输入测试的名称。
- 选择一个协议。
- 对于来源,请进行以下设置:
- 在来源端点菜单中,选择 Cloud Run。
- 在 Cloud Run 服务菜单中,选择要测试其连接的特定 Cloud Run 服务。例如,选择
helloworld-run
。- 如果来源端点位于当前项目以外的项目中,请选择端点位于“
PROJECT_NAME
”以外的项目中。 - 选择存在端点的项目。
- 如果来源端点位于当前项目以外的项目中,请选择端点位于“
- 在 Cloud Run 修订版本菜单中,选择您要测试的 Cloud Run 修订版本。
在目标部分,执行以下操作:
- 在目标端点菜单中,选择虚拟机实例。
- 在目标虚拟机实例菜单中,选择特定的目标虚拟机实例。
在目标网络接口菜单中,选择网络接口。
如果虚拟机实例具有多个网络接口,请选择一个虚拟机网络接口,以唯一标识目标位置。
可选:从列表中选择目标 IP 地址。默认值为目标虚拟机实例的 IP 地址。
在目标端口字段中,输入指定目标的目标端口。
点击创建。
测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
使用 gcloud network-management connectivity-tests create
命令。将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-cloud-run-revision=CLOUD_RUN_REVISION \ --destination-instance=DESTINATION_INSTANCE \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。CLOUD_RUN_REVISION
:来源 Cloud Run 修订版本的 URI,例如projects/myproject/locations/us-central1/revisions/cloudrun-revision
。DESTINATION_INSTANCE
:目标虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-2
。DESTINATION_IP_ADDRESS
:您要测试的目标虚拟机实例的 IP 地址。该 IP 地址应为目标虚拟机实例的 IP 地址之一。PROTOCOL
:无服务器 VPC 访问通道连接器支持的网络协议 -TCP
或UDP
。
API
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "cloudRunRevision": { "uri": "CLOUD_RUN_REVISION", }, }, "destination": { "instance": "DESTINATION_INSTANCE", "ipAddress": "DESTINATION_IP_ADDRESS" }, "protocol": "PROTOCOL", }'
替换以下内容:
PROJECT_ID
:来源 Cloud Run 函数的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。CLOUD_RUN_REVISION
:来源 Cloud Run 修订版本的 URI,例如projects/myproject/locations/us-central1/revisions/cloudrun-revision
。DESTINATION_INSTANCE
:目标虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-2
。DESTINATION_IP_ADDRESS
:您要测试的目标虚拟机实例的 IP 地址。该 IP 地址应为目标虚拟机实例的 IP 地址之一。PROTOCOL
:无服务器 VPC 访问通道连接器支持的网络协议 -TCP
或UDP
。
测试从 Cloud Run 服务修订版本到 IP 地址的连接
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 输入测试的名称。
- 选择一个协议。
- 对于来源,请进行以下设置:
- 在来源端点菜单中,选择 Cloud Run。
- 在 Cloud Run 服务菜单中,选择要测试其连接的特定 Cloud Run 服务。例如,选择
helloworld-run
。- 如果来源端点位于当前项目以外的项目中,请选择端点位于“
PROJECT_NAME
”以外的项目中。 - 选择存在端点的项目。
- 如果来源端点位于当前项目以外的项目中,请选择端点位于“
- 在 Cloud Run 修订版本菜单中,选择您要测试的 Cloud Run 修订版本。
- 对于目标,选择 IP 地址,然后输入一个 IP 地址。
- 在目标端口字段中,输入指定目标的目标端口。
- 点击创建。
- 测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
使用 gcloud network-management connectivity-tests create
命令。将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-cloud-run-revision=CLOUD_RUN_REVISION \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。CLOUD_RUN_REVISION
:来源 Cloud Run 修订版本的 URI,例如projects/myproject/locations/us-central1/revisions/cloudrun-revision
。DESTINATION_IP_ADDRESS
:您要测试的外部目标 IP 地址。PROTOCOL
:无服务器 VPC 访问通道连接器支持的网络协议 -TCP
或UDP
。
API
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "cloudRunRevision": { "uri": "CLOUD_RUN_REVISION", }, }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", }, "protocol": "PROTOCOL", }'
替换以下内容:
PROJECT_ID
:来源 Cloud Run 函数的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。CLOUD_RUN_REVISION
:来源 Cloud Run 修订版本的 URI,例如projects/myproject/locations/us-central1/revisions/cloudrun-revision
。DESTINATION_IP_ADDRESS
:您要测试的外部目标 IP 地址。PROTOCOL
:无服务器 VPC 访问通道连接器支持的网络协议 -TCP
或UDP
。
测试从 Cloud Run 服务修订版本到 Google 代管式服务的连接
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 输入测试的名称。
- 选择一个协议。
- 对于来源,请进行以下设置:
- 在来源端点菜单中,选择 Cloud Run。
- 在 Cloud Run 服务菜单中,选择要测试其连接的特定 Cloud Run 服务。例如,选择
helloworld-run
。- 如果来源端点位于当前项目以外的项目中,请选择端点位于“
PROJECT_NAME
”以外的项目中。 - 选择存在端点的项目。
- 如果来源端点位于当前项目以外的项目中,请选择端点位于“
- 在 Cloud Run 修订版本菜单中,选择您要测试的 Cloud Run 修订版本。
- 在目标部分,执行以下操作:
- 在目标端点菜单中,选择一种由 Google 管理的服务资源,例如 GKE 集群控制平面。
- 在目标 GKE 集群控制平面菜单中,选择要测试与 GKE 控制平面的连接的集群。
- 可选:从列表中选择目标 GKE 集群控制平面 IP 地址。默认值为来源虚拟机实例的 IP 地址。
- 在目标端口字段中,输入指定目标的目标端口。
- 点击创建。
- 测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
使用 gcloud network-management connectivity-tests create
命令。将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-cloud-run-revision=CLOUD_RUN_REVISION \ DESTINATION_RESOURCE_FLAG=DESTINATION_ENDPOINT \ --destination-port=DESTINATION_PORT \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。CLOUD_RUN_REVISION
:来源 Cloud Run 修订版本的 URI,例如projects/myproject/locations/us-central1/revisions/cloudrun-revision
。PROJECT_NAME
:端点所在的项目名称,例如myproject
。DESTINATION_RESOURCE_FLAG
:用于指定由 Google 管理的服务资源类型的标志。如需了解可用选项,请参阅以下内容:
--destination-gke-master-cluster
--destination-cloud-sql-instance
如需了解详情,请参阅
gcloud network-management connectivity-tests create
参考文档。DESTINATION_ENDPOINT
:目标端点的 URI(例如标志--destination-gke-master-cluster
的projects/myproject/locations/us-central1/clusters/cluster-1
)。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 或 UDP 协议。默认值为端口80
。PROTOCOL
:无服务器 VPC 访问通道连接器支持的网络协议 -TCP
或UDP
。
API
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "cloudRunRevision": { "uri": "CLOUD_RUN_REVISION", }, }, "destination": { "DESTINATION_RESOURCE_FIELD": "DESTINATION_ENDPOINT", "port": DESTINATION_PORT, }, "protocol": "PROTOCOL", }'
替换以下内容:
PROJECT_ID
:来源 Cloud Run 函数的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。CLOUD_RUN_REVISION
:来源 Cloud Run 修订版本的 URI,例如projects/myproject/locations/us-central1/revisions/cloudrun-revision
。DESTINATION_RESOURCE_FIELD
:用于指定由 Google 管理的服务资源类型的字段。如需了解可用选项,请参阅以下内容:
gkeMasterCluster
cloudSqlInstance
如需了解详情,请参阅端点参考文档。
DESTINATION_ENDPOINT
:目标端点的 URI(例如,字段gkeMasterCluster
的projects/myproject/locations/us-central1/clusters/cluster-1
)。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 或 UDP 协议。默认值为端口80
。PROTOCOL
:无服务器 VPC 访问通道连接器支持的网络协议 -TCP
或UDP
。
测试从 VPC 网络到非 Google Cloud 网络的连接
如需测试 VPC 网络与非 Google Cloud 网络之间的连接,请按照以下步骤操作。
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
- 对于来源,选择 IP 地址,然后输入 IP 地址。
- 如果 VPC 网络位于其他项目中,请选择这是 Google Cloud 中使用的 IP 地址。然后,在来源 IP 地址或服务项目字段中,选择网络所在的项目。
- 如果您的专用 IP 地址不在 RFC 1918 地址空间内,请选中标有我确认来源端点位于 RFC 1918 地址空间范围之外的复选框。选择包含 IP 地址的来源网络。
- 对于目标,选择 IP 地址,然后输入一个外部 IP 地址。
- 取消选中这是 Google Cloud 中使用的 IP 地址。
- 在目标端口字段中,输入指定目标的目标端口。
- 点击创建。
- 测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
输入以下命令,在内部 IP 地址和外部 IP 地址之间进行测试。将命令选项的变量替换为 VPC 网络中的值。
gcloud network-management connectivity-tests create NAME \ --source-ip-address=SOURCE_IP_ADDRESS \ --source-network=SOURCE_NETWORK \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK
:来源 IP 地址所在的 VPC 网络的 URI,例如projects/myproject/global/networks/default
。DESTINATION_IP_ADDRESS
:您要测试的外部目标 IP 地址。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
您无需确认您的 IP 地址是否在 Google Cloud 中,或者来源端点和目标端点是否在 RFC 1918 地址空间之外。系统会根据您的来源和目标 IP 地址自动选择这些参数。
API
本示例测试从来源 IP 地址到目标 IP 地址进行 ping 的能力。
使用 projects.locations.global.connectivityTests.create
方法。
POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "network": "SOURCE_NETWORK" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL". }'
请替换以下内容:
PROJECT_ID
:来源虚拟机的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK
:来源 IP 地址所在的 VPC 网络的 URI,例如projects/myproject/global/networks/default
。DESTINATION_IP_ADDRESS
:您要测试的外部目标 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
Python
以下示例代码在两个 IP 地址之间创建一个测试。如需了解详情,请参阅 Python 版 Google API 客户端库中的 create
。
test_input = { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "projectId": "SOURCE_IP_PROJECT_ID" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
请替换以下内容:
SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_IP_PROJECT_ID
:来源 IP 地址的项目 ID。DESTINATION_IP_ADDRESS
:您要测试的外部目标 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
您无需确认您的 IP 地址是否在 Google Cloud 中,或者来源端点和目标端点是否在 RFC 1918 地址空间之外。系统会根据您的来源和目标 IP 地址自动选择这些参数。
以下示例在两个 IP 地址之间创建一个测试:
test_input = { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "networkType": "GCP_NETWORK" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
请替换以下内容:
SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK_TYPE
:来源所在的网络类型。在本例中,请使用值GCP_NETWORK
。DESTINATION_IP_ADDRESS
:目标 IP 地址DESTINATION_PORT
:目标 TCP 或 UDP 端口号。此选项仅对 TCP 或 UDP 协议有效。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
从一个 VPC spoke 到连接到同一 Network Connectivity Center hub 的另一个 VPC spoke 进行测试
如需从 Network Connectivity Center hub 中的一个 VPC spoke 到连接到同一 hub 的另一个 VPC spoke 进行测试,请按照以下步骤操作。
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
- 在来源部分,选择 IP 地址,然后输入来自来源 spoke VPC 网络的 IP 地址。
- 在目标部分,选择 IP 地址,然后输入您要测试的另一个 spoke VPC 网络中的 IP 地址。
- 在目标端口字段中,输入指定目标的目标端口。
- 点击创建。
- 测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
输入以下命令,在两个轮辐之间进行测试。将命令选项的变量替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-ip-address=SOURCE_IP_ADDRESS \ --source-network=SOURCE_NETWORK \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --protocol=PROTOCOL
替换以下内容:
NAME
:Connectivity Tests 测试的名称SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK
:来源 IP 地址所在的 VPC 网络的 URI,例如projects/myproject/global/networks/default
。DESTINATION_IP_ADDRESS
:您要测试的另一个 spoke VPC 网络中的目标 IP 地址。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
您无需确认您的 IP 地址是否在 Google Cloud 中,或者来源端点和目标端点是否在 RFC 1918 地址空间之外。系统会根据您的来源和目标 IP 地址自动选择这些参数。
API
本示例测试从来源 IP 地址到目标 IP 地址进行 ping 的能力。
使用 projects.locations.global.connectivityTests.create
方法。
POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "network": "SOURCE_NETWORK" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL". }'
替换以下内容:
PROJECT_ID
:来源虚拟机的项目 IDTEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK
:来源 IP 地址所在的 VPC 网络的 URI,例如projects/myproject/global/networks/default
。DESTINATION_IP_ADDRESS
:您要测试的另一个 spoke VPC 网络中的目标 IP 地址。DESTINATION_PORT
:目标 TCP 或 UDP 端口号。此选项仅对 TCP 或 UDP 协议有效。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
Python
以下示例代码在两个 IP 地址之间创建一个测试。如需了解详情,请参阅 Python 版 Google API 客户端库中的 create
方法。
test_input = { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "projectId": "SOURCE_IP_PROJECT_ID" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
替换以下内容:
SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_IP_PROJECT_ID
:来源 IP 地址的项目 ID。DESTINATION_IP_ADDRESS
:您要测试的另一个 spoke VPC 网络中的目标 IP 地址。DESTINATION_PORT
:目标 TCP 或 UDP 端口号。此选项仅对 TCP 或 UDP 协议有效。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
您无需确认您的 IP 地址是否在 Google Cloud 中,或者来源端点和目标端点是否在 RFC 1918 地址空间之外。系统会根据您的来源和目标 IP 地址自动选择这些参数。
以下示例在两个 IP 地址之间创建一个测试:
test_input = { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "networkType": "GCP_NETWORK" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
请替换以下内容:
SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK_TYPE
:来源所在的网络类型。在本例中,请使用值GCP_NETWORK
。DESTINATION_IP_ADDRESS
:目标虚拟机的 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
从虚拟机到非 Google Cloud 网络的测试
此测试分析从来源虚拟机到 Google 网络边缘位置的连接。
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
在来源部分,执行以下操作:
- 在来源端点菜单中,选择虚拟机实例。
- 在来源虚拟机实例菜单中,选择特定的来源虚拟机实例。
在来源网络接口菜单中,选择网络接口。
如果虚拟机实例具有多个网络接口,请选择一个唯一标识来源位置的虚拟机网络接口。
可选:从列表中选择来源 IP 地址。默认值为来源虚拟机实例的 IP 地址。
在目标部分,执行以下操作:
- 在目标端点菜单中,选择 IP 地址。
- 输入外部目标 IP 地址。
- 取消选中这是 Google Cloud 中使用的 IP 地址。
在目标端口字段中,输入指定目标的目标端口。
点击创建。
测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
如需在虚拟机和外部 IP 地址之间进行测试,请输入以下命令。将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-instance=SOURCE_INSTANCE \ --source-ip-address=SOURCE_IP_ADDRESS \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --destination-port=DESTINATION_PORT \ --protocol=PROTOCOL
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址;该 IP 地址应为来源虚拟机实例的 IP 地址之一。DESTINATION_IP_ADDRESS
:您要测试的外部目标 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
API
以下示例测试确定现有网络配置是否允许虚拟机 instance1
ping 目标 IP 地址。
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "instance": "SOURCE_INSTANCE", "ipAddress": "SOURCE_IP_ADDRESS", }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", }'
请替换以下内容:
PROJECT_ID
:来源虚拟机的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。DESTINATION_IP_ADDRESS
:您要测试的外部目标 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
Python
以下示例代码创建了虚拟机实例和外部 IP 地址之间的测试。如需了解详情,请参阅 Python 版 Google API 客户端库中的 create
。
test_input = { "source": { "instance": "SOURCE_INSTANCE", "ipAddress": "SOURCE_IP_ADDRESS", "projectId": "SOURCE_INSTANCE_PROJECT_ID" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
请替换以下内容:
SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。SOURCE_INSTANCE_PROJECT_ID
:来源虚拟机的项目 ID。DESTINATION_IP_ADDRESS
:您要测试的外部目标 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
从虚拟机或 IP 地址到负载均衡器的测试
本部分介绍如何测试从虚拟机或 IP 地址到 Google Cloud 负载均衡器的连接。
Connectivity Tests 配置分析支持跟踪传送至所有类型的 Google Cloud 负载均衡器的模拟数据包。外部应用负载均衡器的跟踪记录路径也适用于外部代理网络负载均衡器。如需了解详情,请参阅 Cloud Load Balancing 概览。
您可以测试与以下各项的连接:
从虚拟机到负载均衡器的测试
本部分分析了从源虚拟机到负载均衡器的连接。
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
在来源部分,执行以下操作:
- 在来源端点菜单中,选择虚拟机实例。
- 在来源虚拟机实例菜单中,选择特定的来源虚拟机实例。
在来源网络接口菜单中,选择网络接口。
如果虚拟机实例具有多个网络接口,请选择一个唯一标识来源位置的虚拟机网络接口。
可选:从列表中选择来源 IP 地址。默认值为来源虚拟机实例的 IP 地址。
在目标部分,执行以下操作:
- 在目标端点菜单中,选择负载均衡器。
在目标负载均衡器菜单中,选择负载均衡器。
如果目标端点位于当前项目以外的项目中,请选择端点在“
PROJECT_NAME
”以外的项目中。然后,在目标端点项目字段中,选择端点所在的项目。选择目标转发规则。
在目标端口字段中,输入指定目标的目标端口。
点击创建。
测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
如需在虚拟机和负载均衡器之间进行测试,请输入以下命令。
gcloud network-management connectivity-tests create NAME \ --source-instance=SOURCE_INSTANCE \ --source-ip-address=SOURCE_IP_ADDRESS \ --protocol=PROTOCOL \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --destination-port=DESTINATION_PORT \
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。DESTINATION_IP_ADDRESS
:您要测试的外部目标 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅对 TCP 协议或 UDP 协议有效。
API
使用 projects.locations.global.connectivityTests.create
方法。
POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "instance": "SOURCE_INSTANCE", "ipAddress": "SOURCE_IP_ADDRESS", }, "destination": { "forwardingRule": "DESTINATION_FORWARDING_RULE", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", }'
请替换以下内容:
PROJECT_ID
:来源虚拟机的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。DESTINATION_FORWARDING_RULE
:表示端点的目标转发规则。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
Python
以下示例代码可在虚拟机实例和负载均衡器端点之间创建测试。如需了解详情,请参阅 Python 版 Google API 客户端库中的 create
。
test_input = { "source": { "instance": "SOURCE_INSTANCE", "ipAddress": "SOURCE_IP_ADDRESS", "projectId": "SOURCE_INSTANCE_PROJECT_ID" }, "destination": { "forwardingRule": "DESTINATION_FORWARDING_RULE", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
请替换以下内容:
SOURCE_INSTANCE
:来源虚拟机的 URI,例如projects/myproject/zones/us-east1-b/instances/instance-1
。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。SOURCE_INSTANCE_PROJECT_ID
:来源虚拟机的项目 ID。DESTINATION_FORWARDING_RULE
:表示端点的目标转发规则。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
从 IP 地址到负载均衡器的测试
控制台
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 选择创建 Connectivity Tests 测试。
- 在测试名称字段中,输入测试的名称。
- 在协议列表中,选择一个协议。
- 对于来源,请进行以下设置:
- 在来源端点菜单中,选择 IP 地址。
- 在来源 IP 地址字段中,输入来源 IP 地址。
- 如果 VPC 网络位于其他项目中,请选择这是 Google Cloud 中使用的 IP 地址。然后,在来源 IP 地址或服务项目字段中,选择网络所在的项目。
- 如果 IP 地址不在 RFC 1918 地址空间内,请选中我确认源端点位于 RFC 1918 地址空间外的范围内。然后,在来源网络列表中,选择包含来源 IP 地址的网络。
在目标部分,执行以下操作:
- 在目标端点菜单中,选择负载均衡器。
在目标负载均衡器菜单中,选择负载均衡器端点。
如果目标端点位于当前项目以外的项目中,请选择端点在“
PROJECT_NAME
”以外的项目中。然后,在目标端点项目字段中,选择端点所在的项目。选择目标转发规则。
在目标端口字段中,输入指定目标的目标端口。
点击创建。
测试完成后,系统会加载 Connectivity Tests 的主页面,并显示包含此测试和其他测试的列表。继续查看测试结果。
gcloud
使用 gcloud network-management connectivity-tests create
命令。将示例值替换为来自 VPC 网络的值。
gcloud network-management connectivity-tests create NAME \ --source-project=SOURCE_PROJECT \ --source-ip-address=SOURCE_IP_ADDRESS \ --protocol=PROTOCOL \ --destination-ip-address=DESTINATION_IP_ADDRESS \ --destination-port=DESTINATION_PORT \
请替换以下内容:
NAME
:Connectivity Tests 测试的名称。SOURCE_PROJECT
:来源端点的项目 ID。SOURCE_IP_ADDRESS
:您要测试的来源虚拟机实例的 IP 地址。该 IP 地址应为来源虚拟机实例的 IP 地址之一。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。DESTINATION_IP_ADDRESS
:您要测试的外部目标 IP 地址。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。
如果端点用于访问代管式服务或其他 VPC 网络中的服务,您必须指定 DESTINATION_NETWORK
,因为该端点具有内部 IP 地址。
API
本示例测试从来源 IP 地址到负载均衡器端点进行 ping 的能力。
使用 projects.locations.global.connectivityTests.create
方法。
当您指定的来源 IP 地址是 Google Cloud 之外的外部 IP 地址时,必须指定 networkType
为 NON_GCP_NETWORK
。将以下命令中的值替换为 Google Cloud 网络的值。
POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID' { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "networkType": "NON_GCP_NETWORK", }, "destination": { "forwardingRule": "DESTINATION_FORWARDING_RULE", "port": "DESTINATION_PORT", }, "protocol": "PROTOCOL", }'
请替换以下内容:
SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。DESTINATION_FORWARDING_RULE
:表示端点的目标转发规则。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。
如果端点用于访问已发布的服务,则必须指定 DESTINATION_NETWORK
,因为端点具有内部 IP 地址。
Python
以下示例代码创建了 IP 地址和负载均衡器端点之间的测试。如需了解详情,请参阅 Python 版 Google API 客户端库中的 create
。
当您指定的来源 IP 地址是 Google Cloud 之外的外部 IP 地址时,必须指定 networkType
为 NON_GCP_NETWORK
。
test_input = { "source": { "ipAddress": "SOURCE_IP_ADDRESS", "networkType": "NON_GCP_NETWORK" }, "destination": { "forwardingRule": "DESTINATION_FORWARDING_RULE", "port": "DESTINATION_PORT", "projectId": "DESTINATION_IP_PROJECT_ID" }, "protocol": "PROTOCOL", } request = api.projects().locations().global_().connectivityTests().create( parent="projects/PROJECT_ID/locations/global", testId="TEST_ID", body=test_input) print(json.dumps(request.execute(), indent=4))
请替换以下内容:
SOURCE_IP_ADDRESS
:您要测试的来源 IP 地址。SOURCE_NETWORK_TYPE
:来源所在的网络类型。在本例中,请使用值NON_GCP_NETWORK
。DESTINATION_FORWARDING_RULE
:表示端点的目标转发规则。DESTINATION_PORT
:目标的 IP 协议端口。此选项仅适用于 TCP 协议或 UDP 协议。DESTINATION_IP_PROJECT_ID
:目标 IP 地址的项目 ID。PROTOCOL
:连接测试的受支持的协议。默认协议为TCP
。PROJECT_ID
:您要在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
如果端点用于访问已发布的服务,则必须指定 DESTINATION_NETWORK
,因为端点具有内部 IP 地址。
您无需确认您的 IP 地址是否在 Google Cloud 中,或者来源和目的地端点是否在 RFC 1918 地址空间之外。系统会根据您的来源和目的地 IP 地址自动选择这些参数。
从非 Google Cloud 网络到 VPC 网络的测试
此过程与在 VPC 网络中的专用 IP 地址之间进行测试的过程相同,但以下步骤除外。此过程适用于 Google Cloud 控制台、Google Cloud CLI、API 示例和 Python 示例。
- 如果来源地址不在 Google Cloud 中,但不是来自对等(本地)网络,请指定一个外部 IP 地址。
- 如果来源地址来自对等(本地)网络,您必须选择其他非 Google Cloud 网络。
从非 Google Cloud 网络到非 Google Cloud 网络的测试
此过程与在 VPC 网络中的专用 IP 地址之间进行测试的过程相同,但以下步骤除外。此过程适用于 Google Cloud 控制台、Google Cloud CLI、API 示例和 Python 示例。
- 指定来源 IP 地址和目标 IP 地址的外部 IP 地址。
- 在 Google Cloud 控制台中,取消选中这是 Google Cloud 中使用的 IP 地址。
查看测试结果
本部分介绍如何查看 Connectivity Tests 测试的结果。
控制台
您可以在多个不同页面上查看测试。
在“Connectivity Tests”的主页面上
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 对于结果详情列,选择一个测试,然后点击查看。
系统会显示测试的信息面板。您可以在测试路径中查看每个 Google Cloud 资源的总体结果和结果卡片。您可以点击指向某些 Google Cloud 资源(例如虚拟机实例或路由)详情页面的链接。如果测试包含多个跟踪记录,您可以从跟踪记录结果列表中选择一个跟踪记录。
如果测试符合实时数据平面分析的条件,您可以查看丢包和延迟时间指标。
如需展开或关闭结果卡,请点击结果卡右侧的箭头。
如需解读测试结果,请参阅配置分析状态。
如需关闭信息面板,请点击页面右上角的隐藏信息面板。
在“Connectivity Tests 测试详情”页面上
或者,从 Google Cloud 控制台的主页面点击测试名称,并在 Connectivity Tests 测试详情页面上查看其结果。
在“网络接口详情”页面上
您也可以在 Compute Engine 虚拟机实例的网络接口的网络接口详情页面上查看结果。此页面仅会列出将当前网络接口用作来源或目标的测试。
如需查看结果,您可以在结果详情列中选择查看,或点击测试的名称。
gcloud
如需查看测试结果,请输入以下命令。使用您要查看的测试 ID。
gcloud network-management connectivity-tests describe NAME
将 NAME
替换为 Connectivity Tests 测试的名称。
API
使用 projects.locations.global.connectivityTests.get
方法查看测试结果。
GET https://networkmanagement.googleapis.com/v1/{name=projects/PROJECT_ID/locations/global/connectivityTests/TEST_ID}
请替换以下内容:
PROJECT_ID
:来源虚拟机的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
Python
以下示例代码输出了测试结果。如需了解详情,请参阅 Python 版 Google API 客户端库中的 get
。
project_id = "PROJECT_ID" test_id= "TEST_ID" request = api.projects().locations().global_().connectivityTests().get( name='projects/%s/locations/global/connectivityTests/%s' % (project_id, test_id))
print(json.dumps(request.execute(), indent=4))
请替换以下内容:
PROJECT_ID
:在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
重新运行一个或多个测试
如果您在测试路径中更改了 Google Cloud 资源并且想要查看最新的网络配置结果,则可能需要重新运行 Connectivity Tests 测试。您可以同时重新运行一个或多个测试。
Connectivity Tests 测试基于执行时的网络配置快照。重新运行测试会覆盖之前的测试结果。如果您想保留较早的结果,请改为创建新测试。
如需在 rerun
测试操作正在运行时检查其状态,请参阅检查正在运行的测试操作。
控制台
在“Connectivity Tests”的主页面上
- 在 Google Cloud 控制台中,前往 Connectivity Tests 页面。
- 从可用的 Connectivity Tests 列表中选择一个或多个测试。
- 点击 重新运行。
从“Connectivity Tests”详情页面
- 在上面的 Connectivity Tests 主页面中,点击测试的名称。
- 在 Connectivity Tests 测试详情页面的顶部,点击 重新运行。
在“网络接口详情”页面上
- 在 Google Cloud 控制台中,前往虚拟机实例页面。
- 如果尚未选择,请选择包含要为其重新运行测试的实例的项目。
- 点击要用于重新运行测试的实例。
- 对于网络接口,选择要用于重新运行测试的网络接口。
- 对于网络分析,点击 Connectivity Tests。
- 从可用的 Connectivity Tests 列表中选择一个或多个测试。
- 点击 重新运行。
gcloud
如需重新运行 Connectivity Tests 测试,请输入以下命令。使用您要重新运行的测试 ID。
gcloud network-management connectivity-tests rerun NAME
将 NAME
替换为 Connectivity Tests 测试的名称。
API
Network Management API 创建 connectivityTests
资源后,会一直保留该测试资源,直到您将其删除。因此,您可以重新运行测试。
如果您不想创建永久性测试,则可以使用 API 创建测试,并在查看测试结果后将其删除。
使用 projects.locations.global.connectivityTests.rerun
方法重新运行测试。
POST https://networkmanagement.googleapis.com/v1/{name=projects/*/locations/global/connectivityTests/*}:rerun { "name": {projects/PROJECT_ID/connectivityTests/{TEST_ID}} }
请替换以下内容:
PROJECT_ID
:来源虚拟机的项目 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID。
Python
以下示例代码可以重新运行测试。如需了解详情,请参阅 Python 版 Google API 客户端库中的 rerun
。
project_id = "PROJECT_ID" test_id = "TEST_ID" request = api.projects().locations().global_().connectivityTests().rerun(name='projects/%s/locations/global/connectivityTests/%s' % (project_id, test_id))
print(json.dumps(request.execute(), indent=4))
替换以下值:
PROJECT_ID
:在其中创建测试的项目的 ID。TEST_ID
:您正在运行的 Connectivity Tests 对象(测试)的 ID