扩展VLAN特性与管理——2

来源:互联网 发布:好喝的白酒 知乎 编辑:程序博客网 时间:2024/05/20 10:13

QinQ基础

前面介绍的VLAN都是单层标签的,也就是在数据帧中只有一个802.1Q标签头,QinQ(是802.1Q-in-802.1Q的简称)技术是一项可在数据帧中的原802.1Q标签头基础上再增加一层802.1Q标签头,实现双VLAN标签的目的。要注意,启用了QinQ功能的交换机端口具有添加和剥离外层VLAN标签的双重功能,即上行传输时对帧添加外层标签,而下行传输时又可以剥离帧中的外层标签,以实现正常流量转发。

    一、QinQ技术诞生的背景

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

普通VLAN中的一个VLAN标签是用来区分用户的,如果想要同时区分用户和业务类型呢?


如上图总公司下面连接了两个分支子公司,而各分支子公司中已对不同部门的员工采用了VLAN进行区分,但两个子公司的部门VLAN ID规划是重叠的。这样如果数据帧中只采用一层VLAN标签,总公司就无法区分数据是来自哪个子公司的也就无法针对不同子公司的数据进行处理。

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

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

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

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

二、QinQ封装和终结

QinQ是在传统802.1QVLAN标签头基础上再增加一层新的802.1QVLAN标签头。


如上图,QinQ帧比传统的802.1Q帧多了4个字节,即新增的802.1Q VLAN标签。

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

1、基本QinQ封装

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

基本QinQ的VLAN标签封装很难区分不同的用户业务,因为所有数据帧都封装相同的外层VLAN标签。

如下图:


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

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

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

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

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

2、灵活QinQ封装

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

(1)基于VLANID的灵活QinQ:它是基于数据帧中不同的内层标签VLANID来添加不同的外层标签。即具有相同内层标签的帧添加相同的外层VLAN标签,具有不同内层标签的帧添加不同的外层VLAN标签。这就要求不同用户的内层VLAN ID或VLAN ID范围绝对不能重叠或交叉

(2)基于802.1p优先级的灵活QinQ:它是基于数据帧中不同的内层标签的802.1p优先级来添加不同的外层标签。即具有相同内层VLAN802.1p优先级的帧添加相同的外层标签,具有不同内层VLAN802.1p优先级的帧添加不同的外层标签。这就要求不同用户的内层VLAN的802.1p优先级或802.1p优先级范围绝对不能重叠或交叉

(3)基于流策略的灵活QinQ:它是根据所定义的QoS策略为不同的数据帧添加不同的外层标签。基于流策略的灵活QinQ是基于端口与VLAN相结合的方式实现的,能够针对业务类型提供差别服务。

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

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


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

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

(2)对于进入PE1的Port2端口的用户数据帧,如果VLANID在100~500之间,则封装VLANID为10的外层标签。

(3)对于进入PE2的Port1端口的用户数据帧,如果VLANID在1000~4094之间,则封装VLANID为20的外层标签。

(4)对于进入PE2的Port2端口的用户数据帧,如果VLANID在500~2500之间,则封装VLANID为20的外层标签。

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

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

3、QinQ/Dot1q终结子接口

QinQ/Dot1q终结是指设备对数据帧的双层或者单层VLAN标签进行识别,根据后续的转发行为对帧中的双层或单层VLAN标签进行剥离,然后继续传送。也就是这些VLAN标签仅在此之前生效,后面的数据传输和处理不再依据帧中的这些VLAN标签。

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

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

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

三、TPID的可调值

TPID(Tag ProtocolIdentifier,标签协议标识)是VLAN帧中的802.1Q标签头的一个字段,表示VLAN标签的协议类型。该字段的缺省值为0x8100,用来标识对应帧是一个带有IEEE802.1Q标签的帧。


某些厂商将设备可识别的TPID字段值设为0x9100或其他。

802.1Q标签头位于“源MAC地址”和“长度/类型”(Length/Type)字段之间。通过检查外层标签中的TPID字段值,设备可确定收到的帧承载的是运营商VLAN标签,还是用户VLAN标签。设备在收到帧后,将设备自身配置的TPID值与帧中最外层的VLAN标签的TPID字段值进行比较。如果能与帧中的TPID字段的值匹配,则该帧承载的是对应的VLAN标签。

