华为HCIP —— QinQ技术实验配置
一、QinQ的概述
1.1QinQ的概念
QinQ(802.1Q in 802.1Q)技术是一项扩展VLAN空间的技术,通过在原有的802.1Q报文基础上再增加一层802.1Q的Tag来实现。
1.2QinQ封装结构
QinQ封装报文是在无标签的以太网数据帧的源MAC地址字段后面加上两个VLAN标签构成。如图所示

1.3QinQ封装类型分两种
- 基本QinQ:基于接口的QinQ封装,进入一个接口的所有流量全部封装一个相同的外层VLAN tag。这种方式也称为基本QinQ或者QinQ隧道。
- 灵活QinQ:可根据流分类的结果是否外层VLAN Tag,打上何种外层VLAN Tag。灵活QinQ可根据用户的VLAN 标签、优先级、MAC地址、IP协议、IP源地址、IP目的地址、或应用程序的端口号进行分流分类。
灵活QinQ功能是对基本QinQ功能的扩展,他比基本QinQ的功能更灵活。二者之间的主要区别是:
基本QinQ:对进行二层QinQ接口的所有帧都加上相同的外层Tag。
灵活QinQ:对进行二层QinQ接口的帧,可以根据不同的内层Tag二加上不同的外层Tag,对于用户VLAN的划分更加细致。
1.4QinQ的工作原理
QinQ技术的工作原理主要通过数据封装、数据传输和数据解封三个阶段来实现的
- 数据封装:在原始802.1Q报文的基础上,在增加一层802.1Q的标签,形成所谓的双层标签。将用户的私网VLAN Tag封装在公网网络VLAN Tag中,使双层VLAN Tag的报文穿越运营商的骨干网(公网)
数据传输:设备在装法使依据外层标签决定流量路径,二内层标签则用于区分不同的用户或者业务。
数据解封装:报文离开运营商网络前会撕掉公网VLAN Tag,使之还原为原始的私网报文,发送至另一侧用户网络。
二、QinQ的实验
2.1实验拓扑图

