Linux系统中的route解析


Linux系统中的route解析
 
今天遇到一个问题,服务器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文件中,开机自启动
 

相关内容

    暂无相关文章