QinQ封装及终结详解

http://blog.csdn.net/lycb_gz/article/details/17066521

 

     以下内容摘自正在当当网、京东网、卓越网、互动出版网预售,即将正式发售的《华为交换机学习指南》一书(全书近千页)。本书是由华为官方授权,国内第一本,也是唯一一本华为交换机权威学习指南,是华为ICT认证培训指定教材。

当当网链接:http://product.dangdang.com/23372225.html
京东网链接:http://item.jd.com/11355972.html  

卓越网上的链接:http://www.amazon.cn/dp/B00GT743ME/ref=sr_1_1

7.3.1 QinQ技术诞生的背景

    QinQ最初主要是为扩展VLAN ID空间而产生的,但随着城域以太网的发展以及运营商精细化运作的要求,QinQ的双层标签又有了进一步的使用场景。它的内、外层标签可以代表不同的信息,如内层标签代表用户,外层标签代表业务。另外,QinQ数据帧带着两层标签穿越运营商网络,内层标签透明传送,也可以看作是一种简单、实用的VPN技术。因此它又可以作为核心MPLS VPN在城域以太网VPN的延伸,最终形成端到端的VPN技术。由于QinQ方便易用的特点,现在已经在各运营商中得到了广泛的应用,如QinQ技术在城域以太网解决方案中和多种业务相结合。特别是灵活QinQ(Selective QinQ/VLAN Stacking)的出现,使得QinQ业务更加受到了运营商的推崇和青睐。

    我们知道,普通VLAN中的一个VLAN标签是用来区分用户的,但如果想要同时区分用户和业务类型,那么怎么办呢?如图7-11是一个总公司下面连接了两个分支子公司,而各分支子公司中已对不同部门的员工采用了VLAN进行区分,但两个子公司的部门VLAN ID规划是重叠的。这样如果数据帧中只采用一层VLAN标签,总公司就无法区分数据是来自哪个子公司的也就无法针对不同子公司的数据进行任何处理了。

图7-11 QinQ典型应用示例

        为了解决这个问题,我们可以设想在总公司的交换机上为各子公司创建了不同的VLAN。这样当连接对应子公司的总公司交换机端口收到数据帧后再在数据帧外面添加一层VLAN标签(此时数据帧中就有两层VLAN标签了,原来的VLAN标签称之为内层VLAN标签,新添加的称之为外层VLAN标签),如为子公司1和子公司2的数据帧分别添加的外层VLAN标签为VLAN 10和VLAN 20,这样就可实现在总公司中对来自不同子公司的数据进行区分了,也可以对来自这两个子公司的数据提供不同的服务,即差分服务了。

       另外,在基于传统的802.1Q协议的二层局域网互联模式中,当两个用户网络需要通过服务提供商(ISP)互相访问时(如在城域以太网中),ISP必须为每个接入用户创建不同的VLAN。这种配置方法一方面使得用户的VLAN在骨干网络上可见,存在一定的安全隐患,同时因为一一对应的VLAN ID,也消耗了大量服务提供商的VLAN ID资源。这对较大的ISP来说是无法承受的,因为只有4094个VLAN ID可用),当接入的用户数目很多时可能使ISP网络的VLAN ID不够用。另外,采用这种普通VLAN部署方式下,不同的ISP接入用户就不能使用相同的VLAN ID,否则就无法实现不同接入用户间的隔离,这时用户的VLAN ID只能由ISP统一规划,导致用户没有自己规划VLAN的权利。

       通过QinQ技术可以有效地解决以上问题,因为它可以为许多不同内层VLAN标签用户使用同一个外层VLAN标签进行封装,解决了ISP的VLAN ID资源不足的问题。另外,通过外层VLAN标签对内层VLAN标签的屏蔽作用,使得用户自己的内层VLAN ID部署可以由用户自己作主,而不必由ISP来统一部署。

    这个双层VLAN标签可以当作单层VLAN标签使用,即仅使用新添加的外层公网VLAN标签,内层私网VLAN可以作为数据来传输,如在本章后面将要介绍的2 to 1的VLAN映射中;当然也可以作为双层VLAN标签来使用(如在本章后面将要介绍的2 to 2的VLAN映射中),整个数据帧中的VLAN标签由内、外双层VLAN标签共同决定,这样一来,就相当于可以使用的VLAN ID数量达到了4094×4094个了,以此来达到扩展VLAN空间的目的。通过这样的双层VLAN标签封装,可以使私网VLAN ID可以在公网上透传,既解决了用户VLAN ID的安全性问题和由用户自己规划私网VLAN ID的需求问题,又解决了ISP的VLAN ID空间不足的问题,因为在ISP中可以为需要相互访问的用户配置相同的外层VLAN,也只需为来自同一用户网络的不同VLAN提供一个VLAN ID。

