VLAN 简单介绍
一、 为什么要产生VLAN?
冲突域和广播域:
冲突域指的是会产生冲突的最小范围,在同一个冲突域中的每一个节点都能收到所有被发送的帧。冲突域是基于OSI的第一层物理层,第二层的设备如交换机才能隔离冲突域,交换机的每一个端口就是一个冲突域。
广播域:如果站点发出一个广播信号,所有能接收到这个信号的设备范围称为一个广播域。广播域基于OSI的第三层,第三层才能隔离广播域。
一般交换机只能分割冲突域,而不能分割广播域。如果用交换机构造一个大型的网络,将会形成一个巨大的广播域,可能会造成网络拥堵以及安全问题。因此需要一种技术来分割这些广播域。根据路由器子网划分的原理,建立一种VLAN(虚拟局域网)即在逻辑上将广播域划分成几个独立的广播域。每一个VLAN就相当于一个广播域。这样某一个VLAN成员在发送广播域时就只会将数据包发给同一VLAN中的成员,而不会发给其他成员。这样就会减少了网络拥堵的可能,也提高了安全性能。
二、 VLAN原理
VLAN有三种连接方式:access、truck、hybrid。
Access连接:
接收端:
无tag,直接进入并打上端口所属的PVID
有tag,比较与端口是否一致,一致进入,否则丢弃。
发送端:
将标签去掉,直接转发。
Truck连接:
接收端:
无tag,直接进入并打上端口所属的PVID
有tag,判断是否允许转发,允许则进入,否则丢弃。
发送端:
报文所在VLAN与端口PVID一致的,去掉tag转发,不一致的带tag转发。
Hybrid连接:(不常用)
接收端:
无tag,直接进入并打上端口所属的PVID
有tag,判断是否允许转发,允许则进入,否则丢弃。
发送端:
判断该VLAN在本端口的属性是带tag还是不带tag,带的话就带tag转发,不带就去掉tag转发。
只说access和trunk口。交换机对不带tag报文和带tag报文的处理原则:
Access端口:
Access端口的PVID | 接收报文的VLAN ID | 发送报文的VLAN ID | 处理结果 |
VLAN 2 | 无 |
| 打上VLAN2标记后转发 |
VLAN 2 | VLAN 3 |
| 丢弃 |
VLAN2 | VLAN2 |
| 在VLAN 2内转发 |
VLAN 2 |
| VLAN 2 | 去掉VLAN 2标记后转发 |
VLAN 2 |
| VLAN 3 | 丢弃 |
Trunk端口:
Trunk端口的PVID | 接收报文的VLAN ID | 发送报文的VLAN ID | 处理结果 |
VLAN 1 | 无 |
| 打上VLAN 1标记后在VLAN1内转发 |
VLAN2 | 无 |
| 打上VLAN 2标记后在VLAN2内转发 |
VLAN2 | VLAN 2端口允许 |
| 去掉VLAN2标记转发 |
VLAN2 | VLAN 3端口允许 |
| 在VLAN3直接转发 |
VLAN2 | VLAN3端口不允许 |
| 丢弃 |
VLAN2 |
| VLAN 2 | 去掉VLAN2标记发送 |
VLAN2 |
| VLAN 3 | 直接发送 |
三.实验
1、
1、PC发出的是不带tag的报文
LSW1的GE1口
2、SW1的GE1口给报文打上VLAN 2的tag,并在VLAN2内转发
LSW1的GE2口:
3、SW1的GE2口允许VLAN2通过,比较报文的VLAN ID是否与端口的PVID相同,不同,不会去掉tag。在VLAN2内转发。
4、同理,LSW2的ge2和LSW3的ge1收到的报文都是上图的带tag的报文。
5、LSW3的GE2口收到报文后查看报文的VLAN ID与自己的相同,允许转发,而且与自己的PVID相同。去掉tag发送给PC。
LSW3的GE2口的报文不带tag:
二、
LSW1的GE2的PVID与报文的VLAN ID相同,将tag去掉
交换机2的GE1口会给报文打上vlan 3的tag,在VLAN3内转发。
LSW3的GE2将tag去掉后发送给PC2,当然如果GE 2不在VLAN3则GE2口会直接丢弃该报文。
四、 VLAN攻击
1、单tag攻击
思科交换机有一个动态中继协议,默认所有的access口都想成为trunk口,交换机如果连得不是PC,而是交换机,那么端口会立马从access口变为trunk口。这时,攻击者只需要将pc伪造DTP使交换机将pc认为成交换机,交换机就会将access口变为trunk口,这是攻击者只需要给报文加上想要通信的主机所在的VLAN的tag就可以了。
2、双tag攻击
交换机伪造报文加上两个tag,如下图:
VLAN 5 | VLAN20 |
这样交换机就可以在LSW4的出口会将第一层的标签VLAN5去掉,PC1和PC2就可以通信了。