QinQ、VLAN Mapping原理和配置

article/2025/10/3 17:39:49

我唯一知道的就是我一无所知。 —苏格拉底

文章目录

      • 一、QinQ 基本原理
      • 二、VLAN Mapping 基本原理
      • 三、拓扑
      • 四、配置与分析
      • 五、总结

一、QinQ 基本原理

QinQ是指在802.1Q VLAN的基础上增加一层802.1Q VLAN标签,从而拓展VLAN的使用空间。在公网的传输过程中,设备只根据外层VLAN Tag转发报文,并根据报文的外层VLAN Tag进行MAC地址学习,而用户的私网VLAN Tag将被当作报文的数据部分进行传输。

1、QinQ 报文封装格式

QinQ报文有固定的格式,就是在802.1Q的标签之上再打一层802.1Q标签,QinQ报文比802.1Q报文多四个字节。
在这里插入图片描述
2、QinQ配置

(1)QinQ功能可以为已存在VLAN标签的数据再次封装指定VLAN,使得数据携带二层VLAN标签。
(2)只有Hybrid及Trunk类型的接口支持此功能。
(3)针对外层标签,需要在QinQ配置接口配置untagger,拆除外层标签,用户vlan无需放行或者剥离标签。

二、VLAN Mapping 基本原理

1、交换机收到数据报文后,根据是否带有Tag做以下两种处理:

(1)数据报文带Tag,根据配置的VLAN Mapping方式,决定替换单层、双层或双层中的外层Tag;然后进入MAC地址学习阶段,根据源MAC地址+映射后的VLAN ID刷新MAC地址表项;根据目的MAC+映射后VLAN ID查找MAC地址表项,如果没有找到,则在VLAN ID对应的VLAN内广播,否则从表项对应的接口转发。

(2)数据报文不带Tag,根据配置的VLAN划分方式决定是否添加VLAN Tag,对于不能加入VLAN的数据报文上送CPU或丢弃,否则添加Tag;然后进入MAC地址学习阶段,按照二层转发流程进行转发。

2、映射方式

设备支持基于VLAN、802.1p优先级和MQC方式实现VLAN Mapping,其中基于VLAN的VLAN Mapping包括以下映射方式:

(1)1 to 1的映射方式

当部署VLAN Mapping功能设备上的接口收到带有单层VLAN Tag的报文时,将报文中携带的单层VLAN Tag映射为公网的VLAN Tag。包括1:1和N:1两种方式,其中1:1的方式是将指定的一个用户侧VLAN Tag标签映射到一个网络侧VLAN Tag标签,N:1的方式是将指定范围的多个用户侧VLAN Tag标签映射到一个网络侧VLAN Tag标签。

(2)2 to 1的映射方式

当部署VLAN Mapping功能设备上的接口收到带有双层VLAN Tag的报文时,将报文中携带的外层Tag映射为公网的Tag,内层Tag作为数据透传。

(3)2 to 2的映射方式

当部署VLAN Mapping功能设备上的接口收到带有双层VLAN Tag的报文时,将报文中携带的双层VLAN Tag映射为公网的双层VLAN Tag。基于MQC实现VLAN Mapping指的是通过MQC可以对分类后的报文实现VLANMapping。用户可以根据多种匹配规则对报文进行流分类,然后将流分类与VLANMapping的动作相关联,对匹配规则的报文重标记报文的VLAN ID值。基于MQC的VLAN Mapping能够针对业务类型提供差别服务。

3、Vlan-Mapping配置

(1)Vlan-Mapping功能可以为替换已经存在VLAN标签的数据,并且在带有映射后数据返回时自动还原数据之映射前的标签。
(2)只有Hybrid及Trunk类型的接口支持此功能。
(3)对于Vlan-Mapping接口只需tagger 映射后的标签,无需配置untagger,用户vlan无需放行或者剥离标签。

三、拓扑

在这里插入图片描述

四、配置与分析

