VLAN 的 MAC 地址学习机制 交换机是通过 VLAN ID 来区分识别不同 VLAN 的。对于支持 802.1Q VLAN 的交换机,其MAC 地址表需同时维护 MAC 地址、转发端口和 VLAN ID 信息。其中,VLAN ID 信息将根据收到数据帧的 Tag 字段来确定,当收到的数据帧不带 Tag 时,则根据接收端口的缺省 VLAN来确定。 在配置了 VLAN 后,交换机的 MAC 地址学习方式有两种: 1、SVL(Shared VLAN Learning,共享式 VLAN 学习): MAC 地址表项全部记录到一张共享的 MAC 地址转发表中,一个 MAC 地址在整张表中是唯一的。当交换机收到数据帧时会先进行 MAC 地址查询,然后再进行后续的 VLAN 查询。 2、IVL(Independent VLAN Learning,独立 VLAN 学习): 交换机为每个 VLAN 维护独立的 MAC 地址转发表,因此 MAC 地址表在逻辑上可以看成根据 VLAN 信息被分成了多张地址表。某个 VLAN 的成员端口接收到数据帧时,其源 MAC 地址只被记录到该VLAN 的 MAC 地址转发表中,且只依据该表中的信息转发数据帧。 下图中简要表示了这两种MAC地址学习机制。在SVL中,所有MAC地址被记录到同一张表中,且一个 MAC 地址只能属于一个 VLAN;在 IVL 中,我们可以从逻辑上认为每个 VLAN 单独拥有一张地址表,一个 MAC 地址可以同时记录到不同 VLAN 的表项中。
IVL 交换机二层转发的基本流程如下: 1、 收到数据帧后,根据其源 MAC 地址和 VLAN ID 信息添加或更新 MAC 地址表项。 2、 根据目的 MAC 地址和 VLAN ID 信息查找 MAC 地址表项。如果没有找到匹配项,则将数据帧在 VLAN ID 对应的 VLAN 内广播;如果能找到匹配表项,则将数据帧向表项中对应的端口进行转发。
3、General 端口General 端口可以属于多个 VLAN,出口规则可以根据该端口连接设备的实际情况灵活配置,既可以设置为带 Tag 发送报文,也可以设为不带 Tag 发送报文。因此,它既能用于网络设备之间的连接,也能用于网络设备和用户之间的连接。当与交换机相连的某个网络环境比较复杂,无法判断网络中的设备是哪种类型,或者该网络中有多种类型的设备时,可将交换机和该网络相连端口类型设置为 General。