为多播使用方实例配置 IGMP

本页面介绍了如何对多播使用方虚拟机实例配置 IGMPv2,以便在实例上运行的应用可以加入和退出多播群组。

如需将实例配置为多播使用方,您必须按照本页面上的过程启用 IGMP 查询以及在客机操作系统中设置 IGMPv2

如需详细了解 IGMPv2 在您配置实例后的运作方式,请参阅 IGMPv2 的运作方式

启用 IGMP 查询

创建启用 IGMP 查询的新实例,或对现有实例启用 IGMP 查询。

如需详细了解如何创建实例,请参阅创建和启动 Compute Engine 实例

gcloud

  • 如需创建启用 IGMP 查询的新实例,请使用 beta compute instances create 命令

    您可以选择使用 --shieldedno-address 参数创建没有外部 IP 地址的安全强化型实例。

    gcloud beta compute instances create INSTANCE_NAME \
       --zone=ZONE \
       --network-interface=network=MULTICAST_CONSUMER_NETWORK,subnet=MULTICAST_CONSUMER_SUBNET,igmp-query=IGMP_QUERY_V2[,no-address] \
       --machine-type=MACHINE_TYPE \
       [--shielded-secure-boot] \
       [--shielded-vtpm] \
       [--shielded-integrity-monitoring]
    

    替换以下值:

    • INSTANCE_NAME:实例的名称
    • ZONE:要创建实例的可用区。 必须是您在其中激活了用于托管实例的多播使用方 VPC 网络的可用区。
    • MULTICAST_CONSUMER_NETWORKMULTICAST_CONSUMER_SUBNET:要在其中托管实例的多播使用方 VPC 网络和子网
    • MACHINE_TYPE:实例的机器类型。 如有必要,您可以使用 compute machine types list 命令查看给定可用区中的可用机器类型。
  • 如需对现有实例启用 IGMP 查询,请使用 beta compute instances network-interfaces update 命令

    以下命令会更新 nic0 接口。如需指定其他接口,请使用 --network-interface 标志。

    gcloud beta compute instances network-interfaces update INSTANCE_NAME \
       --zone=ZONE \
       --igmp-query=IGMP_QUERY_V2
    

    替换以下值:

    • INSTANCE_NAME:实例的名称
    • ZONE:实例的可用区

在客机操作系统中设置 IGMPv2

如需在实例的客机操作系统中设置 IGMPv2,请执行以下操作:

  1. 使用 SSH 连接到实例

  2. 运行以下命令,并确定连接到多播使用方 VPC 网络中子网的网络接口的名称。

    sudo ifconfig
    
  3. 运行以下命令以强制使用 IGMPv2。

    sudo -i
    echo "2" > /proc/sys/net/ipv4/conf/NETWORK_INTERFACE_NAME/force_igmp_version
    

    NETWORK_INTERFACE_NAME 替换为网络接口的名称。

后续步骤