计算机网络 课程基础实验四
网络层与链路层协议分析(PacketTracer)
计科210X 甘晴void 202108010XXX
文章目录
- 计算机网络 课程基础实验四<br>网络层与链路层协议分析(PacketTracer)
- 一、实验目的
- 二、实验内容
- 4.1 路由器交换机的基本配置
- (1)路由器的一些基本配置
- (2)静态路由
- (3)子网划分
- (4)配置RIP
- (5)交换机的基本配置
- 4.2 了解 ICMP 数据包的格式
- (0)准备.设置PC,Server,Router参数
- (1)步骤 1. 捕获并评估到达 Eagle Server 的 ICMP 回应报文
- (2)步骤 2. 捕获并评估到达 192.168.253.1 的 ICMP 回应报文。
- (3)步骤 3. 捕获并评估超过 TTL 值的 ICMP 回应报文。
- 4.3 检查 ARP 交换
- (★)ARP简介
- (0)准备
- (1)任务 1:使用 Packet Tracer 的 arp 命令
- ①步骤 1. 访问命令提示符窗口。
- ②步骤 2. 使用 ping 命令在 ARP 缓存中动态添加条目。
- (2)任务 2:使用 Packet Tracer 检查 ARP 交换
- ①步骤 1. 配置 Packet Tracer 捕获数据包。
- ②步骤 2. 准备 Pod 主机计算机以执行 ARP 捕获。
- ③步骤 3. 捕获并评估 ARP 通信。
- 三、实验感悟
【给助教的验收建议】
- 实验4.1基本上就是把提供的5个环境看一遍,没有太大的意义,(实际上环境都是搭好的,没必要跟着再去复现一遍,可以直接验证不必再按照提示配置),因此这部分不必看文件,如果感兴趣,就随机问一两个问题就好了(如提供一个子网地址,你怎么划分这样的问题)
- 实验4.2和实验4.3没有提供拓扑图与文件,这个需要自己动手实现,难度上来说4.2会比4.3高一点,4.3主要就是一个原理知道就可以,4.2的ICMP各部分还是可以研究一下的。因此这部分可以对着自己实现的文件现场操作或者提问。
一、实验目的
通过本实验,进一步熟悉PacketTracer的使用,学习路由器与交换机的基本配置,加深对网络层与链路层协议的理解。
二、实验内容
4.1 路由器交换机的基本配置
分别打开下面的实验文件,按照提示完成实验(按照文件中的说明逐步完成即可)。
- 4.路由器的一些基本配置.pkt
- 8.静态路由.pkt
- 15.子网划分.pkt
- 16.配置RIP.pkt
- 11.交换机的基本配置.pkt
【做完之后补充】
实际这一部分更像是让我们了解基础的知识与PacketTracer的实现,不像是一个具体的实验。如果没时间的话,其实没必要跟着敲一遍,还是搞懂每个部件是干什么的,每个协议的作用和原理,每个命令的含义更为重要。
(1)路由器的一些基本配置
实验界面如下:
双击“路由器0”进入路由器,点击上方栏的CLI(command-line interface,即命令行)
R1>show version
查看网络设备操作系统IOS版本,IOS映像文件,存储器大小,接口类型及配置登记值等信息。
R1>enable
进入特权模式,可以进行配置查看
R1#configure terminal
进入全局模式,用户可以对路由器进行配置
R1(config)#hostname R1
将路由器主机名修改为R1
R1(config)#no ip domain-lookup
关闭域名解释
R1(config)#line console 0
进入终端配置模式
R1(config-line)#logging synchronous
设置输入同步(输入时,IOS的系统提醒或日志不会打断输入)
R1(config-line)#exec-timeout 20 00
设置执行会话时间,不做任何操作,20分后断开
R1(config-line)#end
结束设置
命令行部分截图如下:
(2)静态路由
实验提供关于静态路由简介如下:
转发数据包是路由器的最主要功能。路由器转发数据包时需要查找路由表,管理员可以通过手工的方法在路由器中直接配置路由表,这就是静态路由。虽然静态路由不适合于在大的网络中使用,但是由于静态路由简单、路由器负载小、可控性强等原因,在许多场合中还经常被使用。
路由器在转发数据时,要先在路由表(routing table)中查找相应的路由。
路由器有这么三种途径建立路由:
(1)直连网络:路由器自动添加和自己直接连接的网络的路由
(2)静态路由:管理员手动输入到路由器的路由
(3)动态路由:由路由协议(routing protocol)动态建立的路由
静态路由的缺点是不能动态反映网络拓扑,当网络拓扑发生变化时,管理员就必须手工改变路由表;然而静态路不会占用路由器太多的CPU 和RAM 资源,也不占用线路的带宽。
配置静态路由的命令为“ip route”,命令的格式如下:
ip route 目的网络 掩码 { 网关地址 | 接口 }
例子:ip route 192.168.1.0 255.255.255.0 s0/0
例子:ip route 192.168.1.0 255.255.255.0 12.12.12.2
在写静态路由时,如果链路是点到点的链路(例如PPP 封装的链路),采用网关地址和接口都是可以的;然而如果链路是多路访问的链路(例如以太网),则只能采用网关地址,即不能:ip route 192.168.1.0 255.255.255.0 f0/0 。
实验界面如下:(注意R1R2R3对应关系)
①路由器配置
首先对这三个路由器进行设置,按照深蓝色框框出的进行路由器配置。
【注意】先在命令行内enable>configure terminal进入设置模式,否则会报错“Invalid input detected at ^ marker”(没进入设置模式);在设置完,最后show ip route之前要使用end退出设置模式。
【提示符含义】
- 用户模式:R1>
- 特权模式:R1#
- 全局配置模式:R1(config)#
- 接口配置模式:R1(config-if)#
- (本实验由于简单起见,没有设置密码这一步,cisco提供了设置与验证密码的功能)
设置R1:
R1>enable
R1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#hostname R1
R1(config)#int loopback 0
R1(config-if)#ip address 1.1.1.1 255.255.255.0
R1(config-if)#exit
R1(config)#int s2/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#clock rate 64000
R1(config-if)#ip route 2.2.2.0 255.255.255.0 s2/0
R1(config)#ip route 3.3.3.0 255.255.255.0 192.168.1.2
R1(config)#show ip route
^
% Invalid input detected at '^' marker.
R1(config)#end
R1#
%SYS-5-CONFIG_I: Configured from console by console
R1#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
1.0.0.0/24 is subnetted, 1 subnets
C 1.1.1.0 is directly connected, Loopback0
2.0.0.0/24 is subnetted, 1 subnets
S 2.2.2.0 is directly connected, Serial2/0
3.0.0.0/24 is subnetted, 1 subnets
S 3.3.3.0 [1/0] via 192.168.1.2
C 192.168.1.0/24 is directly connected, Serial2/0
R1#
设置R2:(由于R2是中继节点,故要设置两端的链路接口,设置会长一点)
R2>enable
R2#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#hostname R2
R2(config)#int loopback0
R2(config-if)#ip address 2.2.2.2 255.255.255.0
R2(config-if)#exit
R2(config)#int s2/0
R2(config-if)#ip address 192.168.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#int s3/0
R2(config-if)#ip address 192.168.100.1 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#clock rate 64000
R2(config-if)#ip route 1.1.1.0 255.255.255.0 s2/0
R2(config)#ip route 3.3.3.0 255.255.255.0 s3/0
R2(config)#end
R2#
%SYS-5-CONFIG_I: Configured from console by console
R2#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
1.0.0.0/24 is subnetted, 1 subnets
S 1.1.1.0 is directly connected, Serial2/0
2.0.0.0/24 is subnetted, 1 subnets
C 2.2.2.0 is directly connected, Loopback0
3.0.0.0/24 is subnetted, 1 subnets
S 3.3.3.0 is directly connected, Serial3/0
C 192.168.1.0/24 is directly connected, Serial2/0
C 192.168.100.0/24 is directly connected, Serial3/0
R2#
设置R3:
R3>enable
R3#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)#hostname R3
R3(config)#int loopback0
R3(config-if)#ip address 3.3.3.3 255.255.255.0
R3(config-if)#exit
R3(config)#int s2/0
R3(config-if)#ip address 192.168.100.2 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#ip route 1.1.1.0 255.255.255.0 s2/0
R3(config)#ip route 2.2.2.0 255.255.255.0 s2/0
R3(config)#end
R3#
%SYS-5-CONFIG_I: Configured from console by console
R3#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
1.0.0.0/24 is subnetted, 1 subnets
S 1.1.1.0 is directly connected, Serial2/0
2.0.0.0/24 is subnetted, 1 subnets
S 2.2.2.0 is directly connected, Serial2/0
3.0.0.0/24 is subnetted, 1 subnets
C 3.3.3.0 is directly connected, Loopback0
C 192.168.100.0/24 is directly connected, Serial2/0
R3#
②尝试ping
使用R1,对另外两个路由器进行ping。(注意先使用en,从用户模式切换成特权模式)
实验中提供的是让我们对2.2.2.2进行ping
其实我们已经搭好了一整个链路了,也可以对3.3.3.3进行ping
也是可以的。
配置信息应该是正确的。
(3)子网划分
划分子网的一些公式:
- 你所选择的子网掩码将会产生多少个子网:2的x次方(x代表被借走的主机位数)。
- 每个子网有多少主机:2的y次方-2(y代表被借走之后剩余的主机位数)。
- 有效子网是:有效子网号=256-十进制的子网掩码(结果叫做block size)。
- 每个子网的广播地址是:广播地址=下个子网号-1
- 每个子网的有效主机分别是:忽略子网内全为0和全为1的地址剩下的就是有效主机地址。最后有效的1个主机地址=下个子网号-2(即广播地址-1)
实验界面如下:
对于该图理解如下:
网络地址192.168.10.0 子网掩码255.255.255.192
- 子网数=2的2次方=4。
- 每个子网的主机数=2的6次方-2=62。
- 有效子网:block size=256-192=64,第一个子网为192.168.10.0,第二个子网为192.168.10.64,第三个子网为192.168.10.128,最后一个为192.168.10.192。
- 广播地址:下个子网-1,第一个子网的广播地址是192.168.10.63,第二个是192.168.10.127,第三个是192.168.10.191,最后一个是192.168.10.255。
- 有效主机范围是:第一个子网的主机地址是192.168.10.1到192.168.10.62,第二个是192.168.10.65到192.168.10.126,第三个是192.168.10.129到192.168.10.190,最后一个是192.168.10.193到192.168.10.254。
本实验应该主要是理解,并不需要做什么操作。
(4)配置RIP
路由选择信息协议(RIP/RIP2/RIPng:Routing Information Protocol)
版本区别:RIPv1、 RIPv2和RIPng,前两者用于IPv4, RIPng用于IPv6。
路由信息协议RIP是内部网关协议中最先得到广泛使用的协议之一。该协议是基于距离矢量算法的路由协议,利用跳数来作为计量标准。
网络中的每一个路由器都要维护它到其他每一个目的网络的距离信息。距离定义为到达非直连网络所经过的路由器+1。在刚路由器开始工作时,只知道直连网络的距离,通过和相邻路由器交换并更新路由信息,得到到达自治系统内任何一个网络的最短距离和下一跳路由器的地址。
★RIP图例:
感觉实验没有讲清楚,自己找了一些资料。
如下图,红框部分是经过两次RIP路由更新之后新加入的部分,原来是没有的。经过多次更新迭代之后,应该会收敛。(图中如果仅针对这个局部结构,实际上已经收敛了)
实验中给出了网络拓扑图,并对每个路由器进行RIP配置,配置方式是通过network命令添加直连网络。
实验界面如下:
【提示符含义】
- 路由配置模式:R1(config-router)#
实验已经给出了所有的路由器配置信息,可以去模拟配置。我觉的还是主要理解含义,这里手动去配置之后没有验证环节,就不手动配置了(实际上提供给我们的都是配置好的,可以直接做实验)。
但是闲着也是闲着,我就随便用最左边的路由器去ping右边的路由器,能够ping通的。就当是玩玩了。
左一ping左二
左一ping右一
(5)交换机的基本配置
交换机是局域网中最重要的设备,交换机是基于MAC 来进行工作的。和路由器类似,交换机也有IOS,IOS 的基本使用方法是一样的。
交换机是第二层的设备,可以隔离冲突域。交换机是基于收到的数据帧中的源MAC 地址和目的MAC 地址来进行工作。交换机的作用主要有这么两个:一个是维护CAM(ContextAddress Memory)表,该表是MAC地址和交换机端口的映射表;另一个是根据CAM 来进行数据帧的转发。交换机对帧的处理有三种:交换机收到帧后,查询CAM 表,如果能查询到目的计算机所在的端口,并且目的计算机所在的端口不是交换机接收帧的源端口,交换机将把帧从这一端口转发出去(Forward);如果该计算机所在的端口和交换机接收帧的源端口是同一端口,交换机将过滤掉该帧(Filter);如果交换机不能查询到目的计算机所在的端口,交换机将把帧从源端口以外的其他所有端口上发送出去,这称为泛洪(Flood),当交换机接收到的是帧是广播帧或者多播帧,交换机也会泛洪帧。以太网交换机转发数据帧有三种交换方式。
(1)存储转发(Store-and-Forward)
存储转发方式是先存储后转发的方式。它把从端口输入的数据帧先全部接收并存储起来;然后进行CRC(循环冗余码校验)检查,把错误帧丢弃;最后才取出数据帧目的地址,查找地址表后进行过滤和转发。存储转发方式延迟大;但是它可以对进入交换机的数据包进行高级别的错误检测。这种方式可以支持不同速度的端口间的转发。
(2)直接转发(Cut-Through)
交换机在输入端口检测到一个数据帧时,检查该帧的帧头,只要获取了帧的目的地址,就开始转发帧。它的优点是:开始转发前不需要读取整个完整的帧,延迟非常小。它的缺点是:不能提供错误检测能力。
(3)无碎片(Fragment-Free)
这是改进后的直接转发介于前两者之间的一种解决方法。无碎片法在读取数据帧的长前64个字节后就开始转发该帧。这种方式虽然不提供数据校验,但是能够避免多数的错误。它的数据处理速度比直接转发方式慢,但比存储转发方式快许多。CISCO 交换机和路由器一样,本质上也是一台特殊的计算机,也有CPU、RAM 等部件。也采用IOS,所以交换机的很多基本配置(例如密码、主机名等)和路由器是类似的。
下面是实验界面
主要有3个板块,分别教我们设置了交换机自身属性配置,与PC连接,与路由器连接。
其中:
以与PC连接为例,讲解了如何配置连接。
以与路由器连接为例,讲解了如何设置端口的安全管理。
下面分别来看看
①配置交换机属性
Switch>en
Switch#conf t
Switch(config)#hostname S1
S1(config)#no ip domain-lookup
关闭域名查找
S1(config)#line console 0
S1(config-line)#logging synchronous
设置输入同步
S1(config-line)#exec-timeout 10 00
设置执行会话时间
S1(config-line)#end
②配置交换机与PC连接
Switch>enable
Switch#config terminal
Switch(config)#hostname SW1
配置主机名
SW1(config)#enable secret cisco
配置密码
SW1(config)#line vty 0 15
SW1(config-line)#password cisco
SW1(config-line)#login
默认时交换机的以太网接口是开启的。对于交换机的
以太网口可以配置其双工模式、速率等。
SW1(config)#interface f0/1
SW1(config-if)#duplex auto
duplex 用来配置接口的双工模式,full——全双工、
half——半双工、auto——自动检测双工的模式
SW1(config-if)#speed auto
speed 命令用来配置交换机的接口速度,10——10M、
100——100M、1000——1000M、auto——自动检测接
口速度。
SW1(config)#int vlan 1
SW1(config-if)#ip add 192.168.1.254 255.255.255.0
SW1(config-if)#no shutdown
SW1(config)#ip default-gateway 192.168.1.100
交换机也允许被telnet,这时需要在交换机上配置一个IP
地址,这个地址是在VLAN 接口上配置的
以上在VLAN 1 接口上配置了管理地址,接在VLAN 1上的
计算机可以直接进行telnet该地址。为了其他网段的计算
机也可以telnet 交换机,我们在交换机上配置了缺省网关。
SW1#copy running-config startup-config
保存配置
③配置端口安全
SW1(config)#int f0/1
SW1(config-if)#switch mode access
以上命令把端口改为访问模式,即用来接入计算机
SW1(config-if)#switch port-security
打开交换机的端口安全功能。
SW1(config-if)#switch port-security maximum 1
只允许该端口下的MAC 条目最大数量为1,即只允许一个设备接入
SW1(config-if)#switch port-security violation shutdown
S1(config-if)#switch port-securitiy violation { protect | shutdown | restrict }
protect:当新的计算机接入时,如果该接口的MAC 条目超过最大数量,则这个新的计算
机将无法接入,而原有的计算机不受影响。
shutdown:当新的计算机接入时,如果该接口的MAC 条目超过最大数量,则该接口将会
被关闭,则这个新的计算机和原有的计算机都无法接入,需要管理员使用“no shutdown”
命令重新打开。
restrict:当新的计算机接入时,如果该接口的MAC 条目超过最大数量,则这个新的计
算机可以接入,然而交换机将向发送警告信息。
SW1(config-if)#switchport port-security mac-address 0001.63e1.9702
允许R1路由器从F0/1接口接入
SW1(config-if)#shutdown
SW1(config-if)#no shutdown
SW1(config)#int vlan 1
SW1(config-if)#no shut
SW1(config-if)#ip add 172.16.0.1 255.255.0.0
配置交换机的管理地址
SW1#show mac-address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0001.63e1.9702 STATIC Fa0/1
R1的MAC已经被登记在f0/1接口,并且表明是静态加入的
SW1#show int f0/1
FastEthernet0/1 is down, line protocol is down (err-disabled)
Hardware is Lance, address is 00e0.f714.de01 (bia 00e0.f714.de01)
MTU 1500 bytes, BW 100000 Kbit, DLY 1000 usec,
reliability 255/255, txload 1/255, rxload 1/255
以上表明F0/1接口因为错误而被关闭。非法设备移除后,在F0/1接口下,执行“shutdown”
和“no shutdown”命令可以重新打开该接口。
SW1#show port-security
可以查看端口安全的设置情况
这里用R1在正常的情况之外,模拟了另外的设备的接入,从而触发了SW1上设置的安全规则,导致该端口被关闭。
R1(config)#int f0/1
R1(config-if)#no shutdown
R1(config-if)#ip add 172.16.0.2 255.255.0.0
R1#show int f0/1
FastEthernet0/1 is up, line protocol is up (connected)
Hardware is Lance, address is 0001.63e1.9702 (bia 0001.63e1.9702)
检查F0/1接口的MAC地址
Internet address is 172.16.0.2/16
MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, rely 255/255, load 1/255
R1#ping 172.16.0.1
R1(config)#int f0/1
R1(config-if)#mac-address 1234.5678.abcd
在R1上修改F0/1的MAC地址为另一个地址,模拟是另外一台设备接入。
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to administratively down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to down
这些信息为SW1在R1的F0/1接口更改MAC地址后出现的信息
以上提示F0/1接口被关闭
操作的话,就做了一下这个异常导致端口关闭的这个异常。
4.2 了解 ICMP 数据包的格式
任务:使用 Packet Tracer 捕获并研究 ICMP 报文,使用的网络中包含一台通过路由器连接到服务器的 PC,并且捕获从 PC 发出的 ping 命令的输出。本次实验的任务是使用 Packet Tracer 捕获和研究 ICMP 报文。
【注意】本实验没有提供现成的文件,故需要自己搭建。
实验拓扑图:
(0)准备.设置PC,Server,Router参数
设置参数时注意不要与后面的192.168.253.1和192.168.254.254这两个形成干扰就可以。
我想搞仿真一点,就把我自己的电脑当作那个PC,于是我查了查自己电脑的ip,一般PC的IP为192.168.1.x,这是一个常见的内部IP地址,我决定就这么用了。
win+R>cmd
>ipconfig #查询本机ip
IPv4 地址 . . . . . . . . . . . . : 192.168.1.106
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.1.1
>ipconfig /all | findstr "DNS" #查询DNS服务器ip
DNS 服务器 . . . . . . . . . . . : 223.5.5.5
①设置PC
②设置Server
因为我们之后要ping网址的,所以要现在Server上提供DNS服务
③设置Router
分别设置与PC和Server连接的两个端口
【注意】PortStatus一定要设置为ON,否则无法联通,拓扑图上有两个绿点表示连接成功。
对应关系如下
(1)步骤 1. 捕获并评估到达 Eagle Server 的 ICMP 回应报文
进入 Simulation(模拟)模式。Event List Filters(事件列表过滤器)设置为只显示 ICMP 事件。
单击 Pod PC。从 Desktop(桌面)打开 Command Prompt(命令提示符)。 输入命令 ping eagle-server.example.com 并按 Enter 键。最小化 Pod PC 配置窗口。单击 Auto Capture/Play(自动捕获/播放)按钮以运行模拟和捕获事件。收到 “No More Events”(没有更多事件)消息时单击 OK(确定)。
因为我们这里的网址是www.eagle-server.example.com,所以我们使用PC0来ping这个网址。
抓到的包如下
在 Event List(事件列表)中找到第一个数据包,即第一条回应请求,然后单击 Info(信息)列中的彩色正方形。单击事件列表中数据包的 Info(信息)正方形时,将会打开 PDU Information(PDU 信息)窗口。
单击 Outbound PDU Details(出站 PDU 详细数据)选项卡以查看 ICMP 报文的内容。请注意,Packet Tracer 只显示 TYPE(类型)和 CODE(代码)字段。
要模拟 Wireshark 的运行,请在其中 At Device(在设备)显示为 Pod PC 的下一个事件中,单击其彩色正方形。这是第一条应答。单击 Inbound PDU Details(入站 PDU 详细数据)选项卡以查看 ICMP 报文的内容。
查看 At Device(在设备)为 Pod PC 的其余事件。完成时单击 Reset Simulation(重置模拟)按钮。
(2)步骤 2. 捕获并评估到达 192.168.253.1 的 ICMP 回应报文。
任务:使用 IP 地址 192.168.253.1 重复步骤 1。观看动画,注意哪些设备参与交换。
在步骤1中,目的IP与主机不在同一网段,需要通过网关找到下一跳地址。
但是在步骤2中,如果地址设置为192.168.253.1,直接在命令行输入ping指令,应该在网关发现不在一个子网内,然后没发现对应的路径,就直接不可达了。
命令行运行结果如下:
ICMP报文捕获结果如下:
对比命令行反馈结果和ICMP报文捕获,可以很明显地发现,PC0向192.168.253.1发送的4个ICMP报文都没有得到回应,因为没办法到达。
回答问题:因为访问无法到达,因此参与的设备没有服务器,只有PC和路由器。
(3)步骤 3. 捕获并评估超过 TTL 值的 ICMP 回应报文。
Packet Tracer 不支持 ping -i 选项。在模拟模式中,可以使用 Add Complex PDU(添加复杂 PDU)按钮(开口的信封)设置 TTL。
单击 Add Complex PDU(添加复杂 PDU)按钮,然后单击 Pod PC(源)。将会打开 Create Complex PDU(创建复杂 PDU)对话框。
在 Destination IP Address:(目的 IP 地址:) 字段中输入 192.168.254.254。将 TTL: 字段中的值改为 1。在 Sequence Number(序列号)字段中输入 1。在 Simulation Settings(模拟设置)下选择 Periodic(定期) 选项。在 Interval(时间间隔)字段中输入 2。单击 Create PDU(创建 PDU)按钮。此操作等同于从 Pod PC 上的命令提示符窗口发出命令 ping -t -i 1 192.168.254.254。
重复单击 Capture/Forward(捕获/转发)按钮,以在 Pod PC 与路由器之间生成多次交换。
在 Event List(事件列表)中找到第一个数据包,即第一个回应请求。然后单击 Info(信息)列中的彩色正方形。单击事件列表中数据包的 Info(信息)正方形时,将会打开 PDU Information(PDU 信息)窗口。
单击 Outbound PDU Details(出站 PDU 详细数据)选项卡以查看 ICMP 报文的内容。
要模拟 Wireshark 的运行,请在其中 At Device(在设备)为 Pod PC 的下一个事件中,单击其彩色正方形。这是第一条应答。单击 Inbound PDU Details(入站 PDU 详细数据)选项卡以查看 ICMP 报文的内容。
查看 At Device(在设备)为 Pod PC 的其余事件。
4.3 检查 ARP 交换
(★)ARP简介
TCP/IP 使用地址解析协议 (ARP) 将第 3 层 IP 地址映射到第 2 层 MAC 地址。当帧进入网络时,必定有目的 MAC 地址。为了动态发现目的设备的 MAC 地址,系统将在 LAN 上广播 ARP 请求。拥有该目的 IP 地址的设备将会发出响应,而对应的 MAC 地址将记录到 ARP 缓存中。LAN 上的每台设备都有自己的 ARP 缓存,或者利用 RAM 中的一小块区域来保存 ARP 结果。
ARP 缓存定时器将会删除在指定时间段内未使用的 ARP 条目。具体时间因设备而异。例如,有些 Windows 操作系统存储 ARP 缓存条目的时间为 2 分钟,但如果该条目在这段时间内被再次使用,其 ARP 定时器将延长至 10 分钟。ARP 是性能折衷的极佳示例。如果没有缓存,每当帧进入网络时,ARP 都必须不断请求地址转换。这样会延长通信的延时,可能会造成 LAN 拥塞。反之,无限制的保存时间可能导致离开网络的设备出错或更改第 3 层地址。
网络工程师必须了解 ARP 的工作原理,但可能不会经常与协议交互。ARP 是一种使网络设备可以通过 TCP/IP 协议进行通信的协议。如果没有 ARP,就没有建立数据报第 2 层目的地址的有效方法。但 ARP 也是潜在的安全风险。例如,ARP 欺骗或 ARP 中毒就是攻击者用来将错误的 MAC 地址关联放入网络的技术。攻击者伪造设备的 MAC 地址,致使帧发送到错误的目的地。手动配置静态 ARP 关联是预防 ARP 欺骗的方法之一。您也可以在 Cisco 设备上配置授权的 MAC 地址列表,只允许认可的设备接入网络。
(0)准备
建立拓扑图如下:
设置两个PC的IP地址分别如下:
- 192.168.1.1
- 192.168.1.2
(1)任务 1:使用 Packet Tracer 的 arp 命令
①步骤 1. 访问命令提示符窗口。
单击 PC 1A 的 Desktop(桌面)中的 Command Prompt(命令提示符)按钮。arp 命令只显示 Packet Tracer 中可用的选项。
②步骤 2. 使用 ping 命令在 ARP 缓存中动态添加条目。
ping 命令可用于测试网络连通性。通过访问其它设备,ARP
关联会被动态添加到 ARP 缓存中。在 PC 1A 上 ping 地址 255.255.255.255,并发出 arp -a 命令查看获取的 MAC 地址。
在此任务结束时,完成率应为 100%。
【注意】这里没有用255.255.255.255,而是直接使用了目的ip地址,原因在于我们这里改变了拓扑图,使用了两个PC。如果是服务器的话可能会获得回应,但PC的操作系统不会回应广播的ping,只会响应明确地址且目标为自己的ping(这也是为了安全),所以我们这里直接ping对方,但不影响实验的效果。
原来ARP表中是没有的,ping结束后有目标地址的表项。
(2)任务 2:使用 Packet Tracer 检查 ARP 交换
①步骤 1. 配置 Packet Tracer 捕获数据包。
进入模拟模式。确认 Event List Filters(事件列表过滤器)只显示 ARP 和 ICMP 事件。
②步骤 2. 准备 Pod 主机计算机以执行 ARP 捕获。
在 PC 1A 上使用 Packet Tracer 命令 arp -d。 然后 Ping 地址 255.255.255.255。
操作截图:
③步骤 3. 捕获并评估 ARP 通信。
在发出 ping 命令之后,单击 Auto Capture/Play(自动捕获/播放)捕获数据包。当 Buffer Full(缓冲区已满)窗口打开时,单击 View Previous Events(查看以前的事件)按钮。
捕获如下:
分析ARP
请求报文:任何时候,当主机需要找出这个网络中的另一个主机的物理地址时,它就可以发送一个ARP请求报文,这个报文包好了发送方的MAC地址和IP地址以及接收方的IP地址。因为发送方不知道接收方的物理地址,所以这个查询分组会在网络层中进行广播。
响应报文:局域网中的每一台主机都会接受并处理这个ARP请求报文,然后进行验证,查看接收方的IP地址是不是自己的地址,只有验证成功的主机才会返回一个ARP响应报文,这个响应报文包含接收方的IP地址和物理地址。这个报文利用收到的ARP请求报文中的请求方物理地址以单播的方式直接发送给ARP请求报文的请求方。
ARP报文格式如下:
三、实验感悟
对路由器与交换机的一些基础知识有了一些基础的了解,包括对路由器配置,静态路由,子网划分,配置RIP,交换机配置等。对网络层和链路层进行了更为深入的了解,特别是网络层的ICMP和链路层的ARP进行了比较细致的了解。
此外对于PacketTracer的具体使用也有更为深入的了解。
能够搭建模拟模型,进行仿真,并进行一定程度的报文解读。
感觉PacketTracer真的是一个很好的学习工具,功能十分强大。