首页 理论教育 计算机网络设备实践教程:交换机MAC地址转发表构造

计算机网络设备实践教程:交换机MAC地址转发表构造

时间:2023-11-17 理论教育 版权反馈
【摘要】:交换机的MAC地址转发表在交换机开机时是空的,随着后续的网络连接、转发等操作,通过动态地址学习的方式构造并维护此转发表。当交换机从某端口收到一个数据帧,首先分析该数据帧的源MAC地址,并认为目的MAC地址为MAC-SOURCE的报文可以由该端口转发。这种情况下,交换机仍将无法学习到目的设备的MAC地址。因此,交换机在下一次转发目的为该MAC地址的报文时,依然以广播方式进行发送。

计算机网络设备实践教程:交换机MAC地址转发表构造

交换机的MAC地址转发表在交换机开机时是空的,随着后续的网络连接、转发等操作,通过动态地址学习的方式构造并维护此转发表。以太网交换机学习MAC地址的过程如下。

(1)当交换机从某端口收到一个数据帧,首先分析该数据帧的源MAC地址(MAC-SOURCE),并认为目的MAC地址为MAC-SOURCE的报文可以由该端口转发。

(a)如果MAC地址转发表中已经包含MAC-SOURCE,交换机将对应表项进行更新。

(b)如果MAC地址转发表中尚未包含MAC-SOURCE,交换机则将这个新的MAC地址(以及该MAC地址对应的转发端口)作为一个新的表项加入MAC地址转发表中。

(2)完成对报文的源地址学习过程后,交换机开始转发报文。

(a)对于目的MAC地址已经存在于MAC地址转发表中的报文,系统将直接使用硬件转发。

(b)对于目的MAC地址没有存在于MAC地址转发表中的报文,系统将在接收端口所在VLAN内向除接收端口外的所有端口转发该报文,通常称为对该报文进行广播操作。

(3)在对该报文进行广播操作之后,交换机根据是否收到应答报文采取以下的操作。

(a)如果交换机收到目的设备对此广播报文的回应,表示报文已正常发送至目的设备。在应答报文中将包含目的设备的MAC地址,交换机通过地址学习将目的设备的MAC地址加入MAC地址转发表中。之后去往同一目的MAC地址的报文,就可以利用该新增的MAC地址表项直接进行转发了。

(b)如果交换机没有收到目的设备的回应,表示目的设备不可达或目的设备虽然收到报文但没有回复。这种情况下,交换机仍将无法学习到目的设备的MAC地址。因此,交换机在下一次转发目的为该MAC地址的报文时,依然以广播方式进行发送。

图4-1中二层交换机连接3台计算机,IP与MAC地址如图所示,默认情况下二层交换机所有端口都在1号VLAN中,计算机配置同一网段的IP后即可通信,因为在同一网段,它们之间的通信可以不配置网关参数。

图4-1 MAC地址转发表构造拓扑

计算机配置IP后,连接交换机端口之前打开Wireshark之类的数据分析软件监听数据包,然后连接计算机与交换机端口之间的链路,Wireshark将捕获到免费ARP(Gratuitous ARP)报文,如图4-2所示。

(www.xing528.com)

图4-2 免费ARP报文

免费ARP报文与普通ARP请求报文的区别在于:普通的ARP请求报文内封装的“目的IP地址”是其他机器的IP地址,而免费ARP的请求报文封装的“目的IP地址”是其自己的IP地址。免费ARP主要用于检测IP地址冲突。当一台主机发送了免费ARP请求报文后,如果收到了ARP响应报文,则说明网络内已经存在使用该IP 的主机。

二层交换机在收到免费ARP报文后会检查MAC地址转发表,如果没有则添加表项,报文从f0/1端口进入,该端口属于1号VLAN,源MAC地址是e005.c5f3.50eb,以动态方式添加表项,在二层交换机上使用命令“show mac-address-table”查看:

同样的方式,其余两台计算机接入交换机后,MAC地址转发表中将出现3台计算机对应的表项。此时如果PC3要发送数据帧给PC1,则PC3将构造一个目的MAC地址为PC1的数据帧并从网卡发出,交换机的f0/3端口收到此数据帧后查找转发表,查找命中表项的“Interface”字段确定从“FastEthernet 0/1”端口将数据帧转发出去。

如果查找不能命中,即转发表中没有对应表项,这个数据包将在1号VLAN内广播。在PC2上打开Wireshark软件,在PC3上使用“ping”命令的“t”参数测试PC1的IP地址,如图4-3所示。

图4-3 PC3使用ping命令测试PC1连通性

此时,PC2上Wireshark软件并不能捕获到PC3和PC1之间的“ping”命令产生的ICMP数据包,原因是交换机上具备转发表项,查表后确定了转发端口,不需向所有端口转发。接下来在交换机上清空转发表的所有表项,PC2上Wireshark软件将捕获到一个ICMP数据包,如图4-4所示,这是由于MAC地址转发表中表项缺失引发的交换机向1号VLAN中所有端口转发的报文,被网卡处于混杂模式的PC2接收。

因为交换机向1号VLAN中所有端口转发,所以PC2收到的报文PC1同样能够收到,PC2收到报文后判断该报文不是发给自己的,不做任何响应。PC1收到后将发送ICMP应答报文,此应答报文从交换机通过时将在交换机的MAC地址转发表中新增一个表项,有了这个表项,交换机收到的后续报文就不会向所有端口转发了,因此,PC2只收到了一个ICMP请求报文。

图4-4 PC2捕获的广播报文

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