目录

一、QinQ简介

定义:

目的:

优点:

二、原理描述

基本原理:

QinQ报文:

字段解释:

报文示例:

QinQ封装:

三、实现方式

基本QinQ:

灵活QinQ:

TPID(Tag Protocol Identifier):

四、QinQ配置实例

(一)配置基本QinQ(二层):

(二)配置灵活QinQ(二层):


一、QinQ简介

定义:

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

…………

目的:

随着以太网技术在网络中的大量部署,利用802.1Q VLAN对用户进行隔离和标识受到很大限制。因为IEEE802.1Q中定义的VLAN Tag域只有12个比特,仅能表示4096个VLAN,无法满足以太网中标识大量用户的需求,于是QinQ技术应运而生。

QinQ是通过在原有的802.1Q报文的基础上增加一层802.1Q标签来实现的,使得VLAN数量增加到4094×4094,扩展了VLAN空间。

随着以太网的发展以及精细化运作的要求,QinQ的双层标签又有了进一步的使用场景。它的内外层标签可以代表不同的信息,如内层标签代表用户,外层标签代表业务。另外,QinQ报文带着两层Tag穿越公网时,内层Tag透明传送,也是一种简单、实用的VPN技术。因此它又可以作为核心MPLS VPN在以太网VPN的延伸,最终形成端到端的VPN技术。

优点:

  • 扩展VLAN,对用户进行隔离和标识不再受到限制。
  • QinQ内外层标签可以代表不同的信息,如内层标签代表用户,外层标签代表业务,更利于业务的部署。
  • QinQ封装、终结的方式很丰富,帮助运营商实现业务精细化运营。
  1. 解决日益紧缺的公网VLAN ID 资源问题
  2. 用户可以规划自己的私网VLNA ID
  3. 提供一种较为简单的二层VPN解决方案
  4. 使用户网络具有较高的独立性

二、原理描述

基本原理:

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

QinQ报文:

QinQ报文有固定的格式,就是在802.1Q的标签之上再打一层802.1Q标签,QinQ报文比802.1Q报文多四个字节。

中文说明: 

字段解释:

报文示例:

QinQ抓包示例

QinQ封装:

QinQ封装是指如何把单层Q报文转换成双层Q报文。

根据不同的封装数据,QinQ可以分为几种不同类型,包括基本QinQ和灵活QinQ两大类。其中基本QinQ是指基于接口的QinQ,灵活QinQ包括基于VLAN ID的QinQ和基于802.1p优先级的QinQ,具体如下:

  • 基于接口的QinQ封装

基于接口的封装是指进入一个接口的所有流量全部封装一个相同的外层VLAN Tag,封装方式不够灵活,用户业务区分不够细致,这种封装方式也称作基本QinQ。

  • 基于VLAN ID的QinQ封装(灵活QinQ)

基于VLAN ID的QinQ封装可以对不同的数据流选择是否封装外层Tag、封装何种外层Tag,因此这种封装方式也称作灵活QinQ。

例如:当同一用户的不同业务使用不同的VLAN ID时,可以根据VLAN ID区间进行分流。假设PC上网的VLAN ID范围是101~200;IPTV的VLAN ID范围是201~300;VoIP的VLAN ID范围是301~400。根据VLAN ID范围,对PC上网业务封装上外层Tag 100,对IPTV封装上外层Tag 300,对VoIP封装上外层Tag 500。

  • 基于802.1p优先级的QinQ封装(基于流的灵活QinQ)

基于802.1p优先级的QinQ封装可以对不同优先级的数据流选择是否封装外层Tag、封装何种外层Tag,因此这种封装方式也称作灵活QinQ。

例如:当同一用户的不同业务使用不同的优先级,如语音、视频、数据等。可以根据优先级为这些业务建立不同的数据传输通道,方便对业务进行区分。

三、实现方式

QinQ的实现方式可分为两种:基本QinQ和灵活QinQ。

  • 1、基本QinQ
  1. 如果收到的是带有VLAN Tag的报文,该报文就成为带双Tag的报文。
  2. 如果收到的是不带VLAN Tag的报文,该报文就成为带有本端口缺省VLAN Tag的报文。
  • 2、灵活QinQ
  1. 为具有不同内层VLAN ID的报文添加不同的外层VLAN Tag。
  2. 根据报文内层VLAN的802.1p优先级标记外层VLAN的802.1p优先级和添加不同的外层VLAN Tag。

通过使用灵活QinQ技术,在能够隔离运营商网络和用户网络的同时,又能够提供丰富的业务特性和更加灵活的组网能力。

  • 3、QinQ/Dot1q终结子接口:

终结主要是指设备对报文的单层或者双层Tag进行识别,然后根据后续的转发行为对单层或者双层Tag进行剥离或继续传送。

终结一般在路由子接口上执行,即:终结子接口。

