VLAN简介
VLAN(Virtual Local Area Network,虚拟本地局域网),最初接触到总会把VLAN和LAN(Local Area Network,本地局域网)弄混,不知道有什么区别。 实际上,了解了全称就应该能清晰分清楚。VLAN是在设备上通过技术手段,从逻辑上划分出来的局域网;LAN是物理链路上构建形成的局域网。VLAN技术多用在组网中的核心设备上,以提高带宽利用率,降低延迟。
VLAN的作用
逻辑上划分出来的VLAN,可以根据用户需要来控制调整广播域的范围和大小,即同一个VLAN中的设备可以直接通信,跨VLAN的设备则无法直接通信。
当一个局域网中主机数目比较多的时候,会导致冲突严重,广播泛滥,网络资源被严重浪费。因此便有了VLAN技术。
VLAN的基本概念
1. VID :即VLAN ID,设备上注册的用于区分不同VLAN的标识,每个VLAN都有专属的ID。通常根据设备的不同可选的取值为0~4096。
2. Tag:IEEE 802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag),用以标识VLAN信息。
3. PVID :Port VLAN ID,表示网络通信中基于端口的VLAN ID,一个端口可以属于多个VLAN,但是只能有一个PVID,收到一个不带tag头的数据包时,会打上PVID所表示的VLAN号,视同该VLAN的数据包处理。
4. TPID:Tag Protocol Identifier(标签协议标识符),取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。 各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时, 为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致。
5. PRI:Priority 优先级,取值范围0~7,数值越大,优先级越高。
6. CFI:标准格式指示位,0为标准MAC封装格式,1为非标准。以太网中,CFI为0。
7. VID:VLAN ID
设备通过识别帧内的VID来区分VLAN,将广播控制在VLAN内。
VLAN帧类型
- Tagged帧:加入了4字节Tag的数据帧。
- Untagged帧:没有Tag段的原始数据帧。
通常用户主机、服务器和HUB都只能收发Untagged帧。交换机、路由器和AC既能收发Tagged帧,也能收发Untagged帧。语音终端、AP等设备可以同时收发一个Tagged帧和一个Untagged帧。
链路类型和接口类型
因为有些设备只能收发Untagged帧,所以在特定设备上就需要有添加和去除Tag的功能模块,根据不同使用情况的需求,VLAN技术支持三种接口类型和两种链路类型来搭配组合。
- 链路类型
-
接入链路
接入链路只可以承载1个VLAN的数据帧,用于连接设备和用户终端(如用户主机、服务器等)。通常情况下,用户终端并不需要知道自己属于哪个VLAN,也不能识别带有Tag的帧,所以在接入链路上传输的帧都是Untagged帧。 -
干道链路
干道链路可以承载多个不同VLAN的数据帧,用于设备间互连。为了保证其它网络设备能够正确识别数据帧中的VLAN信息,在干道链路上传输的数据帧必须都打上Tag。
- 接口类型
- Access接口
Access接口一般用于和不能识别Tag的用户终端(如用户主机、服务器等)相连,或者不需要区分不同VLAN成员时使用。它只能收发Untagged帧,且只能为Untagged帧添加唯一VLAN的Tag。 - Trunk接口
Trunk接口一般用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的语音终端。它可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。 - Hybrid接口
Hybrid接口既可以用于连接不能识别Tag的用户终端(如用户主机、服务器等)和网络设备(如Hub),也可以用于连接交换机、路由器以及可同时收发Tagged帧和Untagged帧的语音终端、AP。它可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag(即不剥除Tag)、某些VLAN的帧不带Tag(即剥除Tag)。
接口类型 | 接收Tagged帧 | 接收Untagged帧 | 发送 |
---|---|---|---|
Access | 对比VID和PVID,相同则接收,否则丢弃 | 接收,并加上自身PVID的Tag | 去除帧的PVID Tag,然后发送 |
Trunk | 当VLAN ID在接口允许通过的VLAN ID列表里时,接收该报文。当VLAN ID不在接口允许通过的VLAN ID列表里时,丢弃该报文。 | 打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表里时,接收该报文。打上缺省的VLAN ID,当缺省VLAN ID不在允许通过的VLAN ID列表里时,丢弃该报文。 | 当VLAN ID与缺省VLAN ID相同,且是该接口允许通过的VLAN ID时,去掉Tag,发送该报文。当VLAN ID与缺省VLAN ID不同,且是该接口允许通过的VLAN ID时,保持原有Tag,发送该报文。 |
Hybrid | 当VLAN ID在接口允许通过的VLAN ID列表里时,接收该报文。当VLAN ID不在接口允许通过的VLAN ID列表里时,丢弃该报文。 | 打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表里时,接收该报文。打上缺省的VLAN ID,当缺省VLAN ID不在允许通过的VLAN ID列表里时,丢弃该报文。 | 当VLAN ID是该接口允许通过的VLAN ID时,发送该报文。可以通过命令设置发送时是否携带Tag。 |