本文档介绍多生成树(MST)交换机上的每VLAN生成树(PVST)模拟的用途和功能。它还解决了为避免PVST模拟不一致而必须遵循的基本规则以及这些不一致的原因。
思科建议您对MST概念(如通用和内部生成树(CIST)和边界端口)有基本的了解。
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
通常,MST区域会连接到其他域 — 每VLAN生成树加号(PVST+)或快速PVST+区域。运行PVST+(或快速)的这些交换机无法处理MST类型网桥协议数据单元(BPDU)。 因此,必须运行向后兼容机制,以便这两个域能够无缝交互。这是PVST模拟地址和实现的功能。
此模拟只能在边界端口上运行 — 这些端口直接连接到PVST+域交换机。在运行MST的交换机的端口上收到共享生成树协议(SSTP)BPDU会触发PVST模拟机制。
在此拓扑中,交换机1(SW1)运行PVST+,而交换机SW2、SW3和SW4运行MST,并且都位于同一区域。
SW2#show spanning-tree mst configuration
Name [TEST]
Revision 1 Instances configured 2
Instance Vlans mapped
-------- -----------------------------------------------
0 1
1 2-4094
---------------------------------------------------------
SW3#show spanning-tree mst configuration
Name [TEST]
Revision 1 Instances configured 2
Instance Vlans mapped
-------- --------------------------------------------------
0 1
1 2-4094
------------------------------------------------------------
SW4#show spanning-tree mst configuration
Name [TEST]
Revision 1 Instances configured 2
Instance Vlans mapped
-------- --------------------------------------------------
0 1
1 2-4094
------------------------------------------------------------
使用这种拓扑(MST和非MST区域的混合),CIST的根网桥位于以下两个位置之一:
PVST模拟使用两个关键规则无缝运行:
如果不遵守这两条规则,则会遇到PVST模拟故障。这两条规则在某种程度上与根防护功能相同,并且实际上是从它派生的。
接下来的部分将逐个检查规则(场景),以说明PVST模拟的工作原理。
在此场景中,SW1是根桥。其配置如下:
spanning-tree vlan 1 priority 8192
spanning-tree vlan 2-4094 priority 4096
SW2具有以下配置:
spanning-tree mst 0 priority 12288
spanning-tree mst 1 priority 0
SW3具有以下配置:
spanning-tree mst 0 priority 16384
SW4具有以下配置:
spanning-tree mst 0 priority 16384
SW1听不到任何可以理解的BPDU,因此它选择自己为所有VLAN的根,并开始向MST区域交换机发送BPDU。当SW2在Fa0/1上收到SSTP BPDU时,它了解该接口已连接到PVST+域。随后,它会设置标志,以便在此接口上启用PVST模拟。
要了解的一个重要概念是,只有VLAN 1的电气和电子工程师协会(IEEE)BPDU会被处理以进行根桥选举。这仅与来自MST区域的实例0信息进行比较。不会使用其他实例信息来为CIST选择根网桥。除VLAN 1外,PVST+域中没有其他VLAN信息用于选举CIST根网桥。
这里会出现一个问题,即其他BPDU会发生什么情况。SW1允许这些VLAN通过其到SW2的中继链路:
SW1#show interfaces fa0/1 trunk
Port Mode Encapsulation Status Native vlan
Fa0/1 on 802.1q trunking 1
Port Vlans allowed on trunk
Fa0/1 1-4094
Port Vlans allowed and active in management domain
Fa0/1 1-2,10,17,29,34,38,45,56,67,89,100,200,300,333,500,666,999
Port Vlans in spanning tree forwarding state and not pruned
Fa0/1 1-2,10,17,29,34,38,45,56,67,89,100,200,300,333,500,666,999
SW1为每个VLAN生成一个BPDU,并将其发送到SW2。这些BPDU仅用于在PVST模拟中进行一致性检查。但是,他们的信息不会复制到任何位置。
SW1#show spanning-tree vlan 1
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 8193
Address 0022.0dba.9d00
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 8193 (priority 8192 sys-id-ext 1)
Address 0022.0dba.9d00
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 19 128.3 P2p
Fa0/4 Desg FWD 19 128.6 P2p
SW2#show spanning-tree mst 0
##### MST0 vlans mapped: 1
Bridge address 0022.916d.5380 priority 12288 (12288 sysid 0)
Root address 0022.0dba.9d00 priority 8193 (8192 sysid 1)
port Fa0/1 path cost 200000
Regional Root this switch
Operational hello time 2 , forward delay 15, max age 20, txholdcount 6
Configured hello time 2 , forward delay 15, max age 20, max hops 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Root FWD 200000 128.3 P2p Bound(PVST)
Fa0/4 Desg FWD 200000 128.6 P2p
Fa0/7 Desg FWD 200000 128.9 P2p
这些输出显示SW2的Fa0/1被选为根端口。如前所述,SW1为其中继链路上允许的每个VLAN发送一个BPDU。从SW1上的调试确认:
STP: VLAN0001 Fa0/1 tx BPDU: config protocol=ieee
Data : 0000 00 00 00 200100220DBA9D00 00000000 200100220DBA9D00 8003
0000 1400
STP: VLAN0010 Fa0/1 tx BPDU: config protocol=ieee
Data : 0000 00 00 00 100A00220DBA9D00 00000000 100A00220DBA9D00 8003
0000 1400 0200 0F00
STP: VLAN0017 Fa0/1 tx BPDU: config protocol=ieee
Data : 0000 00 00 00 101100220DBA9D00 00000000 101100220DBA9D00 8003
0000 1400 0200 0F00
*snip*
当这些BPDU到达SW2时,将处理VLAN 1 BPDU,这反映在输出中。然后,其他BPDU将通过PVST模拟根防护一致性检查。
在此设置中,一致性检查通过,并且没有PVST模拟故障。为了生成故障,请将SW1上VLAN 2的优先级增加到大于8192。
SW1#conf t
SW1(config)#spanning-tree vlan 2 priority 12288
此消息在SW2上显示:
%SPANTREE-2-PVSTSIM_FAIL: Blocking root port Fa0/1: Inconsitent inferior PVST
BPDU received on VLAN 2, claiming root 12290:0022.0dba.9d00
以下是存储在SW2的Fa0/1作为根网桥信息的内容:
SW2#show spanning-tree interface fa0/1 detail
Port 3 (FastEthernet0/1) of MST0 is broken (PVST Sim. Inconsistent)
Port path cost 200000, Port priority 128, Port Identifier 128.3.
Designated root has priority 8193, address 0022.0dba.9d00
Designated bridge has priority 8193, address 0022.0dba.9d00
Designated port id is 128.3, designated path cost 0
Timers: message age 4, forward delay 0, hold 0
Number of transitions to forwarding state: 1
Link type is point-to-point by default, Boundary PVST
BPDU: sent 100, received 4189
来自SW1的信息是12290:0022.0dba.9d00,这与8193.0022.0dba.9d00进行了比较。由于端口是根端口,并且收到了次级BPDU,因此它进入PVST模拟故障状态并显示之前看到的错误消息。这是因为边界端口不能同时处于两种不同的状态 — 收到下级BPDU表示端口应移至指定端口,而通过VLAN 1信息表示端口应保持根端口。PVST模拟可防止这种混淆。端口也会移至PVST模拟不一致状态。
SW2#show spanning-tree
MST0
Spanning tree enabled protocol mstp
Root ID Priority 8193
Address 0022.0dba.9d00
Cost 200000
Port 3 (FastEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 12288 (priority 12288 sys-id-ext 0)
Address 0022.916d.5380
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/1 Root BKN*200000 128.3 P2p Bound(PVST) *PVST_Inc
Fa0/4 Desg FWD 200000 128.6 P2p
Fa0/7 Desg FWD 200000 128.9 P2p
此情况将角色与上一个场景相反。CIST的根网桥现在位于MST区域。SW2是根网桥。
SW2#show spanning-tree mst 0
##### MST0 vlans mapped: 1
Bridge address 0022.916d.5380 priority 12288 (12288 sysid 0)
Root this switch for the CIST
Operational hello time 2 , forward delay 15, max age 20, txholdcount 6
Configured hello time 2 , forward delay 15, max age 20, max hops 20<
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 200000 128.3 P2p Bound(PVST)
Fa0/4 Desg FWD 200000 128.6 P2p
a0/7 Desg FWD 200000 128.9 P2p
Fa0/1仍是边界端口,PVST模拟在此接口上运行。现在,这又扮演了非常重要的角色。PVST+域要求每个VLAN有一个BPDU,但MST不执行此操作。PVST模拟获取实例0的网桥信息(优先级+ MAC地址),并使用此信息为接口上允许的每个VLAN创建一个BPDU。它只需为每个BPDU标记适当的VLAN ID。
这可以通过SW1上的调试进行验证:
STP: VLAN0001 rx BPDU: config protocol = ieee, packet from FastEthernet0/1 ,
linktype IEEE_SPANNING , enctype 2, encsize 17
STP: enc 01 80 C2 00 00 00 00 22 91 6D 53 83 00 26 42 42 03
STP: Data 000000000030000022916D53800000000030000022916D538080030000140002
000F00
STP: VLAN0001 Fa0/1:0000 00 00 00 30000022916D5380 00000000 30000022916D5380
8003 0
STP: VLAN0002 rx BPDU: config protocol = ieee, packet from FastEthernet0/1 ,
linktype SSTP , enctype 3, encsize 22STP: enc 01 00 0C CC CC CD 00 22 91 6D 53
83 00 32 AA AA 03 00 00 0C 01 0B
STP: Data 000000000030000022916D53800000000030000022916D538080030000140002
000F00
STP: VLAN0002 Fa0/1:0000 00 00 00 30000022916D5380 00000000 30000022 916D5380
8003 0000 1400 0200 0F00
STP: VLAN0010 rx BPDU: config protocol = ieee, packet from FastEthernet0/1 ,
linktype SSTP , enctype 3, encsize 22
STP: enc 01 00 0C CC CC CD 00 22 91 6D 53 83 00 32 AA AA 03 00 00 0C 01 0B
STP: Data 000000000030000022916D53800000000030000022916D538080030000140002
000F00
STP: VLAN0010 Fa0/1:0000 00 00 00 30000022916D5380 00 000000 30000022916D5380
8003 0000 1400 0200 0F00
为了生成此故障条件,请将SW1上VLAN 2的优先级更改为低于12,288的值。
SW1#conf t
SW1(config)#spanning-tree vlan 2 priority 8192
以下是SW2上的输出:
%SPANTREE-2-PVSTSIM_FAIL: Blocking designated port Fa0/1: Inconsitent superior PVST
BPDU received on VLAN 2, claiming root 8194:0022.0dba.9d00
来自SW1的信息是8192:0022.0dba.9d00,这与12288:0022.916d.5380相比较。由于端口是指定端口,并且收到一个上级BPDU,因此它进入BPDUPVST模拟失败状态并显示上一条错误消息。端口也会进入PVST模拟不一致状态。
SW2#show spanning-tree mst 0
##### MST0 vlans mapped: 1
Bridge address 0022.916d.5380 priority 12288 (12288 sysid 0)
Root this switch for the CIST
Operational hello time 2 , forward delay 15, max age 20, txholdcount 6
Configured hello time 2 , forward delay 15, max age 20, max hops 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg BKN*200000 128.3 P2p Bound(PVST) *PVST_Inc
Fa0/4 Desg FWD 200000 128.6 P2p
Fa0/7 Desg FWD 200000 128.9 P2p
PVST模拟在边界端口上运行,其工作方式有两种:
要使PVST模拟在无故障的情况下工作,必须满足以下两个条件:
如果不满足这些条件,则边界端口将进入PVST模拟不一致状态,直到问题得到纠正。