跨云网络打通实战:阿里云与腾讯云通过 StrongSwan 实现 VPC 互通并中转访问运维网络
在多云架构日益普及的今天,企业常常需要在不同云厂商之间打通私有网络,实现资源互通、数据同步或统一运维。本文将详细介绍如何通过 StrongSwan IPsec 站点到站点(Site-to-Site)VPN,实现 阿里云 VPC_A(172.20.0.0/16) 与 腾讯云 VPC_B(172.16.0.0/16) 的双向互通,并进一步利用 VPC_A 作为中转节点,使腾讯云 VPC_B 能够访问 阿里云的运维网络 VPC_OPS(10.200.0.0/16)。
整个方案无需依赖云厂商的跨云专线服务,成本可控,适用于中小型企业组网环境。
一、整体架构概览
腾讯云 VPC_B (172.16.0.0/16)
↑
| StrongSwan IPsec S2S
↓
阿里云 VPC_A (172.20.0.0/16) ←→(VPC 对等连接)→ 阿里云 VPC_OPS (10.200.0.0/16)
- ECS_A(172.20.0.234):阿里云侧 StrongSwan 网关
- CVM_B(172.16.16.8):腾讯云侧 StrongSwan 网关
- 公网 IP:ECS_A → 120.120.120.120(乱编的公网IP,实际配置请修改为正确的公网IP);CVM_B → 100.100.100.100(乱编的公网IP,实际配置请修改为正确的公网IP)关键点:VPC 对等连接 不能跨云传递路由,因此必须通过 IPsec + 路由中转实现 VPC_B ↔ VPC_OPS 的双向通信。
二、前提条件检查
1. 公网可达性
- 两台网关主机必须拥有 固定公网 IP(已满足)。
- 安全组/防火墙需开放 UDP 500(IKE) 和 UDP 4500(NAT-T) 端口,双向放行。
2. 内网路由基础
- 阿里云 VPC_A 与 VPC_OPS 已建立 VPC 对等连接,且路由表已互相添加对方网段。
- 腾讯云 VPC_B 的路由表需手动添加指向 CVM_B 的 172.20.0.0/16 和 10.200.0.0/16 路由。
- 阿里云 VPC_A 需添加指向 ECS_A 的 172.16.0.0/16 路由(用于回程流量)。
三、StrongSwan 配置详解
3.1 阿里云侧(ECS_A)
/etc/ipsec.conf
config setup
charondebug="ike 2, knl 2, cfg 2"
uniqueids=no
conn tencent-vpc
authby=psk
left=%any
leftid=120.120.120.120
leftsubnet=172.20.0.0/16,10.200.0.0/16 # 包含中转网段!
leftfirewall=yes
right=100.100.100.100
rightid=100.100.100.100
rightsubnet=172.16.0.0/16
ike=aes256-sha2_256-modp2048!
esp=aes256-sha2_256!
keyingtries=0
ikelifetime=8h
lifetime=1h
dpddelay=30
dpdtimeout=120
dpdaction=restart
auto=start/etc/ipsec.secrets
- your_strong_psk_here 推荐使用base64编码后的字符串,避免各种奇怪的异常
120.120.120.120 100.100.100.100 : PSK "your_strong_psk_here"启用 IP 转发
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p防火墙规则(iptables)
## 按需开启,测试可直接关闭防火墙。
# 允许 IPsec 控制流量
iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
# 允许转发:VPC_B ↔ VPC_OPS
iptables -A FORWARD -s 172.16.0.0/16 -d 10.200.0.0/16 -j ACCEPT
iptables -A FORWARD -s 10.200.0.0/16 -d 172.16.0.0/16 -j ACCEPT
# (一般不需要)如遇 NAT 问题可启用 MASQUERADE
# iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -d 10.200.0.0/16 -j MASQUERADE3.2 腾讯云侧(CVM_B)
/etc/ipsec.conf
config setup
charondebug="ike 2, knl 2, cfg 2"
uniqueids=no
conn aliyun-vpc
authby=psk
left=%any
leftid=100.100.100.100
leftsubnet=172.16.0.0/16
leftfirewall=yes
right=120.120.120.120
rightid=120.120.120.120
rightsubnet=172.20.0.0/16,10.200.0.0/16 # 目标包含两个网段
ike=aes256-sha2_256-modp2048!
esp=aes256-sha2_256!
keyingtries=0
ikelifetime=8h
lifetime=1h
dpddelay=30
dpdtimeout=120
dpdaction=restart
auto=start/etc/ipsec.secrets
- 需要跟上面的密钥一致,否则无法认证。
- your_strong_psk_here 推荐使用base64编码后的字符串,避免各种奇怪的异常
100.100.100.100 120.120.120.120 : PSK "your_strong_psk_here"启用 IP 转发
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p防火墙规则
## 按需开启,测试可直接关闭防火墙。
iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -A FORWARD -s 172.20.0.0/16 -d 172.16.0.0/16 -j ACCEPT
iptables -A FORWARD -s 10.200.0.0/16 -d 172.16.0.0/16 -j ACCEPT重要:在腾讯云控制台,必须 关闭 CVM_B 的“源/目的地址检查”,否则无法转发非本机 IP 的流量。路径:CVM 实例 → 更多 → 网络 → 关闭“源/目的检查”。
四、云平台路由配置
4.1 阿里云
- VPC_A 路由表:添加
目标:172.16.0.0/16 → 下一跳:ECS_A(172.20.0.234) - VPC_OPS 路由表(推荐):添加
目标:172.16.0.0/16 → 下一跳:VPC_A 对等连接因 VPC_A 已能路由到腾讯云,VPC_OPS 可通过 VPC_A 中转访问。
4.2 腾讯云
- VPC_B 路由表:添加两条自定义路由
172.20.0.0/16 → 下一跳:CVM_B(172.16.16.8)10.200.0.0/16 → 下一跳:CVM_B(172.16.16.8)
五、验证与排错
1. 启动并检查 IPsec 状态
systemctl start strongswan-starter.service
ipsec status确保连接状态为 ESTABLISHED。
2. 网络连通性测试
- 从 VPC_B(如 172.16.16.10):
ping 172.20.0.234 # 应通(直达 VPC_A) ping 10.200.0.10 # 应通(经中转访问 VPC_OPS) - 从 VPC_OPS(如 10.200.0.10):
ping 172.16.16.8 # 应通(回程经 VPC_A → IPsec)
3. 抓包排查(如不通)
在 ECS_A 上执行:
tcpdump -i any host 100.100.100.100观察是否收到 ESP 包,并检查是否成功转发至 10.200.0.0/16。
六、注意事项与最佳实践
- PSK 安全性:务必使用高强度预共享密钥(建议 32 位以上随机字符串)。
- 避免 NAT:除非必要,不要启用 MASQUERADE,否则会破坏端到端路由语义。
- 云平台限制:
- 阿里云 ECS 默认允许 IP 转发(只要系统开启)。
- 腾讯云 CVM 必须 手动关闭源/目的检查,这是常见失败原因。
- 性能考量:若流量大或延迟敏感,建议评估云厂商的 云企业网(CEN)+ 云联网(CCN) 跨云方案,但成本较高。
- 高可用:生产环境建议部署双网关 + Keepalived 或使用云厂商托管 VPN 服务。
结语
通过 StrongSwan 构建跨云 IPsec 隧道,配合合理的路由规划,我们成功实现了 腾讯云 VPC_B ↔ 阿里云 VPC_A ↔ 阿里云 VPC_OPS 的三层网络互通。该方案灵活、开源、成本低,适用于混合云、灾备、统一监控等多种场景。
附:本文所有配置已在 阿里云、腾讯云 Ubuntu 24.04 + StrongSwan 5.9.1 环境验证通过。
跨云网络打通实战:阿里云与腾讯云通过 StrongSwan 实现 VPC 互通并中转访问运维网络
https://www.gmtgo.com/63988.html