VLAN原理

早期的局域网LAN技术是基于总线型结构的, 它存在以下主要问题:

1.  若某时刻有多个节点同时试图发送消息, 那么它们将产生冲突。

2.  从任意节点发出的消息都会被发送到其他节点, 形成广播。

3.  所有主机共享一条传输通道, 无法控制网络中的信息安全。

这种网络构成了一个冲突域, 网络中计算机数量越多, 冲突越严重, 网络效率越低。 同时, 该网络也是一个广播域, 当网络中发送信息的计算机数量变多时, 广播流量将会耗费大量带宽。因此, 传统局域网不仅面临冲突域太大和广播域太大两大难题, 而且无法保障传输信息的安全。

为了扩展传统LAN, 以接入更多计算机, 同时避免冲突的恶化, 出现了网桥和二层交换机, 它们能有效隔离冲突域。 网桥和交换机采用交换方式将来自入端口的信息转发到出端口上, 克服了共享网络中的冲突问题。但是, 采用交换机进行组网时, 广播域和信息安全问题依旧存在。为限制广播域的范围, 减少广播流量, 需要在没有二层互访需求的主机之间进行隔离。 路由器是基于三层IP地址信息来选择路由和转发数据的,其连接两个网段时可以有效抑制广播报文的转发, 但成本较高。 因此,人们设想在物理局域网上构建多个逻辑局域网, 即VLAN。

VLAN技术可以将一个物理局域网在逻辑上划分成多个广播域, 也就是多个VLAN。

VLAN技术部署在数据链路层, 用于隔离二层流量。 同一个VLAN内的主机共享同一个广播域, 它们之间可以直接进行二层通信。而VLAN间的主机属于不同的广播域, 不能直接实现二层互通。 这样,广播报文就被限制在各个相应的VLAN内, 网络效率得到提高,同时也提高了网络安全性。

为了让VLAN数据跨越交换机,所以出现了VLAN标签技术,通过TAG区分不同的

VLAN。

VLAN标签长4个字节, 直接添加在以太网帧头中, IEEE802.1Q文档对VLAN标签作出了说明。

TPID: Tag Protocol Identifier, 2字节, 固定取值, 0x8100, 是IEEE定义的新类型, 表明这是一个携带802.1Q标签的帧。 如果不支持802.1Q的设备收到这样的帧, 会将其丢弃。

TCI: Tag Control Information, 2字节。 帧的控制信息, 详细说明如下:

1.    Priority: 3比特, 表示帧的优先级, 取值范围为0~7, 值越大优先级越高。 当交换机阻塞时, 优先发送优先级高的数据帧。

2.    CFI: Canonical Format Indicator, 1比特。 CFI表示MAC地址是否是经典格式。

CFI为0说明是经典格式, CFI为1表示为非经典格式。 用于区分以太网帧、 FDDI( Fiber

Distributed Digital Interface) 帧和令牌环网帧。 在以太网中, CFI的值为0。

3.    VLAN Identifier: VLAN ID, 12比特, 在X7系列交换机中, 可配置的VLAN ID取值范围为0~4095, 但是0和4095在协议中规定为保留的VLAN ID, 不能给用户使用。

在现有的交换网络环境中, 以太网的帧有两种格式:

没有加上VLAN标记的标准以太网帧(untagged frame) ;有VLAN标记的以太网帧(tagged frame) 。

VLAN链路类型

由于采用了VLAN技术,设备间的链路也就出现了不同的类型。

VLAN链路分为两种类型: Access链路和Trunk链路。

接入链路(Access Link) :连接用户主机和交换机的链路称为接入链路,接入链路上通过的帧一般是不带tag的标准帧。

干道链路(Trunk Link) :连接交换机和交换机的链路称为干道链路。 干道链路上通过的帧一般为带Tag的VLAN帧。

PVID即Port VLAN ID, 代表端口的缺省VLAN。 交换机从对端设备收到的帧有可能是

Untagged的数据帧, 但所有以太网帧在交换机中都是以Tagged的形式来被处理和转发的, 因此交换机必须给端口收到的Untagged数据帧添加上Tag。 为了实现此目的, 必须为交换机配置端口的缺省VLAN。 当该端口收到Untagged数据帧时, 交换机将给它加上该缺省VLAN的VLAN Tag。

支持VLAN技术的交换机的端口分为以下三种:access端口、trunk端口及Hybrid端口

