VLAN相关知识
1.VLAN封装格式
目标MAC (6B) | 源MAC (6B) | TPID (2B) | TCI (2B) | 类型(2B) | 数据部分 (46-1500B) | FCS (4B) |
TCI | ||
Pri(3b) | CFI(1b) | VID(12b) |
VLAN是封装在MAC帧中源MAC和类型之间的,上图中TPID和TCI。
TPID:标签协议标识,固定为0x8100(标志着网络帧承载的是802.1Q类型,交换机就是通过它来确定数据帧内附加了基于IEEE 802.1Q的VLAN信息),另外TPID也有可能0x9100(具体的不清楚)。
TCI:包含帧的控制信息
Pri:Priority这三位指的帧的优先级,这主要为QOS提供参考依据(COS),一共八种优先级,7优先级最高,0优先级最低。优先级的划分根据网络延迟敏感度来划分的,比如语音信息,优先级很高,其次视频信息,接下来email、文件传输等。
CFI:标准格式指示位,CFI=0表明是标准格式,CFI=1表示非标准格式。
VID:指的是VLAN的ID,12位,范围是0-4095,每个支持802.1Q协议的交换机发送出来的数据包都会包含这个值,用以指明自己属于哪一个VALN。
2.什么是VLAN,为什么有VLAN的存在?
VALN指的是“虚拟局域网”,是不拘泥于物理上的位置,从逻辑上灵活地把局域网划分逻辑子网的一种网络技术。
第一是基于网络性能的考虑。对于大型网络,当网络规模很大时,网上的广播信息会很多,会使网络性能恶化,甚至形成广播风暴,引起网络堵塞。可以通过划分很多VLAN,广播信息是不会跨过VLAN的,这样就缩小了广播范围,用术语讲就是缩小了广播域,就可以提高网络性能了。第二是基于安全性的考虑。在大规模的网络,比如说大的集团公司,有财务部、采购部、客户部,它们之间的数据是保密的,互相之间只能提供接口数据,其它数据是保密的。我们可以通过划分VLAN对不同部门进行隔离。 第三是基于组织结构上考虑。同一部门的人员分散在不同的物理地点,比如集团公司的财务部在各子公司均有分部,但都属于财务部管理,这样这些数据都是要保密的,但需统一结算,可以跨地域(也就是跨交换机)将其设在同一VLAN之中,实现数据安全和共享。
3.什么是广播风暴?
一个数据帧或包被传输到本地网段上的每个节点就是广播;由于网络拓扑的设计和连接问题,或其他原因导致广播在网段内大量复制,传播数据帧,导致网络性能下降,甚至网络瘫痪
4.为何要划分广播域?
若只有一个广播域可能会影响网络整体传输性能,举个例子,如下图A想与B通信
基于以太网的通信中,必须在数据帧中指定目标MAC地址才能正常通信,因此计算机A必须先广播“ARP请求信息”,来尝试获取计算机B的MAC地址。 交换机1收到广播帧(ARP请求)后,会将它转发给除接收端口外的其他所有端口。接着,交换机2收到广播帧后也会将它转发到其他端口。交换机3、4、5也会。最终ARP请求会被转发到同一网络中的所有客户机上。
这样广播帧就会传播到网络中所有主机,消耗网络带宽,造成每一台主机cpu负担。
5.VLAN的划分
1).静态VLAN(将交换机每个端口静态的指派给不同VLAN),不适合频繁改变拓扑结构的网络
*Access模式
访问链接,指只属于一个VLAN,并且只向该VLAN转发数据帧的端口
Access收发报文规则:
收到报文:如果带有VLANtag,直接丢弃;如果不带VLANtag,则打上自己端口的PVID(端口VID),然后转发
发送报文:如果带有VLANtag,去掉之后发送;如果不带VLANtag,直接丢弃。
*Trunk模式
汇聚链接,同时属于多个VLAN,Trunk口属于多个VLAN,能够转发多个VALN数据帧的端口。
Trunk收发报文规则:
收到报文:如果带VLANtag,判断Trunk口是否允许带此VLAN信息发送,允许则携带原有VALNtag之后转发,不允许则直接丢弃;如果不带VLANtag,打上自己端口PVID,然后转发
发送报文:如果报文所带VLANtag与端口PVID相同,则去掉VLANtag后转发,如果不同则直接转发。
下面以一个例子说明报文转发规则
(1)PC1 不能ping通PC3
PC1发送一个不带tag的数据帧,到f0/1,被打上VLAN 20的标签,然后access端口转发带VLAN20标签的数据帧到f0/3口,f0/3将此带tag数据帧与自己PVID作比较,发现不相等,直接丢弃
(2)PC1不能ping通PC2
PC1发送一个不带tag的数据帧,到f0/1,被打上VLAN 20的标签,然后access端口转发带VLAN20标签的数据帧到f0/2口,f0/2口将此带tag的数据帧与自己PVID比较,发现不等,直接转发,但是PC不能识别带tag的数据帧;
(3)PC2能ping通PC3
PC2发送一个不带tag的数据帧,到f0/2,trunk口会判断是否有tag,没有tag则打上自己PVLAN ,然后转发带tag的数据帧到f0/3口,f0/3口将此带tag的数据帧与自己PVID比较,发现相等,然后去掉tag,发给PC3
(4)PC2不能ping通PC1
PC2发送一个不带tag的数据帧,到f0/2,trunk口会判断是否有tag,没有tag则打上自己PVLAN ,然后转发带tag的数据帧到f0/1口,f0/1口将此带tag的数据帧与自己PVID比较,发现不等,直接丢弃
(5)PC3能ping通PC2
PC3发送一个不带tag的数据帧,到f0/3,被打上VLAN 10的标签,然后access端口转发带VLAN10标签的数据帧到f0/2口,f0/2将此带tag数据帧与自己PVID作比较,发现相等,然后去掉tag,转发到PC2
(6)PC3不能ping通PC1,原理和(1)一样。
2).动态VLAN(根据端口所连的计算机,随时改变端口的VLAN)
*基于MAC地址的VLAN(通过查询并记录端口所连计算机上网卡的MAC地址来决定端口的所属)
橙色VLAN1;蓝色VLAN2
假定有一个MAC地址“A”被交换机设定为属于VLAN100,那么不论MAC地址为“A”的这台计算机连在交换机哪个端口,该端口都会被划分到VLAN 100中去。计算机连在端口1时,端口1属于VLAN 100;而计算机连在端口2时,则是端口2属于VLAN 10。
*基于IP的VLAN(通过所连计算机的IP地址,来决定端口所属VLAN的)
*基于用户的VLAN
根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个 VLAN。用户识别信息,一般是计算机操作系统登录的用户,比如可以是Windows 域中使用的用户名。