1. 实验背景与核心目标
计算机网络课程中的IP分组分片和ARP实验是理解网络底层通信机制的关键实践环节。这个实验通常安排在TCP/IP协议栈教学的中期,此时学生已经掌握了基础网络概念,需要通过实操深化对网络层和链路层协同工作的认知。
在真实网络环境中,当数据包穿越不同MTU(最大传输单元)的网络边界时,路由器必须对IP分组进行分片处理。而ARP协议作为IP地址到MAC地址的桥梁,直接决定了数据包能否正确送达目标主机。这两个看似独立的技术点,在实际网络通信中存在着紧密的关联性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 实验环境搭建要点
2.1 硬件设备选型建议
推荐使用以下两种实验方案:
- 物理设备方案:两台主机+一台支持端口镜像的交换机(如Cisco 2960),通过集线器或镜像端口抓取ARP报文
- 虚拟化方案:GNS3/EVE-NG模拟器搭配Cisco IOS镜像或Linux主机(推荐Rocky Linux/Debian)
特别注意:虚拟环境需关闭防火墙(
systemctl stop firewalld)和SELinux(setenforce 0),避免过滤实验流量
2.2 网络配置关键参数
配置静态IP地址示例(Rocky Linux):
bash复制nmcli con mod eth0 ipv4.addresses 192.168.1.2/24
nmcli con mod eth0 ipv4.gateway 192.168.1.1
nmcli con mod eth0 ipv4.dns "8.8.8.8"
nmcli con mod eth0 ipv4.method manual
nmcli con up eth0
验证配置:
bash复制ip a show eth0 | grep inet
ping -c 4 192.168.1.1
3. IP分组分片实验详解
3.1 分片原理与MTU关系
当IP数据报长度超过链路层MTU时(以太网默认1500字节),会发生分片:
- 分片字段:
- Identification(16位):同一数据包分片标识相同
- Flags(3位):DF(Don't Fragment)、MF(More Fragments)
- Fragment Offset(13位):以8字节为单位的分片位移
分片计算示例:
code复制原始数据包:4000字节(20B IP头 + 3980B数据)
MTU限制:1500字节
分片1:1480B数据(20B头 + 1480B),MF=1, Offset=0
分片2:1480B数据(20B头 + 1480B),MF=1, Offset=185(1480/8)
分片3:1020B数据(20B头 + 1020B),MF=0, Offset=370(2960/8)
3.2 分片实验操作步骤
-
在主机A上生成大包:
bash复制
ping -s 4000 192.168.1.3 -
使用Wireshark捕获流量,过滤器设置:
code复制ip.src == 192.168.1.2 && icmp -
分析捕获的分片包:
- 观察Identification字段一致性
- 检查MF标志和Offset的递进关系
- 注意分片丢失时的重传行为
常见问题:若未捕获到分片包,检查中间设备是否设置了DF标志(
ping -M do)
4. ARP协议实验解析
4.1 ARP工作流程拆解
完整ARP交互包含四个关键阶段:
- 请求阶段:广播发送"Who has 192.168.1.3? Tell 192.168.1.2"
- 响应阶段:目标主机单播回复MAC地址
- 缓存阶段:双方更新ARP缓存表(
arp -a查看) - 更新机制:缓存条目通常20分钟过期
4.2 实验操作与报文分析
手动触发ARP请求:
bash复制arp -d 192.168.1.3 # 清除缓存
ping 192.168.1.3 # 触发ARP
Wireshark过滤器:
code复制arp.opcode == 1 || arp.opcode == 2
关键字段分析:
- 硬件类型:1表示以太网
- 协议类型:0x0800表示IPv4
- 操作码:1为请求,2为响应
- FCS校验:抓包时需开启"捕获FCS"选项
5. 进阶实验:ARP欺骗攻防
5.1 使用ettercap实施中间人攻击
bash复制ettercap -T -q -i eth0 -M arp:remote /192.168.1.2// /192.168.1.3//
5.2 防御方案实测
- 静态ARP绑定:
bash复制
arp -s 192.168.1.1 00:11:22:33:44:55 - 检测异常ARP包:
bash复制
arpwatch -i eth0
6. 实验报告撰写要点
优质实验报告应包含:
- 拓扑图:使用Draw.io绘制带IP/MAC标注的拓扑
- 关键报文截图:
- 分片包的Flags和Offset字段特写
- ARP请求/响应的操作码对比
- 数据分析表:
| 字段 | 分片前 | 分片1 | 分片2 | 分片3 |
|---|---|---|---|---|
| 总长度 | 4020 | 1500 | 1500 | 1040 |
| MF标志 | 0 | 1 | 1 | 0 |
| 片偏移 | 0 | 0 | 185 | 370 |
- 问题分析:
- 分片重组超时(默认60秒)
- ARP缓存中毒现象
- MTU不匹配导致的通信失败
7. 排错指南与实用技巧
7.1 常见故障处理
-
ARP请求无响应:
- 检查目标主机防火墙:
firewall-cmd --list-all - 验证网络连通性:
tcpdump -i eth0 arp - 确认IP冲突:
arping -I eth0 192.168.1.3
- 检查目标主机防火墙:
-
分片包丢失:
bash复制# 查看路径MTU tracepath 192.168.1.3 # 测试不同包大小 ping -s 1472 -M do 192.168.1.3
7.2 高效实验技巧
- 组合命令:同时捕获ARP和ICMP
bash复制tcpdump -i eth0 "arp or icmp" -w lab.pcap - 自动化脚本:
bash复制#!/bin/bash for size in {100..2000..100}; do ping -s $size -c 1 192.168.1.3 done - Wireshark着色规则:
- ARP请求:浅蓝色
- ICMP分片:黄色
- 错误报文:红色
在实际教学实践中,建议先完成ARP实验确保基础连通性,再进行IP分片实验。遇到问题时,采用分层排查法:先物理层(网线/指示灯)、再链路层(MAC地址)、最后网络层(IP路由)。这个实验组合能帮助学生真正理解"IP over MAC"的网络栈实现原理。
