1.
概述:目标与准备工作
目标:通过路由策略优化三网(电信/联通/移动)到马来西亚出口路径,减少抖动(jitter)、丢包并提升稳定性。
准备:获取设备(边界路由器、交换机)、访问权限、两端联系人(国内与马来西亚对端)、测试工具(ping、mtr、iperf3、tcpdump、bgp查看工具)。
2.
基线测量:先量化再调整
步骤:1) 在高峰与非高峰分别做 10 分钟的 mtr(示例:mtr -r -c 100 目标IP);2) 使用 iperf3 做 5 次 60 秒的带宽和抖动测试;3) 记录 BGP 路由选择、AS PATH、MED、LocalPref。
输出:生成表格包含平均延迟、抖动、丢包率、跃点信息,作为回退对比基线。
3.
识别问题点:链路 vs 路由策略
确认方法:如果 mtr 中在本地出口前无丢包但跨境跃点丢包,则多为对端或中间链路问题。若不同源选择到达马来西亚出现不同结果,说明是路由选择问题。
工具:traceroute --icmp、bgp route server 查询(whois/routeviews)。
4.
调整原则:优先稳定、逐步验证
原则:优先使用稳定性高的物理链路或运营商;避免频繁变更 BGP 传播;每次改动只影响小流量并能快速回滚。
建议:在非高峰时段做变更并保留 30 分钟监控窗口。
5.
BGP 策略实操(Cisco IOS 示例)
示例步骤:1) 创建访问列表标记目标前缀;2) route-map 设定 LocalPref 提升或降低;3) 应用到邻居输入/输出。
示例命令:
ip prefix-list ML-prefix seq 10 permit 203.0.113.0/24
route-map PREFER-ML permit 10
set local-preference 200
route-map PREFER-ML permit 20
router bgp 65000
neighbor x.x.x.x route-map PREFER-ML out
说明:将 LocalPref 提高到 200 可优先选择该出口;先在测试邻居或小范围 prefix 上验证。
6.
BGP 策略实操(Juniper JunOS 示例)
步骤:1) 定义 policy-statement;2) 设定 preference 或 local-preference;3) 绑定到对等体。
示例配置:
policy-options { prefix-list ML-PL { 203.0.113.0/24; } }
policy-options { policy-statement PREFER-ML { term 1 { from { prefix-list ML-PL; } then { local-preference 200; accept; } } } }
protocols { bgp { group PEER { neighbor x.x.x.x { import PREFER-ML; } } } }
7.
AS-PATH / Community / MED 策略辅助选择
方法:对方支持 community 时优先使用运营商提供的控制 community(如丢弃、偏好)。
AS-PATH prepend:在不希望选用的路径上加 prepend;在目标首选路径上保持最短 AS-PATH。示例:route-map PREPEND permit 10 set as-path prepend 65000 65000。
8.
策略路由(PBR)用于分流测试
用途:短时间内把部分流量走指定出口以评估稳定性与抖动改善。
Cisco PBR 示例:
access-list 101 permit ip 10.0.0.0 0.255.255.255 any
route-map TO_ML permit 10
match ip address 101
set ip next-hop x.x.x.x
interface GigabitEthernet0/0
ip policy route-map TO_ML
注意:PBR 可能影响 ECMP,需评估 CPU 负载。
9.
QoS 与队列策略减少抖动
思路:将实时流(VoIP/游戏)标记并优先转发,控制突发流量避免队列切换导致抖动。
示例(Cisco MQC):
class-map match-any VOIP
match ip dscp ef
policy-map WAN-POLICY
class VOIP
priority 2000 kbps
class class-default
fair-queue
interface Serial0/0
service-policy output WAN-POLICY
10.
链路监控与快速故障切换
工具与配置:配置 BFD 与较短的 BGP keepalive (如 3s/9s) 以便快速切换不稳定的路径;开启 SLA 监控并结合 PBR 切换。
示例(IOS BFD):
bfd-template single-hop MYBFD
interval 300 min_rx 300 multiplier 3
interface Tunnel0
ip address 10.0.0.1 255.255.255.252
bfd interval 300 min_rx 300 multiplier 3
11.
测试验证与逐步上线
步骤:1) 在小范围 prefix 上应用策略;2) 观察 1-2 小时的 mtr/iperf3;3) 若稳定,扩大到更多 prefix;4) 记录每步变化与时间点以便回滚。
警告:如出现丢包上升或路由震荡,立即回退到上一步并分析 BGP 更新日志。
12.
典型故障与排查要点
常见问题:BGP 持续收敛(监测 UPDATE 频率)、链路抖动与丢包集中于某跳(联系对端或中间运营商)、PBR 导致回路或 MTU 问题。
排查:tcpdump 抓包、检查 MTU(ping -s)、查看路由表和邻居状态(show ip bgp neighbors/ show bgp summary)。
13.
回滚与变更记录规范
要点:每次变更写变更单,记录影响 prefix 列表、route-map、时间与责任人。
回滚脚本示例:保留旧配置快照(copy running-config startup-config 到备份),在变更失败时用备份恢复并重启受影响进程。
14.
长期优化建议
建议:定期评估不同时间段的链路表现,和马来西亚对端建立流量工程协作(community 策略),以及使用 RPKI/ROA 提升路由安全。
监控:部署 Grafana + Prometheus 或 MRTG/InfluxDB 持续展现延迟、抖动趋势。
15.
问:调整 BGP local-preference 会不会影响所有流量?
答:不会必须按前缀分级控管。将 LocalPref 提高仅对匹配的 prefix 生效。实践中建议先在小范围 prefix(测试子网)上调试,确认效果后再扩展,否则会影响全网流量。
16.
问:PBR 会带来哪些副作用?如何避免?
答:PBR 可能造成 CPU 负载上升、ECMP 行为改变或路径回路。避免方法:只对必要流量做 PBR、监控路由器 CPU、限定匹配范围并配合 ACL 精准匹配。
17.
问:如何验证抖动确实下降且稳定性提升?
答:通过对比基线和调整后在相同时间窗口的 mtr/iperf3 数据,关键指标为平均延迟、延迟方差(抖动)与 1/5/10 分钟丢包率;结合长周期监控图表确认趋势性改善。
来源:三网cn2 马来西亚路由策略调整带来的抖动减少与稳定提升