有这样一个需求,客户因为业务需要,分别想在上海和北京两个数据中心分别建立Vnet,但是希望这两个Vnet能实现内网传输,那如何实现不同数据中心的Vnet内网传输呢?这里我们可以通过Vnet-to-Vnet来实现这一需求。
但是实现Vnet-to-Vnet需要注意如下几点:不同的数据中心的Vnet-to-Vnet之间流量是直接走Azure数据中心骨干网穿行的,不会走公网绕行,Vnet-to-Vnet的连接,需要创建Azure Vnet动态路由,不同Vnet的IP Adress不能重叠(这个很好理解,因为同一内网之间IP地址自然不能重叠),这里是不同的数据中心之间的Vnet-to-Vnet连接,还有跨订阅的Vnet-to-vnet连接,其实本质都是一样的。
以下是参考资料链接,原理图如下
我们先来设定本次的实验环境
我们在中国东部创建一个Vnet,名为ChinaEastVnet,在中国北部建立数据中心ChinaNorthVnet,然后分别增加本地网络ChinaEastVnet和ChinaNorthVnet
设置Azure Vnet ChinaEastVnet与本地网络ChinaNorthVnet的site-to-site的vpn连接,同样地设置Azure Vnet ChinaNortVnet与本地网络ChinaEastVnet的site-to-site的vpn连接
在Azure Vnet创建vpn Gateway网关,并设置动态路由,连接vpn Gateway网关
接下来我们按照以上的设想来创建
1.创建分别在中国东部和中国北部建立Vnet为ChinaEastVnet和ChinaNorthVnet
结果如上,建立虚拟网络的过程省略
2.分别建立本地网络ChinaEastVnet和ChinaNorthVnet
结果如下,过程省略:
在这里,笔者要提醒大家一句,vpn网关的IP地址现在只是随便设置的,后面会进行修改,另外一点,也一定要注意,就是我们设置virtual network ChinaEastVnet和ChinaNorthVnet 的IP地址范围要与本地网络的IP 地址范围一致
3.设置Azure Vnet ChinaEastVnet与本地网络ChinaNorthVnet的site-to-site VPN连接
点击虚拟网络ChinaEastVnet,然后点击配置,如下图:
接着按如下要求做好配置,并保存
在这里,笔者要提醒大家一句,一定要记得点击添加网关子网,这一步是必须的
4.接下来我们要给Azure Vnet创建vpn Gateway网关,并设置动态路由
点击虚拟网络ChinaEastVnet,再点击仪表板
看到如下截图,然后点击创建动态路由
创建动态路由可能需要二十多分钟左右,接下来我们对ChinaNorthVnet执行同样的操作,步骤省略
5.当动态路由创建完毕后,我们重新设置本地网络的VPN网关地址
我们在虚拟网络中,可以查看到ChinaEastVnet对应的VPN网关地址如下:
同理,我们查看到ChinaNorthVnet对应的VPN网关地址如下:
6.我们重新修改本地网络的VPN网关地址,先修改本地网络ChinaEastVnet的VPN网关地址:
跳转弹出对话框,按照如下操作最后保存
对本地网络网络ChinNorthVnet执行同样的操作,但是将VPN网关地址设置为139.217.7.191,最终结果如下:
7.以上的工作完成,接下来我们就需要使用powershell来设置Azure virtual network IPsec vpn网关了
登陆powershell执行如下操作
#在弹出的界面中,输入Azure China用户名和密码 Add-AzureAccount -Environment AzureChinaCloud #选择当前订阅 Select-AzureSubscription 'testyangyang' -current #设置ChinaEastVnet Set-AzureVNetGatewayKey -VNetName ChinaEastVnet -LocalNetworkSiteName ChinaNorthVnet -SharedKey A1b2C3D4 #设置ChinaNorthVnet Set-AzureVNetGatewayKey -VNetName ChinaNorthVnet -LocalNetworkSiteName ChinaEastVnet -SharedKey A1b2C3D4
看到如下结果,则为成功
我们稍等片刻,回到portal里面可以观察到如下结果
这时候就说明Vnet-to-Vnet已经连接成功,接下来大家可以在这两个虚拟网络分别建立一台VM进行测试一下,这里笔者就不再展示,有兴趣的读者可以自己操作一次,在这里笔者还要说一句,我知道很多人利用Azure这个功能进行FQ,但是这么做其实是不合规的,微软也不鼓励这么做。