前言:
公有云技术已经非常成熟,各行各业都在上云。有的客户本身有自建IDC,想实现数据迁移或者公有云 本地IDC混合云运行模式,就需要打通IDC与公有云之间的内网,目前腾讯云有两个方案:
- 专线----自建IDC与公有云之间通过运营商、专线服务商等第三方打通物理专线。适用于长期两地传输重要数据,同时对两地内网通信有高质量保障要求的业务。
优点:线路相对稳定,传输质量较高。
缺点:实施成本较高,实施耗时较长。
- V**----自建IDC与公有云之间通过公网建立一条V**通道,实现两地内网通信。
优点:实施成本相对较低,实施耗时端,可以在短时间内快速打通两地内网。
缺点:依赖于两点公网传输质量,稳定性、可用性相对较低。
腾讯云上有V**网关可以直接购买,对端IDC可以采用支持ipsecV**的硬件防火墙、路由器或者一台有公网出口能力的linux服务器。本文重点讲解如何在linux服务器上使用strongswan自建ipsecV**网关实现IDC与云的内网通信。
环境说明:
一台北京云主机安装strongswan(模拟客户IDC)
centos7.5 strongswan U5.7.2/K3.10.0-862.el7.x86_64
一台腾讯云上的V**网关,地域广州
一台腾讯云上广州地域的云主机
网络拓扑:
配置strongswan
1.环境准备,关闭防火墙或者同时在防火墙、安全组放通udp500,4500以及esp包。
代码语言:javascript复制
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
vim /etc/selinux/config
SELINUX=disabled #关闭selinux
或者:
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
2.开启ip转发功能
代码语言:javascript复制
echo 1 > /proc/sys/net/ipv4/ip_forward
3.安装strongswan
代码语言:javascript复制
yum install strongswan -y
4.配置ipsec协商参数
代码语言:javascript复制
cp ipsec.conf ipsec.conf.bak #备份配置文件
vim /etc/strongswan/ipsec.conf
config setup
# strictcrlpolicy=yes
uniqueids = never
# Add connections here.
conn �fault
ikelifetime=3600s #IPSec SA协商间隔
keylife=86400s #ISAKMP SA协商间隔
rekeymargin=3m #密钥更新间隔
keyingtries=1 #ISAKMP SA协商次数
keyexchange=ikev1 #IKE版本,目前云上支持V1
ike=3des-md5-modp1024 #ike的加密算法、认证算法、DH group,两边要保持一致
esp=3des-md5-modp1024 #ipsec的加密算法、认证算法、PFS(完美向前密钥)
authby=secret #认证方式
type=tunnel
conn qcloud
leftauth=psk #采用预共享密钥
left=172.16.0.6 #本端IP,这里因云上CVM的公网IP是在TGW上用NAT映射过来的,所以只能填写服务器的内网IP,采用NAT穿透与对端建立V**
leftsubnet=172.16.0.0/16 #本端需要与对端通信的内网IP地址段
leftid=152.136.41.251 #本端标示
right=203.195.196.214 #对端公网IP
rightsubnet=10.0.1.0/24 #对端需要与本端通信的内网地址段
rightid=203.195.196.214 #对端标示
rightauth=psk #采用预共享密钥
auto=route #连接方式,可选"add,route,start,ignore","add"表示手动,"route"表示由连接触发,"start"表示自启,"ignore"表示忽略该策略
type=tunnel #隧道模式
5.设置预共享密钥
代码语言:javascript复制
vim /etc/strongswan/ipsec.secrets
203.195.196.214 152.136.41.251 : PSK "qcloud" #注意格式为本端公网ip 空格 对端公网ip 空格 冒号 空格 PSK 空格 双引号具体密钥
6.设置日志保存位置--可选
注意5.7的版本比5.6有了很多变化,各选项配置文件都分离了,目录集中在 /etc/strongswan/strongswan.d,其中charon.conf文件里可以修改V**默认的upd端口号,具体功能可以自行研究。这里我们只讲日志的配置方式,便于在V**联调过程中通过日志调试。
代码语言:javascript复制
cd /etc/strongswan/strongswan.d
cp charon-logging.conf charon-logging.conf.bak
vim charon-logging.conf
charon {
filelog {
charon-debug-log {
path = /var/log/strangswan.V**.log
time_format = %b %e %T
default = 2
mgr = 0
net = 1
enc = 1
asn = 1
job = 1
ike_name = yes
append = no
flush_line = yes
}
}
}
7.启动服务
代码语言:javascript复制
systemctl start strongswan #启动服务
systemctl enable strongswan #设置开机启动
systemctl status strongswan #查看服务运行状态与部分最近日志
8.在VPC控制台增加去往对端内网的路由,下一跳指向本云主机
官网地址:https://console.cloud.tencent.com/vpc/route?fromNav
配置腾讯云上的V**通道
1.登录云控制台购买V**网关
官网购买地址:https://console.cloud.tencent.com/vpc/V**Gw
2.创建V**通道
官网链接:https://console.cloud.tencent.com/vpc/V**Conn?fromNav
3.在VPC控制台增加路由
官网地址:https://console.cloud.tencent.com/vpc/route?fromNav
4.用ping从任意一端发起访问流量,激活V**通道。
至此,客户自建IDC内网已经与云上VPC内网通过IPsecV**打通,客户可以迁移数据上云也可以运行本地IDC 腾讯云混合云模式来服务自己的业务。