![本地 VPN 设备能看到我的公共 IP 吗?](https://linux22.com/image/695227/%E6%9C%AC%E5%9C%B0%20VPN%20%E8%AE%BE%E5%A4%87%E8%83%BD%E7%9C%8B%E5%88%B0%E6%88%91%E7%9A%84%E5%85%AC%E5%85%B1%20IP%20%E5%90%97%EF%BC%9F.png)
我在 Microsoft Azure 上的同一个虚拟网络中拥有多个虚拟机,我计划连接到供应商的本地站点。我已经设置了一个具有公共 IP 的站点到站点 ipsec VPN,并准备将配置发送给我的供应商。
问题是,我计划根据需要启动多个虚拟机,它们都需要通过 VPN 连接到供应商。问题是供应商想要一个公共 IP 和主机 IP,并且不接受 IP 范围。
我认为我应该能够将所有虚拟机的内部 IP NAT 到公共 IP,以便本地客户端只看到一个 IP 并对其做出响应。这是正常行为吗?还是我必须应用更多配置?
答案1
问题是供应商想要单一的公共 IP 和主机 IP,而不接受一系列 IP。
为了建立站点到站点 VPN,本地 VPN 设备需要允许来自 Azure VPN 网关公共 IP 地址的入站流量。
当 S2S VPN 建立后,VNET 上的虚拟机通过其私有 IP 地址与本地计算机进行通信。这些虚拟机的公共 IP 地址仅用于访问互联网。
这是正常行为吗?还是我必须应用更多配置?
一般情况下,如果没有必要,我们不会对子网进行 NAT。S2S VPN 用于连接被互联网分开的子网,以便这些子网上的所有计算机都可以像直接连接一样相互通信。
===========================================================================
更新:
正如我在下面的评论中提到的,当计算机通过 VPN 通信时,公共 IP 地址是透明的。本地网络上的计算机只能看到源计算机的私有 IP 地址。
VPN 充当跨互联网的桥梁,连接被互联网分开的子网。当 VPN 建立后,您可以认为这些子网是直接连接的。
因此,你的问题的答案很简单,使用 NAT。
您可以在 Azure 上构建虚拟机来执行 NAT。这样从这些虚拟机发出的每个出站数据包的源 IP 地址都将更改为 NAT 虚拟机的私有 IP 地址。