10-QinQ配置
本章节下载: 10-QinQ配置 (281.20 KB)
目 录
QinQ是802.1Q in 802.1Q的简称,是基于IEEE 802.1Q技术的一种比较简单的二层VPN(Virtual Private Network,虚拟专用网络)协议。QinQ通过将一层VLAN Tag封装到私网报文上,使其携带两层VLAN Tag穿越运营商的骨干网络(又称公网),从而使运营商能够利用一个VLAN为包含多个VLAN的用户网络提供服务。QinQ最多可以提供4094×4094个VLAN,满足了城域网对VLAN数量的需求。
QinQ具备以下优点:
· 缓解公网VLAN资源日益紧缺的问题。
· 用户可以规划自己的私网VLAN,不会导致与公网VLAN冲突。
· 为用户提供了一种简单、灵活的二层VPN解决方案。
· 当运营商进行VLAN规划时,用户网络不必更改原有配置,使用户网络具有了较强的独立性。
如图1-1所示,QinQ报文在运营商网络中传输时带有双层VLAN Tag:
· 内层VLAN Tag:为用户的私网VLAN Tag,对应图中的Customer VLAN Tag(简称CVLAN)。设备依靠该Tag在私网中传送报文。
· 外层VLAN Tag:为运营商分配给用户的公网VLAN Tag,对应图中的Service VLAN Tag(简称SVLAN)。设备依靠该Tag在公网中传送QinQ报文。
图1-1 QinQ的报文结构
在公网的传输过程中,设备只根据外层VLAN Tag转发报文,而内层VLAN Tag将被当作报文的数据部分进行传输。
图1-2 QinQ典型应用组网图
如图1-2所示,用户网络A和B的私网VLAN分别为VLAN 1~10和VLAN 1~20。运营商为用户网络A和B分配的公网VLAN分别为VLAN 3和VLAN 4。
(1) 当用户网络A和B中带私网VLAN Tag的报文进入运营商网络时,报文外面就会被分别封装上VLAN 3和VLAN 4的公网VLAN Tag。
(2) 来自不同用户网络的报文在运营商网络中传输时被隔离,即使这些用户网络各自的VLAN范围存在重叠,因为分配到的公网VLAN不同,在运营商网络中传输时也不会产生冲突。
(3) 当报文穿过运营商网络,到达运营商网络另一侧PE(Provider Edge,服务提供商网络边缘)设备后,报文被剥离公网VLAN Tag,然后再传送给用户网络的CE(Customer Edge,用户网络边缘)设备。
当端口上配置了QinQ功能后,不论从该端口收到的报文是否带有VLAN Tag,设备都会为该报文添加本端口PVID的Tag:
· 如果收到的是带有VLAN Tag的报文,该报文就成为带两层Tag的报文。
· 如果收到的是不带VLAN Tag的报文,该报文就成为带有本端口PVID的Tag的报文。
QinQ功能是以端口来划分用户或用户网络,但当多个不同用户以不同的VLAN接入到同一个端口时则无法区分用户。如果需要为不同用户的VLAN的报文添加不同的外层VLAN Tag,可以通过VLAN映射或QoS Nest功能实现。
· 对于带有两层VLAN Tag的报文,如果需要修改内层或外层VLAN ID,或同时修改内外层VLAN ID,可以通过2:2 VLAN映射功能实现。
· 如果运营商网络需要使用VLAN ID之外的匹配条件更灵活的匹配用户网络报文,或在为报文添加外层VLAN Tag时,需要同时配置其它流行为,请使用QoS Nest功能。
· 端口为报文添加外层VLAN Tag后,如果需要修改报文外层VLAN Tag中的802.1p优先级,请参见“1.5 配置外层VLAN Tag的802.1p优先级”。
有关VLAN映射的详细介绍,请参见“二层技术-以太网交换配置指导”中的“VLAN映射”。有关QoS的详细介绍,请参见“ACL和QoS配置指导”中的“QoS”。
与QinQ相关的协议规范有:
· IEEE 802.1Q:IEEE Standard for Local and Metropolitan Area Networks-Virtual Bridged Local Area Networks
· IEEE 802.1ad:IEEE Standard for Local and Metropolitan Area Networks-Virtual Bridged Local Area Networks-Amendment 4: Provider Bridges
QinQ功能应在PE设备的用户网络侧接口上进行配置。
配置QinQ功能时,需要注意:
· QinQ为报文加上外层VLAN Tag后,内层VLAN Tag将被当作报文的数据部分进行传输,报文长度将增加4个字节。因此建议用户适当增加QinQ报文传输路径上各接口的MTU(Maximum Transmission Unit,最大传输单元)值(至少为1504字节)。
· 若用户同时通过配置QinQ和VLAN映射来添加报文的VLAN Tag,且配置冲突时,按如下优先顺序配置生效:VLAN映射->QinQ。
· QinQ功能和2:2 VLAN映射功能互斥。即设备不支持在同一端口上先为报文添加外层VLAN Tag,再修改该报文的内、外层VLAN ID。
· 请不要在接口下同时开启QinQ和应用包含Nest流行为的QoS策略,否则可能导致Nest或QinQ功能不生效。
· 请不要在同一个二层以太网接口/二层聚合接口上同时配置QinQ功能、以太网服务实例与VSI关联,或在作为VXLAN隧道源接口的二层以太网接口/二层聚合接口上配置QinQ 功能。否则可能导致这些功能不可用。关于VXLAN与VSI的详细介绍,请参见“VXLAN配置指导”中的“VXLAN”。
开启了QinQ功能的端口将为其收到的报文添加该端口PVID的Tag。
开启或关闭QinQ功能之前,要先清除已有的VLAN映射表项。有关VLAN映射的详细介绍,请参见“二层技术-以太网交换配置指导”中的“VLAN映射”。
(1) 进入系统视图。
system-view
(2) 进入二层以太网接口或二层聚合接口视图。
interface interface-type interface-number
(3) 配置端口的链路类型。
port link-type { access | hybrid | trunk }
缺省情况下,端口的链路类型为Access。
(4) 配置端口允许PVID的报文通过。请根据端口的链路类型选择其中一项进行配置。
¡ 配置Access端口的所属VLAN。
port access vlan vlan-id
缺省情况下,所有Access端口都属于VLAN 1。
Access端口的PVID为其所属VLAN,且发送所属VLAN的报文时不带Tag。
¡ 配置Hybrid端口允许PVID的报文不带Tag通过。
port hybrid vlan vlan-id-list untagged
缺省情况下,Hybrid端口只允许该端口在链路类型为Access时所属VLAN的报文以Untagged方式通过。
¡ 配置Trunk端口允许PVID的报文通过。
port trunk permit vlan { vlan-id-list | all }
缺省情况下,Trunk端口只允许VLAN 1的报文通过。
(5) 开启端口的QinQ功能。
qinq enable
缺省情况下,端口的QinQ功能处于关闭状态。
TPID(Tag Protocol Identifier,标签协议标识符)值可以用来判断报文中是否带有VLAN Tag。例如,在设备上配置用户VLAN Tag和运营商VLAN Tag的TPID值分别为0x8200和0x9100,如果该设备收到的报文实际携带的内、外层VLAN Tag的TPID值分别为0x8100和0x9100,由于该报文外层VLAN Tag的TPID值与配置值相同,而内层VLAN Tag的TPID值与配置值不同,该设备会认为该报文只携带运营商VLAN Tag,而没有携带用户VLAN Tag;对于该设备收到的只带有一层VLAN Tag的报文,如果该VLAN Tag的TPID值不为0x9100,则该设备会认为该报文没有携带VLAN Tag。
通过QinQ功能为报文添加VLAN Tag时,VLAN Tag的TPID值为qinq ethernet-type service-tag 命令配置的TPID值。
(1) 进入系统视图。
system-view
(2) 配置内层VLAN Tag的TPID值。
qinq ethernet-type customer-tag hex-value
缺省情况下,内层VLAN Tag的TPID值为0x8100。
(1) 进入系统视图。
system-view
(2) 进入二层以太网接口或二层聚合接口视图。
interface interface-type interface-number
(3) 配置外层VLAN Tag的TPID值。
qinq ethernet-type service-tag hex-value
缺省情况下,外层VLAN Tag的TPID值为0x8100。
端口为报文添加外层VLAN Tag后,如果需要修改外层VLAN Tag的802.1p优先级,可以通过QoS策略,实现根据内层VLAN Tag的802.1p优先级或内层VLAN ID来标记外层VLAN Tag的802.1p优先级。
有关QoS策略和优先级信任模式的详细介绍,请参见“ACL和QoS配置指导”中的“QoS策略”和“优先级映射”。
(1) 开启端口的QinQ功能。配置方法请参见“1.3 开启QinQ功能”。
若要根据报文内层VLAN ID或内层VLAN Tag的802.1p优先级修改外层VLAN Tag的802.1p优先级,必须先在端口上开启QinQ功能。
(2) 使用qos trust dot1p命令配置端口信任报文的802.1p优先级。配置方法请参见“ACL和QoS配置指导”中的“QoS/优先级映射”。
重标记外层VLAN Tag的802.1p优先级时必须配置。
通过QoS策略修改报文外层VLAN Tag的802.1p优先级配置任务如下:
(1) 创建流分类并定义报文匹配规则
(2) 创建流行为并配置流行为的动作
(3) 定义策略
(4) 应用策略
(1) 进入系统视图。
system-view
(2) 创建流分类,并进入流分类视图。
traffic classifier classifier-name [ operator { and | or } ]
(3) 定义匹配报文的规则。请选择其中一项进行配置。
¡ 定义匹配内层VLAN ID的规则。
if-match customer-vlan-id vlan-id-list
¡ 定义匹配内层VLAN Tag的802.1p优先级的规则。
if-match customer-dot1p dot1p-value&<1-8>
(1) 进入系统视图。
system-view
(2) 创建流行为,并进入流行为视图。
traffic behavior behavior-name
(3) 重标记外层VLAN Tag的802.1p优先级。
remark dot1p dot1p-value
(1) 进入系统视图。
system-view
(2) 创建QoS策略,并进入策略视图。
qos policy policy-name
(3) 在策略中为类指定采用的流行为。
classifier classifier-name behavior behavior-name
(1) 进入系统视图。
system-view
(2) 进入二层以太网接口视图。
interface interface-type interface-number
(3) 在接口的入方向应用QoS策略。
qos apply policy policy-name inbound
在完成上述配置后,在任意视图下执行display命令可以显示开启了QinQ功能的端口,通过查看显示信息验证配置的效果。
表1-1 QinQ显示和维护
操作 |
命令 |
显示开启了QinQ功能的端口 |
display qinq [ interface interface-type interface-number ] |
· 公司A的两个分支机构Site 1和Site 2通过运营商网络进行通信,该公司各业务使用的VLAN为VLAN 10~70;公司B的两个分支机构Site 3和Site 4也通过运营商网络进行通信,该公司各业务使用的VLAN为VLAN 30~90。
· PE 1和PE 2为运营商网络的边缘设备,且二者通过TPID值为0x8200的运营商网络设备进行连接。
· 通过配置,利用运营商提供的VLAN 100使公司A的两个分支机构之间实现互通,利用运营商提供的VLAN 200使公司B的两个分支机构之间实现互通。
图1-3 QinQ配置组网图
(1) 配置PE 1
# 配置端口Ten-GigabitEthernet1/0/1为Trunk端口,且允许VLAN 100的报文通过。
<PE1> system-view
[PE1] interface ten-gigabitethernet 1/0/1
[PE1-Ten-GigabitEthernet1/0/1] port link-type trunk
[PE1-Ten-GigabitEthernet1/0/1] port trunk permit vlan 100
# 配置端口Ten-GigabitEthernet1/0/1的PVID为VLAN 100。
[PE1-Ten-GigabitEthernet1/0/1] port trunk pvid vlan 100
# 开启端口Ten-GigabitEthernet1/0/1的QinQ功能。
[PE1-Ten-GigabitEthernet1/0/1] qinq enable
[PE1-Ten-GigabitEthernet1/0/1] quit
# 配置端口Ten-GigabitEthernet1/0/2为Trunk端口,且允许VLAN 100和VLAN 200的报文通过。
[PE1] interface ten-gigabitethernet 1/0/2
[PE1-Ten-GigabitEthernet1/0/2] port link-type trunk
[PE1-Ten-GigabitEthernet1/0/2] port trunk permit vlan 100 200
# 在端口Ten-GigabitEthernet1/0/2上配置外层VLAN Tag的TPID值为0x8200。
[PE1-Ten-GigabitEthernet1/0/2] qinq ethernet-type service-tag 8200
[PE1-Ten-GigabitEthernet1/0/2] quit
# 配置端口Ten-GigabitEthernet1/0/3为Trunk端口,且允许VLAN 200的报文通过。
[PE1] interface ten-gigabitethernet 1/0/3
[PE1-Ten-GigabitEthernet1/0/3] port link-type trunk
[PE1-Ten-GigabitEthernet1/0/3] port trunk permit vlan 200
# 配置端口Ten-GigabitEthernet1/0/3的PVID为VLAN 200。
[PE1-Ten-GigabitEthernet1/0/3] port trunk pvid vlan 200
# 开启端口Ten-GigabitEthernet1/0/3的QinQ功能。
[PE1-Ten-GigabitEthernet1/0/3] qinq enable
[PE1-Ten-GigabitEthernet1/0/3] quit
(2) 配置PE 2
# 配置端口Ten-GigabitEthernet1/0/1为Trunk端口,且允许VLAN 200的报文通过。
<PE2> system-view
[PE2] interface ten-gigabitethernet 1/0/1
[PE2-Ten-GigabitEthernet1/0/1] port link-type trunk
[PE2-Ten-GigabitEthernet1/0/1] port trunk permit vlan 200
# 配置端口Ten-GigabitEthernet1/0/1的PVID为VLAN 200。
[PE2-Ten-GigabitEthernet1/0/1] port trunk pvid vlan 200
# 开启端口Ten-GigabitEthernet1/0/1的QinQ功能。
[PE2-Ten-GigabitEthernet1/0/1] qinq enable
[PE2-Ten-GigabitEthernet1/0/1] quit
# 配置端口Ten-GigabitEthernet1/0/2为Trunk端口,且允许VLAN 100和VLAN 200的报文通过。
[PE2] interface ten-gigabitethernet 1/0/2
[PE2-Ten-GigabitEthernet1/0/2] port link-type trunk
[PE2-Ten-GigabitEthernet1/0/2] port trunk permit vlan 100 200
# 在端口Ten-GigabitEthernet1/0/2上配置外层VLAN Tag的TPID值为0x8200。
[PE2-Ten-GigabitEthernet1/0/2] qinq ethernet-type service-tag 8200
[PE2-Ten-GigabitEthernet1/0/2] quit
# 配置端口Ten-GigabitEthernet1/0/3为Trunk端口,且允许VLAN 100的报文通过。
[PE2] interface ten-gigabitethernet 1/0/3
[PE2-Ten-GigabitEthernet1/0/3] port link-type trunk
[PE2-Ten-GigabitEthernet1/0/3] port trunk permit vlan 100
# 配置端口Ten-GigabitEthernet1/0/3的PVID为VLAN 100。
[PE2-Ten-GigabitEthernet1/0/3] port trunk pvid vlan 100
# 开启端口Ten-GigabitEthernet1/0/3的QinQ功能。
[PE2-Ten-GigabitEthernet1/0/3] qinq enable
[PE2-Ten-GigabitEthernet1/0/3] quit
(3) 配置公共网络设备
配置运营商网络中PE 1到PE 2之间路径上的设备端口都允许VLAN 100和VLAN 200的报文携带VLAN Tag通过,且这些端口的MTU值至少为1504字节。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!