BGP ルートポリシーを作成する
このガイドでは、Cloud Router で BGP ルートポリシーを作成する方法について説明します。
Cloud Router の BGP ルートポリシーは、次のいずれかを使用して作成できます。
- 任意のテキスト エディタを使用して BGP ルートポリシーを作成し、gcloud CLI を使用して BGP ルートポリシーをアップロードします。
BGP ルートポリシーを作成する
Cloud Router にルートポリシーを追加します。
gcloud 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 compute routers add-route-policy ROUTER_NAME \ --policy-name=BGP_ROUTE_POLICY_NAME \ --policy-type=IMPORT \ --region=REGION次のコマンドを実行して、BGP ルートポリシーの条件を追加します。
gcloud 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:1と65000:2のセットと一致する BGP ルートの BGP Multi-Exit Discriminator(MED)属性値を12345に設定する BGP ポリシーを作成します。gcloud 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 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 compute routers update-bgp-peer ROUTER_NAME \ --region=REGION \ --peer-name=PEER_NAME \ --import-policies='IMPORT_POLICIES'次のように置き換えます。
PEER_NAME: BGP ルートポリシーを適用する BGP ピアの名前。IMPORT_POLICIES: インポート ポリシーのカンマ区切りリスト。空の文字列を渡すと、すべてのインポート ポリシーが削除されます。