数通知识梳理(三)
回顾数通知识:
三、VLAN
1.VLAN的背景
上节说过,当交换机收到BUM帧后就会进行泛洪,但如果一个广播域过大就会产生网络安全问题和垃圾流量问题,所以就需要隔离广播域,一共有两种方式:
①路由器:可以连接不同的广播域,虽然是最简单的方法,但因为路由器太贵,且不灵活。所以一般是用VLAN来隔离广播域。
②VLAN:相当于在一台交换机里虚拟出多台小交换机,并且它们之间是相互隔离的。
2.VLAN的划分
一共有五种方式:

①基于接口:这是最常见的方法,通过在接口上设置一个PVID,PVID也叫端口的VlanID,默认值为1。当设置好一个接口的PVID值以后,交换机就将该接口以后收到的数据帧打上对应的PVID值。
例如:

②基于Mac地址:不管从哪个接口进来,只要发现你的MAC地址跟提前设好的MAC地址与VLAN之间的映射关系是同一个,就打上对应的PVID。
③基于IP子网划分:不管从哪个接口进来,只要发现你的IP地址跟提前设好的IP地址与VLAN之间的映射关系是同一个,就打上对应的PVID。
注意:只有当交换机的一个接口下连接了多台PC才会用到。
④基于协议划分:不管从哪个接口进来,只要发现你的协议跟提前设好的协议与VLAN之间的映射关系是同一个,就打上对应的PVID。
⑤基于策略划分:不管从哪个接口进来,只要发现你的策略跟提前设好的策略与VLAN之间的映射关系是同一个,就打上对应的PVID。
注意:2,3,4的接口类型必须是hybrid!!因为它们的本质是基于流划分,属于动态多变的,而Hybrid接口通过其多VLAN归属和精细的标签控制能力,刚好满足该需求。
3.VLAN数据帧

Vlan数据帧会在原以太网帧上的源Mac地址和类型值之间增加新的四个字节。
①.TPID,作用是告诉交换机这个数据帧打了VLAN标签,取值为0x8100固定死了。
②.PRI,用来给数据包划分优先级,因为在一个网络中肯定会有某些数据帧需要被优先转发,所以就可以进行分类标记,让某个数据帧优先转发。
③CFI,默认为0。
④VLAN ID,标识该帧所属的VLAN,有效取值为1-4094,因为vlan id为12bit但是没用0和4095,所以是1-4094。
4.交换机链路类型

①access:用来连接终端或傻瓜交换机,例如电脑,打印机,监控等。一次只能收发一个VLAN,但是发送的数据帧都不带标签。
②trunk:用于连接交换机或服务器,一次可以收发多个VLAN,但是只能设置一个VLAN不带标签转发。
注意:有且只有vlan1在发送时可以不带标签转发。
③hybrid:功能更强大,更灵活,适用于各种场景。跟trunk一样也可以同时收发多个VLAN,跟trunk不一样的是可以设置多个VLAN不带标签转发。
5.每种链路的转发规则
①Access接收:
收到Untagged帧:先接收,再打上对应标签。
收到Tagged帧:先看Vlan id跟PVid是否相同,相同就接收,不相同就丢弃。
Access发送:看Pvid和Vlan id是否相同,只有相同的才会发送,并剥离标签进行转发。
②Trunk:

核心在于判断数据帧的Pvid、Vlan id是否在接口允许通过的Vlan列表当中。
Trunk接收:
收到Untagged帧:先打上对应PVID,判断数据帧的Pvid是否在接口允许通过的Vlan列表当中,在的话才会接收,否则直接丢弃。
收到Tagged帧:判断数据帧的Pvid是否在接口允许通过的Vlan列表当中,在的话才会接收,否则直接丢弃。
Trunk发送:先判断数据帧的Pvid是否在接口允许通过的Vlan列表当中,在的话继续判断PVID和VLAN是否相同,相同的话就剥离标签转发,否则携带标签转发。
注意:发送时如果VLAN ID和PVID相同则像Access那样剥离标签,不同才会带标签转发。
③Hybrid:
接收:跟Trunk一样。
发送:
先判断Vlanid是否在接口允许通过的Vlan列表当中,不在则直接丢弃;在的话就看属于哪个列表:
Vlanid在Untagged列表中,剥离标签发送;
Vlanid在Tagged中,带标签直接发送;
总结:

为什么要判断是untagged发送还是tagged:
在access里是发送untagged帧,因为pc是不知道vlan的,并不会处理带标签的数据帧,所以数据帧是untagged。
然后在trunk里是发送tagged帧,因为只有这样对端交换机才能根据vlan id知道数据属于什么vlan。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)