交换机如何在 PING 过程之前学习 PC MAC 地址?
交换机具有一定的智能性,其网络设备在 OSI 模型中的第 2 层数据链路层中运行。在这里,我们将看到交换机如何在交换机和 PC 之间的 PING 过程之前学习终端设备 PC 的 MAC 地址。
让我们以 2 台 PC 连接到 Switch 为例。注意:没有为 PC 分配 IP 地址。
中间有一个交换机,2台PC连接交换机以太网口。两台 PC 都有 MAC 地址,交换机维护 MAC 地址表,它将学习网络中的所有 MAC 地址。
通常,交换机会定期发送 STP(生成树协议)、CDP(思科发现协议)和 DTP(动态中继协议)等第 2 层协议帧。这些帧具有多播目标 MAC 地址,因此这些帧将被泛洪到两台 PC 。
如您所知,PC 是第 3 层设备,它没有接受第 2 层协议帧的服务。所以它会丢弃帧并且永远不会发回回复开关。所以没有机会通过交换机学习 PC MAC 地址。
此时,当我们在 switch 中运行命令时,您将看到 MAC 地址表中没有条目。
MAC 地址表
Switch#show mac-address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
假设,将 IP 地址192.168.0.1 255.255.255.0分配给 PC1。它立即生成一个 ARP 数据包,广播目标 MAC 地址为 FFFF.FFFF.FFFF ,目标 IP 地址为自己的 IP 地址192.168.0.1 。
另请注意,在此数据包中,您可以看到 PC1 的源 MAC 地址和源 IP 地址。
由于它是一个广播帧,它会被洪泛到网络中。交换机收到数据包后,会学习PC1的MAC地址,并在MAC地址表中更新。
现在,如果您在 Switch 中运行该命令,您将在 MAC 地址表中看到PC1 MAC-address 条目。
MAC地址表
Switch#show mac-address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0007.ec7d.9e46 DYNAMIC Fa0/1
PC2也收到数据包,它会先检查目标 MAC 地址。由于它是广播 MAC 地址,它会接受并发送到第 3 层。在第 3 层,它将检查目标 IP 地址。目的 IP 地址必须是PC2 IP 地址,但这里它有PC1 IP 地址,所以它会丢弃数据包。
因此,交换机甚至在数据流量或 PING 过程之前就学习了 PC MAC 地址。