例如,如果帧中仅一层标签匹配的话,则肯定是用户VLAN标签;如果是双层标签的QinQ帧,则仅与新添加的外层标签中的TPID字段值进行比较,如果一致则证明帧中承载的是运营商的VLAN标签。如果一个数据帧中承载的外层和内层标签中的TPID字段值分别为0x9100和0x8100的VLAN标签,而在设备上配置的TPID字段值为0x9100,通过比较可以发现仅与运营商VLAN标签中的TPID字段值一致,所以设备将认为该帧仅承载了运营商VLAN标签,而把帧中的用户VLAN标签当成了数据部分。

另外,不同运营商的系统可能将QinQ帧外层VLAN标签的TPID设置为不同值。为实现与这些系统的兼容性,可修改TPID值,使QinQ帧发送到公网时承载与特定运营商相同的TPID字段值,从而实现与该运营商设备之间的互操作性。但因为以太网帧的TPID字段与不带VLAN标签的帧的“长度/类型”(Length/Type)字段位置相同,为避免在网络中转发和处理数据包时出现问题,不可将TPID值设置为下表中各上层协议类型所对应的任意值。


四、QinQ映射

QinQ Mapping(QinQ映射)与VLAN映射类似,也是对数据帧中的VLAN标签进行替换,最根本的不同就是QinQ映射是在路由子接口上应用,而VLAN映射是在物理端口上应用的

    1、QinQ映射基本原理

QinQ映射发生在数据帧从入端口接收进来之后,从出端口转发出去之前。通过QinQ映射功能,子接口在向外发送本地VLAN的帧时,将帧中的本地VLAN标签替换成外部VLAN标签;在接收外部VLAN的帧时,又将帧中的外部VLAN标签替换成本地VLAN标签。可以看出,它的收、发过程中VLAN映射过程是相逆的。在实际组网中,QinQ映射功能可以将用户的VLAN标签映射为运营商的VLAN标签,从而起到屏蔽不同用户VLAN标签的作用。

QinQ映射功能一般部署在ISP网络边缘设备上,对用户侧上送的数据帧进行映射操作。将用户数据帧携带的VLAN标签映射为指定的VLAN标签后再接入公网。QinQ映射功能应用场景:

(1)新局域网和老局域网部署的VLANID冲突,但是新局域网需要与老局域网互通。

(2)接入公网的各个局域网规划不一致,导致VLANID冲突。

(3)公网两端的VLANID规划不对称。

2、QinQ映射方式

(1)1 to 1的映射方式。当部署QinQ映射功能设备上的子接口收到带有一层VLAN标签的数据帧时,将数据帧中携带的一层标签映射为用户指定的一层标签。发送帧的过程则相反。这与普通的VLAN映射功能一样,只不过QinQ映射作用在路由子接口上。

(2)2 to 1的映射方式。当部署QinQ映射功能设备上的子接口收到带有两层标签的数据帧时,将数据帧中携带的两层标签映射为用户指定的一层标签。发送帧的过程则相反。


如上图,PC1向PC2发送帧的具体流程:

(1)当PC1发送的数据帧到达启用了QinQ功能的Device1后被封装成双层标签(内层标签为10,外层标签为20)的VLAN帧。

(2)当配置了2 to 1映射功能的Device2的GE1/0/1.1子接口收到由Device1发来的QinQ帧后会把帧中原来的双层标签映射成一层标签50(这个映射配置需要事先在Device2的GE1/0/1.1子接口上配置好),然后通过Device2的GE1/0/2端口向ISP网络发送数据帧并透传。

(3)当Device3上的GE1/0/2端口收到Device2发来的单层VLAN帧后,在转发到GE1/0/1.1子接口时再通过2 to 1的QinQ映射功能将帧中的单层标签映射为双层标签(内层标签为30、外层标签为40)的VLAN帧(这个映射配置也需要事先在Device3的GE1/0/1.1子接口上配置好),然后通过该子接口向Device4发送。

