啟用虛擬私有雲網路,產生多點播送流量

本頁說明如何在Google Cloud 中設定資源,允許虛擬私有雲網路中的多播製作人傳送特定多播網域和一或多個群組範圍的多播流量。

事前準備

開始執行本頁的程序之前,請先完成下列各節中的必要條件。

確認多點傳播網域和群組範圍設定已完成

確認要產生多播流量的多播網域和多播群組範圍設定已完成,如「多播設定總覽」所述。如有需要,請與網域的多點播送管理員聯絡。

設定專案

本頁面的程序要求您在多播管理員的專案中建立多播製作人資源。這個專案包含多點傳播網域和群組範圍資源。

將 gcloud CLI 設為使用多播管理員的專案。或者,您也可以在下列程序中,為每個指令使用 --project=MULTICAST_ADMIN_PROJECT 旗標。

    gcloud config set project MULTICAST_ADMIN_PROJECT

MULTICAST_ADMIN_PROJECT 替換為多播管理員專案的 ID。

啟用 API

如果尚未啟用,請啟用下列 API。

您必須具備 serviceusage.services.enable 權限,才能啟用 API。如果沒有這項權限,請要求 Identity and Access Management (IAM) 管理員授予您「Service Usage Admin」(服務用量管理員) (roles/serviceusage.serviceUsageAdmin) 角色。

  1. 如要建立多點傳播資源,請啟用 networkservices API:

        gcloud services enable networkservices.googleapis.com
    
  2. 如要建立 Network Connectivity Center 虛擬私有雲輪輻,請啟用 networkconnectivity API:

        gcloud services enable networkconnectivity.googleapis.com
    

必要的角色

如要取得設定多播製作人資源所需的權限,請要求管理員授予您下列 IAM 角色:

  • 如要建立及管理網路資源:多播管理員專案的 Compute 網路管理員 (compute.networkAdmin)
  • 如要建立及管理防火牆規則: 多點傳播管理員專案的 Compute 安全管理員 (compute.securityAdmin)
  • 如要建立 Network Connectivity Center 輪輻: 多點傳播管理員專案的輪輻管理員 (networkconnectivity.spokeAdmin)
  • 如要建立多點傳播資源:多點傳播管理員專案的「多點傳播管理員」(networkservices.multicastAdmin)

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

建立虛擬私有雲網路並新增至中樞

如果多播網域使用 Network Connectivity Center 星狀拓撲,且有一或多個獨立的多播供應商虛擬私有雲網路,則必須完成本節中的步驟。

如果多播網域使用單一 VPC 網路拓撲,或多播網域使用 Network Connectivity Center 星狀拓撲,且多播管理員網路也做為多播生產者網路,則可以略過這個步驟,直接進行啟用 VPC 網路以產生多播流量的步驟。

Create a VPC network

本節說明如何建立虛擬私有雲 (VPC) 網路,以產生多點播送流量。

如要進一步瞭解如何建立虛擬私有雲網路,請參閱「建立及管理虛擬私有雲網路」。

gcloud

  1. 使用 compute networks create 指令建立虛擬私有雲網路。

    gcloud compute networks create MULTICAST_PRODUCER_NETWORK --subnet-mode=custom
    

    MULTICAST_PRODUCER_NETWORK 替換為多播供應商虛擬私有雲網路的名稱。

  2. 使用 compute networks subnets create 指令,新增一或多個子網路來代管多點播送製作人。

    gcloud compute networks subnets create SUBNET \
       --network=MULTICAST_PRODUCER_NETWORK \
       --range=PRIMARY_RANGE \
       --region=REGION
    

    替換下列值:

    • SUBNET:子網路名稱
    • MULTICAST_PRODUCER_NETWORK:先前建立的多播供應商網路名稱
    • PRIMARY_RANGE:子網路的主要 IPv4 範圍,採用 CIDR 標記法。詳情請參閱「IPv4 子網路範圍」。
    • REGION:建立新子網路的 Google Cloud 區域。必須是支援多點傳播的區域,例如 us-east5

新增防火牆規則

本節說明如何在多播生產端虛擬私有雲網路中,為多播流量建立防火牆規則。

如要建立其他防火牆規則 (例如 SSH),請參閱「建立 VPC 防火牆規則」。

允許輸出多點傳播流量

本節說明如何建立防火牆規則,允許虛擬私有雲網路傳出多點播送流量。

所有虛擬私有雲網路都有預設的 IPv4 允許輸出規則,優先順序最低 (65535)。如果沒有優先順序較高的規則明確封鎖輸出流量,則不需要完成這個步驟。詳情請參閱「隱含規則」。

