三层ARP实验
本文最后更新于4 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

实验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。

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