2 - 交换机的工作原理

更新时间:2023-12-16 18:36:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学习目标:

1. 观察交换机如何处理广播 2. 观察交换机如何处理已知单播 3. 观察交换机如何处理未知单播 4. 交换机MAC地址老化时间 5. 交换机静态MAC地址表项

知识回顾:

通常交换机工作在数据链路层,使用CAM表进行第2层交换,读取帧中的源MAC地址、到达端口和VLAN ID记录在CAM表中,同时为该表项加上时间戳。

在交换机启动后,CAM表为空。

当交换机从端口收到一个帧时,首先检查该帧的源MAC地址,如若是一个未出现过的新MAC地址,就在CAM表中记录该MAC地址、到达交换机的端口、端口所属的VLAN ID;

如果该MAC地址已经存在,则更新该MAC地址记录;如果交换机端口已经学习到的MAC地址转移到另一个端口,则将该MAC地址和时间戳记录到最新到达端口的对应表项中。

交换机根据目标MAC地址查找CAM表,目的是找到它对应的交换机端口和VLAN ID从而进行转发。

如果交换机收到的帧的目的MAC地址已经在CAM表中,交换机只会将该帧从CAM表中查询到的对应端口发送出去,此为已知单播的处理方式。

如果交换机收到一个广播,就会将该帧从CAM表中查询到的对应VLAN的所有其它端口(接收端口除外)泛洪出去,此为广播的处理方式。

如果交换机收到的帧的目的MAC 地址不在CAM表中,也会将该帧从CAM表中查询到的对应VLAN的所有其它端口(接收端口除外)泛洪出去,此为未知单播的处理方式。

交换机必须被明确告知主机连接在哪里或者自动去学习这些信息;默认情况CAM表中的动态MAC地址表项300s未更新后将被删除,特殊情况下管理员可以手工配置CAM表项来告知交换机各主机MAC地址的位置。

说明:等待交换机的所有链路指示灯应变为绿色,将Packet Tracer保留在模拟模式中。使用放大镜工具打开PC的ARP表和交换机的MAC地址表;通过Packet Tracer的模拟模式来跟踪数据包发送/转发的过程。

任务 1:观察交换机如何处理广播和已知单播

步骤 1. 打开ARP 和 MAC 表。

使用放大镜工具打开 PC A 和 PC B 的 ARP 表以及交换机的 MAC地址 表。

思考:什么时候使用到交换机的ARP表?

步骤 2. 从 PC A ping PC B。

在PC A的命令行提示符中执行如下命令:ping -n 1 192.168.10.2

即从 PC A 发送一个 ping 到 PC B。 Event List(事件列表)中将会显示两个事件:一个 ICMP 回应请求和一个 ARP 请求(用以获取 PC B 的 MAC 地址。)

步骤 3. 逐步运行模拟。

使用 Capture/Forward(捕获/转发)按钮跟踪数据包的最终顺序。

由于 PC A ARP 表中没有 PC B 的相应条目,因此为了完成 ping,它必须发出 ARP 请求。交换机从 ARP 请求获取 PC A 的 MAC 地址及其连接的端口,从 ARP 回复获取 PC B 的 MAC 地址及其连接的端口,交换机会将 ARP 请求从所有端口泛洪出去,因为 ARP 请求始终是广播。PC A 收到 ARP 回复之后,便可完成 ping。从交换机的角度来看,ping 是已知单播。(完成对数据包的跟踪之后,单击 Reset Simulation(重置模拟)按钮。 )

任务 2:观察交换机如何处理未知单播

步骤 1. 清除交换机的 MAC 地址表。

执行命令Switch#clear mac-address-table dynamic。

此时交换机 CAM表重新为空,但PC之前的ARP 表并未被清空。

步骤 2. 从 PC A 发送一个 ping 到 PC B。

在PC A的命令行提示符中执行如下命令:ping -n 1 192.168.10.2

Event List(事件列表)中将会显示一个事件:一个 ICMP 回应请求。使用 Capture/Forward(捕获/转发)按钮跟踪数据包的最终顺序。