7.3.2 QinQ封装和终结

     QinQ是在传统802.1Q VLAN标签头基础上再增加一层新的802.1Q VLAN标签头,如图7-12所示。由此可知,QinQ帧比传统的802.1Q帧多了四个字节,即新增的802.1Q VLAN标签。

 

图7-12 传统802.1Q帧和QinQ帧格式比较

     QinQ帧封装的过程就是把单层802.1Q标签的数据帧转换成双层802.1Q标签的数据帧。封装过程主要发生在城域网侧连接用户的交换机端口上进行的。根据不同的VLAN标签封装依据,QinQ可以分为“基本QinQ”和“灵活QinQ”两种类型。具体说明如下。

1.    基本QinQ封装

     “基本QinQ封装”是将进入一个端口的所有流量全部封装一个相同的外层VLAN标签,是一种基于端口的QinQ封装方式,也称“QinQ二层隧道”。开启端口的基本QinQ功能后,当该端口接收到已经带有VLAN标签的数据帧时,则该数据帧就将封装成双层标签的帧;如果接收到的是不带VLAN标签的数据帧,则该数据帧将封装成为带有端口缺省VLAN的一层标签的帧。

      从以上介绍可以看出,基本QinQ的VLAN标签封装不够灵活,很难有效地区分不同的用户业务,因为它对进入同一个交换机端口的所有数据帧都封装相同的外层VLAN标签。但在需要较多的VLAN时,可以使用这个基本QinQ功能,这样可以减少对VLAN ID的需求,因为进入同一个端口的所有数据帧都封装同一个外层VLAN标签。

      如在图7-13所示的网络中,企业部门1(Department1)有两个办公地,部门2(Department2)有三个办公地,两个部门的各办公地分别和网络中的PE1、PE2相连,部门1和部门2可以任意规划自己的VLAN。这样,可在PE1和PE2上通过如下思路配置QinQ二层隧道功能,使得每个部门的各个办公地网络可以互通,但两个部门之间不能互通。

      l  在PE1上,对于进入端口Port1和Port2的用户(都属于部门1)数据帧都封装外层VLAN 10,对于进入端口Port3中用户(属于部门2)数据帧都封装外层VLAN 20。

      l  在PE2上,对于进入端口Port1和Port2的用户(都属于部门2)数据帧都封装外层VLAN 20。

     l  PE1上的端口Port4和PE2上的端口Port3允许VLAN 20的用户数据帧通过,以便实现连接在PE1的Port3上部门2的用户与连接在PE2的Port1和Port2上部门2的用户互通。

     这种基本QinQ封装就相当于用一个外层的VLAN标签映射同类用户的多个内层VLAN标签,以减少ISP端设备VLAN ID的使用量。

图7-13 基本QinQ典型应用示例

