BGP ルートポリシーを作成する

このガイドでは、Cloud Router で BGP ルートポリシーを作成する方法について説明します。

Cloud Router の BGP ルートポリシーは、次のいずれかを使用して作成できます。

BGP ルートポリシーを作成する

  1. Cloud Router にルートポリシーを追加します。

    gcloud beta compute routers add-route-policy ROUTER_NAME \
        --policy-name=BGP_ROUTE_POLICY_NAME \
        --policy-type=ROUTE_POLICY_TYPE \
        --region=REGION
    

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

    • ROUTER_NAME: Cloud Router の名前
    • BGP_ROUTE_POLICY_NAME: BGP ルートポリシーの名前
    • ROUTE_POLICY_TYPE: 追加するポリシーのタイプ。インバウンド ルートの場合は IMPORT、アウトバウンド ルートの場合は EXPORT
    • REGION: Cloud Router が配置されているリージョン

    たとえば、次のコマンドは、インバウンド ルートのルートポリシーを Cloud Router に追加します。

    gcloud beta compute routers add-route-policy ROUTER_NAME \
        --policy-name=BGP_ROUTE_POLICY_NAME \
        --policy-type=IMPORT \
        --region=REGION
    
  2. 次のコマンドを実行して、BGP ルートポリシーの条件を追加します。

    gcloud beta compute routers add-route-policy-term ROUTER_NAME \
        --policy-name=BGP_ROUTE_POLICY_NAME \
        --region=REGION \
        --priority=ROUTE_POLICY_PRIORITY \
        --match=ROUTE_POLICY_MATCH_EXPRESSION \
        --actions=ROUTE_POLICY_ACTIONS_EXPRESSION
    

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

    • ROUTE_POLICY_PRIORITY: the priority for this policy, such as1` に変更します。
    • ROUTE_POLICY_MATCH_EXPRESSION: このルートポリシーに一致する式
    • ROUTE_POLICY_ACTIONS_EXPRESSION: このルートポリシーのアクション

    たとえば、次のコマンドは、192.168.10.0/24 に含まれず、BGP コミュニティ 65000:165000:2 のセットと一致する BGP ルートの BGP マルチ エグジット識別子(MED)属性値を 12345 に設定する BGP ポリシーを作成します。

    gcloud beta compute routers add-route-policy-term ROUTER_NAME \
        --policy-name=BGP_ROUTE_POLICY_NAME \
        --region=REGION \
        --priority=ROUTE_POLICY_PRIORITY \
        --match='destination != "192.168.10.0/24" && communities.matchesEvery(["65000:1", "65000:2"])' \
        --actions='med.set(12345)'
    

    ROUTE_POLICY_PRIORITY は、このポリシーに必要な優先度(1 など)に置き換えます。

BGP ルートポリシーをアップロードする

  1. 任意のテキスト エディタで BGP ルートポリシーを作成します。BGP ルートポリシーは、JSON または YAML 形式で作成できます。次の例では、YAML ファイルを使用しています。

    name: BGP_ROUTE_POLICY_NAME
    type: ROUTE_POLICY_TYPE 
    terms:
    - priority: ROUTE_POLICY_PRIORITY
      match:
        expression: >
          ROUTE_POLICY_MATCH_EXPRESSION
      actions:
      - expression: ROUTE_POLICY_ACTIONS_EXPRESSION
    

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

    • BGP_ROUTE_POLICY_NAME: BGP ルートポリシーの名前。
    • ROUTE_POLICY_TYPE: 作成する BGP ルートポリシーのタイプ。タイプには、次のいずれかの値を指定します。

      • ROUTE_POLICY_TYPE_IMPORT: インバウンド ルートの BGP ルートポリシー。
      • ROUTE_POLICY_TYPE_EXPORT: アウトバウンド ルートの BGP ルートポリシー。
    • ROUTE_POLICY_PRIORITY: このポリシーの優先度(1 など)。

    • ROUTE_POLICY_MATCH_EXPRESSION: このルートポリシーに一致する式

    • ROUTE_POLICY_ACTIONS_EXPRESSION: このルートポリシーのアクション

    たとえば、次の YAML ファイル コマンドは、192.168.10.0/24 に含まれず、BGP コミュニティ 65000:165000:2 のセットと一致する BGP ルートの BGP マルチ エグジット識別子(MED)属性値を 12345 に設定するインバウンド ルートの BGP ポリシーを作成します。

    # Set the MED value for BGP routes that aren't 192.168.10.0/24 and
    # communities that include (65000:1, 65000:2)
    name: BGP_ROUTE_POLICY_NAME
    type: ROUTE_POLICY_TYPE_IMPORT
    terms:
    - priority: 1
      match:
        expression: >
          destination != '192.168.10.0/24' && communities.matchesEvery(['65000:1', '65000:2'])
      actions:
      - expression: med.set(12345)
    
  2. BGP ルートポリシーをアップロードします。

    gcloud beta compute routers upload-route-policy ROUTER_NAME \
        --region=REGION \
        --policy-name=BGP_ROUTE_POLICY_NAME \
        --file-name=FILE_NAME \
        --file-format=yaml
    

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

    • ROUTER_NAME: Cloud Router の名前
    • REGION: Cloud Router が配置されているリージョン
    • FILENAME: アップロードするファイル名
  3. BGP ルートポリシーを BGP ピアに適用します。

    gcloud beta compute routers update-bgp-peer ROUTER_NAME \
        --region=REGION \
        --peer-name=PEER_NAME \
        --import-policies='IMPORT_POLICIES'
    

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

    • PEER_NAME: BGP ルートポリシーを適用する BGP ピアの名前。
    • IMPORT_POLICIES: インポート ポリシーのカンマ区切りリスト。空の文字列を渡すと、すべてのインポート ポリシーが削除されます。

次のステップ