电信运营商城域网架构关键技术-QinQ双层标签

简介:

QinQ技术的应用场景:

       在运营商的网络中每一个用户都需要放入一个单独的VLAN中,以便实现进行各用户之间的隔离,但是由于802.1qVLAN TAG只有12比特,导致 vlan数量最多只能有4096个无法满足城域网中大量用户的隔离需求,这时就用到了QinQ技术。

       QinQ技术是通过在原有的802.1q的基础上增加了一层802.1q标签来实现的,使得VLAN数量扩展到4094 * 4094个。如下图:

wKiom1ZERRnBR18HAAGAvx4yl2g578.png

下面通过实验来详细说明,通过华为设备在运营商城域网中如何部署QINQ技术。

实验拓扑

使用eNSP模拟器(版本V100R002C00 1.2.00.370

wKioL1ZERXCzhJgkAACmGgBbFPE108.png

环境描述

       城域网用户的接入大致拓扑为:BRAS设备(理解为路由器,只是多了宽带接入功能)→OLT设备(理解为一个大交换机就行了)→分光器(纯物理层设备)→ONU设备(理解为用户接入交换机就行了)→家庭用户,如上图所示通过在ONU设备上划分VLAN对用户进行隔离,每个用户属于一个VLAN,如果这样的话,一台OLT下的VLAN ID明显不够用,图中只接了2ONU设备,在真实环境下一台OLT的下面一定挂着很多ONU设备这时4096VLAN肯定不够用的,这时可以使用QinQ技术解决OLTVLAN ID不够的问题!因为两层标签的情况下,VLAN的数量可以达到4096*4096个,一台OLT设备下不可能挂这么多的用户的。

 

实验规划

Win7 VLAN 100):192.168.100.10/24

C2 VLAN 200):192.168.100.20/24

C3 VLAN 300):192.168.200.10/24

C4 VLAN 400):192.168.200.20/24

OLT  G0/0/1 VLAN 10

OLT  G0/0/2 VLAN 20

 

实验需求

1.OLT设备上配置QinQ解决VLAN ID不够问

2.BRAS设备上配置子接口脱两层标签终结VLAN

3.在BRAS设备上配置PPPOE拨号功能,模拟实现家庭用户拨号上网。

4.抓包分析PPPOE报文。


实验配置

SW1配置:都是基本的交换要常规配置

<SW1>system-view

[SW1]vlanbatch 100 200

[SW1]inte0/0/1

[SW1-Ethernet0/0/1]portlink-type access

[SW1-Ethernet0/0/1]portdefault vlan 100

[SW1-Ethernet0/0/1]inte0/0/2

[SW1-Ethernet0/0/2]portlink-type access

[SW1-Ethernet0/0/2]portdefault vlan 200

[SW1-Ethernet0/0/2]intg0/0/1

[SW1-GigabitEthernet0/0/1]portlink-type trunk

[SW1-GigabitEthernet0/0/1]porttrunk allow-pass vlan 100 200

 

SW2配置:

<SW2>system-view

[SW2]vlanbatch 300 400

[SW2]inte0/0/1

[SW2-Ethernet0/0/1]portlink-type access

[SW2-Ethernet0/0/1]portdefault vlan 300

[SW2-Ethernet0/0/1]inte0/0/2

[SW2-Ethernet0/0/2]portlink-type access

[SW2-Ethernet0/0/2]portdefault vlan 400

[SW2-Ethernet0/0/2]intg0/0/1

[SW2-GigabitEthernet0/0/1]portlink-type trunk

[SW2-GigabitEthernet0/0/1]porttrunk allow-pass vlan 300 400

 

OLT配置:

 

[OLT]vlanbatch 10 20

[OLT]intg0/0/1

[OLT-GigabitEthernet0/0/1]portlink-type dot1q-tunnel      //配置端口类型为dot1q-tunnel

[OLT-GigabitEthernet0/0/1]portdefault vlan 10               //配置外层VLAN ID(这里使用的是静态的外层VLAN标记技术,现网通常使用灵活QINQ技术打外层标签)

[OLT-GigabitEthernet0/0/1]intg0/0/2

[OLT-GigabitEthernet0/0/2]portlink-type dot1q-tunnel

[OLT-GigabitEthernet0/0/2]portdefault vlan 20

[OLT-GigabitEthernet0/0/3]portlink-type trunk                 //配置端口类型为TRUNK

[OLT-GigabitEthernet0/0/3]porttrunk allow-pass vlan 10 20    //允许VLAN 10  VLAN 20流量通过,简称上行口透传业务VLAN

 

BRAS配置:

[BRAS]intg0/0/0.10             //配置子接口

[BRAS-GigabitEthernet0/0/0.10]qinqtermination pe-vid 10 ce-vid 100 to 200   //配置终结双层TAG  pe-vid为外层TAGce-vid为内层TAG

