最近这段时间突击看了看Azure最新release出来的一些功能,感觉新东西真是太多了,之前已经写了不少,不过估计后边还是要再拿一部分时间出来介绍下新东西

后续应该还会再更新一部分data factory,AKS,或者其他更复杂一些的东西,这次先来看一下VPN GW新GA的功能,VPN GW现在可以提供NAT的支持,并且已经是GA的状态

所谓NAT应该不需要过多介绍,而VPN GW中的NAT能做什么呢?这其实应对的是IP地址出现overlap时候的场景,比如之前也有遇到过,如果Azure上的IP Range和on prem或者其他云有overlap的情况

这种场景下是不能直接创建IPSec VPN的,因为没办法区分IP Range是Azure的还是on prem或者其他云的。而VPN GW新GA的NAT功能就是用来应对这种情况的,可以自动实现IP地址的SNAT和DNAT

这样即使VPN的两端IP地址重叠,仍然可以建立IPSec VPN

大概的架构图就像下边画出来的场景,也可以看下官网的介绍

​https://docs.microsoft.com/zh-cn/azure/vpn-gateway/nat-overview?WT.mc_id=AZ-MVP-5001235​

Azure新知识科普 - 体验VPN GW NAT_NAT

总体来说就是两个branch和Azure VNET之间IP Range重合,本来是不可以创建IPSec VPN的,但是通过现在提供的NAT功能,可以做到自动的IP地址转换,在入站和出站时自动把IP地址映射成External的IP,这样就可以在internet上进行传输了

目前来讲,这项功能本身还有一些限制,不过问题不大,只是使用场景受限

  • Azure VPN 网关 NAT 仅支持静态的 1:1 NAT 规则。 不支持动态 NAT 规则。
  • 以下 SKU 支持 NAT:VpnGw2~5、VpnGw2AZ~5AZ.。
  • 仅支持在 IPsec 跨界连接中使用 NAT。 不支持 VNet 到 VNet 连接或 P2S 连接。

所以这次模拟的场景大概会是这样:

两个VNET,分别在两个tenant,两个region

  • ss-vnet East Asia 10.10.0.0/16  
  • SS-VNET-Dest West India 10.10.0.0/16
  • VPN GW 两个,对应两个VNET


接下来开始配置的步骤:

想要在这两个IP Range一样的VNET之间创建IPSec VPN的话,首先要准备好基础的环境

在两个Region分别创建VPN GW以及Local GW,这段过程不过多描述,基本很简单

接下来就可以准备NAT相关的步骤了,首先正常我们想连接两个VNET的话,需要在VPN GW里创建connection,但是这次因为我们要连接的两个VNET IP Range是一样的,所以必须先创建NAT的规则,并且在创建connection的时候,指定要使用的NAT Rule,才能够成功创建connection,否则会提示VPN两端的IP range overlap


在两个VPN GW分别创建NAT Rule,NAT rule分为ingress和egress,对应入站和出站规则,Internal Mapping填写自己的IP range即可,External Mapping对应的就是要映射成的另一段IP,靠这段IP来区分不同的网络

Azure新知识科普 - 体验VPN GW NAT_VPN_02

Azure新知识科普 - 体验VPN GW NAT_NAT_03


之后即可开始在两端创建connection

Azure新知识科普 - 体验VPN GW NAT_Azure_04

Azure新知识科普 - 体验VPN GW NAT_Azure_05

Azure新知识科普 - 体验VPN GW NAT_Azure_06

Azure新知识科普 - 体验VPN GW NAT_microsoft_07


创建完成之后,连接状态很快会变成connected

Azure新知识科普 - 体验VPN GW NAT_microsoft_08


接下来在两个VNET的VM里,直接进行ping test即可,注意这里要ping extenral映射出去的IP地址才可以

India->EastAsia

Azure新知识科普 - 体验VPN GW NAT_Azure_09

EastAsia->India

Azure新知识科普 - 体验VPN GW NAT_Azure_10