出口流量智能切换核心是BGP属性组合控制与BFD健康检测联动:Local Preference主导出向路径选择(如电信设200、联通设150),ECMP需各路径属性完全一致并显式启用maximum-paths ebgp 4,BFD实现1–2秒故障切换,同时需IGP度量一致并防范回程黑洞。

要让出口流量在多条运营商线路上智能切换,核心不是“配一个开关”,而是通过BGP属性组合控制路径选择,并配合快速检测机制实现毫秒级响应。关键在于出向(eBGP)策略的精细设计和健康状态联动。
明确出向流量控制的主控属性
出口方向流量由Local Preference(本地优先级)主导,它只在本AS内生效,是调控出向路径最直接、最安全的手段:
- 给电信链路邻居设置Local Pref = 200,联通链路设为150 → 默认90%以上流量走电信
- 若需按业务类型分流,可在入口策略中匹配DSCP或端口,再用route-map修改Local Pref值(如视频流匹配后Pref设为140,强制走联通)
- Weight(仅Cisco)可作为设备级临时调节手段,但不传递给其他路由器,适合单台出口设备调试
启用等价多路径(ECMP)实现负载分担
当多条EBGP路径满足“AS Path长度、Origin、Local Pref、MED完全一致”时,路由器才启用ECMP自动哈希分发流量。实际配置需显式放开限制:
- 在BGP IPv4单播地址族下执行:maximum-paths ebgp 4(支持最多4条等价EBGP路径)
- 确保两条专线的Local Pref、MED、AS Path均被人为设为相同值(例如都设为100、50、无Prepend),否则ECMP不会触发
- 五元组哈希保证同一TCP会话始终走同一条链路,避免乱序;新连接才会重新哈希分配
绑定BFD实现故障秒级切换
BGP默认Hold Timer通常为90秒,靠它切换太慢。必须用BFD(Bidirectional Forwarding Detection)做底层链路探活:
- 在每条EBGP邻居接口上启用BFD:bfd min-tx-interval 100 min-rx-interval 100 detect-multiplier 3(100ms探测,300ms内判定失效)
- 将BFD会话与BGP进程绑定:peer x.x.x.x bfd enable
- 一旦BFD中断,BGP立即撤销该邻居所有路由,流量在1–2秒内自动切至其余可用路径
避免回程不对称导致的黑洞
流量切出去了,但回程若走错路径,就会丢包。需确保内部IGP(如OSPF)对各出口的度量一致:
- 所有出口路由器到核心交换机的OSPF cost值必须相同(例如全设为10)
- 禁用出口设备上的非对称路由策略(如PBR重定向回程流量),除非你明确做了双向策略闭环
- 建议在出口设备上开启ip verify unicast reverse-path(uRPF)严格模式,防止伪造源IP的报文误入

