在最新版的华为模拟器中只有Router路由器支持终结多个内层VLAN,在AR系列路由器中是没有”to vlan-id”命令的。

[BRAS-GigabitEthernet0/0/0.10]ipadd 192.168.100.1 24

[BRAS-GigabitEthernet0/0/0.10]intg0/0/0.20

[BRAS-GigabitEthernet0/0/0.20]qinqtermination pe-vid 20 ce-vid 300 to 400

[BRAS-GigabitEthernet0/0/0.20]ipadd 192.168.200.1 24

 

win7  ping BRAS设备,并在OLTG0/0/3端口上抓包验证

 wKioL1ZERYbAS8a8AABasEaZrHg029.png

会发现有2VLAN 标签,外层为VLAN10,内层为VLAN100PC1

 

C3 ping BRAS设备,并在OLT G0/0/3端口上抓包验证

wKiom1ZERUuDf2TZAABelLseozs712.png

如图外层为LAN 20,内层为VLAN 300PC3

通过以上验证说明QinQ配置生效,现在OLT设备上一个端口下就可以挂4094VLAN(华为设备04095保留了)

 

这里思考一个问题:我用win 7ping BRAS的时候是双层TAG,那么BRAS回包的时候是否有TAG?如果有,那BRAS是如何区分内层TAG到底是VLAN 100 还是 VLAN 300 的呢?

 

抓取一个ICMPreply报文

wKioL1ZERaSD5ax6AABwW_Y38Pg519.png

通过上图可以发现BRAS的回报依然是双层TAG,那么他是如何区分内层VLANVLAN 100 还是 VLAN 200 呢?

BRAS上通过命令“display arp”来查看ARP

wKiom1ZERWrihPCwAAAkIreBc44624.png

通过上图可以得出结论如下结论

 

BRAS对于下行的数据流,根据ARP表项信息,对IP报文进行MAC地址及双层VLAN封装!

 

PPPOE配置:

BRAS配置


[BRAS]aaa

[BRAS-aaa]authentication-scheme test   //配置认证方案,名称为test

[BRAS-aaa-authen-test]authentication-mode local //配置认证模式为本地认证

[BRAS-aaa-authen-test]quit

[BRAS-aaa]domain pppoe                  //指定一个域名

[BRAS-aaa-domain-pppoe]authorization-schemetest   //配置域的认证方案,名称必须为已认证的方案名称

[BRAS-aaa-domain-pppoe]quit

[BRAS-aaa]local-user jack password cipherabc123   //创建一个拨号账号

[BRAS-aaa]local-user jack service-type ppp            //将账号类型设为PPP

[BRAS-aaa]quit    

[BRAS]ip pool pppoe                             //创建一个地址池

[BRAS-ip-pool-pppoe]gateway-list 10.10.10.1    //配置地址池出口的网关地址

[BRAS-ip-pool-pppoe]network 10.10.10.0 mask24   //配置地址池范围

[BRAS-ip-pool-pppoe]quit

[BRAS]interface Virtual-Template 1          //创建一个虚拟接口模板视图

[BRAS-Virtual-Template1]ip address 10.10.1.124  //配置虚拟接口地址,该地址必须和地址池内地址在同一段

[BRAS-Virtual-Template1]remote address poolpppoe //指定为客户机分配地址的地址池

[BRAS-Virtual-Template1]pppauthentication-mode pap domain pppoe

//配置验证方式为pap,指定用户采用pppoe域认证

[BRAS-Virtual-Template1]ppp ipcp dns 8.8.8.8  //配置DNS

[BRAS-Virtual-Template1]quit

[BRAS]interface g0/0/0.10

[BRAS-GigabitEthernet0/0/0.10]pppoe-serverbind virtual-template 1

//在接口上启用PPPOE协议并绑定虚拟接口认证

[BRAS-GigabitEthernet0/0/0.10]intg0/0/0.20

[BRAS-GigabitEthernet0/0/0.20]pppoe-serverbind virtual-template 1


Win7拨号验证

wKioL1ZERdezvVBKAAEIEUHrfiI319.png

wKiom1ZERY3DRzoEAAApD4K8I18847.png

 

通过验证发现拨到的地址为地址池范围内的地址,DNSBRAS指定的DNS说明配置生效。

 

抓包分析PPPOE报文

PPPOE分为“发现阶段和会话阶段”

发现阶段分为如下4个报文:

客户端广播请求PADI,查找网络中的服务器

服务器响应PADO,将自己的一些信息告知客户端

客户端向此服务器发送PADR,请求会话号

服务器端响应PADS,将分配的会话号告知对方

PPPOE发现阶段主要的任务就是请求会话号


四种报文

 

