名前付きセットを管理する

このガイドでは、Cloud Router BGP ルートポリシーの名前付きセットに対して次の更新を行う方法について説明します。

  • 名前付きセットの一覧を取得する
  • 名前付きセットを削除する
  • 名前付きセットを更新する
  • 名前付きセット要素を追加する
  • 名前付きセットの要素を削除する

ルーターの名前付きセットを一覧表示する

list-named-sets コマンドを使用して、単一のルーターで定義された名前付きセットの名前とタイプを表示します。

gcloud compute routers list-named-sets ROUTER_NAME

ROUTER_NAME は、Cloud Router の名前に置き換えます。

名前付きセットを削除する

ルーターの BGP ルートポリシーで名前付きセットが参照されている場合、名前付きセットを削除することはできません。

gcloud compute routers remove-named-set ROUTER_NAME
    --set-name=SET_NAME

次のように置き換えます。

  • ROUTER_NAME: Cloud Router の名前
  • SET_NAME: 削除する名前付きセットの名前

ルーターの名前付きセットを更新する

既存の名前付きセットを更新する場合は、download-named-set コマンドを使用して、YAML または JSON 形式でルーターから名前付きセットをダウンロードすることをおすすめします。YAML ファイルまたは JSON ファイルをローカルで編集し、upload-named-set コマンドを使用して更新したファイルをルーターにアップロードします。upload-named-set コマンドは、既存の名前付きセットを上書きします。

ルーターからダウンロードするファイルには fingerprint フィールドが含まれています。Cloud Router はこのフィールドを使用して、既存の名前付きセットを照合し、競合する更新を防ぎます。

  1. 名前付きセットをダウンロードするには、download-named-set コマンドを実行します。

    gcloud compute routers download-named-set ROUTER_NAME
        --set-name=SET_NAME
        --file-name=FILE_NAME
        --file-format=FORMAT
    

    次のように置き換えます。

    • ROUTER_NAME は、Cloud Router の名前に置き換えます。
    • SET_NAME は、セットの名前に置き換えます。
    • FILE_NAME: 名前付きセットに使用するファイル名(パスとファイル名拡張子を含む)。
    • FORMAT: 名前付きセットの形式(JSON または YAML)。
  2. JSON または YAML 形式を使用して、任意のテキスト エディタでダウンロードした名前付きセットを変更します。

    次の例では、2 つの YAML ファイルを使用して、allowed-prefixesallowed-communities という名前のセットを更新します。

    allowed-prefixes.yaml:

    # Prefix set
    resource:
      elements:
      - expression: "'192.168.1.0/24'"
      - 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:300'"
      name: allowed-communities
      type: NAMED_SET_TYPE_COMMUNITY
    
  3. 名前付きセットをアップロードするには、upload-named-set コマンドを実行します。

    gcloud compute routers upload-named-set ROUTER_NAME
        --set-name=SET
        --file-name=NAME
        --file-format=FORMAT
    

    次のように置き換えます。

    • ROUTER_NAME は、Cloud Router の名前に置き換えます。
    • SET は、セットの名前に置き換えます。
    • NAME は、編集した YAML ファイルまたは JSON ファイルの場所とファイル名に置き換えます。
    • FORMAT: 名前付きセットの形式(JSON または YAML)。

名前付きセット要素を追加する

次のコマンドを実行します。

gcloud compute routers add-named-set-element ROUTER_NAME
    --set-name=SET_NAME
    --new-set-element=CEL_EXPRESSION

次のように置き換えます。

  • ROUTER_NAME: Cloud Router の名前
  • SET_NAME: 更新する名前付きセットの名前
  • CEL_EXPRESSION: セットに追加する要素。Common Expression Language(CEL)で表現されます。

名前付きセット要素を削除する

次のコマンドを実行します。

gcloud compute routers remove-named-set-element ROUTER_NAME
    --set-name=SET_NAME
    --set-element=CEL_EXPRESSION

次のように置き換えます。

  • ROUTER_NAME: Cloud Router の名前
  • SET_NAME: 更新する名前付きセットの名前
  • CEL_EXPRESSION: セットから削除する要素。Common Expression Language(CEL)で表現されます。

次のステップ