2.3 支持VLAN的二层交换机2.3.1 VLAN简介【一文搞懂交换基础知识】VLAN,即Virtual Local Area Network(虚拟局域网),遵循IEEE802.1Q标准,它在原来的以太网帧源MAC字段的后面加入了4个字节的VLAN Tag,这4字节的结构如图5所示 。
文章插图
VLAN Tag示意图
VLAN Tag中各字段的含义如下:
Type:取固定值0x8100,用于标志VLAN Tag;
User Priority:用户优先级,用于流量的等级划分;
Flag:该bit在以太网中固定取0;
VLAN-ID:取值为0~4095,用于标志不同VLAN 。
由于不同VLAN之间是二层隔离的,通过将不同的主机划分到不同的VLAN中去,就有效的控制了广播域的范围 。我们知道,通常情况下主机发出的报文都是不带VLAN Tag的(称为Untagged报文),那么如何将这样的报文划分到某个VLAN中去呢 。VLAN划分的方法有多种,包括基于端口划分、基于MAC划分、基于IP划分、基于协议划分等等 。目前,基于端口来划分VLAN是使用最为广泛的,也就是通过收到报文的端口来决定Untagged报文属于哪个VLAN 。当Untagged报文进入交换机内部以后,会根据VLAN划分被加上VLAN Tag,然后进行后续转发处理 。当然,如果报文本身是带了VLAN Tag的,就直接根据其中的VLAN ID来决定了 。图6是一个VLAN应用的示意图 。
文章插图
VLAN应用示意图
上图中,两台二层交换机之间的链路一般称为Trunk链路,其上传输的一般都是带VLAN Tag的报文(称为Tagged报文),这样的报文进入交换机以后直接根据其VLAN ID来区分VLAN 。
交换机引入VLAN后,带来了以下好处:
(1) 有效控制广播域范围,广播流量仅在VLAN内转发;
(2) 配置灵活,虚拟局域网的范围可根据需要随时调整;
(3) 由于不同VLAN之间二层隔离,带来了更高的安全性 。
有关VLAN的内容这里不再深入讨论,感兴趣的同学可参考其他VLAN相关文档 。
支持VLAN的二层交换机,其二层转发和MAC地址维护方式都发生了一定的变化,下面分别讨论两种不同的MAC地址维护方式的交换机 。
2.3.2 SVL方式的二层交换机SVL(Shared VLAN Learning)方式的二层交换机在学习MAC地址并建立MAC地址表的过程中并不附加VLAN ID,或者说它的MAC地址表是为所有VLAN共享使用的 。它的二层转发基本流程如下:
(1) 根据接收到的以太网帧的源MAC信息添加或刷新MAC地址表项;
(2) 根据目的MAC信息查找MAC地址表,如果没有找到匹配项,那么在报文对应的VLAN内广播;
(3) 如果找到匹配项,但是表项对应的端口并不属于报文对应的VLAN,那么丢弃该帧;
(4) 如果找到匹配项,且表项对应的端口属于报文对应的VLAN,那么将报文转发到该端口,但是如果表项对应端口与收到以太网帧的端口相同,则丢弃该帧 。
这种类型的二层交换机转发与普通二层交换机转发基本相同,只是多了转发过程中的VLAN检查 。这样的交换机可能遇到下述问题:位于不同VLAN的主机(或网络设备)具有相同的MAC地址,由于SVL交换机所有VLAN共享一个MAC表,这样对应的MAC表项中端口就会不断的变化,而且两个VLAN的报文转发也会受到影响,这种情况如图7所示 。
文章插图
SVL二层交换示意图
上图中,VLAN 10的PC A发送给PC B的报文由于MAC地址表查找结果与VLAN不符而被丢弃了;同理,当MAC B学习到PORT 2时,VLAN 20的PC D和PC C之间的通信就会出现问题 。这样,虽然不同的主机被隔离在了不同的冲突域和广播域中,但是MAC地址却可能导致不同VLAN的通信相互影响 。
在实际应用中,SVL方式的二层交换机已经比较少见了 。
2.3.3 IVL方式的二层交换机IVL(Independent VLAN Learning)方式的交换机在学习MAC地址并建立MAC地址表的过程中同时附加VLAN ID,同一个MAC地址可以出现在不同的VLAN中,这样的方式也可以理解为每个VLAN都有自己独立的MAC地址表 。它的二层转发基本流程如下:
(1) 根据接收到的以太网帧的源MAC+VLAN-ID信息添加或刷新MAC地址表项;
(2) 根据目的MAC+VLAN-ID查找MAC地址表项,如果没有找到匹配项,那么在VLAN-ID对应的VLAN内广播;
(3) 如果能够找到匹配表项,则向表项所示的对应端口转发,但是如果表项所示端口与收到以太网帧的端口相同,则丢弃该帧 。
SVL方式交换机上可能遇到的转发问题,在IVL交换机中得以解决,如图8所示 。
推荐阅读
- 一文读懂常用开源许可证
- 抽水马桶是如何工作的?一文看懂虹吸原理
- Nginx高级篇:从原理到实战,彻底搞懂Nginx
- 交换机划分 VLAN 配置
- 根据交换机的工作原理可知,交换机可以多个端口对之间的数据传输
- 一文讲弄懂什么是vlan、三层交换机、网关、子网掩码
- 路由交换技术—VLAN原理及配置
- 交换机与路由器的区别
- 8分钟带你深入浅出搞懂Nginx
- 一文教您如何实现持续集成服务器环境搭建