通过在 VPC 内部署 VPN 网关,对接线下 IDC 软件使 VPC 和 IDC 私网互通,不需要部署专用 VPN 硬件实现。
本文以 Strongswan 软件为例介绍部署 VPN 网关的操作步骤。
备注:
1、本身线下IDC也是通过 VPC 网络进行模拟。
2、在部署之前要注意线下 IDC 和 VPC 的网段不能相同。并且线下IDC必须要有静态公网IP,目前不支持动态拨号接入。
应用场景
线下 IDC 通过自建的 Strongswan 环境和 VPN 网关建立 IPSEC VPN ,实现线下 172.16.0.0/12 和 云端 VPC 192.168.0.0/16 内网互通。
部署步骤
云端 VPN 网关配置
4、设置路由
到这里 VPN 网关基本配置完毕,在 VPC 的 VRoute 上设置去往云下 IDC 的内网网关指向到 VPN 网关上。
至此 VPN 网关段已经全部设置完成。
云下 Strongswan 配置
1、安装 Strongswan [root@strongswan ~]# yum install strongswan -y
2、Strongswan 配置
/etc/strongswan/ipsec.conf 配置文件# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
uniqueids=never
conn %default
authby=psk
type=tunnel
conn tomyidc
keyexchange=ikev1
left=0.0.0.0
leftsubnet=172.16.0.0/12
leftid=116.62.203.190
right=106.15.94.101
rightsubnet=192.168.0.0/16
rightid=106.15.94.101
auto=route
ike=aes-sha1-modp1024
ikelifetime=86400s
esp=aes-sha1-modp1024
lifetime=86400s
type=tunnel
/etc/strongswan/ipsec.secrets 配置文件
116.62.203.190 106.15.94.101 : PSK ""
/etc/strongswan/strongswan.conf 配置文件# strongswan.conf - strongSwan configuration file
# Refer to the strongswan.conf(5) manpage for details
# Configuration changes should be made in the included files
charon {
load_modular = yes
filelog {
/var/log/strongswan.log {
time_format = %b %e %T
append = no
default = 4
flush_line = yes
}
}
plugins {
include strongswan.d/charon/*.conf
}
}
3、系统内部开启转发系统[root@strongswan ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
这个只是临时生效,重启后配置会失效,如果要长期生效需要在 /etc/sysctl.conf 配置文件下添加 “net.ipv4.ip_forward = 1”
4、去往 云上的内网网段指向到配置 Strongswan 的服务器上。由于我们环境是通过 VPC 环境模拟的,所以也是在 VRoute上指定。
测试
在云下一台服务 172.16.2.76 上 ping 云上 192.168.1.66 通了,说明整个环境搭建成功。
172.16.2.76 抓包截图看到是正常的来回:
Strongswan 配置服务器上抓包可以看到交互的步骤是:
- 收到 172.16.2.76 去往 192.168.1.66 的请求
- 进行加密,帮请求发送到云上的 VPN 网关上
- 接到 VPN 网关的回包
- 解密成正常的报文回给 172.16.2.76
VPN 网关上抓包,和Strongswan 配置服务器上抓包交互是一致的,只是方向反了下:
云上 ECS 192.168.1.66 上抓包,也是正常的 ICMP 的交互:
总结
VPN网关部署与 Strongswan 互通配置步骤还是比较简单的。只要在于 VPN 隧道的建立和网络调试的过程。
如果出现配置后不通的情况,可以把 Strongswan 的日志打开查看隧道是否建立正常,如果隧道建立还是不通,检查云上 ECS 安全组的配置,和云下的安全策略。如果还是不通通过各个节点抓包分析问题出现在哪里。