1、ISP向A公司和B公司提供二层接入的VLAN为VLAN 100。

[SW-1]vlan 100

2、A公司的同VLAN需要跨域运营商二层网络实现同VLAN成员互通。
(使用QinQ实现这一需求)

LSW3

[SW-3]vlan batch 10
[SW-3]int g0/0/1
[SW-3-GigabitEthernet0/0/1]port link-type trunk
[SW-3-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW-3]int e0/0/1
[SW-3-Ethernet0/0/1]port link-type access
[SW-3-Ethernet0/0/1]port default vlan 10

LSW1

[SW-1]v 100
[SW-1]int g0/0/1
[SW-1-GigabitEthernet0/0/1]port hybrid untagged vlan 100
//配置此接口可以放行并且拆除带有vlan 100标签的数据(如果有多层标签,只拆除外层标签)
[SW-1-GigabitEthernet0/0/1]qinq vlan-translation enable  //开启此接口的qinq多vlan标签处理功能
[SW-1-GigabitEthernet0/0/1]port vlan-stacking vlan 10 stack-vlan 100
//配置此接口收到带有vlan 10标签的数据后再次封装外层标签为vlan 100
[SW-1-GigabitEthernet0/0/1]int g0/0/24
[SW-1-GigabitEthernet0/0/24]port link-type trunk
[SW-1-GigabitEthernet0/0/24]port trunk allow-pass vlan all

[SW-1]dis vlan 100 verbose
在这里插入图片描述
LSW2、LSW5配置类似

PC1 ping 192.168.1.103(PC3)
在这里插入图片描述
3、B公司的不同VLAN成员跨域运营商二层网络后实现互通。
(是用Vlan-Mapping实现这一需求)

LSW4

[SW-4]vlan 24
[SW-4-vlan24]quit
[SW-4]int e0/0/2
[SW-4-Ethernet0/0/2]p l a
[SW-4-Ethernet0/0/2]p d v 24
[SW-4-Ethernet0/0/2]int g0/0/2
[SW-4-GigabitEthernet0/0/2]p l t 
[SW-4-GigabitEthernet0/0/2]p t a v 

LSW1

[SW-1]int g0/0/2
[SW-1-GigabitEthernet0/0/2]port hybrid tagged vlan 100	 //此接口放行映射后的标签 
[SW-1-GigabitEthernet0/0/2]qinq vlan-translation enable  //开启此接口的qinq多vlan标签处理功能 
[SW-1-GigabitEthernet0/0/2]port vlan-mapping vlan 24 map-vlan 100
//此接口收到带有vlan 24标签的数据将标签替换为vlan 100转发,在SW内部收到带有vlan 100的数据自动还原标签为vlan 24
[SW-1-GigabitEthernet0/0/2]quit

LSW2、LSW6配置类似

抓包
SW-1接口下g0/0/24
在这里插入图片描述

PC2 ping 192.168.1.104(PC4)
在这里插入图片描述

五、总结

对实验总结

① 收到不带标签的数据,封装PVID所在的标签
② 带有指定标签的数据,收到vlan 10再封装一层vlan 100
③ 非指定标签的数据,丢弃

(1)QinQ,携带标签进入发出时,查看外层标签
(2)QinQ,离开拆除标签时,只拆除外层标签

1、QinQ的部署

(1)基本QinQ,接口下收到任何数据都会封装指定的标签
(2)灵活QinQ,可以针对接收到的数据依据不同的特征添加不同的外层标签

2、特征:

(1)数据的源和目的----IP/MAC
(2)VLAN标签
(3)传输层协议+端口
(4)优先级-801.1p----dot1q----DSCP

3、Hybrid QINQ

(1)配untagger—营商添加的标签
(2)并启接口的Qino传输功能

VLAN–高级特性–打破常规

多对一的映射–块射设备会记录映射前数据MAC与VLAN的关系,还原时按照此表项。

