BGP ルートポリシーを作成する
このガイドでは、Cloud Router で BGP ルートポリシーを作成する方法について説明します。
Cloud Router の BGP ルートポリシーは、次のいずれかを使用して作成できます。
- 任意のテキスト エディタを使用して BGP ルートポリシーを作成し、gcloud CLI を使用して BGP ルートポリシーをアップロードします。
BGP ルートポリシーを作成する
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
次のコマンドを実行して、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 as
1`ROUTE_POLICY_MATCH_EXPRESSION
: このルートポリシーに一致する式ROUTE_POLICY_ACTIONS_EXPRESSION
: このルートポリシーのアクション
たとえば、次のコマンドは、
192.168.10.0/24
に含まれず、BGP コミュニティ65000:1
と65000:2
のセットと一致する BGP ルートの BGP Multi-Exit Discriminator(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 ルートポリシーをアップロードする
任意のテキスト エディタで 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:1
と65000:2
のセットと一致する BGP ルートの BGP Multi-Exit Discriminator(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)
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
: アップロードするファイル名
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
: インポート ポリシーのカンマ区切りリスト。空の文字列を渡すと、すべてのインポート ポリシーが削除されます。