這個指令會預先填入範例防火牆規則名稱。請注意,專案中的防火牆規則名稱不得重複。

gcloud

如要建立防火牆規則,允許虛擬私有雲網路傳送多點播送輸出流量,請使用 compute firewall-rules create 指令

gcloud compute firewall-rules create allow-multicast-egress --direction=EGRESS \
   --priority=1000 \
   --network=MULTICAST_PRODUCER_NETWORK \
   --action=ALLOW \
   --rules=udp[:PORT[-PORT]] \
   --destination-ranges=MULTICAST_GROUP_IP_RANGES

替換下列值:

  • MULTICAST_PRODUCER_NETWORK:您先前建立的多播供應商網路名稱
  • PORT:防火牆規則適用的通訊埠清單。 Google Cloud 使用 udp 進行多點播送流量。您可以在通訊協定後方指定通訊埠或通訊埠範圍,防火牆規則會套用至透過特定通訊埠的流量。如未指定連接埠或連接埠範圍,系統會套用所有範圍的連線。

    舉例來說,指定 --rules=udp:1234 即可允許多點播送流量通過通訊埠 1234

    您也可以視需要使用 --rules=all 允許所有通訊協定和通訊埠。

  • MULTICAST_GROUP_IP_RANGES:多點傳播供應端傳送流量的多點傳播群組 IP 位址範圍。多點播送 IP 位址範圍必須是 D 類位址範圍,例如您可以使用 224.0.0.0/4 允許所有多點播送流量。

將虛擬私有雲網路新增至 Network Connectivity Center 中樞

本節說明如何將虛擬私有雲網路新增至多播管理員建立的 Network Connectivity Center 中樞。如要新增網路,請在「center」(中心) 群組中建立虛擬私有雲輪輻。

詳情請參閱「星狀拓撲」和「建立虛擬私有雲 Spoke」一文。

gcloud

如要將虛擬私有雲網路新增為中樞的中心輪輻,請使用 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_PRODUCER_NETWORK \
     --group="center" \
     --global \
     --include-export-ranges=INCLUDE_RANGES

替換下列值:

  • SPOKE_NAME:支點名稱
  • MULTICAST_ADMIN_PROJECT:多點傳播管理員專案的 ID
  • HUB_NAME:由多播管理員建立的 Network Connectivity Center 中樞名稱
  • MULTICAST_PRODUCER_NETWORK:您先前建立的多播供應商網路名稱

    或者,您也可以使用下列格式提供多播製作人網路的 URI:projects/MULTICAST_ADMIN_PROJECT/global/networks/MULTICAST_PRODUCER_NETWORK

  • INCLUDE_RANGES:以半形逗號分隔的 IP 位址範圍清單,這些範圍會匯出至中樞。

    根據預設,子網路會匯出所有子網路範圍。為避免與中樞的其他輪輻重疊,您可以指定要匯出的子網路範圍。如果您指定子網路範圍,請務必納入代管多點傳播製作工具的範圍,以及與其他輪輻通訊所需的任何其他範圍,例如單點傳播流量。

    Google Cloud 禁止跨 VPC 輪輻的子網路重疊,如「子網路路徑的唯一性」一文所述。如要進一步瞭解如何使用匯出篩選器避免重疊,請參閱「使用匯出篩選器的虛擬私有雲連線」。

啟用虛擬私有雲網路,產生多點播送流量

本節說明啟用虛擬私有雲網路中多播製作人的必要步驟,以便為特定網域和一或多個群組範圍傳送多播流量。

將多播供應商虛擬私有雲網路新增至網域

本節說明如何建立網路與網域間的組播生產者關聯,將組播生產者虛擬私有雲網路新增至網域。

請針對要代管多播製作人的每個區域完成下列步驟。

gcloud

如要將多點播送供應商虛擬私有雲網路新增至網域,請使用 network-services multicast-producer-associations create 指令

   gcloud network-services multicast-producer-associations create PRODUCER_ASSOCIATION_NAME \
      --multicast-domain-activation="projects/ADMIN_PROJECT/locations/ZONE/multicastDomainActivations/DOMAIN_ACTIVATION_NAME" \
      --network=projects/ADMIN_PROJECT/locations/global/networks/MULTICAST_PRODUCER_NETWORK \
      --location=ZONE

替換下列值:

  • PRODUCER_ASSOCIATION_NAME:多點傳播供應者關聯的名稱
  • ADMIN_PROJECT:多點傳播管理員專案的 ID
  • ZONE:管理員已啟用多點傳播網域的區域,您可在該區域中代管多點傳播製作人
  • DOMAIN_ACTIVATION_NAME:多點傳播管理員建立的網域啟用名稱
  • MULTICAST_PRODUCER_NETWORK:產生多點播送流量的虛擬私有雲網路。視網域的多點傳播拓撲而定,可能是多點傳播管理員網路或獨立的多點傳播供應商網路。