2.2实验目的:
掌握灵活qinq和基本qinq的配置
2.3实验要求:
1. 配置公司A和公司B的私有网络,创建对应的vlan,并且接口的链路类型
2. 在公网设备配置公网vlan,并且配置qinq
3. 配置公网设备互联端口的链路类型,放行公网vlan流量通过
4. 测试PC1和PC2 、PC5和PC6、PC3和PC4的连通性,并且在S1的G0/0/2口抓包
2.4实验步骤:
(1)配置PC1-PC5的IP地址
| 设备名称 | IP地址/子网掩码 | 私网所属VLAN |
| PC1 | 10.1.1.1/24 | VLAN 10 |
| PC2 | 10.1.1.2/24 | VLAN 10 |
| PC3 | 10.1.1.3/24 | VLAN 20 |
| PC4 | 10.1.1.4/24 | VLAN 20 |
| PC5 | 10.1.1.5/24 | VLAN 10 |
| PC6 | 10.1.1.6/24 | VLAN 10 |
(2)配置公司A、公司B的私有网络,创建对应的VLAN,并配置接口的链路类型
LSW3
[LSW3]vlan batch 10 20[LSW3]int g0/0/2[LSW3-GigabitEthernet0/0/2]port link-type access[LSW3-GigabitEthernet0/0/2]port default vlan 10[LSW3-GigabitEthernet0/0/2]q[LSW3]int g0/0/3[LSW3-GigabitEthernet0/0/3]port link-type access[LSW3-GigabitEthernet0/0/3]port default vlan 20[LSW3-GigabitEthernet0/0/3]q[LSW3]int g0/0/1[LSW3-GigabitEthernet0/0/1]port link-type trunk[LSW3-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20[LSW3-GigabitEthernet0/0/1]q[LSW3]q
LSW4
[LSW4]vlan batch 10 20[LSW4]int g0/0/2[LSW4-GigabitEthernet0/0/2]port link-type access[LSW4-GigabitEthernet0/0/2]port default vlan 10[LSW4-GigabitEthernet0/0/2]q[LSW4]int g0/0/3[LSW4-GigabitEthernet0/0/3]port link-type access[LSW4-GigabitEthernet0/0/3]port default vlan 20[LSW4-GigabitEthernet0/0/3]q[LSW4]int g0/0/1[LSW4-GigabitEthernet0/0/1]port link-type trunk[LSW4-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20[LSW4-GigabitEthernet0/0/1]q[LSW4]q
LSW5
[LSW5]vlan 10[LSW5-vlan10]q[LSW5]int g0/0/2[LSW5-GigabitEthernet0/0/2]port link-type access[LSW5-GigabitEthernet0/0/2]port default vlan 10[LSW5-GigabitEthernet0/0/2]q[LSW5]int g0/0/1[LSW5-GigabitEthernet0/0/1]port link-type trunk[LSW5-GigabitEthernet0/0/1]port trunk allow-pass vlan 10[LSW5-GigabitEthernet0/0/1]q[LSW5]
LSW6
[LSW6]vlan 10[LSW6-vlan10]q[LSW6]int g0/0/2[LSW6-GigabitEthernet0/0/2]port link-type access[LSW6-GigabitEthernet0/0/2]port default vlan 10[LSW6-GigabitEthernet0/0/2]q[LSW6]int g0/0/1[LSW6-GigabitEthernet0/0/1]port link-type trunk[LSW6-GigabitEthernet0/0/1]port trunk allow-pass vlan 10[LSW6-GigabitEthernet0/0/1]q
(3)在 公司设备配置公网VLAN 并配置QinQ。
LSW1
[LSW1]vlan batch 2 3 4[LSW1]int g0/0/1[LSW1-GigabitEthernet0/0/1]port link-type hybrid[LSW1-GigabitEthernet0/0/1]port hybrid untagged vlan 2 3[LSW1-GigabitEthernet0/0/1]qinq vlan-translation enable[LSW1-GigabitEthernet0/0/1]port vlan-stacking vlan 10 stack-vlan 2[LSW1-GigabitEthernet0/0/1]port vlan-stacking vlan 20 stack-vlan 3[LSW1-GigabitEthernet0/0/1]q[LSW1]int g0/0/3[LSW1-GigabitEthernet0/0/3]port link-type do[LSW1-GigabitEthernet0/0/3]port link-type dot1q-tunnel[LSW1-GigabitEthernet0/0/3]port default vlan 4[LSW1-GigabitEthernet0/0/3]q[LSW1]q
LSW2
[LSW2]vlan batch 2 3 4[LSW2]int g0/0/1[LSW2-GigabitEthernet0/0/1]port link-type hybrid[LSW2-GigabitEthernet0/0/1]port hybrid untagged vlan 2 3[LSW2-GigabitEthernet0/0/1]qinq vlan-translation enable[LSW2-GigabitEthernet0/0/1]port vlan-stacking vlan 10 stack-vlan 2[LSW2-GigabitEthernet0/0/1]port vlan-stacking vlan 20 stack-vlan 3[LSW2-GigabitEthernet0/0/1]q[LSW2]int g0/0/3[LSW2-GigabitEthernet0/0/3]port link-type dot1q-tunnel[LSW2-GigabitEthernet0/0/3]port default vlan 4[LSW2-GigabitEthernet0/0/3]q[LSW2]q
(4)配置公网设备互联网端口的链路类型,放行公网VLAN 流量通过
LSW1
[LSW1]int g0/0/2[LSW1-GigabitEthernet0/0/2]port link-type trunk[LSW1-GigabitEthernet0/0/2]port trunk allow-pass vlan 2 3 4[LSW1-GigabitEthernet0/0/2]q[LSW1]q
LSW2
[LSW2]int g0/0/2[LSW2-GigabitEthernet0/0/2]port link-type trunk[LSW2-GigabitEthernet0/0/2]port trunk allow-pass vlan 2 3 4[LSW2-GigabitEthernet0/0/2]q[LSW2]q
(5)测试PC1访问PC2、PC5访问PC5、PC3访问PC4,并在LSW1的G0/0/2接口进行抓包。
测试PC1和PC2的连通性


查看抓包,可以看到外层标签为2 (公网VLAN的标签)、内层标签为10(私网VLAN的标签),说明灵活QinQ实现了将不同的私网VLAN映射到不同的公网VLAN 上。
测试PC5和PC6的连通性


查看抓包,可以看到外层标签为3 (公网VLAN的标签)、内层标签为20(私网VLAN的标签),说明灵活QinQ实现了将不同的私网VLAN映射到不同的公网VLAN 上。
测试PC3和PC4的连通性


查看抓包,可以看到外层标签为4 (公网VLAN的标签)、内层标签为10(私网VLAN的标签),说明基本QinQ无论内层标签时多少,映射是外层标签都是固定的同一个。
三、总结
通过实验,成功实现了QinQ技术的配置和应用。不同用户网络中的设备能够通过运营商网络进行通信,且保持了用户网络的独立性。同时,通过VLAN透传功能、BPDU透明传输和VLAN Mapping等高级功能,进一步满足了复杂网络环境下的业务需求。通过实验,还认识到QinQ技术在扩展VLAN空间、实现业务隔离与传输等方面的重要性,为未来在复杂网络环境中部署和应用QinQ技术打下了坚实的基础。
相关文章:
华为HCIP —— QinQ技术实验配置
一、QinQ的概述 1.1QinQ的概念 QinQ(802.1Q in 802.1Q)技术是一项扩展VLAN空间的技术,通过在原有的802.1Q报文基础上再增加一层802.1Q的Tag来实现。 1.2QinQ封装结构 QinQ封装报文是在无标签的以太网数据帧的源MAC地址字段后面加上两个VL…...
全网最简单的GraphRAG讲解,包你懂
一、什么是 GraphRAG? GraphRAG(基于图的检索增强生成)是在传统 RAG 方法的基础上,引入了图数据结构的新型方法。它利用大语言模型的强大自然语言理解能力,从非结构化文本中抽取实体和关系,构建知识图谱&a…...
rust 压缩解压库flate2保姆级教程
前言 flate2 是 Rust 中用于处理 gzip 和其他压缩格式的库。以下是 flate2 的主要 API 和用法说明。 依赖添加 在你的 Cargo.toml 中添加依赖: [dependencies] flate2 "1.0.34"主要模块 flate2::write:用于压缩数据的写入器。flate2::re…...
秒杀优化(异步秒杀,基于redis-stream实现消息队列)
目录 秒杀优化一:异步秒杀1:思路2:实现 二:redis实现消息队列1:什么是消息队列2:基于list结构实现消息队列3:基于pubsub实现消息队列4:基于stream实现消息队列5:stream的…...
Node.js——fs模块-文件读取
1、文件读取:通过程序从文件中去除其中的数据 2、方法 方法 说明 readFile 异步读取 readFileSync 同步读取 createReadStrean 流式读取 3、readFile 异步读取 语法: 本文的分享到此结束,欢迎大家评论区一同讨论学习,下一…...
深入理解 ZooKeeper:分布式协调服务的核心与应用
一、引言 随着互联网技术的飞速发展,分布式系统的规模和复杂性不断增加。在分布式环境中,各个节点之间需要进行高效的协调和通信,以确保系统的正常运行。ZooKeeper 正是为了解决分布式系统中的协调问题而诞生的一款开源软件。它提供了一种简单…...
你竟然还不了解 LDAP?
目录 什么是 LDAP LDAP 的工作原理 LDAP 的数据模型 LDAP 操作 LDAP 的使用场景 常见的 LDAP 服务器 小结 什么是 LDAP LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是用于访问和管理目录服务的一种开放协议&…...
宝塔使用clickhouse踩坑
前言 最近有个物联网项目,需要存储物联网终端发送过来的信息(类似log日志,但又要存储在数据库里,方便后期聚合统计),本来想写文件的奈何客户要求聚合统计,所以只能用数据库才能达到更高的计算效…...
Linux命令学习记录
ls 查看文件资源,ls [选项] [路径] ls ls [单个选项] ls [组合选项],选项的组合与顺序无关 ls --help 查看更多命令参数 clear 清屏 cd 更换工作目录,cd [路径] cd [特殊路径符] . 表示当前目录 .. …...
一般无人机和FPV无人机的区别
文章目录 一般无人机的工作原理关键组件:一般无人机的应用领域一般无人机的操控体验 FPV无人机的工作原理关键组件:FPV无人机的应用领域FPV无人机的操控体验性能特点FPV无人机的性能特点 未来无人机发展方向和通信方式拓展 一般无人机的工作原理 一般无…...
数据结构初阶排序全解
目录 1>>排序前言 2>>插入排序 2.1>>直接插入排序 2.2>>希尔排序 3>>选择排序 3.1>>直接选择排序 3.2>>堆排序 4>>交换排序 4.1冒泡排序 4.2快速排序 5>>归并排序 6>>测试 test.c sort.h sort.c 7…...
MySQL的SQL语句之触发器的创建和应用
触发器 Trigger 一.触发器 作用:当检测到某种数据表发生数据变化时,自动执行操作,保证数据的完整性,保证数据的一致性。 1.创建一个触发器 如上图所示,查看这个create的帮助信息的时候,这个create trig…...
myWebserver 介绍
项目总结 项目准备过程中,主要阅读了《Linux 高性能服务器编程》游双 一书。源码参考的是:TinyWebServer,我在此源码的基础上做了一定的优化和修改。 我的代码:Github: myWebserver: 我的C服务器项目 我的 Webserver 项目总结&…...
钉钉平台开发小程序
一、下载小程序开发者工具 官网地址:小程序开发工具 - 钉钉开放平台 客户端类型 下载链接 MacOS x64 https://ur.alipay.com/volans-demo_MiniProgramStudio-x64.dmg MacOS arm64 https://ur.alipay.com/volans-demo_MiniProgramStudio-arm64.dmg Windows ht…...
九识智能与徐工汽车达成战略合作,共绘商用车未来新蓝图
近日,九识智能与徐工汽车签署战略合作协议,标志着双方在智能驾驶技术与新能源商用车融合应用、联合生产及市场推广等方面迈入深度合作的新篇章,将共同引领智能驾驶技术商业化浪潮。 近年来,在国家智能化发展战略的引领下ÿ…...
Serverless + AI 让应用开发更简单
本文整理自 2024 云栖大会,阿里云智能高级技术专家,史明伟演讲议题《Serverless AI 让应用开发更简单》 随着云计算和人工智能(AI)技术的飞速发展,企业对于高效、灵活且成本效益高的解决方案的需求日益增长。本文旨在…...
外包功能测试就干了4周,技术退步太明显了。。。。。
先说一下自己的情况,大专生,21年通过校招进入武汉某软件公司,干了差不多3个星期的功能测试,那年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我才在一个外包企业干了4周的功…...
外观模式及运用场景
外观模式(Facade Pattern)是一种结构性设计模式,它为复杂子系统提供一个统一的接口,从而简化与这些子系统的交互。通过外观模式,客户端可以更轻松地使用复杂系统,而不必了解其内部实现。接下来,…...
PyQt5实战——多脚本集合包,UI以及工程布局(二)
个人博客:苏三有春的博客 系列往期: PyQt5实战——多脚本集合包,前言与环境配置(一) 布局 2.1 UI页面布局 整体框架分为分为三个部分,垂直分布。 第一个部分为功能选择按钮(如UTF-8转换&#…...
Python 数据结构对比:列表与数组的选择指南
文章目录 💯前言💯Python中的列表(list)和数组(array)的详细对比1. 数据类型的灵活性2. 性能与效率3. 功能与操作4. 使用场景5. 数据结构选择的考量6. 实际应用案例7. 结论 💯小结 💯…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