QinQ核心作用: 为携带标签的数据再次封装新的标签,至于多层表的转发与拆除与qinq配置无关。

vlan映射和qinq的区别一个对vlan进行替换,一个是重新封装新的标签,正因为如此,针对vlan映射接口的配置试试带tagger放行替换后的标签。对于qinq是 untagger多添加的一层标签;
另外在vlan映射这个地方,当数据回程,还原用户标签时是基于用户数据进来时记录此数据源mac地址和用户自身的vlan标签,当收到回程用户数据先将数据从SW内部引导至进行vlan映射的接口,在基于之前此mac地址的数据对应额vlan 进行还原。
在这里插入图片描述

我是艺博东,一个人知道的越多,越能明白自己的无知。也欢迎你和我一起讨论,我们下期见。


http://chatgpt.dhexx.cn/article/Cy4gjXRx.shtml

相关文章

QinQ

7.3.1 QinQ技术诞生的背景 ——《华为交换机学习指南》 QinQ最初主要是为扩展VLAN ID空间而产生的,但随着城域以太网的发展以及运营商精细化运作的要求,QinQ的双层标签又有了进一步的使用场景。它的内、外层标签可以代表不同的信息,如内层标签…

QinQ技术

简要介绍 QinQ技术(也称Stacked VLAN 或Double VLAN)是指将用户私网VLAN标签封装在公网VLAN标签中,使报文带着两层VLAN标签穿越运营商的骨干网络,在公网中只根据外层VLAN标签传播,私网VLAN标签被屏蔽,这样…

什么是QinQ, QinQ基础,VLAN双层TAG

一、QinQ简介 IEEE 802.1Q 定义的 VLAN ID 域有 12 个比特,最多可以提供 4094 个 VLAN。但在实际应用中, 尤其是在城域网中,需要大量的 VLAN 来隔离用户,4094 个 VLAN 远远不能满足需求。QinQ 使整 个网络最多可以提供 4094409…

计算机网络——华为QINQ详解及其实验配置

创作不易,记得点赞哦 QinQ协议在用户私网VLAN Tag之外封装公网VLAN Tag,在公网中报文只根据公网VLAN Tag传播。QinQ为用户提供一种较为简单的二层VPN隧道。 目录 一. QINQ简述: 1.2 QinQ封装结构图 1.3 QinQ的分类 二 各QINQ的实验 2…

QinQ基础知识

QinQ简介 定义: QinQ(802.1Q-in-802.1Q)技术是一项扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能,可以使私网VLAN透传公网。由于在骨干网中传递的报文有两层802.1…

10 个有用的 Python 字符串函数你必须知道

💂 个人网站:【 海拥】【保卫机器人】【骑士冒险】🤟 风趣幽默的前端学习课程:👉28个案例趣学前端💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼家族】💬 免费且实用的计算机相关知识题…

Python字符串函数使用详解

Python的友好在于提供了非常好强大的功能函数模块,对于字符串的使用,同样提供许多简单便捷的字符串函数。Python 字符串自带了很多有用的函数,在字符串函数之前先介绍一个非常实用的dir()内置函数,因为对每一个初学者还是大佬级别…

MySQL 十大常用字符串函数

