1. 概述:目标是在国内三网(电信/联通/移动)或多条CN2线路到香港的环境下,实现优先走CN2并在链路异常时自动备份,保证业务连续性与稳定性。关键点:路由优先级(BGP策略/Local-pref)、快速故障检测(BFD/IP-SLA)、备份切换(路由失效转发或策略路由)。
2. 拓扑与准备:准备至少两条外网链路(优选多条CN2或CN2+非CN2),获取各ISP分配的IPv4/IPv6前缀及BGP ASN(或使用静态公网),路由器支持BGP、IP-SLA或BFD,Linux服务器可安装FRR或BIRD用于多线并发。备份需明确业务对延迟/丢包敏感度。
3. 在Cisco上用route-map与local-preference控制首选CN2。示例:配置两个BGP邻居,给CN2设置 higher local-preference:
router bgp 65000 neighbor 1.1.1.1 remote-as 100 neighbor 1.1.1.1 route-map PREFER-CN2 in neighbor 2.2.2.2 remote-as 200 ! route-map PREFER-CN2 permit 10 set local-preference 200 route-map PREFER-CN2 deny 20
4. 使用IP-SLA(或BFD)监测下一跳/目标IP,一旦检测失败降低track对象,从而触发路由重分发或修改静态默认路由。Cisco示例:
ip sla 1 icmp-echo 8.8.8.8 source-interface GigabitEthernet0/0 frequency 5 ip sla schedule 1 life 0 start-time 0 track 1 ip sla 1 reachability ip route 0.0.0.0 0.0.0.0 1.1.1.254 track 1 ip route 0.0.0.0 0.0.0.0 2.2.2.254 200
5. 在Linux上用FRR+BFD或脚本实现:安装frr、配置bgpd和static路由,使用bird或frr的vtysh配合ip monitor脚本做SLA。快速示例:配置两个默认路由并用ip route replace和脚本探测故障--当ping失败次数>n时执行“ip route replace default via <备份网关> dev ethX metric 200”。
6. 若需基于应用/源地址分流,使用策略路由(PBR)或多路由表实现:Linux用ip rule + ip route table,路由器用route-map match ip address来将特定流量走指定CN2线路。注意保持NAT和反向路径一致(RPFilter、NAT映射)。
7. 问:如何保证切换过程最小丢包?
答:使用BFD或IP-SLA缩短检测间隔并结合会话保持(如TCP重传、应用层冗余)。BFD能在几十到几百毫秒内检测;同时在BGP上配置maximum-path和soft-reconfiguration减少路径抖动。
8. 问:如何优先CN2但不引起收敛问题?
答:用BGP内部策略提升CN2路由的local-preference而非频繁修改AS路径或撤销路由;同时配置合理的BGP timers和BFD以提升收敛速度。避免在高频事件中修改全局路由表。
9. 问:部署前后应如何测试和验证?
答:测试要点:1) 验证BGP邻居与路由优先级(show ip bgp),2) 强制断开主链路检查IP-SLA/BFD触发与路由切换,3) 用mtr/iperf观测丢包与延迟,4) 验证回程路由(从香港到国内)是否一致,必要时与ISP协作开通对端策略。