设置 NCC 并创建 hub

本页面介绍了如何使用混合检查拓扑创建 Network Connectivity Center (NCC) hub,以便向 hub 添加 NCC 网关 spoke 和 VPC spoke。

如需了解 NCC 网关,请参阅 NCC 网关概览

准备工作

开始之前,请查看以下部分。

创建或选择项目

为了更轻松地配置 NCC,请先确定有效项目。

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 安装 Google Cloud CLI。

  5. 如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  6. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  7. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Verify that billing is enabled for your Google Cloud project.

  9. 安装 Google Cloud CLI。

  10. 如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  11. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  12. 如果您使用的是 Google Cloud CLI,请使用 gcloud config set 命令设置项目 ID。

    gcloud config set project PROJECT_ID

    PROJECT_ID 替换为您的唯一项目 ID。

    此页面上的 gcloud CLI 说明假定您已设置项目 ID。

  13. 如需确认您正确设置了项目 ID,请使用 gcloud config list 命令

    gcloud config list --format='text(core.project)'

启用 Network Connectivity API

您必须先启用 Network Connectivity API,然后才能使用 NCC 网关执行任何任务。

控制台

如要启用 Network Connectivity API,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 Network Connectivity Center 页面。

    转到 Network Connectivity Center

  2. 点击启用

或者,您可以按照启用 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,请按照以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,前往 Network Connectivity Center 页面。

    转到 Network Connectivity Center

  2. 在项目菜单中,选择一个项目。

  3. 点击创建 hub

  4. 可选:选择中枢政策模式

  5. 完成表单的基本配置部分:

    1. 输入 Hub 名称
    2. (可选)输入说明
    3. 可选:要添加标签,请点击添加项,然后输入
    4. 验证表单是否显示正确的项目 ID。如果项目 ID 不正确,请使用页面顶部的菜单选择其他项目。
  6. 可选:如需启用 Private Service Connect 连接传播,请在 Private Service Connect 连接传播字段中点击开启

  7. 执行下列其中一项操作:

    • 如果要创建 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 所属项目的项目ID
  • HUB_NAME:新 Hub 的名称
  • DESCRIPTION:用于描述该 Hub 的可选文本
  • KEY:可选标签文本的键值对中的键
  • VALUE:可选标签文本的键值对中的值

将 VPC 网络连接到 hub

将 VPC 网络连接到 hub 的过程因网络和 hub 是否位于同一项目中而异。

连接来自不同项目的 VPC 网络和 hub

如需连接来自不同项目的 VPC 网络,请按照以下步骤操作:

在同一项目中连接 VPC 网络和 hub

如果 VPC 网络和 hub 位于同一项目中,请执行以下操作:

如需连接给定项目中的多个 VPC 网络,请将 VPC 网络连接到 spoke,并将其连接到 hub。

如果您要创建 VPC 以连接到配置为星形拓扑的 hub,则必须从 hub 管理员那里获取项目 ID、hub 名称或 URI 以及群组名称。

如果要分配排除导出范围包含导出范围,请在创建 spoke 期间使用适当的选项。

如需创建 VPC Spoke,请按照以下步骤操作。

