我也不是专家,就当大家讨论一下吧
1.两种种标记方法
一种:ISL(思科私有的),不改变帧结构
另一种:802.1q(公有的,其他厂商设备也支持),在以太网帧里面插入4个字节
PC机不认标签,只管源MAC和目标MAC
2.你的认识有误区,PC进入ACCESS口时根本就没有封装上VLAN20的标签,只是这个PC和交换机相连的端口是配置为VLAN20而已,真正封装打标签是在数据从TRUNK口出去前,只有TRUNK链路纯在,才会有打标签这一说
3.ISL是在整个的以太网帧的头部加上26个字节的ISL报头,在尾部加上4个字节的CRC(循环冗余校验) 总共30个字节
VLAN的字段应该就在ISL头里面
本征VLAN,我学的时候没有这个说法,大概就是Native VLAN吧?
Native VLAN是802.1q中的概念,Cisco Catalyst交换机默认Native VLAN是VLAN 1
Native VLAN是用来发送无标记的流量的
就算你发送的数据是有标记的(举例是VLAN10),如果你把VLAN10假如到Native VLAN中,那Native VLAN就会把标记去掉后,在通过中继链路发出
这里提醒你一个重点:Trunk端口互联Native VLAN必须相同
只是讨论,说的不对的地方,欢迎指出
你对vlan的封装理解有点错误。
1,数据只有在进入和离开交换的时候才会有封装动作
2,access口是不会有封装动作的
3,native只在trunk口中才有意义
解释一下:
一定要先理解access是没有封装的。按你的思路,在access口上的pc可以识别交换机上的数据包,所以这个类型的端口必定是没有封装。这也就是为什么pc在trunk口上无法识别到交换机的数据。
所以trunk的工作原理如下:当这个端口收到数据时,先查找vlan封装标示,根据标示将数据分配到对应的vlan中去(同时剥去这个数据的vlan标示)。当数据从trunk口离开交换机的时候,做逆操作。根据送上这个数据的vlan,为每个数据打上标示,再从trunk口中发送出去。
native其实是trunk标示的一种,比如你有三个vlan,1、10、20,1是native,那在送出交换机的时候vlan 10、20的数据会打上标签,1不打标签。然后很重要,如果下一台交换机配置更改了,native是10,那这时候第一台交换机的vlan1就会和第二台交换机的vlan10打通。而第二台交换机收到vlan10的数据时,尽管本地有vlan 10,但vlan10是native,它就会遵循native原则,丢弃该这个有标示的数据