由于 ARP 表已经填充,因此无需 ARP 请求。但是,当回应请求数据包到达 MAC 地址表为空的交换机时,将被视为未知单播。在这种情况下,交换机

就会像处理广播一样,将数据包从除接收端口以外的所有其它端口泛洪出去。 (完成对数据包的跟踪之后,单击 Reset Simulation(重置模拟)按钮。 )

任务 3:观察其它情况下的交换机行为。

PC E 和PC F都通过集线器连接到交换机的0/24端口,通过集线器执行 Ping观察 1)集线器处理数据包的方式; 2)交换机处理来自PC E和PC F的数据包的方式。

现在尝试从 PC E ping PC F。跟踪数据包,尝试了解发生的变化。

请注意,交换机通过其某个端口了解到存在两个 MAC 地址,它之所以能够了解到这个情况,是因为集线器将所有数据包转发到交换机。当交换机从一个端口接收到一个包发往位于同一个端口的目的地时,交换机将丢弃此数据包不做转发。

任务 4:交换机MAC地址的老化时间

步骤 1. 从 PC C 发送一个 ping 到 PC F。

在PC C的命令行提示符中执行如下命令:ping -n 1 192.168.10.6

由于 PC C ARP 表中没有 PC F 的相应条目,因此为了完成 ping,它必须发出 ARP 请求。交换机从 ARP 请求获取 PC C 的 MAC 地址及其连接的端口(此前交换机已经获取 PC F 的 MAC 地址及其连接的端口,MAC地址表中已经有相应表项,更新之),交换机会将 ARP 请求从所有端口泛洪出去,因为 ARP 请求始终是广播。PC C 收到 ARP 回复之后,便可完成 ping。从交换机的角度来看,ping 是已知单播。(完成对数据包的跟踪之后,单击 Reset

Simulation(重置模拟)按钮。 )

步骤2. 断开PC F和集线器之间的连接

在PC C的命令行提示符中执行如下命令:ping -n 1 192.168.10.6

Event List(事件列表)中将会显示一个事件:一个 ICMP 回应请求。使用 Capture/Forward(捕获/转发)按钮跟踪数据包的最终顺序。由于 ARP 表已经填充,因此无需 ARP 请求。

但是,当回应请求数据包到达交换机时,将被视为普通的已知单播, 由于交换机的MAC地址表中关于PC F的表项尚未超时,交换机仍旧将数据包转发至与集线器连接端口,而由于PC F已经离开网络因此PC C无法ping通目的地。 (完成对数据包的跟踪之后,单击 Reset Simulation(重置模拟)按钮。 )

任务 5:交换机静态MAC地址表项

步骤 1. 在交换机上手动设置静态MAC地址表项,执行如下命令:

Switch(config)#MAC-address-table Static 0000.0000.000D VLAN 1 interface FAST 0/2

步骤2. 从 PC C 发送一个 ping 到 PC D。

在PC C的命令行提示符中执行如下命令:ping -n 1 192.168.10.4

Event List(事件列表)中将会显示一个事件:一个 ICMP 回应请求和一个 ARP 请求(用以获取 PC D 的 MAC 地址。)。使用 Capture/Forward(捕获/转发)按钮跟踪数据包的最终顺序。

由于ARP请求为广播,交换机将广播包泛红到其他所有端口,因此PC D可以收到ARP请求并给予应答(ARP应答到达交换机时,交换机发现PC D的MAC地址已经出现在MAC地址表中且为静态表项),PC C在收到ARP应答之后就可以发送回应请求给PC D。

但是,当回应请求数据包到达交换机时,将被视为普通的已知单播,因为在CAM表中已经有表项告知PC D位于端口fast 0/2(此为静态表项,手动设置的),因此交换机将此帧转发到相应端口;错误的静态MAC地址表项设置导致PC D无法与其他PC通信。

(完成对数据包的跟踪之后,单击 Reset Simulation(重置模拟)按钮。 )

附录:可以在PT事件列表中编辑ACL过滤器,设定跟踪特定类型的数据包。

本文来源:https://www.bwwdw.com/article/5jd5.html

Top