控制台

  1. 在 Google Cloud 控制台中,前往 Network Connectivity Center 页面。

    转到 Network Connectivity Center

  2. 在项目菜单中,选择您要在其中创建 spoke 的项目。

  3. 点击 Spoke 标签页。

  4. 点击添加 Spoke

  5. 选择 hub 部分中,按如下方式选择 hub 位置:

    • 如需将新 Spoke 连接到同一项目中的 Hub,请选择在项目 PROJECT_NAME,然后从列表中选择 Hub 名称。
    • 如果要将新的 Spoke 连接到其他项目中的 Hub,请选择在其他项目中。输入要连接新 Spoke 的项目 IDHub 名称

    当您选择其他项目中的 Hub 时,仅在 Hub 管理员审核并接受您建议的 Spoke 时,您的 Spoke 才会生效。如需详细了解如何创建连接到其他项目中的 Hub 的 Spoke,请参阅 VPC Spoke 概览。如果您要在 Hub 所在的项目中创建 VPC Spoke,则系统会自动接受并激活该 Spoke。

  6. 输入 Spoke 名称和(可选)说明

  7. 根据您要连接的 hub 的拓扑,为您的 spoke 选择 spoke 群组。您可以从以下值中进行选择:

    • 网状拓扑 hub 的默认
    • 对于星形拓扑 hub,值为中心边缘。对于使用星形拓扑的 spoke 群组,此字段为必填字段
    • 对于使用混合检查拓扑的 hub,为 ProdNon-prodServices(仅适用于 NCC 网关 spoke)

    如需详细了解 spoke 群组,请参阅 spoke 群组

  8. 选择 VPC 网络作为 Spoke 类型

  9. 如需将 VPC 网络添加到 spoke,请从关联的 VPC 网络列表中选择一个。

  10. 可选:添加 VPC spoke 过滤条件来自定义路由的通告方式,具体方法是指定 IP 地址范围以在从 spoke 到 hub 的导出中排除或包含。您可以将 spoke 配置为仅导出使用专用 IPv4 地址的子网范围、仅导出 IPv6 子网范围(内部和外部)或同时导出使用专用 IPv4 地址的子网范围以及内部和外部 IPv6 子网范围。

    1. IPv4 范围:配置 IPv4 子网范围的导出。

      • 包含从 spoke 导出到 hub 的 IPv4 子网范围:默认情况下,此复选框处于选中状态,并会导出所有使用专用 IPv4 地址的子网范围。

        如果您不想导出 IPv4 子网范围,请取消选中此复选框。

        如果您只想导出特定的 IPv4 子网范围,请选择指定 IPv4 范围,然后输入要导出的地址范围。您指定的 IPv4 子网范围必须是专用 IPv4 地址范围,不包括以非公开方式使用的公共 IPv4 地址。 如需了解详情,请参阅有效的 IPv4 范围

      • 排除从 spoke 导出到 hub 的 IPv4 子网范围:如果 spoke 导出子网范围,并且您想要从导出中排除特定范围,请在此字段中输入这些范围。

    2. IPv6 地址范围:配置 IPv6 子网范围(内部和外部)的导出。

      • 包含从 spoke 导出到 hub 的所有 IPv6 子网范围:如需将所有 IPv6 子网范围导出到 hub,请选中该复选框。

        如果您只想导出特定的 IPv6 子网范围,请选择指定 IPv6 范围,然后输入要导出的地址范围。

      • 排除从 spoke 导出到 hub 的 IPv6 子网范围:如果 spoke 导出子网范围,并且您想要从导出中排除特定范围,请在此字段中输入这些范围。

  11. 点击完成

  12. 如果要添加更多 Spoke,请点击添加 Spoke,然后重新开始该过程,从输入 Spoke 名称开始。

  13. 添加完 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-spoke1
  • HUB:Spoke 的 Hub
  • DESCRIPTION: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/0 CIDR。包括所有有效 IPv4 范围(包括以非公开方式使用的公共 IPv4 地址范围)作为子网范围。您可以使用 --exclude-export-ranges 标志来优化列表。

    • ALL_IPV6_RANGES 关键字包含所有 IPv6 地址,相当于 ::/0 CIDR。

    • 包含导出范围最多支持 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:对于网状拓扑 hub
    • Centeredge(对于星形拓扑 hub)。对于使用星形拓扑的 spoke 群组,此字段为必填字段
    • Prodnon-prodservices(适用于使用混合检查拓扑的 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/0 CIDR。包括所有有效 IPv4 范围(包括以非公开方式使用的公共 IPv4 地址范围)作为子网范围。您可以使用 --exclude-export-ranges 标志来优化列表。

    • ALL_IPV6_RANGES 关键字包含所有 IPv6 地址,相当于 ::/0 CIDR。

    • 包含导出范围最多支持 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:对于网状拓扑 hub
    • Centeredge(对于星形拓扑 hub)。对于使用星形拓扑的 spoke 群组,此字段为必填字段
    • Prodnon-prodservices(适用于使用混合检查拓扑的 hub,仅限 NCC 网关 spoke)

    如需详细了解 spoke 群组,请参阅 spoke 群组