巧用抓包工具 轻轻松松排查网络故障运营维护
以前在工作中,有时会碰到网络风暴或病毒导致的网络瘫痪,这个时候,我们通常会将所有交换机的电源全部关掉,稍候从启交换机。
但是当交换机重启后,我们发现问题并没有解决,因为很快网络又瘫痪了,这时我们考虑到应该是网络中的某一台交换机或某一台电脑有问题,我们通常会通过分段断网的方式来解决,这样通常经过很长时间,我们逐个打开交换机,并且同时开启ping命令,ping电信的测试DNS,深圳的测试DNS是202.96.134.134,我们就用命令ping 202.96.134.134 -t来查看和电信的测试DNS是否连接, -t 参数的意思是不断连接,不然ping命令会在连接四次后停止。
我们每开一个交换机,就查看和测试DNS的边接是否正常,一直到连接中断,我们就判断出是哪个交换机出了问题,这个时候,我们再把那个交换机上的网络全部拔掉,然后一根一根接上去,同时观察连接是否正常,一直到连接中断,就可以判断出是哪根网线有问题,再通过网线找到有问题的主机。进行查看。通过查杀病毒,一般都能解决。
但我们看出,这个工作量是非常大的,如果交换机够多,而且出问题的电脑不止一台的时候,我们要花很长时间,才能完全将网络问题解决。
但是我们有一种工具,叫抓包工具,也叫网络嗅探,sniffer pro是国外一款业界很有名的专业嗅探软件,国内的有科来网络分析软件,也比较有名。这个时候,我们可以通过这样的嗅探软件,对网络状况进行旁路监听,也就是监听网络中所有的数据包,然后对这些数据包进行分析,我们就可以很快找到网络故障的原因及故障点。
嗅探原理:
网络中的一台电脑,与另一台电脑进行通讯,它会把数据包发到网络上,这包括:
源地址:意思是这个数据是从哪台电脑发过来的,
目标地址:这个包要发给谁。
数据包:具体发送的数据。
[其实网络数据包的参数很多,不止这些,但我们了解这些,后面的就可以看懂了。]
这个数据包会发送到网络中的每一台电脑,意思就是网络中的任何一台电脑都会收到这个数据包,当电脑接收到数据包后,会检查目标地址,如果发现目标地址是自已,就接收这个数据包。否则,就将这个数据包丢弃。
那如果我们在某一台电脑上,将网卡设置成混杂模式,那这个电脑将会接收网络上所有的数据包,而不丢弃。
这就是嗅探的原理。
具体分析:
一般网络故障有2方面:
一是由于网络是传送大量垃圾数据包,导至网络阻塞,如:网络中的某台主机中毒后,发送大量广播包,就是目标地址为192.168.0.255 [我们假设网络网段为192.168.0.0/24]。这时我们可以查看抓到的数据包,看哪台电脑发送的数据包最多,一般很容易就能找到故障源头。
二是由于网络中的某台电脑中毒后发送ARP欺骗包,那什么又是ARP欺骗包呢?
我们来看看ARP的概念:
网络中有两种地址,一种是我们都知道的IP地址,形式如:192.168.0.1这个大家都知道,还有一种是物理地址,形式如:00-e0-4c-8c-25-69 就是MAC地址,这是网卡在出厂的时候就被厂家设定好的,全球唯一的地址。数据在网络中传输时的源地址和目的地址,都不是使用的IP地址,而是MAC地址,我们再来看看数据是如何在网络中传输的。
当一台电脑需要发送数据给另一台电脑,比如192.168.0.2 MAC地址是:00-19-e0-29-7f-47要发送数据给192.168.0.3,MAC地址是00-11-5b-7e-08-ae,这个时候,192.168.0.2就会在网络上发送一个ARP广播,这个ARP广播包的数据结构就是
源地址:192.168.0.2 MAC地址:00-19-e0-29-7f-47
目标地址:192.168.0.3
数据包:“谁是192.168.0.3,请返回你的MAC地址”
当192.168.0.3收到后,就会回应一个数据包
源地址:
IP地址:192.168.0.3
MAC地址:00-11-5b-7e-08-ae
数据包:“我的MAC地址是00-11-5b-7e-08-ae”
当192.168.0.2接收到这个数据包后,就会在本地缓存记下192.168.0.3的MAC地址。
我们可以通过ARP -a 命令看到这个缓存:
C:>arp -a
Interface: 192.168.0.2 --- 0x2
Internet Address Physical Address Type
192.168.0.3 00-11-5b-7e-08-ae dynamic
这其中的Internet Address就是IP地址,Physical Address就是物地址,Type 下面是dynamic,表示是动态更新。
默认情况下ARP缓存的超时时限是两分钟,也就是2分钟以后,又会发起一次ARP询问,而ARP欺骗正是利用这个特点。
一般ARP欺骗都是进行网关欺骗,也就是大家上网都要通过的一个节点,如一般网络中192.168.0.1是网关地址,假设他的MAC地址是00-90-7f-2e-47-bf,
我们看192.168.0.2如何进行ARP欺骗
首先192.168.0.2会在网络中不断地发送数据包,格式如下:
源地址:
IP:192.168.0.2 MAC:00-19-e0-29-7f-47
目标地址:192.168.0.255 [广播,意思是所有网络上的电脑都能接收到]
数据包:“我是192.168.0.1,我的MAC是00-19-e0-29-7f-47”
[其实真正的192.168.0.1的MAC地址应该是00-90-7f-2e-47-bf]
网络中所有的电脑在接收到这个ARP欺骗数据包后,就会更新本地的ARP缓存,
将192.168.0.1对应的MAC地址由正确的00-90-7f-2e-47-bf改成192.168.0.2电脑的MAC地址:00-19-e0-29-7f-47
这样,以后所有发往网关的数据,都会发到192.168.0.2这台电脑上。但是发送的电脑并不知道自已发错了。
192.168.0.2这台电脑就可以对捕获的数据包进行分析,获得自已想要的数据,如帐号和密码。这一般是一些病毒最终想要的东西。
通过上面的了解,我们知道,一个电脑如果进行ARP欺骗,必然要发送大量的ARP回应,而不是ARP询问,我们只要查看我们捕获的数据包里,谁发送了大量的ARP回应,就可以很快找到这台电脑。
通过专业网络嗅探工具,大大方便了日常的网络管理工作。
这样我们再也不用一个个交换机断电,一根根网络去拔下来,再接上去。
网络管理,从此变得轻松!