数据库函数是一种具有某种功能的模块,可以接收零个或多个输入值,并且返回一个输出值。MySQL 为我们提供了许多用于处理和分析数据的系统函数,本文给大家介绍 10 个常用的字符串函数,以及相关的其他函数。 1 CONCAT() CONCAT(str1,…

Oracle 中常用的字符串函数总结

一、substr 函数 —— 字符串截取 格式1: substr(string,start_pos,length) 格式2: substr(string,start_pos) 说明: 从指定位置start_pos截取字符串string的length位,如果不指定length(格式2)则从指…

MySQL --- 常用函数 - 字符串函数

函数 MySQL 函数会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值。 MySQL 包含了大量并且丰富的函数,咱们讲解几十个常用的,剩下的比较罕见的函数我们可以到「MySQL 参考手册」查询。 字符串函数 函数作用UP…

常用字符串函数的使用

目录 一.求字符串长度 1.strlen用来计算字符串的长度(该长度不包括\0) 二.长度不受限制的字符串函数 1.strcpy字符串拷贝 2.strcat附加一个字符串 3.strcmp字符串大小比较 三.长度受限制的字符串函数介绍 1.strncpy字符串拷贝(能设置要拷贝的字符个…

字符串操作常用函数

字符串常用函数有如下 puts() //输出字符串 gets() //获取字符串 strlen() //计算字符串长度 memset() //初始化 strcpy() strncpy() //字符串的拷贝 strcat() //字符串的拼接 strcmp() //字符串的比较 strchr() strstr() //字符串的查找 strtok…

字符串函数

本文重点 重点介绍处理字符串内存的库函数的使用和注意事项 求字符串长度 ——strlen长度不受限制的字符串函数 ——strcpy、strcat、strcmp长度受限制的字符串函数介绍——strncpy、strncat、strncmp字符串查找——strstr、strtok错误信息报告——strerror字符操作 前言 C语…

java 使用 jep3.5 解析公式自动计算(包含BigDecimal模式 浮点数精准计算)

下载地址: jep3.5 jar包与文档.rar 由于3.X并未上传maven所有只能下载jar包使用maven本地导入 <dependency><groupId>com.singularsys</groupId><artifactId>jep</artifactId><version>3.5</version><scope>system</scope…

【译】Jep 文档(1)——介绍(Introction)

原文连接&#xff08;http://www.singularsys.com/jep/doc/html/index.html&#xff09; 介绍 综述 Jep 是一个用于分析和计算数学表达式的java库。有了这个包&#xff0c;您就可以把数学公式当作是字符串&#xff0c;并且立即求出它们的值。许多常见的数学函数和常量都是内…

Java RMI反序列化/JEP290相关

RMI 远程过程调用 (Remote Procedure Call)是一种服务器-客户端模式&#xff0c; Java的RMI&#xff08;Remote Method Invocation&#xff09;是一种RPC实现。 其基本思想是程序员可以像本地那样&#xff0c;与远程对象进行交互。 步骤&#xff1a; 1、创建一个接口IRemote…

Java第三方库——Jep数学公式计算

Java第三方库——Jep数学公式计算 官网简介&#xff1a;JEP JAVA仅用几行代码解析和计算数学表达式。这个包允许用户以字符串的形式输入公式&#xff0c;并立即对其求值。JEP支持用户定义的变量、常量和函数。包括一些常用的数学函数和常量。 1.下载3.x版本依赖并引入 官方网站…

你知道Java中的JCP, JEP, JLS, JSR是什么意思吗?

目录 一、JCP 二、JSR 三、JLS 四、JEP 公众号&#xff1a;MCNU云原生&#xff0c;欢迎微信搜索关注&#xff0c;更多干货&#xff0c;及时掌握。 JCP, JEP, JLS, JSR这些概念是Java社区中的一些概念&#xff0c;但是没有没有经常关注社区的童鞋们未必知道这些缩写所代表的…

Java中JCP, JEP, JLS, JSR是什么

JCP Java Community Process JCP&#xff08;Java Community Process&#xff09;是一个开放的国际组织&#xff0c;主要由Java开发者以及被授权者组成&#xff0c;职能是发展和更新。 JCP维护的规范包括J2ME、J2SE、J2EE&#xff0c;XML&#xff0c;OSS&#xff0c;JAIN等。组…

java 使用JEP解析字符串计算公式 求值(附带自定义函数编写)

2.X 存在精确度问题 推荐使用3.X 参考文章: java 使用 jep3.5 解析公式自动计算(包含BigDecimal模式 浮点数精准计算) 1.增加jep依赖 <dependency><groupId>org.scijava</groupId><artifactId>jep</artifactId><version>2.4.2</versio…