(4)当数据到了启用了QinQ功能的Device4后会去掉帧中的外层标签,形成单层标签(标签VLANID 为30)的VLAN帧,然后向PC2发送。

PC2向PC1发送帧的流程同理,最终实现PC1和PC2的互通,尽管它们原来所属的VLAN并不相同,但通过同一个外层VLAN也可实现互通。

3、QinQ映射与VLAN映射的比较


基本QinQ配置与管理

为了使私网与公网有效分离,并最大限度地节省VLAN资源,可在设备端口上部署基本QinQ功能,新增外层802.1Q标签。其中内层标签用于标识内部网络,外层标签用于标识外部网络,从而最多可提供4094 X 4094个VLAN,并满足不同私网用户之间相同VLAN可以透明传输。

一、配置基本QinQ功能

基本QinQ功能是基于端口实现的,对于从端口进来的所有数据帧都加上同一个公网VLAN标签,实现用户数据帧在公网内转发。其实可以看成是一种基于端口的VLAN划分方式。


二、配置外层VLAN标签的TPID

如果需要实现不同厂商的设备互通,则端口的QinQ外层VLAN标签的协议类型标识(TPID)应配置为和该端口相连的设备能够识别的协议类型,需要配置外层VLAN标签的TPID值。配置方法是在对应的交换机端口视图下使用:qinq protocol protocol-id命令配置即可。参数protocol-id用来指定QinQ外层协议号。

三、配置对Untagged数据帧添加双层VLAN标签

通常如果要给数据帧打上双层标签,需要通过两台设备完成。配置以下功能后可实现通过一台设备给数据帧打上双层标签。也可实现当二层端口收到Untagged数据帧后根据实际业务或用户添加双层标签,达到区分业务和用户的目的。


示例:配置GE1/0/1端口对接收的Untagged报文添加双层VLAN标签,其中内层标签为200,外层标签为100。

<Huawei>system-view

[Huawei]interface gigabitethernet 1/0/1

[Huawei-GigabitEthernet1/0/1]port hybriduntagged vlan 100

[Huawei-GigabitEthernet1/0/1]portvlan-stacking untagged stack-vlan 100 stacking-inner-vlan 200

四、基本QinQ配置示例


如上图,网络中两个企业,企业1(Enterprise1)和企业2(Enterprise2)各有两个分支。这两个企业的各办公地的企业网都分别和运营商网络中的SwitchA和SwitchB相连,且公网中存在其他厂商设备,其外层VLAN标签的TPID值为0x9100。

现要实现企业1和企业2独立划分VLAN,两者互不影响;各企业两分支机构之间的流量通过公网透明传输,相同企业之间可以互通,不同企业之间互相隔离。可通过配置基于端口的基本QinQ来实现。利用公网提供的VLAN100使企业1的两分支机构互通,利用公网提供的VLAN200使企业2的两分支机构互通(这里都要同时用到QinQ的添加外层标签和剥离外层标签的双重功能),同时通过QinQ功能可以实现不同企业之间的互相隔离,因为不同企业的数据帧中所封装的外层标签不同,外层标签对应的VLAN所加入的QinQ端口也不同。通过在连接其他厂商设备的端口上配置修改QinQ外层VLAN标签TPID值,来实现与其他厂商设备的互通。

  1、配置思路

(1)在SwitchA和SwitchB上均创建VLAN100和VLAN200,配置连接业务的GE1/0/1和GE1/0/2端口为QinQ类型,并分别加入对应的外层VLAN,同时可实现在发送数据帧时去掉帧中的外层VLAN标签的功能。

(2)配置SwitchA和SwitchB上连接公网的GE1/0/3端口为Trunk类型,然后同时允许VLAN100和VLAN200的数据帧通过。

(3)在SwitchA和SwitchB连接公网的GE1/0/3端口上配置外层VLAN标签的TPID值,实现与其他厂商设备的互通。

2、具体配置

(1)在SwitchA和SwitchB上均创建公网VLAN100和VLAN200。

SwichA上的配置

<HUawei>system-view

[Huawei]sysname SwichA

[SwitchA]vlan batch 100 200

SwichB上的配置

<HUawei>system-view

