郑州大学计算机网络实验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将上一跳与下一跳的地址记录在缓存表内。

相关推荐
东软吴彦祖10 分钟前
包安装利用 LNMP 实现 phpMyAdmin 的负载均衡并利用Redis实现会话保持nginx
linux·redis·mysql·nginx·缓存·负载均衡
艾杰Hydra35 分钟前
LInux配置PXE 服务器
linux·运维·服务器
jerry-891 小时前
centos 安全配置基线
网络
慵懒的猫mi1 小时前
deepin分享-Linux & Windows 双系统时间不一致解决方案
linux·运维·windows·mysql·deepin
阿无@_@1 小时前
2、ceph的安装——方式二ceph-deploy
linux·ceph·centos
didiplus1 小时前
告别手动编辑:如何用Python快速创建Ansible hosts文件?
网络·python·ansible·hosts
Thomas_YXQ2 小时前
Unity3D 动态骨骼性能优化详解
开发语言·网络·游戏·unity·性能优化·unity3d
kingbal2 小时前
SpringBoot:websocket 实现后端主动前端推送数据
网络·websocket·网络协议
PyAIGCMaster2 小时前
ollama部署及实践记录,虚拟环境,pycharm等
linux·ide·pycharm