1. 目标与前置条件
说明:目标是实现香港(HK)与新加坡(SG)两地通过CN2链路的双活或主备冗余,并在链路/设备故障时实现自动切换、最小化丢包与收敛时间。前置条件:运营商提供两条或多条CN2电路(可跨不同口岸/不同ASN)、边缘设备支持BGP、BFD、IP-SLA(或等效的探测)、VRRP/HSRP、ACL/route-map、且有监控与自动化权限。
2. 拓扑与IP规划
建议:采用双PE/双CE多活或一主一备拓扑。示例:HK-PE1 via CN2-A, HK-PE2 via CN2-B;SG-PE1 via CN2-A, SG-PE2 via CN2-B。IP规划:为每条电路分配/30或/31链路网段;内网到对等边缘使用可路由公网/互联网段或VPN子网。记录ASN、邻居IP、MED/COMM约定。
3. BGP 会话与策略设计(主干步骤)
步骤:1) 在CE上和每个PE建邻居BGP会话(remote-as对等)。2) 使用prefix-list限制接受路由。3) 通过route-map设置本地优先级(local-preference)区别主备。4) 使用AS-path prepend或MED控制来自运营商的回流路径。示例命令片段(Cisco风格): neighbor x.x.x.x remote-as 2018;ip prefix-list IMPORT permit 0.0.0.0/0 le 32;route-map RM-IN permit 10;set local-preference 200。
4. 快速故障检测:BFD 与 BGP Timer 调优
细节:开启BFD在两端对BGP邻居进行秒级死述检测(例如interval 300 min_rx 300 multiplier 3),并将BGP keepalive/timer配合缩短(keepalive 1 hold 3或按设备能力调整)。示例:bfd interval 300 min_rx 300 multiplier 3;neighbor x.x.x.x bfd;router bgp 65000 timers 1 3。
5. 链路层探测:IP-SLA 与对象跟踪
实操:对关键前缀或对端网关配置IP-SLA(icmp-echo或tcp-connect)+ track对象,当探测失败时触发本地路由或接口优先级调整。示例:ip sla 1 icmp-echo 8.8.8.8 source-interface Gig0/0;frequency 5;track 10 ip sla 1 reachability;然后在静态路由或route-map引用track状态。
6. VRF/VRRP/HSRP 与下一跳控制
做法:在CE上用VRRP或HSRP对运营商多路径做本地网关冗余;结合IP-SLA或BFD动态改变默认路由指向。配置要点:优先把主线路的网关设为优先虚拟IP,secondary基于track自动降级。
7. 隧道备份方案(GRE/MPLS/DMVPN)
说明:对跨国链路可建立GRE或MPLS LSP作为逻辑备份,主路径用直连CN2。步骤:配置隧道端点、静态路由或BGP over-tunnel,并在路由策略中设置优先级。当物理链路异常,BGP撤销路径,流量走隧道。
8. 策略路由与流量分流(流量引导)
操作:用PBR(policy-based routing)基于源/目的IP、端口、DSCP将部分流量固定走低延迟CN2线路(如金融关键流量),其他走备用或Internet。配置示例:access-list、route-map match ip address ACL then set ip next-hop x.x.x.x,apply interface。
9. 自动化与配置管理
步骤:使用Ansible/Terraform将BGP neighbor、route-map、IP-SLA、BFD配置模板化;在变更前通过playbook在实验环境验证。推荐实践:做好版本控制(Git)、回滚剧本与变更时间窗口。
10. 测试与切换演练步骤
详解:1) 制定排期时间并通知运营商与业务方。2) 测试BFD/keepalive降级:人工在一端shutdown口,观察BGP失效时间与业务影响。3) 流量验证:iperf、tcpdump、NetFlow确认流量切换和路径。4) 回滚:按预案恢复接口并验证路由收敛。
11. 监控、告警与SLA验证
实践:监控项包括BGP邻居状态、BFD/IPSLA结果、丢包率、延迟、抖动、流量路径(ASN回溯)。设置Prometheus+Grafana或SNMP/NMS告警;阈值示例:连续3次IP-SLA失败触发二级告警并自动切换。
12. 常见问题与运维注意事项
要点:避免AS-PATH回路、注意路由反射和社区传递、与运营商确认MED与社区策略、在多运营商场景做好路由优先级与防环。变更时逐步放开并观察收敛。
13. 问:如何保证切换时最小丢包与快速收敛?
答:结合BFD(子秒级检测) + 缩短BGP timer + IP-SLA快速探测,本地先行做下一跳变更(VRRP/PBR)并通过route-map在BGP层快速撤销/宣布路由;在设备能力内将BFD interval设置为较小值并测试稳定性。
14. 问:若运营商在回程路径不可控,应如何优化回流?
答:使用AS-path prepend/communities与MED向运营商传达偏好,同时可与对端协商社区使运营商在不同节点做本地优先;必要时在两端做两条不同运营商链路并采用流量工程(PBR或SD-WAN)分流。
15. 问:上线前必须完成哪些验证步骤?
答:完成邻居BGP稳定性测试、BFD/IP-SLA告警测试、故障切换演练(人工down接口)、流量完整性与性能验证(延迟/丢包/抖动)、监控告警流程确认及自动化回滚脚本测试。
来源:从网络架构角度设计香港新加坡cn2冗余与自动故障切换方案