[Huawei]sysname SwichB

[SwitchB]vlan batch 100 200

(2)把SwitchA和SwitchB的GE1/0/1、GE1/0/2端口上配置为QinQ类型,并加入对应的公网VLAN中。这样就在从端口上接收到的数据帧上添加对应的外层VLAN标签,同时允许对应的外层VLAN通过。

SwichA上的配置

[SwitchA]interface gigabitethernet 1/0/1

[SwitchA-GigabitEthernet1/0/1]portlink-type dot1q-tunnel

[SwitchA-GigabitEthernet1/0/1]port defaultvlan 100

[SwitchA-GigabitEthernet1/0/1]quit

[SwitchA]interface gigabitethernet 1/0/2

[SwitchA-GigabitEthernet1/0/2]portlink-type dot1q-tunnel

[SwitchA-GigabitEthernet1/0/2]port default vlan200

[SwitchA-GigabitEthernet1/0/2]quit

   SwichB上的配置

[SwitchB]interface gigabitethernet 1/0/1

[SwitchB-GigabitEthernet1/0/1]portlink-type dot1q-tunnel

[SwitchB-GigabitEthernet1/0/1]port defaultvlan 100

[SwitchB-GigabitEthernet1/0/1]quit

[SwitchB]interface gigabitethernet 1/0/2

[SwitchB-GigabitEthernet1/0/2]portlink-type dot1q-tunnel

[SwitchB-GigabitEthernet1/0/2]port defaultvlan 200

[SwitchB-GigabitEthernet1/0/2]quit

    (3)配置SwitchA和SwitchB连接公网侧的GE1/0/3端口为Trunk类型,并允许VLAN100和VLAN200这两个公网VLAN通过,因为每台交换机都连接了企业1和企业2,也就有对应的两种封装了不同外层标签的数据帧进入。

SwichA上的配置

[SwitchA]interface gigabitethernet 1/0/3

[SwitchA-GigabitEthernet1/0/3]portlink-type trunk

[SwitchA-GigabitEthernet1/0/3]port trunkallow-pass vlan 100 200

[SwitchA-GigabitEthernet1/0/3]quit

SwichB上的配置

[SwitchB]interface gigabitethernet 1/0/3

[SwitchB-GigabitEthernet1/0/3]portlink-type trunk

[SwitchB-GigabitEthernet1/0/3]port trunkallow-pass vlan 100 200

[SwitchB-GigabitEthernet1/0/3]quit

    (4)在SwitchA和SwitchB的GE1/0/3端口上均配置外层VLAN标签的TPID值为9100。

SwichA上的配置

[SwitchA]interface gigabitethernet 1/0/3

[SwitchA-GigabitEthernet1/0/3]qinq Protocol9100

SwichB上的配置

[SwitchB]interface gigabitethernet 1/0/3

[SwitchB-GigabitEthernet1/0/3]qinq Protocol9100

灵活QinQ配置与管理

灵活QinQ是对QinQ的一种更灵活的实现,它是基于端口与VLAN相结合的方式实现的,可以对进入同一端口的数据帧依据帧中原来的内层VLAN ID的不同来添加不同的外层VLAN标签。在发送数据帧时也会剥离帧中的外层VLAN标签。这样就可以实现对不同用户和不同业务的区分。

一、配置基于VLAN ID的灵活QinQ

基于VLAN ID的灵活QinQ功能可实现端口在接收到数据帧后,依据帧中不同内层VLAN ID添加不同的外层VLAN标签。与基于端口的基本QinQ不同,不是直接把对应的交换机端口配置为QinQ类型端口,而是通过一条qinq vlan-translation enable命令在端口上使能VLAN转换功能。


配置基于VLAN ID的灵活QinQ功能的端口类型必须是Hybrid类型,且只在入方向上生效,同时必须以Untagged方式加入添加后的外层VLAN中(此外层VLAN必须事先创建),这样就可使得该端口在发送数据帧时去掉帧中的外层VLAN,实现外层标签的剥离目的。在端口学习MAC地址时,所学习到的MAC地址是QinQ数据帧外层VLAN的MAC地址,与数据帧原来的内层VLAN无关

