建立 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 as
1`。ROUTE_POLICY_MATCH_EXPRESSION
:這個路徑政策的配對運算式ROUTE_POLICY_ACTIONS_EXPRESSION
:此路由政策的動作
舉例來說,下列指令會建立 BGP 政策,針對未包含在
192.168.10.0/24
中且符合 BGP 社群65000:1
和65000:2
集合的 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 != "192.168.10.0/24" && communities.matchesEvery(["65000:1", "65000:2"])' \ --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 政策,針對未包含在
192.168.10.0/24
中且符合 BGP 社群集合65000:1
和65000:2
的 BGP 路徑,將 BGP 多個退出判別器 (MED) 屬性值設為12345
。# 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
:以逗號分隔的匯入政策清單。傳遞空字串會移除所有匯入政策。