你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
为虚拟 WAN VPN 网关配置 NAT 规则
可以为虚拟 WAN VPN 网关配置静态一对一 NAT 规则。 NAT 规则提供了一种机制,用于设置 IP 地址的一对一转换。 NAT 可用于将 IP 地址不兼容或 IP 地址重叠的两个 IP 网络互连。 一个典型的应用场景是包含重叠 IP 且需要访问 Azure VNet 资源的分支。
此配置使用流表将流量从外部(主机)IP 地址路由到与虚拟网络中的终结点(虚拟机、计算机、容器等)关联的内部 IP 地址。
为使用 NAT,VPN 设备需要使用任意到任意(通配符)流量选择器。 不支持将基于策略(窄)的流量选择器与 NAT 配置结合使用。
配置 NAT 规则
你可以随时配置和查看 VPN 网关设置中的 NAT 规则。
NAT 类型:静态和动态
网关设备上的 NAT 根据 NAT 策略或规则转换源和/或目标 IP 地址,以避免地址冲突。 有不同类型的 NAT 转换规则:
静态 NAT:静态规则定义固定地址映射关系。 对于给定的 IP 地址,它将被映射到目标池中的相同地址。 静态规则的映射是无状态的,因为该映射是固定的。 例如,创建的用于将 10.0.0.0/24 映射到 192.168.0.0/24 的 NAT 规则将有固定的 1-1 映射。 10.0.0.0 转换为 192.168.0.0,10.0.0.1 转换为 192.168.0.1,依此类推。
动态 NAT:对于动态 NAT,可以基于可用性,或者使用不同的 IP 地址和 TCP/UDP 端口组合将 IP 地址转换为不同的目标 IP 地址和 TCP/UDP 端口。 后者也称为 NAPT,即网络地址和端口转换。 动态规则将根据任何给定时间的流量流产生有状态的转换映射。 受动态 NAT 和不断变化的 IP/端口组合的性质影响,使用动态 NAT 规则的流必须从内部映射(预 NAT)IP 范围发起。 当流断开连接或正常终止后,将释放动态映射。
另一个注意事项是用于转换的地址池大小。 如果目标地址池大小与原始地址池相同,请使用静态 NAT 规则按顺序定义 1:1 映射。 如果目标地址池小于原始地址池,请使用动态 NAT 规则来适应差异。
注意
使用基于策略的流量选择器的站点到站点 VPN 连接不支持站点到站点 NAT。
导航到虚拟中心。
选择“VPN (站点到站点)”。
选择“NAT 规则(编辑)”。
在“编辑 NAT 规则”页上,可以添加/编辑/删除使用以下值的 NAT 规则:
- 名称: NAT 规则的唯一名称。
- 类型:静态数据或动态数据。 静态一对一 NAT 建立内部地址与外部地址之间的一对一关系,而动态 NAT 基于可用性分配 IP 和端口。
- IP 配置 ID:NAT 规则必须配置为特定的 VPN 网关实例。 这仅适用于动态 NAT。 静态 NAT 规则将自动应用于这两个 VPN 网关实例。
- 模式: IngressSnat 或 EgressSnat。
- IngressSnat 模式(也称为“入口源 NAT”)适用于进入 Azure 中心的站点到站点 VPN 网关的流量。
- EgressSnat 模式(也称为“出口源 NAT”)适用于离开 Azure 中心的站点到站点 VPN 网关的流量。
- 内部映射:内部网络上要映射到一组外部 IP 的源 IP 的地址前缀范围。 换句话说,就是你的 NAT 前地址前缀范围。
- 外部映射:源 IP 要映射到的外部网络上的目标 IP 的地址前缀范围。 换句话说,就是你的 NAT 后地址前缀范围。
- 链接连接:连接资源,用于以虚拟方式将 VPN 站点连接到 Azure 虚拟 WAN 中心的站点到站点 VPN 网关。
注意
如果希望站点到站点 VPN 网关通过 BGP 播发转换的(外部映射)地址前缀,请单击“启用 BGP 转换”按钮,因为本地将自动了解出口规则的 NAT 后范围,而 Azure(虚拟 WAN 中心、联网的虚拟网络、VPN 和 ExpressRoute 分支)将自动了解入口规则的 NAT 后范围。 新的 POST NAT 范围将显示在虚拟中心的“有效路由表”中。 请注意,“启用 Bgp 转换”设置应用于虚拟 WAN 中心站点到站点 VPN 网关上的所有 NAT 规则。
示例配置
入口 SNAT(启用 BGP 的 VPN 站点)
入口 SNAT 规则应用于通过虚拟 WAN 站点到站点 VPN 网关进入 Azure 的数据包。 在此应用场景中,需要将两个站点到站点 VPN 分支连接到 Azure。 VPN 站点 1 通过链接 A 进行连接,VPN 站点 2 通过链接 B 进行连接。每个站点都具有相同的地址空间 10.30.0.0/24。
在此示例中,我们通过 NAT 将 site1 转换为 172.30.0.0.0/24。 虚拟 WAN 支路虚拟网络和其他分支将自动了解这个 NAT 后的地址空间。
下图显示了预计的结果:
指定 NAT 规则。
指定 NAT 规则,确保站点到站点 VPN 网关能够将两个具有重叠地址空间(例如 10.30.0.0/24)的分支区别开来。 在本示例中,我们将重点放在 VPN 站点 1 的链接 A 上。
可以设置以下 NAT 规则并将其与链接 A 关联。由于这是静态 NAT 规则,因此内部映射和外部映射的地址空间包含相同数量的 IP 地址。
- 名称:ingressRule01
- 类型:静态
- 模式:IngressSnat
- 内部映射:10.30.0.0/24
- 外部映射:172.30.0.0/24
- 链接连接:链接 A
将“BGP 路由转换”切换为“启用”。
确保站点到站点 VPN 网关能够与本地 BGP 对等节点进行对等互连。
在此示例中,入口 NAT 规则需要将 10.30.0.132 转换为 172.30.0.132。 为此,请单击“编辑 VPN 站点”配置 VPN 站点链接 A BGP 地址,以反映此转换后的 BGP 对等节点地址 (172.30.0.132)。
VPN 站点通过 BGP 进行连接时的注意事项
对于静态一对一 NAT,内部和外部映射的子网大小必须相同。
如果启用了“BGP 转换”,则站点到站点 VPN 网关会自动播发出口 NAT 规则到本地的外部映射,以及入口 NAT 规则”到 Azure(虚拟 WAN 中心、连接的支路虚拟网络、连接的 VPN/ExpressRoute)的外部映射。 如果禁用 BGP 转换,则转换后的路由不会自动播发到本地。 因此,必须将本地 BGP 发言方配置为播发入口 NAT 规则(该规则与其 VPN 站点链接连接关联)的 NAT 后(外部映射)范围。 类似地,出口 NAT 规则的 NAT 后(外部映射)范围的路由必须应用于本地设备。
如果本地 BGP 对等节点 IP 地址包含在入口 NAT 规则的内部映射中,则站点到站点 VPN 网关会自动转换本地 BGP 对等节点 IP 地址。 因此,VPN 站点的链接连接 BGP 地址必须反映 NAT 转换的地址(外部映射的一部分)。
例如,如果本地 BGP IP 地址是 10.30.0.133,并且有一条入口 NAT 规则将 10.30.0.0/24 转换为 172.30.0.0/24,则必须将 VPN 站点的链接连接 BGP 地址配置为转换后的地址 (172.30.0.133)。
在动态 NAT 中,本地 BGP 对等 IP 不能属于预 NAT 地址范围(内部映射),因为 IP 和端口转换不固定。 如果需要转换本地 BGP 对等互连 IP,请创建单独的静态 NAT 规则来转换 BGP 对等互连 IP 地址。
例如,如果本地网络的地址空间为 10.0.0.0/24,本地 BGP 对等 IP 为 10.0.0.1,并且存在用于将 10.0.0.0/24 转换为 192.198.0.0/32 的“入口动态 NAT 规则”,则需要有可将 10.0.0.1/32 转换为 192.168.0.02/32 的单独“入口静态 NAT 规则”,此外还必须将相应 VPN 站点的“链接连接 BGP 地址”更新为 NAT 转换地址(外部映射的组成部分)。
入口 SNAT(具有静态配置路由的 VPN 站点)
入口 SNAT 规则应用于通过虚拟 WAN 站点到站点 VPN 网关进入 Azure 的数据包。 在此应用场景中,需要将两个站点到站点 VPN 分支连接到 Azure。 VPN 站点 1 通过链接 A 进行连接,VPN 站点 2 通过链接 B 进行连接。每个站点都具有相同的地址空间 10.30.0.0/24。
在本例中,我们将 NAT VPN 站点 1 连接到 172.30.0.0.0/24。 但是,由于 VPN 站点未通过 BGP 连接到站点到站点 VPN 网关,因此配置步骤与启用 BGP 的示例略有不同。
指定 NAT 规则。
指定 NAT 规则,确保站点到站点 VPN 网关能够将两个具有相同地址空间 (10.30.0.0/24) 的分支区别开来。 在本示例中,我们将重点放在 VPN 站点 1 的链接 A 上。
可以设置以下 NAT 规则并将其与其中一个 VPN 站点 1 的链接 A 关联。 由于这是静态 NAT 规则,因此,内部映射和外部映射的地址空间包含相同数量的 IP 地址。
- 名称:IngressRule01
- 类型:静态
- 模式:IngressSnat
- 内部映射:10.30.0.0/24
- 外部映射:172.30.0.0/24
- 链接连接:链接 A
编辑 VPN 站点 1 的“专用地址空间”字段,确保站点到站点 VPN 网关了解 NAT 后范围 (172.30.0.0/24)。
静态配置 VPN 站点(未通过 BGP 连接)时的注意事项
- 对于静态一对一 NAT,内部和外部映射的子网大小必须相同。
- 在 Azure 门户中编辑 VPN 站点,以在“专用地址空间”字段中的入口 NAT 规则的外部映射中添加前缀。
- 对于涉及出口 NAT 规则的配置,需要在本地设备上应用带有出口 NAT 规则的外部映射的路由策略或静态路由。
数据包流
在上述示例中,本地设备需要访问支路虚拟网络中的资源。 数据包流如下所示,NAT 转换以粗体显示。
来自本地的流量已启动。
- 源 IP 地址:10.30.0.4
- 目标 IP 地址:10.200.0.4
流量进入站点到站点网关,并使用 NAT 规则进行转换,然后发送到支路。
- 源 IP 地址:172.30.0.4
- 目标 IP 地址:10.200.0.4
来自分支的回复已启动。
- 源 IP 地址:10.200.0.4
- 目标 IP 地址:172.30.0.4
流量进入站点到站点 VPN 网关,进行反向转换,然后发送到本地。
- 源 IP 地址:10.200.0.4
- 目标 IP 地址:10.30.0.4
验证清单
此部分介绍用于验证是否正确设置了配置的检查。
验证动态 NAT 规则
如果目标地址池小于原始地址池,请使用动态 NAT 规则。
由于动态 NAT 规则中的 IP/端口组合不固定,本地 BGP 对等 IP 不能属于预 NAT(内部映射)地址范围。 创建仅转换 BGP 对等互连 IP 地址的特定静态 NAT 规则。
例如:
- 本地地址范围:10.0.0.0/24
- 本地 BGP IP:10.0.0.1
- 入口动态 NAT 规则:192.168.0.1/32
- 入口静态 NAT 规则:10.0.0.1 -> 192.168.0.2
验证 DefaultRouteTable、规则和路由
虚拟 WAN 中的分支关联到 DefaultRouteTable,这意味着所有分支连接都了解在 DefaultRouteTable 中填充的路由。 在 DefaultRouteTable 的有效路由中,你会看到包含已转换前缀的 NAT 规则。
在上述示例中:
- 前缀:172.30.0.0/24
- 下一个跃点类型: VPN_S2S_Gateway
- 下一个跃点: VPN_S2S_Gateway 资源
验证地址前缀
此示例适用于与 DefaultRouteTable 关联的虚拟网络中的资源。
位于支路虚拟网络(已连接到虚拟 WAN 中心)中的任何虚拟机的网络接口卡 (NIC) 上的有效路由还应包含入口 NAT 规则中指定的外部映射地址前缀。
本地设备还应包含出口 NAT 规则的外部映射中所包含的前缀的路由。
常见配置模式
注意
使用基于策略的流量选择器的站点到站点 VPN 连接不支持站点到站点 NAT。
下表显示了在站点到站点 VPN 网关上配置不同类型的 NAT 规则时出现的常见配置模式。
VPN 站点类型 | 入口 NAT 规则 | 出口 NAT 规则 |
---|---|---|
具有静态配置路由的 VPN 站点 | 编辑 VPN 站点中的“专用地址空间”以包含 NAT 规则的外部映射。 | 在本地设备上为 NAT 规则的外部映射应用路由。 |
VPN 站点(已启用 BGP 转换) | 将 BGP 对等节点的外部映射地址放在 VPN 站点链接连接的 BGP 地址中。 | 无特殊注意事项。 |
VPN 站点(已禁用 BGP 转换) | 确保本地 BGP 发言方在 NAT 规则的外部映射中播发前缀。 另将 BGP 对等节点的外部映射地址放在 VPN 站点链接连接的 BGP 地址中。 | 在本地设备上为 NAT 规则的外部映射应用路由。 |
后续步骤
有关站点到站点配置的详细信息,请参阅配置虚拟 WAN 站点到站点连接。