BUAA-计算机网络实验-Exp2
本系列是北航计算机学院于 2024 年春季学期开设的核心专业课《计算机网络实验》课程的实验报告记录,实验形式为两人组队实验。由于学习过程中掌握并不牢靠,如有错误请读者不吝赐教!
数据链路层实验 & 网络层实验 - 1
前半部分为实验的实际操作环节,后半为实验报告内容的填写。本报告为线上完成的第二次实验报告,包括数据链路层和网络层的一部分,剩余部分在下一周线下完成
实验内容
- 以太网链路层帧格式分析
- 交换机 MAC 表与地址聚合
- VLAN 配置与分析
- PPP 协议实验(PPP、PAP、CHAP)
- ARP 协议分析实验
- ICMP 协议分析实验
- IP 报文分析实验
- 网络层分片实验
- 路由表分析实验
以太网帧格式分析
- 分析比较 Ethernet Ⅱ 标准和 IEEE 802.3 标准的 MAC 帧格式
实验步骤
- 按给出的组网图连接并配置网络
- 启动抓包软件,分析 Etherner Ⅱ 帧格式(面向无连接的链路服务)
- 分析 IEEE 802.3 帧格式(面向有连接的链路服务)
实验内容
- 选择相应设备进行网络连接,只需要用到交换机 S1、PCA、PCB 三台设备
- 配置 PCA、PCB 的 ip 地址:
- PCA:192.168.1.22/24
- PCB:192.168.1.21/24
- 开启两设备的抓包软件,并 PCA ping PCB,观察软件运行情况
- 选择一个 ICMP 包查看以太网帧协议、IP 头信息、ICMP 协议内容
- 截获的报文均为 Ethernet Ⅱ 格式,因为简便的 TCP/IP 协议选择了更简单的协议
- 在本地连接属性中启动 IPX/SPX/NetBIOS 协议,再分析报文情况就出现了 IEEE 802.3 格式的报文
交换机 MAC 地址表与端口聚合
- 理解交换机 MAC 地址的学习过程
- 了解交换机网络风暴的产生原因及其危害
- 了解生成树协议与端口聚合的作用
实验说明
MAC 地址表
display mac-address
会返回五列数据,就是当前交换机的 MAC 地址表。
其中 MAC ADDR 列是由对应的 PORT INDEX 指向的端口学习而来,说明该 MAC 地址是直接或间接与该端口相连的;AGING TIME 以秒为单位,指定了学习得到的 MAC 表项的过期时间,可以通过再次学习进行刷新
当交换机收到一个帧时会有以下处理方式:
- 端口与目的 MAC 地址对应的 PORT 相同,那么不做处理(相当于从目的地发来的帧)
- MAC 地址不在地址表中,扩散发送给所有 PORT
广播风暴
- 广播:一个数据帧或包被传输到本地网段上的每个节点
- 广播风暴:由于网络拓扑的设计和连接问题,或其他原因导致广播在网段内大量复制,传播数据帧,导致网络性能下降,甚至网络瘫痪。
这里报文 1 就会同时触发 2 和 3 两个广播,这两个广播又相互影响其余的交换机,产生更多的广播报文
生成树协议
生成树协议(STP),主要作用是阻断冗余链路、切断网络环路,从而阻止网络内广播风暴的产生
当网络内已连接的活动路径发生故障时,激活之前闲置的冗余链路,恢复网络的连通性
图中的虚线就是被阻断的冗余链路
端口聚合
端口聚合,也称端口捆绑、端口聚集或链路聚集;它为交换机提供了端口捆绑的技术,允许两个交换机之间通过多个端口并行连接并同时传输数据,从而为网络提供更高的带宽
上图就实现了各个 Port 1 ~ n 的端口聚合操作,产生了一个聚合后的数据链路
实验步骤
- 根据给定的组网图连接并配置网络
- 查看并清空交换机 MAC 地址表
- 执行相应操作,再次查看交换机 MAC 地址表,体会交换机的学习原理
- 按给定的组网图重新连接并配置网络
- 利用抓包软件查看广播风暴情况,分析产生原因与危害
- 启动生成树协议,查看广播风暴状况
- 配置全双工端口,并将两交换机的端口进行聚合,查看广播风暴状况
实验内容
MAC 地址表实验
本实验在以太网帧格式分析实验的基础上保持组网状态进行
- 查看交换机 S1 的 MAC 地址表
system-view |
线上实验中,不仅有 PC、交换机的 MAC 地址保留在地址表中,也有连线组网设备的 MAC 地址,统计 MAC 地址时需要留意
- 清除 MAC 地址表
undo mac-address |
清除后仍有可能有剩余记录,剩余的记录是交换机自身端口的 MAC 地址(一个端口对应一个 MAC),不行就再 undo
一次
- PCA ping 一个不存在的 ip 地址,这时交换机就会向所有端口广播 ARP 包:Who has <target ip> Tell <source ip>;但广播操作不会将 source MAC 地址保存进表中
- 清空 MAC 地址后,断开 PCB 连接,PCA ping PCB (此时非广播发送)可以存储 PCA 的 MAC 地址;说明了交换机通过源 MAC 地址学习
广播风暴实验
本实验需要重新组网,按照如下操作组网:
S1 的 E0/0 连接 S2 的 E0/0, E0/1 同理;S1 的 E0/13 连接 PCA、E0/14 连接 PBC,S2 同理。
配置四台 PC 的 ip 为:192.168.1.21 ~ 192.168.1.24
- 组网前先撤销两台交换机默认携带的生成树协议
undo stp global enable |
- 组网成功后就会自动触发广播风暴,可以启动抓包软件查看具体状况,或观察交换机端口的指示灯
- 断开一条线后广播风暴停止
- 然后在两台交换机上开启生成树协议
system-view |
- 再次恢复交换机上的连接,广播风暴并未产生,能够获得生成树协议相关报文;生成树协议可以自动调整网络结构、避免产生环路,自动控制机器之间的通信
- 撤销生成树协议,观察广播风暴再次发生
system-view |
端口聚合实验
本实验组网在广播风暴实验的基础上继续开展即可
- 断开交换机 S1、S2 之间的一条连接
- 修改交换机 S1、S2 的 E0/1、E0/2 端口为全双工模式,设置速度为 100
interface E0/1 |
- 在 system-view 下将两台交换机自身的两个端口执行端口聚合
link-aggregation E0/1 to E0/2 both |
- 执行端口聚合后再次连接断开的连接,发现未产生广播风暴;跨交换机的 ping 操作可以正常联通(注意网上实验平台会无法联通)
- 模拟链路故障:断开刚才的连接、将某一端口
shutdown
断开,在网上实验平台上也可以正常 ping 通
端口聚合操作不仅可以避免广播风暴的发生,还可以起到提高网络带宽、线路备份的作用
VLAN 配置与分析实验
实验说明
VLAN
在一个局域网中,划分 VLAN(Virtual LAN) 就是划分广播域和子网,从而将广播隔离在不同的区域内,提高网络带宽的利用率与网络安全性
我们在实验中实现的是基于交换机端口的 VLAN
- TAG 帧:在传统以太网帧中插入了 tag 字段,其中包含 IEEE802.1Q 标记
- 交换机端口与标签:交换机的端口分为三种,以与 TAG 帧的关系区分
- ACCESS:只能属于一个 VLAN,发送帧不带 VLAN 标签,只能连接非交换机设备
- TRUNK:可以属于多个 VLAN,只能连接交换机,转发报文时只能令缺省 VLAN 不带标签、HYBRID 则允许多个 VLAN 不带标签
- HYBRID:可以属于多个 VLAN,可以连接交换机或非交换机设备
端口 VLAN 信息解释:
- Tagged:TRUNK 端口除缺省 VLAN 外其余均为 Tagged、HYBRID 可以自由设置
- Untagged:ACCESS 端口都是 Untagged、TRUNK 只允许缺省 VLAN 为 Untagged、HYBRID 可以设置针对某 VLAN 设置 Untagged
- PVID:每个端口都有的 VLAN 属性,当交换机收到不带 PVID 的数据帧时将视为缺省 VLAN 的数据帧(默认 VLAN1 缺省)
以太网交换机转发流程:
接收部分:
- 确定 PVID,无 PVID 的帧就设置为该端口的缺省 PVID
- 根据 PVID、端口号更新 MAC 地址表
转发部分:
- 根据 MAC 地址表、目的 MAC、PVID 转发
- 在向该端口的缺省 PVID 发送数据帧时,会去掉 TAG 部分
发送:
- 根据端口属性设置发出数据帧时的 TAG 与 PVID
实验内容
VLAN TRUNK 实验
- 按照以下形式组网:
S1 的 E0/1 端口(VLAN2)连接 PCA、E0/24 端口(VLAN3)连接 PCB
S2 的 E0/1 端口(VLAN2)连接 PCC、E0/24 端口(VLAN3)连接 PCD
S1 和 S2 均使用 E0/13 端口与对方连接
PCA:192.168.2.10/24
PCB:*.12
PCC:*.11
PCD:*.13
- 清空交换机配置、设置 PC 的 ip 相关属性
清除交换机上所有 VLAN:[S1]undo vlan all
清除 IP 地址:[R1-Ethernet0/0]undo ip address
清除 E1/0/13 端口上的 trunk 配置:interface Ethernet1/0/13 undo port link-type
- 配置两台交换机的 VLAN 与相关端口所属 VLAN(远程实验平台需要使用组网软件也设置 VLAN)
/* S1 配置方式 */ |
线上实验中配置 VLAN 也需要使用组网软件右下角的工具对端口类型、permitted、VLAN id 等进行配置
- 配置 TRUNK 链路,两台交换机分别允许 VLAN2/3 的数据帧通过
interface E0/13 |
PCA ping PCC,成功 ping 通,但只有在交换机之间传输的数据帧能检测到 TAG,PCA → 交换机、交换机 → PCC 均找不到 TAG 内容;PCB ping PCD 同理
- PCC 能够截获两类报文:S0/13 的接收报文、PCC 自身接收的报文
PCA ping PCB,所属 VLAN 不同,不通
实验体现了 VLAN 的网络隔离性,能够阻断所属不同 VLAN 的报文,划分子网
VLAN HYBRID 实验
保持实验组网不变,继续实验
- 设置两个交换机相互连接的端口为 HYBRID 类型(VLAN2:Tagged、VLAN3:Untagged、PVID:1)
interface E0/13 |
- PCB ping PCD:
- S1 在发送数据帧时,会将在该端口处于 Untagged 的 VLAN3 数据帧的 TAG 部分去掉
- S2 收到数据帧时,根据默认 PVID 配置 TAG 为 VLAN1,此时因为不存在 VLAN1 的端口,导致数据帧无法送达,PCB 显示为 ping 不通 PCD
- 修改连接端口的 PVID 为 3 后,S2 会将接收到的数据帧配置为 VLAN3,此时数据帧能够正常送达
Vlan hybrid实验中,两台交换机的 E1/0/13 端口配置了 pvid=3,vlan3 untagged后,pcb 与 pcd 可以 ping 通。
但却在两台交换机之间的链路上截获了带 vlan 1 tag 标签的数据帧,如下图所示,原本截获的数据帧都应该不带 vlan tag 标签。
经检查,此情况属于连线组网设备功能问题,暂时无法解决。特此说明,请大家注意。
VLAN TAG 实验
在 TRUNK 实验的基础上将 PCB、S1、S2 均接入集线器,修改 PCB 和 PCD ip 如下,完成组网:
PCB: |
线上实验中接入集线器的操作并不用体现在组网图中,使用组网软件右下角的抓包主机 + 抓包端口进行配置即可
- 执行 PCA ping PCC、PCB ping PCD,截获所有主机的报文,分析报文转发和 TAG 标记的添加、删除过程
实际上在 PCA ping PCC 时,和 TRUNK 实验类似,能够正常追加、删除 TAG 标签
在执行 PCB ping PCD 时,会因为 PCB 没有配置 VLAN,仅能发送不带 TAG 的帧,导致和 HYBRID 实验类似,帧会追加 VLAN1 的默认 TAG,导致 PCD 接收不到帧(待验证)
- 修改两台交换机 E0/13 的 PVID = 3,执行 PCB ping PCD,截获报文并分析
此时和 HYBRID 实验一致,能够正常 ping 通
PPP 协议实验
实验说明
CHAP
配置命令及说明
- R1 为主验证方,参考命令如下:
[R1]local-user RTB class network //为R2 创建本地用户列表 |
- R2 为被验证方,参考命令如下:
[R2]local-user RTA class network //为R1 创建本地用户列表 |
- CHAP认证过程说明
CHAP(Challenge-Handshake Authentication Protocol)相对PAP安全性更高。它的验证分三步进行,验证过程由主验证方R1(用户名RTA)发起。CHAP为三次握手协议。只在网络上传输用户名,而并不直接传输用户密码。CHAP的验证过程为:
1) Challenge: 主验证方R1向被验证方R2发送包含随机产生的数据的Challenge报文,并同时将本端的主机名(或用户名)RTA附带上一起发送给R2;
2)Response: R2接收到对端发送的验证请求(Challenge)时,便根据此报文中R1的主机名RTA,在本端的用户数据库中查找其用户对应的密码,如找到用户数据库中与验证方主机名相同的用户名,便利用接收到的随机数据、此用户的密码和报文ID,用Md5算法生成一个摘要,随后生成包含此摘要信息和自己的主机名RTB的应答(Response)报文,发送给R1;
3)ACK or NAK: R1接收到此应答报文后,利用应答报文中携带的主机名(用户名)RTB,在本端的用户数据库中查找该用户名相应的密码,将该密码和随机数据及报文ID用Md5算法生成一个摘要,与被验证方应答报文中的摘要信息比较,根据比较结果返回相应的认证通过与否的结论(ACK or NAK)。
实验内容
PPP 协议实验
只需要将两台路由器通过 S0/0 端口互相连接即可,配置 ip 分别为下列所示,完成组网:
R1: 192.0.0.1/24 |
- 配置两路由器 ip,完成组网
interface s0/0 |
在线实验平台大多数路由器都有两个serail接口:s1/0和s2/0
本学期实验只用到s1/0接口。为了避免s2/0接口的干扰,请大家在做实验前,将s2/0接口shutdown。
- 在路由器上配置 PPP 协议,重启接口使协议生效
interface s0/0 |
- 直接在超级终端相互 ping 路由器,查看连通情况
- 修改 R2 接口 S0/0 的 ip 地址为
10.0.0.1/24
,查看两路由器的连通性 - 路由器互通无法抓包,故先 shutdown R2 、启动 R1 路由器的 debug 模式,再重启 R2 的 s0/0,绘制状态转移图
/* in R1 */ |
正常工作时显示互相请求应答,R2 端口关闭后状态由 open 变为 starting,发生 close 事件变为 initial
重新启用端口时从 initial 变为 starting,Lower up 事件变为 reqsent,发送 condReq 报文,回收报文后发送 condAck 报文变为 acksent 状态,配置确认后最终变为 opened 状态
PAP 验证实验
- 实验需要配置路由器 R1,以 PAP 方式验证路由器 R2,R1 作为主验证方、R2 作为被验证方,配置方法如下:
/* in R1 */ |
- 重新启动两路由器的 S0/0 接口,使得配置生效状态,ping 路由器检查验证成功与否
/* in R1 */ |
- 启动 R1 路由器的 debug 模式,检查 PAP 方式的工作原理
首先还是 LCP 部分状态变化,再进行 PAP 部分变化:
initial → serverListen → wait<Username> → serverSuccess
也可以先 shutdown R1 的端口,启动 R2 debug 再重启 R1 端口,以此查看 R2 路由器状态的变化,命令相同:
initial → sendRequest → clientSuccess
整个过程中双方各发送一个报文
CHAP 验证实验
- 启动路由器 R1、R2,配置 ip 地址
- 启动两路由器上的 ppp 协议
- 启动 chap 验证模式,以 R1 为主验证方
/* in R1 */ |
不同批次和型号的设备,配置会略有不同,例如实验室6-实验室8和网络实验室的部分设备,由于网络设备比较新,其命令略有不同:
- 情况1:
应该用这样的命令:
- 情况2:CHAP实验时:
有的设备下面命令报错:
[R2]local-user RTA service-type ppp
[R2]local-user RTA password simple aaa需要将命令调整为:
[R2-luser-RTA]service-type ppp
[R2-luser-RTA]password simple aaa
- 重新启动接口使配置生效,类似地ping 路由器检查成功与否、打开 debug 检查连接状态
/* in R1 */ |
如果执行如下命令 [R1]local-user RTB
不能进入视图 [R1-user-RTB]
,则使用如下配置命令配置用户列表、服务类型和用户密码:
local-user RTB service-type ppp |
chap 协议主机状态转移方式如下:
initial → 发送挑战字报文 → sendChallenge → 接收客户端报文 → waiting<Username> → serverSuccess → 发送服务器成功报文
initial → lower up → listenChallenge → 接收挑战字报文 → 发送 response 报文 → sendResponse → 接收服务器成功报文 → clientSuccess 状态
ARP 协议分析实验
实验说明
- IP 数据包的传输过程中,源/目标 IP 地址均不会发生改变,但是 MAC 地址处理方式不同
- 同一局域网:ARP 地址映射机制处理 IP 与 MAC 关系(ARP 表查到就返回,查不到就广播 IP,请求 MAC,双方缓存映射关系)
- 跨局域网:跨网通信通过 ARP 解析本网络路由器的 MAC 地址,并发送到路由器;路由器选择下一个发送节点(含 IP + MAC),直到抵达目标局域网,由该路由器发送(路由器 IP/MAC → 目标主机 IP/MAC)
- ARP 请求报文是广播报文、ARP 应答报文是单播报文
实验内容
- 进行 ARP 组网、配置 PC IP、子网掩码,无需设置网关,如图所示:
- 在 cmd 中执行
arp -a
指令,记录表项结果,若非空应使用arp -d
进行清空 - 启动抓包软件后,执行 PCA ping PCB 并捕获报文、保存
pcapng
文件 - 上一步 ping 通后再执行
arp -a
,发现了列表中出现了 PCB 的 IP/MAC 映射关系 - 重新启动报文捕获,再 PCA ping PCB,保存
pcapng
文件 - 分析两个报文文件中 ARP、ICMP 报文数量、ARP 协议内容(OPCODE),分析第一条 ARP 请求与应答报文,体会 ARP Cache 的作用与协议解析过程
- 使用设备重新组网、配置 PC IP、子网掩码,需要设置网关为对应 VLAN 端口的 IP,如图所示:
/* 配置 VLAN 2 */ |
- 启动两 PC 的报文捕获,执行 PCA ping PCB,保存
pcapng
文件 - 执行
arp -a
,发现保存的表项不是 PCB 的 IP/MAC 对、而是交换机 E0/1 端口的设置
ICMP 协议分析实验
实验说明
在网络中,ICMP 报文作为 IP 层数据报的苏剧,封装在 IP 数据报中进行传输,但 ICMP 并不是高层协议,仍被视为网络层协议。
报文示例
- ICMP 报文的分类:
- 差错报告报文:Type = 3、4、5、11、12(下面按序排列)
- 终点不可达,具体原因存储于 Code 字段中
- 源站抑制(Source quench)
- 路由重定向(Redirect)
- 超时
- 参数问题
- 询问报文:Type = 0/8、13/14、17/18、10/9(下面按序排列)
- 回送(Echo)请求/应答
- 时间戳请求/应答
- 子网掩码请求/应答
- 路由器询问/通告
- 差错报告报文:Type = 3、4、5、11、12(下面按序排列)
实验内容
- 使用设备进行组网,设置 PC 的 IP、子网掩码、网关以及交换机 VLAN,如图所示:
- PCA ping PCB,分析截获的 ICMP 报文
- 启动 pingtest 应用程序,设置 icmp 报文内容:
体会 ICMP 询问报文的作用
PCA 执行 ping 操作,比较 ICMP 差错报文的不同点(类型、代码、字段值、部分、作用):
- PCA ping 10.1.3.20(空 ip),结果为 Timed out
- PCA ping 10.1.4.10(路由表无表项),结果为 Destination host unreachable
清除 PCA DNS,重新捕获报文,PCA trancert PCB 并保存报文
IP 报文分析实验
实验说明
视频内容与实验内容不同
实验内容
- 组网图与上一实验一致
- PCA tracert PCB,并捕获报文
- 设置 PCA 的子网掩码为 255.255.0.0,再 ping PCB(本次 ping 应不通)
- 恢复子网掩码,查看交换机路由表信息:
display ip routing-table |
- 取消三层转发功能,PCA ping PCB,再查看路由表信息(本条可以不做,和实验报告无关)
- 恢复实验二中 PPP 协议实验的组网格式,在 R1 启动 debugging 模式时,R2 关闭、重启,查看 debug 信息,分析 IPCP 协议的状态转移图
- 将 R2 的 IP 修改和 R1 一样,能否 ping 通?(本次 ping 应通)
网络层分片实验
实验说明
- IP 数据报通过标志字段表示是否允许分片、当前是否为分片报文以及是否为末尾片
实验内容
- 配置组网如下:
- 配置路由器 R1:
interface E0/0 |
- 启动四台 PC 的抓包软件,并进行设置:
Edit - Preferences Protocols - IPv4 - Reassemble fragmented IPv4 datagrams 改为 False
- 使用路由器 R1 ping PCA、PCB、PCC、PCD,并将使用
-s
将数据报大小设置为 300 byte
ping -s 300 192.192.169.21 |
- 分析截获报文完成实验报告与表格,体会数据报分片的过程与意义
数据链路层实验报告
1-以太网链路层帧格式分析
在网络课程学习中,802.3 和 ETHERNETII 规定了以太网 MAC 层的报文格式分为 7 字节的前导符、1 字节的起始符、6 字节的目的 MAC 地址、6 字节的源 MAC 地址、2 字节的类型、数据字段和 4 字节的数据校验字段。对于选中的报文,缺少哪些字段,为什么?
对于 Ethernet Ⅱ 协议报文而言,Wireshark 捕获的报文包含源 MAC 地址、目标 MAC 地址、类型、数据字段,缺少前导符、起始符、数据校验字段。
因为这些缺少的部分用于物理层的帧同步,而 Wireshark 作为一种网络协议分析工具,主要关注的是数据链路层及以上层的协议信息。因此,从 Wireshark 捕获的报文视角,通常看不到这些物理层的细节。
在尝试发送 IEEE802.3 协议报文时,请注意使用 Windows XP 系统,因为 Windows7 淘汰了 IPX/SPX/NetBIOS 协议,不易发送该类报文
2-交换机的 MAC 地址表和端口聚合
查看交换机的MAC地址表,结果是什么样的?
解释MAC地址表中各字段的含义?
MAC 地址表中包含以下字段:
- MAC ADDR 列是由对应的 PORT INDEX 指向的端口学习而来,说明该 MAC 地址是直接或间接与该端口相连的
- VLAN ID 表明 MAC 地址属于哪一个 VLAN
- STATE 字段表明 MAC 地址的学习方式
- PORT INDEX 指的是交换机上连接到设备的物理端口号。数据帧将通过这个端口转发出去
- AGING TIME 以秒为单位,指定了学习得到的 MAC 表项的过期时间,可以通过再次学习进行刷新
这个实验能够说明MAC地址表的学习是来源于数据帧的源MAC地址而非目的MAC地址吗?如果能,为什么?如果不能,试给出一个验证方法
清空 MAC 地址后,断开 PCB 连接,PCA ping PCB (此时非广播发送)可以存储 PCA 的 MAC 地址;观察 MAC 表项,说明了交换机通过源 MAC 地址学习
3-VLAN 的配置与分析
在 VLAN 实验中,实验中的计算机能否通讯,请将结果填入下表
Ping 命令 | 能否ping通 | ||
---|---|---|---|
同一VLAN中 | PCA ping PCB | ping 192.168.2.11 | 能 |
PCC ping PCD | ping 192.168.2.13 | 能 | |
不同VLAN中 | PCB ping PCC | ping 192.168.2.12 | 不能 |
PCD ping PCA | ping 192.168.2.10 | 不能 |
4-VLAN 的配置与分析
交换机在没有配置 VLAN 时,冲突域和广播域各有哪些端口?配置了 VLAN 以后呢?
没有配置VLAN时:
- 广播域:包括所有端口(E1/0/1、E1/0/2、E1/0/23、E1/0/24)。当网络上的任何设备发出广播时,所有的设备都会收到这个广播信息
- 冲突域:每个端口都是一个单独的冲突域,E1/0/1、E1/0/2、E1/0/23、E1/0/24 都构成一个独立的冲突域
配置了 VLAN 后:
- 冲突域:当交换机配置了 VLAN 后,不同 VLAN 的端口将被分隔到不同的广播域中,但是每个端口仍旧构成一个独立的冲突域
- 广播域:
- VLAN2:包含端口 E1/0/1 ~ E1/0/5,VLAN2 中的端口构成一个广播域
- VLAN3:包含端口 E1/0/20 ~ E1/0/24,VLAN3 中的端口构成另一个广播域。
5-广域网数据链路层协议
根据 R1 上的 debug 显示信息,画出 LCP 协议在协商过程中的状态转移图(事件驱动、状态转移)
6-广域网数据链路层协议
根据 debug 显示信息,画出 PPP 协议 PAP 验证过程的状态转移图
7-广域网数据链路层协议
根据 debug 显示信息,画出 PPP 协议的 CHAP 验证的状态转移图(选做)
网络层实验报告
1-ARP 分析-ARP 实践
将执行命令的结果填入下表
2.6.1中步骤2中的执行结果 | |
2.6.1中步骤4中的执行结果 | |
2.6.2中步骤3中的执行结果 |
2-ARP 分析-ARP 报文结构
分析 2.6.1 步骤 6 中截获的报文,统计“Protocol”字段填空:有 ____ 个ARP报文,有 ____ 个ICMP报文。在所有报文中,ARP 报文中 ARP 协议树的“Opcode”字段有两个取值 ____,两个取值分别表达什么信息?
按顺序填写分别为 2,8,1、2
- Opcode:1 表示 Request,请求获取 IP 对应的 MAC 地址
- Opcode:2 表示 Reply,回复 Request 报文需要的 MAC 地址
3-ARP 分析-ARP请求/应答报文
根据 2.6.1 步骤 6 分析 ARP 报文结构:选中第一条 ARP 请求报文和第一条 ARP 应答报文,将 ARP 请求报文和 ARP 应答报文中的字段信息填入下表
字段项 | ARP请求数据报文 | ARP应答数据报文 |
---|---|---|
链路层Destination项 | Broadcast(ff : ff : ff : ff : ff : ff) | Vmware_31:0d:f5 (00:0c:29:31:0d:f5) |
链路层Source项 | Vmware_31:0d:f5(00:0c:29:31:0d:f5) | Vmware_c8:73:72 (00:0c:29:c8:73:72) |
网络层Sender MAC Address | Vmware_31:0d:f5 (00:0c:29:31:0d:f5) | Vmware_c8:73:72 (00:0c:29:c8:73:72) |
网络层Sender IP Address | 192.168.1.22 (192.168.1.22) | 192.168.1.21 (192.168.1.21) |
网络层Target MAC Address | 00:00:00_00:00:00 (00:00:00:00:00:00) | Vmware_31:0d:f5 (00:0c:29:31:0d:f5) |
网络层Target IP Address | 192.168.1.21 (192.168.1.21) | 192.168.1.22 (192.168.1.22) |
4-ARP 分析-ARP Cache
比较 ping1-学号 中截获的报文信息,少了什么报文?简述 ARP Cache 的作用
Ping2 报文中缺少了 ARP 报文。说明 ARP Cache 已经在第一次 ping 时将 PCB 的 IP/MAC 地址对保存了,在第二次 ping 时就直接使用缓存发送含有具体 MAC 地址的 ICMP 报文,省去了广播查询、存储 ARP 的过程。
按照图-4 重新进行组网,并确保连线正确。修改计算机的 IP 地址,并将 PC A 的默认网关修改为 192.168.1.10,PC B 的默认网关修改为 192.168.2.10。考虑如果不设置默认网关会有什么后果?
因为未配置默认网关,导致数据报无法发送到子网外,但可以正常访问本网段内部的设备
5-ARP 分析-不同网段的 ARP 分析
根据 2.6.2 步骤 1、2 分析 ARP 报文结构:选中第一条 ARP 请求报文和第一条 ARP 应答报文,将 ARP 请求报文和 ARP 应答报文中的字段信息与上表进行对比。与 ARP 协议在相同网段内解析的过程相比较,有何异同点?
相同网段 | 不同网段-发起端 | 不同网段-接收端 | |
---|---|---|---|
请求报文网络层 Target IP Address | 目标 IP | 源默认网关 IP | 目标默认网关 IP |
应答报文链路层 Source | 目标 MAC | 源默认网关端口 MAC | 目标默认网关端口 MAC |
应答报文网络层 Sender MAC Address | 目标 MAC | 源默认网关端口 MAC | 目标默认网关端口 MAC |
应答报文网络层 Sender IP Address | 目标 IP | 源默认网关 IP | 目标默认网关 |
不同网段接收端(请求报文)
不同网段接收端(应答报文)
6-ICMP 分析-ICMP 报文结构
根据 3.6.1 步骤 2——在PC A 和 PC B上启动Wireshark软件进行报文截获,然后 PC A ping PC B,分析截获的 ICMP 报文: 共有 ____ 个 ICMP 报文,分别属于哪些种类?对应的种类和代码字段分别是什么?请分析报文中的哪些字段保证了回送请求报文和回送应答报文的一一对应?
填空处为 8 个 ICMP 报文。
出现的两种报文属于询问报文。
- Type:8(Echo (ping)request)
- Type:0(Echo (ping)reply)
同一组回送请求报文和回送应答报文的 Sequence number(BE/LE)均相同,保证了同组内的两个报文一一对应。发送方在发送回送请求报文时会指定这两个字段的值,接收方在发送回送应答报文时会返回相同的值。这样,发送方就可以匹配请求和应答,确保每个应答都对应一个独立的请求。
7-ICMP 分析-ICMP 地址掩码报文
根据 3.6.1 步骤 3——在 PC A 和 PC B 上启动 Wireshark 软件进行报文截获,运行 pingtest 程序,设置地址掩码请求报文参数,分析截获报文填写下表
地址掩码请求报文 | 地址掩码应答报文 | ||
---|---|---|---|
ICMP字段名 | 字段值 | ICMP字段名 | 字段值 |
address mask request | 17 | Type | 17 |
code | 0 | Code | 0 |
Checksum | 0xe3ff | Checksum | 0xe3ff[correct] |
Indertifier(BE) | 2560(0x0a00) | Identifier(BE) | 2560(0x0a00) |
Identifier (LE) | 10(0x000a) | Identifier(LE) | 10(0x0001) |
sequence number(BE) | 256(0x0100) | Sequence number(BE) | 256(0x0100) |
sequence number(LE) | 1(0x0001) | Sequence number(LE) | 1(0x0001) |
Address mask | 0.0.0.0(0X00000000) | Address mask | 0.0.0.0(0x00000000) |
8-ICMP 分析-ICMP 时间戳报文
根据 3.6.1 步骤 4——在 PC A 和 PC B 上启动 Wireshark 软件进行报文截获,运行 pingtest 程序,设置时间戳请求报文参数,分析截获报文填写下表
时间戳请求报文 | 时间戳应答报文 | ||
---|---|---|---|
ICMP字段名 | 字段值 | ICMP字段名 | 字段值 |
Type | 13(Timestamp request) | Type | 14(Timestamp reply) |
Code | 0 | Code | 0 |
Checksum | 0xe7ff[correct] | Checksum | 0x238c[correct] |
Identifier (BE) | 2560(0x0a00) | Identifier(BE) | 2560(0x0a00) |
Identifier (LE) | 10(0x000a) | Identifier(LE) | 10(0x000a) |
Seauence number (BE) | 256(0x0100) | Sequence number(BE) | 256(0x0100) |
sequence number(LE) | 1(0x0001) | Sequence number(LE) | 1(0x0001) |
Originate timestamp | 0 seconds after midnight UTC | Originate timestamp | 0 seconds after midnight UTC |
Receive timestamp | 0 seconds after midnight UTC | Receive timestamp | 3 hours,9 minutes,45.140 seconds after midnight UTC |
Transmit timestamp | 0 seconds after midnight UTC | Transmit timestamp | 3 hours, 9 minutes, 45.140 seconds after midnight UTC |
通过上述实验,仔细体会 ICMP 询问报文的作用
- 用于测试网络之间的连通性
- 用于同步不同主机之间的时间或测量往返时间
- 用于确定本地子网掩码
- 通常不用于普通的数据传输,而通常辅助网络管理员诊断网络问题、检测网络连通性、配置网络设备等
9-ICMP 分析-ICMP 差错报文与错误原因
根据3.6.2中步骤5回答:
- 请比较这两种情况有何不同?
- 第一种情况:ping 10.1.3.20,S1 会将报文发送到 E1/0/23 端口进入 10.1.3.* 子网,但因为目标端口的子网中找不到 10.1.3.20,故 ARP 需求广播失败,体现为 Timed out
发送端报文截获:只有 Ping Request
接收端报文截获:只有 ARP 广播报文(find 10.1.3.20)
- 对于第二种情况:ping 10.1.4.10,10.1.4.10 不在 S1 的路由表中,因此 S1 认为 10.1.4.10 是不可达的,因此会回复 Destination unreachable
发送端报文截获:路由 miss,返回 Unreachable
截获了哪种 ICMP 差错报文?其类型和代码字段值是什么?此报文的 ICMP 协议部分又分为了几部分?其作用是什么?
截获了一种差错报文:
- Type:3 Destination unreachable
- Code:0 Network unreachable
此报文的ICMP协议部分包括:Code = 0(Network unreachable);原请求 ICMP 报文的 IPv4 部分和 ICMP 部分,它们共同表示了该差错报文来自来源于一个从 10.1.2.10 到 10.1.4.10 的 Echo 请求。
10-ICMP 分析-tracert 指令
根据 3.6.2 中步骤 6 回答:
结合报文内容,简述 tracert 的工作过程。
tracert
的工作过程:
- PCA 向 PCB 发送具有不同 TTL 的 ICMP 请求报文,在 PCA 到 PCB 的路径上的每个路由节点都要在先将报文的 TTL 值减少 1 再进行转发
- 当 TTL = 0 时,丢弃该 ICMP 包,并路由器向源地址 PCA 发送 ICMP 超时差错报文
- 而 PCA 通过向 PCB 发送 TTL 逐步递增的 ICMP 报文就可以获得 PCA 到 PCB 的所有路径信息
截获了哪种 ICMP 差错报文?其类型和代码字段值是什么?
截获了 ICMP 超时报文(Type = 11),Code = 0(Time to live exceeded in transit)
11-IP 分析-tracert 与 IP 数据报
根据 4.6 中步骤 1,写出 tracert 命令用到了 IP 协议报文的哪几个字段?
- 生存时间(TTL):表示数据包在网络中可以通过的最大路由器(跳数)数量,
tracert
命令通过逐渐增加发送数据包的 TTL 值来发现到达目标地址的路径 - 类型:对于 Type = 11 说明跳数超过而丢弃的数据报,Type = 0 表示数据包已成功到达目标主机,完成指令执行过程
- 目的地址:用来指定最终目标主机的 IP 地址。数据报根据目标地址进行逐步转发
12-IP 分析-IP 协议与子网掩码
根据 4.6 中步骤 2 回答:观察 PC A 和 PC B 能否 ping 通,结合截获报文分析原因
无法 ping 通。
修改子网掩码后,PCA 和 PCB 由于相与后地址相同,故会被视为处于同一子网下,会直接在子网中进行 ARP 广播,但显然并不能将广播传递给不同子网的 PCB,无法获取 MAC 地址,认为不存在该 IP,无法 ping 通。
13-IP 分析-交换机路由表与 IP
根据 4.6 中步骤 3 填写下表
Destination/Mask | Protocol | Pre | Cost | Nexthop | Interface |
---|---|---|---|---|---|
10.1.2.0/24 | Direct | 0 | 0 | 10.1.2.1 | Vlan2 |
10.1.2.1/32 | Direct | 0 | 0 | 127.0.0.1 | InLoop0 |
10.1.3.0/24 | Direct | 0 | 0 | 10.1.3.1 | Vlan3 |
10.1.3.1/32 | Direct | 0 | 0 | 127.0.0.1 | InLoop0 |
127.0.0.0/8 | Direct | 0 | 0 | 127.0.0.1 | InLoop0 |
127.0.0.1/32 | Direct | 0 | 0 | 127.0.0.1 | InLoop0 |
14-IP 分析-IPCP 协议状态转移
按照实验 2 的 5.5 节(PPP 协议实验)图 17 配置路由器,两个路由器相互 ping,看能否 ping 通。根据 R1 上的 debug 显示信息,画出 IPCP 协议在协商过程中的状态转移图(事件驱动、状态转移)
将路由器 R2 的接口 S0/0 的 IP 地址改为 10.0.0.1/24,两台路由器能否 ping 通?并解释为什么?注意体会 IPCP 协议的特点。(查看 IPCP 协议协商过程的 debug 信息)
可以 ping 通:
PPP 连接是点对点的,这意味着连接的两端直接通信,不需要中间设备的路由。IPCP 协议负责建立、配置和测试数据链路连接的IP配置,两路由器并不产生冲突。
15-IP 报文分片实验(选做)-IPCP 报文分片
在截获报文中,有 2 个ARP报文, 10 个 ICMP:Echo 报文, 5 个 ICMP:Echo Reply 报文, 20 个 IP 报文
据 ping 命令执行过程的分析,将本属于同一个数据报文信息的报文截取出来
红框框选的报文属于同一个数据报文
将第一个 ICMP Request 的报文分片信息填写下表
字段名称 | 分片序号1 | 分片序号2 | 分片序号3 | 分片序号4 |
---|---|---|---|---|
“Identification”字段值 | 0x0058(88) | 0x0058(88) | 0x0058(88) | 0x0058(88) |
“Flag”字段值 | 0x01 | 0x01 | 0x01 | 0x00 |
“Frame offset”字段值 | 0 | 80 | 160 | 240 |
传输的数据量 | 72 bytes | 80 bytes | 80 bytes | 80 bytes |
ping 的数据部分为 300 字节,路由器的以太网端口 MTU 设为 100 字节。回送请求报文为何被分片为 4 片而不是 3 片?数据部分长度为多少时报文正好被分为 3 片?
因为回送请求报文必须包括IP数据报头和ICMP数据报头的内容(20字节、8字节),并且每一分片发送时都要携带IP报头,所有数据分片总共发送一次ICMP数据报头。
这时对于IPv4协议而言的单片的最大长度就是100字节-20字节=80字节,发送时共分4片,第一片包含IP数据报头和ICMP数据报头,数据长度为72字节,随后的每一片均长为80字节,故原始300字节的数据会被分为4片。
数据部分长度为72+80+80=232字节时报文正好被分为3片,下图可以验证:
发送 232 字节时
发送 233 字节时