名前付きセットを作成する

このガイドでは、Cloud Router で名前付きセットを作成する方法について説明します。

このページの例では、プレフィックスセットとコミュニティ セットという 2 種類の名前付きセットを作成します。

プレフィックスセットの名前は allowed-prefixes で、次の項目が含まれています。

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

コミュニティ セットの名前は allowed-communities で、次の項目が含まれています。

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

Cloud Router の名前付きセットは、次の 2 つの方法で作成できます。

名前付きセットを作成する

名前付きセットの名前は、ルーター内で一意である必要があります。このセクションでは、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()

範囲の末尾が入力プレフィックスのアドレス ファミリーあたりの最大値(/32 または /128)に設定され、範囲の先頭が入力プレフィックスの長さ + 1 に設定された、 p のコピーであるプレフィックス範囲オブジェクト。

p.orLonger()

範囲の末尾が入力プレフィックスのアドレス ファミリーあたりの最大値(/32 または /128)に設定された、 p のコピーであるプレフィックス範囲オブジェクト。

p.lengthRange(20, 30)

範囲の開始が /20、終了が /30 に設定された、 p のコピーであるプレフィックス範囲オブジェクト。

p.upTo(30)

範囲の末尾が入力プレフィックスの /30 に設定された、 p のコピーであるプレフィックス範囲オブジェクト。

コミュニティ セットの要素

コミュニティ セットの要素は、人が読める A:B 形式のコミュニティ文字列である必要があります。

次の表に、コミュニティ セットの要素を示します。

説明

'A:B'

コミュニティ リテラル。

次のステップ