网络工程知识(二)VLAN的基础和配置:802.1q帧;Access、Trunk、Hybrid接口工作模式过程与配置;VLANIF的小实验
介绍-VLAN
VLAN(Virtual Local Area Network)即虚拟局域网,工作在数据链路层。
交换机将通过:接口、MAC、基于子网、协议划分(IPv4和IPv6)、基于策略的方式划分VLAN的方式,将接入的设备进行划分。
- 目的:
- VLAN 可以将同一个物理网络划分为多个逻辑网段,从而减小广播域,节约交换机性能,抑制网络风暴。
- VLAN之间无法二层互通,可以隔离业务,增强网络安全性。
以太网报文
- 在交换机中以太网(EtherNet)有untag和tag两种报文。untag帧即终端可以识别的普通以太网帧。tag帧在源mac地址(SA)和帧负载(Frame Load)之间有一段4Byte的Tag字段。
| 帧 | 特点 |
| Ethernet帧 | untag,一般指端设备可识别 |
| 802.1q帧 | 在Ethernet帧的基础上加上Tag字段,一般用于交换机之间 |

图1.802.1q帧tag示意图
- 这个Tag字段中主要内容是VLAN ID,保存着VLAN。
- VLAN ID占用12bit,可以记录到4096个数字,去除全0和全1的情况,所以VLAN范围为1-4094。
- CFI占用1bit,0代表以太网,1代表令牌环网(Token Ring)。
PIVD和三种vlan接口工作模式
因为tag的存在,交换机可以识别选择性处理数据帧,但是终端设备是无法正常的识别tag,所以交换机需要为出入端口的数据帧进行处理。
可以这样理解,交换机之间使用含tag的语言交流,终端只懂untag语言,所以需要端口承担不同的工作模式。
PVID
PVID(Port Default VLAN ID)指的是端口缺省VLAN(端口默认VLAN ID),在实际上配置中,我们实际上是给端口配置pvid,pvid可以理解就是这个接口要处理端口的一个参数,在处理报文时候需要使用。
ps:这里的收发是站在交换机的角度出发,即入接口为交换机收,同理出接口为交换机发。发的时候交换机不会检查是否是tag帧还是untag帧,因为从交换机cpu处理过的都是tag帧。
ps:一下简化一下,untag帧即为标准的以太网帧,tag帧为带有vlan的802.1q帧。
Access接口:
- 用于交换机连接终端设备,在配置交换机的时候只需要配置port default vlan id即pvid,用于生成vlan id为tag的,不涉及allowed list和tag list、untag list。
- 收:
- untag帧,打上端口pvid后接收;
- tag帧(话说应该是接错了到交换机),看vlan id是否等于pvid,相同则接受,不相同就丢弃
- 发:
- 将帧中tag字段剔除后发送。
[alittlemcSW]interface GigabitEthernet 0/0/1
[alittlemcSW-GigabitEthernet0/0/1]port link-type access
[alittlemcSW-GigabitEthernet0/0/1]port default vlan 10
Trunk接口:
- 用于交换机之间的级联。trunk可以设置多个可以通过的vlan id或范围,即allow-pass list。
- 收:
- untag帧,打上pvid,后转发;
- tag帧,判断vlan id是否是为allow-pass list中允许的vlan id,允许则接收,否则丢弃。
- 比较帧vlan id和端口pvid是否相同,相同则去掉tag发送,不相同直接发送。
发(必是tag帧):
[alittlemcSW]interface GigabitEthernet 0/0/2
[alittlemcSW-GigabitEthernet0/0/2]port link-type trunk
[alittlemcSW-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[alittlemcSW-GigabitEthernet0/0/2]port trunk pvid vlan 10
Hybrid接口:
注意,Hybrid为华为专有的接口,所以思科锐捷这些是没有的哦,而且默认华为交换机就默认使用此模式。
- 兼容了access和trunk的特点,接在交换机或终端均可。
- 收(其实是和Trunk的接收操作是一样的):
- untag帧,打上pvid,后转发;
- tag帧,判断vlan id是否是为tag list(和trunk中allow-pass list效果一致)中允许的vlan id,允许则接收,否则丢弃。
- 发(在hybrid中有tagged list和untagged list):
- 检查tag帧中的vlan id,属于tag list,直接转发;属于untag list中则剔除tag帧的tag后变为untag帧转发。
[alittlemcSW]interface GigabitEthernet0/0/3
[alittlemcSW-GigabitEthernet0/0/3]port hybrid pvid vlan 10
[alittlemcSW-GigabitEthernet0/0/3]port hybrid tagged vlan 20 30 #允许带vlan20 30的tag直接通过,对应trunk模式
[alittlemcSW-GigabitEthernet0/0/3]port hybrid untagged vlan 10 100 200 #发送时将vlan10 100 200的tag字段剔除,对应access模式
- hybrid和trunk模式其实很相似,在收时候一致。在发时候,因为pvid只有一个,hybrid允许untagged list中多个vlan id帧直接剔除tag发送,而trunk只会对和pvid相同的vlan id帧剔除tag发送。
VLAN IF
vlan if是交换机虚拟出来的三层接口,可以设置ip,每一个vlan对应一个vlan if,主要用作为vlan网关。我们需要通过网络层的路由从而实现不同之间vlan之间数据互访。 同时也可以实现同vlan不同子网的互访。
众所周知,不同vlan可以使用网络层来实现通信,不同网段使用网关的路由来通信。基于此,我整理了两个实验。
使用vlanif IP作为用户网关的情况下都可以实现不同子网、不同VLAN通信。
同vlan不同子网通讯
vlanif甚至可以和路由器ip一样很方便的使用:同VLAN下不同网段之间路由,比如某个项目由不同公司负责,一期项目使用了10.10.10.0/24网段、二期使用10.10.20.0/24网段。

图2.拓扑1
#将1,2,3端口都划分到vlan10 access
[alittlemcSW]port-group group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/3
[alittlemcSW-port-group]port link-type access
[alittlemcSW-port-group]port default vlan 10
直接设置vlanif sub
[alittlemcSW]interface vlanif 10
[alittlemcSW-Vlanif10]ip address 10.10.10.254 24
[alittlemcSW-Vlanif10]ip adderss 10.10.20.254 24 sub
[alittlemcSW-Vlanif10]ip adderss 10.10.31.254 22 sub
不同VLAN通信子网使用
基于上次的实验微调了一下,不同vlan之间的通信的原理也包含其中啦,只要配置了vlanif,vlanif都在本机内可以直同路由。

图3.拓扑2
直接上配置。
#
interface Vlanif10
ip address 10.10.10.254 255.255.255.0
ip address 10.10.31.254 255.255.252.0 sub
#
interface Vlanif20
ip address 10.10.20.254 255.255.255.0
#
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 10
#
如果是不同的交换机之间,配置是一样的,只不过要注意配置静态路由即可。
其他
QinQ
QinQ(802.1Q in 802.1Q)也被称之为VLAN Stacking或Double VLAN。(详细可见什么是QinQ? 为什么需要QinQ? - 华为 (huawei.com))
我们的802.1q帧多了4Byte用于存放Tag,其中VLAN ID占用12bit,即vlan id的范围1到4064。但是某些情况下一个需要大量的vlan就可能不够用,QinQ在以太网帧中插入了两段tag信息,即可以实现存储4064x4064个vlan的效果。

图4.QinQ
更新日志
- 2022年10月21日19:22:40
- 完成了vlan的介绍、三种接口模式、vlanif的应用
- 预告-后面会更新vlan的划分->接口、MAC、基于子网、协议划分(IPv4和IPv6)、基于策略的方式划分VLAN的方式
网络工程知识(二)VLAN的基础和配置:802.1q帧;Access、Trunk、Hybrid接口工作模式过程与配置;VLANIF的小实验的更多相关文章
- 如何在centos上配置802.1Q VLAN标记,linux单网卡多vlan多网段Ip配置案例
介绍 VLAN使将大型网络分成较小且易于管理的网络成为可能.802.1Q是所有供应商都在其网络设备中实施的标准.某些交换机能够将多个VLAN分配给单个网络端口.使用此功能,您可以将多个VLAN分配给单 ...
- java 网络编程(二)----UDP基础级的示例
下面介绍UDP基础级的代码示例: 首先了解创建UDP传输的发送端的思路: 1.创建UDP的Socket服务.2.将要发送的数据封装到数据包中.3.通过UDP的socket服务将数据包发送出去.4.关闭 ...
- 工程师技术(二):postfix基础邮件服务、postfix空客户端邮件服务、搭建mariadb数据库系统、配置一个数据库、使用数据库查询
一.postfix基础邮件服务 目标: 本例要求在虚拟机server0上配置 postfix 基础服务,具体要求如下: 1> 监听本机的所有接口 2> 将邮件域和邮件服务主机名都改为 ...
- vlan 以及 Linux实现的IEEE 802.1Q VLAN
vlan 以及 Linux实现的IEEE 802.1Q VLAN Vlan的概念 VLAN技术介绍 VLANVLAN概述 以太网是一种基于CSMA/CD(Carrier Sense Multiple ...
- 802.1Q VLAN技术原理
文章出处:http://hi.baidu.com/x278384/item/d56b0edfd4f56a4eddf9be79 在数据通信和宽带接入设备里,只要涉及到二层技术的,就会遇到VLAN.而且, ...
- (VLAN)理解Hybrid接口的应用
实验三:理解Hybrid接口的应用 实验原理: 实验内容: 某企业二层网络使用两台S3700交换机S1和S2,且两台设备在不同的楼层.网络管理员规划了3个不同VLAN, HR部门使用VLAN 10,市 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- java 基础知识二 基本类型与运算符
java 基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...
- 菜鸟脱壳之脱壳的基础知识(二) ——DUMP的原理
菜鸟脱壳之脱壳的基础知识(二)——DUMP的原理当外壳的执行完毕后,会跳到原来的程序的入口点,即Entry Point,也可以称作OEP!当一般加密强度不是很大的壳,会在壳的末尾有一个大的跨段,跳向O ...
随机推荐
- 万答#14,xtrabackup8.0怎么恢复单表
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 实 ...
- MySQL 数据查询语句
一般查询 字段取别名 别名不用加单引号,as 可省略. select t.id ID, t.name 名称 from grade t; 拼接字符串 concat(a, b) select concat ...
- 【Go实战基础】创建并完成第一个可执行的 go 程序
实战需求:创建并完成第一个可执行的 go 程序.项目目录:go-001具体实战步骤如下: 一.进入工程目录 cd go-001/ 二. 创建 g001.go 文件 /* * @Author: 菜鸟实战 ...
- java后台生成文件给前端下载(response输出流)
1.设置 ContentType response.setContentType("application/x-download"); 2.设置文件名,并指定编码格式 fileNa ...
- web监听器解析
监听器是web三大组件之一,事件监听机制如下: 事件:某个事件,如果初始化上下文 事件源:事件发生的地方 监听器:一个对象,拥有需要执行的逻辑 注册监听:将事件.事件源.监听器绑定在一起.当事件源发生 ...
- 【NOI P模拟赛】寻找道路(bfs,最短路)
题面 一道特殊的最短路题. 给一个 n n n 个点 m m m 条有向边的图,每条边上有数字 0 \tt0 0 或 1 \tt1 1 ,定义一个路径的长度为这个路径上依次经过的边上的数字拼在一起后在 ...
- 057_末晨曦Vue技术_处理边界情况之强制更新和创建低开销的静态组件
强制更新和创建低开销的静态组件 点击打开视频讲解更加详细 强制更新 如果你发现你自己需要在 Vue 中做一次强制更新,99.9% 的情况,是你在某个地方做错了事. 你可能还没有留意到数组或对象的变更检 ...
- Elasticsearch-shell脚本实现定时删除指定时间以前索引
〇.前言 因为elastiflow的数据量还是挺大的,接入了两台交换机的flow数据量已经开始有点大了.所以得写个脚本专门来清理索引 一.如何使用elastic的API 1.手动查询所有索引 在ELK ...
- Java 多线程:线程池
Java 多线程:线程池 作者:Grey 原文地址: 博客园:Java 多线程:线程池 CSDN:Java 多线程:线程池 工作原理 线程池内部是通过队列结合线程实现的,当我们利用线程池执行任务时: ...
- 如何在JavaScript中使用高阶函数
将另一个函数作为参数的函数,或者定义一个函数作为返回值的函数,被称为高阶函数. JavaScript可以接受高阶函数.这种处理高阶函数的能力以及其他特点,使JavaScript成为非常适合函数式编程的 ...