QinQ技术在和MPLS/IP核心网连接时,根据不同的情况,会用到不同的终结方法。

  • 如果路由子接口是对报文的单层Tag终结,那么该子接口称为Dot1q终结子接口。
  • 如果路由子接口是对报文的双层Tag终结,那么该子接口称为QinQ终结子接口。

注意:

Dot1q终结子接口和QinQ终结子接口不支持透传不带VLAN的报文,收到不带VLAN的报文会直接丢弃。

基本QinQ:

基本QinQ,是基于接口方式实现的。开启接口的基本QinQ功能后,当该接口接收到报文,设备会为该报文打上配置的外层Tag。如果接收到的是已经带有VLAN Tag的报文,则为其加上外层VLAN Tag;如果接收到的是不带VLAN Tag的报文,则先为其加上内层VLAN Tag,再加上外层Tag。

灵活QinQ:

  • 基于VLAN ID的灵活QinQ:为具有不同内层VLAN ID的报文添加不同的外层VLAN Tag。
  • 基于802.1p优先级的灵活QinQ:根据报文的原有内层VLAN的802.1p优先级添加不同的外层VLAN Tag。

灵活QinQ功能是对基本QinQ功能的扩展,它比基本QinQ的功能更灵活。二者之间的主要区别是:

  • 基本QinQ:对进入二层QinQ接口的所有帧都加上相同的外层Tag。
  • 灵活QinQ:对进入二层QinQ接口的帧,可以根据不同的内层Tag而加上不同的外层Tag,对于用户VLAN的划分更加细致。

TPID(Tag Protocol Identifier):

标签协议标识TPID(Tag Protocol Identifier)是VLAN Tag中的一个字段,表示VLAN Tag的协议类型,IEEE 802.1Q协议规定该字段的取值为0x8100。

IEEE802.1Q协议定义的以太网帧的VLAN Tag。802.1Q Tag位于SA(Source Address)和Length/Type之间。通过检查对应的TPID值,设备可确定收到的帧承载的是运营商VLAN标记还是用户VLAN标记。接收到帧之后,设备将配置的TPID值与帧中TPID字段的值进行比较。如果二者匹配,则该帧承载的是对应的VLAN标记。例如,如果帧承载TPID值为0x8100的VLAN标记,而用户网络VLAN标记的TPID值配置为0x8200,设备将认为该帧没有用户VLAN标记。也就是说,设备认为该帧是Untagged报文。

另外,不同运营商的系统可能将QinQ帧外层VLAN标记的TPID设置为不同值。为实现与这些系统的兼容性,可以修改TPID值,使QinQ帧发送到公网时,承载与特定运营商相同的TPID值,从而实现与该运营商设备之间的互操作性。以太网帧的TPID与不带VLAN标记的帧的协议类型字段位置相同。为避免在网络中转发和处理数据包时出现问题,不可将TPID值设置为下表中的任意值:

协议类型及对应值描述表:

四、QinQ配置实例

(一)配置基本QinQ(二层):

如下图,通过配置基本QinQ,实现客户网络在运营商网络中的传输。

配置文件:

LSW1和LSW4配置相同:

<SW1>dis current-configuration
#
sysname SW1
#
vlan batch 10 20
#
interface GigabitEthernet0/0/1port link-type accessport default vlan 10
#
interface GigabitEthernet0/0/2port link-type accessport default vlan 20
#
interface GigabitEthernet0/0/3port link-type trunkport trunk allow-pass vlan 10 20
#

LSW2和LSW3配置相同:

<SW2>dis current-configuration
#
sysname SW2
#
vlan batch 100
#
interface GigabitEthernet0/0/1port link-type dot1q-tunnel //使能二层QinQ功能port default vlan 100 //划分接口到VLAN100
#
interface GigabitEthernet0/0/2port link-type trunkport trunk allow-pass vlan 100
#

(二)配置灵活QinQ(二层):

拓扑如上,LSW1和LSW4配置同上。

LSW2和LSW3配置如下:

<SW2>dis current-configuration
#
sysname SW2
#
vlan batch 100 200
#
interface GigabitEthernet0/0/1
qinq vlan-translation enable
//开启QinQ的VLAN转换功能
port hybrid untagged vlan 100 200
//定义接口出方向剥离VLAN100和VLAN200的标签
port vlan-stacking vlan 10 stack-vlan 100
//接口收到来自VLAN10的数据帧后叠加一层VLAN100的外层标签
port vlan-stacking vlan 20 stack-vlan 200
//接口收到来自VLAN20的数据帧后叠加一层VLAN200的外层标签
#
interface GigabitEthernet0/0/2port link-type trunkport trunk allow-pass vlan 100 200
#

注:

灵活QinQ只能用在hybrid接口,trunk口无法实现。

qing protocol 9100 \只会修改针对内层VLAN TAG的以太类型的改写,用于不同厂商的设备互通。华为默认为8100,可配置范围为0x0600~0xFFFF。

