1. 环境概述与前置条件
- 确认目标:是否需要到中国境内走CN2线路(GIA/CTG)以降低延迟并提高稳定性。
- 前置硬件/账号:在马来西亚的云主机或机房(支持BGP或专线的ISP)、中国侧接入点(云厂商或机房)、管理员SSH权限、ASN/公网IP池或弹性公网IP。
- 工具准备:ssh、iperf3、mtr/traceroute、tcpdump、netstat、curl、kubectl(如使用K8s)。
2. 选择服务商与购买CN2链路
- 建议选择支持中国电信CN2/GIA直连或有合作专线的本地ISP/云:例如阿里云、腾讯云(马来西亚节点)、本地ISP(Celcom、Digi)配合国际专线。
- 下单流程:联系销售确认CN2/GAI可用性、带宽口径、BGP对端信息(ASN、邻居IP)、收敛时间与SLA。获取BGP密码(如果需要)与路由策略表。
- 文档记录:保存对端ASN、子网掩码、公告前缀、社区标记与计费带宽。
3. VPC/子网与安全组设计(马来西亚侧)
- 子网划分:管理网段(SSH/管理)、应用网段(服务流量)、对外出口网段(走CN2)。
- 安全组/防火墙:放通TCP/UDP(SSH 22、应用端口、WireGuard 51820/UDP、iperf3端口),限制来源IP以降低风险。
- 弹性IP与NAT:如使用私有VPC,预留EIP并配置SNAT/DNAT策略以确保出站流量走CN2出口。
4. Linux主机部署与基础配置(示例:Ubuntu 22.04)
- 创建实例并配置时区、用户、SSH Key:sudo adduser dev; mkdir ~/.ssh; 把公钥放入authorized_keys。
- 安装常用工具:sudo apt update && sudo apt install -y iperf3 mtr traceroute tcpdump net-tools git curl vim wireguard
- 防火墙检查:sudo ufw allow 22/tcp; sudo ufw allow 51820/udp; sudo ufw enable(如用UFW)。
5. 建立加速/加密隧道(推荐 WireGuard 示例)
- 服务器端(马来西亚)安装并生成密钥对:wg genkey | tee privatekey | wg pubkey > publickey。
- 配置 /etc/wireguard/wg0.conf 示例:
[Interface]
Address = 10.0.0.1/24
PrivateKey =
ListenPort = 51820
[Peer]
PublicKey = <对端公钥>
AllowedIPs = 0.0.0.0/0
Endpoint = china.gateway.example:51820
- 启动并设置开机:sudo wg-quick up wg0; sudo systemctl enable wg-quick@wg0。
- MTU调整:如果遇到分片,设置 MTU = 1420 或更小并测试 iperf3。
6. Linux 核心网络调优(关键 sysctl 与 BBR 启用)
- 编辑 /etc/sysctl.conf 添加并生效(sudo sysctl -p):
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq
net.core.rmem_default = 262144
net.core.rmem_max = 67108864
net.core.wmem_default = 262144
net.core.wmem_max = 67108864
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
- 启用BBR(检查):sudo modprobe tcp_bbr; sysctl net.ipv4.tcp_available_congestion_control; ss -t | grep bbr。
- MSS/MTU:对通过VPN或隧道的连接,调整 /etc/iproute2/rt_tables 中策略并使用 iptables --clamp-mss-to-pmtu。
7. 性能测试与排障命令(实操步骤)
- 基本延迟与丢包:mtr -r -c 100 target.ip 或 traceroute -n target.ip。记录平均RTT与丢包节点。
- 带宽测试:在两端安装iperf3,服务端启动:iperf3 -s;客户端运行:iperf3 -c server_ip -P 10 -t 60 -i 10。
- 抓包定位:sudo tcpdump -i eth0 host target.ip -w dump.pcap;用Wireshark分析Triple-ACK、重传与窗口大小。
- 持续监控:部署Prometheus + node_exporter、Grafana监控网卡、丢包与队列延迟。
8. Kubernetes / 容器环境下的网络调优
- CNI MTU:若底层隧道 MTU=1420,则CNI(Calico/Flannel)MTU需一致,修改 CNI ConfigMap 或 daemonset。
- kube-proxy 与 nodeLocal DNS:减少跨节点DNS延迟,启用 hostNetwork 高优先级 Pod 进行健康探测。
- DaemonSet 工具:布署 iperf3/mtr daemonset 到每个节点便于内部连通性测试与排查。
9. 路由与BGP策略建议(与ISP协作)
- BGP参数:确认本端ASN、邻居ASN、邻居IP、MD5(如需)、prefix-limit。要求ISP配置BGP社区以实现到CN2优先路由(示例社区号由ISP提供)。
- 路由封装:如使用本地BGP,发布最小必要前缀并配置MED/LocalPref以影响出站。测试变更时逐步发布并观察收敛。
- 二次验证:用traceroute到中国目标验证是否经过CN2节点(跳点有ct/telecom标识),并记录路由ID。
10. 常见问题:CN2与普通国际链路有何差别?(问)
10. 回答
CN2(如CN2 GIA)是中国电信面向国际优化的骨干网,特点是延迟低、抖动小、丢包率低,路由更直接但成本高于普通国际链路。实际差别体现在BGP路由、POP点数量与优先级以及ISP间协商的QoS策略。
11. 常见问题:遇到高丢包/高时延如何排查?(问)
11. 回答
先用mtr定位丢包点,若在本地接入则检查链路/交换机/光纤;若在中间节点联系ISP查询;用iperf3确认带宽瓶颈;抓包分析重传与拥塞信号,调整tcp窗口/启用BBR或增加带宽、优化BGP策略。
12. 常见问题:如何长期维护与SLA对齐?(问)
12. 回答
建立监控告警(延迟、丢包、带宽)、定期带宽回归测试、和ISP签订明确SLA并保留路由变更记录,必要时部署多出口(CN2 + 公网)做自动故障切换以保证可用性。
来源:面向开发者cn2马来西亚环境下的部署与网络调优手册