VLAN基本原理及配置
1. VLAN简介
VLAN(Virtual LAN)被称为'虚拟局域网'。它既可以由几台家用计算机构成的小型网络组成,也可以构建起包含数百台计算机的大企业级网络。在VLAN体系下使用的本地网(Local Area Network, LAN)通常通过路由器进行划分。
2. VLAN的基本原理
为了避免广播域的干扰,在具备VLAN支持的交换机上配置多个VLAN组网,并根据网络规划动态分配每个端口所属的子网(默认情况下均分配至子网1)。通过这种配置方式,在一台物理交换机上可部署多个逻辑上的局域网(即各个子网),各子网之间能够实现广播信号的互相隔离与独立运行。每个子网均独立地构成一个完整的广播域。
3. VLAN的作用
(1)隔离广播域;
(2)解决安全问题和垃圾流量问题。
4. 802.1Q 帧的格式
IEEE 802.1D制定了不支持VLAN特性的交换机相关标准文档,而 IEEE 802.1Q则制定了包含VLAN支持的交换机标准文档

802.IQTag中各个字段的含义
| 字段 | 长度 | 名称 | 解释 |
|---|---|---|---|
| TPID | 2 bytes | TagProtocol ID,表示这个帧是否带有Tag | 如果TPID取值为0x8100,则表示该帧是带Tag的帧;否则表示该帧是传统帧,不带Tag的帧,该字段与传统以太网中该位置的Type/Length字段是兼容的 |
| PRI | 3 bits | Priority,表示帧的优先级 | 取值范围为0-7, 值越大优先级越高。用于当交换机阻塞时,先发送优先级较高的帧 |
| CFI | 1 bit | Canonical Format Indicator(规范格式指示器) | 若是这个域的值为1,则MAC地址则为非标准格式;若为0,则为标准格式;在以太交换器中他通常默认为0。 |
| VID | 12 bits | VLAN Identifi,表示该帧所属的 VLAN | VLANID取值范围是0-4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是:1~4095 |
当一个 frame 的源 MAC 地址后面的两个字节的值等于0x8100时,则表明该 frame 属于 Tagged 类型;若一个 frames 的源 MAC 地址后面的两个字节不等于0x8100时,则表明该 frame 为传统类型的 Untagged 型。
5. VLAN的类型
(1)基于端口的VLAN (Port-based VLAN)
划分原则如下:将 VLAN 的编号 CVLANID 配置映射到网络设备的物理端口上。终端计算机在该设备上发送的所有未标记帧都会被分配到对应端口所属的 VLAN 中。
(2)基于MAC地址的VLAN (MAC-based VLAN)
其划分标准:交换机内部动态维护了一个MAC地址与VLANID的对应关系。当交换机接收网络设备发送的Untagged帧时,交换机会识别帧中的源MAC地址,并依据上述对应关系将该帧分配至相应的VLAN中。
(3)基于协议的VLAN (Pro tocol-based VLAN)
其划分原则规定了:交换机制依据计算机接收的信息中未标记数据包中的frame type字段所对应的值决定了该数据包所属的VLAN。
6. 链路类型和端口类型
(1) Access链路(Access Link):在一个支持VLAN特性并实现网络分层的交换网络中 ,我们将该网络中的交换机与终端计算机直接连接的 dedicated link 称为 Access 链路。
将位于Access链路交换机侧的端口定义为Access Port
Access端口工作机制:
当Access端口从链路上接收到一个Untagged帧后时,在该帧中附加 VID 为 PVID 的 Tag 后续执行转发操作(采用泛洪、点到点转发及丢弃策略)。
当Access端口接收到一个带有标签的 framed时,交换机会会验证该 frame 标签中的 VIDEO ID字段是否与PVID一致.若一致,则对该带标签的 framed执行转发操作(包括网络广播、单播及丢弃三种方式);否则则对该带标签的 framed进行丢弃处理.
(2)Trunk链路(Trunk Link): 把交换机之间直接相连的链路称为Trunk链路。
Trunk端口(Trunk Port): 将位于链路两侧的端口称为Trunk端口。每个Trunk端口除了需要配置PVID外,还需配置允许通过传输的VLAN ID列表。
Trunk端口工作机制:
当Trunk接口从链路上接收到了一个未标记的帧段后,在该帧段上增加了带VPI为PVID的标志位。随后判断该VPI是否存在于允许通过的VLANID列表中。如果是,则对该带有标志位的帧段进行处理过程(包括网络广播、单播传输以及丢弃);如果不是,则被丢弃。
当Trunk端口从传输介质上接收到一个带有标记的帧后(Tagged Frame),交换机会会检查该帧的Tag字段中的VID标识符是否存在于允许通过的VLAN ID列表中。如果 VID标识符确实在列表范围内,则会按照指定的操作对这个带有标记的帧进行处理流程(包括网络广播、单播以及丢弃三种方式);反之,则直接丢弃该带有标记的帧。
当一个Tagged帧从本交换机的其他端口传输到一个Trunk端口时, 若该帧中的Tag所附带的VID不在被允许通过的所有VLANID集合中, 则此Tagged帧将被直接丢弃.
当一个以标签形式传递的数据包(Tagged frame)从本交换机的所有其他端口中到达指定的所有Trunk端口之后, 如果该数据包标签中的VLAN标识符(VLANID)值属于本交换机预先定义好的允许转发的目标VLAN列表, 并且该VLANID与数据包所携带的服务域根站标识符(PSID)相同, 则本交换机会对该数据包进行标签剥离操作, 最后将其解封装后的Frame重新发送至相应的链路介质上.
当一个标记过的帧从本交换机的其他端口传输至一个 trunk 端口中时, 如果该帧的 tag 中包含的有效 vlan id 在允许通过的有效 vlan id 列表内, 但 vid 与 pvid 不同, 则该交换机构不主动去除该标记过的 frame 的 tag, 而是直接将其发送至该链路上。
(3)Hybrid端口:
Hybrid 端口机制:在使用 Hybrid 端口时,除了配置 PVID 之外,还需设置两个 VLAN ID 列表——一个是无标签的 VLAN ID 列表(UntaggedVLANID),另一个是有标签的 VLAN ID 列表(TaggedVLANID)。所有这些 VLAN 的帧均可通过该 Hybrid 端口传输。
当Hybrid端口从链路上接收若干个Untagged帧时,在此帧中附加带有VTD作为P VID的Tag。随后检查该P VID是否存在于Untagged VLAN ID列表中。若存在,则对该Tagged帧执行转发操作(包括网络广播、单播转发及丢弃);否则则对该Tagged帧予以丢弃。
若一个Tagged帧自本交换机之其他端口经由Hybrid端口传输而来,则该帧若其Tag所附带之VID既未包含于Untagged VLAN ID集合内亦未包含于Tagged VLAN ID集合内,则该Tagged帧将不会被接收并予以丢弃。
当一个带有Tag标记的帧从本交换机的其他端口传输至Hybrid端口时,在其Tag字段中的VIDEO ID字段值存在于未标记VLAN ID列表中,则该交换机会会剥离该带有Tag标记的帧,并将脱钩后的Un tagging 帧重新发送至该链路上。
当一个标记帧从本交换机的其他端口经由一个混合端口传输至另一个端点后,若该标记帧的Tag字段中的 VID字段值存在于 TaggedVLAN 标签集合中时,交换机会对该标记帧的标签字段不进行剥离处理,而是会立即将其转发至相应的传输介质
Hybrid段落的工作机制相较于Trunk段落与Access段落更加丰富与灵活;Trunk段落与Access段落可被视为Hybrid段落的具体实现形式。具体而言,在Hybrid段落配置中若仅设置untaggedVLAN标识符,则该段落在功能上等价于一个Trunk段落;进一步地,在untaggedVLAN标识符被设置为P VID的前提下(同时确保taggedVLAN标识符字段为空),则该Hybrid段落在功能上等价于一个Access段落。
划分VLAN配置实例
实验拓扑:
**

