目录

简介

先决条件

要求

使用的组件

背景信息

拓扑

MST交换机上的基本配置

SW2、SW3和SW4上的MST配置

PVST模拟

情形 1：CIST的根网桥在PVST+域中

方案 2：CIST的根网桥位于MST区域

摘要

简介

本文档介绍多生成树(MST)交换机上的每VLAN生成树(PVST)模拟的用途和功能。它还解决了为避免PVST模拟不一致而必须遵循的基本规则以及这些不一致的原因。

先决条件

要求

思科建议您对MST概念(如通用和内部生成树(CIST)和边界端口)有基本的了解。

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

背景信息

通常，MST区域会连接到其他域 — 每VLAN生成树加号(PVST+)或快速PVST+区域。运行PVST+（或快速）的这些交换机无法处理MST类型网桥协议数据单元(BPDU)。 因此，必须运行向后兼容机制，以便这两个域能够无缝交互。这是PVST模拟地址和实现的功能。

此模拟只能在边界端口上运行 — 这些端口直接连接到PVST+域交换机。在运行MST的交换机的端口上收到共享生成树协议(SSTP)BPDU会触发PVST模拟机制。

拓扑

MST交换机上的基本配置

在此拓扑中，交换机1(SW1)运行PVST+，而交换机SW2、SW3和SW4运行MST，并且都位于同一区域。

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

------------------------------------------------------------

PVST模拟

使用这种拓扑（MST和非MST区域的混合），CIST的根网桥位于以下两个位置之一：

- 在MST区域内

- 在非MST区域内。

PVST模拟使用两个关键规则无缝运行：

- 如果CIST的根网桥在非MST区域内，则该域内VLAN 2及更高版本的生成树优先级必须优于（小于）VLAN 1的生成树优先级。

- 如果CIST的根网桥在MST区域内，则在非MST域中定义的VLAN 2及更高版本的生成树优先级必须比CIST根的优先级更差（大于）。

如果不遵守这两条规则，则会遇到PVST模拟故障。这两条规则在某种程度上与根防护功能相同，并且实际上是从它派生的。

接下来的部分将逐个检查规则（场景），以说明PVST模拟的工作原理。

情形 1：CIST的根网桥在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 &colon; 0000 00 00 00 200100220DBA9D00 00000000 200100220DBA9D00 8003

0000 1400

STP: VLAN0010 Fa0/1 tx BPDU: config protocol=ieee

Data &colon; 0000 00 00 00 100A00220DBA9D00 00000000 100A00220DBA9D00 8003

0000 1400 0200 0F00

STP: VLAN0017 Fa0/1 tx BPDU: config protocol=ieee

Data &colon; 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

方案 2：CIST的根网桥位于MST区域

此情况将角色与上一个场景相反。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模拟在边界端口上运行，其工作方式有两种：

- 如果MST区域具有CIST的根网桥，则需要PVST模拟以复制实例0信息，并为中继上允许的每个VLAN创建一个BPDU，并用适当的VLAN信息标记它。

- 如果CIST的根网桥位于MST区域之外，则仅处理VLAN 1信息需要PVST模拟。其他BPDU（VLAN 2及以上）用于一致性检查，并且这些VLAN中的信息从不复制为根网桥信息。

要使PVST模拟在无故障的情况下工作，必须满足以下两个条件：

- 如果CIST的根网桥在非MST区域内，则该域内VLAN 2及更高版本的生成树优先级必须优于（小于）VLAN 1的生成树优先级。

- 如果CIST的根网桥在MST区域内，则在非MST域中定义的VLAN 2及更高版本的生成树优先级必须比CIST根的优先级更差（大于）。

如果不满足这些条件，则边界端口将进入PVST模拟不一致状态，直到问题得到纠正。