2.    灵活QinQ封装

      “灵活QinQ”是对QinQ的一种更灵活的实现,是基于端口封装与基于VLAN封装的结合方式。除了能实现所有基本QinQ的功能外,灵活QinQ对于同一个端口接收的数据帧还可以根据不同的内层VLAN标签执行不同的外层标签封装。它又可分为以下三个子类:

         l  基于VLAN ID的灵活QinQ:它是基于数据帧中不同的内层标签的VLAN ID来添加不同的外层标签。即具有相同内层标签的帧添加相同的外层VLAN标签,具有不同内层标签的帧添加不同的外层VLAN标签。这就要求不同用户的内层VLAN ID或VLAN ID范围绝对不能重叠或交叉。华为S系列交换机中的S2700、S3700、S5700、S6700仅支持基于VLAN ID的灵活QinQ功能

        l  基于802.1p优先级的灵活QinQ:它是基于数据帧中不同的内层标签的802.1p优先级来添加不同的外层标签。即具有相同内层VLAN 802.1p优先级的帧添加相同的外层标签,具有不同内层VLAN 802.1p优先级的帧添加不同的外层标签。这就要求不同用户的内层VLAN的802.1p优先级或802.1p优先级范围绝对不能重叠或交叉。基于802.1p优先级的灵活QinQ在华为S系列交换机中仅S7700、S9300和S9700系列支持

        l  基于流策略的灵活QinQ:它是根据所定义的QoS策略为不同的数据帧添加不同的外层标签。基于流策略的灵活QinQ是基于端口与VLAN相结合的方式实现的,能够针对业务类型提供差别服务。基于流策略的灵活QinQ在华为S系列交换机中仅S7700、S9300和S9700系列支持

      以上三种灵活QinQ的配置方法将在本章后面具体介绍。

      当同一用户的不同业务需要使用不同的VLAN ID时,可以根据VLAN ID区间进行分流。现假设PC上网的VLAN ID范围是101~200;IPTV的VLAN ID范围是201~300;大客户的VLAN ID范围是301~400。面向用户的端口在收到用户数据后根据用户VLAN ID范围,对PC上网业务封装上外层标签100,对IPTV封装上外层标签300,对大客户封装上外层标签500。

     【说明】QinQ封装一般在交换式端口上进行,但也可以在路由子接口上进行(QinQ终结只能在路由子接口上进行)。此种方法可以通过一个子接口来透传多个标识用户的VLAN ID,这种子接口也叫QinQ Stacking子接口。这种封装方式也是基于流的QinQ封装方式,但QinQ Stacking子接口只能和L2VPN业务结合起来才有意义,不支持三层转发功能。

      在如图7-14所示的网络中,企业的部门1有多个办公地,部门2也有多个办公地。部门1的网络中使用VLAN 2~VLAN 500;部门2的网络中使用VLAN 500~VLAN 4094。PE1的Port1端口会同时收到两个部门不同VLAN区间的用户数据帧。

图7-14 灵活QinQ典型应用示例

          此时可根据图中标识的各办公地的用户VLAN ID范围在PE1和PE2上通过如下思路配置基于VLAN的灵活QinQ功能,使得每个部门的各个办公地网络可以互通,但两个部门之间不能互通。具体配置思路如下:

l  对于进入PE1的Port1端口的用户数据帧,依据其VLAN ID的不同添加对应的外层VLAN标签。如VLAN ID在2~500之间,则封装VLAN ID为10的外层标签;如VLAN ID在1000~2000之间,则封装VLAN ID为20的外层标签;

l  对于进入PE1的Port2端口的用户数据帧,如果VLAN ID在100~500之间,则封装VLAN ID为10的外层标签;

l  对于进入PE2的Port1端口的用户数据帧,如VLAN ID在1000~4094之间,则封装VLAN ID为20的外层标签;

l  对于进入PE2的Port2端口的用户数据帧,如果VLAN ID在500~2500之间,则封装VLAN ID为20的外层标签;

l  在PE1和PE2的Port3端口上允许VLAN 20的帧通过,以便实现连接在PE1的Port1端口下连接的部门2用户与连接在PE2的Port1和Port2的部门2的用户互通。

      从以上可以看出,灵活QinQ比基本QinQ的外层标签封装更加灵活,可可以根据用户数据帧中的原来的VLAN ID范围来确定封装不同的外层标签,这样更有方便了对相同网络中不同业务的用户数据流提供差分服务。

3.    QinQ/Dot1q终结子接口

      QinQ/Dot1q终结是指设备对数据帧的双层或者单层VLAN标签进行识别,根据后续的转发行为对帧中的双层或者单层VLAN标签进行剥离,然后继续传送。也就是这些VLAN标签仅在此之前生效,后面的数据传输和处理不再依据帧中的这些VLAN标签。
     【经验之谈】VLAN终结的实质包括两个方面:
    l  对接口收到的VLAN报文,去除VLAN标签后进行三层转发或其他处理。从设备其它接口转发出去的报文是否带有VLAN标签由对应的端口类型及其数据发送规则决定。
    l  对接口发送的报文,又将相应的VLAN标签信息添加到报文中后再发送。

      终结一般在路由子接口上执行,即终结子接口,如我们在单臂路由中就要配置路由子接口的802.1Q的VLAN终结。如果路由子接口是对数据帧的单层VLAN标签终结,那么该子接口称为Dot1q 终结子接口;如果路由子接口是对数据帧的双层VLAN标签终结,那么该子接口称为QinQ终结子接口。QinQ终结子接口根据终结的用户VLAN标签的类型,通常分为两种子接口:

     l  明确的QinQ终结子接口:两层VLAN标签为固定的值。

     l  模糊的QinQ终结子接口:两层VLAN标签为范围值,即:终结的内、外层标签都为一个VLAN ID范围值。

