Microsoft Azure的VNET-to-VNET功能可以实现跨虚拟网络的VPN连接,通过VNET-to-VNET互联的两个虚拟网络可以在同一个订阅下或者隶属不同的订阅,而且可以跨数据中心。这实质上就是:VNET-to-VNET可以连接Microsoft Azure平台上的任意两个虚拟网络。
VNET-to-VNET连接是要经过VPN Gateway的,VPN Gateway有固定的公网IP地址,既然这样,理论上VNET-to-VNET是可以连接Microsoft Azure国际版和中国版的。接下来我们就一起进行一次尝试。
准备工作:
- Microsoft Azure PowerShell,从官方下载最新版的安装即可。
- Microsoft Azure国际版订阅和中国版订阅各一个。
- 在Microsoft Azure PowerShell中下载并导入两个订阅的publishsettings文件。
注意事项:
- Microsoft Azure版需要使用传统的Service Management模式;
- 为方便操作,建议使用旧版的Microsoft Azure国际版管理控制台(manage.windowsazure.com);
- VPN Gateway必须是动态路由,不要使用静态路由的VPN Gateway;
配置列表:
配置项 Windows Azure中国版 Microsoft Azure国际版
------------------------------------------------------------------------------------------
虚拟网络区域 北京 东南亚
虚拟网络名称 vnet-t-cn vnet-t-ww
虚拟网络地址 10.11.1.0/ 10.11.2.0/
VPN Gateway公网地址 139.217.19.151 13.76.40.179
本地网络名称 vnet-t-ww vnet-t-cn
本地网络网关 13.76.40.178 139.217.19.151
本地网络地址 10.11.2.0/ 10.11.1.0/
两边的虚拟网络地址段不要冲突,将VPN Gateway公网地址和本地网络网关交叉,将虚拟网络地址和本地网络地址交叉。
PowerShell操作:
选择Windows Azure中国版订阅,执行以下脚本
Set-AzureVNetGatewayKey -VNetName vnet-t-cn -LocalNetworkSiteName vnet-t-ww -SharedKey myvpnkey
选择Microsoft Azure国际版订阅,执行以下脚本
Set-AzureVNetGatewayKey -VNetName vnet-t-ww -LocalNetworkSiteName vnet-t-cn -SharedKey myvpnkey
上述脚本的作用是将两端的Pre-Shared Key设置成一致,这样才能建立IPSEC连接。
在Windows Azure中国版的控制台上点击“连接”,稍等一会就看到连接成功的提示了!
在虚拟机之间使用scp进行文件复制,发现速度并不是太快,可能是我用了2个basic A0虚拟机的原因。
BTW:
这个连接方案对于同时使用Windows Azure中国版和Microsoft Azure国际版的客户是非常有意义的。例如MNC企业用户或者有海外业务需求的中国用户。
如果客户同时使用硬件防火墙/路由器把数据中心/本地办公室连接到Windows Azure中国版的,那么就组成了一个Multiple Site VPN连接,在本地数据中心/办公室可以直接通过内网地址访问Microsoft Azure国际版。(当然,要实现科学上网也就很容易了...)