1. VLAN简介
VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络。
2. VLAN的基本原理
VLAN的存在就是为了隔离广播域,通过在支持VLAN的交换机上添加VLAN,并且动态的调整每个端口所属VLAN(默认端口都属于VLAN1),实现一台物理交换机上可以有多个LAN,每个LAN称作VLAN,VLAN之间的广播互不可达,VLAN间互不影响。每个VLAN是一个独立的广播域。
3. VLAN的作用
(1)隔离广播域;
(2)解决安全问题和垃圾流量问题。
4. 802.1Q 帧的格式
IEEE 802.1D定义了关于不支持VLAN特性的交换机的标准规范,IEEE802.IQ定义了关于支持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 |
如果一个帧的源MAC地址后面的两个字节的值是0x8100, 则说明 这个帧 是一个Tagged帧;如果一个帧的源MAC地址后面的两个字节的值不是0x8100, 则说明 这个帧是一个传统的Untagged帧 。
5. VLAN的类型
(1)基于端口的VLAN (Port-based VLAN)
其划分原则:将 VLAN的编号CVLANID)配置影射到 交换机的物理端口上,从某一物理端口进入交换机的、由终端计算机发送的Untagged帧都被划分到 该端口的VLAN ID所表名的那个VLAN。
(2)基于MAC地址的VLAN (MAC-based VLAN)
其划分原则:交换机内部建立并维护了一个MAC地址与VLANID的对应表,当交换机接收到计算机发送的Untagged帧时,交换机将分析帧中的源MAC地址,然后查询MAC地址与VLANID的对应表,并根据 对应关系把这个帧划分到相应的VLAN中 。
(3)基于协议的VLAN (Pro tocol-based VLAN)
其划分原则:交换机根据 计算机发送的Untagged帧中的帧类型 字段的值来决定帧的VLAN归属。
6. 链路类型和端口类型
(1)Access链路(Access Link):在一个支持VLAN特性的交换网络中 ,我们把交换机与终端计算机直接相连的链路称为Access Link。
Access端口(Access Port):把Access链路上交换机一侧的端口称为Access Port。
Access端口工作机制:
当Access端口从链路(线路)上收到一个Untagged帧后, 交换机会在这个帧中添加上VID为PVID的Tag, 然后对得到的Tagged帧进行转发操作(泛洪,点到点转发,丢弃)。
当Access端口从链路(线路)上收到一个Tagged帧后,交换机会检查这个帧的Tag中的VID是否与PVID相同。如果相同,则对这个Tagged帧进行转发操作(泛洪,点到点转发,丢弃);如果不同,则直接丢弃这个Tagged帧。
(2)Trunk链路(Trunk Link):把交换机之间直接相连的链路称为Trunk链路。
Trunk端口(Trunk Port):把链路上两侧的端口称为Trunk Port。对于每一个Trunk端口除了要配置PVID之外,还必须配置允许通过的VLAN ID列表。
Trunk端口工作机制:
当Trunk端口从链路(线路)上收到一个Untagged帧后, 交换机会在这个帧中添加上VID为PVID的Tag, 然后查看PVID是否在允许通过的VLANID列表中。如果在,则对得到的Tagged帧进行转发操作(泛洪,点到点转发,丢弃);如果不在,则直接丢弃得到的Tagged帧。
当Trunk端口从链路(线路)上收到一个Tagged帧后, 交换机会查看这个帧的Tag中的VID是否在允许通过的VLANID列表中。如果在,则对该Tagged帧进行转发操作(泛洪,点到点转发,丢弃);如果不在,则直接丢弃该Tagged帧。
当一个Tagged帧从本交换机的其他端口到达一个Trunk端口后,如果这个帧的Tag中的VID不在允许通过的VLANID列表中,则该Tagged帧会被直接丢弃。
当一个Tagged帧从本交换机的其他端口到达 个Trunk端口后,如果这个帧的Tag中的VID在允许通过的VLANID列表中,且VID与PVID相同,则交换机会对这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路(线路)上发送出去。
当一个Tagged帧从本交换机的其他端口到达一个Trunk端口后,如果这个帧的Tag中的VID在允许通过的VLANID列表中, 但VID与PVID不相同,则交换机不会对这个Tagged帧的Tag进行剥离, 而是直接将它从链路(线路)上发送去。
(3)Hybrid端口:华为设备默认的端口都是Hybrid端口,既可以将交换机上与终端计算机相连的端口配置为 Hybrid端口,也可以将交换机上与其他交换机相连的端口 配置为 Hybrid端口。
Hybrid端口工作机制:Hybrid端口除了需要配置PVID外,还需要配置两个VLANID 列表,一个是 UntaggedVLANID 列表,另个是 TaggedVLAN ID 列表。这两个 VLANID 列表中的所有 VLAN的帧都是允许通过这个Hybrid端口的。
当 Hybrid端口从链路(线路)上收到 个 Untagged帧后, 交换机会在这个帧中添加上 VTD 为PVID的 Tag,然后查看PVID是否在UntaggedVLAN ID列表 如果在, 则对得到的 Tagged帧进行转发操作(泛洪, 点到点转发,丢弃);如果不在,则直接丢弃得到的 Tagged帧。
当一个Tagged帧从本交换机的其他端口到达个Hybrid端口后,如果这个帧的Tag中的VID既不在Untagged VLAN ID 列表中, 也不在 Tagged VLAN ID列表中,则该Tagged帧会被直接丢弃。
当一个Tagged帧从本交换机的其他端口到达个Hybrid端口后,如果这个帧的Tag中的VID在Untagged VLAN ID 列表中,则交换机会对这个 Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路(线路)上发送出去。
当一个Tagged帧从本交换机的其他端口到达个Hybrid端口后,如果这个帧的Tag中的VID在TaggedVLAN ID 列表中, 则交换机不会对这个 Tagged帧的Tag进行剥离,而是直接将它从链路(线路)上发送出去。
Hybrid端口的工作机制比 Trunk 端口和 Access 端口更为丰富而灵活; Trunk 端口和Access 端口可以看成是 Hybrid端口的特例。当 Hybrid端口配置中的 UntaggedVLAN ID列表中有且只有 PVID 时, Hybrid端口就等效于个Trunk 端口:当 Hybrid端口配置中的 UntaggedVLAN ID列表中有且只有PVID, 并且Tagged VLAN ID 列表为空时,Hybrid端口就等效于一个 Access端口。
-
划分VLAN配置实例
实验拓扑:
实验目的:配置PC1和PC3属于VLAN 10,PC2、PC4和PC5属于VLAN 20,PC6属于VLAN 30,实现同一个VLAN里的主机能够相互通信。
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]
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]
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]
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]
测试
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>
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>
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>
划分VLAN要记住:交换机与PC间配置access端口,交换机与交换机之间配置trunk端口。
参考资料:《HCNA网络技术学习指南》