创建多播群组范围
本页面介绍了多播管理员创建多播组范围必须执行的步骤。
如需大致了解多播的配置过程,请参阅多播配置概览。
准备工作
多播组范围必须与特定的多播网域相关联。在创建多播组范围之前,请按照步骤创建多播网域。
创建多播组范围
本部分介绍如何在网域中创建多播组范围。您可以重复执行这些步骤,在给定网域中创建多个组范围。
创建组范围
将多播组 IP 地址范围与多播网域相关联。
gcloud
在多播管理员 VPC 网络中预留一个内部范围,其中包含您要使用的多播群组 IP 地址。如需预留内部范围,请使用
network-connectivity internal-ranges create命令。gcloud network-connectivity internal-ranges create INTERNAL_RANGE_NAME \ --network=ADMIN_NETWORK \ --ip-cidr-range=CIDR_RANGE
替换以下值:
INTERNAL_RANGE_NAME:要预留的内部范围的名称ADMIN_NETWORK:多播管理员网络的名称CIDR_RANGE:要预留的 CIDR 范围您指定的 CIDR 范围必须是 D 类地址(例如
224.0.0.0-239.255.255.255),并且前缀必须大于或等于/23。例如,224.1.60.0/24是一个有效的范围。前缀长度为/22或更小的范围无效。
如需详细了解如何创建内部范围,请参阅创建和使用内部范围。
使用您预留的内部范围创建多播群组范围。如需创建多播组范围,请使用
network-services multicast-group-ranges create命令。gcloud beta network-services multicast-group-ranges create GROUP_RANGE_NAME \ --multicast-domain="projects/ADMIN_PROJECT/locations/global/multicastDomains/DOMAIN_NAME" \ --reserved-internal-range="projects/ADMIN_PROJECT/locations/global/internalRanges/INTERNAL_RANGE_NAME" \ --location=global \ [--require-explicit-accept ] \ [--consumer-accept-list=CONSUMER_ACCEPT_LIST] \ [--distribution-scope=DISTRIBUTION_SCOPE] \ [--enable-logging | --no-enable-logging]
替换以下值:
GROUP_RANGE_NAME:多播群组范围的名称DOMAIN_NAME:您之前创建的多播网域的名称ADMIN_PROJECT:多播管理员项目的 IDINTERNAL_RANGE_NAME:您之前预留的内部范围的名称为多播流量、群组成员资格和日志记录指定以下属性。
除了流量分配范围之外,您稍后可以根据需要更新每个属性。
--require-explicit-accept:确定在多播使用方接受列表为空时,哪些项目可以使用多播组范围。- 如需拒绝所有项目,请添加此标志。只有在您将组范围添加到多播使用方接受列表时,项目才能使用组范围。
- (默认)如需允许所有项目,请排除此标志。任何有权访问多播网域的项目都可以使用组范围。在 Network Connectivity Center 星形拓扑中,您通过将项目接受到 hub 来授予其对网域的访问权限。
CONSUMER_ACCEPT_LIST:如果您指定了--require-explicit-accept,则可以输入可使用此多播组范围的多播使用方项目列表。您最多可以按项目 ID 或名称指定 100 个项目。
DISTRIBUTION_SCOPE:确定多播流量的位置范围。您之后无法更新此属性。- 如需允许此范围仅在某个可用区内发送多播流量,请将此标志设置为
intra-zone。 - (默认)如需允许此范围跨可用区发送多播流量,请将此标志设置为
intra-region。
- 如需允许此范围仅在某个可用区内发送多播流量,请将此标志设置为
--[no-]enable-logging:确定是否启用了群组成员资格事件日志记录。- 如需启用日志记录,请使用
--enable-logging。 - (默认)如需停用日志记录,请使用
--no-enable-logging。
- 如需启用日志记录,请使用
API
在多播管理员 VPC 网络中预留一个内部范围,其中包含您要使用的多播群组 IP 地址。如需预留内部范围,请使用
internalRanges.create方法。POST https://networkconnectivity.googleapis.com/v1/projects/ADMIN_PROJECT/locations/global/internalRanges?internalRangeId=INTERNAL_RANGE_NAME { "network": "projects/ADMIN_PROJECT/global/networks/ADMIN_NETWORK", "ipCidrRange": "CIDR_RANGE" }替换以下值:
INTERNAL_RANGE_NAME:要预留的内部范围的名称ADMIN_PROJECT:多播管理员项目的 IDADMIN_NETWORK:多播管理员网络的名称CIDR_RANGE:要预留的 CIDR 范围您指定的 CIDR 范围必须是 D 类地址(例如
224.0.0.0-239.255.255.255),并且前缀必须大于或等于/23。例如,224.1.60.0/24是一个有效的范围。前缀长度为/22或更小的范围无效。
如需详细了解如何创建内部范围,请参阅创建和使用内部范围。
使用您预留的内部范围创建多播群组范围。如需创建多播群组范围,请使用
multicastGroupRanges.create方法。POST https://networkservices.googleapis.com/v1beta1/projects/ADMIN_PROJECT/locations/global/multicastGroupRanges?multicastGroupRangeId=GROUP_RANGE_NAME { "multicastDomain": "projects/ADMIN_PROJECT/locations/global/multicastDomains/DOMAIN_NAME", "reservedInternalRange": "projects/ADMIN_PROJECT/locations/global/internalRanges/INTERNAL_RANGE_NAME", "requireExplicitAccept": "REQUIRE_EXPLICIT_ACCEPT", "consumerAcceptList": [ "CONSUMER_ACCEPT_LIST" ], "distributionScope": "DISTRIBUTION_SCOPE", "logConfig": { "enabled": "LOGGING_ENABLED" } }替换以下值:
GROUP_RANGE_NAME:多播群组范围的名称ADMIN_PROJECT:多播管理员项目的 IDDOMAIN_NAME:您之前创建的多播网域的名称INTERNAL_RANGE_NAME:您之前预留的内部范围的名称
如需指定多播流量、群组成员资格和日志记录的属性,请在请求正文中包含以下字段。除了
distributionScope之外,您稍后可以根据需要更新每个属性。REQUIRE_EXPLICIT_ACCEPT:确定在consumerAcceptList为空时,哪些项目可以使用多播群组范围。- 如需拒绝所有项目,请设置为
true。只有在您将群组范围添加到consumerAcceptList时,项目才能使用群组范围。 - (默认)如需允许所有项目,请设置为
false。任何有权访问多播网域的项目都可以使用组范围。在 Network Connectivity Center 星形拓扑中,您通过将项目接受到 hub 来授予其对网域的访问权限。
- 如需拒绝所有项目,请设置为
CONSUMER_ACCEPT_LIST:如果您将requireExplicitAccept设置为true,则可以输入可以使用此多播群组范围的多播使用方项目的列表。您可以按项目 ID 或项目名称最多指定 100 个项目。请使用以下格式:"consumerAcceptList": ["project-1", "project-2"]。DISTRIBUTION_SCOPE:确定多播流量的位置范围。您之后无法更新此属性。- 如需允许此范围仅在某个可用区内发送多播流量,请设置为
INTRA_ZONE。 - (默认)如需允许此范围跨可用区发送多播流量,请设置为
INTRA_REGION。
- 如需允许此范围仅在某个可用区内发送多播流量,请设置为
LOGGING_ENABLED:确定是否启用群组成员资格事件日志记录。- 如需启用日志记录,请设置为
true。 - (默认)如需停用日志记录,请设置为
false。
- 如需启用日志记录,请设置为
激活群组范围
在多播提供方或使用方需要使用关联的组 IP 地址的每个可用区中激活组范围。
如果您未在给定可用区中激活组范围,则关联的组 IP 地址无法用于在该可用区中发送或接收多播流量。
gcloud
如需激活多播组范围,请使用 network-services multicast-group-range-activations create 命令。
gcloud beta network-services multicast-group-range-activations create GROUP_RANGE_ACTIVATION_NAME \
--multicast-domain-activation="projects/ADMIN_PROJECT/locations/ZONE/multicastDomainActivations/DOMAIN_ACTIVATION_NAME" \
--multicast-group-range="projects/ADMIN_PROJECT/locations/global/multicastGroupRanges/GROUP_RANGE_NAME" \
--location=ZONE \
[--enable-logging | --no-enable-logging]
替换以下值:
GROUP_RANGE_ACTIVATION_NAME:多播组范围激活的名称ADMIN_PROJECT:多播管理员的项目 IDZONE:要在其中激活组范围的可用区。该可用区必须是您之前在其中激活网域的可用区。DOMAIN_ACTIVATION_NAME:您之前在此可用区中创建的网域激活的名称GROUP_RANGE_NAME:您之前创建的组范围的名称--[no-]enable-logging:(可选)确定是否启用了群组成员资格事件日志记录。为可用区级组范围激活配置此标志会覆盖全球组范围的设置。- 如需启用日志记录,请使用
--enable-logging。 - (默认)如需停用日志记录,请使用
--no-enable-logging。
- 如需启用日志记录,请使用
API
如需激活多播群组范围,请使用 multicastGroupRangeActivations.create 方法。
POST https://networkservices.googleapis.com/v1beta1/projects/ADMIN_PROJECT/locations/ZONE/multicastGroupRangeActivations?multicastGroupRangeActivationId=GROUP_RANGE_ACTIVATION_NAME
{
"multicastDomainActivation": "projects/ADMIN_PROJECT/locations/ZONE/multicastDomainActivations/DOMAIN_ACTIVATION_NAME",
"multicastGroupRange": "projects/ADMIN_PROJECT/locations/global/multicastGroupRanges/GROUP_RANGE_NAME",
"logConfig": {
"enabled": "LOGGING_ENABLED"
}
}
替换以下值:
GROUP_RANGE_ACTIVATION_NAME:多播组范围激活的名称ADMIN_PROJECT:多播管理员的项目 IDZONE:要在其中激活组范围的可用区。该可用区必须是您之前在其中激活网域的可用区。DOMAIN_ACTIVATION_NAME:您之前在此可用区中创建的网域激活的名称GROUP_RANGE_NAME:您之前创建的组范围的名称LOGGING_ENABLED:确定是否启用群组成员资格事件日志记录。为可用区级群组范围激活配置日志记录会覆盖全球群组范围的设置。- 如需启用日志记录,请设置为
true。 - (默认)如需停用日志记录,请设置为
false。
- 如需启用日志记录,请设置为
后续步骤
- 如需查看您创建的多播组范围配置,请参阅查看多播组范围配置。
- 启用 VPC 网络以提供多播流量