通过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.