版权声明:本文为博主原创文章,未经博主允许不得转载。

1. S3900的灵活QinQ实现原理

S3900的灵活QinQ报文转发流程如下:

首先报文从下行口(开启灵活QINQ功能)进入,交换机不管报文是否带TAG,都会打上值为PVID的外层Tag,并PVID所在的VLAN中进行转发,找到出端口;然后通过内部ACL根据内层VLAN(c-tag-vlan)值修改外层VLAN ID为配置的值(此处就是灵活QINQ的配置VLAN ID值)。

需要特殊说明的是

一、              S3900的灵活QinQ下,为了支持上行口出去带外层Tag,要求下行端口PVID对应的VLAN在上行口出去一定要带Tag,想要不带Tag则通过重定向去掉Tag的方式处理;

二、              下行口上来的报文首先带PVID对应的外层VLAN,学习到的MAC地址也是在PVID对应的VLAN中,所以需要配置MAC地址映射,以避免上游下来的下行数据在S3900上广播。

2. S3900的灵活QinQ配置指导

 

组网:

 

  灵活QinQ实现原理(核心交换机配置)

说明:S3900的e1/0/1为下行用户端口,g1/1/1,g1/1/2为上行端口,g1/1/1,g1/1/2为一个汇聚组。

Vlan 18为网管VLAN,vlan 1538为PPPOE用户的外层VLAN,vlan 11为专线vlan,vlan200为除PPPOE业务外需要透传双层标签的业务VLAN;S3900上网管vlan接口的虚MAC地址为00e0-fc12-3457

 

要求:S8500,S3900,DSLAM/lanswitch的管理VLAN相同,管理地址在同一网段。要求管理地址之间可以互通,并且网管VLAN,专线,及VPN用户数据报文要求在S3900上单层VLAN透传。

   

配置步骤:

步骤1:配置普通QinQ上行通路

在e1/0/1上配置PVID(举例1538)和端口类型和使能普通QinQ;同时在上行口上把VLAN 1538设置成带Tag上行,由于两个上行口配置相同,以下步骤都只列出一个上行口G1/1/1。

vlan 1538

#

interface Ethernet1/0/1                                                        

 undo ntdp enable                                                              

 stp disable                                                                                                                                          

 port link-type hybrid                                                                                                              

 port hybrid vlan 1538untagged                                                

 undo port hybrid vlan 1                                                       

 port hybrid pvid vlan 1538                                                    

 vlan-vpn enable             

#

interface GigabitEthernet1/1/1

undo ntdp enable                                                              

 stp disable

 port link-type hybrid

 port hybrid vlan 1538 tagged

 undo port hybrid vlan 1

配置之后,上行数据从下行口上来时,无论报文带什么Tag,都会打上1538外层Tag,然后在VLAN 1538内转发,MAC地址学习在VLAN 1538中,如果确定需要从G1/1/1出去,则带双层Tag。(浙江电信组网中,大部分DSLAM用户可以通过普通QinQ上,只要做到各DSLAM数据上行时,对应S3900上的PVID不一致就可以了)

 

步骤2:配置灵活QinQ上行通路

部分VLAN需要转变外层VLAN,即灵活QinQ的功能,如内层VLAN 1到10需要带上外层200的tag(不再是1538),如后续的IPTV用户。需要在e1/0/1上进行相关配置。同时VLAN 200要在上行口G1/1/1上允许通过,并是带Tag出去

vlan 200

#

vlan 1538

#                                                                            

interface Ethernet1/0/1                                                        

 undo ntdp enable                                                               

 stp disable                                                                                                                                         

 port link-type hybrid                                                                                                               

 port hybrid vlan 200 1538untagged                                                

 undo port hybrid vlan 1                                                       

 port hybrid pvid vlan 1538                                                     

 vlan-vpn enable 

 vlan-vpn vid 200

  raw-vlan-id inbound 1 to 10

#                                                

interface GigabitEthernet1/1/1

undo ntdp enable                                                               

 stp disable

 port link-type hybrid

 port hybrid vlan 200 1538 tagged

 undo port hybrid vlan 1

                                

