BGP 路由聚合 detail-suppressed, as-set 和 attribute-policy 解析
BGP路由聚合参数详解 BGP路由聚合中的detail-suppressed、as-set和attribute-policy是关键参数,用于控制路由汇总行为: detail-suppressed:仅通告聚合路由,抑制明细路由,适用于简化路由表,但可能丢失部分路径属性。 as-set:保留原始明细路由的AS_PATH信息(用{}表示),防止环路,但可能增加路径复杂性。 attribute-polic
BGP 路由聚合中的 detail-suppressed, as-set,和 attribute-policy 是用于控制路由汇总行为及其属性的关键参数。它们各自有不同的作用和用法场景。下面这张表格汇总了它们的核心区别:
参数 |
主要作用 |
使用场景 |
关键注意事项 |
detail-suppressed |
抑制所有明细路由的通告,只发布聚合路由 |
需要简化路由表,减少路由数量时 |
聚合路由的某些属性(如 AS_PATH)可能丢失,需谨慎评估其对路径选择的影响 |
as-set |
在聚合路由中保留原始明细路由的 AS_PATH 信息 |
在多 AS 环境下进行路由聚合,且需要防止路由环路时 |
会使 AS_PATH 变得复杂(使用 { }包含来源 AS 集合),可能影响路径选择策略 |
attribute-policy |
修改聚合路由自身的属性(如 Origin、MED 等) |
需要为聚合路由设置特定的策略属性时 |
仅影响聚合路由,不改变明细路由的属性。需要配合 Route-Policy 使用 |
各参数用法详解
1. detail-suppressed:抑制明细路由
作用:使用此参数后,BGP Speaker 只向其对等体通告聚合后的路由,而抑制所有明细路由的通告。
配置命令:
bgp 100
aggregate 192.168.0.0 255.255.252.0 detail-suppressed
解析:
aggregate 192.168.0.0 255.255.252.0用于聚合 192.168.0.0/24, 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24这些明细路由。
detail-suppressed 关键字确保只有聚合路由 192.168.0.0/22被通告出去,所有明细路由都被抑制。
注意事项:虽然简化了路由表,但聚合路由的某些属性(如 AS_PATH)可能丢失,需谨慎评估其对路径选择的影响。
2. as-set:保留AS路径集信息(防环)
作用:在非明细路由起源的 AS 进行聚合时,默认会丢失原始明细路由的 AS_PATH 属性。as-set 参数通过在聚合路由的 AS_PATH 属性中包含所有原始明细路由的 AS 号(放在 { }内) 来避免潜在的路由环路。
配置命令:
bgp 200
aggregate 192.168.0.0 255.255.252.0 as-set
解析:
若明细路由来自 AS 100 和 AS 300,启用 as-set后,聚合路由的 AS_PATH 将显示为 200 {100,300}。
这告知其他路由器,该聚合路由起源于 AS 200,但其组成部分来自 AS 100 和 AS 300。
注意事项:as-set会使 AS_PATH 属性变长且复杂,可能影响基于 AS_PATH 长度的路径选择决策。
3. attribute-policy:修改聚合路由属性
作用:允许你通过 Route-Policy 来修改聚合路由自身的属性,如 Origin、MED、Community 等。
配置命令:
route-policy ATT_POLICY permit node 10
apply origin incomplete // 将聚合路由的 Origin 属性设置为 incomplete (?)
bgp 200
aggregate 192.168.0.0 255.255.252.0 attribute-policy ATT_POLICY
解析:
首先定义一个名为 ATT_POLICY的 Route-Policy,其动作为 apply origin incomplete。
在 BGP 配置聚合路由时,使用 attribute-policy ATT_POLICY 调用这个策略。
这样,生成的聚合路由 192.168.0.0/22的 Origin 属性将被设置为 incomplete(?)。
注意事项:attribute-policy仅影响聚合路由,不会改变任何明细路由的属性。你需要创建一个 Route-Policy 来定义要修改的属性。
组合使用与决策建议
简化与防环:若目标是最大程度简化路由表且无环路风险,可使用 detail-suppressed但不带 as-set。
简化且防环:若需简化路由表但存在环路风险,应同时使用 detail-suppressed和 as-set。
精细控制属性:若需为聚合路由设置特定属性(如标记 Community),需使用 attribute-policy并配置相应的 Route-Policy。
部分抑制:若只想抑制部分明细路由,而非全部,可以不使用 detail-suppressed,而是配合 suppress-policy 参数和一个匹配特定路由的 Route-Policy 来实现。
希望这些解释和示例能帮助你更好地理解和使用这些参数。
更多推荐
所有评论(0)