设为首页 加入收藏

TOP

上云之路之企业级云上网络解决方案(一)
2019-09-17 18:52:43 】 浏览:70
Tags:云之路 企业级 云上 网络 解决方案

2017年,越来越多的企业处于内部部署解决方案和云环境拆分的混合IT世界中。为了适应产品的服务模式和公司未来的业务运营模式,结合公司2018年业务发展计划。计划将部分系统迁移部署在云平台,从而产生对混合云策略的需求,为企业产品提供更大的灵活性以及更多部署工作负载的选项。

混合云

在“互联网+”国家战略的驱动下,越来越多的业务应用需要通过互联网来提供服务,公有云因此受到越来越多的用户亲睐,然而对于传统IT的核心数据与业务,受安全性、兼容性等多方面因素的影响,无法采用公有云来承载,此因混合云成为企业云架构的不二之选。

混合云对于已有自建IDC的企业实现云化有很大的好处:按需定制,满足业务的个性化需求;多级容灾,能够规避单一的采购商风险;兼得私有环境安全独立的优势和公有云弹性伸缩、快速编排定制的优势;最后,对已有的IT重资产最大化的保护和利用,极大降低成本。

解决方案

产品对比

混合云私网通信包括两类产品:专线(高速通道)和VPN,两者没有绝对的优劣,只是所针对的客户定义不同。

专线就是自建高速公路,具有网络带宽高、时延低的优点,但是建设周期长,成本更高;VPN就是在公有网络上承包一条线路作为专用,价格更为经济便宜,而且即开即用,但是时延相对专线来说更高。

高速通道 (物理专线)

帮助不同网络环境间实现高速、稳定、安全的私网通信,包括云上跨地域/跨用户的VPC内网互通、云下IDC专线接入云上等场景,提高网络拓扑灵活性和跨网通信质量。

网络整体架构

通用方案 (云购VPN)

VPN网关是一款基于Internet,通过加密通道将企业数据中心、企业办公网络、或internet终端和阿里云专有网络(VPC)安全可靠连接起来的服务。阿里云VPN网关在国家相关政策法规下提供服务,不提供访问Internet功能。

云上网络架构

基于阿里云VPC和相关产品,用户可自主规划并搭建满足各种业务场景下的网络架构。

本架构能够解决

  • 云上网络安全隔离
  • 应对海量访问流量
  • 云上云下数据互通
  • 多业务共享带宽

网络整体架构

通用方案(自建VPN)

云上VPC和私有IDC是如何实现IPSEC-VPN对接的。如上图所示,右边边为云上VPC,且VPC上有多台ECS,左边是私有IDC,IDC里包含传统的服务器,两端都是私网口。

IPsec VPN 服务器

Docker 上的 IPsec VPN 服务器,使用这个 Docker 镜像快速搭建 IPsec VPN 服务器。支持 IPsec/L2TP 和 Cisco IPsec 协议。本镜像以 Debian 9 (Stretch) 为基础,并使用 Libreswan (IPsec VPN 软件) 和 xl2tpd (L2TP 服务进程)。

安装 Docker

首先,在你的 Linux 服务器上 安装并运行 Docker。

yum update
yum install docker -y

下载镜像

预构建的可信任镜像可在 Docker Hub registry 下载:

docker pull hwdsl2/ipsec-vpn-server

如何使用镜像

环境变量

这个 Docker 镜像使用以下三个变量,可以在一个 env 文件中定义。执行以下命令,vim vpn.env:

Define your own values for these variables
# - DO NOT put "" or '' around values, or add space around =
# - DO NOT use these special characters within values: \ " '
VPN_IPSEC_PSK=your_ipsec_pre_shared_key
VPN_USER=your_vpn_username
VPN_PASSWORD=your_vpn_password

这将创建一个用于 VPN 登录的用户账户,它可以在你的多个设备上使用 。 IPsec PSK (预共享密钥) 由 VPN_IPSEC_PSK 环境变量指定。 VPN 用户名和密码分别在 VPN_USER 和 VPN_PASSWORD 中定义。

注: 在你的 env 文件中,不要为变量值添加 "" 或者 '',或在 = 两边添加空格。不要在值中使用这些字符:  " '。

运行 IPsec VPN 服务器

重要: 首先在 Docker 主机上加载 IPsec NETKEY 内核模块:

sudo modprobe af_key

使用本镜像创建一个新的 Docker 容器 (将 ./vpn.env 替换为你自己的 env 文件):

docker run \
    --name ipsec-vpn-server \
    --env-file ./vpn.env \
    --restart=always \
    -p 500:500/udp \
    -p 4500:4500/udp \
    -v /lib/modules:/lib/modules:ro \
    -d --privileged \
    hwdsl2/ipsec-vpn-server
获取 VPN 登录信息

如果你在上述 docker run 命令中没有指定 env 文件,VPN_USER 会默认为 vpnuser,并且 VPN_IPSEC_PSK 和 VPN_PASSWORD 会被自动随机生成。要获取这些登录信息,可以查看容器的日志:

docker logs ipsec-vpn-server

查看服务器状态

如需查看你的 IPsec VPN 服务器状态,可以在容器中运行 ipsec status 命令:

docker exec -it ipsec-vpn-server ipsec status

或者查看当前已建立的 VPN 连接:

docker exec -it ipsec-vpn-server ipsec whack --trafficstatus

脚本一键安装

首先,在你的 Linux 服务器* 上全新安装一个 Ubuntu LTS, Debian 或者 CentOS 系统。

使用以下命令快速搭建 IPsec VPN 服务器:

wget https://git.io/vpnsetup -O vpnsetup.sh && sudo sh vpnsetup.sh

如果使用 CentOS,请将上面的地址换成 https://git.io/vpnsetup-centos。 你的 VPN 登录凭证将会被自动随机生成,并在安装完成后显示在屏幕上。

你也可以将你自己的 VPN 登录凭证定义为环境变量:

# 所有变量值必须用 '单引号' 括起来
# *不要* 在值中使用这些字符:  \ " '
wget https://git.io/vpnsetup -O vpnsetup.sh && sudo \
VPN_IPSEC_PSK='你的IPsec预共享密钥' \
VPN_USER='你的VPN用户名' \
VPN_PASSWORD='你的VPN密码' sh vpnsetup.sh

IPsec/L2TP VPN 客户端

Linux(CentOS )

首先安装以下软件包:

yum -y install epel-release
yum -y install strongswan xl2tpd

配置 strongSwan

编辑/etc/strongswan/ipsec.conf文件

# ipsec.conf - strongSwan IPsec configuration file

# basic configuration

config
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇干货:软件架构详解 下一篇泛型的定义、用法与类型通配符的..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目