ピアグループポリシーの作成

「 VPC用ダイナミックルートサーバー 」は、一部の顧客を対象に、評価およびテストの目的で利用可能なベータ機能です。 アクセスは、許可リストに登録されたアカウントに限定されています。

ピアグループポリシーとは、動的ルートサーバーがピアグループのルートをどのように処理するかを規定するルールです。 ポリシーでは、動的ルートサーバーが学習したルートを他のピアグループに反映するか、VPCアドレスプレフィックスやカスタム静的ルートをピアにアドバタイズするか、あるいは学習したルートを指定されたネクストホップとともにVPCルーティングテーブルに追加するかを定義します。 ピアグループに対して複数のポリシータイプを作成することで、トポロジの要件に応じたルーティング動作を構築できます。

開始前に

ピアグループポリシーを作成する前に:

コンソールでのピアグループポリシーの作成

ピアグループポリシーを作成できるのは、 Router タイプのピアのみです。これは、ルート交換やルーティングの決定に参加するのは、これらのピアのみであるためです。

1つのピアグループには、各タイプのポリシーを1つだけ追加できます。 同じ種類の別のポリシーを追加するには、まず既存のポリシーを削除してください。

コンソールでピアグループポリシーを作成するには、次の手順に従ってください

  1. お使いのブラウザで、 IBM Cloud コンソールを開き、 アカウントにログインしてください。
  2. 「 ナビゲーションメニュー ナビゲーションメニューのアイコン 」を選択し、「 インフラ VPCアイコン 」>「 ネットワーク 」>「 動的ルートサーバー 」の順にクリックします。
  3. リストから、操作対象とする動的ルートサーバーを選択し、「 ピアグループ 」タブをクリックします。
  4. ピアグループの名前を選択してください。
  5. 「 Peer ポリシー 」セクションで、「 作成 」をクリックします。
  6. [ ポリシーの作成 ] パネルで、 my-peer-policy などのポリシー名を入力します。
  7. 以下の「 ポリシータイプ 」のオプションから1つを選択し、必要な情報を入力してください:
    • カスタムルート- ダイナミックルートサーバーによって管理されるルートを定義します。 BGP を通じてルートが学習されず、明示的に定義する必要がある場合は、このポリシーを使用してください。 これを使用して、ファイアウォールなどの特定のネクストホップのピアへトラフィックを誘導します。 [詳細情報] セクションの [カスタムルートの宛先] に、トラフィックをルーティングしたい宛先の CIDR を 1 つ以上入力してください。 複数の CIDR はコンマで区切ります。

    • VPC ルーティングテーブル- 選択したインバウンドまたはアウトバウンドの VPC ルーティングテーブルにルートを追加します。 このポリシーを使用して、学習済みルートまたはカスタムルート(通常はフェイルオーバーに対応した特定のネクストホップを経由する)を通じて、VPCのトラフィックを誘導します。 「詳細情報 」セクションに、以下の情報を入力してください:

      • ネクストホップ- VPCルーティングテーブルに追加されたルートのネクストホップデバイスとして使用されるメンバーを含むピアグループを指定します。 ルートに一致するトラフィックは、選択されたピアグループ内の利用可能なピアのいずれかに転送されます。
      • ルート削除の遅延- ピアの状態が正常でなくなった後、システムがルートを削除するまで待機する時間を指定します。
      • Ingress ルーティングテーブル- 設定されたピアグループのピアから学習したルートを受け取るルーティングテーブルを指定します。
      • 送信ルーティングテーブル- 設定されたピアグループのピアに対してルートをアドバタイズするために使用されるルーティングテーブルを指定します。
      • プレフィックスの除外- このポリシーによるルートの追加またはアドバタイズメントから除外される1つ以上のプレフィックスを指定します。 プレフィックス除外を使用すると、特定のネットワークが他のポリシー条件に一致する場合であっても、そのネットワークがVPCルーティングテーブルに追加されたり、ピアに伝播されたりすることを防ぐことができます。

      プレフィックスの除外については、ポリシーで参照されているピアグループに設定されている監視対象プレフィックスと一致する、またはそのサブネットであるプレフィックスのみを除外することができます。 たとえば、ポリシーで参照されているピアグループに、監視対象のプレフィックス「 10.0.0.0/8 」が含まれている場合、「 10.0.0.0/8 」、「 10.1.0.0/16 」、または「 10.1.1.0/24 」を除外することができます。これは、これらの各プレフィックスが監視対象のプレフィックスと一致するか、そのサブネットであるためです。 ただし、 172.16.0.0/16 は監視対象のプレフィックス範囲外であるため、除外することはできません。

    • 学習済みルート- あるピアグループから他のルーターのピアグループへと学習されたルートを表します。 このポリシーは、動的ルートサーバーが異なるルーティングドメイン間のルートリフレクターとして機能する場合に使用します。 「詳細情報 」セクションに、以下の情報を入力してください:

      • ピアグループ- ルートを学習する対象となるピアグループを指定します。
      • プレフィックスの除外- ルート再配布の対象から除外するプレフィックスを指定します。 除外プレフィックスに一致するルートは、ピアから学習されますが、このポリシーを通じて他のピアグループにはアドバタイズされません。 プレフィックス除外設定を使用して、ルートの伝播を制御し、特定のネットワークがルーティングドメイン間で共有されるのを防ぎます。
    • VPC アドレスプレフィックス- VPC のアドレスプレフィックスをルーターピアに通知します。 外部ルーターやオンプレミスデバイスが、VPC ワークロードへの到達方法を学習する必要がある場合は、このポリシーを使用してください。

  8. 設定したポリシールールを適用するには、 ポリシーの状態が 「オン」になっていることを確認してください。
  9. 保存 をクリックします。

