1、实验三 地址转换协议 ARP实验目的1能够使用 ARP 命令对 ARP 选路表(下文简称 ARP 表) 进行简单操作。 2学会使用 WIRESHARK 捕获 ARP 数据包并分析其格式。 3深入理解 ARP(地址解析协议)的工作原理和重要作用。实验环境1安装 Windows2000/2003Server/XP 操作系统的 PC 计算机一台。2每台 PC 具有一块以太网卡,通过双绞线与局域网相连。2每台 PC 运行网络协议分析软件 WIRESHARK。实验原理ARP 协议是“Address Resolution Protocol”的缩写。在局域网中,网络中实际传输的是“帧 ”,帧里面是有目标主机
2、的 MAC 地址的。在以太网中,一台主机要和另一台主机进行直接通信,必须要知道目标主机的 MAC 地址。但这个目标 MAC 地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标 IP 地址转换成目标 MAC 地址的过程。ARP 协议的基本功能就是通过目标设备的 IP 地址,查询目标设备的 MAC 地址,以保证通信的顺利进行。在 DOS 提示符下使用 arp -a 命令就可以查看本地的 ARP 缓存内容,所以,执行一个本地的 PING 命令后,ARP 缓存就会存在一个目的 IP 的记录了。当然,如果你的数据包是发送到不同网段的目的地,那么就一定存在一条网关的
3、 IP-MAC 地址对应的记录。 知道了 ARP 协议的作用,就能够很清楚地知道,数据包的向外传输得依靠ARP 协议,当然,也就是依赖 ARP 缓存。要知道, ARP 协议的所有操作都是内核自动完成的,同其他的应用程序没有任何关系。同时需要注意的是,ARP协议只使用于本网络。硬件类型(值为 1) 协议类型(值为0800H)硬件长度(值为 6)协议长度(值为 4)操作:请求 1,响应 2发送 MAC 地址(6 字节)发送 IP 地址(4 字节)目标端 MAC 地址(6 字节) (并未包含在请求报文中)目标端 IP 地址(4 字节)图 2-1 使用 IP 协议的以太网中 ARP 报文格式字段说明:
4、硬件类型:表示硬件类型,例如:1 表示以太网。协议类型:表示要映射的协议类型,例如 0x0800 表示 IP 地址。硬件长度:指明硬件地址长度,单位是字节,MAC 是 48 位,长度是 6 个 字节。协议长度:高层协议地址的长度,对于 IP 地址,长度是 4 个字节。操作字段:共有二种操作类型,1 表示 ARP 请求,2 表示 ARP 应答。发送方 MAC:6 个字节的发送方 MAC 地址。发送方 IP: 4 个字节的发送方 IP 地址。目的 MAC:6 个字节的目的 MAC 地址。目的 IP: 4 个字节的目的 IP 地址。图 2-2 ARP 地址解析过程实验步骤1、使用 ARP 命令打开“
5、命令提示符”界面,键入“arp -a”指令查看本机 ARP 表中的内容。如图 2-1 所示。图 2-1 查看本机 ARP 表的内容注意:在 ARP 表中,各主机的逻辑地址与物理地址是一一对应的,由此形成表项。主机之间进行物理通信前,首先要查找本机 ARP 表,如果有对应项,则将通信对方的 IP 地址转换为相应的物理地址。 “Type”栏下的“dynamic”字段表明该表项处在动态更新中。如果 20 分钟内没有其它访问网络的操作,ARP表会自动清空。如果不想等待 20 分钟,可使用“arp d *”命令主动清空 ARP 表的内容。此时再执行“arp -a”命令,会发现 ARP 表已经清空。我们还
6、可以使用“arp -s”命令手工设置 ARP 表表项,如:“arp s 192.168.12.253 00-cd-0d-33-00-34”。(arp s IP 地址 MAC 地址)图 2-2 手动添加 ARP 表表项2、分析 ARP 协议的工作过程具体操作步骤是:(1)相邻的两名同学为一组,清除 ARP 表中的所有项。(2)运行 WIRESHARK 程序,执行分组捕获操作。(3)向另一台机器发送 Ping 包,稍后停止发 Ping 包。(4)查看 WIRESHARK 捕到的 ARP 包,分析 ARP 协议执行的全过程。3、用 ARP 命令查找 IP 地址冲突主机我们知道,如果网络中存在相同 I
7、P 地址的主机的时候,就会报告出 IP 地址冲突的警告。这是怎么产生的呢? 比如某主机 B 规定 IP 地址为 192.168.12.251,如果它处于开机状态,那么其他机器 A 更改 IP 地址为 192.168.12.251 就会造成 IP 地址冲突。其原理就是:主机 A 在连接网络(或更改 IP 地址)的时候就会向网络发送 ARP 包广播自己的IP 地址。如果网络中存在相同 IP 地址的主机 B,那么 B 就会通过 ARP 来 reply该地址,当 A 接收到这个 reply 后,A 就会跳出 IP 地址冲突的警告,当然 B 也会有警告。如果能同时观察到这些主机,那么通过修改其中一台主机的 IP 地址即可解决问题。但是如果我们仅能观察到其中一台 PC 提示 “IP 地址 192.168.12.251与网络上的其他地址冲突” ,那么应如何确定是哪两台主机设置了相同的 IP 地址呢?(1)将该报警主机的 IP 地址修改为一个未用地址。如:192.168.12.253(2)在该机命令提示符界面输入“Ping 192.168.12.251” 。(3)执行“arp -a”命令。思考题1结合实验画出地址解析的流程图。2根据 ARP 协议的工作机制考虑是否存在地址欺骗的安全隐患?试考虑可能的解决途径。3ARP 协议只能解析本网络地址,那么跨网络如何解析地址呢?