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国际版和中国版的。接下来我们就一起进行一次尝试。

准备工作:

  1. Microsoft Azure PowerShell,从官方下载最新版的安装即可。
  2. Microsoft Azure国际版订阅和中国版订阅各一个。
  3. 在Microsoft Azure PowerShell中下载并导入两个订阅的publishsettings文件。

注意事项:

  1. Microsoft Azure版需要使用传统的Service Management模式;
  2. 为方便操作,建议使用旧版的Microsoft Azure国际版管理控制台(manage.windowsazure.com);
  3. 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中国版的控制台上点击“连接”,稍等一会就看到连接成功的提示了!

使用VNET-to-VNET连接Microsoft Azure国际版和中国版-LMLPHP

使用VNET-to-VNET连接Microsoft Azure国际版和中国版-LMLPHP

在虚拟机之间使用scp进行文件复制,发现速度并不是太快,可能是我用了2个basic A0虚拟机的原因。

使用VNET-to-VNET连接Microsoft Azure国际版和中国版-LMLPHP

BTW:

这个连接方案对于同时使用Windows Azure中国版和Microsoft Azure国际版的客户是非常有意义的。例如MNC企业用户或者有海外业务需求的中国用户。

如果客户同时使用硬件防火墙/路由器把数据中心/本地办公室连接到Windows Azure中国版的,那么就组成了一个Multiple Site VPN连接,在本地数据中心/办公室可以直接通过内网地址访问Microsoft Azure国际版。(当然,要实现科学上网也就很容易了...)

04-28 11:28