创建多播群组范围

本页面介绍了多播管理员创建多播组范围必须执行的步骤。

如需大致了解多播的配置过程,请参阅多播配置概览

准备工作

多播组范围必须与特定的多播网域相关联。在创建多播组范围之前,请按照步骤创建多播网域

创建多播组范围

本部分介绍如何在网域中创建多播组范围。您可以重复执行这些步骤,在给定网域中创建多个组范围。

创建组范围

将多播组 IP 地址范围与多播网域相关联。

gcloud

  1. 在多播管理员 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 或更小的范围无效。

    如需详细了解如何创建内部范围,请参阅创建和使用内部范围

  2. 使用您预留的内部范围创建多播群组范围。如需创建多播组范围,请使用 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:多播管理员项目的 ID
    • INTERNAL_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

  1. 在多播管理员 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:多播管理员项目的 ID
    • ADMIN_NETWORK:多播管理员网络的名称
    • CIDR_RANGE:要预留的 CIDR 范围

      您指定的 CIDR 范围必须是 D 类地址(例如 224.0.0.0 - 239.255.255.255),并且前缀必须大于或等于 /23。例如,224.1.60.0/24 是一个有效的范围。前缀长度为 /22 或更小的范围无效。

    如需详细了解如何创建内部范围,请参阅创建和使用内部范围

  2. 使用您预留的内部范围创建多播群组范围。如需创建多播群组范围,请使用 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:多播管理员项目的 ID
    • DOMAIN_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:多播管理员的项目 ID
  • ZONE:要在其中激活组范围的可用区。该可用区必须是您之前在其中激活网域的可用区。
  • 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:多播管理员的项目 ID
  • ZONE:要在其中激活组范围的可用区。该可用区必须是您之前在其中激活网域的可用区。
  • DOMAIN_ACTIVATION_NAME:您之前在此可用区中创建的网域激活的名称
  • GROUP_RANGE_NAME:您之前创建的组范围的名称
  • LOGGING_ENABLED:确定是否启用群组成员资格事件日志记录。为可用区级群组范围激活配置日志记录会覆盖全球群组范围的设置。
    • 如需启用日志记录,请设置为 true
    • (默认)如需停用日志记录,请设置为 false

后续步骤