xl2tpd:提供到整个子网的L2TP / IPsec VPN连接,而不使用默认路由

我已经使用OpenSwan和xl2tpd使用“nodefaultroute”ppp选项设置了L2TP / IPsec VPN。 服务器的虚拟IP地址设置为10.10.31.1,它分配的地址范围是10.10.31.2-254。 这在10.10.31.1 < – > 10.10.31.2等之间build立了PPP连接,这很好 – VPN连接的主机可以和服务器通信。

我如何设置PPP链接,使服务器端看起来像整个范围10.10.0.0,而不是只有该IP地址? 我希望连接的客户端将通过VPN接口路由对该子网的任何请求,服务器可以捕获它们并充当网关。 从另一个方向来看,“proxyarp”选项将允许VPN服务器捕获stream量回到VPN客户端。

一个明显的解决scheme是使用VPN服务器作为默认路由。 我宁愿不这样做,以便只有特定于该子网的stream量通过VPN。 这甚至有可能吗?

正如我怀疑的问题是,我有点数。 如果有人发现这个问题,并想知道同样的事情,这些是你应该知道的关键事情:

nodefaultroute不会进入您的VPN服务器configuration。 这是一个PPP客户端的东西。 PPP客户端负责决定是否创build默认路由。 这是iOS上的“发送所有stream量”checkbox。

您的PPP客户端将始终创build到远程网关的路由,以及远程子网的路由。 如果您的VPN服务器上启用了IP转发(/ proc / sys / net / ipv4 / ip_forward = 1加上Linux上的相应iptables规则),您的客户端将能够将stream量发送远程子网上的主机。

您必须在VPN服务器LAN上的主机的ppp options.xl2tpd文件中指定proxyarp才能将通信发送回客户端。 这将在arp表中创build一个条目,并在内核中启用proxy_arp选项。 这允许VPN服务器使用其自己的以太网接口代表VPN客户端接受数据包。 如果你不想这样做,或者需要穿越路由器,那么把VPN客户端放在NAT之后似乎是一个非常stream行的解决scheme,尽pipe我没有自己testing。

如果要将VPN用作默认路由,请使用ms-dns ppp选项为客户端提供名称服务器。 否则iPad会抱怨说没有连接到互联网。