实验2-top 三层ARP

说明:S1二层交换机,AR1路由器。PC1和PC2不同网段,由于是三层ARP,所以不细写交换机的功能,在二层ARP实验已经详细说明。
PC1 ping PC2(第一次通信 )
①、PC1 到 AR1
因为不同网段的通信,数据包都要经过网关;
PC1在第一次pingPC2的时候,因为不知道自己网关(GATEWAY)的MAC地址,所以会向网关发送一个ARP Request。
此时ARP Request的内容
ARP
Sender IP address:192.168.1.2
Sender MAC address:54-89-98-1B-13-7D
Target IP address:192.168.1.1,(网关的IP地址)
Target MAC address:ff:ff:ff:ff:ff:ff
数据链路层
Source MAC:54-89-98-1B-13-7D
destination:ff:ff:ff:ff:ff:ff

②、AR1 – PC1
当AR1接收到PC1发送的ARP Request之后,看到目的IP地址和自己对应接口IP地址相同后,首先会学习PC1的IP地址和MAC地址并映射到ARP表项

完成之后便会封装一个ARP reply进行回复,里面的主要信息:
ARP
Sender IP address:192.168.1.1
Sender MAC address:00e0-fcfb-36a5,这里是与PC1互连接口的MAC地址

Target IP address:192.168.1.2
Target MAC address:54-89-98-1B-13-7D
数据链路层
Source MAC:00e0-fcfb-36a5
destination MAC:54-89-98-1B-13-7D
封装完成后,发送给PC1,PC1学习里面网关的MAC地址信息,把网关的IP地址和MAC地址映射成一个ARP表项。

完成这一步骤后,PC1封装ICMP报文发送给网关192.168.1.1,即AR1的GE0/0/0接口。
③、第一个ICMP(响应超时)
观察No.22 ICMP协议报文,这就是完成ARP之后发送的第一个ICMP报文,一般是响应超时的,最后有讲响应超时原因。
ICMP

IP层
源IP地址:192.168.1.2
目的IP地址:192.168.2.2
数据链路层
源MAC地址:54-89-98-1B-13-7D(PC1)
目的MAC地址:00e0-fcfb-36a5(AR1 GE 0/0/0)
可以看到这里数据链路层的目的MAC地址和IP层的目的MAC地址对应不上。
这里主要是因为,PC1在学习了网关的MAC地址后,并且这是属于不同网段的通信,数据包要交给网关进行处理,所以数据链路层的目的MAC地址是网关的MAC地址。
IP层目的IP是PC2的IP地址原因:
因为PC1ping的是PC2,所以在封装ICMP报文的时候,源IP地址是PC1,目的IP地址是PC2,路由器主要是看这一部分进行路由转发。
④、AR1 -> PC2
AR1接收到ICMP报文后,查看ICMP报文里面的目的IP地址,发现是不同网段的,就去查询路由表

从子网掩码最大项开始查,最后查到24位子网掩码时,发现通往192.168.2.0/24网段的数据包的下一跳为192.168.2.1,接口号为 GE 0/0/1。
所以此时AR1,就会在GE 0/0/1发生数据,由于AR1和PC2之间也是第一次通信,AR1的ARP表项中没有PC2的MAC地址,所以此时AR1也会封装一个ARP Request从GE 0/0/1发送给PC2。
这里不介绍ARP Request数据链路层的信息了。
ARP
Sender IP address:192.168.2.1
Sender MAC address:00e0-fcfb-36a6(AR1 GE 0/0/1)
Target IP address:192.168.2.2
Target MAC address:ff:ff:ff:ff:ff:ff
⑤、PC2 -> AR1
PC2接收到ARP Request数据包后,学习里面的网关的IP地址和MAC地址映射到自己的ARP表项中
学习完成后,发送ARP reply给AR1 GE 0/0/1
AR1 GE 0/0/1 接收到后,解封装学习里面PC2的MAC地址,并映射到ARP表项中。

完成之后再继续发送ICMP请求报文。
⑥、第一个ICMP响应超时原因
由于在PC1和PC1的网关建立联系的时候,第一个ICMP因为AR1和PC2学习MAC地址的时候没有回复,所以会导致我们ping的时候第一个包会显示Request timeout!

完成MAC地址的学习之后,PC1和PC2就可以正常通信了。
补充,路由转发细节:
我们观察PC1和PC2整条链路的ICMP数据包情况,主要观察数据帧里面的源目MAC地址信息
PC1 -> AR1

AR1 GE 0/0/0

AR1 GE 0/0/1

观察到这里可以发现,PC1 – AR1的源目MAC本来是PC1、AR1 GE 0/0/0
但是到AR1 GE 0/0/1时,源MAC变成了GE 0/0/1的MAC,目的MAC变成了PC2的,这是因为经过路由器的处理后,数据包从GE 0/0/0 交给了GE 0/0/1处理,所以源目MAC地址发生了改变。
从PC2 发送的回复报文也是如此

AR1 GE 0/0/1

AR1 GE 0/0/0

以上便是三层ARP,2026年9月4日16:22:25。








