通过OpenVPN隧道路由除某个IP范围之外的所有内容


2

我已经使用我的OpenVPN服务器一段时间了,我有一个相当有趣的问题。我需要重定向 所有 客户端通过隧道流量 除了 对于需要在本地解析的几个IP。我这样做的方式是从服务器推送这些路由:

服务器'PUSH'指令

 push "redirect-gateway def1 bypass-dhcp" 
 push "dhcp-option DNS 8.8.8.8" 
 push "dhcp-option DNS 8.8.4.4"

我看到转换到这些Windows路由:

Windows路由发生

Wed Aug 31 15:14:35 2011 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 8.8.8.8,dhcp-option DNS 8.8.4.4,route 10.8.0.1,topology net30,ping 5,ping-restart 30,ifconfig 10.8.0.6 10.8.0.5'
Wed Aug 31 15:14:35 2011 ROUTE default_gateway=192.168.1.254

Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 199.[*.*.*] MASK 255.255.255.255 192.168.1.254
Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 0.0.0.0 MASK 128.0.0.0 10.8.0.5
Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 128.0.0.0 MASK 128.0.0.0 10.8.0.5
Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.5

出于安全考虑,我隐藏了我的服务器IP,从199开始。

我收集了什么

我假设0.0.0.0是“一切”的代码,所以我不确定如何让它工作,但一般的想法是我需要一个特定的IP范围( 172.16.* )可以在LOCAL NETWORK(客户端)上解析,这意味着它可以解析 通过VPN隧道,客户端可以连接到 172.16.* 本地。

这可能吗?路由可以通过命令行,服务器“推送”或客户端配置选项执行。 任何 真正的方法是让这个工作,同时仍然路由其他流量。

附加信息

我在Debian 64位上运行服务器,在Windows 7上运行客户端(尽管Vista也需要工作)。

可以提供客户端/服务器配置 如果需要的话


技术上,0.0.0.0仅在添加0.0.0.0网络掩码或“/ 0”时表示“所有内容”。在您的情况下,将添加两个更具体的路由(0.0.0.0/1和128.0.0.0/1);最终结果相同(所有地址匹配),但添加的路由优先于“默认”0.0.0.0/0路由。不过,你仍然是正确的。
grawity

Answers:


4

似乎经过一些更多的研究,基于grawity的答案,更具体的路线将优先,在服务器的推动后,我可以简单地做一个

--route [ip to bypass] 255.255.255.0 net_gateway

openvpn手册页中'route'指令中定义的net_gateway将解析为预先存在的ip默认网关


你也可以推动这条路线: push "route [ip to bypass] 255.255.255.0 net_gateway"
Ludovic Kuty

1

只需添加另一条路线,它将优先于不太具体的路线:

172.16.* 翻译成 172.16.0.0 用网络掩码 255.255.0.0

route add 172.16.0.0 mask 255.255.0.0 if  指数 

哪里 指数 是您的LAN网络接口的索引,如图所示 route print。例如, 0x3 或类似的。


但你必须知道界面。这也意味着VPN服务器不会推送路由本身。
Ludovic Kuty
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.