首先收集每台设备的MAC地址以备分析:
服务器A:00-0c-29-bb-bb-7f 服务器B:00-0C-29-8C-BF-6D 默认网关:00-50-56-fe-c8-98 |
在服务器B上启动Wireshark,然后执行ping命令与A通信,此时Wireshark会将通信过程进行抓包。ping命令结束之后,停止抓包,我们首先来熟悉一下Wireshark的主界面。
Wireshark的界面非常直观,从上到下分为三个窗口。
最上面的窗口列出了抓到的所有数据包,主要包含的信息有:数据包序号、数据包被捕获的相对时间、数据包的源地址、数据包的目的地址、数据包的协议、数据包的大小、数据包的概况信息。
选中某个数据包之后,会在中间窗口中分层次地显示出这个包的详细信息,并且可以通过展开或是收缩来显示这个数据包中所捕获到的全部内容。
最底下的窗口会显示数据包未经处理的原始样子,也就是其在链路上传播时的样子,这个一般用的不多。
比如我们选中1号包,在上方的窗口中会看到这是一个ARP广播包,这个包是由服务器B发出去的,目的是询问网关192.168.80.2的MAC地址。在下方的窗口中,第一行显示这个包的基本信息,Frame1表示这个是1号包。第二行显示的是数据帧的封装信息,第三行显示的是ARP协议的封装信息。
在服务器B上ping服务器A,B首先会去解析网关的地址,这与我们之前的分析一致。
2号包是默认网关返回的响应信息,告诉服务器B自己的MAC地址。注意这些MAC地址的开头都被替换成了Vmware,这是由于MAC地址的前3个字节表示厂商。
3号包是服务器B发出的ping包,指定的目的IP为A(192.168.80.129),但目的MAC却是默认网关的00-50-56-fe-c8-98,这表明B希望网关把包转发给A。
5号包是A发出的ARP广播,查询B的MAC地址。这是因为在A看来,B属于相同网络,因而无需借助于网关。
接下来6号包是B直接回复了A的ARP请求,把自己的MAC地址告诉A,这说明B在执行ARP回复时并不考虑同一网络问题,虽然ARP请求来自于其它网络,但也照样回复。
再接下来就是一些重复的ping请求和ping回复。
因而,通过Wireshark抓包,也验证了我们之前所做的理论分析。
本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1734010