![VPN 和子网](https://linux22.com/image/607842/VPN%20%E5%92%8C%E5%AD%90%E7%BD%91.png)
我在一台有 2 个 NIC 并运行 Debian 的机器上构建了自己的路由器。这台机器一边可以看到我的公共 IP 地址,另一边可以看到内部网络 (192.168.42.0/24)。我正尝试设置所有主要 VPN 协议的实现,以便从路上的战士那里访问我的网络。
我发现,在 TUN 模式下使用 OpenVPN 时,必须为连接的客户端使用不同的子网范围(例如 192.168.77.0/24)。如果我尝试使用与我自己的内部网络相同的子网(42),数据包不会路由,并且无法从通过 VPN 连接的客户端 ping 网络内的机器。通过配置不同的子网并推送路由,我可以。
或者(仍然使用 OpenVPN),我使用 TAP 模式并配置桥接,我可以将客户端配置为使用相同的内部网络子网(42),并且客户端的行为确实就像属于内部网络一样,并且可以 ping 网络内的机器。
对于其他 VPN 实现(例如 PPTP 和 L2TP),我已阅读了许多 HowTo,但它们并不清楚是否有必要为 VPN 客户端端点使用不同的子网。
我的主要问题是,这些服务器(基于 Debian 实现 pptpd 和 xl2tpd)是否需要为 VPN 客户端使用单独的子网?
我还看到过隧道本身使用单独的子网(通常在 10.xyz 范围内显示),所以最终有 3 个子网!我的第二个问题是,这个隧道子网是否需要它才能工作?我看不出这样做有什么好处。
(我在同一个子网上使用 PPTP 工作,但没有广播,而且有点不稳定。我无法让 L2TP 通过 IPSEC 在公共 IP 上运行,由于某种原因,只能在 NAT 后面的内部机器上运行 - 这是单独的问题!)
谢谢,戴夫
答案1
这取决于 VPN 是否提供路由或桥接。路由需要为 VPN 客户端提供单独的子网。这是最常见的配置,也是您想要使用的配置(除非有特殊原因您不能使用)。