**
实验目的:为不同子网中的终端设备提供独立的安全环境并实现相互之间的通信连接。具体而言,在该网络架构中要求将终端设备根据所属的安全域编号分别归入VLAN 10(包含PC1和PC3)、VLAN 20(包含PC2、PC4和PC5)以及VLAN 30(仅包含PC6)。通过这种划分策略可确保同一安全域内的所有终端设备能够正常进行数据互通与资源共享。
S1配置:
<S2>undo terminal monitor #关闭命令变化提示,不然敲完一条命令就提示
Info: Current terminal monitor is off.
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname S2
[S2]vlan 10 #创建vlan 10
[S2]vlan 20
[S2-vlan20]quit
[S2]int g 0/0/2
[S2-GigabitEthernet0/0/2]port link-type access #设置端口为access
[S2-GigabitEthernet0/0/2]port default vlan 10 #将该端口加入vlan 10
[S2-GigabitEthernet0/0/2]int g 0/0/3
[S2-GigabitEthernet0/0/3]port link-type access
[S2-GigabitEthernet0/0/3]port default vlan 20
[S2-GigabitEthernet0/0/3]int g 0/0/1
[S2-GigabitEthernet0/0/1]port link-type trunk #设置端口为trunk
[S2-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20 #允许vlan 10和20通过
[S2-GigabitEthernet0/0/1]quit
[S2]display vlan #查看vlan
VID Type Ports
--------------------------------------------------------------------------------
1 common UT:GE0/0/1(U) GE0/0/4(D) GE0/0/5(D) GE0/0/6(D)
GE0/0/7(D) GE0/0/8(D) GE0/0/9(D) GE0/0/10(D)
GE0/0/11(D) GE0/0/12(D) GE0/0/13(D) GE0/0/14(D)
GE0/0/15(D) GE0/0/16(D) GE0/0/17(D) GE0/0/18(D)
GE0/0/19(D) GE0/0/20(D) GE0/0/21(D) GE0/0/22(D)
GE0/0/23(D) GE0/0/24(D)
# 默认都是vlan 1
10 common UT:GE0/0/2(U)
TG:GE0/0/1(U)
20 common UT:GE0/0/3(U)
[S2]
AI助手
S3配置:
<S3>undo ter mo
Info: Current terminal monitor is off.
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname S3
[S3]vlan 10
[S3-vlan10]vlan 20
[S3-vlan20]quit
[S3]int g 0/0/1
[S3-GigabitEthernet0/0/1]port link-type access
[S3-GigabitEthernet0/0/1]port default vlan 10
[S3-GigabitEthernet0/0/1]int g 0/0/3
[S3-GigabitEthernet0/0/3]port link-type access
[S3-GigabitEthernet0/0/3]port default vlan 20
[S3-GigabitEthernet0/0/3]int g 0/0/2
[S3-GigabitEthernet0/0/2]port link-type trunk
[S3-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 20
[S3-GigabitEthernet0/0/2]quit
[S3]
AI助手
S4配置:
[S4]vlan 20
[S4-vlan20]vlan 30
[S4-vlan30]int g 0/0/1
[S4-GigabitEthernet0/0/1]port link-type access
[S4-GigabitEthernet0/0/1]port default vlan 20
[S4-GigabitEthernet0/0/1]int g 0/0/2
[S4-GigabitEthernet0/0/2]port link-type access
[S4-GigabitEthernet0/0/2]port default vlan 30
[S4-GigabitEthernet0/0/2]int g 0/0/3
[S4-GigabitEthernet0/0/3]port link-type trunk
[S4-GigabitEthernet0/0/3]port trunk allow-pass vlan 20 30
[S4-GigabitEthernet0/0/3]quit
[S4]
AI助手
S1配置:
<S1>undo ter mo
Info: Current terminal monitor is off.
<S1>sys
Enter system view, return user view with Ctrl+Z.
[S1]vlan 10
[S1-vlan10]vlan 20
[S1-vlan20]vlan 30
[S1-vlan30]quit
[S1]int g 0/0/1
[S1-GigabitEthernet0/0/1]port link-type trunk
[S1-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20
[S1-GigabitEthernet0/0/1]int g 0/0/2
[S1-GigabitEthernet0/0/2]port link-type trunk
[S1-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 20
[S1-GigabitEthernet0/0/2]int g 0/0/3
[S1-GigabitEthernet0/0/3]port link-type trunk
[S1-GigabitEthernet0/0/3]port trunk allow-pass vlan 20 30
[S1-GigabitEthernet0/0/3]quit
[S1]
AI助手
测试
PC1能ping通PC3:
PC>ping 192.168.1.3
Ping 192.168.1.3: 32 data bytes, Press Ctrl_C to break
From 192.168.1.3: bytes=32 seq=1 ttl=128 time=93 ms
From 192.168.1.3: bytes=32 seq=2 ttl=128 time=110 ms
2 packet(s) transmitted
2 packet(s) received
0.00% packet loss
PC>
AI助手
PC2能ping通PC4和PC5:
PC>ping 192.168.1.4
Ping 192.168.1.4: 32 data bytes, Press Ctrl_C to break
From 192.168.1.4: bytes=32 seq=1 ttl=128 time=94 ms
--- 192.168.1.4 ping statistics ---
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
PC>ping 192.168.1.5
Ping 192.168.1.5: 32 data bytes, Press Ctrl_C to break
From 192.168.1.5: bytes=32 seq=1 ttl=128 time=94 ms
--- 192.168.1.5 ping statistics ---
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
PC>
AI助手
PC6无法ping通PC1、PC2、PC3、PC4和PC5
PC>ping 192.168.1.1
Ping 192.168.1.1: 32 data bytes, Press Ctrl_C to break
From 192.168.1.6: Destination host unreachable
--- 192.168.1.1 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
PC>ping 192.168.1.2
Ping 192.168.1.2: 32 data bytes, Press Ctrl_C to break
From 192.168.1.6: Destination host unreachable
--- 192.168.1.2 ping statistics ---
4 packet(s) transmitted
0 packet(s) received
100.00% packet loss
PC>
AI助手
划分VLAN需注意:通过交换机与PC间的访问端口以及交换机之间的 trunk 端口进行网络划分。
参考资料:《HCNA网络技术学习指南》
