目录
1.园区网认知
2.交换机知识回顾
3.VLAN技术
3.1 概念VLAN : Virtual Local Area Network 虚拟局域网
3.2 VLAN实现的原理
3.3 VLAN的特点
3.4 VLAN的划分
3.5 Vlan的编码范围:
3.6 Vlan的配置
3.7配置实验
4.VLAN 通信原理(Access、Trunk、通信过程)
4.1 access
4.2 Trunk
4.3 多VLAN下的数据通信原理
扩展内容:MUX VLAN
基本概念
注意事项
实验拓扑编辑
实验配置
5.GVRP(GARP VLAN Registration Protocol)
查看配置结果
注册模式讲解
交换机接收到广播报文,会将这个报文发送给本局域网的所有接口。
下图所有设备都连接到了一个广播域。
如果广播域过大的话,
导致带宽浪费、计算机的计算资源的浪费
对其他的用户带来一定的安全威胁
不易管理
解决方案----> 把广播域尽可能的减小:主要是为了减小广播报文的传递范围。
1.VLAN数据库
一般情况,会把接口划分到不同的vlan
[Huawei]display vlan
VID Type Ports
--------------------------------------------------------------------------------
1 common UT:Eth0/0/9(D) Eth0/0/10(D) Eth0/0/11(D) Eth0/0/12(D)
Eth0/0/13(D) Eth0/0/14(D) Eth0/0/15(D) Eth0/0/16(D)
Eth0/0/17(D) Eth0/0/18(D) Eth0/0/19(D) Eth0/0/20(D)
Eth0/0/21(D) Eth0/0/22(D) GE0/0/1(D) GE0/0/2(D)
2 common UT:Eth0/0/1(D) Eth0/0/2(D) Eth0/0/3(D) Eth0/0/4(D)
3 common UT:Eth0/0/5(D) Eth0/0/6(D) Eth0/0/7(D) Eth0/0/8(D)
VID Status Property MAC-LRN Statistics Description
如果某个接口收到广播报文,则该报文,会发送给本 vlan下的其他成员接口,而不会发送个其他vlan的接口
2.交换机的MAC地址表
交换机划分了VLAN,MAC地址表会被 VLAN所分割, 也会让不同vlan的用户数据通信被隔离了。
用途和优点:
用来表示 vlan 编号的位是 12bit,所以 vlan的范围 0 -2^12-1 即 0-4095.
0,4095 不能使用
1 ,交换机默认的vlan,就是 vlan1 ,不能被删除
2-4094 为常规的vlan,都可以被用户定义、使用和删除
在华为交换机设备上,可以进行操作的vlan范围是 1-4094
[Huawei]vlan ?
INTEGER<1-4094> VLAN ID
# 单独增加一个vlan, 范围是 2-4094 1默认存在
[Huawei]vlan ?
INTEGER <1-4094> VLAN ID
[Huawei]vlan 2 # 在交换机上创建了一个 vlan2
[Huawei-vlan2] # 可以单独对这个vlan做操作
[Huawei-vlan2]description Market # 给vlan添加相应的描述信息
[Huawei-vlan2]quit # 退出这个vlan的视图 ,quit可以简写为 q
[Huawei] # 批量创建vlan batch
# 批量创建指定的vlan
[Huawei]vlan batch 3 4 5 6 # 创建一个范围的vlan
[Huawei]vlan batch 7 to 20
# 将Ethernet0/0/1 添加到vlan2
[Huawei]interface Ethernet0/0/1
[Huawei-Ethernet0/0/1]port link-type access # 先将接口类型修改成 access
[Huawei-Ethernet0/0/1]port default vlan 2 # 再把这个接口,添加到相应的vlan
# 单独删除某个vlan
[Huawei]undo vlan 4094
# 批量删除 指定的vlan
[Huawei]undo vlan batch 1001 1002
Warning: The configurations of the VLAN will be deleted. Continue?[Y/N]:y
Info: This operation may take a few seconds. Please wait for a moment...done.
# 批量删除一个范围的vlan [Huawei]undo vlan batch 6 to 20
Warning: The configurations of the VLAN will be deleted. Continue?[Y/N]:y
Info: This operation may take a few seconds. Please wait for a moment...done.
#如果一个vlan下有成员接口,当vlan被删除时,这些接口会被重新加入 vlan 1
# 修改 vlan下的端口
# 如 Eth0/0/2原来在 vlan 2下,将这个接口修改到vlan3下: 接口类型不变,原来对Eth0/0/2的 配置不需要删除,只需要覆盖即可。
[Huawei]interface Eth0/0/2
[Huawei-Ethernet0/0/2]port default vlan 3 【之前的命令port default vlan2会被这个新命令会 被覆盖】
# 查看vlan数据库 [Huawei]display vlan
The total number of vlans is : 4
--------------------------------------------------------------------------------
U: Up; D: Down; TG: Tagged; UT: Untagged;
MP: Vlan-mapping; ST: Vlan-stacking;
#: ProtocolTransparent-vlan; *: Management-vlan;
--------------------------------------------------------------------------------
VID Type Ports
--------------------------------------------------------------------------------
1 common UT:Eth0/0/1(D) Eth0/0/2(D) Eth0/0/3(D) Eth0/0/4(D)
Eth0/0/5(D) Eth0/0/6(D) Eth0/0/7(D) Eth0/0/8(D)
Eth0/0/9(D) Eth0/0/10(D) Eth0/0/11(D) Eth0/0/12(D)
Eth0/0/13(D) Eth0/0/14(D) Eth0/0/15(D) Eth0/0/16(D)
Eth0/0/17(D) Eth0/0/18(D) Eth0/0/19(D) Eth0/0/20(D)
Eth0/0/21(D) Eth0/0/22(D) GE0/0/1(D) GE0/0/2(D)
# 查看端口类型:
# access: 被划分vlan的接口,属性配置为 access了,看一个接口属于哪个vlan,首先看这个接口的 类型是 access,然后看它的pvid是多少,这个接口就在vlan多少。
[Huawei]display port vlan
Port Link Type PVID Trunk VLAN List
-------------------------------------------------------------------------------
Ethernet0/0/1 access 2 -
Ethernet0/0/2 access 1 -
Ethernet0/0/3 hybrid 1 -
Ethernet0/0/4 hybrid 1 -
Ethernet0/0/5 hybrid 1 -
【hybrid接口是混杂接口,默认情况下,可以认为是 属于 vlan1的 access类型的接口。】
[SW1]vlan batch 10 20
将接口添加到相应的vlan数据库
[SW1]interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1]port link-type access # 改变接口的链路类型为 access
[SW1-GigabitEthernet0/0/1]port default vlan 10
[SW1-GigabitEthernet0/0/2]port link-type access
[SW1-GigabitEthernet0/0/2]port default vlan 20
# 查看对于这个接口的配置,即在这个接口的视图下,使用 display this命令,
[SW1-GigabitEthernet0/0/2]display this
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20
#
[SW1]display vlan
The total number of vlans is : 3
--------------------------------------------------------------------------------
U: Up; D: Down; TG: Tagged; UT: Untagged;
--------------------------------------------------------------------------------
VID Type Ports
--------------------------------------------------------------------------------
1 common UT:GE0/0/3(D) 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)
10 common UT:GE0/0/1(U)
20 common UT:GE0/0/2(U)
pvid是access端口的属性,端口加入哪个vlan,它的PVID就是几
Access端口在收到数据后会添加VLAN Tag,VLAN ID和端口的PVID相同。
Access端口是交换机上用来连接用户主机的端口。
Access端口只能连接接入链路,并且只能允许唯一的VLAN ID通过本端口。
Access端口收发数据帧的规则如下:
1. 数据帧不带tag:
如果该端口收到对端设备发送的帧是untagged(不带VLAN标签),交换机将强制加上该端口的PVID。
2. 数据帧带tag:
如果该端口收到对端设备发送的帧是tagged(带VLAN标签),交换机会检查该标签内的VLAN ID。
当VLAN ID与该端口的PVID相同时,接收该报文。
当VLAN ID与该端口的PVID不同时,丢弃该报文。
Access端口发送数据帧时,总是先剥离帧的Tag,然后再发送;Access端口发往对端设备的以太网帧永远是不带标签的帧。
1.Trunk
当一条链路,需要承载多VLAN信息的时候,需使用trunk来实现。
Trunk即干道协议,采用Trunk链路技术可以实现不同交换机同网段的Vlan间通信。
2.Trunk的实现原理
Trunk技术可以实现在一条物理线路中可以传递多个Vlan间的信息。原理是能够运行携带来自不同vlan的tag帧。这些数据帧的封装规则来自于 802.1Q
802.1Q 协议详解:
IEEE 802.1Q封装的VLAN数据帧格式 - 华为
3.Trunk的配置
[SWA-GigabitEthernet0/0/1]port link-type trunk
[SWA-GigabitEthernet0/0/1]port trunk allow-pass vlan 2 3
4.trunk的配置验证:
dis vlan The total number of vlans is : 3
--------------------------------------------------------------------------------
U: Up; D: Down; TG: Tagged; # 被封装802.1Q标签 UT: Untagged;
--------------------------------------------------------------------------------
VID Type Ports
--------------------------------------------------------------------------------
2 common UT:Eth0/0/1(U)
TG:GE0/0/1(U) # TG 即通过该接口的时候,会添加tag的接口,即Trunk接口。
3 common UT:Eth0/0/2(U)
5.Trunk的应用场景
主要应用场景是交换机与交换机之间的链路,需要承载不同的vlan通过。
Trunk的其他应用场景:
交换机与路由器:单臂路由技术的应用
交换机与服务器:交换机连接可以配置多个IP地址并生效的网络接口
6.Trunk 数据通信原理
PC1并不清楚PC3的MAC地址,所以需要进行广播
没有找到192.168.2.2 这个IP地址对应的MAC地址是多少,触发ARP请求
dis vlan 2 common UT:Eth0/0/1(U) TG:GE0/0/1(U)
3 common UT:Eth0/0/2(U) TG:GE0/0/1(U)
查看vlan数据库,vlan2对应的接口有 Ethernet0/0/1和 GE0/0/1,由于ETH0/0/1是接收该报文的接口,所以,ARP请求报文只会有GE0/0/1发出去
由于该报文携带了一个 带有vlan2的tag,SW2在学习源MAC地址的时候,会将 AA- G1接口的对应关系,写到 VLAN2的MAC地址表中
dis mac-address
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-IDVSI/SI MAC-Tunnel5489-9807-58aa 2 - - GE0/0/1 dynamic 0/-
SW2查看目标MAC地址是FF,则会将ARP请求报文以广播的形式从 属于VLAN2的接口发出
GE0/0/1 是接收这个ARP请求的接口,则广播报文只会从ETH0/0/1发出
由于E0/0/1接口是access类型,则数据帧要剥离掉tag,从E0/0/1发出
首先查看目标MAC地址:全FF,是广播报文,自己可以解封装。解封装到ARP数据部分
查看Sender MAC和SenderIP的对应关系,写到自己的ARP缓存表
查看 target IP,发现目标IP地址是自己的,所以这个ARP请求,就是在请求自己的MAC地址,于是PC2会封装ARP的回复报文
PC3发出该ARP的回复报文
5.Trunk的其他特性
什么时候数据经过Trunk链路会不携带TAG?
PVID:
Trunk链路的PVID默认就是 1, 如果想让某个vlan的数据,由Trunk链路发出的时候,不携带Tag,就把Trunk链路的PVID改成这个vlan的vlan-id就可以了。
[Sw1-GigabitEthernet0/0/1]port trunk pvid vlan 2
如果某个VLAN和Trunk链路的PVID相同,我们就说这个VLAN是该Trunk链路的 本征VLAN (native VLAN),默认的native vlan是vlan1.
Trunk链路在发送Native VLAN数据的时候,不携带Tag。 如果Trunk链路接收了一个不带Tag的数据帧,会把这个数据帧发送到自己的Native下。
对于SW4来说,虽然接口都配置了Trunk,允许vlan10的数据通过,自己本身,也没有VLAN 10的用户相连,SW4依然要有vlan10.
让VLAN10的数据,在经过SW4的时候,有转发依据:VLAN10的MAC地址表【如果SW4不配置VLAN10,交换机上就不会出现VLAN10的MAC地址表和它的VLAN数据库,对于接收到的VLAN10的数据,无法进行转发】
2.PC1发出的数据帧被交换机的1号接口接收:
由于1号接口属于 VLAN10,PC1发出的数据帧不带tag,当这个数据帧被交换机的1号接口接收,将强制打上一个pvid=10的tag
3.交换机学习源MAC地址:
交换机收到数据帧,解封装数据链路层,学习源MAC地址,由于该数据帧携带tag的PVID=10,则会丰富关于VLAN10的MAC地址表:
4.交换机查看目标MAC地址,转发数据:
交换机查看目标MAC地址,只会在VLAN10的MAC地址表中查找关于目标MAC地址BB对应的接口,当前的MAC地址表中无此项,则会将该数据帧泛洪发送至PC2。(如果交换机查看VLAN数据库,发现数据库中有更多的vlan10接口,那么这些接口也会被泛洪向外发送数据帧至对端设备)
Access端口发送数据帧时,总是先剥离帧的Tag,然后再发送;Access端口发往对端设备的以太网帧永远是不带标签的帧。
6.交换机接收该数据帧:
由于2号接口属于 VLAN10,PC2发出的数据帧不带tag,当这个数据帧被交换机的2号接口接收,将强制打上一个pvid=10的tag
7.交换机学习源MAC地址:
交换机收到数据帧,解封装数据链路层,学习源MAC地址,由于该数据帧携带tag的PVID=10,则会丰富关于VLAN10的MAC地址表
8.交换机查看目标MAC地址,转发数据:
目标MAC地址为AA,根据VLAN10的MAC地址表,AA对应的接口为1号接口,则该数据帧会被交换机从1号接口发出。
Access端口发送数据帧时,总是先剥离帧的Tag,然后再发送;Access端口发往对端设备的以太网帧永远是不带标签的帧。
MUX VLAN分为主VLAN和从VLAN,从VLAN又分为隔离型从VLAN和互通型从VLAN。
每个隔离型从VLAN必须绑定一个主VLAN。
每个互通型从VLAN必须绑定一个主VLAN。
system-view [Huawei]sysname SW1
[SW1]vlan batch 2 to 4
[SW1]vlan 2
[SW1-vlan2]mux-vlan
[SW1-vlan2]subordinate separate 4
[SW1-vlan2]quit
[SW1]interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1]port link-type access
[SW1-GigabitEthernet0/0/1]port default vlan 3
[SW1-GigabitEthernet0/0/1]port mux-vlan enable
SW1-GigabitEthernet0/0/1]quit
[SW1]interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2]port link-type access
[SW1-GigabitEthernet0/0/2]port default vlan 3
[SW1-GigabitEthernet0/0/2]port mux-vlan enable
[SW1-GigabitEthernet0/0/2]interface GigabitEthernet 0/0/3
[SW1-GigabitEthernet0/0/3]port link-type access
[SW1-GigabitEthernet0/0/3]port default vlan 4
[SW1-GigabitEthernet0/0/3]port mux-vlan enable
[SW1-GigabitEthernet0/0/3]interface GigabitEthernet 0/0/4
[SW1-GigabitEthernet0/0/4]port link-type access
[SW1-GigabitEthernet0/0/4]port default vlan 4
[SW1-GigabitEthernet0/0/4]port mux-vlan enable
[SW1-GigabitEthernet0/0/4]interface GigabitEthernet 0/0/5
[SW1-GigabitEthernet0/0/5]port link-type access
[SW1-GigabitEthernet0/0/5]port default vlan 2
[SW1-GigabitEthernet0/0/5]port mux-vlan enable
[SW1-GigabitEthernet0/0/5]port link-type access
[SW1-GigabitEthernet0/0/5]interface GigabitEthernet 0/0/6
[SW1-GigabitEthernet0/0/6]port link-type trunk
[SW1-GigabitEthernet0/0/6]port trunk allow-pass vlan 2 to 4
SW2进行相同配置
PC1 ping其他主机和服务器,验证实验
group-vlan之间是可以互通的,可以和principal-vlan通信,但不可以和separate-vlan通信
上面的实验中,不能配置这条命令。所以跨设备的隔离vlan也是可以通信的。例如PC2和PC4,client4可以通信。client2和PC4,client4可以通信。
GVRP(GARP VLAN Registration Protocol),中文名为GARP VLAN注册协议,是GARP通用属性注册协议的一种应用,用于注册和注销VLAN属性,GVRP使得交换机之间能够互相交换VLAN配置信息,动态创建和管理VLAN。手工配置的VLAN称为静态VLAN,而通过GVRP协议创建的VLAN称为动态VLAN,GVRP有三种注册模式,Normal模式、Fixed模式、Forbidden模式
SW1
#
sysname SW1
#
vlan batch 2 to 4
#开启全局gvrp功能
gvrp
#
interface Ethernet0/0/13
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#接口启用gvrp功能
#必须trunk口才能开启gvrp Info: Not a trunk port; can't specify gvrp!
gvrp
#
interface Ethernet0/0/1
port link-type access
port default vlan 2
SW2
#
sysname SW2
#
vlan batch 2
#
gvrp
#
interface Ethernet0/0/12
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp
#
interface Ethernet0/0/1
port link-type access
port default vlan 2
SW3
#
sysname SW3
#
vlan batch 3 to 6
#
gvrp
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp
#
interface GigabitEthernet0/0/13
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp
SW4
#
sysname SW4
#
vlan batch 7 to 9
#
gvrp
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp
#
interface GigabitEthernet0/0/12
port link-type trunk
port trunk allow-pass vlan 2 to 4094
gvrp
display vlan
因为SW2上除了vlan 2,所以vlan全是dynamic动态
但是3-9都是只有一侧端口加入到动态学习的vlan中,此时数据帧只能单向通信,无法双向通信,这是因为SW2下方无法配置动态vlan,所以其他来自vlan3-9的也不能向下通信
Error: The VLAN is a dynamic VLAN and cannot be configured.
所以PC1和PC2通信,必须在SW1和SW2上创建静态vlan 2
display gvrp statistics
normal
开启配置默认是normal
fixed
[SW2]interface Eth0/0/12
[SW2-Ethernet0/0/12]gvrp registration fixed
#fixed模式下无法注册动态vlan,只是限制此本地此接口,并不限制对面的接口,对面接口如果是normal依然可以学习vlan
在fixed模式下,PC1可以Ping通PC2,因为SW2,SW1有静态vlan 2,SW3和SW4通过动态学习到了Vlan2
forbidden
在forbidden模式下,PC1无法ping通PC2,是因为PC1,PC2的相互关联的接口都是access,vlan 2 ,所以无法通信
[SW2]interface e0/0/12
[SW2-Ethernet0/0/12]gvrp registration forbidden
#在Forbidden模式下,E0/0/1接口只允许VLAN 1的报文通过,禁止任何其他VLAN的报文通过