华为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. 结论 💯小结 💯…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
