更新时间:2024-01-10
1 配置 STP可选特性
1.1 STP可选特性介绍
本公司交换机的生成树协议模块支持七种额外的附加功能(下称为“可选特性”),这些功能在缺省情况下是没有配置的,各种生成树协议模式对可选特性的支持情况如下表所示。
可选特性
|
Single STP
|
PVST
|
RSTP
|
MSTP
|
Port Fast
|
Yes
|
Yes
|
No
|
No
|
BPDU Guard
|
Yes
|
Yes
|
Yes
|
Yes
|
BPDU Filter
|
Yes
|
Yes
|
No
|
No
|
Uplink Fast
|
Yes
|
Yes
|
No
|
No
|
Backbone Fast
|
Yes
|
Yes
|
No
|
No
|
Root Guard
|
Yes
|
Yes
|
Yes
|
Yes
|
Loop Guard
|
Yes
|
Yes
|
Yes
|
Yes
|
1.1.1 Port Fast
Port Fast特性可以使一个端口立刻进入Forwarding状态而不需经过从Listening到Learning的状态等待。在SSTP和PVST模式下,可以在直接连接主机或服务器的端口启用Port Fast功能,使主机或服务器可以快速的连接到网络。
Port Fast特性适用于直连主机的端口,这些端口不会收到BPDU,也就不会对网络拓扑造成影响,因此可以不经等待而进入转发状态。如果在一个连接交换机的端口上配置了Port Fast功能,就有可能造成环路。
Port Fast特性可以在全局或端口配置模式下进行设置,如果在全局模式下配置,所有的端口都会被认为是Port Fast端口而快速进入Forwarding状态。这样也更容易产生环路。为了防止因为配置Port Fast功能而造成网络环路,可以使用BPDU Guard或BPDU Filter特性对端口进行保护。
图1.1 Port Fast端口
请注意:
快速收敛的生成树协议,RSTP和MSTP,在缺省情况下已经支持端口快速进入Forwarding状态,因此不需要使用Port Fast功能。
1.1.2 BPDU Guard
一个Port Fast端口如果会收到BPDU,可以认为是由于错误的网络配置造成的,BPDU Guard特性在一个Port Fast端口收到BPDU之后,被动的对其进行保护。
在不同的生成树协议模式下,BPDU Guard的行为有所不同。在SSTP/PVST模式下,一个同时配置了BPDU Guard的Port Fast端口如果收到BPDU,该端口会被强制shutdown,此后用户只能通过手动配置将其恢复。在RSTP/MSTP模式下,一个配置了BPDU Guard的端口如果收到BPDU,该端口会在一段时间内被设置为Blocking状态。
BPDU Guard特性可以独立于Port Fast进行配置。在所有的生成树协议模式下,配置了BPDU Guard特性的端口都不会发送BPDU,但是该端口可以接收BPDU,并对其进行处理。在RSTP/MSTP模式下,可以通过在连接主机的端口上配置BPDU Guard来使这些连接到交换机的设备不会收到BPDU。
BPDU Guard特性可以在全局或端口模式下进行配置,在全局配置模式下,使用spanning-tree portfast bpduguard命令可以阻止所有端口发送BPDU。需要注意的是,在一个较复杂的网络中,不恰当的使用BPDU Guard功能可能导致环路。
1.1.3 BPDU Filter
BPDU Filter特性可以在SSTP/PVST模式下使交换机的端口不向外发送BPDU,同时也是对Port Fast端口的另一种保护手段。
在SSTP/PVST模式下,一个配置了BPDU Filter特性的Port Fast端口如果收到BPDU,该端口的BPDU Filter和Port Fast特性都会被自动关闭,从而使该端口恢复为一个普通端口,必须经过从Listening到Learning的等待才能进入Forwarding状态。
与BPDU Guard特性相同,BPDU Filter特性也可以在全局或端口下进行配置。在全局配置模式下,spanning-tree portfast bpdufilter命令可以使所有端口都不向外发送BPDU,但是端口仍然可以接收和处理BPDU。
1.1.4 Uplink Fast
Uplink Fast特性在交换机到网络根桥的连接中断的情况下,使新的根端口快速进入Forwarding状态。
一个较复杂的网络中通常包含多层的设备分布,如图1.2所示。其中汇聚层和接入层的交换机都有到上一层的冗余线路连接,并且正常情况下这些冗余连接都被生成树阻塞,以防止环路。
图1.2 层次化的交换网络示例
假如一台交换机到上层的连接中断(称为Direct Link Failure),STP会选择冗余线路上的Alternate端口成为新的Root端口,该端口在经过从Listening到Learning的状态变化之后进入Forwarding状态。如果通过全局命令spanning-tree uplinkfast配置了Uplink Fast特性,新的Root端口可以不经过状态等待而直接进入Forwarding状态,使交换机到上层的连接立刻恢复。
图1.3通过一个简单网络中的示例显示了Uplink Fast特性的工作情况。C连接B的端口在初始状态下为预备端口,当C到根桥A的连接断开之后,先前的Alternate端口被选为新的Root端口并且立刻开始转发。
图1.3 Uplink Fast示例
请注意:
Uplink Fast特性适用于慢速收敛的SSTP和PVST。在RSTP和MSTP模式下,新的根端口总是可以快速进入Forwarding状态,而不需要此功能。
1.1.5 Backbone Fast
Backbone Fast特性是对Uplink Fast技术的补充。Uplink Fast在到达指派交换机的直接连接中断的情况下使冗余线路快速开始工作,而Backbone Fast则可以检测上一层网络中发生的、非直连的网络中断,并加速端口的状态变化。
以图1.3中的网络为例,交换机C到A的连接L2称为是C到根桥的直接连接(Direct Link),该连接的中断可以由Uplink Fast功能处理。而B到A的连接L1对C来讲是非直接的连接,而该处的连接中断(Indirect Failure)则由Backbone Fast特性处理。
Backbone Fast的工作情况如图1.4所示。
图1.4 Backbone Fast示例
假设交换机C的网桥优先级高于B。当L1中断时,B会以自身的网桥优先级作为根优先级发送BPDU到C,对C而言,该BPDU包含的信息并不比自身更优先。在没有启动Backbone Fast的情况下,C到B的端口由于不再收到根桥的BPDU,该端口会在等待根桥信息老化之后变为指派端口,一般情况下,等待信息老化可能需要几秒钟的时间。如果用过spanning-tree backbonefast全局配置命令启动了该功能,一旦C的Alternate端口收到一个优先级较低的BPDU,C便可以认为在该端口上,一条非直连的、到达根桥的连接中断,然后立刻更新该端口为指派端口,而不需要等待端口信息老化。
启动Backbone Fast之后,不同角色的端口上收到低优先级BPDU会导致交换机不同的行为。如果是Alternate端口收到该报文,如上面的例子,该端口会被更新为指派端口;如果是在根端口上收到低优先级报文,并且没有其它的预备端口,交换机就会成为根。
需要注意的是,Backbone Fast特性只是跳过了端口信息老化的时间,新的指派端口仍然需要经过从Listening到Learning的状态等待才能进入转发状态。
请注意:
与Uplink Fast相同,Backbone Fast特性仅在SSTP和PVST模式中有效。
1.1.6 Root Guard
Root Guard特性可以防止一个端口因为收到高优先级的BPDU而变为Root端口。
在一个较复杂的二层网络中,管理员可能希望某台核心层的交换机作为网络的根桥,但是他却无法对所有的接入层交换机进行管理(可能因为接入层交换机属于其它客户)。这样,其他交换机的不恰当配置会导致核心交换机无法成为根。
可以通过在边缘交换机上配置Root Guard功能来防止根桥角色被管理区域之外的交换机抢夺。如果一个配置了Root Guard的端口因为收到更高级的BPDU被选为Root Port,Root Guard会自动将该端口设置为阻塞状态,并将其恢复为一个指派端口。
在PVST和MSTP模式下,Root Guard可以在各生成树实例中独立工作。在MSTP模式中,如果一个边界端口在CIST中因为Root Guard被阻塞,该端口在其它所有MSTI中都会被阻塞。边界端口是指连接到局域网主机、STP交换机、RSTP交换机或者区域之外MSTP交换机的端口。
在端口配置模式下,通过spanning-tree guard root命令在该端口上启动Root Guard特性。
请注意:
Root Guard特性在SSTP/PVST和RSTP/MSTP中的行为有所不同。在SSTP/PVST模式下,Root端口总是会被Root Guard阻塞;而在RSTP/MSTP中,端口只有在收到更高级的BPDU之后才会被Root Guard阻塞,一个原本就具有Root角色的端口是不会被阻塞的。
1.1.7 Loop Guard
Loop Guard特性在一个Root Port或Alternate Port变为Designated Port之后对其进行保护,该功能可以防止因为端口无法持续收到BPDU而造成环路。
可以通过spanning-tree loopguard default全局配置命令启动交换机的Loop Guard功能。启动后,一个Root端口或Alternate端口如果变为Designated端口,会被设置为阻塞状态。如果该端口在一段时间之后重新收到高优先级BPDU,会自动从Loop Guard中恢复。
在PVST和MSTP模式下,Loop Guard可以在各生成树实例中独立工作。在MSTP模式中,如果一个边界端口在CIST中因为Loop Guard被阻塞,该端口在其它所有MSTI中都会被阻塞。
请注意:
Loop Guard特性在SSTP/PVST和RSTP/MSTP中的行为有所不同。在SSTP/PVST模式下,Designated端口总是会被Loop Guard阻塞;而在RSTP/MSTP中,端口只在因为不能收到BPDU而变为Designated端口之后才会被阻塞,一个因为收到低优先级BPDU而具有Designated角色的端口是不会被Loop Guard阻塞的。
1.2 配置STP可选特性
1.2.1 STP可选特性配置任务
• 配置Port Fast
• 配置BPDU Guard
• 配置BPDU Filter
• 配置Uplink Fast
• 配置Backbone Fast
• 配置Root Guard
• 配置Loop Guard
• 配置Loop Fast
• 配置地址表老化保护
• 配置FDB-Flush
• 配置BPDU Terminal
1.2.2 配置Port Fast
Port Fast特性在SSTP/PVST模式下使一个端口立刻进入Forwarding状态而不需经过从Listening到Learning的状态等待。其它生成树模式下该功能无效。
在全局配置模式下,使用下面的命令配置Port Fast功能:
命令
|
目的
|
spanning-tree portfast default
|
全局启动Port Fast功能,对所有端口有效。
|
no spanning-tree portfast default
|
全局关闭Port Fast功能,不影响端口配置。
|
请注意:
Port Fast功能仅适用于连接主机的端口,若在全局进行配置,请同时配置BpduGuard或BpduFilter功能进行保护。
在交换端口配置模式下,使用下面的命令配置Port Fast功能:
命令
|
目的
|
spanning-tree portfast
|
对当前端口启动Port Fast功能。
|
no spanning-tree portfast
|
关闭当前端口的Port Fast功能,不影响全局配置。
|
1.2.3 配置BPDU Guard
BPDU Guard特性在端口收到BPDU时执行保护动作,配置了该特性的端口不会再发送BPDU。
在不同的生成树协议模式下,BPDU Guard的行为有所不同。在SSTP/PVST模式下,一个配置了BPDU Guard和Port Fast特性的端口如果收到BPDU,该端口会被强制shutdown,此后用户只能通过手动配置将其恢复。在RSTP/MSTP模式下,一个配置了BPDU Guard的端口如果收到BPDU,该端口会在一段时间内被设置为Blocking状态。
在全局配置模式下,使用下面的命令配置BPDU Guard特性:
命令
|
目的
|
spanning-tree portfast bpduguard
|
全局启动BPDU Guard功能,对所有端口有效。
|
no spanning-tree portfast bpduguard
|
全局关闭BPDU Guard功能。
|
请注意:
全局配置Port Fast功能,可能导致产生广播风暴。应当同时配置BPDU Guard或Filter进行保护。
在交换端口配置模式下,使用下面的命令配置BPDU Guard特性:
命令
|
目的
|
spanning-tree bpduguard enable
|
启动端口的BPDU Guard功能。
|
spanning-tree bpduguard disable
|
关闭端口的BPDU Guard功能,不影响全局配置。
|
no spanning-tree bpduguard
|
关闭端口的BPDU Guard功能,不影响全局配置。
|
1.2.4 配置BPDU Filter
BPDU Filter特性可以在SSTP/PVST模式下使交换机的端口不向外发送BPDU,同时也是对Port Fast端口的另一种保护手段。
在全局配置模式下,使用下面的命令配置BPDU Filter特性:
命令
|
目的
|
spanning-tree portfast bpdufilter
|
全局启动BPDU Filter功能,对所有端口有效。
|
no spanning-tree portfast bpdufilter
|
全局关闭BPDU Filter功能。
|
请注意:
全局配置Port Fast功能,可能导致产生广播风暴。应当同时配置BPDU Guard或Filter进行保护。
在交换端口配置模式下,使用下面的命令配置BPDU Filter特性:
命令
|
目的
|
spanning-tree bpdufilter enable
|
启动端口的BPDU Filter特性。
|
spanning-tree bpdufilter disable
|
关闭端口的BPDU Filter特性,不影响全局配置。
|
no spanning-tree bpdufilter
|
关闭端口的BPDU Filter特性,不影响全局配置。
|
1.2.5 配置Uplink Fast
Uplink Fast特性在交换机到网络根桥的连接中断的情况下,使新的根端口快速进入Forwarding状态。
Uplink Fast特性仅在SSTP/PVST模式下有效。
在全局配置模式下,使用下面的命令配置Uplink Fast特性:
命令
|
目的
|
spanning-tree uplinkfast
|
启动Uplink Fast特性。
|
no spanning-tree uplinkfast
|
关闭Uplink Fast特性。
|
1.2.6 配置Backbone Fast
Backbone Fast特性是对Uplink Fast技术的补充。Uplink Fast在到达指派交换机的直接连接中断的情况下使冗余线路快速开始工作,而Backbone Fast则可以检测上一层网络中发生的、非直连的网络中断,并加速端口的状态变化。
Backbone Fast特性仅在SSTP/PVST模式下有效。
在全局配置模式下,使用下面的命令配置Backbone Fast特性:
命令
|
目的
|
spanning-tree backbonefast
|
启动Backbone Fast特性。
|
no spanning-tree backbonefast
|
关闭Backbone Fast特性。
|
1.2.7 配置Root Guard
Root Guard特性可以防止一个端口因为收到高优先级的BPDU而变为Root端口。
Root Guard特性在SSTP/PVST和RSTP/MSTP中的行为有所不同。在SSTP/PVST模式下,Root端口总是会被Root Guard阻塞;而在RSTP/MSTP中,端口只有在收到更高级的BPDU之后才会被Root Guard阻塞,一个原本就具有Root角色的端口是不会被阻塞的。
在交换端口配置模式下,使用下面的命令配置Root Guard特性:
命令
|
目的
|
spanning-tree guard root
|
在端口启动Root Guard。
|
no spanning-tree guard
|
关闭端口的Root Guard和Loop Guard特性。
|
spanning-tree guard none
|
关闭端口的Root Guard和Loop Guard特性。
|
1.2.8 配置Loop Guard
Loop Guard特性在一个Root Port或Alternate Port变为Designated Port之后对其进行保护,该功能可以防止因为端口无法持续收到BPDU而造成环路。
Loop Guard特性在SSTP/PVST和RSTP/MSTP中的行为有所不同。在SSTP/PVST模式下,Designated端口总是会被Loop Guard阻塞;而在RSTP/MSTP中,端口只在因为不能收到BPDU而变为Designated端口之后才会被阻塞,一个因为收到低优先级BPDU而具有Designated角色的端口是不会被Loop Guard阻塞的。
在全局配置模式下,使用下面的命令配置Loop Guard特性:
命令
|
目的
|
spanning-tree loopguard default
|
全局启动Loop Guard特性,对所有端口有效。
|
no spanning-tree loopguard default
|
全局关闭Loop Guard。
|
在交换端口配置模式下,使用下面的命令配置Loop Guard特性:
命令
|
目的
|
spanning-tree guard loop
|
启动端口的Loop Guard特性。
|
no spanning-tree guard
|
关闭端口的Root Guard和Loop Guard特性。
|
spanning-tree guard none
|
关闭端口的Root Guard和Loop Guard特性。
|
1.2.9 配置Loop Fast
注意:
请在技术人员的指导下使用本小节描述的配置命令。
Loop Fast特性用于在特殊的网络环境下有限的提升网络的收敛性能。比如,在一个由数十台交换机组成的环网中为每个组成环网的端口启用该特性。
在全局配置模式下,使用下面的命令为所有端口配置Loop Fast:
命令
|
目的
|
spanning-tree loopfast
|
全局启动Loop Fast特性,对所有端口有效。
|
no spanning-tree loopfast
|
全局关闭Loop Fast。
|
在端口配置模式下,使用下面的命令配置Loop Fast:
命令
|
目的
|
spanning-tree loopfast
|
启动端口的Loop Fast特性。
|
no spanning-tree loopfast
|
取消端口的Loop Fast配置。
若配置全局的Loop Fast,特性在端口上仍然有效。
|
spanning-tree loopfast disable
|
禁止端口的Loop Fast。
|
1.2.10 配置地址表老化保护
在网络拓扑变化频繁的情况下,配置地址表老化保护功能可以避免生成树协议因频繁更新MAC地址表而影响通信。
快速收敛的生成树协议,比如RSTP和MSTP,在检测到生成树拓扑发生变化时,会对交换机的MAC地址表执行清除操作,删除旧的MAC地址,加速MAC地址的更新,从而确保通信可以快速恢复。在缺省配置下,交换机通过MAC地址表快速老化的方式完成清除操作。对于大多数型号的交换机,地址表的快速老化可以在1秒钟以内完成,并且对设备CPU的性能影响极小。
开启地址表老化保护功能之后,STP协议会在执行第一次老化后启动保护定时器,定时器超时之前(缺省为15秒)不会再执行老化。若在15秒内又发生了网络拓扑变化,协议会在定时器超时之后自动执行第二次老化。
请注意:
通过命令no spanning-tree fast-aging可以完全禁止STP协议执行地址表的老化。在执行此项配置之前,请确保网络不存在环路。否则,网络拓扑变化之后终端设备之间可能需要5分钟或更长时间才能恢复通信。
在全局配置模式下,通过下面的命令配置地址表老化保护功能:
命令
|
目的
|
spanning-tree fast-aging
|
启动/关闭地址表老化功能。
|
spanning-tree fast-aging protection
|
启动/关闭地址表老化保护功能。
|
spanning-tree fast-aging protection time
|
配置地址表老化保护的时间。在此时间之内,生成树协议只能执行一次地址表老化。
缺省为15秒。
|
在上述命令之前增加no前缀可以取消对应的配置。
1.2.11 配置FDB-Flush
注意:
请在技术人员的指导下使用本小节描述的配置命令。
交换机的快速生成树协议(RSTP和MSTP)在缺省配置下使用地址表快速老化的方式清除旧的MAC地址,而非FDB-Flush。
在全局配置模式下,使用下面的命令配置FDB-Flush:
命令
|
目的
|
spanning-tree fast-aging flush-fdb
|
开启FDB-Flush。
|
no spanning-tree fast-aging flush-fdb
|
关闭FDB-Flush。
|
需要注意的是,FDB-Flush与快速老化功能相互独立,可以在配置no spanning-tree fast-aging的同时配置FDB-Flush。但快速老化保护功能对FDB-Flush无效。
1.2.12 配置BPDU Terminal
默认情况下,在无生成树运行的情况下,我司设备会对收到的BPDU进行转发。BPDU Terminal功能可以在无生成树运行的情况下禁止转发BPDU。
在全局配置模式下,使用下面的命令配置BPDU Terminal:
命令
|
目的
|
spanning-tree bpdu-terminal
|
开启BPDU Terminal。
|
no spanning-tree bpdu-terminal
|
关闭BPDU Terminal。
|