随着公有云的普及,越来越多的客户将关键应用迁移到云端。但是事实证明,没有哪家云服务提供商可以提供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中国版的更多相关文章

  1. 跨云厂商部署 k3s 集群

    原文链接:https://fuckcloudnative.io/posts/deploy-k3s-cross-public-cloud/ 最近一两年各大云服务商都出了各种福利活动,很多小伙伴薅了一波又 ...

  2. windows azure中国 里面建立一个虚拟机,与虚拟机建立通信 里面部署IIS,外网访问

    在windows azure中国 里面建立一个虚拟机,里面部署IIS,外网不能访问么? 外网访问的地址是给的那个DNS地址 ,比如我的是 DNS 名称 urbanairserver.cloudapp. ...

  3. Openstack(企业私有云)万里长征第一步——安装

    一.前言 单位新进了十几台服务器,建了一个高标准的一体化机房,状似刘姥姥进大观园的我,从机房规划到企业私有云搭建一一重头学来,除了机房泥墙其他基本都涉猎到了. 从企业私有云这个名字就能看出这是多么复杂 ...

  4. Windows Azure案例分析: 选择虚拟机或云服务?

    作者 王枫 发布于2013年6月27日 随着云计算技术和市场的日渐成熟,企业在考虑IT管理和运维时的选择也更加多样化,应用也从传统部署方式,发展为私有云.公有云.和混合云等部署方式.作为微软核心的公有 ...

  5. 实现跨云应用——基于DNS的负载均衡

    “公有云可以作为传统IT资源的延展,能帮助客户应对不断变化的需求”——这是我们在向客户介绍公有云产品时经常说的一句话.我们来看一个具体的需求: 某客户有一个web站点,部署在自有的数据中心(on-pr ...

  6. 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序

    原文 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 Jim ...

  7. 网站部署到Windows Azure Website上

    使用CSDN Code将网站部署到Windows Azure Website上 在云计算时代,开发和部署应该是完全统一和集成的.在海外,开发者可以用github来管理他们的代码,并且直接部署到Wind ...

  8. 使用CSDN Code将网站部署到Windows Azure Website上

    在云计算时代,开发和部署应该是完全统一和集成的.在海外,开发者可以用github来管理他们的代码,并且直接部署到Windows Azure上.随着Windows Azure在国内的发布,我们发现,其实 ...

  9. Windows Azure Camp---漫步云端,创意无限

    不再需要一系列繁杂的网银密码,一键搞定所有的支付:与朋友约会时通过实时分享地理位置迅速找到对方,这些都可以在WindowsAzure平台得以实现.在刚刚结束的2013年微软学生夏令营中,来自全国30所 ...

随机推荐

  1. 获取documents、tmp、app、Library的路径的方法

    phone沙箱模型的有四个文件夹: documents,tmp,app,Library 1.Documents      您应该将所有的应用程序数据文件写入到这个目录下.这个目录用于存储用户数据或其它 ...

  2. ActiveX(一)第一个简单的Demo

    说道ActiveX,我的第一直觉就是Flash,利用ActiveX.我们可以创建丰富的可交互式应用程序.同时.利用ActiveX特性.我们可以实现Js 与 ActiveX 的无缝连接(包括数据共享.和 ...

  3. 一个简单得不能再简单的“ORM”了

    本文适合初学者,老鸟请点赞即走,谢谢. 文字功底有限,表述不恰当的地方,请各位多多包涵. 一,核心 现在ORM已经很多了,功能也齐全了,大家说我这是干无聊的事,造的连车轮子都还不算,反正我就当学习. ...

  4. [WCF编程]10.操作:事件

    一.事件概述 基础的WCF回调机制并不能阐明客户端与服务之间交互的本质.双向回调的规范使用可以通过事件来完成.客户端发生的相关事项都可以通过事件通知客户端或者多个客户端.事件可能源于直接的客户端调用, ...

  5. DOM官方定义

    DOM Document Object Model 文档对象模型 DOM的官方定义:W3C的DOM,可以使程序或者脚本(JS或AS\JScript),动态的访问或者操作文档的内容.结构.样式. DOM ...

  6. python基础之异常处理

    Python3 错误和异常 作为Python初学者,在刚学习Python编程时,经常会看到一些报错信息,在前面我们没有提及,这章节我们会专门介绍. Python有两种错误很容易辨认:语法错误和异常. ...

  7. 【小贴士】【stringify神BUG】【localstorage失效】【消灭Safari alert框】【是否延迟加载】【页面10px白屏】

    前言 最近碰到几个恶心问题,也发现一点优化技巧,以及对Hybrid知识的一些整理,这里便一并拿出来做分享了,关于Hybrid的调试,会是我今后一个重点 我的博客首先是学习笔记,方便自己做知识沉淀,以后 ...

  8. 浅谈网站web框架的本质

    一.web框架的本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. import socket def handle_reques ...

  9. SharePoint 2013 网站搜索规则的使用示例

    前言 SharePoint 2013搜索中,有一个非常好用的细化搜索结果的功能,就是“查询规则”.可以通过对于某些特定查询时,起到细化显示结果的作用.下面,我们简单的介绍一下该功能的使用和效果. 1. ...

  10. Android—自定义控件实现ListView下拉刷新

    这篇博客为大家介绍一个android常见的功能——ListView下拉刷新(参考自他人博客,网址忘记了,阅读他的代码自己理解注释的,希望能帮助到大家): 首先下拉未松手时候手机显示这样的界面: 下面的 ...