再理解VLAN
来源:互联网 发布:苏州青旅 知乎 编辑:程序博客网 时间:2024/06/08 04:48
今天被培训了一下,感觉之前写的Trunk和native VLAN笔记简直狗屁不通,不知所云。这次再理一下思路。
什么是VLAN?百度知道,http://baike.baidu.com/view/16125.htm,我就不抄了。
交换机的端口,分为2种,Access和Trunk。可以把Access理解为Trunk的一种特殊情况。下面就以Trunk口来理解VLAN Tag。
交换机内部有一个FDB(Forwarding Datebase),是一个表,包括MAC和VLAN等信息。
每一个端口,都会有一个Native VLAN和一个VLAN的Allow List,也就是说允许哪些VLAN的报文通过。
在交换机内部的报文,都会有VLAN Tag。
- 当一个不带VLAN Tag的报文进入端口时,交换机就会把这个报文加一个包含Native VLAN的VLAN Tag。当一个带VLAN Tag的报文进入时,什么都不做。这样就保证了报文一进入交换机就有VLAN Tag。
- 当一个报文有了VLAN Tag后,交换机就会检查这个报文是否允许通过。这个要通过检查VLAN的Allow List。如果报文的VLAN不在Allow List里,那么这个报文会被丢弃。如果在Allow List里,那么就转发。所以,通常情况下,Native VLAN都会在Allow List里。也有特殊情况,如果不希望不带VLAN Tag的报文通过,那么可以让Native VLAN不在Allow List里。
- 经过了上一步,报文应该往哪里发?这就需要查找FDB。通过在FDB里查找DMAC(目的MAC)所在的端口,把报文转发出去。
- 当这个报文走到出端口时,出端口会先检查Allow List,如果不在,则丢弃。然后看报文的VLAN是不是跟自己的Native VLAN相等。如果相等,则把VLAN Tag剥掉,送出一个不带VLAN的报文。如果不相等,不做任何改动,带着VLAN Tag直接送出。
为什么说Access是Trunk的一种特殊情况?其实,Access就相当于VLAN的Allow List里只有一个成员,就是Native VLAN,通常也叫PVID。所以,从Access口出去的报文绝对不会带Tag,因为有2种情况,a)Tag被剥掉了(报文的VLAN==Native VLAN),b)报文被丢弃了(报文的VLAN不在Allow List里)。
- 再理解VLAN
- VLAN的理解
- VLAN的理解和应用
- 深入理解VLAN形成和工作原理
- 深入理解VLAN形成和工作原理
- 关于VLAN和VXLAN的理解
- VLAN
- vlan
- VLAN
- VLAN
- vlan
- VLAN
- vlan
- vlan
- vlan
- vlan
- VLAN
- vlan
- adb device找不到设备
- Mysql的一些简单命令的使用
- 5312 If We Were a Child Again
- 使用Java提供的类生成XML例子
- 兵乓操作的3个作用
- 再理解VLAN
- Oracle中Decode()函数使用技巧
- windows消息机制
- linux内核I2C驱动子系统分析(一)
- 二维数组的动态分配和释放
- Protobuf学习笔记
- WPF的表现利器,Style。
- poj 2449 k短路
- XML文档类型定义(DTD)