一、原理概述

交换机是最常见的网络设备之一,本文简单描述其工作原理(未配置VLAN):

1、成表:当交换机在端口上收到数据包以后,首先查看源MAC地址,从而形成 源MAC 与 入端口的对应关系

2、查表:分析数据包的 目标MAC地址,并且查找 MAC地址表:能找到对应的MAC条目,则在对应端口转发;如果找不到对应的条目,则广播。

二、案例讲解:

1、网络拓扑:

为便于理解,结合下图进行讲解:

wKioL1njY1iReujoAAA61pMx3Hs845.png-wh_50

如上图所示,主机PC1-3分别接入交换机SW的三个端口,并且分别配置192.168.1.1网段的三个地址。

我们知道交换机是基于MAC地址表(mac-access-table)进行工作的,此时我们查看SW的MAC地址表(使用SW#show mac-address-table命令),结果如下:

wKioL1njYdKyIdPYAAAX-dTPs_Y174.png-wh_50

可以看到MAC地址表中没有条目,此时主机之间还没有开始通信。

2、成表:

从主机PC1上ping主机PC2,结果如下:

wKiom1njZ7DDk1H_AABHPuUisL4420.png-wh_50

此时查看SW的MAC地址表,结果如下:

wKioL1njZV_xUCMDAAAa84doTa8275.png-wh_50

可以看到有两条MAC地址条目,来源如下:

    1、当PC1发出ICMP包到达SW的Fa0/1端口时,SW首先查看收到的数据包中的源MAC地址是否在MAC地址表中,没有看到则在MAC地址表中写入第一条记录(生成源MAC地址与数据包入端口的对应关系);

    2、SW查看收到的数据包的目标MAC地址,在MAC地址表中没有找到对应的条目,那么就从Fa0/2、Fa0/3(除入端口外所有属于VLAN 1的其他的活跃端口)发出广播包;

    3、PC2收到SW发出的广播包后,查看其中的目标MAC地址是否与自己的MAC地址相同,发现相同则向SW发出回应的数据包(源MAC地址为PC2的MAC地址,目标MAC地址为PC1的MAC地址);

    4、SW收到PC2发出的数据包后,查看源MAC地址是否在MAC地址表中,没有看到则在MAC地址表中写入第二条记录(生成源MAC地址与数据包入端口的对应关系);

    5、SW查看收到的数据包的目标MAC地址,在MAC地址表中找到对应的条目(第一条),那么就从Fa0/1端口发出数据包;

    6、PC3收到SW发出的广播包后,查看其中的目标MAC地址是否与自己的MAC地址相同,发现不相同则不予理睬。

    7、因此PC1主机pingPC2主机的操作,导致SW生成两条MAC地址条目。总结起来就是MAC地址表形成和使用的过程,也就是交换机的工作原理。

三、补充说明:

    对于有VLAN配置的交换机,在生成mac-address-table的时候,首先查看收到数据包的端口属于哪个VLAN,在写入MAC条目的时候,会把VLAN号码写在条目的最前面。

    在收到数据包转发的时候,也会先查看收到数据包的端口属于哪个VLAN,然后在该VLAN的mac-address-table表中查找有没有目标MAC对应的条目,如果能找到就从该条目对应的端口转发出去,如果找不到则从该VLAN对应的mac-address-table表中所有的条目对应的端口中广播出去。