QinQ项展 VLAN 空间
随着以太网技术在网络中的大量部署,利用 VLAN 对用户进行隔离和标识受到很大限制。因为 IEEE802.1Q 中定义的 VLAN Tag 域只有 12 个比特,仅能表示 4096 个 VLAN,无法满足城域以太网中标识大量用户的需求,于是 QinQ 技术应运而生。
QinQ(8021Q in 802.10)技术是一项展 VLAN 空间的技术,通过在 802.10 标签报文的基础上再增加一层 802.10 的 Tag 来达到扩展 VLAN 空间的功能。
如下图所示用户报文在公网上传递时携带了两层 Tag,内层是私网 Tag,外层是公网 Tag

基本 QinQ

报文处理:
- sw1 收到 VLANID 为 10 和 20 的报文,将该报文发给 SW2。
- sw2 收到该报文后,在该报文原有 Tag 的外侧再添加一层 VLANID 为 100 的外层 Tag。
- 带着两层 Tag 的用户数据报文在网络中按照正常的二层转发流程进行转发数据
- sw3 收到 VLAN100 的报文后,剥离报文的外层 Tag (VLANID 为 100)。将报文发送给 Sw4,此时报文只有一层 Tag (VLANID 为 10 或 20)。
- sw4 收到该报文,根据 VLANID 和目的 MAC 地址进行相应的转发
配置:
注意:CE 往 PE 发报文时使用 trunk 接口,因为 access 发出数据时会剥离 vlan tag。
[SW1] interface GigabitEthernet 0/0/1
// 在此接口收到的数据打上vlan100的tag(此时数据有两层tag)
[SW1-GigabitEthernet0/0/1] port link-type dot1g-tunnel
[SW1 -GigabitEthernet0/0/1] port default vlan 100
// 其他接口正常配置即可
灵活 QinQ

报文处理:
- sw1 收到 VLANID 为 10 和 20 的报文,将该报文转发给 Sw2
- sw2 收到 VLANID 为 10 的报文后,添加一层 VLANID 为 100 的外层 Tag;sw2 收到 VLANID 为 20 的报文后,添加一层 VLANID 为 200 的外层 Tag。
- 带着两层 Tag 的用户数据报文在网络中按照正常的二层转发流程进行转发数据
- sw3 收到报文后,剥离报文的外层 Tag (VLANID 为 100 或 A200)。将报文发送给 SW4,此时报文只有一层 Tag (VLANID 为 10 或 20)。
- sw4 收到报文,根据 VLANID 和目的 MAC 地址进行相应的转发
配置:

