普通交换机的二层端口有三种常见的端口类型:access、trunk、hybird,
access端口一般用作PC或服务器主机接入,通过该端口的数据包都是不带VLAN tag的;trunk端口可以允许多个VLAN的数据包通过,一般连接其他交换机;
hybird端口比较灵活,可以根据用户需求,对通过该端口的数据包进行VLAN tag打标和去标动作,可以连主机也可以连其他交换机;在开始讲解之前,请记住交换机内部的所有数据报文是有VLAN tag的,
下面我们通过分析交换机端口的进、出两个方向对VLAN tag的处理过程来详细说明这三种端口类型的区别;
access端口:
通过access端口的数据包都是不带VLAN tag的,且只属于一个VLAN;
在access端口进方向,交换机接收到数据包后,先判断是否带VLAN tag,有则丢弃数据包,没有则打上该端口已配置的VLAN tag;
在access端口出方向,交换机将打了与端口相同VLAN tag的数据包转发出去,并且去掉VLAN tag变成普通数据包。
trunk端口:
通过trunk端口的数据包都必须带上VLAN tag;
在trunk端口进方向,交换机接收到数据包后,先判断是否带VLAN tag,没有则丢弃数据包,有则按照对应VLAN进行转发;
在trunk端口出方向,交换机将带VLAN tag的数据包原封不动转发出去,没有带VLAN tag数据包不会从trunk端口转发出去。
在trunk端口上有一种特殊情况,如果配置了native VLAN(也叫PVID),转发方式等同于access端口,当从端口进来的报文不带vlan tag时,就打上Native vlan tag; 当从端口出去的报文带Native vlan tag时,会剥离TAG。
hybird端口:
顾名思义,这是一种混合端口,是access和trunk两种端口的混合,既可以转发无vlan tag报文,也可以转发有vlan tag报文;在hybird端口上通常会配置tag vlan和untag vlan,对于tag vlan,其转发方式与trunk口相同,对于untag vlan,其转发方式与access口相同;
在hybird端口进方向,交换机接收到数据包后,先判断是否带VLAN tag,没有则丢弃,如果没有vlan tag但是配置了PVID,则打上PVID的vlan tag;有则按照对应VLAN进行转发;进方向不看untag配置;
在hybird端口出方向,对于配置了tag vlan的数据包,原封不动发送出去,对于端口配置了untag vlan的数据包,则去掉vlan tag再发送出去;如果是PVID的vlan,则去掉vlan tag再发送出去;

原文链接:https://blog.csdn.net/mansky0618/article/details/100033123
网友回复
- threejs如何做个三维搭积木的游戏?
- three如何实现标记多个起始路过地点位置后选择旅行工具(飞机汽车高铁等),最后三维模拟行驶动画导出mp4?
- ai实时驱动的3d数字人可视频聊天的开源技术有吗
- swoole+phpfpm如何实现不同域名指向不同目录的多租户模式?
- 如何用go替换nginx实现请求phpfpm解析运行php脚本?
- 有没有浏览器离线运行进行各种文档、图片、视频格式转换的开源工具?
- 如何使用go语言搭建一个web防火墙?
- linux如何检测特定网络协议比如http协议中报文是否包含特点关键词并阻止返回给客户?
- 如果在nginx外过滤包含某些关键词的网页并阻止打开?
- 程序员怎么做副业赚钱?



 
				 
			 
			 
				 
			