API

如要將多點播送生產者虛擬私有雲網路新增至網域,請使用 multicastProducerAssociations.create 方法

POST https://networkservices.googleapis.com/v1/projects/ADMIN_PROJECT/locations/ZONE/multicastProducerAssociations?multicastProducerAssociationId=PRODUCER_ASSOCIATION_NAME
{
  "multicastDomainActivation": "projects/ADMIN_PROJECT/locations/ZONE/multicastDomainActivations/DOMAIN_ACTIVATION_NAME",
  "network": "projects/ADMIN_PROJECT/locations/global/networks/MULTICAST_PRODUCER_NETWORK"
}

替換下列值:

  • PRODUCER_ASSOCIATION_NAME:多點傳播供應者關聯的名稱
  • ADMIN_PROJECT:多點傳播管理員專案的 ID
  • ZONE:管理員已啟用多點傳播網域,且您代管多點傳播製作人的區域。
  • DOMAIN_ACTIVATION_NAME:多點傳播管理員建立的網域啟用名稱
  • MULTICAST_PRODUCER_NETWORK:產生多點播送流量的虛擬私有雲網路。視網域的多點傳播拓撲而定,可能是多點傳播管理員網路或獨立的多點傳播供應商網路。

為群組範圍啟用多點傳播供應者虛擬私有雲網路

本節說明如何為群組範圍啟用多點播送製作人虛擬私有雲網路。

請針對要產生多播流量的每個多播群組範圍和區域,完成下列步驟。

gcloud

如要為群組範圍啟用多點播送製作人虛擬私有雲網路,請使用 network-services multicast-group-producer-activations create 指令

   gcloud network-services multicast-group-producer-activations create GROUP_PRODUCER_ACTIVATION_NAME \
      --multicast-producer-association="projects/ADMIN_PROJECT/locations/ZONE/multicastProducerAssociations/PRODUCER_ASSOCIATION_NAME" \
      --multicast-group-range-activation="projects/ADMIN_PROJECT/locations/ZONE/multicastGroupRangeActivations/GROUP_RANGE_ACTIVATION_NAME" \
      --location=ZONE

替換下列值:

  • GROUP_PRODUCER_ACTIVATION_NAME:多播群組生產者啟動的名稱
  • ADMIN_PROJECT:多播管理員的專案 ID
  • ZONE:用來啟用多播供應商網路的區域。可用區中也必須有對應的多點傳播供應者關聯和多點傳播群組範圍啟用作業。
  • PRODUCER_ASSOCIATION_NAME:先前建立的多點傳播供應者關聯名稱
  • GROUP_RANGE_ACTIVATION_NAME:多點傳播管理員建立的多點傳播群組範圍啟用作業名稱

API

如要為群組範圍啟用多播製作人虛擬私有雲網路,請使用 multicastGroupProducerActivations.create 方法

POST https://networkservices.googleapis.com/v1/projects/ADMIN_PROJECT/locations/ZONE/multicastGroupProducerActivations?multicastGroupProducerActivationId=GROUP_PRODUCER_ACTIVATION_NAME
{
  "multicastProducerAssociation": "projects/ADMIN_PROJECT/locations/ZONE/multicastProducerAssociations/PRODUCER_ASSOCIATION_NAME",
  "multicastGroupRangeActivation": "projects/ADMIN_PROJECT/locations/ZONE/multicastGroupRangeActivations/GROUP_RANGE_ACTIVATION_NAME"
}

替換下列值:

  • GROUP_PRODUCER_ACTIVATION_NAME:多播群組生產者啟動的名稱
  • ADMIN_PROJECT:多播管理員的專案 ID
  • ZONE:用來啟用多播供應商網路的區域。可用區中也必須有對應的多點傳播供應者關聯和多點傳播群組範圍啟用作業。
  • PRODUCER_ASSOCIATION_NAME:先前建立的多點傳播供應者關聯名稱
  • GROUP_RANGE_ACTIVATION_NAME:多點傳播管理員建立的多點傳播群組範圍啟用作業名稱

建立多點傳播製作人執行個體

如果尚未建立,請先建立一或多個 Compute Engine 執行個體,以執行產生多點播送流量的應用程式。請參閱以下資訊:

與多點傳播消費者執行個體不同,多點傳播生產者執行個體不需要設定 IGMP,且無須加入群組,即可將流量傳送至多點傳播群組。

後續步驟