华为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. 结论 💯小结 💯…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
