QinQ技术的应用场景:

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

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

电信运营商城域网架构关键技术-QinQ双层标签_第1张图片

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

实验拓扑

使用eNSP模拟器(版本V100R002C00 1.2.00.370

电信运营商城域网架构关键技术-QinQ双层标签_第2张图片

环境描述

       城域网用户的接入大致拓扑为: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配置:都是基本的交换要常规配置

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配置:

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端口上抓包验证

 电信运营商城域网架构关键技术-QinQ双层标签_第3张图片

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

 

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

电信运营商城域网架构关键技术-QinQ双层标签_第4张图片

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

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

 

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

 

抓取一个ICMPreply报文

电信运营商城域网架构关键技术-QinQ双层标签_第5张图片

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

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

电信运营商城域网架构关键技术-QinQ双层标签_第6张图片

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

 

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拨号验证

电信运营商城域网架构关键技术-QinQ双层标签_第7张图片

电信运营商城域网架构关键技术-QinQ双层标签_第8张图片

 

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

 

抓包分析PPPOE报文

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

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

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

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

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

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

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


四种报文

 

wKiom1ZERZ_gOaQqAABDn3djkdY622.png

PADI

电信运营商城域网架构关键技术-QinQ双层标签_第9张图片

 

PADO

电信运营商城域网架构关键技术-QinQ双层标签_第10张图片

 

PADR


 

 电信运营商城域网架构关键技术-QinQ双层标签_第11张图片


PADS


电信运营商城域网架构关键技术-QinQ双层标签_第12张图片

PPPOE会话阶段

会话阶段有三个过程:

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

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

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

数据传输

LCP协商阶段


电信运营商城域网架构关键技术-QinQ双层标签_第13张图片

电信运营商城域网架构关键技术-QinQ双层标签_第14张图片

LACP认证

电信运营商城域网架构关键技术-QinQ双层标签_第15张图片

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