示例:配置GE1/0/1端口的灵活QinQ功能,对用户VLAN标签为VLAN10~VLAN13的数据帧添加外层VLAN标签100。

<Huawei>system-view

[Huawei]interface gigabitethernet 1/0/1

[Huawei-GigabitEthernet1/0/1]qinqvlan-translation enable

[Huawei-GigabitEthernet1/0/1]port hybriduntagged vlan 100

[Huawei-GigabitEthernet1/0/1]portvlan-stacking vlan 10 to 13 stack-vlan 100

    二、基于VLANID的灵活QinQ配置示例


    1、配置思路

(1)在SwitchA和SwitchB上创建所需的外层VLAN2和VLAN3(用户的内层VLAN可不创建),并将GE1/0/1端口配置为Untagged方式的Hybrid类型端口,然后都加入外层VLAN2和VLAN3中。

(2)在SwitchA和SwitchB的GE1/0/1端口上配置灵活QinQ功能,以实现在接收数据帧时依据内层VLAN标签添加对应的外层VLAN标签,在发送QinQ帧时去掉对应的外层VLAN标签,以实现正常的流量转发。

2、具体配置

(1)在SwitchA和SwitchB上创建外层VLAN2和VLAN3。

   SwitchA上的配置

SwichA上的配置

<HUawei>system-view

[Huawei]sysname SwichA

[SwitchA]vlan batch 2 3

SwichB上的配置

<HUawei>system-view

[Huawei]sysname SwichB

[SwitchB]vlan batch 2 3

    (2)在SwitchA和SwitchB上行连接运营商网络的Untagged方式Hybrid类型GE1/0/1端口上配置基于VLANID的灵活QinQ功能,添加双层VLAN标签。要注意,不同用户的内层VLAN ID绝对不能重叠和交叉。

   SwitchA上的配置

[SwitchA]interface gigabitethernet 1/0/1

[SwitchA-GigabitEthernet1/0/1]portlink-typehybrid

[SwitchA-GigabitEthernet1/0/1]port hybridUntagged vlan 2 3

[SwitchA-GigabitEthernet1/0/1]qinq vlan-translationenable

[SwitchA-GigabitEthernet1/0/1]portvlan-stacking vlan 100 to 200 stack-vlan 2

[SwitchA-GigabitEthernet1/0/1]portvlan-stacking vlan 300 to 400 stack-vlan 3

[SwitchA-GigabitEthernet1/0/1]quit

   SwitchB上的配置

[SwitchB]interface gigabitethernet 1/0/1

[SwitchB-GigabitEthernet1/0/1]portlink-typehybrid

[SwitchB-GigabitEthernet1/0/1]port hybridUntagged vlan 2 3

[SwitchB-GigabitEthernet1/0/1]qinqvlan-translation enable

[SwitchB-GigabitEthernet1/0/1]portvlan-stacking vlan 100 to 200 stack-vlan 2

[SwitchB-GigabitEthernet1/0/1]portvlan-stacking vlan 300 to 400 stack-vlan 3

[SwitchB-GigabitEthernet1/0/1]quit

(3)配置SwitchA和SwitchB连接运营商网络的上行GE1/0/2端口为Trunk类型,并同时加入外层VLAN2和VLAN3中。

SwitchA上的配置

[SwitchA]interface gigabitethernet 1/0/2

[SwitchA-GigabitEthernet1/0/2]portlink-type trunk

[SwitchA-GigabitEthernet1/0/2]port trunkallow-pass vlan 2 3

[SwitchA-GigabitEthernet1/0/2]quit

SwitchB上的配置

[SwitchB]interface gigabitethernet 1/0/2

[SwitchB-GigabitEthernet1/0/2]portlink-type trunk

[SwitchB-GigabitEthernet1/0/2]port trunkallow-pass vlan 2 3

[SwitchB-GigabitEthernet1/0/2]quit

三、配置基于802.1p优先级的灵活QinQ

基于802.1p优先级(即通常所说的VLAN优先级)的灵活QinQ功能可根据进入端口的数据帧的802.1p优先级和VLANID灵活的添加外层VLAN标签,优先保证重要用户的正常通信。

