两家提供商之间的路由故障转移
BGP 路径选择、AS path 前缀追加(prepend)、路由图(route map),以及作为最后手段的默认路由故障转移。
只有当主用电路失效时故障转移(failover)真正生效,冗余回程才有意义。在两家提供商之间路由流量有多种方式,从简单的浮动静态默认路由,到完整的 BGP 多宿主(multi-homing)不一而足。正确的方法取决于您的提供商、您的 IP 地址空间,以及您对复杂度的容忍程度。
方案一:浮动静态路由
最简单的方法是配置两条管理距离不同的默认路由。主用路由的管理距离更小,因此被优先采用。当主用下一跳变得不可达时,路由器会移除该路由,流量随之回落到备用路由。
ip route 0.0.0.0/0 198.51.100.1 10
当两家提供商都向您分配各自的 IP 地址空间、且您不需要入站故障转移时,这种方法最为适用。
方案二:IP SLA 与跟踪路由
即使通往互联网的上游连接已经中断,下一跳仍然可能显示为"在线"。IP SLA(或等效的基于探测的跟踪机制)会向提供商路由器之外的某个目标发送测试流量。一旦探测失败,该路由即被撤销,故障转移随之发生。
- 经由每家提供商分别 ping 一个可靠的目标(例如 1.1.1.1 或 8.8.8.8)
- 跟踪 SLA 探测结果
- 将 track 对象绑定到默认路由
方案三:BGP 故障转移
如果您拥有自己的 IP 地址空间,并与两家提供商都建立了 BGP 会话,故障转移会变得更加自动化且双向对称。您向两家提供商同时通告自己的前缀,并使用 BGP 属性来影响路径选择。
- AS path 前缀追加(AS path prepending):让某条路径看起来更长,使入站流量优先选择另一条。
- 本地优先级(Local preference):影响您网络内部的出站路径选择。
- MED:向提供商建议一条首选路径。
设计原则:避免共同失效点
主用与备用回程不应共用同一管道、同一电杆、同一提供商 POP 或同一路供电。否则,一次施工挖断或一次电力事件就可能同时中断两条电路。这正是冗余回程在实际中失效的最常见原因。