电信运营商城域网架构关键技术-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,如需转载请自行联系原作者

相关文章
|
15天前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
13天前
|
存储 分布式计算 关系型数据库
架构/技术框架调研
本文介绍了微服务间事务处理、调用、大数据处理、分库分表、大文本存储及数据缓存的最优解决方案。重点讨论了Seata、Dubbo、Hadoop生态系统、MyCat、ShardingSphere、对象存储服务和Redis等技术,提供了详细的原理、应用场景和优缺点分析。
|
16天前
|
监控 API 微服务
后端技术演进:从单体架构到微服务的转变
随着互联网应用的快速增长和用户需求的不断演化,传统单体架构已难以满足现代软件开发的需求。本文深入探讨了后端技术在面对复杂系统挑战时的演进路径,重点分析了从单体架构向微服务架构转变的过程、原因及优势。通过对比分析,揭示了微服务架构如何提高系统的可扩展性、灵活性和维护效率,同时指出了实施微服务时面临的挑战和最佳实践。
39 7
|
13天前
|
传感器 算法 物联网
智能停车解决方案之停车场室内导航系统(二):核心技术与系统架构构建
随着城市化进程的加速,停车难问题日益凸显。本文深入剖析智能停车系统的关键技术,包括停车场电子地图编辑绘制、物联网与传感器技术、大数据与云计算的应用、定位技术及车辆导航路径规划,为读者提供全面的技术解决方案。系统架构分为应用层、业务层、数据层和运行环境,涵盖停车场室内导航、车位占用检测、动态更新、精准导航和路径规划等方面。
62 4
|
15天前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用架构中的实践与思考
【10月更文挑战第38天】随着云计算的不断成熟和演进,云原生(Cloud-Native)已成为推动企业数字化转型的重要力量。本文从云原生的基本概念出发,深入探讨了其在现代应用架构中的实际应用,并结合代码示例,展示了云原生技术如何优化资源管理、提升系统弹性和加速开发流程。通过分析云原生的优势与面临的挑战,本文旨在为读者提供一份云原生转型的指南和启示。
29 3
|
17天前
|
网络协议 数据挖掘 5G
适用于金融和交易应用的低延迟网络:技术、架构与应用
适用于金融和交易应用的低延迟网络:技术、架构与应用
44 5
|
14天前
|
运维 Kubernetes Cloud Native
云原生技术在现代应用架构中的实践与挑战####
本文深入探讨了云原生技术的核心概念、关键技术组件及其在实际项目中的应用案例,分析了企业在向云原生转型过程中面临的主要挑战及应对策略。不同于传统摘要的概述性质,本摘要强调通过具体实例揭示云原生技术如何促进应用的灵活性、可扩展性和高效运维,同时指出实践中需注意的技术债务、安全合规等问题,为读者提供一幅云原生技术实践的全景视图。 ####
|
19天前
|
Kubernetes Cloud Native 云计算
云原生技术深度解析:重塑企业IT架构的未来####
本文深入探讨了云原生技术的核心理念、关键技术组件及其对企业IT架构转型的深远影响。通过剖析Kubernetes、微服务、容器化等核心技术,本文揭示了云原生如何提升应用的灵活性、可扩展性和可维护性,助力企业在数字化转型中保持领先地位。 ####
|
20天前
|
存储 分布式计算 分布式数据库
风险数据集市整体架构及技术实现
【11月更文挑战第11天】在当今大数据时代,风险数据集市作为金融机构的核心基础设施之一,扮演着至关重要的角色。它不仅为银行、保险等金融机构提供了全面、准确的风险数据支持,还帮助这些机构实现了风险管理的精细化和智能化。本文将深入探讨一种基于大数据Lambda架构设计的风险数据集市整体架构,并详细介绍其底层实现原理及实现方式。
43 3
|
23天前
|
机器学习/深度学习 人工智能 自然语言处理
医疗行业的语音识别技术解析:AI多模态能力平台的应用与架构
AI多模态能力平台通过语音识别技术,实现实时转录医患对话,自动生成结构化数据,提高医疗效率。平台具备强大的环境降噪、语音分离及自然语言处理能力,支持与医院系统无缝集成,广泛应用于门诊记录、多学科会诊和急诊场景,显著提升工作效率和数据准确性。