Week 13 : 利用Wireshark分析ARP协议
1. 实验目的
- 掌握Wireshark软件的过滤语法
- 掌握ARP 的工作原理
2. 实验任务
- 学会利用Wireshark 抓包分析ARP协议
3. 实验过程
3.1 预备知识
- ARP(Address Resolution Protocol) 协议,即地址解析协议。该协议的功能就是将IP地址解析成MAC地址。ARP的基本功能就是负责将一个已知的IP地址解析成MAC地址,以便主机间能正常进行通信。
- ARP 协议的解析过程只使用了两种数据包: 一个ARP请求和一个ARP响应,如下图所示:
- 其详细工作原理是:
- 当主机A想要给主机B发送数据时,主机A会首先在自己的本地ARP缓存表中检查与主机B匹配的MAC地址。
- 如果主机A在自己的缓存表中没有找到主机B的相关条目,那么它就要想办法获取主机B的MAC地址。这就需要将ARP的请求帧广播到网络上所有主机中。这个请求帧包含有主机A的IP地址和MAC地址,以及主机B的IP地址。网络中凡是收到请求帧的主机都会检查自己的IP地址是否与请求地址一致,如果不一致,则会丢弃该请求帧。对于上图来说,主机C和主机D会丢弃主机A发出的请求帧。
- 主机B确定ARP请求中的IP地址和自己的IP地址一致,那么就会将主机A的IP地址和MAC地址添加到本地的缓存列表中
- 主机B将包含有自己MAC地址的ARP响应消息直接回复给主机A(单播)
- 主机A收到从主机B发来的ARP响应消息之后,会将主机B的IP地址和MAC地址添加到自己的ARP缓存表中。接下来,主机A就可以向主机B发送消息了
- 如果想要查看ARP缓存表,可以打开cmd ,输入”arp -a”
3.2 分析 ARP 数据包
- 选择一个ARP缓存表中没有的地址进行分析,如:
ping 192.168.1.110
- 利用Wireshark 抓取 ARP 包,并进行分析,再次通过 arp -a 命令可以发现该IP地址对应的mac信息已添加在缓存表中了
task1
如上图所示,分析当ARP缓存表不存在某个IP信息时,数据发送是的请求和应答数据报信息,截图并标注具体ARP字段数据,请在实验报告中附上结果截图
我在笔记本上开了一个虚拟机,地址是 192.168.31.100
,
1 | Address Resolution Protocol (request) |
我们发现,在还没有加入缓存的时候,我们发送的ARP请求包中是不知道目标主机的mac地址的,因此默认为:00:00:00:00:00:00
1 | Address Resolution Protocol (reply) |
task2
分析当ARP缓存表存在某个Ip信息时,ARP请求和接收MAC地址分析,(只截图,写出目的MAC地址和源MAC地址),并分析与task1中数据包存在的区别,在实验报告中附上截图
1 | Address Resolution Protocol (request) |
但是当ARP中已经包含了该主机的mac地址后,在发送ARP请求包时,在Target MAC address
中直接填入目标主机的mac地址了。
1 | Address Resolution Protocol (reply) |
但是 ARP 响应包,前后都是一样的。
这时候我们已经发现,刚才ping 的 192.168.31.100 的mac地址已经添加到arp缓存表中去了,而且我们发现,这个地址和我开虚拟机的电脑的地址是一模一样的。