You need to enable JavaScript to run this app.
导航

VPN网关与本地VPN网关打通

最近更新时间2023.02.14 17:01:57

首次发布时间2022.04.06 10:02:58

前言

本文档介绍使用VPN网关与本地VPN打通

关于实验

预计部署时间:45 分钟
级别:初级
相关产品:VPN
受众: 通用

前提条件

  • 已开通账号并完成实名认证。如果还没有火山引擎账号,点击此链接注册账号

  • 已在本地数据中心就近地域创建VPC1及其子网,具体操作请参见创建私有网络

  • 本地数据中心网关支持IKE V1和IKE V2协议

  • 本地数据中心的网关设备有静态公网IP

  • 本地数据中心网段与VPC1的网段不冲突

客户端10.0.0.231
服务端192.168.1.195
客户端网段10.0.0.0/8
服务端网段192.168.0.0/16

部署方法

第一步:创建配置VPN网关

  1. 创建VPN网关https://console.volcengine.com/vpn/region:vpn+cn-beijing/vpnGateway

    配置以下信息
    a.名称
    b.带宽规格
    c.私有网络VPC (选择云上需要VPN打通的VPC网络),本实例为192.168.0.0/16
    d.子网192.168.1.0/24
    e. 购买时长





  1. 配置用户网关

    该地址为本地网关公网IP地址,例如ECS上挂载的公网EIP




  1. 创建IPsec连接



连接信息配置

VPN网关:选择上一步创建的VPN网关
  本端网段:选择需要通信的子网地址
  对端网段:对端本地网段
  预共享密钥: 12345678


IKE配置


IPsec配置



第二步:部署strongswan

  1. 以云主机为例,部署strongswan

    创建云服务器可参考https://www.volcengine.com/docs/6396/161464

登陆到云服务器中,执行以下步骤

[root@vpn ~]# yum -y install epel-release

#检查源中是否有strongswan包
[root@vpn ~]# yum provides strongswan   
 * epel: mirror.lzu.edu.cn
strongswan-5.7.2-1.el7.x86_64 : An OpenSource IPsec-based VPN and TNC solution
源    :epel

#安装strongswan 
[root@vpn ~]# yum -y install strongswan 

#检查是否安装成功
[root@vpn ~]# strongswan version  
Linux strongSwan U5.7.2/K3.10.0-1160.el7.x86_64

  1. 配置ipsec.conf文件(复制时请把# 注释删除掉)

    1. 注意: 认证算法、加密算法等需要与云上VPN配置一致
    [root@vpn strongswan]# cat /etc/strongswan/ipsec.conf
    # ipsec.conf - strongSwan IPsec configuration file
    # basic configuration
    
    config setup
        # strictcrlpolicy=yes
         uniqueids = never
    conn %default
        authby=psk     #使用预共享密钥认证方式
        type=tunnel
        
    conn volcvpn
        keyexchange=ikev1              # IPsec 连接使用的IKE版本
        left=10.0.0.231                # 本机IP地址
        leftsubnet=10.0.0.0/8          # 本端网段
        leftid=180.184.70.xx           # 本端网关设备公网地址,或  EIP
        right=180.184.70.xx            # 火山VPN IP地址
        rightsubnet=192.168.0.0/16     # 火山VPC 网段
        rightid=180.184.70.xx          # 火山VPN地址
        auto=start                     # start 为进程主动时立即建立 IPsec 安全连接
        ike=aes-sha1-modp1024          # IPsec 连接中IKE协议的加密算法-认证算法-DH分组
        ikelifetime=86400s             # IKE 协议的  SA  生命周期
        esp=aes-sha1-modp1024          # IPsec 连接中IPsec协议的加密算法-认证算法-DH分组
        lifetime=86400s                # IPsec协议的  SA  生命周期
        type=tunnel
    
  2. 配置ipsec.secrets 预共享密钥

[root@vpn strongswan]# cat /etc/strongswan/ipsec.secrets 
180.184.70.xx  180.184.70.xx : PSK 12345678
  1. 打开系统转发配置
[root@vpn strongswan]# echo 1 > /proc/sys/net/ipv4/ip_forward
  1. 启动StrongSwan
[root@vpn strongswan]# systemctl enable strongswan
[root@vpn strongswan]# systemctl start strongswan
  1. 检查连接状态
查看连接日志
[root@vpn strongswan]# cat /var/log/charon.log |grep establish

显示如下establish 即可
Jan 19 16:00:09 14[IKE] <volcvpn|1> IKE_SA volcvpn[1] established between 10.0.0.231[180.184.70.xx]...180.184.70.70[180.184.70.xx]
Jan 19 16:00:09 14[IKE] <volcvpn|1> IKE_SA volcvpn[1] state change: CONNECTING => ESTABLISHED
Jan 19 16:00:09 15[IKE] <volcvpn|1> CHILD_SA volcvpn{2} established with SPIs c12c80ac_i cc16a423_o and TS 10.0.0.0/8 === 192.168.1.0/24
Jan 19 16:00:09 15[CHD] <volcvpn|1> CHILD_SA volcvpn{2} state change: INSTALLING => INSTALLED

如果未开日志可以在strongswan.conf配置
参考:
[root@vpn strongswan]# cat /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 {
        install_routes = no
        load_modular = yes
         plugins {
                 include strongswan.d/charon/*.conf
 }
        filelog {
                charon {
             path = /var/log/charon.log
             # add a timestamp prefix
             time_format = %b %e %T
             # prepend connection name, simplifies grepping
             ike_name = yes
             # overwrite existing files
             append = no
             # increase default loglevel for all daemon subsystems
             default = 4
             # flush each line to disk
             flush_line = yes
             }
             stderr {
             # more detailed loglevel for a specific subsystem, overriding the
             # default loglevel.
             ike = 2
             knl = 3
             }
           }


第三步:配置路由

  1. 选择创建的vpn网关,点击进入,位置如图

  1. 添加路由条目

    注意:本地如需设备通过VPN访问,需要配置路由指定给IPsec
     
    a. 配置目标网段为本地地址,此示例以10.0.0.0/8为例
    b. 下一跳选择上面创建的IPsec


第四步:测试连通性

  1. 检查实例安全组是否放行https://www.volcengine.com/docs/6396/68919
    a. 在192.168.1.195 实例所在安全组规则增加方向10.0.0.0/8的ICMP方向规则
    b. 在10.0.0.231 实例所在安全组规则增加方向192.168.0.0/16的ICMP方向规则



  2. ping 测试 10.0.0.231 与 192.168.1.195 连通

以上是实验的所有内容