创建 BGP 路由政策

本指南介绍了如何在 Cloud Router 路由器中创建 BGP 路由政策。

您可以使用以下任何一项为 Cloud Router 路由器创建 BGP 路由政策:

构建 BGP 路由政策

  1. 向 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
    
  2. 运行以下命令以添加 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 as1`。
    • ROUTE_POLICY_MATCH_EXPRESSION:用于匹配此路由政策的表达式
    • ROUTE_POLICY_ACTIONS_EXPRESSION:此路由政策的操作

    例如,以下命令会创建一个 BGP 政策,以针对未包含在 192.168.10.0/24 中且与 BGP 社区集 65000:165000:2 匹配的 BGP 路由,将 BGP 多出口判别器 (MED) 属性值设置为 12345

    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 路由政策

  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 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:您要上传的文件名
  3. 将 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:以英文逗号分隔的导入政策列表。如果传递空字符串,则系统会移除所有导入政策。

后续步骤