专栏首页云网络社区在linux服务器上使用strongswan自建ipsecV**网关实现IDC与云的内网通信配置实例
原创

在linux服务器上使用strongswan自建ipsecV**网关实现IDC与云的内网通信配置实例

前言:  

    公有云技术已经非常成熟,各行各业都在上云。有的客户本身有自建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包。

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转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

3.安装strongswan

yum install strongswan -y

4.配置ipsec协商参数

cp ipsec.conf ipsec.conf.bak  #备份配置文件
vim /etc/strongswan/ipsec.conf 
config setup
	# strictcrlpolicy=yes
	 uniqueids = never

# Add connections here.
conn %default
    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.设置预共享密钥

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**联调过程中通过日志调试。

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.启动服务

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+腾讯云混合云模式来服务自己的业务。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 浅析金融大数据安全

    *本文原创作者:mcvoodoo,本文属FreeBuf原创奖励计划,转载请联系help@freebuf.com 随着大数据的发展,从银行到P2P再到保险、证券等...

    FB客服
  • 深度 | 拓扑数据分析TDA,有望打破人工智能黑箱的神奇算法

    机器之心
  • P4:开创数据平面可编程时代

    现有的SDN解决方案将控制平面与转发平面分离,并为我们提供了控制平面的可编程能力。而事实上,目前通过软件编程实现的控制平面的功能,在传统的高级交换机和路由器上也...

    SDNLAB
  • 两分钟看完一道投机取巧的算法题

    题目来源于 LeetCode 上第 326 号问题:3 的幂。题目难度为 Easy,目前通过率为 43.5% 。

    五分钟学算法
  • 你也认为12306。。。

    今天,12306数据泄露莫名其妙地被炒起来了。。。这年头想火还真是简单。12306数据泄露传言是来自一个公众号,说暗网中贩卖12306数据。。。

    七夜安全博客
  • 计算机最早提高性能的方法

    随着本系列进展,我们知道计算机进步巨大,从 1 秒 1 次运算,到现在有千赫甚至兆赫的CPU,这是很大的计算量。

    硬核编程
  • 18.6.30日报

    1,增加wkeInsertCSSByFrame等接口,适配electron的webview需要

    龙泉寺扫地僧
  • 「交互式梦境」首次被验证:睡着后,还能回答数学问题

    没错,尽管科学家现在还没法成为为周公,为人「解梦」,但他们已经开始尝试和睡着的人对话。

    量子位
  • 用Solidity语言通过以太坊钱包开发hello world示例

    使用以太坊钱包开发实现经典的HelloWord智能合约类。本文中,我们将看到如何编写简单的合约并将其部署到区块链上。我们还将通过发送和读取数据来了解如何与我们的...

    笔阁
  • 位图数据结构及其在-Java和-Redis中的应用

    什么是位图?BitMap,大家直译为位图. 我的理解是:位图是内存中连续的二进制位(bit),可以用作对大量整形做去重和统计.

    呼延十

扫码关注云+社区

领取腾讯云代金券