关于VLAN(Virtual Loacl Area Network,虚拟局域网)的描述,大多有隔离、缩小广播域等特点。但是它是如何做到缩小广播域的呢?了解这个原理,有助于理解报文传输过程。
VLAN缩小广播域的工作是在交换机上实现的。
正如之前的文章所提到,主机有可能并不感知VLAN的存在,对各个主机进行VLAN划分的是交换机以及其他管理系统,那么缩小广播域的工作也是在交换机上进行。连接主机的常为Access端口,所以报文在从主机到交换机,在交换机Access端口上加上Tag;在从交换机到主机,在交换机的Access端口上剥离Tag,自始至终对于主机来说,是透明的,不感知的。
VLAN缩小广播域是靠调整MAC地址表(L2FDB)来实现的
正如我们所知道的,在没有VLAN的情况下,交换机的MAC地址表(L2FDB)存储的表项是“MAC——Port”,也就是记录着,哪个MAC地址对应着哪个端口。但是在有了VLAN的情况下,交换机的MAC地址表项变为了“MAC——VLAN——Port”也就是说,关于MAC地址的学习,除了对应的端口,还会学习关于VLAN的信息。
值得一提的是,交换机对于报文的地址学习,是只会学习源地址的。
那么交换机的MAC地址表有两种形态,其相应的报文转发流程如下:
- SVL(Shared VLAN Learning,共享式VLAN学习),只有一张表,MAC地址在这张表中是唯一的,一个MAC地址在这张表中只能有一条记录,一个MAC只能被学习到一个端口上。
- 在收到数据帧后,交换机先根据目的MAC地址查询MAC转发表(L2FDB),检查是否有匹配项。
- 当有匹配项的时候,判断这个匹配项的端口所属的VLAN是否与报文携带的VLAN信息相一致,如果一致则转发;否则丢弃。
- 当没有找到匹配项时,则在本VLAN中进行广播(除报文入端口外)。
- IVL(Independent VLAN Learning,独立式VLAN学习),MAC地址表可以看作是依据VLAN划分成了逻辑上的多张表。
- 当接收到数据帧后,交换机首先确定帧中的VLAN Tag,确定查找的L2FDB的范围。
- 在这个特定的L2FDB中查找对应的目的MAC地址,查询到对应端口,进行转发。
- 如果没有查找到对应的目的MAC地址,则在这个VLAN中进行广播(除报文入端口外)。
以上就是关于交换机如何实现广播域的缩小,如何隔离不同的VLAN。