在使用 IPsec VPN 连接两个站点时,有时可能会遇到两个站点位于同一寻址范围。在这种情况下,可以使用 NAT来解决互相访问的问题。
例如,如果两个站点的LAN使用同一子网192.168.1.0/24 ,则它们将无法通过 VPN 相互通信,因为子网在本地网络上是相同的,并且在远程网络也是相同的。
为了解决这个问题,可以使用 NAT 从一个网络到另一个网络进行通信。这是具有重叠子网进行VPN连接的方法。
注意:如何配置站点到站点的 IPsec VPN,请参阅pfSense配置站点到站点IPsec VPN。
网络拓扑
以两个站点(A 和 B)为例,它们的 LAN 上是相同的子网:192.168.1.0/24
为了将这两个站点与 IPsec VPN 连接起来,有两种方案:
- 对站点 A的整个子网进行NAT,以便可以从站点 B 通过 IPsec VPN 访问它。相反,我们将对站点 B 的子网执行相同操作,以便可以从站点 A 通过 IPsec VPN 访问它。
- 将所有流量通过 NAT 转换到一个 IP 地址。这是上网时使用的原则:局域网的所有私有IP地址都是NAT到Internet连接的公共IP地址。
NAT 类型的选择取决于使用的方案和目标。如果要访问多个设备,最好的解决方案是使用一对一 NAT(1:1 NAT),即第一个解决方案。否则,单个 IP 地址上的简单NAT就可以了。
在本示例中,将设置以下选项:
- 从站点A访问:站点 B 的 LAN 将可以通过以下子网访问: 192.168.200.0/24;因此,从站点 A 到达服务器 192.168.1.222(位于站点 B),我们将请求 IP 地址 192.168.200.222。
- 从站点B访问:站点 A 的 LAN 将可以通过以下子网访问: 192.168.100.0/24;因此,从站点 B 到达服务器 192.168.1.111(位于站点 A),我们将请求 IP 地址 192.168.100.111。
配置NAT和IPsec
在站点 A上,转到 VPN > IPsec,按pfSense配置站点到站点 IPsec VPN介绍的方法配置阶段1。
阶段 2要配置的信息如下:
- 模式:选择隧道 IPv4。请注意,路由 (VTI) IPsec VPN 无法使用 NAT。
- 本地网络:选择“LAN 子网”,或者是希望通过 IPsec VPN 访问的真实本地子网(在本例中为 192.168.1.0/24)。
- NAT/BINAT 转换:选择“网络”并在地址和掩码字段中输入“ 192.168.100.0/24 ”。
- 远程网络:选择“网络”并输入“ 192.168.200.0/24 ”。
阶段 2 的其他参数不参与使用NAT设置 VPN,这里不进行详述。
配置过滤规则
根据转换后的寻址方案调整过滤规则。
在LAN 接口上,为了过滤从站点 A 的本地网络到站点 B 的流量,在源字段中设置 LAN 子网 (192.168.1.0/24),在目标字段中设置站点 B 的转换子网( 192.168.200.0/24)。如下图所示:
要过滤来自IPsec VPN(IPsec 选项卡)的网络流量,由于NAT规则已自动生成,过滤必须在本地站点的真实IP地址和远程站点的转换IP地址上完成。
站点A配置示例: