01-H3C S12500 QinQ典型配置举例
本章节下载: 01-H3C S12500 QinQ典型配置举例 (203.25 KB)
H3C S12500 QinQ配置举例
Copyright © 2013 杭州华三通信技术有限公司 版权所有,保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部, 并不得以任何形式传播。本文档中的信息可能变动,恕不另行通知。 |
目 录
本文档介绍了QinQ的配置举例。
QinQ将用户的私网报文封装上外层VLAN Tag,使其携带两层VLAN Tag穿越运营商网络(公网),从而为用户提供了一种简单的二层VPN隧道技术。其实现方式可分为:
· 基本QinQ:基于端口方式实现。配置了基本QinQ功能的端口会为收到的报文添加一层本端口缺省VLAN的Tag。
· 灵活QinQ:基于端口与VLAN相结合的方式实现。通过匹配流分类,可使同一端口为不同VLAN的流量添加不同的外层VLAN Tag。
本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。
本文假设您已了解QinQ特性。
如图1所示:
· 公司A的两个分支机构Site 1和Site 2通过运营商网络进行通信,该公司各业务使用的VLAN为VLAN 10~70;公司B的两个分支机构Site 3和Site 4也通过运营商网络进行通信,该公司各业务使用的VLAN为VLAN 30~90。
· PE 1和PE 2为运营商网络的边缘设备,且二者通过TPID(Tag Protocol Identifier,标签协议标识符)值为0x8200的第三方厂商设备进行连接。
使用QinQ技术实现:
· 运营商网络分别用VLAN 100和200来承载公司A和公司B的流量,使两个公司的流量二层隔离。
· 公司A、B的两个分支机构之间,用户VLAN报文能跨运营商网络实现透明传输。
图1 基本QinQ配置组网图
基本QinQ仅需要在PE设备的用户侧接口上使能。
PE设备的网络侧接口由于要让多个运营商VLAN通过,必须配置为Trunk口或Hybrid口。
缺省情况下,S12500添加的外层VLAN Tag的TPID值为0x8100,而公网中的第三方厂商设备的TPID值为0x8200。由于两种设备的TPID值不同,会造成两者之间的VLAN报文无法正常互通。为了与第三方厂商的设备兼容,需要在PE 1和PE 2上修改TPID值为0x8200。TPID值应该在PE设备的网络侧接口上配置。
本举例是在S12500-CMW520-R1825P01版本上进行配置和验证的。
· 使能QINQ的接口的链路类型可以为Access、Trunk或Hybrid(无论哪种链路类型,QinQ均使用相同机制为收到的报文加上一层端口缺省VLAN的Tag)。
· 当用户侧接口是Trunk口或Hybrid口时,必须配置运营商VLAN ID为用户侧接口的缺省VLAN,并取消VLAN 1通过该端口以避免错误的报文转发(缺省情况下所有端口都属于VLAN 1)。
· 在QinQ报文的传输路径上,需要配置各端口的MTU值为至少1504字节(为报文加上外层VLAN Tag后,报文长度将增加4个字节)。
· 如果需要修改TPID值,请在组网规划时将PE设备连接用户侧和公网侧的接口安排在同一块单板上。
# 配置端口为Trunk端口,仅允许VLAN 100的报文通过。
<PE1> system-view
[PE1] vlan 100
[PE1-vlan100] quit
[PE1] interface GigabitEthernet3/0/1
[PE1-GigabitEthernet3/0/1] undo shutdown
[PE1-GigabitEthernet3/0/1] port link-type trunk
[PE1-GigabitEthernet3/0/1] undo port trunk permit vlan 1
[PE1-GigabitEthernet3/0/1] port trunk permit vlan 100
# 配置端口的缺省VLAN为VLAN 100。
[PE1-GigabitEthernet3/0/1] port trunk pvid vlan 100
# 使能端口的基本QinQ功能。
[PE1-GigabitEthernet3/0/1] qinq enable
[PE1-GigabitEthernet3/0/1] quit
# 配置端口为Trunk端口,且允许VLAN 100和VLAN 200的报文通过。
[PE1] interface GigabitEthernet3/0/2
[PE1-GigabitEthernet3/0/2] undo shutdown
[PE1-GigabitEthernet3/0/2] port link-type trunk
[PE1-GigabitEthernet3/0/2] port trunk permit vlan 100 200
# 配置外层VLAN Tag的TPID值为0x8200。
[PE1-GigabitEthernet3/0/2] qinq ethernet-type 8200
[PE1-GigabitEthernet3/0/2] quit
# 配置端口为Trunk端口,且允许VLAN 200的报文通过。
[PE1] vlan 200
[PE1-vlan200] quit
[PE1] interface GigabitEthernet3/0/3
[PE1-GigabitEthernet3/0/3] undo shutdown
[PE1-GigabitEthernet3/0/3] port link-type trunk
[PE1-GigabitEthernet3/0/3] undo port trunk permit vlan 1
[PE1-GigabitEthernet3/0/3] port trunk permit vlan 200
# 配置端口的缺省VLAN为VLAN 200。
[PE1-GigabitEthernet3/0/3] port trunk pvid vlan 200
# 使能端口的基本QinQ功能。
[PE1-GigabitEthernet3/0/3] qinq enable
[PE1-GigabitEthernet3/0/3] quit
# 配置端口为Trunk端口,且允许VLAN 200的报文通过。
<PE2> system-view
[PE2] vlan 200
[PE2-vlan200] quit
[PE2] interface GigabitEthernet3/0/1
[PE2-GigabitEthernet3/0/1] undo shutdown
[PE2-GigabitEthernet3/0/1] port link-type trunk
[PE2-GigabitEthernet3/0/1]undo port trunk permit vlan 1
[PE2-GigabitEthernet3/0/1] port trunk permit vlan 200
# 配置端口的缺省VLAN为VLAN 200。
[PE2-GigabitEthernet3/0/1] port trunk pvid vlan 200
# 使能端口的基本QinQ功能。
[PE2-GigabitEthernet3/0/1] qinq enable
[PE2-GigabitEthernet3/0/1] quit
# 配置端口为Trunk端口,且允许VLAN 100和VLAN 200的报文通过。
[PE2] interface GigabitEthernet3/0/2
[PE2-GigabitEthernet3/0/2]undo shutdown
[PE2-GigabitEthernet3/0/2] port link-type trunk
[PE2-GigabitEthernet3/0/2] port trunk permit vlan 100 200
# 配置外层VLAN Tag的TPID值为0x8200。
[PE2-GigabitEthernet3/0/2] qinq ethernet-type 8200
[PE2-GigabitEthernet3/0/2] quit
# 配置端口为Trunk端口,且允许VLAN 100的报文通过。
[PE2] vlan 100
[PE2-vlan100] quit
[PE2] interface GigabitEthernet3/0/3
[PE2-GigabitEthernet3/0/3] undo shutdown
[PE2-GigabitEthernet3/0/3] port link-type trunk
[PE2-GigabitEthernet3/0/3]undo port trunk permit vlan 1
[PE2-GigabitEthernet3/0/3] port trunk permit vlan 100
# 配置端口的缺省VLAN为VLAN 100。
[PE2-GigabitEthernet3/0/3] port trunk pvid vlan 100
# 使能端口的基本QinQ功能。
[PE2-GigabitEthernet3/0/3] qinq enable
[PE2-GigabitEthernet3/0/3] quit
对于PE 1与PE 2之间的第三方厂商设备,其关键配置如下:在连通PE 1与PE 2的端口上,都允许VLAN 100和VLAN 200的报文携带VLAN Tag通过。
(1) 同一个公司跨越运营商网络的两个分支机构的PC进行互相ping操作,如果两台PC处于同一网段且用户VLAN相同,可以ping通。可见用户VLAN信息能够跨运营商网络进行透明传输。
(2) A公司和B公司的处于同一网段且用户VLAN相同(例如VLAN 30)的PC互相进行跨公司ping操作。在PC上查看ARP表项,发现它没有学到对方公司PC的MAC地址,可见两个公司的流量被二层隔离。
· PE1
#
vlan 100
#
vlan 200
#
interface GigabitEthernet3/0/1
port link-type trunk
undo port trunk permit vlan 1
port trunk permit vlan 100
port trunk pvid vlan 100
qinq enable
#
interface GigabitEthernet3/0/2
port link-type trunk
port trunk permit vlan 100 200
qinq ethernet-type 8200
#
interface GigabitEthernet3/0/3
port link-type trunk
undo port trunk permit vlan 1
port trunk permit vlan 200
port trunk pvid vlan 200
qinq enable
#
· PE2
#
vlan 100
#
vlan 200
#
interface GigabitEthernet3/0/1
port link-type trunk
undo port trunk permit vlan 1
port trunk permit vlan 200
port trunk pvid vlan 200
qinq enable
#
interface GigabitEthernet3/0/2
port link-type trunk
port trunk permit vlan 100 200
qinq ethernet-type 8200
#
interface GigabitEthernet3/0/3
port link-type trunk
undo port trunk permit vlan 1
port trunk permit vlan 100
port trunk pvid vlan 100
qinq enable
#
如图2所示:
· PE 1和PE 2为运营商网络的边缘设备,二者通过Trunk口相连,分别属于运营商网络的VLAN 1000和VLAN 2000;CE 1、CE 2和CE 3为用户网络的边缘设备。
· 使用QinQ技术,使来自CE 1和CE 3各自的VLAN 10内的报文可经过运营商网络的VLAN 1000实现互通,并使来自CE 2和CE 3各自的VLAN 20内的报文可经过运营商网络的VLAN 2000实现互通。
图2 灵活QinQ配置举例组网图
在PE 1连接用户网络侧的两个端口上通过开启基本QinQ功能,可实现用VLAN 1000标识来自CE 1的报文,用VLAN 2000标识来自CE 2的报文。
基本QinQ的局限性在于每个端口只能为接收的所有报文封装同样的外层标签,而PE 2的端口GE3/0/2需要根据用户网络VLAN的不同来为其封装不同的外层VLAN Tag,这时就需要通过配置QoS策略来实现灵活QinQ,为匹配内层VLAN 10的报文打上VLAN 1000的Tag,并为匹配内层VLAN 20的报文打上VLAN 2000的Tag。
由于用户网络的报文仅带有一层VLAN Tag,因此在定义匹配数据包的规则时,应指定if-match match-criteria命令的参数为service-vlan-id vlan-id-list(用于匹配报文的最外层VLAN ID),而不是customer-vlan-id vlan-id-list(用于匹配带有双层VLAN Tag报文的内层VLAN ID)。
本举例是在S12500-CMW520-R1825P01版本上进行配置和验证的。
· 配置灵活QinQ功能时,需要让外层VLAN不带Tag通过用户侧端口。
· 在QinQ报文的传输路径上,需要配置各端口的MTU值为至少1504字节。
# 配置端口为Trunk端口,且允许VLAN 1000的报文通过。
<PE1> system-view
[PE1] vlan 1000
[PE1-vlan1000] quit
[PE1] interface GigabitEthernet3/0/1
[PE1-GigabitEthernet3/0/1] undo shutdown
[PE1-GigabitEthernet3/0/1] port link-type trunk
[PE1-GigabitEthernet3/0/1] undo port trunk permit vlan 1
[PE1-GigabitEthernet3/0/1] port trunk permit vlan 1000
# 配置端口的缺省VLAN为VLAN 1000。
[PE1-GigabitEthernet3/0/1] port trunk pvid vlan 1000
# 使能端口的基本QinQ功能。
[PE1-GigabitEthernet3/0/1] qinq enable
[PE1-GigabitEthernet3/0/1] quit
# 配置端口为Trunk端口,且允许VLAN 2000的报文通过。
[PE1] vlan 2000
[PE1-vlan2000] quit
[PE1] interface GigabitEthernet3/0/2
[PE1-GigabitEthernet3/0/2] undo shutdown
[PE1-GigabitEthernet3/0/2] port link-type trunk
[PE1-GigabitEthernet3/0/2] undo port trunk permit vlan 1
[PE1-GigabitEthernet3/0/2] port trunk permit vlan 2000
# 配置端口的缺省VLAN为VLAN 2000。
[PE1-GigabitEthernet3/0/2] port trunk pvid vlan 2000
# 使能端口的基本QinQ功能。
[PE1-GigabitEthernet3/0/2] qinq enable
[PE1-GigabitEthernet3/0/2] quit
# 配置端口为Trunk端口,且允许VLAN 1000和VLAN 2000的报文通过。
[PE1] interface GigabitEthernet3/0/3
[PE1-GigabitEthernet3/0/3] undo shutdown
[PE1-GigabitEthernet3/0/3] port link-type trunk
[PE1-GigabitEthernet3/0/3] port trunk permit vlan 1000 2000
[PE1-GigabitEthernet3/0/3] quit
# 配置QoS策略,为匹配内层VLAN 10的报文打上VLAN 1000的Tag,并为匹配内层VLAN 20的报文打上VLAN 2000的Tag。
<PE2> system-view
[PE2] vlan 1000
[PE2-vlan1000] quit
[PE2] vlan 2000
[PE2-vlan2000] quit
[PE2] traffic classifier tc1
[PE2-classifier-tc1] if-match service-vlan-id 10
[PE2-classifier-tc1] quit
[PE2] traffic behavior be1
[PE2-behavior-be1] nest top-most vlan 1000
[PE2-behavior-be1] quit
[PE2] traffic classifier tc2
[PE2-classifier-tc2] if-match service-vlan-id 20
[PE2-classifier-tc2] quit
[PE2] traffic behavior be2
[PE2-behavior-be2] nest top-most vlan 2000
[PE2-behavior-be2] quit
[PE2] qos policy p
[PE2-qospolicy-p] classifier tc1 behavior be1
[PE2-qospolicy-p] classifier tc2 behavior be2
[PE2-qospolicy-p] quit
# 将QoS策略应用到PE 2端口的入方向。
[PE2] interface GigabitEthernet3/0/2
[PE2-GigabitEthernet3/0/2] undo shutdown
[PE2-GigabitEthernet3/0/2] port link-type hybrid
[PE2-GigabitEthernet3/0/2] port hybrid vlan 1000 2000 untagged
[PE1-GigabitEthernet3/0/2] qos apply policy p inbound
[PE2-GigabitEthernet3/0/2] quit
# 配置端口为Trunk端口,且允许VLAN 1000和VLAN 2000的报文通过。
[PE2] interface GigabitEthernet3/0/1
[PE2-GigabitEthernet3/0/1] undo shutdown
[PE2-GigabitEthernet3/0/1] port link-type trunk
[PE2-GigabitEthernet3/0/1] port trunk permit vlan 1000 2000
CE 1和CE 3各自的VLAN 10内的设备可经过运营商网络的VLAN 1000实现互通; CE 2和CE 3各自的VLAN 20内的设备可经过运营商网络的VLAN 2000实现互通。
· 设备PE1的配置文件:
#
vlan 1000
#
vlan 2000
#
interface GigabitEthernet3/0/1
port link-type trunk
undo port trunk permit vlan 1
port trunk permit vlan 1000
port trunk pvid vlan 1000
qinq enable
#
interface GigabitEthernet3/0/2
port link-type trunk
undo port trunk permit vlan 1
port trunk permit vlan 2000
port trunk pvid vlan 2000
qinq enable
#
interface GigabitEthernet3/0/3
port link-type trunk
port trunk permit vlan 1000 2000
#
· 设备PE2的配置文件:
#
vlan 1000
#
vlan 2000
#
traffic classifier tc2 operator and
if-match service-vlan-id 20
traffic classifier tc1 operator and
if-match service-vlan-id 10
#
traffic behavior be1
nest top-most vlan-id 1000
traffic behavior be2
nest top-most vlan-id 2000
#
qos policy p
classifier tc1 behavior be1
classifier tc2 behavior be2
#
interface GigabitEthernet3/0/1
port link-mode bridge
port link-type trunk
port trunk permit vlan 1 1000 2000
#
interface GigabitEthernet3/0/2
port link-mode bridge
port link-type hybrid
port hybrid vlan 1 1000 2000 untagged
qos apply policy p inbound
#
· 《H3C S12500系列路由交换机 二层技术-以太网交换配置指导》中的“QinQ”
· 《H3C S12500系列路由交换机 二层技术-以太网交换命令参考》中的“QinQ”
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!