交换机VLAN研究
这两天在研究openWRT的网络接口问题,涉及到了交换机的一些概念,主要是跟VLAN相关的,在此总结一下。
VLAN在802.11Q中定义,802.11Q帧格式如下图所示:

交换机示意图如下图所示:

交换机的端口有三种类型,access,trunk,hybrid(其实应该还有一种模式,透传模式,在此不做研究)。
- access端口用于连接终端设备,比如电脑,因为终端设备是无法处理802.1Q数据帧的,因此进出access端口的报文都必须是没有vlan标记的(其实进入access端口的报文好像也可以有TAG,只要与端口的PVID相同就可以,这种情况下报文会原封不动地进入到交换机内部)。
- trunk端口用于连接交换机与交换机之间(可能也可以是路由器),主要用于设备与设备之间的互连。
- hybrid端口相当于access与trunk的合体,既可以连接终端设备,也可以连接交换机。
不同的VLAN使用不同的VID(VLAN ID)区分,交换机的VID有两种类型:
- 普通VID,即Vlan ID,用于区分不同的VLAN。
- PVID(Port-base Vlan ID),不同厂商的叫法不一样,也有叫Native VLAN ID的,与普通VID有本质区别,这是一个端口的属性,一般初始状态下所有端口的初始PVID都是1。
对于hybrid端口,还有一个特别的概念,叫tagged端口和untagged端口,用于规定从交换机是否去掉离开的报文的TAG。这是对端口所属于的VID的一个概念,同一个物理端口中可能对于VID1是tagged端口,但是对于VID2却是untagged端口。
- tagged端口,报文离开交换机时不去掉TAG。
- untagged,离开的报文带有的TAG为untagged VID时,报文离开交换机时去掉该TAG。
access端口只属于一个VLAN,即对应该端口的PVID的VLAN,而trunk与hybrid端口可以同时在多个VLAN中,称为VID组。
无论原始报文是否有VID,进入到交换机内部的报文一定是有TAG的。而从交换机出去的包根据端口设置的不同,可能有、也可能没有TAG。
下面总结一下交换机对进出的报文的VLAN TAG的处理。
对于进入到交换机内部的数据包,只需要区分access端口与非access端口,我们认为access端口的VID组中只有一个VID,值等于PVDI。
- 当报文没有TAG时,则打上端口的PVID后进入交换机内部。
- 当报文有TAG时,如果该TAG在VID组中(注意access端口的VID组中值有PVID),则允许报文原封不动地进入交换机,否则丢弃该报文。
对于离开交换机的报文,需要分别对待access,trunk与hybrid端口。
- access端口,如果报文的TAG等于端口PVID,则去掉TAG后发送出去,否则丢弃该报文。
- trunk口,如果报文的TAG等于端口PVID,则去掉TAG后发送出去,如果不等于端口的PVID,但是在端口的VID组中,则将报文原封不动地发送出去,否则丢弃该报文。
- hybrid端口,与trunk端口基本相同,唯一的不同是,每一个VID可以设置为tagged或者是untagged,如果报文的TAG为某一个被设置为untagged的VID时,则去掉TAG后再发送出去。
本人不是交换机职业玩家,如有错误,请大家指出。还有,我的手工画是不是很萌!
交换机VLAN研究的更多相关文章
- 交换机VLAN、 TRUNK 、VTP 配置
交换机VLAN. TRUNK .VTP 配置 1. 配置 CISCO 二层交换机的IP 地址(catalyst 2950 为例) SW1(config)#int vlan 1 //进入管理接口inte ...
- Trunk 实现跨交换机 VLAN 通信
当网络中有多台交换机时,位于不同交换机上的相同VLAN的主机之间时如何通信的呢?我们使用Trunk实现跨交换机VLAN通信.还有以太网通道的操作哦. 实验拓扑 两台交换机直连,每台下面再连接两台VPC ...
- Cisco基础(二):三层交换vlan间通信、多交换机vlan间通信、三层交换配置路由、RIP动态路由配置、三层交换配置RIP动态路由
一.三层交换vlan间通信 目标: VLAN实现了广播域的隔离,同时也将VLAN间的通信隔离了.三层交换技术使得VLAN间可以通信. 通过三层交换实现VLAN间通信 方案: 为了解决了传统路由器低速. ...
- 【培训】交换机VLAN
为了解决用交换机做LAN互联无法限制广播的问题,出现了VLAN技术,把一个LAN划分为多个逻辑的“LAN”-VLAN. VLAN技术将一个物理的LAN逻辑地划分为不同的广播域,每一个VLAN包含一组有 ...
- 设置跨交换机VLAN
4台计算机,pc1 pc2 连接到交换机1的f1/1和f1/2.Pc3 pc4 连接到交换机2的f1/1和f1/2.pc1设置ip地址192.168.1.10,pc2 pc3 pc4设置ip地址192 ...
- 交换机VLAN的定义、意义以及划分方式
什么是VLAN 虚拟网技术(VLAN,Virtual Local Area Network)的诞生主要源于广播.广播在网络中起着非常重要的作用,如发现新设备.调整网络路径.IP地址租赁等等,许多网络协 ...
- 对交换机VLAN及各种端口类型的理解
每学习一种技术时,我们往往需要去了解why,即这个技术是为解决什么问题而出现的. VLAN全称为Virtual Local Area Network,即虚拟局域网,是逻辑上的一种划分.一般来说,如果交 ...
- H3C S5024P交换机 vlan实验
H3C S5024P交换机第二次vlan实验 实验1 与交换机端口G0/1和G0/2相连的PC1与PC2属于VLAN 1,与G0/3和G0/4相连的PC3和PC4属于VLAN 2,PC1.PC2.PC ...
- 跨交换机VLAN之间的通信(基于Cisco模拟器)
实验要求: 拓扑结构如下 1.交换机2台:主机4台:网线若干. 2.把主机.交换机进行互联. 3.给2台交换机重命名为A.B. 4.设置2台交换机及主机的ip.注意IP要不冲突 5.在2台交换机上分别 ...
随机推荐
- FAQ:Python 断点调试
Python程序调试:断点调试是必须有的功能,以Pycharm开发工具为例: 一.理论知识: 1. step into(F7)就是单步执行,遇到子函数就进入并且继续单步执行: 2 step over ...
- 解密电子书之二:EPD控制芯片
EPD控制芯片大致上相当于计算机的显卡,没了它,所有电子书都变白板.类似显卡中的ATI与NVIDIA,EPD控制芯片中也是两家:Surf(泰信科)和EPSON(爱普生),其中爱普生是最早推出电子纸显示 ...
- c++多线程编程之互斥对象(锁)的使用之----死锁
一.死锁会在什么情况发生 1.假设有如下代码 mutex; //代表一个全局互斥对象 void A() { mutex.lock(); //这里操作共享数据 B(); //这里调用B方法 mu ...
- BigDecimal类的简单使用方法
一提到Java里面的商业计算,我们都知道不能用float和double,由于他们无法进行精确计算.可是Java的设计者给编程人员提供了一个非常实用的类BigDecimal,他能够完好float和dou ...
- c#高级语言编程(第一部分)
1.一步一步学c#(一):.NET体系结构 2.一步一步学c#(二):核心c# 3.一步一步学c#(三):对象和类型 4.一步一步学c#(四):继承 5.一步一步学c#(五):泛型 6.一步一步学c# ...
- JS 严格模式
标志 "use strict"; //老版本浏览器会自动忽略 调用 //整个文件调用 (function(){ "use strict"; })(); //单个 ...
- sql获取表字段名、描述和类型
SELECT TableName = OBJECT_NAME(c.object_id), ColumnsName = c.name, Description = ex.value, ColumnTyp ...
- Duff 装置中case情况越多性能越好
猜想:Duff装置再循环里面,直接调用的方法越多(也就是case的数量比较多),性能相对越好 ???!!! 我们基于Duff装置来做进一步的测试. 然后分别添加两个新的函数,一个函数式 case有4种 ...
- apache+mysql+php环境的手动搭建
一.搭建Apache Http Server 官方下载地址:http://www.apachehaus.com/cgi-bin/download.plx 搭建环境:win10 64位 WIN10 64 ...
- BZOJ 3110: [Zjoi2013]K大数查询( 树状数组套主席树 )
BIT+(可持久化)权值线段树, 用到了BIT的差分技巧. 时间复杂度O(Nlog^2(N)) ---------------------------------------------------- ...