建立 BGP 路由政策

本指南說明如何在 Cloud Router 中建立 BGP 路由政策。

您可以使用下列任一方式,為 Cloud Router 建立 BGP 路由政策:

建立 BGP 路由政策

  1. 在 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
    
  2. 執行下列指令,新增 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:此路由政策的動作

    舉例來說,下列指令會建立 BGP 政策,針對未包含在 192.168.10.0/24 中且符合 BGP 社群 65000:165000: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 路由政策

  1. 在您偏好的文字編輯器中建立 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:165000: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)
    
  2. 上傳 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:您要上傳的檔案名稱
  3. 將 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:以逗號分隔的匯入政策清單。傳遞空字串會移除所有匯入政策。

後續步驟