建立多點傳播網域

本頁說明建立多點傳播網域的必要步驟。

如要瞭解多播設定程序的總覽,請參閱「多播設定總覽」。

事前準備

建立多播網域前,請參閱下列各節。

建立或找出虛擬私有雲網路

如果還沒有,請建立虛擬私有雲 (VPC) 網路,做為多播管理員網路。如要進一步瞭解如何建立虛擬私有雲網路,請參閱「建立及管理虛擬私有雲網路」。

如果多播管理員網路也會代管多播製作人或消費者 (例如使用單一 VPC 網路拓撲時),請確保網路具有適當的防火牆規則,允許傳輸多播流量。請參閱以下資訊:

設定專案

將 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 中樞和輪輻: 專案的 Hub 與 Spoke 管理員 (networkconnectivity.hubAdmin)
  • 如要建立多點傳播資源:專案的「多點傳播管理員」角色 (networkservices.multicastAdmin)

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

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

設定 Network Connectivity Center

如果您要建立使用 Network Connectivity Center 星狀拓撲的多播網域,請按照本節步驟設定中樞。

如果您要建立使用單一虛擬私有雲網路拓撲的多播網域,可以略過本節,直接前往「建立多播網域」。

本節說明如何使用預設星狀拓撲設定 Network Connectivity Center 中樞,以啟用下列功能:

  • 您可以將管理員虛擬私有雲網路新增至中樞,做為中心輪輻。
  • 如果有多播供應商虛擬私有雲網路,該網路可以加入中樞,成為中心輪輻。
  • 多播消費者 VPC 網路可以加入中樞,成為邊緣輪輻。

詳情請參閱 Network Connectivity Center 說明文件中的「星狀拓撲」和「設定中樞」。

gcloud

如要設定 Network Connectivity Center,請按照下列步驟操作:

  1. 如要建立中樞,請使用 network-connectivity hubs create 指令

      gcloud network-connectivity hubs create HUB_NAME \
        --policy-mode=PRESET \
        --preset-topology=STAR
    

    HUB_NAME 替換為中樞的名稱。

  2. 如要將虛擬私有雲網路新增為中樞輪輻,請使用 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:支點名稱
    • MULTICAST_ADMIN_PROJECT:多點傳播管理員專案的 ID
    • HUB_NAME:您先前建立的 Network Connectivity Center 中樞名稱
    • MULTICAST_ADMIN_NETWORK:先前建立的多播管理員網路名稱

      或者,您也可以使用下列格式提供多點播送管理員網路的 URI: projects/MULTICAST_ADMIN_PROJECT/global/networks/MULTICAST_ADMIN_NETWORK

  3. 如要允許多播消費者虛擬私有雲網路加入中樞,請按照下列步驟操作。或者,您也可以繼續設定多播,並在稍後完成這些步驟,詳情請參閱「控管多播網域的存取權」。

    1. 按照 Network Connectivity Center 文件中「授予存取權」一節的步驟,授予其他專案中的多播消費者網路管理員權限,讓他們向中樞建議虛擬私有雲輪輻。

    2. 請多播消費者網路管理員按照「啟用虛擬私有雲網路以取用多播流量」程序操作時,將其虛擬私有雲網路新增為您建立的中樞的輪輻。

    3. 視需要查看提議的 VPC 支點,確認是否有支點提案。

    4. 收到 Spoke 提案後,請按照步驟接受 VPC Spoke

建立多點傳播網域

本節說明如何建立多播網域。

建立網域群組

本節說明如何建立多點傳播網域群組。繼續操作前,請先詳閱下列事項:

  • 如果您打算建立備援網域,建議您建立網域群組,以提高網域之間的可用性。

  • 網域群組會明確將兩個相關網域歸為一組。請勿為單一網域或超過兩個網域建立網域群組。

  • 建立網域群組是選用設定。如果不需要網域群組,可以略過這個步驟。不過,您無法在之後將現有網域新增至網域群組。

gcloud

如要建立網域群組,請使用 network-services multicast-domain-groups create 指令

gcloud network-services multicast-domain-groups create DOMAIN_GROUP_NAME \
   --location=global

DOMAIN_GROUP_NAME 替換為網域群組的名稱。

API

如要建立網域群組,請使用 multicastDomainGroups.create 方法

POST https://networkservices.googleapis.com/v1/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_1DOMAIN_2

   gcloud 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:多點傳播管理員專案的 ID
  • MULTICAST_ADMIN_NETWORK:多點傳播管理員的虛擬私有雲網路。如果您使用 Network Connectivity Center 拓撲,這個網路也必須是中樞的一部分,做為中心輪輻,否則網域建立作業會失敗。
  • TOPOLOGY:您要為多播設定的拓撲。指定下列其中一項:
    • SAME_VPC:單一虛擬私有雲網路拓撲。
    • NCC:Network Connectivity Center 星狀拓撲。
  • HUB_NAME:如果您要設定 Network Connectivity Center 星狀拓撲,請指定中樞的名稱。
  • DOMAIN_GROUP_NAME:如果您已建立網域群組,請輸入網域群組名稱。

API

