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/24192.168.1.0/24192.168.2.0/24192.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 来实现

希望这些解释和示例能帮助你更好地理解和使用这些参数。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