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

相关文章
|
10天前
|
Kubernetes 持续交付 Docker
现代后端开发中的微服务架构与容器化技术
本文探讨了现代后端开发中微服务架构与容器化技术的重要性和应用。微服务架构通过服务的拆分和独立部署提升了系统的灵活性和可维护性,而容器化技术则为微服务的快速部署和管理提供了解决方案。文章深入分析了微服务架构的优势、挑战以及如何利用容器化技术来支持微服务架构的实现。最后,通过实际案例展示了微服务与容器化技术在提升应用开发效率和系统稳定性方面的应用实践。【7月更文挑战第5天】
|
2天前
|
Kubernetes 监控 Docker
现代后端开发中的微服务架构与容器化技术
传统的单体应用架构在面对现代大规模应用需求时已显不足,微服务架构及其伴随的容器化技术因其灵活性和可伸缩性成为了主流选择。本文探讨了微服务架构的优势及其与传统架构的对比,详细分析了容器化技术如何支持微服务的部署与管理,以及实际应用中的最佳实践。 【7月更文挑战第13天】
6 2
|
5天前
|
运维 Kubernetes 开发者
现代后端开发中的微服务架构与容器化技术
在当今快速发展的软件开发领域中,微服务架构和容器化技术日益成为开发者关注的焦点。本文将探讨微服务架构的优势、常见的容器化解决方案以及它们如何共同推动后端开发的现代化进程。 【7月更文挑战第9天】
16 5
|
5天前
|
运维 Kubernetes 开发者
现代后端开发中的微服务架构与容器化技术
本文探讨了现代后端开发中微服务架构与容器化技术的重要性及其应用。微服务架构通过将复杂的应用拆分为独立的服务单元,提升了系统的可扩展性和灵活性。容器化技术(如Docker和Kubernetes)则为微服务的部署与管理提供了高效的解决方案,极大地简化了开发者的工作流程。文章还分析了微服务与容器化技术的优势、挑战以及实际应用场景,旨在帮助开发者更好地理解和应用这些技术,提升软件开发的效率和质量。 【7月更文挑战第9天】
|
12天前
|
弹性计算 运维 Kubernetes
阿里云ECS与混合云策略的结合,不仅为企业搭建了一个既灵活又稳定的IT基础架构,还为业务的快速发展与创新提供了坚实的技术支撑。
【7月更文挑战第3天】阿里云ECS在混合云中扮演关键角色,提供弹性计算资源和多样计费模式,确保业务连续性与灵活性。通过VPC互通、应用迁移、数据同步服务,如VPC对等连接、DTS,实现云上云下资源的高效整合。结合安全解决方案,保证在混合环境下的合规与安全。阿里云ECS助力企业数字化转型,应对市场变化。
49 1
|
3天前
|
前端开发 Linux Shell
技术心得:基于AR9331(MIPS架构)分析系统启动过程(uboot)
技术心得:基于AR9331(MIPS架构)分析系统启动过程(uboot)
|
3天前
|
存储 SQL 关系型数据库
技术好文:TiDB架构及设计实现
技术好文:TiDB架构及设计实现
10 0
|
10天前
|
运维 API 开发者
后端技术演进:从单体应用到微服务架构的转变
在数字时代的洪流中,后端技术的演进标志着软件开发的重大转变。本文将探讨如何从传统的单体应用过渡至微服务架构,这一过程涉及的不仅是代码层面的重构,更是对开发、部署和运维模式的根本变革。我们将深入分析微服务架构带来的优势与挑战,并讨论如何在保持系统稳定性的同时实现平滑过渡。通过具体案例,本文旨在为读者提供一套清晰的指南,帮助他们在面对日益复杂的业务需求时,能够有效地采用微服务架构。
|
11天前
|
缓存 Devops 微服务
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
|
11天前
|
Kubernetes Cloud Native 安全
云原生架构:推动数字化转型的关键技术
本文旨在深入探讨云原生架构如何成为推动企业数字化转型的重要技术。通过分析云原生的核心原则、实践案例和面临的挑战,揭示其在现代IT战略中的核心地位。文章将基于最新的行业报告和科学研究,提供数据支持的分析,并结合逻辑推理,为读者呈现一个全面而深刻的云原生技术视角。
21 0