Skip to main content

 路由器设置 > 新闻资讯 >

OpenVPN的路由问题一则

2013-09-06 23:19 浏览:

前两天因为集群网段问题,登录管理不便,hivefans就在集群的一台服务器上搭了一个openvpn的server。遇到了一些问题,记录一下。

他只搭了一台openvpn,并没有在集群的其他服务器上安装ovpn,他想完成的目标是将集群的内网网段通过ovpn做路由,通过公司可以访问外部机房集群的内网地址。集群的内网地址是192.168.1.0 mask 255.255.0.0,ovpn的server地址是10.8.8.0 mask 255.255.255..0,公司的内网地址是192.168.205.0 mask 255.255.255.0。发生的问题如下。

机房

内网:192.168.1.73 ovpn: 10.8.8.1 主机A

内网:192.168.1.74 没有ovpn 主机B
自己的电脑

内网:192.168.205.8 ovpn:10.8.8.6 主机C

一、主机C可以ping通10.8.8.1,但无法ping通主机A内网IP,虽然他们是一台机器。

分析如下,主机A作为ovpn的server,访问同网段自然没问题,但是访问192.168因为没有push路由,肯定访问不了

解决:在主机A的ovpn配置文件里增加push "route 192.168.1.0 255.255.0.0",重启OpenVPN Server,问题解决。

二、主机C可以ping通主机A的内网地址,但无法ping通主机B的内网地址。

分析如下,主机A的内网地址实际已经路由好了,但是主机B因为没有回包路由,导致无法收到回应。登录到主机B上尝试ping主机A内网地址,果然是不通。注意,主机B是没有装openvpn的,然后问了一下他,他是看网上的教程做的,在主机B上自己增加了一条linux的路由 ip route add 192.168.1.0 255.255.255.0 ...。

解决,本身网卡的子网掩码是255.255.0.0,单独增加一条路由后,子网掩码被放到了255.255.255.0,这样,路由到的地址,跟网卡的地址就不匹配了,一个B类一个C类。结果自然是没有回包路由了。从linux路由表删除掉这条有问题的路由,问题解决。

然后他就可以只用一台OpenVPN server做路由,登录整个集群的内网地址了。

10分钟搞定,记得以前微博上有人说,我是搞开源和Hadoop的,可博客里写的有交换和路由,很没有开源工程师的范。对此我表示不在意,还是那句话,If you want something done, do it yourself。虽然现在互联网时代干活都是模块化,可是多了解一些东西对自己并没坏处,至少不会受制于人。去除对IOE的依赖,对公司来说很重要,举一反三,对个人的意义也同样重要。