配置之后,上行数据从下行口上来时,如果带VLAN 1至VLAN 10的Tag,会先带上1538外层Tag,然后在VLAN 1538内转发,MAC地址学习在VLAN 1538中,然后把外层VLAN ID从1538改成200,如果确定需要从G1/1/1出去,则带双层Tag。

 

步骤3:配置灵活QinQ上下行通路时的Mac地址映射

步骤2配置完了,内层VLAN为1~10的报文源mac地址学习在1538 VLAN中,而从上行口输入的下行数据,外层VLAN为200,内层为1~10,会在VLAN 200内转发。这样由于VLAN不对称,就会出现目的mac查找不到,而在VLAN 200内广播。所以需要在下行口配置mac mapping,把VLAN 1538中的MAC地址映射到VLAN 200中一份。这样下行数据就能查到对应VLAN 200的mac地址,从而走单播。那么随着下行数据流(外层VLAN为200的)在S3900完成mac地址学习之后,是否以后的上行数据就不是广播,而是单播了呢?其实不是的。因为下行数据流的源MAC地址学习到VLAN 200上,需要把VLAN 200的mac地址映射到VLAN 1538上,这样后期下行口上来的上行数据就能在VLAN 1538中查到MAC地址从而实现已知单播转发。

interface Ethernet1/0/1                                                        

 undo ntdp enable                                                              

 stp disable                                                                                                                                          

 port link-type hybrid                                                                                                              

 port hybrid vlan 200 1538untagged                                                

 undo port hybrid vlan 1                                                       

 port hybrid pvid vlan 1538                                                    

 vlan-vpn enable

 mac-address-mapping 0 source-vlan 1538 destination-vlan 200

 vlan-vpn vid 200

  raw-vlan-id inbound 1 to 10

 

interface GigabitEthernet1/1/1

undo ntdp enable                                                              

 stp disable

 port link-type hybrid

 port hybrid vlan 200 1538 tagged

undo port hybrid vlan 1

mac-address-mapping 0 source-vlan 200 destination-vlan 1538

 

步骤4:配置灵活QinQ上行通路时的专线VLAN用户

如果VLAN 11为专线用户,此VLAN报文要求从G1/1/1上行口出去时只能带一层Tag,即还是VLAN 11,而不是双tag。这就需要用到ACL重定向来完成,把e1/0/1端口、内层VLAN为11的上行报文重定向到G1/1/1,并剥掉一层Tag。同时配置上行口G1/1/1允许通过VLAN 11。

acl number 4999

 rule 0 permit c-tag-vlan 11       

#

vlan 11

#

vlan 200

#

vlan 1538

#                                                                            

interface Ethernet1/0/1                                                        

 undo ntdp enable                                                              

 stp disable                                                                                                                                         

 port link-type hybrid                                                                                                               

 port hybrid vlan 200 1538untagged

 port hybrid vlan 11 tagged                                                

 undo port hybrid vlan 1                                                       

 port hybrid pvid vlan 1538                                                     

 vlan-vpn enable

 mac-address-mapping 0 source-vlan 1538 destination-vlan 200

 traffic-redirect inbound link-group 4999 rule 0 interface GigabitEthernet1/1/1 untagged

 vlan-vpn vid 200

  raw-vlan-id inbound 1 to 10

#

interface GigabitEthernet1/1/1

undo ntdp enable                                                              

 stp disable

 port link-type hybrid

 port hybrid vlan 11 200 1538 tagged

undo port hybrid vlan 1

mac-address-mapping 0 source-vlan 200 destination-vlan 1538       

这样配置之后,VLAN 11的报文从G1/1/1端口出去时,只会带一层VLAN Tag。对于VPN用户也可以同样处理。如果是需要把组播业务放到S3900上层去复制,也可以用这种方式把组播VLAN的数据带一层Tag上行。

以上的步骤,把数据上行的过程介绍了一下。反过来,到达上行口的下行数据通路如何处理呢?

从组网要求看都是带一层或者二层tag,所以上行口处理上比较简单,重点关注相关VLAN要允许通过。上行口的PVID根据情况进行选取,一般建议设置成一个没有业务使用的VLAN。重点需要关注下行口的tag属性配置和MAC地址映射设置。

 

步骤5:配置普通QinQ下行通路

对照步骤1,普通QinQ方式下比较简单。下行数据肯定是双层Tag,外层都是VLAN 1538。下行到DSLAM时需要把外层Tag给剥掉。所以配置要求VLAN 1538在下行口untag。举例如下,基于前面的配置,下行口不需要做修改,因为前面已经配置过了。

