使用路由策略抑制 BGP 路由抖动
BGP 路由摆动描述了 BGP 系统发送过多更新消息来通告网络可达性信息的情况。BGP 抖动阻尼 是一种减少 BGP 对等方之间发送的更新消息数量的方法,从而在不对路由收敛时间产生不利影响的情况下减少这些对等方上的负载。
抖动抑制通过将路由标记为不符合选择条件的活动路由或首选路由来减少更新消息的数量。这样做会导致路由信息的传播出现一些延迟或 抑制,但结果是提高了网络稳定性。您通常会将抖动抑制应用于外部 BGP (EBGP) 路由(即,应用于不同 AS 中的路由)。您还可以在联合体内、联合体成员 AS 之间应用它。由于 AS 内的路由一致性很重要,因此请勿对 IBGP 路由应用抖动抑制。(如果这样做,则会忽略它。
BGP 抖动阻尼在 RFC 2439 BGP 路由抖动阻尼中定义。
要对默认 BGP 抖动阻尼值进行更改,请通过创建一组命名的阻尼参数并将其与操作一起 damping
包含在路由策略中来定义操作(如 配置操作路由特征的操作中所述)。要使阻尼路由策略正常工作,还必须启用 BGP 路由抖动抑制。
以下各节讨论以下主题:
配置 BGP 襟翼阻尼参数
要定义阻尼参数,请包含以下 damping
语句:
[edit policy-options] damping name { disable; half-life minutes; max-suppress minutes; reuse number; suppress number; }
该名称标识阻尼参数组。它可以包含字母、数字和连字符 (-),最多可以包含 255 个字符。要在名称中包含空格,请用引号 (“ ”) 将整个名称括起来。
可以指定中所述 表 1的一个或多个阻尼参数。
阻尼参数 |
Description |
违约 |
可能的值 |
---|---|---|---|
|
衰变半衰期,以分钟为单位 |
15 分钟 |
1 到 45 分钟 |
|
最长抑制时间(分钟) |
60 分钟 |
1 到 720 分钟 |
|
重用阈值 |
750(无单位) |
1 到 20,000(无单位) |
|
截止(抑制)阈值 |
3000(无单位) |
1 到 20,000(无单位) |
如果未指定一个或多个阻尼参数,则使用该参数的默认值。
要了解如何配置这些参数,您需要了解阻尼如何抑制路由。路由可以抑制多长时间基于 品质因数,该品质因数是与路由未来不稳定概率相关的值。具有较高品质因数值的路由将被抑制更长时间。品质因数值随时间呈指数衰减。
将为每个新路径分配零的品质因数值。每次撤回或重新播发路由时,或者当路由的某个路径属性发生更改时,该值都会增加。随着每次不稳定事件,该值增加如下:
路由已撤回 - 1000
路由重新播发 - 1000
路由的路径属性更改 - 500
注:其他供应商的品质因数实施仅在路由撤回时增加价值。针对品质因数的 Junos OS 实施增加了路由撤回和路由重新播发的价值。要适应品质因数的其他实现,请将 and
suppress
阈值乘以reuse
2。
当路由的品质因数值达到特定级别(称为 截止 或 抑制阈值)时,路由将被抑制。如果路由被抑制,路由表将不再将该路由安装到转表中,也不再将此路由导出到任何路由协议。默认情况下,当路由的品质因数值达到 3000 时,将抑制路由。若要修改此默认值,请在层次结构级别包含 suppress
该选项 [edit policy-options damping name]
。
如果路由发生了抖动,但随后变得稳定,因此在可配置的时间内不会发生之前列出的任何事件,则路由的品质因数值将呈指数衰减。默认半衰期为 15 分钟。例如,对于品质因数值为 1500 的路由,如果未发生事故,则其品质因数值将在 15 分钟后降至 750,再过 15 分钟后降至 375。要修改默认半衰期,请在层次结构级别包含该 half-life
选项 [edit policy-options damping name]
。
对于半衰期,请配置一个小于最大抑制的值。否则,配置将被拒绝。
当抑制路由的品质因数值衰减到低于 重用阈值的值时,该路由变得可重用,从而使经历暂时不稳定的路由再次被视为有效。默认重用阈值为 750。当品质因数值超过重用阈值以下时,路由再次被视为可用,可以安装在转发表中并从路由表导出。若要修改默认重用阈值,请在层次结构级别包含 reuse
该选项 [edit policy-options damping name]
。
最大抑制时间提供了路由可以保持抑制时间的上限。默认最长抑制时间为 60 分钟。若要修改默认值,请在层次结构级别包含 max-suppress
该选项 [edit policy-options damping name]
。
对于最大抑制值,请配置一个大于半衰期的值。否则,配置将被拒绝。
当路由达到最大抑制阈值时,路由的品质因数值将停止增加,该阈值根据路由的抑制阈值级别、半衰期、重用阈值和最大抑制时间确定。
功绩上限 εc,这是拍打路线可以收集的最大功绩,使用以下公式计算:
εc ≤ εr e(t/λ) (ln 2)
εr 是品质 因数重用阈值,t 是以分钟为单位的最大抑制时间,λ 是以分钟为单位的半衰期。例如,如果在此公式中使用默认品质因数值,但使用 30 分钟的半衰期,则计算方法如下:
εc ≤ 750 E(120/30) (ln 2)
εc ≤ 12000
使用选项配置 suppress
的截止阈值必须小于或等于绩效上限 εc。如果配置的截止阈值或默认截止阈值大于优点上限,则永远不会抑制路由,并且永远不会发生阻尼。
要显示品质因数信息,请使用 show policy damping
命令。
分配了品质因数的路由被视为具有阻尼状态。要在路由设备上显示当前阻尼信息,请使用 show route detail
命令。
将 BGP 抖动抑制指定为路由策略术语中的操作
要将 BGP 抖动阻尼作为路由策略术语中的操作,请将语句和配置的阻尼参数的名称作为damping
语句[edit policy-options policy-statement policy-name term term-name from]
在route-filter
层次结构级别的选项中包含:
[edit policy-options policy-statement policy-name term term-name from] route-filter destination-prefix match-type { damping damping-parameters; }
或在层次结构级别:[edit policy-options policy-statement policy-name term term-name then]
[edit policy-options policy-statement policy-name term term-name then] damping damping-parameters;
禁用特定地址前缀的阻尼
通常,您可以基于每个对等方启用或禁用阻尼。但是,您可以通过包含 disable
以下选项来禁用从对等方接收的特定前缀的阻尼:
[edit policy-options damping name] disable;
禁用特定地址前缀的阻尼
在此路由策略示例中,尽管为对等方启用了阻尼,但语句指定 damping none
对 中的 Policy-A
前缀 10.0.0.0/8 禁用阻尼。此路由不受阻尼,因为名为 Policy-A
的路由策略语句在前缀 10.0.0.0/8 上过滤,并且操作指向 damping
名为 none
的语句。其余前缀使用默认参数进行阻尼。
[edit] policy-options { policy-statement Policy-A { from { route-filter 10.0.0.0/8 exact; } then damping none; } damping none { disable; } }
配置 BGP 抖动阻尼
启用 BGP 抖动阻尼并配置阻尼参数:
[edit] routing-options { autonomous-system 666; } protocols { bgp { damping; group group1 { traceoptions { file bgp-log size 1m files 10; flag damping; } import damp; type external; peer-as 10458; neighbor 192.168.2.30; } } } policy-options { policy-statement damp { from { route-filter 192.168.0.0/32 exact { damping high; accept; } route-filter 172.16.0.0/32 exact { damping medium; accept; } route-filter 10.0.0.0/8 exact { damping none; accept; } } } damping high { half-life 30; suppress 3000; reuse 750; max-suppress 60; } damping medium { half-life 15; suppress 3000; reuse 750; max-suppress 45; } damping none { disable; } }
要显示此配置的阻尼参数,请使用 show policy damping
以下命令:
user@host> show policy damping Damping information for "high": Halflife: 30 minutes Reuse merit: 750 Suppress/cutoff merit: 3000 Maximum suppress time: 60 minutes Computed values: Merit ceiling: 3008 Maximum decay: 24933 Damping information for "medium": Halflife: 15 minutes Reuse merit: 750 Suppress/cutoff merit: 3000 Maximum suppress time: 45 minutes Computed values: Merit ceiling: 6024 Maximum decay: 12449 Damping information for "none": Damping disabled