如何通过 SonicWALL L2TP VPN 连接访问 LAN PC(Windows)

如何通过 SonicWALL L2TP VPN 连接访问 LAN PC(Windows)

我们有几个 LAN 设备通过物理有线网络连接到子网 192.168.2.0/24 上的 SonicWALL TZ210。其中几个设备分配了 192.168.2.100 至 192.168.2.199 范围内的 DHCP 地址,其中一些设备的静态地址低于 192.168.2.100 或高于 192.168.2.240。

在 SonicWALL 上,我已启用 VPN,并配置 L2TP 服务器以使用 192.168.2.201 到 192.168.2.220 作为本地 L2TP 池。

我可以与 SonicWALL 建立 VPN 连接,并且如预期的那样,我获得了 L2TP 池范围内的 IP 地址。从 VPN 设备(iPhone,但我认为这不相关)我可以 ping 通 LAN 上的其他设备,但不能 ping 通 Windows 设备 - ping MacOSX、Ubuntu、SonicWALL 都可以正常工作(静态和 DHCP 地址),但不能 ping 通 Windows。Windows 计算机可以 ping 通除 VPN 连接的设备之外的任何设备。所有其他设备组合都可以成功 ping 通彼此 - 唯一的失败是 Windows<-->VPN。

经过一番研究,问题似乎与 Windows 上的路由有关。LAN 的路由条目显示以下内容:

Network Destination        Netmask          Gateway       Interface
      192.168.2.0    255.255.255.0         On-link     192.168.2.173

(这是针对 Win7 PC 的;Win XP 类似,但网关列为本地 IP 地址,与接口相同。)

此“On-link”表示发往 LAN 的所有流量都通过本地 NIC 发送,而不是通过 SonicWALL 默认网关发送。如果我将路由更改为使用 SonicWALL 作为网关,我可以成功 ping Windows<-->VPN,正如预期的那样:

route change 192.168.2.0 mask 255.255.255.0 192.168.2.254

因此,尽管我有一个解决方法,但绕过每台 Windows PC 并强制其通过 SonicWALL 发送所有 LAN 流量并不实际(或不可取)。还有其他解决方案吗?

  • 当我 ping VPN 设备时,无论 OSX 和 Ubuntu 正在做什么,它们都能通过 SonicWALL 正确路由。OSX/Ubuntu 总是这样做吗?还是说如果在物理 LAN 上找不到目标 IP,它们会很聪明?Windows 可以做同样的事情吗?
  • 是否可以让 SonicWALL 响应物理 LAN 上的 L2TP 池地址?
  • 还有别的吗?

答案1

嗯,就我而言,Windows 客户端工作正常。到本地网络的路由是连接到该网络的接口,该接口在该网络中具有 IP 地址。当与连接到同一网络的另一台主机通信时,Windows 客户端将对目标 IP 地址的 MAC 地址进行 ARP。由于 VPN 客户端 IP 地址位于同一网络中,因此 Windows 客户端将 VPN 地址视为本地地址,并将 MAC 地址视为 ARP,并且不会收到任何回复。我看到了两种解决方案:

  1. 将 VPN 客户端 DHCP 池配置到另一个网络 (192.168.3.0/24),并让 Sonicwall 处理 LAN 和 VPN 网络之间的路由流量。

  2. 了解如何配置 Sonicwall 以便为 VPN 客户端执行代理 ARP,这样当 Windows 7 客户端对 VPN 客户端 IP 地址进行 ARP 时,Sonicwall 代表 VPN 客户端进行回复,然后 Windows 7 客户端将流量传递给 Sonicwall,然后 Sonicwall 将流量路由到 VPN 客户端。

相关内容