interface Ethernet1/0/1                                                        

 undo ntdp enable                                                              

 stp disable                                                                                                                                         

 port link-type hybrid                                                                                                               

 port hybrid vlan 200 1538untagged

 port hybrid vlan 11 tagged                                                

 undo port hybrid vlan 1                                                        

 port hybrid pvid vlan 1538                                                    

 vlan-vpn enable

 mac-address-mapping 0 source-vlan 1538 destination-vlan 200

 traffic-redirect inbound link-group 4999 rule 0 interface GigabitEthernet1/1/1 untagged

 vlan-vpn vid 200

  raw-vlan-id inbound 1 to 10

 

浙江电信组网中,大部分DSLAM用于工作于这种配置,数据流下行根据VLAN 1538和MAC地址查找到出端口,然后剥掉外层Tag之后从e1/0/1出去。

 

步骤6:配置灵活QinQ下行通路

对照步骤2,此时存在这样的下行数据流,外层Tag为VLAN 200,内层VLAN为1~10。数据到S3900的上行口G1/1/1,mac地址学习到VLAN 200,并在VLAN 200中查找目的MAC地址。由于在步骤3中配置了下行口上的MAC映射,所以他们应该能查到单播MAC地址,从而从e1/0/1转发出去。这里也需要剥掉一层Tag出去,因此,需要在下行口e1/0/1上配置允许VLAN 200通过,且untag。

interface Ethernet1/0/1                                                        

 undo ntdp enable                                                              

 stp disable                                                                                                                                          

 port link-type hybrid                                                                                                              

 port hybrid vlan 200 1538untagged

 port hybrid vlan 11 tagged                                                

 undo port hybrid vlan 1                                                       

 port hybrid pvid vlan 1538                                                    

 vlan-vpn enable

 mac-address-mapping 0 source-vlan 1538 destination-vlan 200

 traffic-redirect inbound link-group 4999 rule 0 interface GigabitEthernet1/1/1 untagged

 vlan-vpn vid 200

  raw-vlan-id inbound 1 to 10

 

 

步骤7:配置灵活QinQ下行通路时的专线VLAN用户

下行数据剥tag都是用下行口上的Tag属性来控制的,不需要用ACL重定向。那么对于VLAN 11的用户数据,从上行口下来的报文只有一层Tag,从下行口输出是也需要带一层Tag,那么就需要e1/0/1端口上做配置进行处理。但是mac地址同步骤3中所述,下行数据在VLAN 11中找不到对应的MAC地址,因为MAC地址学习到VLAN 1538上,所以也需要把VLAN 1538映射到VLAN 11一份。

interface Ethernet1/0/1                                                         

 undo ntdp enable                                                              

 stp disable                                                                                                                                         

 port link-type hybrid                                                                                                              

 port hybrid vlan 200 1538untagged

 port hybrid vlan 11 tagged                                                

 undo port hybrid vlan 1                                                       

 port hybrid pvid vlan 1538                                                    

 vlan-vpn enable

 mac-address-mapping 0 source-vlan 1538 destination-vlan 200

mac-address-mapping 1 source-vlan 1538 destination-vlan 11

 traffic-redirect inbound link-group 4999 rule 0 interface GigabitEthernet1/1/1 untagged

 vlan-vpn vid 200

  raw-vlan-id inbound 1 to 10

 

步骤8:配置灵活QinQ管理VLAN用户

首先,S3900可以把下行端口上来的管理VLAN上行数据通过只带一层Tag的方式,送到上行设备,做到上行设备跟下面DSLAM管理VLAN的互通;同样,也可以让S3900 CPU发送管理VLAN的报文时带一层tag到上行设备,实现与上行设备的互通。具体方式同前面的专线用户,区别点为VLAN 18从上行口出去要带Tag,这是为了确保S3900 CPU发出的报文能带上VLAN 18的tag。

其次,S3900与下挂DSLAM设备的通信,由于所有设备管理VLAN在一个VLAN内,在前面的配置基础上,从下行口上来的管理VLAN的报文被重定向到上行口了,导致不通。所以S3900与下挂DSLAM设备的通信的规避处理是,还需要增加一个ACL,把对应本交换虚接口MAC地址的报文,重定向上CPU。(举例中的虚接口mac地址为00e0-fc12-3457)。ARP报文不需要特殊处理,因为ARP请求报文会广播上CPU,而目的是S3900的ARP响应报文目的MAC也是虚接口MAC地址。

