同一个VLAN间的通信方式

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 内广播;如果能找到匹配表项,则将数据帧向表项中对应的端口进行转发。

VLAN 内的通信

下面通过一个示例来讲解同一 VLAN 内的设备进行通信的过程。在两台出厂设置的交换机上分别创建两个 VLAN,VLAN10 和 VLAN20,并分别设置交换机与主机相连的端口类型为Access,两台交换机相连的端口类型为 Trunk。将交换机 1 的端口 2 加入 VLAN10,端口 3加入 VLAN20,端口 24 同时加入 VLAN10 和 VLAN20;将交换机 2 的端口 4 加入 VLAN10,端口 5 加入 VLAN20,端口 24 同时加入 VLAN10 和 VLAN20,如图:

主机 A 与主机 C 第一次通信的过程如下:

1、主机 A 向交换机 1 发送一个不带 VLAN Tag 的数据帧,交换机 1 的 Access 端口接收该数据帧后,由于该端口的 PVID 值为 10,故为数据帧添加一个带有 VLAN ID=10 的标签。
2、 由于交换机 1 的 MAC 地址表中暂时还没有该数据帧对应的 MAC 地址信息,故将数据帧中的源 MAC 地址、VLAN ID 信息以及对应的端口号 2 添加到 MAC 地址表中,并将该数据帧在 VLAN 10 内广播。
3、交换机1的Trunk端口24属于VLAN10,故该端口接收数据帧,保持VLAN ID=10的标签,并从该端口转发给交换机 2。
4、 交换机 2 的 Trunk 端口 24 也属于 VLAN 10,故该端口接收数据帧。交换机 2 查询自己的 MAC 地址表,发现不存在该表项,故将数据帧中的源 MAC 地址、VLAN ID 信息以及对应的端口号 24 添加到自己的 MAC 地址表中,并将该数据帧在 VLAN 10 内广播。
5、交换机 2 的 Access 端口 4 属于 VLAN10,故该端口接收数据帧,并将帧中的 VLAN 标签去掉后转发给主机 C。此外,由于主机 C 会给交换机返回信息,故交换机也会将主机C 的 MAC 地址以及对应的端口号添加到地址表中。

这样,跨交换机的 VLAN 内通信就完成了。当主机 A 和主机 C 再次进行通信的时候,就能直接通过查询 MAC 地址表进行数据转发了。同样的,主机 B 与主机 D 之间也可以通过这样的过程实现 VLAN 内的通信。

不同 VLAN 间的通信

ICP备案号:晋ICP备18007549号-1
站长微信:15534641008