跨云应用部署第一步:使用IPSEC VPN连接AWS中国版和Windows Azure中国版
随着公有云的普及,越来越多的客户将关键应用迁移到云端。但是事实证明,没有哪家云服务提供商可以提供100%的SLA,无论是例行维护还是意外中断服务,对于客户的关键应用而言,都会受到不同程度的影响。此外,不同的云服务提供商,其提供的云服务也存在较大的差异化,包括云服务和产品的功能、质量、收费模式等方面。客户选择多样化的、最适合的、性价比最高的云服务和产品来满足自己的业务需求是必然的趋势。公有云应用占比越高的客户,其跨云应用部署的需求也越大——都不想把鸡蛋放在一个篮子里,或者是被某个云服务提供商绑架。
跨云应用部署,首先要解决网络连接问题。尽管可以通过ACL来控制网络连接,但是关键、敏感数据的传输总是要走加密隧道的,否则无法满足安全合规要求。虽说各大公有云提供商都号称自己是开放的云平台(实质上也基本是这样的,少数国内厂商除外),但也绝对不可能开放到允许友商的专线接入到自己的数据中心!目前,能实现安全跨云互联的,也只有VPN方案可以选择了。
接下来,我们试着将Windows Azure中国版和AWS中国版通过IPSEC VPN连接起来。
Windows Azure中国版端配置:
Windows Azure中国版提供了IPSEC VPN接入服务,即:site to site VPN。在配置方面,与使用硬件防火墙/路由器连接到on-premises的数据中心没有区别。
1、新建一个虚拟网络并分配内网地址段,内网地址段不要和AWS中国版的VPC地址段有冲突。不要勾选启用point to site VPN。
2、新建一个本地网络,网关填写AWS中国版端EC2上绑定的elastic ip,地址段为EC2所在的VPC的subnet地址段。
3、在虚拟网络配置中勾选site to site VPN。
4、创建一个静态网关,一定要是静态网关,OpenSwan不支持动态网关。
创建网关比较慢,大约需要等待20分钟左右。
AWS中国版端配置:
由于AWS中国版目前还不提供IPSEC VPN接入功能,虽然在VPC中能创建Virtual Private Gateway,也能将创建的Virtual Private Gateway绑定的VPC,但是Customer Gateway和VPN Connection两项是不可见的。因此我们只能使用运行Linux的EC2实例来作为IPSEC VPN接入网关。这里我们选用一个运行Ubuntu 14.04 LTS x64的t2.micro实例。如果是生产环境可以适当提升EC2实例的配置,但不需要太高,例如:m1.small。软件推荐OpenSwan,免费、配置相对简单,兼容性好。当然,如果条件允许或者有特殊的需求,可也可以使用支持AWS EC2部署的商业版软件VPN方案,例如Cisco CSR 1000V、VNS3等。
1、创建一个VPC并在其中创建subnet,地址段不要和Windows Azure中国版端虚拟网络的内网地址发生冲突。
2、为VPC配置(创建或指定)internet gateway和route table。
3、创建一个运行Ubuntu 14.04 LTS x64的t2.micro EC2实例,并将该实例放到上一步创建的VPC中。
4、为EC2实例配置(创建或指定)security group,elastic ip和固定的内网地址。
5、将EC2实例设置为:Disable Source/Destination Check。
6、在VPC的route table中加入一条路由记录,destination:Windows Azure中国版端虚拟网络的内网地址段,target:上一步创建的EC2实例的ID。
7、通过SSH登陆到创建好的EC2实例中,安装和配置OpenSwan:
更新操作系统
sudo apt-get update
安装OpenSwan
sudo apt-get install openswan
编辑配置文件
sudo vim /etc/ipsec.conf
将以下内容复制到配置文件中
version 2.0 # conforms to second version of ipsec.conf specification
config setup
dumpdir=/var/run/pluto/
nat_traversal=yes
virtual_private=%v4: #AWS端EC2实例所在的内网地址段
oe=off
protostack=netkey
conn azure-cn
authby=secret
auto=start
type=tunnel
left=10.11.2.237 #AWS端EC2实例的内网地址
leftsubnet= #AWS端EC2实例所在的内网地址段
leftnexthop=%defaultroute
right=42.159.xxx.xxx #Windows Azure端VPN Gateway的公网地址
rightsubnet= #Windows Azure端虚拟网络的内网地址段
#ike=3des-sha1-modp1024,aes128-sha1-modp1024 #Windows Azure中国版需要注释掉这一行,Microsoft Azure国际版保留这一行。
esp=3des-sha1,aes128-sha1
pfs=no
编辑配置文件sudo vim /etc/ipsec.secrets
按照以下格式在配置文件中添加一行[AWS端EC2实例的内网地址] [Windows Azure端VPN Gateway的公网地址] : PSK "[Windows Azure端提供的VPN共享密钥]"示例:10.11.2.237 42.159.xxx.xxx : psk "XgtX5rfhMeann9C4mLpnj7VwPia"
编辑配置文件,启用IP转发sudo vim /etc/sysctl.conf去掉net.ipv4.ip_forward=1一行前面的注释(#)
执行命令使IP转发生效sudo sysctl -p /etc/sysctl.conf
重新启动ipsec服务sudo ipsec secretssudo service ipsec restart
查看ipsec服务状态sudo service ipsec status
如果一切正常的话,可以看到AWS端IPSEC tunnel已经成功建立,在Windows Azure端site to site VPN的连接状态也是正常联通的(绿色的连接线)。在AWS端可以使用内网地址ping通Windows Azure端的虚拟机。
简单的做了一个测试,通过IPSEC VPN连接后,使用scp从AWS中国版cn-north-1的虚拟机上下载Windows Azure中国版china north虚拟机上的文件,速度能达到10MB/s,基本上是跑满了Windows Azure standard VPN Gateway所能提供的速度。看起来AWS中国版和Windows Azure中国版的网络互联互通效果还是很不错的。

跨云应用部署第一步:使用IPSEC VPN连接AWS中国版和Windows Azure中国版的更多相关文章
- 跨云厂商部署 k3s 集群
原文链接:https://fuckcloudnative.io/posts/deploy-k3s-cross-public-cloud/ 最近一两年各大云服务商都出了各种福利活动,很多小伙伴薅了一波又 ...
- windows azure中国 里面建立一个虚拟机,与虚拟机建立通信 里面部署IIS,外网访问
在windows azure中国 里面建立一个虚拟机,里面部署IIS,外网不能访问么? 外网访问的地址是给的那个DNS地址 ,比如我的是 DNS 名称 urbanairserver.cloudapp. ...
- Openstack(企业私有云)万里长征第一步——安装
一.前言 单位新进了十几台服务器,建了一个高标准的一体化机房,状似刘姥姥进大观园的我,从机房规划到企业私有云搭建一一重头学来,除了机房泥墙其他基本都涉猎到了. 从企业私有云这个名字就能看出这是多么复杂 ...
- Windows Azure案例分析: 选择虚拟机或云服务?
作者 王枫 发布于2013年6月27日 随着云计算技术和市场的日渐成熟,企业在考虑IT管理和运维时的选择也更加多样化,应用也从传统部署方式,发展为私有云.公有云.和混合云等部署方式.作为微软核心的公有 ...
- 实现跨云应用——基于DNS的负载均衡
“公有云可以作为传统IT资源的延展,能帮助客户应对不断变化的需求”——这是我们在向客户介绍公有云产品时经常说的一句话.我们来看一个具体的需求: 某客户有一个web站点,部署在自有的数据中心(on-pr ...
- 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序
原文 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 Jim ...
- 网站部署到Windows Azure Website上
使用CSDN Code将网站部署到Windows Azure Website上 在云计算时代,开发和部署应该是完全统一和集成的.在海外,开发者可以用github来管理他们的代码,并且直接部署到Wind ...
- 使用CSDN Code将网站部署到Windows Azure Website上
在云计算时代,开发和部署应该是完全统一和集成的.在海外,开发者可以用github来管理他们的代码,并且直接部署到Windows Azure上.随着Windows Azure在国内的发布,我们发现,其实 ...
- Windows Azure Camp---漫步云端,创意无限
不再需要一系列繁杂的网银密码,一键搞定所有的支付:与朋友约会时通过实时分享地理位置迅速找到对方,这些都可以在WindowsAzure平台得以实现.在刚刚结束的2013年微软学生夏令营中,来自全国30所 ...
随机推荐
- 固定在网页顶部跟随滚动条滑动而滑动的DIV层
在一个页面放2个悬浮框,悬浮框随页面的上下滚动有上下波动的效果,最终固定在同一位置 体验效果:http://hovertree.com/texiao/jsstudy/1/ 代码如下: <!DOC ...
- 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图
[源码下载] 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Co ...
- 改进uwsgi启动脚本,使其支持多个独立配置文件
最近在研究flask,在架设运行环境的时候犯了难.因为我想把每个独立的应用像NGINX处理多个网站那样,每个应用单独一个配置文件.而网上流传的uwsgi启动脚本都只支持单个配置文件.虽然有文章说可以把 ...
- java良好的编码习惯
1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步 ...
- 14、ASP.NET MVC入门到精通——Ajax
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 Unobtrusive Ajax使用方式(非入侵式) 非入侵式,通俗来讲:就是将嵌入在Html中的JavaScript全部取出来,放在单独的 ...
- jQuery实现选项联动轮播
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- npm插件制作及发布基础教程
最近有同事在搞npm插件,想用了这么久的npm也没有自己制作一个插件出来练一练,所以动手把之前的图片随手势移动的react组件改写成了npm插件,之前的博客地址http://www.cnblogs.c ...
- iOS 开发中的争议(一)
序言 打算分享一些有争议的话题,并且表达一下我的看法.这是该系列的第一篇,我想讨论的是:类的成员变量应该如何定义? 在 Objective-C 的语言的早期,类的私有成员变量是只能定义在 .h 的头文 ...
- React Native知识7-TabBarIOS组件
一:简介 两个TabBarIOS和TabBarIOS.Item组件可以实现页面Tab切换的功能,Tab页面切换的架构在应用开发中还是非常常见的.如:腾讯QQ,淘宝,美团外卖等等 二:TabBarIOS ...
- Android中Listview点击item不变颜色以及设置listselector 无效
Android中Listview点击item不变颜色以及设置listselector 无效 这是同一个问题,Listview中点击item是会变颜色的,因为listview设置了默认的listsele ...