跨云应用部署第一步:使用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所 ...
随机推荐
- HtmlHelper拓展实现CheckBoxList
经过一番折腾(主要是SelectList这个类操作有些繁琐)实现了CheckBoxList,过程RadioList基本一样 拓展方法 public static MvcHtmlString Check ...
- visual studio 2015 开发android
转载请注明: http://www.cnblogs.com/sunyl/p/5493249.html http://www.cnblogs.com/sunyl/ 最近有不少新闻, 甲骨文向谷歌索赔93 ...
- Delphi 取得 iOS 辅助使用里的字型大小
说明:在 iOS 里有一个人性化的辅助设定,可以将字体放大,但这个设定对 Delphi 是不起作用的,还好 Delphi 提供了这个 iOS API 可以取得. 开发环境:Delphi 10 Seat ...
- C#封装程序集自定义类方法注释提示
一.为什么使用封装程序集: 在很多分布式应用程序开发中,针对每一种功能可能条用的接口不一样,往往习惯将需要被调用的接口,封装成DLL给调用方应用后使用,这样既规范了调用的方式,又避免了调用出现参数请求 ...
- 使用NPOI读取Excel到DataTable
一.NPOI介绍: 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office ...
- [原创小工具]软件内存、CPU使用率监视,应用程序性能监测器 v3.0 绿色版
应用程序性能监测器 V3.0 更新内容: 1.对一些代码进行了修改,软件本身的性能有所提升. 应用程序性能监测器 V2.0 更新内容: 1.鼠标移动到曲线区域,显示相关的曲线值 ...
- 关于checkbox的全选和反选实例
<script type="text/javascript"> $(function () { $("#checkAll").click(funct ...
- position: fixed用在iframe里面失效了
iframe真是各种坑啊,,,可是找不到别的代替 $(parent.window).scroll(function(){ $('固定元素').css({ top : $(parent.window). ...
- jquery-懒加载技术(简称lazyload)
第一:lazyLoad简介及作用 网站性能优化的插件,提高用户体验. 页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片 ...
- Dev TreeList 总结
1.表格的要求:如果要求有父子节点关系,则必须有ID和ParentID字段,并且父节点ParentID字段必须指向ID字段. 2.Access表格在穿入DATATABLE的时候,要想表现出父子节点关系 ...