Access端口是交换机上用来连接用户主机的端口, 它只能连接接入链路,并且只能允许唯一的VLAN ID通过本端口。

Access端口收发数据帧的规则如下:

1.    如果该端口收到对端设备发送的帧是untagged(不带VLAN标签) ,交换机将强制加上该端口的PVID。 如果该端口收到对端设备发送的帧是tagged(带VLAN标签) , 交换机会检查该标签内的VLAN ID。当VLAN ID与该端口的PVID相同时, 接收该报文。 当

VLAN ID与该端口的PVID不同时, 丢弃该报文。

2.    Access端口发送数据帧时, 总是先剥离帧的Tag, 然后再发送。Access端口发往对端设备的以太网帧永远是不带标签的帧。

Trunk端口是交换机上用来和其他交换机连接的端口, 它只能连接干道链路。 Trunk端口允许多个VLAN的帧(带Tag标记) 通过。

Trunk端口收发数据帧的规则如下:

1.    当接收到对端设备发送的不带Tag的数据帧时, 会添加该端口的PVID, 如果PVID在允许通过的VLAN ID列表中, 则接收该报文, 否则丢弃该报文。 当接收到对端设备发送的带Tag的数据帧时, 检查VLAN ID是否在允许通过的VLAN ID列表中。 如果VLAN ID在接口允许通过的VLAN ID列表中, 则接收该报文。 否则丢弃该报文。

2.    端口发送数据帧时, 当VLAN ID与端口的PVID相同, 且是该端口允许通过的VLAN

ID时, 去掉Tag, 发送该报文。 当VLAN ID与端口的PVID不同, 且是该端口允许通过的

VLAN ID时, 保持原有Tag, 发送该报文。

Access端口发往其他设备的报文, 都是Untagged数据帧, 而Trunk端口仅在一种特定情况下才能发出untagged数据帧, 其它情况发出的都是Tagged数据帧。

Hybrid端口是交换机上既可以连接用户主机, 又可以连接其他交换机的端口。 Hybrid端口既可以连接接入链路又可以连接干道链路。 Hybrid端口允许多个VLAN的帧通过, 并可以在出端口方向将某些VLAN帧的Tag剥掉。 华为设备默认的端口类型是Hybrid。

Hybrid端口收发数据帧的规则如下:

1.    当接收到对端设备发送的不带Tag的数据帧时, 会添加该端口的PVID, 如果PVID在允许通过的VLAN ID列表中, 则接收该报文, 否则丢弃该报文。 当接收到对端设备发送的带Tag的数据帧时, 检查VLAN ID是否在允许通过的VLAN ID列表中。 如果VLAN ID在接口允许通过的VLAN ID列表中, 则接收该报文, 否则丢弃该报文。

2.    Hybrid端口发送数据帧时, 将检查该接口是否允许该VLAN数据帧通过。 如果允许通过, 则可以通过命令配置发送时是否携带Tag。

VLAN基本配置

VLAN的划分有很多种方法,基于交换机端口的静态VLAN方法是最常用的。

根据交换机的端口编号来划分VLAN。 通过为交换机的每个端口配置不同的PVID, 来将不同端口划分到VLAN中。

1、在交换机上划分VLAN时,需要首先创建VLAN。

[switch]vlan 10

[switch-vlan10]description caiwubu

可以批量创建

[switch]vlan batch 2 to 9

执行display vlan [ vlan-id [ verbose ] ]命令, 可以查看指定VLAN的详细信息, 包括VLAN ID、 类型、 描述、 VLAN的状态、 VLAN中的端口、以及VLAN中端口的模式等。

执行display vlan vlan-id statistics命令, 可以查看指定VLAN中的流量统计信息。需要开启vlan统计功能才能查看

在VLAN视图下:statistic enable 执行display vlan summary命令, 可以查看系统中所有VLAN的汇总信息。

2、 将交换机接口配置为access接口

[switch]interface GigabitEthernet 0/0/2

[switch-GigabitEthernet0/0/2]port link-type access

3、 将交换机端口加入到相应的VLAN中

[switch]interface GigabitEthernet 0/0/2

[switch-GigabitEthernet0/0/2]port default vlan 2

或者

[switch]vlan 2

[switch-vlan2]port GigabitEthernet 0/0/2

4、 配置接口到trunk端口

[switch]interface GigabitEthernet 0/0/3

[switch-GigabitEthernet0/0/3]port link-type trunk

[switch-GigabitEthernet0/0/3]port trunk allow-pass vlan 2 to 5