1.
概述与迁移前准备
小节一:目标说明——将服务从其他节点迁移到 SoftLayer(IBM Cloud)日本机房,并利用 CN2 回程以优化中国大陆访问体验。
小节二:前置条件——确保在 IBM Cloud 控制台已申请到裸金属或虚拟机;在订单阶段申请或确认运营商为 China Telecom CN2(如可选 CN2 GIA);准备好 ASN、对端 BGP IP、路由前缀和联系工程师的工单信息。
小节三:工具准备——在本地或跳板服务器安装 iperf3、mtr、traceroute、tcpdump、vtysh(FRRouting)、ssh 及 sysctl 编辑权限。
2.
在 SoftLayer 配置网络与跨连(Cross-Connect)
小节一:控制台操作——在 IBM Cloud 控制台中创建 VLAN、绑定公有 IP,申请对端 BGP 信息(对端 ASN、对端 IP/掩码、MD5 密钥如支持)。
小节二:物理/虚拟链路——如果是租用专线或跨交换机,通过工单提交跨连请求,并确认 Peering 机房与 CN2 回程链路的可达性与带宽等级。
小节三:核验连通性——收到账户信息后用 ping、traceroute 验证对端网关可达,保存所有对端信息以备 BGP 配置。
3.
配置 BGP(使用 FRRouting/Quagga 为例)
小节一:安装 FRR(以 Ubuntu 为例):apt update && apt install frr frr-pythontools。
小节二:示例 bgpd 配置(/etc/frr/daemons 确保 bgpd 启用),在 vtysh 中配置:
router bgp 65001
bgp router-id 1.2.3.4
neighbor X.X.X.X remote-as 4134
neighbor X.X.X.X password YOUR_MD5
neighbor X.X.X.X description "CT-CN2-peer"
network 203.0.113.0/24
小节三:配置后验证:在 vtysh 中运行 show ip bgp summary、show ip bgp neighbors,确认状态为 Established,并记录 BGP 收到的路径。
4.
路由策略与流量工程(优先 CN2 路径)
小节一:应用路由策略——通过 prefix-list、route-map、set local-preference / set metric(MED)来引导入站/出站流量优先走 CN2。
小节二:示例:优先对大陆 ASN 的本地偏好设置:
ip prefix-list CN_IPV4 permit 1.0.0.0/8 le 24
route-map PREFER_CN2 permit 10
match ip address prefix-list CN_IPV4
set local-preference 200
然后在 bgp 中 neighbor X route-map PREFER_CN2 in。
小节三:注意点——与对端沟通是否支持 BGP community 改写、避免过度宣告避免被过滤,遵守 RPKI/IRR 规则。
5.
内核与传输层调优(Linux 示例)
小节一:开启 BBR 提升吞吐:在 /etc/sysctl.conf 添加并应用:
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
sysctl -p && sysctl net.ipv4.tcp_available_congestion_control 查看 bbr 是否启用。
小节二:调整 TCP 参数以应对跨境延迟:
net.ipv4.tcp_window_scaling=1
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 87380 16777216
小节三:MTU 设置——若链路支持 jumbo frames,根据运营商建议设置接口 MTU(如 1500 或 9000),并启用 tcp_mtu_probing=1 以避免 PMTUD 问题。
6.
多路径与故障切换(ECMP、BFD、Keepalived)
小节一:若有多上游,启用 ECMP(Linux iproute2 支持多条 default via),示例:ip route add default scope global nexthop via A dev eth0 weight 1 nexthop via B dev eth1 weight 1。
小节二:快速故障检测——部署 BFD 用于 BGP 快速收敛,或在 FRR 中启用 bgp fast-external-fallover,结合 keepalived/VRRP 做虚拟 IP 迁移。
小节三:自动化脚本——用监控脚本检测链路质量(mtr/iperf3),发现异常时通过 ip route replace 切换出口并记录日志。
7.
测试与验证方法
小节一:吞吐与延迟测试——使用 iperf3 在不同时间段测试上行/下行带宽;使用 mtr --report 检查丢包和跳数。
小节二:路径追踪——使用 traceroute -T -p 80 或 tcptraceroute 检测 TCP 路径;用 tcpdump -i eth0 port 179 捕获 BGP 握手问题。
小节三:验收标准——定义 SLA 指标(如 95% 抖动小于 20ms,丢包率 <0.5%),进行 24-72 小时持续观测并生成报告。
8.
安全与路由保护措施
小节一:前缀过滤——只宣告自己的 IP 段,使用 prefix-list 和 max-prefix 限制对等体。
小节二:MD5 验证与 RPKI——配置 BGP MD5 密钥保护会话,启用 RPKI/ROA 检查以防止劫持。
小节三:日志告警——配置 rsyslog 或 Prometheus+Alertmanager 对 BGP 状态(Established/Idle)异常发送告警。
9.
监控与长期优化
小节一:持续监控——部署监控项:BGP 会话状态、丢包率、延迟、带宽占用,可用 Grafana+Prometheus 展示趋势。
小节二:流量分析——定期导出流表/Netflow,分析哪些目标 ASN 或具体前缀使用非 CN2 路径,针对性调整 route-map。
小节三:定期复审——与运营商保持沟通,关注 CN2 路由策略、链路维护公告,必要时申请链路调整或更高级别的回程服务。
10.
常见故障排查问:如果迁移后出现高丢包或抖动,首先排查什么?
小节一:首先查看本地与对端 BGP 是否 Established(vtysh show ip bgp summary)。
小节二:用 mtr 对目标大陆节点做长时段测试,定位是链路中某一跳丢包还是本地队列问题;同时用 tcpdump 捕获端口 179 看是否有 BGP 频繁重建。
11.
常见故障排查答:高丢包或抖动的快速定位与处理步骤
小节一:若是本地出口带宽拥塞,调整队列(tc qdisc)或升级带宽,并临时通过 route-map 降低优先级大的非关键流量。
小节二:若是中间某跳异常,联系对端运营商并提供 mtr/traceroute/tcpdump 结果,可请求对端调整或走备份链路;如为 BGP 路由问题,考虑修改 local-pref/MED 或使用更严格的前缀过滤。
12.
问:迁移后如何平滑切换回旧节点或做回滚?
小节一:事前准备回滚计划,保留旧节点的 BGP 会话配置和静态路由脚本,确保旧节点入口仍可接收流量。
小节二:回滚步骤:先在新链路上将 local-pref 调低或撤销对外宣告,然后在控制时窗内切换流量到旧节点并监控指标。
来源:迁移至softlayer 日本 cn2 后的网络优化与路由稳定性实践