Linux VPN路由器

我有一台Linux机器被设置为自动将VPN隧道连接到公司networking。 将本机设置为从本地networking到目的地为194.1.0.0/16**和10.0.0.0/8的NATstream量,通过隧道连接到具有公司networking的机器。

本地networking上的客户端设置为将此服务器的IP作为其默认网关,如通过dhcp发布的。

这一切都工作得很好,除了发往互联网的stream量也通过这个主机路由。 即客户端A(192.168.1.144)想要与Google的DNS服务器(8.8.8.8)交谈。 目前发生的事情是,它将数据包发送给VPN主机(192.168.1.108),然后将其发送到ADSL路由器(192.168.1.254),该路由器通过互联网将其转发出去。 然后,响应(大概)在到达A之前通过VPN主机返回。

我希望VPN服务器在接收到一个指定给VPN末端networking的数据包时,用ICMPredirect来响应,指示A通过192.168.1.254发送。 这应该将负载从VPN服务器上移走。

我已经尝试在DHCP服务器(Ubuntu 16.04.1 LTS ISC DHCPD)设置静态路由,以便所有的默认网关是192.168.1.254和VPN主机可以通过192.168.1.108访问,但我或者configuration错误或各种客户端无法拿起选项。 客户端是一系列Windows机器(7和10),Linux机器(主要是Ubuntu)和Android设备。

VPN服务器运行Ubuntu 16.04.1 LTS。 以下脚本设置了NAT:

echo 1 > /proc/sys/net/ipv4/ip_forward iptables-restore <<EOF *nat -A POSTROUTING -j MASQUERADE COMMIT EOF 

机器上的路线是:

 Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 ens2 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 ppp0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens2 194.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ppp0 194.1.1.220 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 

任何帮助得到这个工作将不胜感激。 如果我错过了任何可能相关的信息,请告诉我。

** – 请不要质疑为什么我的内部networking部分不在私有IP地址范围内。 我inheritance了这个,并且一旦我inheritance的其他问题得到sorting,将会修复它。

*** – 这可能是一段时间。