1. vlan是什么
vlan: virtual lan; 虚拟局域网的简称。
主要目的是隔离广播域。
2. vlan报文格式
在普通的以太网数据帧开关的12字节后添加4字节的vlan tag
。而来区分vlan
的是其中的vid
部分12
个比特位,范围自然就是0~2^12-1(0~4095)
;
0 4095
保留使用。实际使用的是1~4094
。
3 工作原理
隔离广播域,由于vlan
隔离广播域,所以arp
广播无法跨vlan
发送,所以无法获取到目标mac
地址,进而实现vlan
能互相访问,不同vlan
无法互相访问。
- 链路类型:交换机间用
Trunk
链路,交换机连终端用access
链路。 pvid
: port vlan id;端口的vlan id
, 决定一个端口属于哪个vlan
。
4 端口行为
pvid
决定了vlan id
, 因此对应端口pvid
应该与划分的vlan id
一致。
4.1 access 端口
在收到数据后会添加vlan tag
, vlan id
和端口pvid
相同。
在发出数据时,会检查包中的vlan id
, 如果和端口的pvid
不同,则会丢弃数据。
配置命令
vlan batch 10 20
port link-type access
port default vlan 10
display port vlan
4.2 trunk端口
trunk
链路有一个allow-pass
列表,它规定了哪些vlan id
的包能通过。
- 如果列表中有
vlan 20
, 则禁止vlan 20
通过 - 如果列表中有
vlan 20
, 允许vlan 20
通过- 对比
trunk pvid
和数据帧中的vlan id
,如果不同,则带标签通过。 - 否则脱标签通过
- 对比
配置命令
port link-type trunk
port trunk allow vlan 20
实验图示
这个拓扑图下就实现了PC1
与PC3
之间互通;
PC2
与PC2
与PC4
之间互通。其余情况都不通。
pc
与交换机间为access
链路,交换机间为trunk
链路。
LSW1
与LSW2
的port vlan
表是一样的。
4.3 hybrid 链路
只有华为、华三的设备支持。
hybrid
就是混合型链路,它支持tagged untagged
的方式加入链路。
不管是哪种方式都是要配置的,否则没有包能发出去,也就是类似于trunk
链路的allow-pass list
。
hybrid
链路维护两张表, tagged
表与untagged
表。
untagged
表在收到数据时仅仅进行放行的作用,无法进行脱标签的动作。
untagged
表有发送数据时会进行脱标签动作。
配置思路:
- 设置链路类型
hybrid
- 设置
pvid
- 设置
untagged
表
命令
port link-type hybrid
port hybrid pvid vlan 10
port hybrid untag vlan 10
实验图示:
PC1
和PC4
在vlan 10
;
PC2
和PC3
在vlan 20
;
PC5
在vlan 100
PC1 PC2
可以访问PC5
,PC5
也可访问PC1 PC2
。
5. 问题
5.1 为什么trunk有一个allow-pass列表?
为了保证安全性,白名单功能。
5.2 为什么trunk链路默认放行vlan 1?
为了网络有更好的联通性,所以默认放行vlan 1
。
当一个网络拥有更好的联通性,牺牲的是安全。
因此在安全性场景下,我们会禁止放行vlan 1
。
undo port trunk allow-pass vlan 1
5.3 为什么trunk链路一般不用来连接终端?
因为trunk
链路发送数据时大多数情况下会携带标签。而终端设备一般不识别标签,所以连接终端一般用access
链路。
6. 注意
6.1 trunk链路不修改pvid
如果修改pvid
可能会出现, 不同vlan
间仍然互通的情况。就会产生广播风暴,无法实现vlan
隔离。所以trunk
链路不进行pvid
的个修改。
比如下面的这种情况:
PC1
与PC2
分属不同vlan
, 但仍然能互相访问。
Ref
huawei