**基本QinQ可配置多层,而灵活QinQ只能配置两层,**想要配多层,第三层开始得结合配置基本QinQ。

参考文档:华为HedEx文档

QinQ初识--qinq基础知识相关推荐

  1. 小猿圈之初识python基础知识

    1.解释器路径: 编译器头部加#!/usr/bin/env python目的: 在linux环境下可以以./文件名.py方式直接执行 2.编码: # _*_ enconding:utf-8 _*_(p ...

  2. java基础知识之初识java

    java基础知识之初识java JAVA基础课后总结 一 1.计算机程序 定义:程序(Program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合. 2.指令 定义:指令就是指示机 ...

  3. c 结构体在声明时赋值_Java基础知识 初识Java 循环结构进阶 数组 数据类型 各种运算符...

    今天给大家带来的是初级Java基础部分的知识:包括初始Java.变量.常量.数据类型.运算符.各种选择结构.循环结构.数组等Java的基础语法部分!最后还有****循环结构的进阶****,步骤超详细, ...

  4. Hadoop权威指南 _03_第I部分Hadoop基础知识_第1章初识Hadoop.

    第I部分Hadoop基础知识 第1章初识Hadoop. 比较喜欢这句极其形象的比喻. "在古时候,人们用牛来拉重物.当一头牛拉不动根圆木时,人们从来没有考虑过要想方设法培育出一种更强壮的牛. ...

  5. java打印星型_初识java java入门知识 基础知识 打印各种星型图形 源代码

    今天给大家带来的是初级Java基础部分的知识:包括初识Java.变量.常量.数据类型.运算符.各种选择结构.循环结构.数组等Java的基础语法部分!最后还有****循环结构的进阶****,步骤超详细, ...

  6. 第1章 初识计算机病毒 1.1 计算机病毒基础知识

    第1章   初识计算机病毒 这一章将从概念上简要介绍计算机病毒的基本知识以及计算机病毒的命名,通过对这些概念的了解,从而使我们能更方便的阅读有关计算机病毒信息的文档和书籍. 1.1 计算机病毒基础知识 ...

  7. 初识Python必看基础知识~ 续(5)进阶之路~再接再厉~

    欢迎来到~ 初始Python 系列文章 "第五回",大家好呀~ 我是 清汉 不知不觉中已是Python基础系列中的第五篇文章了~ Python基础系列,每篇文章的篇幅都比较长.比较 ...

  8. 前端学习(初识HTML 上)——基础知识和基本标签

    前端学习之初识HTML 一.HTML基础知识 1.html定义 2.html特点 3.html标签 4.html基础结构 (1)<head></head>中的<meta& ...

  9. 【Python3】初识Python及其基础知识

    前言 hi~大家好呀,本篇我在自学Python3过程中的一篇自学笔记,主要参考书上和网络上的内容,有错请大家多多指出,让我们一起学习吧~ 本篇文章,我会具体学习Python程序的运行原理以及如何运行P ...

最新文章

  1. JavaScript函数式编程学习
  2. 多个Cisco产品报文远程拒绝服务漏洞
  3. 轻量级目标检测大合集
  4. 天问一号火星探测器已飞离地球800多万公里 多个载荷完成自检
  5. 结构体后面定义一个空数组的含义
  6. Nrf51822中设置128bit UUID service
  7. 设计模式 ( 十七 ):Observer 观察者模式 -- 行为型
  8. Hive 数据质量检测
  9. emule服务器无响应,全部服务器无响应!!!
  10. 适应科技发展观的Steam教学实践
  11. 真3D麻将游戏桌面适配任意分辨率
  12. 怎么用c51语言写正弦波,单片机入门-C51语言用DAC0832实现正弦波的波形发生器第二节...
  13. Core Audio APIs 技术笔记二(麦克风音量和增强设置)
  14. webrtc QOS方法一.2(接收端NACK流程实现)
  15. 百度人脸识别申请授权文件步骤要领
  16. python 小说cms系统_零基础小白十分钟用Python搭建小说网站!Python真的强!
  17. Windows7建立共享WiFi设置(局域网配置)
  18. 华为畅享max有没有人脸识别_华为畅享Z有指纹识别吗?支持人脸识别解锁吗
  19. Maven - 8、大型Maven项目,快速按需任意构建
  20. 安徽师范大学计算机学院导师,安徽师范大学 数字计算机学院 耿焕同老师简介 联系方式 手机电话 邮箱...

热门文章

  1. 清理SYSAUX表空间的WRH$_LATCH_CHILDREN表
  2. L63不同路径 II
  3. QQ空间自动点赞js脚本
  4. 微信小程序 去除input输入的空格
  5. 前端生成带有logo的二维码并保存
  6. 一句励志的英文短句,希望大家喜欢!
  7. Ajax的特性以及用法
  8. k8s开启临时容器ephemeral进行debug调试
  9. AppScan不管什么URL都提示无法连接到服务器!怎么解决
  10. 14 模板的使用大全