acl number 4995

 rule 0 permit dest 00e0-fc12-3457 ffff-ffff-ffff c-tag-vlan 18

acl number 4996

 rule 0 permit c-tag-vlan 18

acl number 4999

 rule 0 permit c-tag-vlan 11

#

vlan 1

#

vlan 11

#

vlan 18

#

vlan 200

#

vlan 1538

#

interface Vlan-interface18

 ip address 1.1.1.2 255.255.255.0

#

interface Ethernet1/0/1                                                        

 undo ntdp enable                                                              

 stp disable                                                                                                                                          

 port link-type hybrid                                                                                                              

 port hybrid vlan 200 1538untagged

 port hybrid vlan 11 18 tagged                                                 

 undo port hybrid vlan 1                                                       

 port hybrid pvid vlan 1538                                                    

 vlan-vpn enable

 mac-address-mapping 0 source-vlan 1538 destination-vlan 200

mac-address-mapping 1 source-vlan 1538 destination-vlan 11

 traffic-redirect inbound link-group 4999 rule 0 interface GigabitEthernet1/1/1 untagged

traffic-redirect inbound link-group 4996 rule 0 interface GigabitEthernet1/1/1 untagged

 traffic-redirect inbound link-group 4995 rule 0 cpu    ;上面两条有顺序要求

 vlan-vpn vid 200

  raw-vlan-id inbound 1 to 10

 

#

interface GigabitEthernet1/1/1

undo ntdp enable                                                              

 stp disable

 port link-type hybrid

 port hybrid vlan 11 18  200 1538 tagged -------------VLAN 18需要带Tag

undo port hybrid vlan 1

mac-address-mapping 0 source-vlan 200 destination-vlan 1538

 

前面8个步骤举例都是针对上行口为单端口的,如果上行口是聚合组,有哪些需要变化呢。假设上行链路为G1/1/1和G1/1/2构成的聚合组。

首先,需要配置聚合组,建议手动聚合;

其次,G1/1/2上必须有与G1/1/1完全相同的配置;(请在G1/1/2端口在down的状态进行配置,配置完成后,再UP起来,进行聚合);

最后,下行口上的重定向动作,需要改成重定向到聚合组。

 

关键配置脚本:

DSLAM(S3900模拟)关键配置:

vlan 18-------------------------------------------网管VLAN

#

interface Vlan-interface18

 ip address 1.1.1.4 255.255.255.0

#

interface Ethernet1/0/2------------------------DSLAM的上行端口

 port link-type hybrid

 port hybrid vlan 18 tagged

 port hybrid vlan 1 untagged

#

8500关键配置:

vlan 18----------------------------------------网管VLAN

#

interface Vlan-interface18

 ip address 1.1.1.10 255.255.255.0

#

interface GigabitEthernet1/0/24-----------S8500的下行端口,与S3900只接了一个端口

 port link-type hybrid

 port hybrid vlan 18 tagged

 port hybrid vlan 1 untagged

#

 

S3900关键配置:

link-aggregation group 1 mode manual

acl number 4995-------------匹配目的为本设备的网管VLAN接口MAC的数据流。

 rule 0 permit dest 00e0-fc12-3457 ffff-ffff-ffff c-tag-vlan 18

acl number 4996---------------匹配内层VLAN为网管VLAN的数据流。

 rule 0 permit c-tag-vlan 18

acl number 4999---------------匹配内层VLAN为专线vlan的数据流。

 rule 0 permit c-tag-vlan 11

#

vlan 1

#

vlan 11

#

vlan 18

#

vlan 200

#

vlan 1538

#

interface Vlan-interface18

 ip address 1.1.1.2 255.255.255.0

#

interface Ethernet1/0/1

undo ntdp enable                                                              

 stp disable                                                                                                                                          

 port link-type hybrid                                                                                                              

 port hybrid vlan 200 1538 untagged

 port hybrid vlan 11 18 tagged                                                 

 undo port hybrid vlan 1                                                       

 port hybrid pvid vlan 1538                                                    

 vlan-vpn enable

mac-address-mapping 0 source-vlan 1538 destination-vlan 200

 mac-address-mapping 1 source-vlan 1538 destination-vlan 11

 traffic-redirect inbound link-group 4999 rule 0 link-aggregation-group 1 untagged

 traffic-redirect inbound link-group 4996 rule 0 link-aggregation-group 1 untagged

 traffic-redirect inbound link-group 4995 rule 0 cpu-------------上面两条有顺序要求

  vlan-vpn vid 200

  raw-vlan-id inbound 1 to 10

