一、实验目的
1. 学会通过Wireshark获取ARP消息;ARP:地址解析协议
2. 掌握ARP数据包结构
3. 掌握ARP数据包各字段的含义
4. 了解ARP协议适用领域
二、实验步骤
0. Network Setup;
1. Capture a Trace;
2. Inspect the trace;
3. ARP request and reply;
4. Details of ARP over Ethernet;
5. Explore on your own;
三、实验环境
· wireshark;
· arp:command line utility命令行程序。用于inspect检查、clear清除计算机上的ARP协议使用的缓存。arp作为OS的一部分安装在计算机上,不同OS系统使用不同参数。要求管理员权限才可以清除cache缓存。
· ufcibfug-Windows / ipconfig-Mac/Linux:命令行程序。检查计算机网络接口状态。也是作为OS一部分安装在计算机上。
· route-Windows / netstat-Mac/Linux:命令行程序。检查计算机使用的路由。key route 是默认路由(或前缀0.0.0.0) 使用默认网关访问Internet远程部分。
· Browser:本次实验用web浏览器获得页面作为工作负载。
四、实验过程与分析
0. Network Setup 设置网络
在操作过程中观察ARP地址解析协议。
本地IP地址典型例子:
本地路由器or默认网关(将我的计算机连接到Internet其他部分)。我的计算机将这些translation缓存在ARP cache中,从而ARP协议只需要偶尔进行translation。
· ARP Address Resolution Protocol 地址解析协议:实现IP 地址à 物理地址(e.g. MAC地址)。
大部分计算机程序利用IP地址收发消息,但实际通信发生在物理层,利用物理的MAC地址,IP地址—ARP—>MAC地址(hardware address)
1. Capture a Trace 捕获
1. 用ipconfig/all 命令获得Ethernet address即MAC地址。
2. 用netstat -r命令获得我的计算机访问Internet其他部分的本地路由器/默认网关的IP地址。默认情况下,网关与IP地址0.0.0.0相对应。
3.启动wireshark,取消混杂模式,使用arp过滤器开始捕获。
4. 用arp -a命令显示 arp cache中内容;
管理员模式下打开cmd,用arp -d命令清除arp cache中的default gateway默认网关。
5. 清除arp cache后,用web浏览器获取一个远程页面;
这将使ARP得到默认网关的以太网地址MAC地址,从而能够发送数据包,wireshark捕获;
ARP packets被发送到广播地址时,其他计算机的ARP流量会被捕获,因为在这种情况下,广播(发送给所有计算机),包括我的计算机(我在运行wireshark的这台计算机);
ARP行为发生的比较慢,需要等待30 seconds↑。
6. 捕获了一部分ARP流量之后,停止捕获。
下一步需要:trace跟踪 + 我的电脑的Ethernet address + 默认网关的IP address。
2. Inspect the Trace 检查捕获
ARP exchange
1. 在捕获的诸多ARP包中,先浅浅看一下直接从我计算机发出的、直接发给我计算机的ARP包,我的电脑的Ethernet address 4C-D5-77-B7-87-D9。
关于MAC地址不同的问题:
ECNU校园网下wireshark捕获的包中物理地址不是我电脑的4C-D5-77-B7-87-D9,而是40-06-d5-a2-fb-02。但宿舍网中wireshark捕获的包物理地址即ipconfig/all命令显示的4C-D5-77-B7-87-D9。
ipconfig/all命令显示的4C-D5-77-B7-87-D9:是我的电脑网卡生产时固定了的MAC地址,不可以更改的。
在校园网中,申请开户时管理员会开启我的网络端口,并在我第一次使用ECNU校园网时绑定我电脑的MAC地址(不是我的学号什么的)。
参考华为客服的解答:
启用过滤器筛选eth.addr==4c-d5-77-b7-87-d9;
2. 两种ARP包:request请求/reply应答。
· request请求包:info内容:who has + 我的默认网关MAC地址xx.xx.xx.xx ? Tell yy.yy.yy.yy。
· reply应答包:info内容:IP地址xx.xx.xx.xx is at 自己的MAC地址a:b:c:d:e:f
ARP各字段内容
· Hardware type 硬件类型 2B:设置成常量1,告知硬件是以太网;
· Protocol type 协议类型 2B:0x0800,明确协议为IP协议;
· Hardware size 硬件大小 1B:6;
· Protocol size 协议大小 1B:4;若=6即IPv6协议;
· Opcode 2B:操作码,区别是1=request请求包 or 2=reply回复包;
· sender MAC address 6B:发送方的MAC地址;
· sender IP address 4B:发送方的IP地址;
· target MAC address 6B:目标MAC地址;在request包中发送方还不知道目标MAC地址,所以全0不填;
· target IP address 4B:目标IP地址;
3. ARP request and reply
Turn-in: Hand in your drawing of the ARP exchange.
4. Details of ARP over Ethernet;
Turn-in: Hand in your answers to the above questions.
- What opcode is used to indicate a request? What about a reply?
request:opcode = 1;
reply: opcode = 2; - How large is the ARP header for a request? What about for a reply?
request 和 reply 的ARP header都是28B,28字节。
28B = 2B硬件类型 + 2B协议类型 + 1B硬件大小 + 1B协议大小 + 2B opcode
+ 6B 发送方MAC地址+ 4B发送方IP地址 + 6B目标MAC地址 + 4B目标IP地址 - What value is carried on a request for the unknown target MAC address?
00-00-00-00-00-00; - What Ethernet Type value which indicates that ARP is the higher layer protocol?
0x0806
- Is the ARP reply broadcast (like the ARP request) or not?
ARP reply不是广播的,是单播的,单独发送给请求的地址。
5. Explore on your own
取消筛选器之后,观察到还有其他ARP。
requestARP的info:“谁有PC3的MAC地址?请告诉PC1”
· request的功能:获取target MAC地址
· request以广播的形式发送出去,其余计算机接收到这个请求之后,检查目的MAC地址与自己的是否匹配,匹配成功则将这个源MAC、源IP记录到ARP缓存表中,reply单播回应。