创建多播网域
本页面介绍了创建多播网域时必须遵循的步骤。
如需大致了解多播的配置过程,请参阅多播配置概览。
准备工作
在创建多播网域之前,请参阅以下部分。
创建或标识 VPC 网络
如果您还没有相应的虚拟私有云 (VPC) 网络,请创建一个 VPC 网络以用作多播管理员网络。如需详细了解如何创建 VPC 网络,请参阅创建和管理 VPC 网络。
如果您的多播管理员网络还将托管多播提供方或使用方(例如使用单 VPC 网络拓扑时),请确保该网络具有适当的防火墙规则以允许多播流量。请参阅以下内容:
设置项目
设置 gcloud CLI 以使用您的项目。或者,您也可以在后续过程中为每个命令添加 --project=MULTICAST_ADMIN_PROJECT 标志。
gcloud config set project MULTICAST_ADMIN_PROJECT
将 MULTICAST_ADMIN_PROJECT 替换为您的项目的 ID。
启用 API
如果您尚未启用以下 API,请启用它们。
如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您没有此权限,请让您的 Identity and Access Management (IAM) 管理员为您授予 Service Usage Admin (roles/serviceusage.serviceUsageAdmin) 角色。
如需创建多播资源,请启用
networkservicesAPI:gcloud services enable networkservices.googleapis.com如需创建 Network Connectivity Center VPC spoke,请启用
networkconnectivityAPI:gcloud services enable networkconnectivity.googleapis.com
所需的角色
如需获得创建多播网域所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
创建和管理网络资源:项目的 Compute Network Admin (
compute.networkAdmin) 角色 -
创建和管理防火墙规则:项目的 Compute Security Admin (
compute.securityAdmin) 角色 -
创建和管理 Network Connectivity Center hub 和 spoke:项目的 Hub and Spoke Admin (
networkconnectivity.hubAdmin) -
创建多播资源:项目的 Multicast Admin (
networkservices.multicastAdmin) 角色
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
配置 Network Connectivity Center
如果您要创建使用 Network Connectivity Center 星形拓扑的多播网域,请按照本部分中的步骤配置 hub。
如果您要创建使用单 VPC 网络拓扑的多播网域,则可以跳过本部分,继续创建多播网域。
本部分介绍如何使用预设的星形拓扑配置 Network Connectivity Center hub,以实现以下功能:
- 您可以将自己的管理员 VPC 网络作为中心 spoke 添加到 hub。
- 如果有单独的多播提供方 VPC 网络,则多播提供方 VPC 网络可以作为中心 spoke 加入 hub。
- 多播使用方 VPC 网络可以作为边缘 spoke 加入 hub。
如需了解详情,请参阅 Network Connectivity Center 文档中的星形拓扑和配置 hub。
gcloud
如需配置 Network Connectivity Center,请执行以下操作:
如需创建 Hub,请使用
network-connectivity hubs create命令。gcloud network-connectivity hubs create HUB_NAME \ --policy-mode=PRESET \ --preset-topology=STAR将
HUB_NAME替换为 hub 的名称。如需将您的 VPC 网络作为中心 spoke 添加到 hub,请使用
network-connectivity spokes linked-vpc-network create命令。gcloud network-connectivity spokes linked-vpc-network create SPOKE_NAME \ --hub=projects/MULTICAST_ADMIN_PROJECT/locations/global/hubs/HUB_NAME \ --vpc-network=MULTICAST_ADMIN_NETWORK \ --group="center" \ --global替换以下内容:
SPOKE_NAME:spoke 的名称MULTICAST_ADMIN_PROJECT:多播管理员项目的 IDHUB_NAME:您之前创建的 Network Connectivity Center hub 的名称MULTICAST_ADMIN_NETWORK:您之前创建的多播管理员网络的名称您也可以使用以下格式提供多播管理员网络的 URI:
projects/MULTICAST_ADMIN_PROJECT/global/networks/MULTICAST_ADMIN_NETWORK。
如需允许多播使用方 VPC 网络加入 hub,请执行以下操作。或者,您也可以继续配置多播,并在稍后按照控制对多播网域的访问权限中所述来完成这些步骤。
按照 Network Connectivity Center 文档中的授予访问权限中的步骤操作,向其他项目中的多播使用方网络管理员授予向 hub 提议 VPC spoke 的权限。
请多播使用方网络管理员在按照使 VPC 网络能够使用多播流量的过程操作时,将其 VPC 网络作为 spoke 添加到您创建的 hub。
根据需要查看提议的 VPC spoke,以检查是否有 spoke 提案。
收到 spoke 提案后,请按照接受 VPC spoke 的步骤操作。
创建多播网域
本部分介绍如何创建多播网域。
创建网域群组
如果您想创建网域群组,则必须先完成此步骤,然后再创建网域。您无法在以后将现有网域添加到网域群组。
您可以选择创建网域群组,以明确将两个相关网域归为一组。请勿为单个网域或两个以上的网域创建网域群组。
网域群组通过将每个网域的基础设施放置在 Google Cloud中的单独高可用性分片中,来帮助在两个相关的多播网域之间实现高可用性。
gcloud
如需创建网域群组,请使用 network-services multicast-domain-groups create 命令。
gcloud beta network-services multicast-domain-groups create DOMAIN_GROUP_NAME \ --location=global
将 DOMAIN_GROUP_NAME 替换为网域群组的名称。
API
如需创建网域群组,请使用 multicastDomainGroups.create 方法。
POST https://networkservices.googleapis.com/v1beta1/projects/MULTICAST_ADMIN_PROJECT/locations/global/multicastDomainGroups?multicastDomainGroupId=DOMAIN_GROUP_NAME
替换以下内容:
DOMAIN_GROUP_NAME:网域群组的名称MULTICAST_ADMIN_PROJECT:多播管理员项目的 ID
创建网域
创建一个或多个与多播管理员 VPC 网络相关联的多播网域。
gcloud
如需创建网域,请使用 network-services multicast-domains create 命令。
如果您想使用网域群组,则必须在创建网域时指定网域群组。您无法在以后将网域添加到网域群组。如需创建属于网域群组的网域,您必须运行以下命令两次,例如创建 DOMAIN_1 和 DOMAIN_2。
gcloud beta network-services multicast-domains create DOMAIN_NAME \
--location=global \
--admin-network=projects/MULTICAST_ADMIN_PROJECT/locations/global/networks/MULTICAST_ADMIN_NETWORK \
--connection-type=TOPOLOGY \
[--ncc-hub=projects/MULTICAST_ADMIN_PROJECT/locations/global/hubs/HUB_NAME] \
[--multicast-domain-group=projects/MULTICAST_ADMIN_PROJECT/locations/global/multicastDomainGroups/DOMAIN_GROUP_NAME]
替换以下值:
DOMAIN_NAME:网域的名称MULTICAST_ADMIN_PROJECT:多播管理员项目的 IDMULTICAST_ADMIN_NETWORK:多播管理员的 VPC 网络。如果您使用的是 Network Connectivity Center 拓扑,则此网络还必须作为中心 spoke 成为 hub 的一部分,否则网域创建将失败。TOPOLOGY:您要为多播配置的拓扑。指定以下其中一项:SAME_VPC:单 VPC 网络拓扑。NCC:Network Connectivity Center 星形拓扑。
HUB_NAME:如果您要配置 Network Connectivity Center 星形拓扑,请指定 hub 的名称。DOMAIN_GROUP_NAME:如果您创建了网域群组,请输入网域群组的名称。
API
如需创建网域,请使用 multicastDomains.create 方法。
如果您想使用网域群组,则必须在创建网域时指定网域群组。您无法在以后将网域添加到网域群组。如需创建属于网域群组的网域,您必须发出以下 API 请求两次。例如,发出以下请求一次以创建 DOMAIN_1,然后再次发出该请求以创建 DOMAIN_2:
POST https://networkservices.googleapis.com/v1beta1/projects/MULTICAST_ADMIN_PROJECT/locations/global/multicastDomains?multicastDomainId=DOMAIN_NAME
{
"adminNetwork": "projects/MULTICAST_ADMIN_PROJECT/locations/global/networks/MULTICAST_ADMIN_NETWORK",
"connection": {
"connectionType": "TOPOLOGY",
"nccHub": "projects/MULTICAST_ADMIN_PROJECT/locations/global/hubs/HUB_NAME"
},
"multicastDomainGroup": "projects/MULTICAST_ADMIN_PROJECT/locations/global/multicastDomainGroups/DOMAIN_GROUP_NAME"
}
替换以下值:
DOMAIN_NAME:网域的名称MULTICAST_ADMIN_PROJECT:多播管理员项目的 IDMULTICAST_ADMIN_NETWORK:多播管理员的 VPC 网络。如果您使用的是 Network Connectivity Center 拓扑,则此网络还必须作为中心 spoke 成为 hub 的一部分,否则网域创建将失败。TOPOLOGY:您要为多播配置的拓扑。指定以下其中一项:SAME_VPC:单 VPC 网络拓扑。NCC:Network Connectivity Center 星形拓扑。
HUB_NAME:如果您要配置 Network Connectivity Center 星形拓扑,请使用nccHub字段指定 hub 的名称。DOMAIN_GROUP_NAME:如果您创建了网域群组,请使用multicastDomainGroup字段输入网域群组的名称。
激活网域
在多播提供方或使用方需要发送或接收多播流量的每个可用区中激活网域。当您在某个可用区中激活网域时,Google Cloud 会在该可用区中为网域预配多播基础设施。
如果您未在给定可用区中激活网域,则无法在该可用区中发送或接收多播流量。
gcloud
如需激活网域,请使用 network-services multicast-domain-activations create 命令。
以下命令大约需要 10 到 30 分钟才能完成。
gcloud beta network-services multicast-domain-activations create DOMAIN_ACTIVATION_NAME \
--multicast-domain="projects/MULTICAST_ADMIN_PROJECT/locations/global/multicastDomains/DOMAIN_NAME" \
--location=ZONE \
[--aggr-egress-pps=AGGR_EGRESS_PPS] \
[--aggr-ingress-pps=AGGR_INGRESS_PPS] \
[--avg-packet-size=AVG_PACKET_SIZE] \
[--max-per-group-ingress-pps=MAX_PER_GROUP_INGRESS_PPS] \
[--max-per-group-subscribers=MAX_PER_GROUP_SUBSCRIBERS]
替换以下值:
DOMAIN_ACTIVATION_NAME:网域激活的名称MULTICAST_ADMIN_PROJECT:多播管理员项目的 IDDOMAIN_NAME:要启用的网域的名称ZONE:要在其中激活网域的可用区根据您在此可用区中对多播流量的需求指定以下属性。 Google Cloud 会使用这些属性来确定多播基础设施的规模。
在指定这些属性之前,请参阅以下内容:
- 查看多播概览中所述的对应多播流量限制。
- 如果您不添加这些标志, Google Cloud会生成一个最小配置,您可以将其用于测试。
- 您无法在之后更新这些标志的配置。
- 虽然这些标志是可选的,但如果您添加了其中任何标志,
--aggr-egress-pps就会成为必需标志。
如需详细了解每个标志,请参阅以下内容:
AGGR_EGRESS_PPS:指定可用区的网域中所有多播群组的出站流量每秒数据包 (pps) 总数。出站流量是指从多播基础设施分配到多播使用方的数据包。您可以输入介于 0 到 5000000000(5 亿)之间的值。默认值为 1000000(100 万)。系统会根据您为此标志输入的值动态设置其他字段的默认值。
AGGR_INGRESS_PPS:指定可用区的网域中所有多播群组的入站流量 pps 总数。入站流量是指从多播提供方发送到多播基础设施的数据包。您可以输入介于 0 到 2000000(200 万)之间的值。您为
--aggr-ingress-pps输入的值不能大于--aggr-egress-pps的值。AVG_PACKET_SIZE:平均数据包大小(以字节为单位)。您可以输入介于 64 到 1500 之间的值。MAX_PER_GROUP_INGRESS_PPS:指定可用区的网域中单个多播群组的入站流量 pps 上限。使用此标志可指定网域中最活跃的多播群组,这有助于 Google Cloud 更准确地确定所需的多播基础设施规模。您可以输入介于 0 到 2000000(200 万)之间的值。您为
--max-per-group-ingress-pps输入的值不能大于--aggr-ingress-pps的值。MAX_PER_GROUP_SUBSCRIBERS:指定可用区的网域中单个多播群组的多播使用方数量上限。使用此标志可指定具有最多多播使用方的群组,这有助于 Google Cloud 更准确地确定所需的多播基础设施规模。提供此标志不会对群组的多播使用方数量施加限制。您可以输入介于 1 到 500 之间的值。
API
如需激活网域,请使用 multicastDomainActivations.create 方法。
以下请求大约需要 10 到 30 分钟才能完成。
POST https://networkservices.googleapis.com/v1beta1/projects/MULTICAST_ADMIN_PROJECT/locations/ZONE/multicastDomainActivations?multicastDomainActivationId=DOMAIN_ACTIVATION_NAME
{
"multicastDomain": "projects/MULTICAST_ADMIN_PROJECT/locations/global/multicastDomains/DOMAIN_NAME",
"trafficSpec": {
"aggrEgressPps": "AGGR_EGRESS_PPS",
"aggrIngressPps": "AGGR_INGRESS_PPS",
"avgPacketSize": "AVG_PACKET_SIZE",
"maxPerGroupIngressPps": "MAX_PER_GROUP_INGRESS_PPS",
"maxPerGroupSubscribers": "MAX_PER_GROUP_SUBSCRIBERS"
}
}
替换以下值:
DOMAIN_ACTIVATION_NAME:网域激活的名称MULTICAST_ADMIN_PROJECT:多播管理员项目的 IDDOMAIN_NAME:要启用的网域的名称ZONE:要在其中激活网域的可用区根据您在此可用区中对多播流量的需求,为
trafficSpec对象指定值。 Google Cloud 会使用这些属性来确定多播基础设施的规模。在指定这些属性之前,请参阅以下内容:
- 查看多播概览中所述的对应多播流量限制。
- 如果您未在请求正文中包含
trafficSpec对象, Google Cloud会生成一个最小配置,您可以将其用于测试。 - 您无法在之后更新
trafficSpec的配置。 - 虽然
trafficSpec中的字段是可选的,但如果您包含任何字段,aggrEgressPps就会成为必需字段。如果您包含具有某些字段的trafficSpec对象,则必须包含aggrEgressPps。
如需详细了解各个字段,请参阅以下内容:
AGGR_EGRESS_PPS:指定可用区的网域中所有多播群组的出站流量每秒数据包 (pps) 总数。出站流量是指从多播基础设施分配到多播使用方的数据包。您可以输入介于 0 到 5000000000(5 亿)之间的值。默认值为 1000000(100 万)。系统会根据您为此字段输入的值动态设置其他字段的默认值。
AGGR_INGRESS_PPS:指定可用区的网域中所有多播群组的入站流量 pps 总数。入站流量是指从多播提供方发送到多播基础设施的数据包。您可以输入介于 0 到 2000000(200 万)之间的值。您为
aggrIngressPps输入的值不能大于aggrEgressPps的值。AVG_PACKET_SIZE:平均数据包大小(以字节为单位)。您可以输入介于 64 到 1500 之间的值。MAX_PER_GROUP_INGRESS_PPS:指定可用区的网域中单个多播群组的入站流量 pps 上限。使用此标志可指定网域中最活跃的多播群组,这有助于 Google Cloud 更准确地确定所需的多播基础设施规模。您可以输入介于 0 到 2000000(200 万)之间的值。您为
maxPerGroupIngressPps输入的值不能大于aggrIngressPps的值。MAX_PER_GROUP_SUBSCRIBERS:指定可用区的网域中单个多播群组的多播使用方数量上限。使用此标志可指定具有最多多播使用方的群组,这有助于 Google Cloud 更准确地确定所需的多播基础设施规模。提供此标志不会对群组的多播使用方数量施加限制。您可以输入介于 1 到 500 之间的值。