基于802.1p优先级的灵活QinQ功能仅对入方向的数据帧生效,且配置此功能的端口类型必须为Trunk或Hybrid类型。


如果端口上同时配置了portvlan-stacking vlan vlan-id1 [to vlan-id2] 8021p 8021p-value1 [ to 8021p-value2]stack-vlan vlan-id3命令(没有指定remark-8021p 8021p-value3)与port vlan-mappingvlan 8021p 8021p-value1 [to 8021p-value2] map-vlan vlan-id3命令(指定了映射后802.1p的优先级)。此时启用灵活QinQ功能后帧的802.1p优先级按照portvlan-mapping vlan 8021p命令配置生效。

如果在入端口上创建了DiffServ(差分服务)域,并配置VLAN帧的802.1p优先级映射,则此时交换机的内部优先级(是指不同的服务级别)配置就会与帧中原来的802.1p优先级不一样。这时就需要在出端口上再次配置802.1p优先级映射,重新恢复帧中原来的优先级。


示例:在GE1/0/1端口上配置基于802.1p优先级的灵活QinQ(即VLAN Stacking)功能,对VLAN ID为100、802.1p优先级为5的帧添加外层标签200,并重标记帧的802.1p优先级为1。

[Huawie]interface gigabitethernet 1/0/1

[Huawei-GigabitEthernet1/0/1]port vlan-stackingvlan 100 8021p 5 stack-vlan 200 remark-8021p 1

示例:在DiffServ域ds1中配置端口出方向上PHB行为是AF1的黄色VLAN报文对应的802.1p优先级为2。

[Huawei]diffserv domain ds1

[Huawei-dsdomain-ds1]8021p-outbound af1yello map 2

示例:则GE1/0/1端口上应用DiffServ域ds1

[Huawie]interface gigabitethernet 1/0/1

[Huawei-GigabitEthernet1/0/1]trust upstreamds1

四、配置基于流策略的灵活QinQ

“流策略”是指将流分类和流行为关联后形成的完整的QoS策略。用户可以根据数据帧中的VLANID进行流分类,然后将流分类与某种流行为关联,对符合流分类的数据帧进行相应的处理(添加外层VLAN标签),从而实现灵活QinQ功能。基于流策略的灵活QinQ功能能够针对业务类型提供差别服务。

基于流策略的灵活QinQ配置包括以下4个基本任务:

(1)定义流分类:针对数据帧中的内层VLANID进行分类。

(2)定义流行为:根据不同的内层VLANID添加不同的外层VLANID。

(3)创建QoS策略,将以上定义的流分类与流行为关联。

(4)在端口(必须是Hybrid类型端口)的入方向上应用以上创建QoS策略。

应用流策略的端口只能是不带标签的Hybrid类型



示例:为流行为b1配置创建外层VLAN标签100的动作

[Huawei]traffic behavior b1

[Huawei-behavior-b1]nest top-most vlan-id100

示例:在新创建的流策略p1中配置流分类c1关联流行为b1,然后在GE1/0/1端口入方向上应用该流策略。

[Huawie]traffic policy p1

[Huawei-trafficpolicy-p1]classifier c1behavior b1

[Huawei-trafficpolicy-p1]quit

[Huawei]interface gigabitethernet 1/0/1

[Huawei-GigabitEthernet1/0/1]traffic-policyp1 inbound

五、基于流策略的灵活QinQ配置示例


仍以7-18图为例,采用基于策略的灵活QinQ配置方法,实现连接在SwitchA和SwitchB上的PC上网用户(内层标签为100~200)和VoIP用户(内层标签为300~400)分别以VLAN2和VLAN3通过运营商互相通信。

1、配置思路

采用基于流策略来配置灵活QinQ功能时关键是要创建正确的流分类和流行为,【这里流分类就是基于帧中的内层VLAN ID进行的分类,流行为就是对不同范围的内层VLANID添加不同的外层VLAN】,最后创建一个QoS策略,把以上流分类和流行为关联起来,并应用到对应的交换机端口上。

(1)在SwitchA和SwitchB上创建所需的外层VLAN,然后定义基于内层VLANID的流分类,定义对应的流行为。

