记一次设备网络问题的排查

版权声明:本文为迟思堂主人李迟原创文章,版权所有。可随便任意使用(包括学习研究商用),但由此带来的成果或后果,概与作者无关。胡乱修改的,不注明出处的,概不负责。 https://blog.csdn.net/subfate/article/details/89300917

清明假期,同事在群里at我,说某场站网络有问题,叫我有空去看看。我收到的网络异常邮件已经几千封了,因为位置不高,所以静待通知。根据log猜测是厂家设备的问题。因为假期,我也无能为力。

昨天中午下班后,陪小孩去附近玩,回来后,厂家打电话给我,说到网络问题,他在现场重现不了问题。还改了密码,估计是怀疑别人动过参数,怕别人再改。我叫他跟那天的充电员联系。然后我在群里跟同事汇报了此事。原来是同事给了我的电话对方。后来太困了就睡觉,醒来后,接收几天厂家的未接电话,心想休息了,先不接。接着,同事在群里at了我,叫我晚上填加班单,明天9点半去那边,和厂家一起排查问题。我说好的。

8点半出门,因为不认得路,路又远——也不算远,离租房的地方不到20公里,开着导航跟着走。有几条路在修着,导航可能还不知道,所以走了点弯路,还好加快了速度,在9点半之前赶到现场,打开钉钉打卡,因为不知要搞多久,就没填加班。有个人已经开着电脑蹲在设备前了,上来打招呼,原来对方叫L工,已经到了一个多小时了,后来才知道他住附近,路程就几分钟。

值班室门锁着,打电话给甲方经理,经理叫师傅去开门,因为我在别的地方,没看到,就感觉门突然就开了。进屋,开电脑,登陆生产环境服务器和后台web,log和页面上,都没找到设备的信息。在设备屏幕上查看网络参数,没异常。在本地运行服务,改设备IP接到电脑,正常。想查路由器的连接列表,但忘记密码,恢复路由路,可以登陆了,找了几次所有页面,没找到有线的设备列表,估计路由器是主打无线路由,有线网络只是附属功能就不显示。如此这般,找了一上午,没进展,问题依旧。L工回去吃饭了。

因为路远,不能回去,打开手机搜索,最近的也要3公里才有吃了。刚想出发,发现门没钥匙,又担心人不在,里面东西不安全。只好叫外卖,又发现手机没外卖软件,去下载,发现网速慢——估计因为地方偏僻,信号不好。等啊等,终于下载好了,注册,填地址。因为平时去外面测试,胃口一般不好,吃不下饭。加粉加菜,加上配送费,叫了份20块钱的粉,奢侈了一把。还没吃完,L工就回来了。

问题定位

桩没问题,交换机没问题,路由器没问题,本地服务也没问题,结合猜测,是设备出不了外网,生产环境服务器接收不到报文。然而界面上网络参数是正常的,似乎是没问题导致的网络问题。正无头绪之际,L工提到可以连接到设备,里面也是Linux系统。一语惊醒梦中人,最好的办法,就是到设备系统中查看参数,然后测试能否ping通外网。
在连接之前,问了L工能否登陆系统,因为毕竟我不是对方公司的人,于情于理于法,是不能登陆的。L工说他在场就可以。于是用telnet连接,输入账号密码,用ifconfig查IP,正常,用route -n查网关,却发现没有默认网关。但有2条错误的路由,大概这样:

route -n          
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.1     0.0.0.0         255.255.255.255 UH    0      0        0 eth0

ping外网,不通。基本确认是网关的配置问题。

手动添加默认网关:route add default gw 192.168.1.1,此时可以ping通生产环境服务器了。web页面也看到设备了。

至此,问题原因定位到:因为设备上的默认网关没有配置,导致设备出不了外网,从而导致后台看到不到设备。

解决方案

找到问题就好办了,跟L工说了方案,L工说反馈给研发。又问我能不能现在就改。我说不方便改,因为我对整个软件系统不了解,怕有问题。L工说没事,先暂时改吧。于是分析启动脚本,发现有个脚本已经配了默认网关。但却不生效,于是找了个/etc目录下的启动脚本,添加进入。然后手动reboot,系统起来后,连接正常。然后叫L工打开设备柜门,手动断电重启后,连接也正常。于是将其它的设备也进行相同的修改。观察半小时,网络连接正常。

一看时间,已经3点半了,于是向甲方经理汇报,顺便问一下钥匙的事。再在公司群里向同事汇报。同事回复说“了解”。接着在钉钉上打卡,填写加班单。最后,骑着电车,回去了。

扫描二维码关注公众号,回复: 5904219 查看本文章

从问题出现,我就坚持认为是厂家设备的问题,到今天终于切切实实证实的这个事实,前后一共花了1周左右的时候。

扩展知识

使用route查看路由表信息,如下:

route -n          
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.1     0.0.0.0         255.255.255.255 UH    0      0        0 eth0

说一下Flags的几个值。

  • U表示路由是启用的,有效的(U即up),上表三条路由均有效。
  • G表示是默认网关(G即gateway),是后面新加的。
  • H表示目标是IP(H即host),只有最后一条路由是带H,从第一列看到,它就是一个IP(事实上该IP是路由网关)。但是,第二条路由192.18.1.0,不是合法的IP,所以没有H

李迟 2019.04.14 周日

猜你喜欢

转载自blog.csdn.net/subfate/article/details/89300917