本文首发于烂泥行天下

上个周把×××服务器搭建完毕,打算本周连接进去开始部署相关的工作。

但是今天在成功连接进入×××后,却发现客户端无法ping通×××内部的其他服务器。从而导致,工作无法继续。

经过排查发现,客户端可以ping通×××服务器内网网卡的IP地址。而内网的机器是可以ping通的,甚至×××服务器本身内网网卡的IP地址也是和内网的其他机器正常通信的。

×××服务器内网的IP地址是10.10.1.20,客户端获取到的IP地址是10.10.1.8,如下图:

烂泥:【解决】×××连接后,不能ping通内网服务器_解决

烂泥:【解决】×××连接后,不能ping通内网服务器_ping_02

烂泥:【解决】×××连接后,不能ping通内网服务器_解决_03

烂泥:【解决】×××连接后,不能ping通内网服务器_ping_04

刚开始还以为是由于服务器上没有做静态路由导致,于是查找很多有linux路由绑定的资料。可是发现,没有用处也使用不到。

查看×××的日志,就只发现了一条有关GRE的错误,如下图:

烂泥:【解决】×××连接后,不能ping通内网服务器_VPN_05

根据这条错误信息,查找相关的资料。然后进行配置,测试还是不行。最后再想是不是×××软件版本安装错误,查看如下:

烂泥:【解决】×××连接后,不能ping通内网服务器_解决_06

看了看软件版本也是正确。

再次查看是不是软件配置出错,如下图:

烂泥:【解决】×××连接后,不能ping通内网服务器_VPN_07

烂泥:【解决】×××连接后,不能ping通内网服务器_烂泥_08

发现也没有错误。

这可愁死人了,通过tcpdump抓包也没有发现可用的信息。

最后在一个小站点,提醒说很有可能是iptables转发出问题了。

果断查看文件/etc目录下的sysctl.conf文件,然后重新载入,使其生效。但是在执行时却出现如下的来连接错误。如下图:

烂泥:【解决】×××连接后,不能ping通内网服务器_VPN_09

error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key

error: "net.bridge.bridge-nf-call-iptables" is an unknown key

error: "net.bridge.bridge-nf-call-arptables" is an unknown key

根据错误提示信息,查找资料。反馈出现这样的错误提示信息,一般是由于没有加载bridge模块导致。只要手工加载即可,如下图:

烂泥:【解决】×××连接后,不能ping通内网服务器_烂泥_10

modprobe bridge

lsmod|grep bridge

重启PPTP服务,再次ping。

烂泥:【解决】×××连接后,不能ping通内网服务器_VPN_11

烂泥:【解决】×××连接后,不能ping通内网服务器_ping_12

通过上图,我们可以看到目前已经可以正常ping。至此,该问题结束了。

PS:其实这个错误,我们在安装配置×××时,就可以避免的。出现这个问题,还是因为当初配置×××时大意所致。