搭建跨订阅的虚拟网络到虚拟网络(VNET-to-VNET)连接,实现更灵活、更复杂的云服务部署

搭建跨订阅的虚拟网络到虚拟网络(VNET-to-VNET)连接,实现更灵活、更复杂的云服务部署

  • Comments 1
  • Likes

 

早前,Microsoft Azure针对虚拟网络(Virtual Network),特别提供了点到站点连接(Point to Site)、站点到站点连接(Site to Site)服务,为IT人员搭建复杂网络,特别是部署混合云(Hybrid Cloud)提供了强大的支持。

但一些技术限制,例如Azure虚拟网络对本地网络只能建立1对1连接,不能建立虚拟网络到虚拟网络之间的连接等,对某些应用场景和需求而言,仍然存在一些差距。

而最新的Azure发布,包括中国区Azure(代号Mooncake,MC),一些突出的亮点就是对多站点到站点连接(Multiple Site to Site)、虚拟网络到虚拟网络(VNET-to-VNET)连接、动态路由网关(Dynamic Routing Gateway)等,这些服务对于搭建更复杂的网络环境,提供更灵活的云服务部署,提供了强大的支持。

新菜品推出,食指大动,自然要先试为快!

恰好手头上有两个Azure MC的订阅,一个订阅里面部署多台SQL Server,采用AlwaysOn技术做了高可用性(High Availability,HA)配置,提供不间断的数据库服务;而另一个订阅里,则是部署一些基于Linux的Web及应用服务器。所要创建的虚拟网络可以分别选择不同的地域,例如中国北部和东部(北京和上海)。

这样的场景也许具有一定的典型性,例如对于某些企业,可能会考虑将数据集中在北京,并进行更深入的数据分析、大数据分析等;而针对分支机构,例如分销、物流、门店等,业务根据地理分布考虑,会分布部署在南方(上海)和北方(北京)。

如果之间通过普通的互联网连接,当然是可以的;但从速度、安全性等方面考虑,建立这两个不同地理位置的不同订阅的直接虚拟网络的连接,也许能更好地满足业务发展的要求。

如下图:

clip_image001

首先,分别在两个订阅中创建新的虚拟网络,如下图:

clip_image002

注意,要选中“配置站点到站点VPN”,如下图:

clip_image003

根据部署需要,指定虚拟网络的地址空间。注意:在搭建虚拟网络到虚拟网络(VNET-to-VNET)连接的时候,连个虚拟网络的地址范围要不能重叠。此外,添加所需要的子网或网关子网。如下图:

clip_image004

对于已经建立的虚拟网络,需要创建网关。注意,这里需要选择动态网关(Dynamic Gateway)类型来创建新的网关。另外,这个过程需要等待时间比较长,大概有一刻钟左右,后台才提示网关创建成功,并提供了网关的IP。

clip_image005

注意,此时会发现,虚拟网络之间尚未建立真正的连接。对于网关IP地址,也可以通过PowerShell脚本命令来获得。具体命令行如下:

Get-AzureVNetGateway -VNetName $vnetname

clip_image006

会发现其返回的VIPAddress和管理门户(Management Portal)上是一致的。后面我们要用到这个VIP地址及vNet名字。

clip_image007

分别在已经建好的虚拟网络(例如vNet1和vNet2)中,将对方加入本地网络。例如,在vNet1中添加本地网络,将vNet2的名称及VPN设备IP地址(即之前得到的VIP地址)填入对话框,如下图:

clip_image008

在管理门户中,可以看到vNet2的相关信息已经加入本地网络中。如下图:

clip_image009

需要注意的是,有的时候,需要更改虚拟网络之前设定的本地网络的设置时,在管理门户中目前是无法完成的,只能通过PowerShell脚本的方式来实现。如下图:

clip_image010

具体做法是在虚拟网络页面下方,点击“导出”,将虚拟网络配置文件保存在本地,修改相关配置,然后再通过重新“导入配置”的方式,将更新后的配置文件上传,完成相关本地网络的配置。

一个典型的配置文件中本地网络部分如下所示:

<LocalNetworkSites>

    <LocalNetworkSite name="vNet2">

        <AddressSpace>

            <AddressPrefix>10.0.0.0/8</AddressPrefix>

        </AddressSpace>

    <VPNGatewayAddress>xx.xx.xx.xx</VPNGatewayAddress>

  </LocalNetworkSite>

  <LocalNetworkSite name="vNet3">

    <AddressSpace>

      <AddressPrefix>172.16.0.0/18</AddressPrefix>

    </AddressSpace>

    <VPNGatewayAddress> xx.xx.xx.xx </VPNGatewayAddress>

  </LocalNetworkSite>

</LocalNetworkSites>

注意:LocalNetworkSite name和VPNGatewayAddress应分别为正确的vNet2名称及VIP地址。

配置的最后一步就是要为两个虚拟网络分别设置同一的网关密钥。具体的PowerShell命令行如下:

Set-AzureVNetGatewayKey –VNetName $vNet1 –LocalNetworkSiteName $vNet2 –SharedKey $samekey

操作成功后,会看到相关的提示信息,如下图:

clip_image011

在虚拟网络界面的下面,点击“连接”,等待两个虚拟网络之间完成连接。如下图:

clip_image012

连接成功后,可以在管理门户中看到,两个虚拟网络已经成功建立连接,如下图:

clip_image013

同时,也可以通过PowerShell命令行,查看虚拟网络的状态,具体命令及运行结果如下:

Get-AzureVNetConnection –VNetName $vNet1

clip_image014

至此,跨订阅的虚拟网络到虚拟网络(VNET-to-VNET)连接已经搭建完成。

总的看来,跨订阅的虚拟网络到虚拟网络(VNET-to-VNET)连接,对于很多复杂配置环境,将提供极大的便利。例如,之前提到的,部署多台SQL Server虚拟机,采用AlwaysOn技术做高可用性(High Availability,HA)配置;同时,也可以将其他的某台SQL Server虚拟机部署在其他订阅的虚拟网络中,甚至部署在异地,从而实现异地容灾方案,确保业务的连续性。

Comments
  • 这个功能看起来不错,就是不知道价格怎么样,是免费的吗

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment