建立具名集合

本指南說明如何在 Cloud Router 中建立具名集合。

本頁的範例會建立兩組不同類型的具名集合:前置字元集合和社群集合。

前置字串集名為 allowed-prefixes,包含下列項目:

  • '192.168.0.0/16'
  • 'fd00::/8'
  • prefix('10.0.0.0/20').orLonger()

社群集名稱為「allowed-communities」,包含下列項目:

  • '64500:100'
  • '64500:200'

您可以透過兩種方式為 Cloud Router 建立具名集合:

建構具名集合

具名集合的名稱在路由器中不得重複。本節將使用 gcloud CLI 建構具名集合。

建立前置字串集

如要建構前置字元集,請執行下列步驟:

  1. 如要建立名為 allowed-prefixes 的空白前置字元集,請執行下列指令:
    gcloud compute routers add-named-set ROUTER_NAME
        --set-name=allowed-prefixes
        --set-type=prefix
    
    ROUTER_NAME 替換為 Cloud Router 的名稱。
  2. 如要將每個元素新增至名為 allowed-prefixes 的集合,請針對每個元素執行 add-named-set-element 指令:

    gcloud compute routers add-named-set-element ROUTER_NAME
        --set-name=allowed-prefixes
        --new-set-element="'192.168.0.0/16'"

    gcloud compute routers add-named-set-element ROUTER_NAME --set-name=allowed-prefixes --new-set-element="'fd00::/8'"

    gcloud compute routers add-named-set-element ROUTER_NAME --set-name=allowed-prefixes --new-set-element="prefix('10.0.0.0/20').orLonger()"

建立社群集

如要建立社群集,請按照下列步驟操作:

  1. 如要建立名為 allowed-communities 的空白社群集,請執行下列指令:
    gcloud compute routers add-named-set ROUTER_NAME
        --set-name=allowed-communities
        --set-type=community
    
  2. 如要將每個元素新增至名為 allowed-communities 的集合,請針對每個元素執行 add-named-set-element 指令:

    gcloud compute routers add-named-set-element ROUTER_NAME
        --set-name=allowed-communities
        --new-set-element="'64500:100'"

    gcloud compute routers add-named-set-element ROUTER_NAME --set-name=allowed-communities --new-set-element="'64500:200'"

上傳具名集合

建立 JSON 或 YAML 檔案時,請使用下列其中一種具名集合類型:

  • NAMED_SET_TYPE_COMMUNITY
  • NAMED_SET_TYPE_PREFIX

upload-named-set 指令會覆寫任何名稱相同的具名集合。

  1. 如要建立名為 allowed-prefixesallowed-communities 的具名集合,請在偏好的文字編輯器中建立具名集合。您可以使用 YAML 或 JSON 格式建立這些檔案。

    allowed-prefixes.yaml:

    # Prefix set
    resource:
      elements:
      - expression: "'192.168.0.0/16'"
      - expression: "'fd00::/8'"
      - expression: "prefix('10.0.0.0/20').orLonger()"
      name: allowed-prefixes
      type: NAMED_SET_TYPE_PREFIX
    

    allowed-communities.yaml:

    # Community set
    resource:
      elements:
      - expression: "'64500:100'"
      - expression: "'64500:200'"
      name: allowed-communities
      type: NAMED_SET_TYPE_COMMUNITY
    
  2. 如要上傳具名集合,請執行下列指令:

    gcloud compute routers upload-named-set ROUTER_NAME
        --set-name=allowed-prefixes
        --file-name=allowed-prefixes.yaml
        --file-format=json
    

    gcloud compute routers upload-named-set ROUTER_NAME
        --set-name=allowed-communities
        --file-name=allowed-communities.json
        --file-format=json
    

    ROUTER_NAME 替換為 Cloud Router 的名稱。

前置字元集元素

前置字串集元素必須是前置字串常值 (字串) 或前置字串範圍物件。這些是為在路徑政策中使用而定義的相同前置字元和前置字元範圍。

下表說明前置字元集中的每個元素。

運算式 說明

'192.168.0.0/24'

前置字串常值。

prefix('192.168.0.0/24')

前置字串比對物件。

p.longer()

前置字串範圍物件,是 p 的副本,範圍結尾設為輸入前置字串的每個位址系列上限 (/32 或 /128),範圍開頭則設為輸入前置字串的長度加一。

p.orLonger()

前置碼範圍物件,是 p 的副本,範圍結尾設為輸入前置碼的每個位址系列上限 (/32 或 /128)。

p.lengthRange(20, 30)

前置字元範圍物件,是 p 的副本,範圍開頭設為 /20,結尾設為 /30。

p.upTo(30)

前置字串範圍物件,是 p 的副本,範圍結尾設為輸入前置字串的 /30。

社群設定元素

社群集中的元素必須是人類可讀格式的社群字串A:B

下表說明社群組合的元素。

運算式 說明

'A:B'

社群字面值。

後續步驟