[SW1] interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1] port link-type hybrid
// 接收数据时剥离外层vlan tag
[SW1-GigabitEthernet0/0/1] port hybrid untagged vlan 2 3
// 开启QinQ的vlan转换功能,配置此条命令代表使用的为灵活QinQ
[SW1-GigabitEthernet0/0/1] qinq vlan-translation enable
// 发出数据时将vlan100的数据打上外层vlan tag 2
[SW1-GigabitEthernet0/0/1] port vlan-stacking vlan 100 stack-vlan 2
[SW1-GigabitEthernet0/0/1] port vlan-stacking vlan 300 stack-vlan 3
[SW1-GigabitEthernet0/0/1] quit
[SW1] interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2] port link-type trunk
[SW1-GigabitEthernet0/0/2] port trunk allow-pass vlan 2 3
[SW1-GigabitEthernet0/0/2] qui
相关文章:
QinQ项展 VLAN 空间
随着以太网技术在网络中的大量部署,利用 VLAN 对用户进行隔离和标识受到很大限制。因为 IEEE802.1Q 中定义的 VLAN Tag 域只有 12 个比特,仅能表示 4096 个 VLAN,无法满足城域以太网中标识大量用户的需求,于是 QinQ 技术应运而生。…...
数据结构—树(java实现)
目录 一、树的基本概念1.树的术语2.常见的树结构 二、节点的定义三、有关树结构的操作1.按照数组构造平衡 二叉搜索树2.层序遍历树3.前、中、后序遍历树(1).前序遍历树(2).中序遍历树(3).后序遍历树(4).各种遍历的情况的效果对比 4.元素添加5.元素删除1.删除叶子节点2.删除单一…...
Unity射击游戏手榴弹笔记
数据 在物品系统增加一个新的物品类,手榴弹类,定义手榴弹依附物体的类、配表数据类、背包内物品数据类、新建配表、在背包增加手榴弹数组;手榴弹的预制体需要可拾取的、扔出的;背包界面增加背包内的手榴弹、场景里的手榴弹、别人…...
S32K144外设实验(七):FTM输出多路互补带死区PWM
文章目录 1. 概述1.1 时钟系统1.2 实验目的2. 代码的配置2.1 时钟配置2.2 FTM模块配置2.3 输出引脚配置2.4 API函数调用1. 概述 互补对的PWM输出是很重要的外设功能,尤其应用再无刷电机的控制。 1.1 时钟系统 笔者再墨迹一遍时钟的设置,因为很重要。 FTM的CPU接口时钟为SY…...
SingleMod
SingleMod SingleMod是一种深度学习模型,专为利用纳米孔直接RNA测序(DRS)数据在单RNA分子中精确检测m6A修饰而设计。该模型通过深度多实例回归框架进行训练,能够充分利用广泛的甲基化率标签。SingleMod是一个通用框架,可轻松适配其他核酸修饰的检测模型训练。 注意: Si…...
[网鼎杯 2020 白虎组]PicDown1 [反弹shell] [敏感文件路径] [文件描述符]
常见读取路径 /etc/passwd一些用户和权限还有一些乱七八糟的 /proc/self/cmdline包含用于开始当前进程的命令 /proc/self/cwd/app.py当前工作目录的app.py /proc/self/environ包含了可用进程的环境变量 /proc/pid/exe 包含了正在进程中运行的程序链接; /proc/pid…...
单纯形法之大M法
1. 问题背景与标准化 在求解某些线性规划问题时,往往难以直接找到初始的基本可行解。特别是当约束中存在等式或 “≥” 类型的不等式时,我们需要引入人工变量来构造一个初始可行解。 考虑如下标准形式问题(假设为最大化问题)&am…...
各类神经网络学习:(四)RNN 循环神经网络(下集),pytorch 版的 RNN 代码编写
上一篇下一篇RNN(中集)待编写 代码详解 pytorch 官网主要有两个可调用的模块,分别是 nn.RNNCell 和 nn.RNN ,下面会进行详细讲解。 RNN 的同步多对多、多对一、一对多等等结构都是由这两个模块实现的,只需要将对输入…...
DeepSeek 发布DeepSeek-V3-0324 版本 前端与网页开发能力、推理与多任务能力提升
DeepSeek 发布 DeepSeek-V3-0324 版本 DeepSeek 发布 DeepSeek-V3-0324 版本,在其前代模型 DeepSeek-V3 的基础上进行了显著升级。 该模型专注于中文和多语言文本生成、推理、代码编写等综合能力的提升,支持 Function Calling(函数调用&…...
航班时间 | 第九届蓝桥杯省赛C++A组
小 h 前往美国参加了蓝桥杯国际赛。 小 h 的女朋友发现小 h 上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。 小 hh 对超音速飞行感到十分恐惧。 仔细观察后发现飞机的起降时间都是当地时间。 由于…...
传输层安全协议 SSL/TLS 详细介绍
传输层安全性协议TLS及其前身安全套接层SSL是一种安全传输协议,目前TLS协议已成为互联网上保密通信的工业标准,在浏览器、邮箱、即时通信、VoIP等应用程序中得到广泛的应用。本文对SSL和TLS协议进行一个详细的介绍,以便于大家更直观的理解和认…...
编程实现自我指涉(self-reference)
从计算机的组成原理出发,编程实现自我指涉(self-reference)本质上是通过代码操纵代码,形成逻辑上的闭环。这种能力不仅是编程语言设计中的一个奇妙现象,更是计算理论、计算机架构、乃至哲学层面的一种深刻映射。让我们…...
CentOS8 安装 Docker-CE
如果之前安装过docker,请先卸载旧版本: yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 安装所需的软件包: yum install -y yum-utils 添加软件源信息(设置存储库)…...
【Docker系列八】使用 Docker run 命令部署 Nginx
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
【单元测试】
一、框架 不同的编程语言有不同的测试框架,以下是一些常见的测试框架: 1)Java:JUnit、TestNG2)Python:unittest、pytest3)JavaScript:Jest、Mocha4)C#:NUni…...
【今日EDA行业分析】2025年3月24日
今日 EDA 行业分析:中国在全球格局下的奋进之路 一、引言 在半导体产业的精密体系中,EDA 软件宛如一颗璀璨的明珠,其重要性不言而喻。它不仅是集成电路设计的核心支撑,更是连接芯片设计、制造、封装与测试各环节的关键纽带。今天…...
基于 PHP 内置类及函数的免杀 WebShell
前言 PHP 作为广泛使用的服务端语言,其灵活的内置类(如 DOMDocument)和文件操作机制(.ini、.inc 的自动加载),为攻击者提供了天然的隐蔽通道。通过 动态函数拼接、反射调用、加密混淆 和 伪命名空间 等手法…...
鸿蒙移动应用开发--UI组件布局
实验要求: 制作一个B站视频卡片界面,大致如下图所示,要求应用到线性布局、层叠布局等相关课堂知识。背景图、logo及文本内容不限。 实验环境 :DevEco Studio 实验过程: 步骤1:创建项目 1. 在您的开发环境…...
内核编程十二:打印内核态进程的属性
在Linux内核中,current 是一个宏,用于获取当前正在执行的进程的 task_struct 结构体指针。current 宏返回一个指向当前正在运行的进程的 task_struct 结构体的指针。通过这个指针,内核代码可以访问和修改当前进程的各种属性和状态。 打印单个…...
C++(16)—类和对象(下) ①再探构造函数
文章目录 一、构造函数初始化方式回顾二、初始化列表详解1. 初始化列表语法与特点2. 必须使用初始化列表的成员变量 三、初始化列表的底层机制四、最佳实践五、总结 一、构造函数初始化方式回顾 在C中,构造函数用于初始化对象的成员变量。传统的初始化方式是在构造…...
[新闻.AI]国产大模型新突破:阿里开源 Qwen2.5-VL-32B 与 DeepSeek 升级 V3 模型
(本文借助 Deepseek-R1 协助生成) 在2025年3月24日至25日的短短24小时内,中国AI领域迎来两大重磅开源更新:阿里通义千问团队发布多模态大模型Qwen2.5-VL-32B-Instruct,而DeepSeek则推出编程能力大幅提升的DeepSeek-V3…...
投sci论文自己查重方法
首先进入查重网站科研者之家-Home of Reasearchers 会看到里面有很多小工具(比较高级的是要付费的) 我们找到论文查重的小工具:论文查重——>英文论文自助查重系统 把论文上传...
数值分析作业插值法2
埃尔米特插值 不仅要求函数值重合,而且要求若干阶导数也重合,这种插值问题称为埃尔米特插值问题。 低次埃尔米特插值多项式 二点三次埃尔米特插值多项式 **问题描述:**给定区间 [ x 0 , x 1 ] [x_0, x_1] [x0,x1] 两端点的函数值与导数…...
宝塔docker flarum默认登录账号密码,crazymax/flarum镜像默认登录账号密码
docker flarum默认账号密码 刚创建完毕时的登录账号和密码都是flarum 来源说明 宝塔安装的这个1.8.5版本的docker flarum的版本是,用的是 Docker库 https://hub.docker.com/r/crazymax/flarum Github库 https://github.com/crazy-max/docker-flarum...
TailwindCSS安装教程(PostCSS)
#官方教程简直是一坨,自己跑ai查文章做出来的安装总结,作者开发环境为Vue2VueCLI# 本文为TailwindCSS3.4版本安装教程 1,安装tailwindcss3.4.1 npm install -D tailwindcss3.4.1 2, 初始化TailwindCSS配置文件 npx tailwindcss init 3&…...
电脑干货:万能驱动--EasyDrv8
目录 万能驱动EasyDrv8 功能介绍 主程序界面 驱动解压与安装 PE环境支持 系统部署环境 桌面环境一键解决方案 万能驱动8电脑版是由IT天空出品的一款智能识别电脑硬件并自动安装驱动的工具,一般又称为it天空万能驱动,万能驱动vip版,简称…...
基于Flask的通用登录注册模块,并代理跳转到目标网址
实现了用户密码的加密,代理跳转到目标网址,不会暴露目标路径,未登录的情况下访问proxy则自动跳转到登录页,使用时需要修改配置项config,登录注册页面背景快速修改,可以实现登录注册模块的快速复用。 1.app…...
个人学习编程(3-25) leetcode刷题
验证括号字符串: 用了两个栈来存放。 只需要考虑) 优先用 ( 其次用* 即可 #include <bits/stdc.h> using namespace std;bool checkValidString(char* s){int len strlen(s);stack<int> left_stack,star_stack;for (int i 0; i < len; i){if(s[i] (){left_st…...
vue中实现元素在界面中自由拖动
这是一个使用 Vue 2 实现可拖动 div 的示例。 <!DOCTYPE html> <html> <head><title>Vue 2 可拖动 Div</title><script src"https://cdn.jsdelivr.net/npm/vue2.6.14/dist/vue.js"></script><style>#draggable-div…...
量子计算在密码学中的应用:机遇与挑战并存
引言 在数字化时代的浪潮中,密码学作为信息安全的核心技术,始终扮演着至关重要的角色。从保护个人隐私到保障国家机密,密码学的每一次进步都为信息安全筑牢了防线。然而,随着量子计算技术的飞速发展,传统密码学体系面…...