如要建立網域,請使用 multicastDomains.create 方法

如要使用網域群組,建立網域時必須指定網域群組。您之後無法將網域新增至網域群組。 如要建立屬於網域群組的網域,您必須發出兩次下列 API 要求。 舉例來說,請先發出下列要求來建立 DOMAIN_1,然後再次發出要求來建立 DOMAIN_2

POST https://networkservices.googleapis.com/v1/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:多點傳播管理員專案的 ID
  • MULTICAST_ADMIN_NETWORK:多點傳播管理員的虛擬私有雲網路。如果您使用 Network Connectivity Center 拓撲,這個網路也必須是中樞的一部分,做為中心輪輻,否則網域建立作業會失敗。
  • TOPOLOGY:您要為多播設定的拓撲。指定下列其中一項:
    • SAME_VPC:單一虛擬私有雲網路拓撲。
    • NCC:Network Connectivity Center 星狀拓撲。
  • HUB_NAME:如果您要設定 Network Connectivity Center 星狀拓撲,請使用 nccHub 欄位指定中樞名稱。
  • DOMAIN_GROUP_NAME:如果您已建立網域群組,請使用 multicastDomainGroup 欄位輸入網域群組名稱。

啟用網域

在多點傳播生產者或消費者需要傳送或接收多點傳播流量的每個區域中,啟用網域。在區域中啟用網域時,Google Cloud 會為該區域中的網域佈建多點傳播基礎架構。

如果未在特定區域中啟用網域,就無法在該區域傳送或接收多點傳播流量。

gcloud

如要啟用網域,請使用 network-services multicast-domain-activations create 指令

下列指令大約需要 10 到 30 分鐘才能完成。

   gcloud network-services multicast-domain-activations create DOMAIN_ACTIVATION_NAME \
      --multicast-domain="projects/MULTICAST_ADMIN_PROJECT/locations/global/multicastDomains/DOMAIN_NAME" \
      --location=ZONE \
      [--disable-placement-policy] \
      [--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:多點傳播管理員專案的 ID
  • DOMAIN_NAME:要啟用的網域名稱
  • ZONE:要啟用網域的可用區
  • --disable-placement-policy:如果您要啟用的網域屬於網域群組,可以選擇加入這個旗標,停用刊登位置政策的建立作業。否則,系統會自動建立位置政策,並視需要 Google Cloud套用至新的或現有的多播消費者
  • 根據這個區域中多點播送流量的需求,指定下列參數。 Google Cloud 會使用這些參數判斷多點播送基礎架構的規模。

    指定這些參數前,請參閱下列內容:

    • 請參閱多播總覽,瞭解多播流量的相關限制
    • 如果您未提供這些標記, Google Cloud會產生可用於測試的最低設定。
    • 如要更新這些旗標的設定,請參閱「更新多點傳播網域參數」。
    • 這些標記為選用項目,但如果包含任何標記,--aggr-egress-pps 就會變成必填標記。

    如要進一步瞭解各個標記,請參閱下列文章:

    • AGGR_EGRESS_PPS:指定區域中網域內所有多點傳送群組的每秒輸出封包數 (pps) 總和。輸出是指從多點傳播基礎架構分配給多點傳播消費者的封包。

      您可以輸入介於 0 至 500000000 (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/v1/projects/MULTICAST_ADMIN_PROJECT/locations/ZONE/multicastDomainActivations?multicastDomainActivationId=DOMAIN_ACTIVATION_NAME

{
  "multicastDomain": "projects/MULTICAST_ADMIN_PROJECT/locations/global/multicastDomains/DOMAIN_NAME",
  "disablePlacementPolicy": "PLACEMENT_POLICY_DISABLED",
  "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:多點傳播管理員專案的 ID
  • DOMAIN_NAME:要啟用的網域名稱
  • ZONE:要啟用網域的可用區
  • PLACEMENT_POLICY_DISABLED:如果您要啟用屬於網域群組的網域,可以選擇加入這個欄位並設為 true,停用刊登位置政策的建立作業。否則, Google Cloud 會自動建立位置政策,並視需要套用至新的或現有的多播消費者
  • 根據這個區域中多點播送流量的需求,為 trafficSpec 物件指定值。 Google Cloud 會使用這些參數判斷多點播送基礎架構的規模。

    指定這些參數前,請參閱下列內容:

    • 請參閱多播總覽,瞭解多播流量的相關限制
    • 如果要求主體中未包含 trafficSpec 物件, Google Cloud會產生可用於測試的最低設定。
    • 如要更新 trafficSpec 設定,請參閱「更新多點傳播網域參數」。
    • trafficSpec 中的欄位為選填,但如果加入任何欄位,aggrEgressPps 就會變成必填欄位。如果 trafficSpec 物件包含部分欄位,則必須加入 aggrEgressPps

    如要進一步瞭解每個欄位,請參閱下列文章:

    • AGGR_EGRESS_PPS:指定區域中網域內所有多點傳送群組的每秒輸出封包數 (pps) 總和。輸出是指從多點傳播基礎架構分配給多點傳播消費者的封包。

      您可以輸入介於 0 至 500000000 (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 之間的值。

後續步驟