提高 BGP 策略中 AS 路径查找的性能
SUMMARY
不带正则表达式的 BGP 策略中的 AS 路径查找概述
使用 BGP AS 路径和路由策略匹配条件时,您可以将 BGP 策略配置为检查 AS 路径中的自治系统 (AS) 匹配,而无需使用正则表达式。BGP 策略将 AS 与 AS 列表或 AS 列表组进行比较,如果找到匹配项,则返回 true。您可以配置 BGP 策略以检查匹配的源、邻居或中转 AS。与使用正则表达式相比,此功能提供了一种更快的替代方法来匹配源、中转和对等 AS 编号。
在 BGP 策略中不使用正则表达式的 AS 路径的优势:
- 优化了对源、邻居、中转 AS 的查找,提高了性能。
- 在速度方面提供更快的查找。
支持以下操作来匹配 AS 路径中的 AS:
-
匹配 AS 路径中的始发 AS — 比较发起路由的 AS。评估 AS 路径上最右侧的 AS 编号是否属于
as-list
层次结构级别的配置语句[edit policy-options policy-statement policy-name from]
中as-path-origins
指定的或as-list-group
。如果路由已聚合,并且始发 AS 的位置包含 AS 集,as-path-origins
则如果 AS 集中包含的任何 AS 属于as-list
配置语句中as-path-origins
指定的或as-list-group
,则操作员的计算结果为 true。 -
匹配 AS 路径中的邻接方 AS — 比较 AS 路径中的邻接方 AS。评估 AS 路径上的第一个 AS 编号是否与层次结构级别的
[edit policy-options policy-statement policy-name from]
配置语句中as-path-neighbors
指定的或as-list-group
匹配as-list
。如果相邻的 AS 位置恰好是 AS 集,as-path-neighbors
那么当 AS 集中包含的任何 AS 属于配置as-list
语句中as-path-neighbors
指定的或as-list-group
时,操作员的计算结果为 true。 -
匹配 AS 路径中的中转 AS — 比较 AS 路径中的任何 AS。评估任何 AS 何时属于
as-list
as-list-group
层次结构级别的配置语句[edit policy-options policy-statement policy-name from]
中as-path-transit
指定。对于 AS 集,as 路径传输运算符会比较 AS 集中的所有 AS。
在不使用正则表达式的情况下配置 AS 路径查找
您可以通过为源、邻接方和中转 AS 定义 AS 列表或 AS 列表组来配置 AS 路径查找,并在不使用正则表达式的情况下过滤路由。
下表显示了基于正则表达式的通用匹配配置以及执行时间更快的等效匹配。
匹配类型 | 基于正则表达式的通用匹配 | 等效匹配,执行时间更快 |
---|---|---|
同辈 | 将策略选项设置为路径对等匹配“^101.*” | 设置策略选项作为列表对等匹配成员 101 |
通过 | 将策略选项设置为路径传输匹配“.*61453.*10001.*40007$” | 将策略选项设置为列表传输匹配成员 61453 |
起源 | 将策略选项设置为路径源匹配“.*54367$” | 将策略选项设置为列表原点匹配成员 54367 |
以下示例配置显示了如何为源、邻居和中转 AS 定义 AS 列表 (as-list as-list-name
),以及如何在不使用正则表达式的情况下使用策略过滤路由:
步骤 1:定义用于匹配源、邻居和中转 AS 的 AS 列表,并将其应用为过滤器以使用策略过滤路由。
set policy-options as-list origin-match members 54367 set policy-options as-list neighbor-match members 101 set policy-options as-list transit-match members 61453 set policy-options as-list transit-match members 10001
您还可以为匹配源、邻居和中转 AS 定义 AS 列表组 (as-list-group group-name
),以使用策略过滤路由。以下是定义 AS 列表组以匹配源 AS 的示例配置,以使用策略过滤路由:
set policy-options as-list-group origin_group as-list origin-match-1 members 3-4 set policy-options as-list-group origin_group as-list origin-match-2 members 6-9 set policy-options policy-statement neighbor-accept term 1 from as-path-origins as-list-group origin_group set policy-options policy-statement neighbor-accept term 1 then accept set policy-options policy-statement neighbor-accept term 2 then reject
匹配源、邻居和传输 AS 的 AS 列表组可以是 AS 成员(例如 101)或一系列 AS 成员(例如 6-9)。在这种情况下,将匹配源自 6、7、8、9 的所有路由。
如果使用一系列 AS 成员(从开始到完成),则 as 开始成员值应小于或等于完成成员值。AS 成员或 AS 成员范围(从开始到结束)不能为 0。
或as-list
as-list-group
定义 AS 集。
对源和邻接方执行 AS 集查找时,将匹配 AS 路径中的第一个或最后一个 AS。对于传输,AS 路径上可能有多次迭代来执行 AS 集查找。
步骤 2:配置策略以基于源、邻居和中转 AS 匹配和过滤路由。
set policy-options policy-statement as-list-match term transit-match from as-path-transits as-list transit-match set policy-options policy-statement as-list-match term transit-match then local-preference 300 set policy-options policy-statement as-list-match term transit-match then accept set policy-options policy-statement as-list-match term origin-match from as-path-origins as-list origin-match set policy-options policy-statement as-list-match term origin-match then local-preference 400 set policy-options policy-statement as-list-match term origin-match then accept set policy-options policy-statement as-list-match term neighbor-match from as-path-neighbors as-list peer-match set policy-options policy-statement as-list-match term peer-match then local-preference 200 set policy-options policy-statement as-list-match term peer-match then accept
步骤 3:定义本地自治系统。
set routing-options autonomous-system 100
步骤 4:将策略应用为 BGP 导入策略以筛选路由。
set protocols bgp group ebgp-1 type external set protocols bgp group ebgp-1 import as-list-match set protocols bgp group ebgp-1 family inet unicast set protocols bgp group ebgp-1 neighbor 192.168.1.2 peer-as 101 set protocols bgp group ebgp-1 neighbor 192.168.1.6 peer-as 102
此策略可作为导入或导出策略应用,以筛选路由以执行策略中定义的相应操作。
您可以使用 show route
CLI 命令查看路由表中的路由。
from 子句匹配条件中的配置语句出现在两个 [edit policy-options policy-statement policy-name from]
级别和 [edit policy-options policy-statement policy-name term term-name from]
层次结构级别中。