You need to enable JavaScript to run this app.
导航
搭建云上VPC与AWS自建VPN之间的网络互通
最近更新时间:2024.11.28 14:35:56首次发布时间:2023.12.01 14:23:09

本文为您介绍如何通过火山引擎VPN连接产品,以静态路由的方式建立火山引擎与AWS自建VPN之间的私网访问通道。

前提条件

  • 已开通火山引擎账号并完成实名认证,确保账户中有足够的余额用于购买云服务器、VPN等相关资源。
  • 已在火山引擎创建私有网络VPC-01(网段:192.168.0.0/16)及其子网,并在其中一个子网下创建一台云服务器(IP:192.168.2.88),具体操作请参见创建私有网络购买并使用云服务器实例
  • 已在AWS上创建虚拟私有云VPC-02(网段:172.31.0.0/16)和公有子网,并在公有子网下创建一台EC2实例(若使用CentOS需要提前在Marketplace中订阅))用于部署Strongswan服务,EC2实例的私网地址为172.31.16.111,具体操作请前往AWS官网查看相关产品文档。

    说明

    EC2实例是AWS云中的虚拟服务器,更多介绍参见AWS产品文档什么是 Amazon EC2?

操作说明

在AWS侧的EC2中部署Strongswan服务,并分配一个EIP(54.XX.XX.208)作为VPC-02的公网出口;在火山侧创建VPN连接,并注册AWS侧的信息到用户网关,全部配置完成后发起VPN连接,从AWS侧的EC2中Ping火山侧VPC-01中的云服务器(IP:192.168.2.88),可Ping通则表示网络已打通。

alt

操作步骤

步骤一:在AWS侧为EC2分配公网IP并添加安全组规则

  1. 登录AWS平台,为虚拟私有云VPC-02公有子网下的EC2分配一个EIP作为VPC-02的公网出口,本文为EC2分配的EIP为54.XX.XX.208
  2. 前往EC2绑定的网卡详情页面,禁用EC2的源/目标检查。
    alt
  3. 前往EC2关联的安全组详情页面,添加入站规则,允许如下端口访问。
    • TCP:22
    • UDP:500
    • UDP:4500
      alt
  4. 添加路由,允许火山引擎VPC-01(网段:192.168.0.0/16)访问EC2(私网地址:172.31.16.111)。
    alt

步骤二:在火山引擎侧创建VPN连接

  1. 登录火山引擎VPN连接控制台。
  2. 创建VPN网关,具体操作请参见创建VPN网关
    VPN网关创建成功后,分配的出口IP为180.XX.XX.98
  3. 创建用户网关,相关配置如下图所示,具体操作请参见创建用户网关
    其中IP地址为AWS侧EC2分配的EIP,本示例输入54.XX.XX.208
    alt
  4. 创建IPsec连接,相关配置如下图所示,具体操作请参见创建IPsec连接
    • 连接信息
      alt
    • 高级配置
      alt
  5. 配置VPN网关路由,允许AWS侧VPC网段(172.31.0.0/16)访问,相关配置如下图所示,具体操作请参见添加VPN网关路由
    alt

步骤三:在AWS侧安装Strongswan并发起连接

  1. 登录AWS平台已创建的EC2,安装Strongswan。

    • 如果是Amazon Linux2,以root执行如下命令。
      amazon-linux-extras install epel -y
      yum install strongswan
      
    • 如果是CentOS,需要先订阅,然后以root执行如下命令。
      yum install strongswan	
      
  2. 执行如下命令,查看Strongswan版本。

    strongswan version	
    
  3. 执行命令vim /etc/strongswan/ipsec.conf编辑ipsec.conf文件,编辑完成后需保存。IKE配置和IPsec配置需要与火山引擎创建IPsec连接时的配置一致,本示例配置如下:

    config setup
        # strictcrlpolicy=yes
        # uniqueids = no
    conn sample-self-signed
        # strictcrlpolicy=yes
        # uniqueids = no# Add connections here.conn %default
        authby=psk
        type=tunnel# Sample VPN connectionsconn huoshanyun
        keyexchange=ikev2 #IKE版本需要与火山引擎IPsec连接配置一致,此处为ikev2
        left=172.31.16.111 #AWS侧EC2的私网地址
        leftsubnet=172.31.0.0/16 #AWS侧VPC的网段
        leftid=54.XX.XX.208 #AWS EC2公网IP地址
        right=180.XX.XX.98 #火山引擎侧VPN网关的出口IP
        rightsubnet=192.168.0.0/16#火山引擎侧VPC的网段
        rightid=180.XX.XX.98 #火山引擎侧VPN网关的出口IP
        auto=start
        ike=aes-sha1-modp1024
        ikelifetime=86400s
        esp=aes-sha1-modp1024
        lifetime=86400s
        aggressive=yes	
    
  4. 编辑/etc/strongswan/ipsec.secrets配置IPsec预共享密钥,格式为:{EC2-EIP} {火山引擎VPN网关出口IP} : PSK "火山引擎IPsec连接高级配置中的预共享密钥"
    本示例为:54.XX.XX.208 180.XX.XX.98 : PSK "******"

  5. 执行如下命令,打开系统转发配置。

    echo 1 > /proc/sys/net/ipv4/ip_forward	
    
  6. 执行如下命令,启动Strongswan。

    systemctl enable strongswan
    systemctl start strongswan
    

    检查服务状态,可以看到此时已经有Security Associations连接。
    alt

连通性测试

登录AWS平台已创建的EC2,Ping火山引擎侧VPC-01(网段:192.168.0.0/16)中云服务器的IP192.168.2.88,可Ping通表示已成功建立火山引擎与AWS之间的私网访问通道。
alt