创建 BGP 路由政策
本指南介绍了如何在 Cloud Router 路由器中创建 BGP 路由政策。
您可以使用以下任何一项为 Cloud Router 路由器创建 BGP 路由政策:
- 使用您偏好的文本编辑器创建 BGP 路由政策,然后使用 gcloud CLI 上传 BGP 路由政策
构建 BGP 路由政策
向 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
运行以下命令以添加 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 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 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 路由政策
在您的偏好的文本编辑器中创建 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 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
:您要上传的文件名
将 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
:以英文逗号分隔的导入政策列表。如果传递空字符串,则系统会移除所有导入政策。