CLI からピアグループポリシーを作成する

CLI からピアグループのポリシーを作成するには、以下の手順に従ってください

  1. CLI 環境をセットアップします。

  2. CLI 環境にログインしてください。 パスワードを入力すると、使用するアカウントとリージョンの入力を求めるプロンプトが表示されます。

    ibmcloud login --sso
    
  3. 次の機能フラグを有効にしてください:

    export IBMCLOUD_IS_FEATURE_DYNAMIC_ROUTE_SERVER=true
    
  4. 以下のコマンドを実行します。

    ibmcloud is dynamic-route-server-peer-group-policy-create DYNAMIC_ROUTE_SERVER --peer-group PEER_GROUP (--type custom_routes | learned_routes | vpc_address_prefixes | vpc_routing_tables) [--name NAME] [--state enabled | disabled] [--custom-routes CUSTOM_ROUTES_JSON | @CUSTOM_ROUTES_JSON_FILE] [--peer-groups PEER_GROUPS_JSON | @PEER_GROUPS_JSON_FILE] [--next-hops NEXT_HOP_JSON | @NEXT_HOP_JSON_FILE] [--routing-tables ROUTING_TABLES_JSON | @ROUTING_TABLES_JSON_FILE] [--excluded-prefixes EXCLUDED_PREFIXES_JSON | @EXCLUDED_PREFIXES_JSON_FILE] [--route-delete-delay ROUTE_DELETE_DELAY] [--output JSON] [-q, --quiet]
    

ここで、

DYNAMIC_ROUTE_SERVER
動的なルートサーバー識別子。
--peer-group
ピアグループの識別子。
--type
ポリシーの種類。 custom_routes、 learned_routes、 vpc_address_prefixes、または vpc_routing_tables のいずれか。
--name
ポリシーの名前。
--state
ポリシーの状態。 enabled または disabled のいずれか。 デフォルトはenabledです。
--custom-routes (JSON)
カスタムルートの宛先を定義するJSONペイロード。
@CUSTOM_ROUTES_JSON_FILE
カスタムルートの宛先に関するJSONペイロードを含むファイル。
--peer-groups (JSON)
ポリシーのピアグループを定義するJSONペイロード。
@PEER_GROUPS_JSON_FILE
ピアグループのJSONペイロードを含むファイル。
--next-hops (JSON)
ネクストホップの識別子を定義するJSON配列。 指定できるネクストホップは1つだけです。
@NEXT_HOP_JSON_FILE
ネクストホップのJSONペイロードを含むファイル。
--routing-tables (JSON)
ルーティングテーブルを定義するJSONペイロード。
@ROUTING_TABLES_JSON_FILE
ルーティングテーブルのJSONペイロードを含むファイル。
--excluded-prefixes (JSON)
このポリシーによって選択された、学習済みルートまたはVPCルーティングテーブルから除外するプレフィックスのリストを定義するJSONペイロード。 このオプションは、タイプが「 learned_routes 」または「 vpc_routing_tables 」のポリシーに対してのみ指定してください。
@EXCLUDED_PREFIXES_JSON_FILE
除外されるプレフィックスを記述したJSONペイロードを含むファイル。
--route-delete-delay
ルートがアドバタイズされなくなった際に、そのルートが削除されるまでの遅延時間(秒単位)。 値は 0 ~ 60 の範囲でなければなりません。 vpc_routing_tables タイプのポリシーに適用されます。
--output
JSON形式で出力します。
-q, --quiet
詳細な出力を抑制します。

