概述:确定业务需求(带宽、延迟、可用性)。
准备:获取原生IP段、AS号,与至少两个越南或地区上游建立对等;准备BGP会话信息、授权联系人与逆向DNS策略。
步骤:选择Active/Active(ECMP/Anycast)或Active/Passive(主备)模式;
画出物理与逻辑拓扑,标注上游A/B、边界路由器(BR)、负载均衡层与监控节点。
配置要点:在边界路由器上配置对等并开启BGP;使用路由策略控制出口优先级。示例(FRR/Quagga):
router bgp
实际操作:使用local-preference提升本地优先出口;对不希望优先的上游做AS-path prepend;利用上游支持的community标记实现细粒度出口选择。示例命令:
route-map SET-LOCAL permit 10 set local-preference 200
方法:与上游协商接受community以影响入站;在上游侧使用前缀长度过滤(/24最佳实践);在边界做prefix-list与route-map严格过滤并启用RPKI/ROA校验。示例:
ip prefix-list EXPORT seq 5 permit x.x.x.0/24 le 24
实施步骤:部署BFD实现秒级链路检测,BGP结合fast-restart和short timers;准备健康检查脚本(ping/mtr/http)触发路由策略变更或下线IP(使用API调用路由器或控制Plane)。示例:
bfd peer
设计建议:若为低延迟服务,采用Anycast把同一IP广告到多个机房;若为独立服务采用VRRP/HSRP做二层冗余并用BGP做三层切换。
操作要点:同步路由表、NAT规则与会话粘性,Anycast需保证后端数据一致性(DB/同步)。
监控与告警:部署集中化监控(Prometheus/Zabbix)采集BGP session、MED/AS_PATH变更、丢包与时延;
自动化:用Ansible/Terraform管理路由器配置,脚本化故障回滚,提前演练恢复步骤并记录命令集。
问:如何验证多线切换在用户面真实生效?
答:并行发起外部MTR/traceroute、从多个公网节点(国内、越南、香港)对目标IP做延迟与路径对比;使用流量镜像或合成事务监测(HTTP/TCP握手)并观察用户会话是否中断。
10.问:路由频繁变化(震荡)怎么排查?
答:检查BGP邻居状态日志、BFD抖动、上游route-flap;用bgp updates日志、BGP RIB快照比对时间轴,排除错误的route-map或社区导致的回路,并临时提高route flap damping阈值。
11.问:在生产上线前应注意哪些风险?
答:风险包括错误的出口优先导致流量集中、前缀污染、ROA不匹配被丢弃、会话丢失。上线前需做灰度、回退脚本、与上游管道沟通并在低流量时段演练切换。