本页面介绍了如何使用混合检查拓扑创建 Network Connectivity Center (NCC) hub,以便向 hub 添加 NCC 网关 spoke 和 VPC spoke。
如需了解 NCC 网关,请参阅 NCC 网关概览。
准备工作
开始之前,请查看以下部分。
创建或选择项目
为了更轻松地配置 NCC,请先确定有效项目。
- 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
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.
-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init -
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.
-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init 如果您使用的是 Google Cloud CLI,请使用
gcloud config set命令设置项目 ID。gcloud config set project PROJECT_ID
将
PROJECT_ID替换为您的唯一项目 ID。此页面上的 gcloud CLI 说明假定您已设置项目 ID。
如需确认您正确设置了项目 ID,请使用
gcloud config list命令。gcloud config list --format='text(core.project)'
启用 Network Connectivity API
您必须先启用 Network Connectivity API,然后才能使用 NCC 网关执行任何任务。
控制台
如要启用 Network Connectivity API,请执行以下操作:
在 Google Cloud 控制台中,前往 Network Connectivity Center 页面。
点击启用。
或者,您可以按照启用 API 中所述,使用 Google Cloud 控制台 API 库来启用 API。
获取访问权限
如需使用 NCC 和 NCC 网关,您需要具备角色和权限中所述的权限。
确定资源
使用 gcloud CLI 或 API 引用资源时,请使用下表中所述的惯例。
| 会展 | 支持 | 备注 | 示例 |
|---|---|---|---|
| 完整 URI | 所有资源 | 使用其中一种方法来引用路由器设备实例。 |
"https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME"
|
| 相对资源名称 | 所有资源 |
"projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME"
|
|
| 名称 | 区域和全球资源 | 将此方法用于 hub、spoke、VPN 隧道和 VLAN 连接。 |
"HUB_NAME"
|
创建 NCC hub
如需使用预设的混合检查拓扑创建 NCC hub,请按照以下步骤操作:
控制台
在 Google Cloud 控制台中,前往 Network Connectivity Center 页面。
在项目菜单中,选择一个项目。
点击创建 hub。
可选:选择中枢政策模式。
完成表单的基本配置部分:
- 输入 Hub 名称。
- (可选)输入说明。
- 可选:要添加标签,请点击添加项,然后输入键和值。
- 验证表单是否显示正确的项目 ID。如果项目 ID 不正确,请使用页面顶部的菜单选择其他项目。
可选:如需启用 Private Service Connect 连接传播,请在 Private Service Connect 连接传播字段中点击开启。
执行下列其中一项操作:
- 如果要创建 spoke,请点击下一步并完成表单的 spoke 创建部分。如需查看相关说明,请参阅创建 NCC 网关 spoke。
- 如果您现在不想创建 spoke,请点击创建以完成创建新 hub 的操作。
gcloud
使用 gcloud network-connectivity hubs create 命令并指定混合检查预设拓扑。
gcloud beta network-connectivity hubs create HUB_NAME \
--preset-topology=hybrid-inspection
将 HUB_NAME 替换为新 hub 的名称。
API
使用 projects.locations.global.hubs.create 方法。
POST https://networkconnectivity.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/hubs
{
"name":"HUB_NAME",
"description":"DESCRIPTION",
"labels": {
"KEY": "VALUE"
},
"presetTopology": "HYBRID_INSPECTION"
}
替换以下内容:
PROJECT_ID:新 Hub 所属项目的项目IDHUB_NAME:新 Hub 的名称DESCRIPTION:用于描述该 Hub 的可选文本KEY:可选标签文本的键值对中的键VALUE:可选标签文本的键值对中的值
将 VPC 网络连接到 hub
将 VPC 网络连接到 hub 的过程因网络和 hub 是否位于同一项目中而异。
连接来自不同项目的 VPC 网络和 hub
如需连接来自不同项目的 VPC 网络,请按照以下步骤操作:
- VPC spoke 管理员在其他项目中建议 VPC spoke
- Hub 管理员审核建议的 VPC spoke
在同一项目中连接 VPC 网络和 hub
如果 VPC 网络和 hub 位于同一项目中,请执行以下操作:
如需连接给定项目中的多个 VPC 网络,请将 VPC 网络连接到 spoke,并将其连接到 hub。
如果您要创建 VPC 以连接到配置为星形拓扑的 hub,则必须从 hub 管理员那里获取项目 ID、hub 名称或 URI 以及群组名称。
如果要分配排除导出范围或包含导出范围,请在创建 spoke 期间使用适当的选项。
如需创建 VPC Spoke,请按照以下步骤操作。
控制台
在 Google Cloud 控制台中,前往 Network Connectivity Center 页面。
在项目菜单中,选择您要在其中创建 spoke 的项目。
点击 Spoke 标签页。
点击添加 Spoke。
在选择 hub 部分中,按如下方式选择 hub 位置:
- 如需将新 Spoke 连接到同一项目中的 Hub,请选择在项目
PROJECT_NAME中,然后从列表中选择 Hub 名称。 - 如果要将新的 Spoke 连接到其他项目中的 Hub,请选择在其他项目中。输入要连接新 Spoke 的项目 ID 和 Hub 名称。
当您选择其他项目中的 Hub 时,仅在 Hub 管理员审核并接受您建议的 Spoke 时,您的 Spoke 才会生效。如需详细了解如何创建连接到其他项目中的 Hub 的 Spoke,请参阅 VPC Spoke 概览。如果您要在 Hub 所在的项目中创建 VPC Spoke,则系统会自动接受并激活该 Spoke。
- 如需将新 Spoke 连接到同一项目中的 Hub,请选择在项目
输入 Spoke 名称和(可选)说明。
根据您要连接的 hub 的拓扑,为您的 spoke 选择 spoke 群组。您可以从以下值中进行选择:
- 网状拓扑 hub 的默认值
- 对于星形拓扑 hub,值为中心或边缘。对于使用星形拓扑的 spoke 群组,此字段为必填字段
- 对于使用混合检查拓扑的 hub,为 Prod、Non-prod 或 Services(仅适用于 NCC 网关 spoke)
如需详细了解 spoke 群组,请参阅 spoke 群组。
选择 VPC 网络作为 Spoke 类型。
如需将 VPC 网络添加到 spoke,请从关联的 VPC 网络列表中选择一个。
可选:添加 VPC spoke 过滤条件来自定义路由的通告方式,具体方法是指定 IP 地址范围以在从 spoke 到 hub 的导出中排除或包含。您可以将 spoke 配置为仅导出使用专用 IPv4 地址的子网范围、仅导出 IPv6 子网范围(内部和外部)或同时导出使用专用 IPv4 地址的子网范围以及内部和外部 IPv6 子网范围。
IPv4 范围:配置 IPv4 子网范围的导出。
包含从 spoke 导出到 hub 的 IPv4 子网范围:默认情况下,此复选框处于选中状态,并会导出所有使用专用 IPv4 地址的子网范围。
如果您不想导出 IPv4 子网范围,请取消选中此复选框。
如果您只想导出特定的 IPv4 子网范围,请选择指定 IPv4 范围,然后输入要导出的地址范围。您指定的 IPv4 子网范围必须是专用 IPv4 地址范围,不包括以非公开方式使用的公共 IPv4 地址。 如需了解详情,请参阅有效的 IPv4 范围。
排除从 spoke 导出到 hub 的 IPv4 子网范围:如果 spoke 导出子网范围,并且您想要从导出中排除特定范围,请在此字段中输入这些范围。
IPv6 地址范围:配置 IPv6 子网范围(内部和外部)的导出。
包含从 spoke 导出到 hub 的所有 IPv6 子网范围:如需将所有 IPv6 子网范围导出到 hub,请选中该复选框。
如果您只想导出特定的 IPv6 子网范围,请选择指定 IPv6 范围,然后输入要导出的地址范围。
排除从 spoke 导出到 hub 的 IPv6 子网范围:如果 spoke 导出子网范围,并且您想要从导出中排除特定范围,请在此字段中输入这些范围。
点击完成。
如果要添加更多 Spoke,请点击添加 Spoke,然后重新开始该过程,从输入 Spoke 名称开始。
添加完 spoke 后,点击创建。NCC 页面会更新,以显示您创建的 spoke 的详细信息。
gcloud
如需创建 VPC spoke,请使用 gcloud network-connectivity spokes linked-vpc-network create 命令。
gcloud network-connectivity spokes linked-vpc-network create SPOKE_NAME \
--hub=HUB \
--description=DESCRIPTION \
--vpc-network=VPC_URI \
--include-export-ranges=[INCLUDE_EXPORT_RANGES] \
--exclude-export-ranges=[EXCLUDE_EXPORT_RANGES] \
--global \
--group=GROUP_NAME
替换以下内容:
SPOKE_NAME:您正在创建的 spoke 的名称,例如vpc-spoke1HUB:Spoke 的 HubDESCRIPTION:spoke 的可选说明VPC_URI:此 Spoke 指向的 VPC 网络INCLUDE_EXPORT_RANGES:一个英文逗号分隔列表,其中包含用于定义可导出到 hub 的子网 IP 地址范围的关键字、IP 地址范围或关键字和 IP 地址范围组合。ALL_PRIVATE_IPV4_RANGES关键字会将使用专用 IPv4 地址的所有子网范围添加到包含导出范围列表中。ALL_IPV4_RANGES关键字包含所有 IPv4 地址,相当于0.0.0.0/0CIDR。包括所有有效 IPv4 范围(包括以非公开方式使用的公共 IPv4 地址范围)作为子网范围。您可以使用--exclude-export-ranges标志来优化列表。ALL_IPV6_RANGES关键字包含所有 IPv6 地址,相当于::/0CIDR。包含导出范围最多支持 16 个不重叠的唯一 CIDR。 包含导出范围中的任何 CIDR 都不能与另一个 CIDR 匹配或包含另一个 CIDR。
如果您为 VPC spoke 省略
--include-export-ranges,则默认的包含导出范围与您指定ALL_PRIVATE_IPV4_RANGES的情况相同。VPC spoke 中的子网范围、其导出包含范围和其导出排除范围必须遵循 VPC spoke 的导出过滤规则。
EXCLUDE_EXPORT_RANGES:用于定义绝不会导出到 hub 的子网 IP 地址范围的 IP 地址范围的英文逗号分隔列表。排除导出范围最多支持 16 个不重叠的唯一 CIDR。 排除导出范围中的任何 CIDR 都不能与另一个 CIDR 匹配或包含另一个 CIDR。
排除导出范围中指定的每个 CIDR 都必须扩展到由包含导出范围中的 CIDR 或关键字完全包含的 IP 地址(如果您未明确指定任何包含导出范围,则为默认包含导出范围)。
排除导出范围不支持关键字。
如果您省略
--exclude-export-ranges,NCC 会使用空列表作为默认的排除导出范围。VPC spoke 中的子网范围、其导出包含范围和其导出排除范围必须遵循 VPC spoke 的导出过滤规则。
GROUP_NAME:此 spoke 所属的群组。支持的值包括:Default:对于网状拓扑 hubCenter或edge(对于星形拓扑 hub)。对于使用星形拓扑的 spoke 群组,此字段为必填字段Prod、non-prod或services(适用于使用混合检查拓扑的 hub,仅限 NCC 网关 spoke)
如需详细了解 spoke 群组,请参阅 spoke 群组。
API
如需创建 VPC spoke,请使用 projects.locations.spokes.create 方法。
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/spokes/SPOKE_NAME
{
"hub":"HUB_NAME",
"linkedVpcNetwork": {
"uri": VPC_URI,
"include_export_ranges": "[INCLUDE_EXPORT_RANGES]",
"exclude_export_ranges": "[EXCLUDE_EXPORT_RANGES]",
"group": "GROUP_NAME"
},
}
替换以下值:
PROJECT_ID:新 spoke 所属项目的 ID。SPOKE_NAME:新 spoke 的名称。HUB_NAME:您要将 spoke 连接到的 hub 的名称。VPC_URI:此 spoke 指向的 VPC 网络,例如vpc_uri。INCLUDE_EXPORT_RANGES:一个英文逗号分隔列表,其中包含用于定义可导出到 hub 的子网 IP 地址范围的关键字、IP 地址范围或关键字和 IP 地址范围组合。ALL_PRIVATE_IPV4_RANGES关键字会将使用专用 IPv4 地址的所有子网范围添加到包含导出范围列表中。ALL_IPV4_RANGES关键字包含所有 IPv4 地址,相当于0.0.0.0/0CIDR。包括所有有效 IPv4 范围(包括以非公开方式使用的公共 IPv4 地址范围)作为子网范围。您可以使用--exclude-export-ranges标志来优化列表。ALL_IPV6_RANGES关键字包含所有 IPv6 地址,相当于::/0CIDR。包含导出范围最多支持 16 个不重叠的唯一 CIDR。 包含导出范围中的任何 CIDR 都不能与另一个 CIDR 匹配或包含另一个 CIDR。
如果您为 VPC spoke 省略
include_export_ranges,则默认的包含导出范围与您指定ALL_PRIVATE_IPV4_RANGES的情况相同。VPC spoke 中的子网范围、其导出包含范围和其导出排除范围必须遵循 VPC spoke 的导出过滤规则。
EXCLUDE_EXPORT_RANGES:用于定义绝不会导出到 hub 的子网 IP 地址范围的 IP 地址范围的英文逗号分隔列表。排除导出范围最多支持 16 个不重叠的唯一 CIDR。 排除导出范围中的任何 CIDR 都不能与另一个 CIDR 匹配或包含另一个 CIDR。
排除导出范围中指定的每个 CIDR 都必须扩展到由包含导出范围中的 CIDR 或关键字完全包含的 IP 地址(如果您未明确指定任何包含导出范围,则为默认包含导出范围)。
排除导出范围不支持关键字。
如果您省略
exclude_export_ranges,NCC 会使用空列表作为默认的排除导出范围。VPC spoke 中的子网范围、其导出包含范围和其导出排除范围必须遵循 VPC spoke 的导出过滤规则。
GROUP_NAME:此 spoke 所属的群组。支持的值包括:Default:对于网状拓扑 hubCenter或edge(对于星形拓扑 hub)。对于使用星形拓扑的 spoke 群组,此字段为必填字段Prod、non-prod或services(适用于使用混合检查拓扑的 hub,仅限 NCC 网关 spoke)
如需详细了解 spoke 群组,请参阅 spoke 群组。