用wireshark解决网络故障
2016-09-18朱煜
朱 煜
(山西省气象信息中心,山西 太原 030006)
用wireshark解决网络故障
朱煜
(山西省气象信息中心,山西 太原 030006)
网络故障会对各部门业务系统的安全稳定运行造成严重影响。遭遇网络故障时准确定位、快速解决对工业生产、人们生活等方面具有重大意义,也是衡量网络管理员技能的一项重要指标。抓取网络数据包进行协议分析是排查网络故障的常用方法,本文以工作中遇到的网络问题,使用wireshark协议分析软件进行诊断分析,以达到快速修复网络故障的目的。
Wireshark;协议分析;网络抓包
1 Wireshark简介
Wireshark是目前世界上最受欢迎的协议分析软件。它能够获取网络中传输的数据包,并直观地呈现在用户面前,还能够对这些数据包进行筛选及分析,极大地方便了对网络活动的监测分析和故障诊断。Wireshark可以在Windows,Linux和UNIX等系统上运行,是网络工程师解决网络故障的理想助手。
2 用wireshark分析网络故障
2.1arp故障
单位内外网分离,职工上外网使用无线网络。最近经常遇到无线断网的情况。刚开始以为是无线路由器不稳定,重启下就行了。然而故障并没有得到解决。一般来说,无线网络经常中断的原因,一是无线路由器性能不稳定或摆放位置不佳;二是无线网络中有arp攻击。 由于单位的无线路由器是新买的而且档次不低,所以排除了路由器的自身问题,那就可能是arp欺骗引起的。
打开wireshark进行抓包分析,筛选出arp的包,发现LiteonTe_bb:fa:a4这台主机的arp广播非常频繁。主机不停地在依次向整个网段发送arp广播请求,继续筛选这台主机的arp包,发现了arp欺骗包(图1圈中的部分),因为它与实际的网关地址不同。在路由器上启用mac地址过滤,把这台主机过滤后,网络中断的情况没有再次发生。
图1 中毒机器发出的arp包
2.2NFS故障
NFS(Network File System)顾名思义,就是网络上的文件系统。NFS服务器提供共享目录,可以被挂载到多台客户端的本地目录上。当用户在这些本地目录读写文件时,实际是在NFS服务器上读写。NFS一般只在Linux/UNIX环境中存在。它只出过3个版本,即1984年的NFSv2、1995年的NFSv3和2000年的NFSv4。目前,大多数NFS环境都还是NFSv3。NFSv4受CIFS影响,实施过程相对复杂,普及速度较慢,只在较新的操作系统中出现。前一段时间,在挂载网络文件系统(NFS)时出现一些问题。现给出服务器、客户机系统环境。
◆ 服务器:
主机:ibm power550,ip:10.56.5.13,操作系统:aix 5.3。
◆ 客户机:
主机:ibm x3850,ip:10.56.5.20,操作系统:Red Hat Enterprise Linux Server release 6.5。
在客户机执行命令mount 10.56.5.13:/share/share时失败,提示:mount.nfs: Remote I/O error。但另一台客户机ok。而NFS服务端上没有做限制,这样就初步排除了NFS服务器的问题。开始时认为是客户机防火墙对NFS的拦截导致。用命令service iptables stop 关闭防火墙后故障依旧。在客户机下执行rpcinfo-p 10.56.5.13检查服务端NFS服务,没有发现问题;执行showmount-e 10.56.5.13发现能够获取到NFS服务器共享的资源,说明网络连通性、nfs服务发布都没有问题。再次检查相关的配置和服务,重启服务甚至重启机器,都不管用。无计可施下,打开wireshark进行抓包分析,图2是在客户端上运行wireshark的抓包截图。
从图2中可以看出,客户机与服务器是用NFSv4协议进行协商的,服务器发回给客户机423号包中我们看到状态为:NFS4ERR_RESOURCE(10018), 最终服务器拒绝连接。回忆以前抓到的包都是用NFSv3协议进行连接的,难道是因为客户机与服务器的NFS版本不匹配导致连接被拒绝的?那就强制使用同一版本的NFS协议,这里采用NFSv3,因为服务器是支持这个版本的。于是运行命令mount 10.56.5.13:/share/share-onfsvers=3后终于挂载成功。这时状态为NFS3 OK。
图2 nfs协商失败
稍后经过查询,发现Red Hat Enterprise Linux Server release 6.1以上的Linux系统NFS默认使用v4版本,而我们的服务器最高支持到v3版本,这导致了连接被拒绝。
2.3ftp故障
FTP(File Transfer Protocol,文件传输协议)是最为常用的网络协议之一。FTP由服务器和客户端两部分组成,其中FTP服务器放置资源,用户通过FTP客户端来访问位于FTP服务器上的资源。由于FTP使用方便传输效率高,在业务上使用非常普遍。FTP故障会影响业务的正常运行,因此网络管理员需对其有足够的重视。下面分享我单位在FTP使用过程中遇到的一次问题。先介绍网络连接:
图3 网络连接图
如图3所示,客户机(简称A机)与FTP服务器(简称B机)之间有2台防火墙保护,B机没有用默认的tcp21端口而是采用tcp12721端口。A机可以ping通B机,也能够成功登陆,但不能列取B机目录。执行ls命令后长时间等待,最后超时退出。首先关闭系统防火墙,但故障依旧。回忆FTP的工作模式:FTP支持两种模式,一种是主动模式,另一种是被动模式。在数据传输时,如果服务器主动与客户端建立连接就叫主动模式;如果服务器等待客户端去连接它就叫被动模式。主/备动模式可以通过passive on/off命令进行切换。在主动模式下客户端连接到服务器的tcp21端口,发送用户名和密码登录,在数据传输时,客户端随机开放一个高端tcp端口(端口号>1024),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口,然后服务器通过tcp20端口和客户端开放的端口连接,发送数据;在被动模式下,客户端连接到服务器的tcp21端口,发送用户名和密码登录,在数据传输时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个高端端口(端口号>1024),并且通知客户端使用这个端口进行数据传输,客户端连接服务器此端口,然后服务器将通过这个端口传输数据。
图4 ftp数据包
打开wireshark进行抓包分析,如图4,1650、1665、1666、1667这4个数据包是A机与B机控制信息的协商。从1668号包可以看出FTP采用被动模式进行数据传输,因为源地址是A机(客户机),目的地址为B机(服务器)。A机的tcp40669端口连接B机的tcp60662端口,然而B机并没有回应。这说明要么A机发送的数据包被拦截,要么B机回应的数据包被拦截。由于不清楚远端防火墙的配置,只能检查本地防火墙,发现A机只允许访问B机的tcp12721这个端口,增加配置:允许A机访问B机任意tcp端口后,FTP终于能够正常传输数据了。
FTP主/备动模式是网络管理员经常遇到的问题,许多FTP故障都与它有关。许多内网的客户端不能用主动模式登陆FTP服务器,因为从服务器无法和内部网络的客户端建立一个新的连接,造成无法工作。而被动模式要求在服务器前端的防火墙上开放的端口过多,有一定的安全隐患。不同的场合采用相应的模式才能让FTP正常稳定的运行。另外windows系统自带的ftp命令只能以主动模式工作,如图5,虽然使用命令quote pasv进入被动模式,而且也确实提示进入Passive Mode,但抓包结果表明FTP仍然是以主动模式工作的,这也算是一个bug吧。
图5 windows下ftp数据包
3 总结
从以上案例进行来看,wireshark在多种场合都能发挥作用,迅速准确的找到故障原因。目前,网络协议种类越来越多,版本越来越多,协议间的交互协商也越来越复杂,任何一个环节出现问题都可能导致故障的发生。如果遇到故障完全靠管理员的经验来解决,不仅费时费力,而且有些故障特别隐蔽,不抓包进行分析,很难解决。Wireshark对解决这类网络故障提供了良好的方法,提高了工作效率。
[1]W.Richard Stevens.TCP/IP详解卷1:协议[M].北京:机械工业出版社,2000.
[2]林沛满.Wireshark网络分析就这么简单[M].北京:人民邮电出版社,2014.
The Solution for Network Fault with Wireshark
Zhu Yu
(ShanxiMeteorologicalInformationCenter,TaiyuanShanxi030006,China)
Network failure has a serious impact on the security and stability of the business system. Accurately locating and quickly fixing the network failure has great significance for industrial production and people’s lives; it is also an important indicator to measure the network administrator's skills. Crawling network packet to analyze network protocol is a common method to troubleshoot network problems. This paper focuses on the network problems encountered in the work, and to diagnose and analyze with wireshark software so as to fix network fault rapidly.
Wireshark; protocol analysis; packetcapture
2016-04-18
朱煜(1984- ),男,山西太原人,工程师,工程硕士,主要从事气象信息技术工作。
1674- 4578(2016)04- 0059- 02
TP393.08
A