全局默认值的杠杆与代价
bgp default local-preference 修改的是本 AS 内所有邻居默认赋予的 LOCAL_PREF 值(IOS 默认 100),它不针对某条具体路由,而是改变「本地产生的路由与从 eBGP 学来的路由」在写表时使用的默认值。因为 LOCAL_PREF 只在本 AS 内传播,且优先级高于 AS_PATH 长度与 MED,这条命令是调整出口选路最直接的手段之一;代价是它同时影响所有邻居,一处变更会改变整个 AS 的出向选路结果。
基本信息
| 属性性质 | LOCAL_PREF 只在 AS 内传播,不发给 eBGP 邻居 |
|---|---|
| 命令作用 | 修改本机对所有未显式赋值路由的默认 LOCAL_PREF |
| 取值范围 | 0-4294967295,IOS 默认 100 |
| 选路位置 | 优先级较高,高于 AS_PATH 长度与 MED 的比较 |
| 变更后生效 | 已学路由需软刷新(soft in)才按新默认值重算 |
| 精细覆盖 | 用 route-map set local-preference 按前缀或邻居单独设置 |
| 替代方案 | 优先用 route-map 做局部调整,避免全局副作用 |
典型使用场景
- 出口整体倾向:让流量统一偏向某个出口或某个运营商
- 主备出口设计:主出口给较高 LOCAL_PREF,备出口给较低值
- 应急调整:出口故障时快速把流量整体推向备用出口
- 与入向策略配合:出向用 LOCAL_PREF,入向靠 MED 或 AS_PATH 协商
- 对比验证:确认路由上的 LOCAL_PREF 与设计一致,而不只看会话状态
变更与验证
变更与验证
router bgp 65001
bgp default local-preference 120 # 全局默认值,影响所有邻居
!
clear ip bgp 10.0.0.2 soft in # 已学路由软刷新后才按新默认值重算
show ip bgp 10.1.1.0/24 | include locPrf # 核对生效的 LOCAL_PREF
show ip bgp 10.1.1.0/24 # 确认最优路径与出接口是否变化
show ip bgp summary # 确认变更后没有引发邻居异常出口选路的调整手段
| 手段 | 作用范围 | 适用场合 |
|---|---|---|
| bgp default local-preference | 全局默认值 | 需要整体倾向某个出口的粗粒度调整 |
| route-map set local-preference | 按邻居或按前缀 | 主备与例外路径的精细控制 |
| 直接过滤路由 | 按前缀是否可用 | 硬性裁剪,不参与比较 |
| 改 AS_PATH 长度 | 影响远端与其他 AS 的选择 | 用于影响远端,代价是策略复杂度上升 |
LOCAL_PREF 与权重(weight)不同:权重是本地有效、不向任何邻居传播;LOCAL_PREF 在本 AS 内传播,能影响同 AS 内其他设备的选路。判断该改哪一个,先看要影响的范围是本机还是整个 AS。
全局默认值变更的影响面大:改之前先确认有多少前缀会因此改变选路,改之后核对具体前缀的 LOCAL_PREF 与实际出接口,而不是只确认邻居还在 Established。
全设备统一改默认值的场景并不常见,按前缀的 route-map 更可控、也更容易回退;多台设备分批修改时,变更窗口内容易出现新旧值混杂,选路结果会短暂不可预测。