今天遇到一个问题,服务器A telnet服务器B 873 不通。
双方均检测防火墙,发现权限都开通,且没有问题。
后来发现是路由的问题
A路由如下(只看内网):
[root@BJ-YF-3 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.127.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 10.127.3.254 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 10.127.3.254 255.0.0.0 UG 0 0 0 eth0
[root@BJ-YF-3 ~]#
因为服务器A和服务器B在一个C段地址的不同段中。
A、B的正确掩码应该为255.255.255.128,但是我俩均配置成了255.255.255.0,由于是线上业务,不能更改后重启网卡,所以只能添加指定路由。
问题是:为什么掩码错了会出现问题呢???
当服务器A访问B时,路由会从上往下匹配,A的IP为10.127.3.156,B的IP为10.127.3.101
因为掩码配置错误,所以在第一条路由就匹配成功了
10.127.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
但是这个没有网关,从eth0网卡直接出去了(正常情况下,只有同一网段的才走没有网关的路由,显然A和B不在同一网段)
对于其他网段的则没有问题,如10.127.2段的,因为10.127.3不匹配,所以继续匹配下一条
10.0.0.0 10.127.3.254 255.0.0.0 UG 0 0 0 eth0
为了解决应急问题,所以针对单个服务器,进行路由添加,等维护时间再更改掩码,重启网卡。
route add -host 10.127.3.101 gw 10.127.3.254
此时路由如下:
[root@BJ-YF-3 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.127.3.101 10.127.3.254 255.255.255.255 UGH 0 0 0 eth0
10.127.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 10.127.3.254 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 10.127.3.254 255.0.0.0 UG 0 0 0 eth0
[root@BJ-YF-3 ~]#
若访问10.127.3.101,则第一条就匹配成功,可以访问。
ps:
1、为了双方均Ok,两边必须相应添加路由
2、为了重启后依然生效,则要加入/etc/rc.local文件中,开机自启动
阅读(1345) | 评论(0) | 转发(0) |