wKiom1ZERZ_gOaQqAABDn3djkdY622.png

PADI

wKioL1ZERfnwRK1GAABpVM62_MY286.png

 

PADO

wKioL1ZERgeh4V7CAABjrB7cUdQ419.png

 

PADR


 

 wKioL1ZERlKBbPaYAABrpIVvtSE126.png


PADS


wKioL1ZERqDg_Ba5AABrUx27CtU557.png

PPPOE会话阶段

会话阶段有三个过程:

LCP协商:完成二层的建链和参数协商

认证:主要使用PAP(明文)\CHAP(密文)\MSCHAP

NCP协商:使用IPCP协议,完成三层的配置

数据传输

LCP协商阶段


wKiom1ZER9OyYYWQAADB3bvg7lA161.png

wKioL1ZESB3jA8VtAABwKbG8alo972.png

LACP认证

wKioL1ZESA3zQhFtAADNhZaXw5U114.png

总结:通过本实验可以知道运营商的城域网,每个家庭用户之间是通过用户VALNC-VLAN)相互隔离的,即使你家和邻居家连接到同一台ONU设备,由于VLAN不同也是相互隔离的。在上层的OLT或者汇聚层交换机上,为了保证VLAN数量够用,需要使用到第二层标签,称为运营商VLANP-VLAN)再次隔离。带着两层标签的用户业务数据到达路由器BRAS后,会通过终结两层标签的方式取出三层数据。同时运营商网络为了实现用户的身份验证和计费等操作,使用了PPPOE技术。


本文转自Y.weisheng 51CTO博客,原文链接:http://blog.51cto.com/yuan2/1712218,如需转载请自行联系原作者

相关文章
|
3月前
|
存储 缓存 安全
某鱼电商接口架构深度剖析:从稳定性到高性能的技术密码
某鱼电商接口架构揭秘:分层解耦、安全加固、性能优化三维设计,实现200ms内响应、故障率低于0.1%。详解三层架构、多引擎存储、异步发布、WebSocket通信与全链路防护,助力开发者突破电商接口“三难”困境。
|
4月前
|
数据采集 监控 JavaScript
移动端性能监控探索:鸿蒙 NEXT 探针架构与技术实现
阿里云 ARMS 团队倾力打造的鸿蒙 NEXT SDK,为鸿蒙应用提供了业界领先的全链路监控解决方案。这不仅仅是一个 SDK,更是您洞察用户体验、优化应用性能的智能伙伴。
692 43
|
3月前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
717 23
|
3月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
416 2
|
4月前
|
Cloud Native API 开发者
Gemini 2.5 Flash 技术拆解:从 MoE 架构到阿里云生态落地指南
2025年9月,谷歌Gemini 2.5 Flash发布,性能提升5%、成本降24%,引发行业关注。其MoE架构、百万上下文与“思考”范式,助力阿里云开发者高效构建云原生应用。本文解析技术内核,结合汽车、物流等案例,提供落地指南与避坑建议,展望大模型与流计算融合前景。
619 6
|
3月前
|
存储 人工智能 搜索推荐
拔俗AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教融合大语言模型、教育知识图谱、多模态感知与智能体技术,重构“教、学、评、辅”全链路。通过微调LLM、精准诊断错因、多模态交互与自主任务规划,实现个性化教学。轻量化部署与隐私保护设计保障落地安全,未来将向情感感知与教育深度协同演进。(238字)
439 0
|
4月前
|
JSON 供应链 监控
1688商品详情API技术深度解析:从接口架构到数据融合实战
1688商品详情API(item_get接口)可通过商品ID获取标题、价格、库存、SKU等核心数据,适用于价格监控、供应链管理等场景。支持JSON格式返回,需企业认证。Python示例展示如何调用接口获取商品信息。
|
4月前
|
数据可视化 前端开发 数据管理
什么是低代码?一文看懂:低代码技术的发展历程及技术架构
低代码开发平台通过可视化界面与组件化设计,大幅降低编程门槛,使开发者无需大量编码即可快速构建应用。它具备可视化开发、预制组件、低技术门槛及全流程支持等核心特征,适用于业务流程自动化、数据管理、客户关系管理等多种场景。自萌芽期至今,低代码不断演进,成为企业数字化转型的重要工具,显著提升开发效率、降低成本,并推动全民开发者时代的到来。
903 0
什么是低代码?一文看懂:低代码技术的发展历程及技术架构
|
4月前
|
Kubernetes Java 微服务
Spring Cloud 微服务架构技术解析与实践指南
本文档全面介绍 Spring Cloud 微服务架构的核心组件、设计理念和实现方案。作为构建分布式系统的综合工具箱,Spring Cloud 为微服务架构提供了服务发现、配置管理、负载均衡、熔断器等关键功能的标准化实现。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
530 0