建立 BGP 路由政策
本指南說明如何在 Cloud Router 中建立 BGP 路由政策。
您可以使用下列任一方式,為 Cloud Router 建立 BGP 路由政策:
- 使用 Google Cloud CLI 建立 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:這項政策的優先順序,例如1。ROUTE_POLICY_MATCH_EXPRESSION:這個路由政策要比對的運算式ROUTE_POLICY_ACTIONS_EXPRESSION:這項路徑政策的動作
舉例來說,下列指令會建立 BGP 政策,將名為
allowed-prefixes的集合中包含的 BGP 路由,其 BGP 多重出口鑑別器 (MED) 屬性值設為12345。gcloud compute routers add-route-policy-term ROUTER_NAME \ --policy-name=BGP_ROUTE_POLICY_NAME \ --region=REGION \ --priority=ROUTE_POLICY_PRIORITY \ --match='destination.inAnyRange(prefixSets("allowed-prefixes"))' \ --actions='med.set(12345)'將
ROUTE_POLICY_PRIORITY替換成您要為這項政策設定的優先順序,例如1。
上傳 BGP 路由政策
在偏好的文字編輯器中建立 BGP 路由政策。您可以使用 JSON 或 YAML 格式建立 BGP 路由政策。以下範例使用 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 檔案指令會為學到的路由建立 BGP 政策,並將 BGP 多重出口鑑別器 (MED) 屬性值設為
12345,適用於未納入192.168.10.0/24且符合 BGP 社群集65000:1和65000:2的 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:以半形逗號分隔的匯入政策清單。傳遞空字串會移除所有匯入政策。