(2)在SwitchA和SwitchB下行端口设为不带标签的Hybrid类型并加入所需的外层VLAN中,然后应用流策略来实现灵活QinQ功能。

(3)在SwitchA和SwitchB连接运营商网络的端口上配置为Trunk或带有标签的Hybrid类型,并允许所有的外层VLAN通过。

2、具体配置步骤

(1)在SwitchA和SwitchB上创建所需的外层VLAN2和VLAN3

SwitchA上的配置

<Huawei>system-view

[Huawei]sysname SwichA

[SwichA]vlan batch 2 3

   SwichB上的配置

<Huawei>system-view

[Huawei]sysname SwichB

[SwichB]vlan batch 2 3

    (2)在SwitchA和SwitchB上配置流策略。

SwitchA上的配置

[SwitchA]traffic classifier c1

[SwichA-classifier-c1]if-match vlan-id 100to 200

[SwichA-classifier-c1]quit

[SwichA]traffic behavior b1

[SwichA-behavior-b1]nest top-most vlan-id 2

[SwichA-behavior-b1]quit

[SwichA]traffic classifier c2

[SwichA-classifier-c2]if-match vlan-id 300to 400

[SwichA-classifier-c2]quit

[SwichA]traffic behavior b2

[SwichA-behavior-b2]nest top-most vlan-id 3

[SwichA-behavior-b2]quit

[SwichA]traffic policy p1

[SwichA-trafficpolicy-p1]classifier c1behavior b1

[SwichA-trafficpolicy-p1]classifier c2behavior b2

[SwichA-trafficpolicy-p1]quit

SwichB上的配置

[SwitchB]traffic classifier c3

[SwichB-classifier-c3]if-match vlan-id 100to 200

[SwichB-classifier-c3]quit

[SwichB]traffic behavior b3

[SwichB-behavior-b3]nest top-most vlan-id 2

[SwichB-behavior-b3]quit

[SwichB]traffic classifier c4

[SwichB-classifier-c4]if-match vlan-id 300to 400

[SwichB-classifier-c4]quit

[SwichB]traffic behavior b4

[SwichB-behavior-b4]nest top-most vlan-id 3

[SwichB-behavior-b4]quit

[SwichB]traffic policy p2

[SwichB-trafficpolicy-p2]classifier c3behavior b3

[SwichB-trafficpolicy-p2]classifier c4behavior b4

[SwichB-trafficpolicy-p2]quit

(3)在SwitchA和SwitchB的GE1/0/1端口上应用流策略实现灵活QinQ功能。

SwitchA上的配置

[SwichA]interface gigabitethernet 1/0/1

[SwichA-GigabitEthernet1/0/1]port link-typehybrid

[SwichA-GigabitEthernet1/0/1]port hybriduntagged vlan 2 3

[SwichA-GigabitEthernet1/0/1]traffic-policyp1 inbound

[SwichA-GigabitEthernet1/0/1]quit

SwitchB上的配置

[SwichB]interface gigabitethernet 1/0/1

[SwichB-GigabitEthernet1/0/1]port link-typehybrid

[SwichB-GigabitEthernet1/0/1]port hybriduntagged vlan 2 3

[SwichB-GigabitEthernet1/0/1]traffic-policyp2  inbound

[SwichB-GigabitEthernet1/0/1]quit

(4)配置SwitchA和SwitchB与运营商网络连接的GE1/0/2端口类型为Trunk或带标签的Hybrid类型,并加入所需的外层VLAN中。

SwitchA上的配置

[SwichA]interface gigabitethernet 1/0/2

[SwichA-GigabitEthernet1/0/2]port link-typetrunk

[SwichA-GigabitEthernet1/0/2]port trunkallow-pass vlan 2 3

[SwichA-GigabitEthernet1/0/2]quit

SwitchB上的配置

[SwichB]interface gigabitethernet 1/0/2

[SwichB-GigabitEthernet1/0/2]port link-typetrunk

[SwichB-GigabitEthernet1/0/2]port trunkallow-pass vlan 2 3

[SwichB-GigabitEthernet1/0/2]quit


原创粉丝点击