#

interface GigabitEthernet1/1/1

undo ntdp enable                                                              

 stp disable

 port link-type hybrid

 port hybrid vlan 11 18 200 1538 tagged -------------VLAN 18需要带Tag

undo port hybrid vlan 1

mac-address-mapping 0 source-vlan 200 destination-vlan 1538

port link-aggregation group 1

interface GigabitEthernet1/1/2

undo ntdp enable                                                               

 stp disable

 port link-type hybrid

 port hybrid vlan 11 18 200 1538 tagged -------------VLAN 18需要带Tag

undo port hybrid vlan 1

mac-address-mapping 0 source-vlan 200 destination-vlan 1538

port link-aggregation group 1

                                                                            

【注意】1、重定向到CPU的ACL规则(这里对应4995)必须比重定向到上行口的ACL规则(这里对应4996)后配置、下发。

2、虽然重定向支持聚合组,但是重定向本身只能做到备份作用,做不到负载分担。即,加入G1/1/1 down掉,数据流能自动切到G1/1/2上,正常情况下重定向的数据固定走一个端口。

3、G1/1/2上必须有与G1/1/1完全相同的配置;(请在G1/1/2端口在down的状态进行配置,配置完成后,再UP起来,进行聚合);

4、内层VLAN为1~10的报文源mac地址学习在1538 VLAN中,而从上行口输入的下行数据,外层VLAN为200,内层为1~10,会在VLAN 200内转发。这样由于VLAN不对称,就会出现目的mac查找不到,而在VLAN 200内广播。所以需要在下行口配置mac mapping,下行口把VLAN 1538中的MAC地址映射到VLAN 200中一份,上行口把VLAN 200中的MAC地址映射到VLAN 1538中一份,这样上下行数据就能查到对应的mac地址,从而走单播。专线及网管VLAN同理。

 

 

3. 目前S3900的启用灵活QINQ后需要注意的问题

 

A.不能起用TACACAS认证和堆叠功能。

B. 对于端口聚合,需要配置mac-address-mapping时,必须在所有的成员端口上都配置一遍mac-address-mapping,配置要求相同;

C. 端口聚合,且配置mac-address-mapping时,请先配置mac-address-mapping,再配置聚合。如果端口已经聚合,后进行mac-address-mapping配置,在端口不进行拔线、shutdown操作的情况(即聚合组不发生变化)下,功能可用,一旦发生聚合组成员变化,就可能导致出错,因此,建议保存配置重启设备,确保聚合组成员变化不会引起mac-address-mapping功能问题。

D.上行端口聚合时,如果mac地址非常多,同步工作量非常大,请尽量少的执行网线插拔、shut/undo shut操作。确实需要,请慢速执行,比如shut之后10秒再undo shut,等待mac地址同步动作完成。否则可能有部分mac地址在聚合动荡期间没有及时同步,需要等待此mac地址老化才能同步,或者手动执行undo mac-ad来触发同步。

E. 已经配置上端口聚合+mac-address-mapping的情况,如果需要删除mac-address-mapping,请先取消聚合,再删除。

F. 灵活QinQ SVLAN重映射使用了ACL,重映射的数量和ACL资源多少有关;VLAN重映射总共占用2个ACL mask(分别对应输入的Tagged报文和Untagged报文),每个CVLAN的重映射占用2条ACL规则,需要重映射的CVLAN数量越多,占用的rule越多。每个CVLAN的映射占用2条rule规则,对资源消耗比较大,各CLAN共占两个mask资源。此外,对于专线用户,从上行口输出需要untag,必须配置traffic-redirect ACL,会占用一条rule。因此,在进行灵活QinQ应用于S3900之前,需要评估一下ACL资源是否充足。建议以下几点:把总数最多的DSLAM用户通过普通QinQ的方式上行;对于专线用户,采用普通QinQ+traffic-redirect ACL进行untag的方式进行规划,减少灵活QinQ的配置;

G.MAC Mapping不能与MAC地址个数绑定、Voice VLAN、802.1X、集中式Mac认证配合使用。

posted @ 2015-10-19 22:37  贺大卫  阅读(4008)  评论(0编辑  收藏  举报