一:实验目的
1:了解IP地址和MAC地址之间的关系。
2:掌握ARP命令的使用。
3:掌握ARP协议的工作细节。
4:了解ARP欺骗的原理和相关的攻击防范方法。
二:实验仪器设备及软件
硬件:RCMS-C服务器、网线、Windows 2019/2003操作系统的计算机等。
软件:记事本、WireShark、Chrome浏览器等。
三:实验方案
【实验的网络拓扑图】
四:实验步骤
1:按照网络拓扑图连接设备,配置两台计算机的IP地址和掩码。
首先利用多条网线,将PC1的网卡和三层交换机的端口0进行连接,将PC2的网卡和三层交换机的端口1进行连接。
然后打开Windows操作系统上的网络和Internet设置,启用内网并禁用外网。
最后打开内网的属性,配置ipv4的地址和子网掩码。这里需要保障PC1和PC2的网段一致,否则两台计算机无法通讯。
具体而言,2号计算机需要配置其ipv4地址为10.206.6.4、子网掩码为255.255.255.0。1号计算机需要配置其ipv4地址为10.206.6.2、子网掩码为255.255.255.0。
2:在两台计算机的命令窗口中执行arp -a命令,查看高速缓存中的ARP地址映射表的内容。
上图展示了2号计算机的ARP地址映射表,可以看出ARP映射分为动态和静态。此外,同一个局域网内的计算机的IP地址和物理地址存储在动态类型表项中。
3:在两台计算机的命令窗口中执行arp -d命令,清除ARP缓存,清除后可再用arp -a命令验证,记录实验结果。
上图展示了2号计算机的ARP地址映射表经过清除后的结果,可以发现此时只包含1个静态类型的表项。
4:在两台计算机上运行wireshark,启动捕获报文功能。
5:在主机PC1上执行ping PC2的命令,以产生数据报。
上图展示了PC2上执行ping PC1的操作,发送了4个数据包。
6:执行完毕,保存捕获的报文并命名为arp-1。
捕获的报文如上图,文件格式为pcapng。
捕获的请求报文如上图所示。发送方的MAC地址为e0:be:03:75:53:a9,IP地址为10.206.6.4。接收方的MAC地址为00:00:00:00:00:00,IP地址为10.206.6.2。报文信息为谁有10.206.6.2的MAC地址,请告诉10.206.6.4。
捕获的应答报文如上图所示。发送方的MAC地址为00:14:78:81:b4:b4,IP地址为10.206.6.2。接收方的MAC地址为e0:be:03:75:53:a9,IP地址为10.206.6.4。报文信息为10.206.6.2的MAC地址的回复传递。
7:在两台计算机上再次执行arp -a命令,查看高速缓存中的ARP地址映射表的内容。
可以发现ARP地址映射表中多了PC1的ip地址和物理地址的表项。
8:重复步骤4至步骤5,将此结果保存为arp-2。
再次运行的请求报文如下图所示。可以发现接收方的MAC地址有所改变。
再次运行的应答报文如下图所示。
五:实验结果及分析
1:分析步骤7和步骤3的实验结果,由此说明ARP高速缓存的作用。
步骤7和步骤3的实验结果不相同。
ARP高速缓存的作用在于存储最近解析过的IP地址到MAC地址的映射关系。当设备需要再次向同一目标设备发送数据包时,它可以直接从ARP缓存中查找MAC地址,而无需再次发送ARP请求,从而大大减少了数据包的传输延迟,提高了传输效率。
2:打开arp-1,回答问题。
【1】在捕获的报文中有几个ARP报文?在以太网帧中,ARP协议类型的代码值是什么?
2个ARP报文,包括1个请求报文和1个应答报文。
在以太网帧中,ARP协议类型的代码值是0x0806,如下图所示。
【2】比较两次捕获的报文arp-1和arp-2有何区别?分析其原因。
在第一次捕获时,接收方的MAC地址为00:00:00:00:00:00。在第二次捕获时,接收方的MAC地址为e0:be:03:75:53:a9。
因为在第一次捕获时,查询ARP地址映射表后发现没有接收方IP地址所对应的MAC地址,因而需要通过广播的方式获取,并且获取后存入ARP地址映射表中。因此在第二次捕获时,ARP地址映射表会通过接收方的IP地址,主动提供接收方的MAC地址。
【3】根据ARP报文格式,分析arp-1中ARP报文的结构,填表。
表1:ARP请求报文
字段 | 报文信息及参数 |
硬件类型 | Ethernet |
协议类型 | IPv4 |
硬件地址长度 | 6 |
协议地址长度 | 4 |
操作 | Request |
源物理地址 | e0:be:03:75:53:a9 |
源IP地址 | 10.206.6.4 |
目的物理地址 | 00:00:00:00:00:00 |
目的IP地址 | 10.206.6.2 |
表2:ARP应答报文
字段 | 报文信息及参数 |
硬件类型 | Ethernet |
协议类型 | IPv4 |
硬件地址长度 | 6 |
协议地址长度 | 4 |
操作 | Reply |
源物理地址 | 00:14:78:81:b4:b4 |
源IP地址 | 10.206.6.2 |
目的物理地址 | e0:be:03:75:53:a9 |
目的IP地址 | 10.206.6.4 |
3:通过构造特殊的ARP请求包或响应包,包含错误的IP地址和MAC地址的对应关系,并发送到网络,实现ARP协议的欺骗实验。讨论ARP协议能欺骗成功的原因。
通过arp/?命令,可以查询arp的所有命令。其中,arp -s可以进行ARP表项的手动添加。但是由于防火墙等因素,在Windows上仅仅通过cmd界面,无法进行欺骗实验。
ARP协议能欺骗成功主要是因为以下几个因素。(1)ARP协议缺乏验证机制:ARP协议在设计时默认信任以太网内的所有主机。当主机接收到ARP数据包时,不会进行任何认证就刷新自己的ARP缓存。因此,攻击者可以伪造ARP响应包,并成功欺骗目标主机。(2)ARP缓存表的动态性:ARP缓存表中存储的每条记录可以是静态的,也可以是动态的。如果是动态的,那么这条记录可以被ARP应答包修改。攻击者可以通过构造特殊的ARP响应包来修改目标主机的ARP缓存表。(3)广播通信方式:ARP请求包是以广播形式发送的,而ARP响应包则是单播发送的。攻击者可以轻松地伪造ARP响应包,并将其发送到整个网络,从而实现对多个主机的欺骗。
4:讨论防止ARP欺骗的方法。
(1)静态ARP绑定。
(2)使用虚拟局域网VLAN。
(3)采用IPSec VPN。
(4)采用ARP防火墙。
(5)密码保护、网络监控、安装欺骗防护软件等。
5:分析ARP协议通过三层交换机的VLAN路由在不同网段间的解析过程。
配置三层交换机的VLAN 10端口。
配置三层交换机的VLAN 20端口。
查看三层交换机的路由情况。
设置IP地址、子网掩码和默认网关,并禁用外网。
此处2号计算机的IP地址为10.206.7.4,子网掩码为255.255.255.0,默认网关为10.206.7.254。
验证是否可以ping通。
清空ARP地址映射表。
打开wireshark,捕获数据报。
令ip地址为10.206.7.4的计算机,ping通ip地址为10.206.6.2的计算机,并执行2次。
查看捕获的数据报结果。可以发现,只有第一次ping的时候会有arp协议的请求报文和应答报文。
请求报文的具体信息如下图。
应答报文的具体信息如下图。
六:实验总结及体会
1:不同网段的计算机在交换机的局域网中通信时,需要禁用外网,否则无法ping通VLAN中的其他计算机。
2:只用交换机连接2个计算机时,ARP协议在同一网段内可以进行解析,在不同网段内不可以进行解析。即,在同一网段内可以ping通,在不同网段内无法ping通。
3:为了防止ARP欺骗攻击,可以采取一些安全措施,如使用静态ARP映射、启用ARP防护功能等。
4:以太网帧的帧类型字段用于指示数据帧中所携带的上层协议类型。对于ARP数据帧,该字段的值为0x0806。这个值由两部分组成,前两位0x08表示以太网帧的类型字段用于表示协议类型,而后两位0x06则是ARP协议的特定标识符。