QinQ、VLAN Mapping原理和配置「建议收藏」

QinQ、VLAN Mapping原理和配置「建议收藏」我唯一知道的就是我一无所知。—苏格拉底文章目录一、QinQ基本原理二、VLANMapping基本原理三、拓扑四、配置与分析五、总结一、QinQ基本原理QinQ是指在802.1QVLAN的基础上增加一层802.1QVLAN标签,从而拓展VLAN的使用空间。在公网的传输过程中,设备只根据外层VLANTag转发报文,并根据报文的外层VLANTag进行MAC地址学习,而用户的私网VLANTag将被当作报文的数据部分进行传输。1、QinQ报文封装格式QinQ报文有.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

一、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 进行还原。
在这里插入图片描述

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169378.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • MySQL error 1396_Last

    MySQL error 1396_LastMySQL主备数据库切换报错1396处理方法,操作步骤如下:mysql>showslavestatus\G;***************************1.row***************************Slave_IO_State:WaitingformastertosendeventMaster_Host:196.55.3.180Mas…

  • clipboard使用Require自动复制「建议收藏」

    clipboard使用Require自动复制「建议收藏」由于没有使用过require,在微擎人人商城中遇到了一个需要自动复制内容的功能。头疼了一番。varversion=+newDate();varmyconfig={path:’../addons/ewei_shopv2/static/js/’,alias:{‘jquery’:’dist/jquery/jquery-1.11.1.min’,’jquery.form’:’dist/jquery/jquery.form’,

  • sql语句删除表数据drop、truncate和delete的用法[通俗易懂]

    sql语句删除表数据drop、truncate和delete的用法[通俗易懂]虽然西西不建议大家去用命令删除数据库表中的东西,但是这些删除命令总有用的着的地方。说到删除表数据的关键字,大家记得最多的可能就是delete了然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了现在来介绍另外两个兄弟,都是删除表数据的,其实也是很容易理解的老大——drop出没场合:droptable tb –tb表示数据表的名字,下同绝招:删除内

  • ORA-29491: invalid table for chunking 错误记录[通俗易懂]

    ORA-29491: invalid table for chunking 错误记录[通俗易懂]大家在网上找的oracle这个包dbms_parallel_execute执行大数据量sql语句执行的时候,可能会遇到这个错误。刚开始我也挺困惑,后来发现了这个错误原因,记录下来可能给你帮助。dbms_parallel_execute.create_chunks_by_rowid(task_name=>vc_task,

  • pip 安装.whl文件「建议收藏」

    pip 安装.whl文件「建议收藏」参见网址https://www.lfd.uci.edu/~gohlke/pythonlibs/,基本上包含了常用的pythonlib各个版本。下载本机机器上的python使用的对应版本的lib,切到下载位置,使用命令(以安装matplotlib为例):pip install ./matplotlib-2.2.3-cp36-cp36m-win32.whl 即可很快完成安装…

  • easyUI的时间控件[通俗易懂]

    easyUI的时间控件[通俗易懂]以前没怎么用过easyUI,今天用到时间控件,又了解到了一点东西时间控件的样式<inputclass="easyui-datetimebox"id="starttime"name="starttime"style="width:150px"/>然后通过js动态的添加的时候,使用append添加container.append(‘开始时间<inputclass="easyui-d

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号