コマンドの例

  • ピアグループポリシーを作成するには、次のコマンドを実行します

    ibmcloud is dynamic-route-server-peer-group-policy-create 0717-drs-12345678 --peer-group my-peer-group --type custom_routes --name my-peer-policy --state enabled --custom-routes '[{"destination":"10.20.0.0/16"}]' --output JSON
    
  • プレフィックスを除外する「 learned_routes 」タイプのピアグループポリシーを作成するには、次のコマンドを実行します

    ibmcloud is dynamic-route-server-peer-group-policy-create 0717-drs-12345678 --peer-group my-peer-group --type learned_routes --name my-learned-routes-policy --peer-groups '[{"id":"0717-pg-12345678"}]' --excluded-prefixes '[{"prefix":"10.20.1.0/24"}]' --output JSON
    

    プレフィックスの除外については、ポリシーで参照されているピアグループに設定されている監視対象プレフィックスと一致する、またはそのサブネットであるプレフィックスのみを除外することができます。 たとえば、ポリシーで参照されているピアグループに、監視対象のプレフィックス「 10.0.0.0/8 」が含まれている場合、「 10.0.0.0/8 」、「 10.1.0.0/16 」、または「 10.1.1.0/24 」を除外することができます。これは、これらの各プレフィックスが監視対象のプレフィックスと一致するか、そのサブネットであるためです。 ただし、 172.16.0.0/16 は監視対象のプレフィックス範囲外であるため、除外することはできません。

  • 「 vpc_routing_tables 」タイプのピアグループポリシーを作成するには、次のコマンドを実行します

    ibmcloud is dynamic-route-server-peer-group-policy-create 0717-drs-12345678 --peer-group my-peer-group --type vpc_routing_tables --name my-vpc-rt-policy --next-hops '[{"id":"0717-pg-12345678"}]' --routing-tables '[{"vpc_routing_table":{"id":"0717-rt-12345678"},"advertise":true}]' --route-delete-delay 5 --output JSON
    

API を使用したピアグループポリシーの作成

API を使用してピアグループポリシーを作成するには、次の手順に従ってください

  1. 必要な変数を設定して、 API環境を 構築してください。

  2. API コマンドで使用するその他の変数を保存してください。 以下に例を示します。

    • ResourceGroupId - get resource groups コマンドを使用してリソース・グループ ID を確認してから、変数に設定します。
    export ResourceGroupId=<your_resourcegroup_id>
    
  3. すべての変数の設定が完了したら、ピアグループのポリシーを作成します

    curl -X POST \
      "$vpc_api_endpoint/v1/dynamic_route_servers/DRS_ID/peer_groups/PEER_GROUP_ID/policies?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "learned-routes-policy",
        "type": "learned_routes",
        "state": "enabled",
        "excluded_prefixes": [
          {
            "prefix": "10.0.0.0/24"
          }
        ]
      }'
    

    プレフィックスの除外については、ポリシーで参照されているピアグループに設定されている監視対象プレフィックスと一致する、またはそのサブネットであるプレフィックスのみを除外することができます。 たとえば、ポリシーで参照されているピアグループに、監視対象のプレフィックス「 10.0.0.0/8 」が含まれている場合、「 10.0.0.0/8 」、「 10.1.0.0/16 」、または「 10.1.1.0/24 」を除外することができます。これは、これらの各プレフィックスが監視対象のプレフィックスと一致するか、そのサブネットであるためです。 ただし、 172.16.0.0/16 は監視対象のプレフィックス範囲外であるため、除外することはできません。