基本概念
广播域
学习 VLAN 之前有几个概念需要掌握,首先是 广播域 ,什么是广播域呢?简单来说一台设备 A 向外发送一个广播报文(比如 ARP 报文),如果这个广播报文能送到 B,C,D 的手上,我们就说 A,B,C,D 这四个设备在同一个广播域中。通常来说,一个交换机的所有接口属于一个广播域(如果没有进行 VLAN 划分),而一个路由器的所有接口分别属于不同的广播域。
VLAN
假如有一个网络接入了很多的交换机,而这些交换机又互相连接,那么这个网络就存在一个巨大的广播域,这对通信是非常不利的,因为你会受到大量的广播,而这些广播绝大部分都是与你无关的广播,这会大大降低网络的通信效率。为了隔离广播域,出现了 VLAN(虚拟局域网) 技术。通过 VLAN技术,可以把网络的广播域缩小,减少无用的广播报文,提升网络的运行效率。
VLAN 间通信
VLAN 可以解决广播域过大导致通信效率降低的问题,但是如果有存在通信可能的两台设备被划入两个不通的 VLAN 呢?因为这两台设备之间无法广播,就导致这两台设备之间无法进行通信。这是不合理的,于是产生了 svi(虚拟接口)技术 和 单臂路由 技术来解决两个 VLAN 之间通信的问题。VLAN间通信的本质上是连通两个不同的逻辑网络。
请注意,使用 svi 和 单臂路由 技术解决了 VLAN 间通信的问题,但是这并不代表会合并不同 VLAN 的广播域,在配置了 svi 或 单臂路由 之后,两个 VLAN 的广播域并不会有所变化。
VID 和PVID
VID 的意思是 VLAN ID,也是 VLAN 标签的意思,是数据包的一个属性,一个数据包如果有 VID,那么说明这个数据包是来源于某一个 VLAN的。
PVID 是 Port-base VLAN ID 是端口的一个属性,用来标识这个端口划分为哪一个 VLAN,交换机所有接口的默认 PVID 都是 VLAN1。一个端口可以属于多个 VLAN,但是只有一个 PVID。
Access、Trunk
Access
-
Access 只能针对一个 VLAN。
-
Acces 口接收到数据包的时候,如果这个数据不带有 VID,那么端口会把自己的 PVID 贴到数据包上作为 VID。如果有 VID,就直接丢弃。
-
Access 口发送数据的时候,会先看数据包的 VID 是否等于自己的 PVID,如果等于的话,就把这个数据包的 VID 剥离掉之后发送出去。如果数据包的 VID 不等于自己的 PVID ,那么就直接丢弃。
-
Access 口接受的和发出的数据都是不带 VID 的。
Trunk
-
Trunk 可以针对多个 VLAN。
-
Trunk 口接受到数据包的时候,如果这个数据包不带有 VID,那么端口会把自己的 PVID 贴到数据包上作为 VID。如果有 VID 的话,会先判断数据包上的 VID 是否在自己端口允许通过的 VID 列表中ÿ