很奇怪,按照OpenVPN的Howto设置的局域网互访不成功。看了下路由,似乎有点问题。

网络情况:OpenVPN服务器端局域网地址段:192.168.1.0/255.255.255.0;OpenVPN客户端局域网地址段:192.168.2.0/255.255.255.0;OpenVPN地址:10.8.0.0/255.255.255.0,服务器获得地址10.8.0.1,客户端获得地址10.8.0.2

OpenVPN服务端的config设置,参考Howto:

1、把服务端的局域网地址推送给OpenVPN客户端:push “route 192.168.1.0 255.255.255.0”

2、设置客户端的局域网地址:

client-config-dir ccd

route 192.168.2.0 255.255.255.0

ccd目录下建立一个跟客户端证书名称相同的文件,其内容是:iroute 192.168.2.0 255.255.255.0

但是这样设置后,运行OpenVPN服务,服务端的局域网地址是推送给客户端了,但是服务端自己的路由表里没有找到客户端局域网的地址。难道是我用Vista的缘故?看OpenVPN的提示是:OpenVPN ROUTE: OpenVPN needs a gateway parameter for a –route option and no default was specified by either –route-gateway or –ifconfig options

不管了,只好自己在服务器端上加一个。

route add 192.168.2.0 mask 255.255.255.0 10.8.0.2

如果OpenVPN服务器和客户端分别是两个局域网的网关,那么按照Howto各自加对方局域网的路由就可以了,但是如果网关和OpenVPN不是同一台电脑,那就要想互访的每台电脑手工加路由信息吧,除了OpenVPN服务器和客户端这两台电脑之外。假设OpenVPN服务器的IP为192.168.1.30,OpenVPN客户端的电脑IP为192.168.2.10。

服务端的电脑加两条路由信息:

route add 10.8.0.0 mask 255.255.255.0 192.168.1.30

route add 192.168.2.0 mask 255.255.255.0 192.168.1.30

客户端的电脑加两条路由信息:

route add 10.8.0.0 mask 255.255.255.0 192.168.2.10

route add 192.168.1.0 mask 255.255.255.0 192.168.2.10

最后,别忘了开启IP的路由功能,非服务器系统(如XP,Vista)可以通过修改注册表:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,把IPEnableRouter设置成1。

Advertisements