郑州大学计算机网络实验11 ARP协议探索和分析

实验十一 ARP协议探索和分析

【实验目的】

1、掌握ARP协议数据格式;

2、理解ARP协议工作原理;

3、理解ARP缓存的更新规则;

3、熟悉Linux下arp命令的使用方法。

【实验步骤与结果记录】

要求:根据实验指导书中的实验内容和步骤,认真完成实验。采取截图、拍照等形式记录自己的实验步骤和结果。(可根据需要加页)

步骤1:创建虚拟网络拓扑。

1.在实验三的虚拟网络拓扑中增加一台主机ns56B,就可以得到本实验的网络拓扑,如下图所示。

2.利用脚本程序script3.1创建实验三的虚拟网络。

3.使用脚本程序script11.1为网络增加主机ns56B。

步骤2:为虚拟网络拓扑中的各路由器配置静态路由。

1.本实验和实验三采用相同的网络拓扑,路由配置也一样。

2.利用脚本程序script3.2可以配置各路由器的静态路由。

步骤3:关闭网卡offload功能,将运输层封装时需要的计算还给cpu。

1.本实验关闭offload的方法与实验三相同。

2.利用脚本程序script3.3可以关闭网卡offload功能。

3.执行如下命令,关闭新增加的主机ns56B中网卡的offload功能。

复制代码
ip netns exec ns56B ethtool -K tap56B gso off

ip netns exec ns56B ethtool -K tap56B tx off rx off

步骤4:确保各主机和路由器的ARP缓存表为空。

1.执行如下Linux命令,查看所有主机和路由器的ARP缓存表。

复制代码
ip -all netns exec arp -n

2.如果发现某个ARP缓存表不空则在相应的NS内执行命令

复制代码
arp -d <host>

逐条删除arp缓存,或执行

复制代码
ip neighbour flush dev <DEV>

清空指定接口的ARP缓存表。

步骤5:在主机ns56A,主机ns56B,路由器RB,RA,RC上启动wireshark,在接口tap56A,tap56B,tapRB_RA,tapRA_RC和tapRC_57A上启动抓包。

1.依次执行如下命令,在主机ns56A,主机ns56B,路由器RB,RA,RC上后台启动wireshark。

复制代码
ip netns exec ns56A wireshark &

ip netns exec ns56B wireshark &

ip netns exec RB wireshark &

ip netns exec RA wireshark &

ip netns exec RC wireshark &

2.在各Wireshark窗口中选择接口tap56A,tap56B,tapRB_RA,tapRA_RC和tapRC_57A,依次启动抓包。

步骤6:利用ping命令从主机ns56A向主机ns57A发送IP数据报。

1.执行如下命令,从主机ns56A上ping主机ns57A。

复制代码
ip netns exec ns56A ping -c 1 192.168.57.126

步骤7:在5个Wireshark窗口中停止抓包,保存抓包结果文件并分析截获的ARP请求和响应报文。分析ARP协议报文格式,理解ARP协议工作原理。

步骤8:查看主机ns56A,主机ns56B和路由器RB上的ARP缓存表,理解ARP缓存的更新策略。

1.依次执行如下Linux命令,分别查看主机ns56A,ns56B和路由器RB的ARP缓存表

复制代码
ip netns exec ns56A arp -n

ip netns exec ns56B arp -n

ip netns exec RB arp -n

2.分析并理解ARP缓存更新策略

【问题与分析】

1、在步骤7中,分析在tap56A接口截获的一对ARP请求和响应,截图并填写表11.1。

|---------|---------|-------------------|
| 表11.1 ARP协议格式分析 |||
| | 字段 | 值 |
| ARP请求报文 | 操作码 | 1 |
| ARP请求报文 | 发送方硬件地址 | ba:26:c7:c3:8a:31 |
| ARP请求报文 | 发送方协议地址 | 192.168.56.126 |
| ARP请求报文 | 目的硬件地址 | 00:00:00:00:00:00 |
| ARP请求报文 | 目的协议地址 | 192.168.56.1 |
| ARP响应报文 | 操作码 | 2 |
| ARP响应报文 | 发送方硬件地址 | 9a:ee:b6:8a:a6:76 |
| ARP响应报文 | 发送方协议地址 | 192.168.56.1 |
| ARP响应报文 | 目的硬件地址 | ba:26:c7:c3:8a:31 |
| ARP响应报文 | 目的协议地址 | 192.168.56.126 |

2、分析步骤7中截获的ARP请求,分析各ARP请求查询哪个IP地址的MAC地址,截图并填写表11.2。解释ARP这么做的原因。

|--------|-------------------|
| 表11.1 ARP工作过程分析 ||
| 主机或路由器 | ARP查询哪个IP地址的MAC地址 |
| ns56A | 192.168.56.1 |
| RB | 192.168.56.246 |
| RA | 192.168.56.250 |
| RC | 192.168.57.126 |

3、分析步骤8中各接口的ARP缓存表,解释主机和路由器为什么将这些记录写入ARP缓存表。截图说明你的分析过程。

56A将下一跳RB的地址记录在缓存表内。

56B未记录。

RB将上一跳与下一跳的地址记录在缓存表内。

相关推荐
爱吃芹菜炒肉8 分钟前
Chapter 16: Power Management
服务器·c语言·网络·tcp/ip·pcie
ElfBoard19 分钟前
飞凌精灵(ElfBoard)技术贴|如何在RK3506开发板上实现UART功能复用
大数据·linux·人工智能·驱动开发·单片机·嵌入式硬件·物联网
HackTorjan28 分钟前
AI驱动的制品库高效管理:智能分类、自动化追踪与全生命周期优化
linux·人工智能·分类·自动化
运维行者_31 分钟前
通过OpManager的Windows服务监控能力释放最佳IT网络性能
服务器·开发语言·网络·windows·web安全·php
.千余33 分钟前
【Linux】进程概念
linux·服务器·开发语言·学习
蜡台36 分钟前
centos 8 安装 nginx-1.29.8 及相关配置教程
linux·nginx·centos
爱学习的小囧37 分钟前
ESXi性能历史怎么监控?2种方法,图形化+命令行全覆盖
java·linux·运维·服务器·网络·esxi·esxi8.0
载数而行5201 小时前
计算机网络1 网络的历史和概念
计算机网络
sagima_sdu1 小时前
Codex 使用指南(技术向):App、CLI 与工作流接入
linux·运维·语言模型·json
圆山猫1 小时前
[Linux] 用 Buildroot 为 RISC-V QEMU 构建最小根文件系统
linux·运维·risc-v