环境说明:
ensp :1.3.00.100
交换机型号:S5700
推荐先看原理篇:点击这里查看
STP/RSTP可以阻塞二层网络中的冗余链路,将网络修剪成树状,达到消除环路的目的
保护功能 | 场景 | 配置影响 |
---|---|---|
BPDU保护 | 边缘端口在收到BPDU以后端口状态将变为非边缘端口,此时就会造成生成树的重新计算,如果攻击者伪造配置消息恶意攻击交换设备,就会引起网络振荡 | 交换设备上启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边緣端口将被error-down,但是边缘端口属性不变,同时通知网管系统被错误down掉的边缘瑞口只能由网络管理员手动恢复。如果用户需要被错误down掉的边缘端口可自动恢复,可通过配置使能端口自动恢复功能,并可设置延迟时间 |
防TC-BPDU报文攻击保护 | 交换设备在接收到拓扑变化报文后,会执行MAC地址表项和ARP表项的删除操作,如果频繁操作则会对CPU的冲击很大 | 启用防TC-BPDU报文攻击功能后,在单位时间内交换设备处理拓扑变化报文的次数可配置。如果在单位时间内交换设备在收到拓扑变化报文数量大于配置的阅值,那么设备只会处理阅值指定的次数。对于其他超出阀值的拓扑变化报文,定时器到期后设备只对其统一处理次。这样可以避免频繁地删除MAC地址表项和ARP表项,从而达到保护设备的目的 |
Root保护 | 由于维护人员的错误配置或网络中的悲意攻击,根桥收到优先级更高的BPDU,会失去根桥的地位,重新进行生成树的计算,并且由于拓扑结构的变化,可能造成高速流量迁移到低速链路上.引起网络拥塞 | 对于启用Root保护功能的指定端口。其端口角色只能保持为指定端口。一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU时,端口状态将进入Discarding 状态,不再转发报文。在经过-段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态 |
环路保护 | 当出现链路拥塞或者单向链路故障,根端口和Altermate端口会被老化。根端口老化会导致系统重新选择根端口(而这有可能是错误的),Altermate端口老化将迁移到Forwarding状态,这样会产生环路 | 在启动了环路保护功能后,如果根端口或Altemate端口长时间收不到来自上游的RST BPDU时,则向网管发出通知信息(如果是根端口则进入Discarding状态)。而阻塞端口则会一直保持在阻塞状态,不转发报文,从而不会在网络中形成环路。直到根端口收到RST BPDU,端口状态才恢复正常到Forwarding状态 |
参数 | 缺省值 |
---|---|
生成树工作模式 | MSTP |
STP/RSTP功能 | 全局STP/RSTP功能使能,接口的STP/RSTP功能也使能 |
交换设备的优先级 | 32768 |
端口优先级 | 128 |
路径开销缺省值的计算方法 | Dotlt,即IEEE 802.1t标准 |
转发延时 | 1500厘秒 |
Hello 时间 | 200厘秒 |
Max Age Time | 2000厘秒 |
注意:华为S系列的交换机支持STP/RSTP 都有以上缺省配置
STP/RSTP基本功能配置包括STP/RSTP工作模式配置,根桥和备份桥配置,桥优先级配置,端口路径开销、端口优先级、STP或RSTP功能的启用等。当然其中大部分是为可选的配置任务,所以总体上配置还是很简单的。
- 建议手动配置根桥和备份根桥
- 在一棵生成树中,生效的根桥只有一个;在同一个网络中,当多个设备的桥优先级相同时系统将选择MAC地址最小的设备作为根桥。可以在每棵生成树中指定多个备份根桥。当根桥出现故障或被关机时,备份根桥可以取代根桥成为指定生成树的根桥;但此时若配置了新的根桥,则备份根桥将不会成为根桥。如果配置了多个备份根桥,在当前根桥出现了故障时,则MAC地址最小的备份根桥将成为指定生成树的根桥。
注意:
根据对ARP表项的处理方式不同,STP、RSTP的收敛方式分为Fast和Normal两种:在Fast方式下,ARP表将需要更新的表项直接删除:在Normal方式下,ARP表中需要更新的表项快速老化。在normal方式下,交换设备将ARP表中这些表项的剩余存活时间置为0,对这些表项进行老化处理。如果配置的ARP老化探测次数大于零,则ARP对这些表项进行老化探测。
#命令:
system-view #进入系统视图模式
stp mode stp #配置交换机生成树工作模式 stp/rstp/mstp都可选
stp root primary #指定为根桥,配置后优先级变为0
stp root secondary #指定为备份桥,设备优先级调整为4096
#默认优先级 32768
stp priority 4096 #设置设备优先级为4096
# 我们可以在 0-61440,步长4096 ,不能随意配置,优先级越小越优
#根和备份根不可以修改优先级,修改需要执行如下命令
undo stp root #去使能根或备份根
undo stp priority # 优先级恢复默认值32768
stp pathcost-standard dotlt #配置端口路径开销缺省计算方法,有以下三种
#dot1d-1998 IEEE 802.1D-1998
# dot1t IEEE 802.1T
# legacy Legacy
undo stp pathcost-standard #恢复默认 默认dot1t
------------------------
#手动配置开销
interface GigabitEthernet 0/0/1 #进入接口
stp cost 200 #修改端口开销为200
注意:
●使用华为的私有计算方法时参数cost 的取值范围是1~ 200 000
●使用IEEE 802.ld标准方法时参数cost的取值范围是1~65 535
●使用IEEE 802.11标准方法时参数cast的取值范围是,1~200000000
interface GigabitEthernet 0/0/1 #进入接口
stp port priority 64 #配置端口优先级,取值范围 0~240 ,步长 16 不能随便设置
undo stp port priority #恢复默认优先级,128
stp converge fast #配置端口收敛方式为fast
#fast:二选一选项,指定采用快速方式,ARP表将需要更新的表项直接删除
#normal:二选一选项,指定采用普通模式,仅将ARP表中需要更新的表项快速老化缺省情况下,端口的STP/RSTP 收敛方式为normal,可用undo stp converge 命令恢复STP/RSTP收敛方式为缺省值。建议选择normal收敛方式。若选择fast方式,频繁的ARP表项删除可能会导致设备CPU占用率高达100%,报文处理超时导致网络振荡
#接口模式下配置
bpdu enable # 使能接口上送BPDU报文到CPU处理的功能,STP/RSTP 需要通过BPDU报文交互来完成生成树计算。因此需要使能接口上送BPDU报文到CPU处理的功能
bpdu disable # 关闭这个能力
# S2700/3700/5700/6700 命令
-------------
bpdu bridge enable # S7700/9300/9700 命令
stp enable # 开启生成树
undo stp enable #关闭生成树
(1)STP网络直径。交换网络中任意两台终端设备都通过特定路径彼此相连,这些路径由一系列的交换设备构成。网络直径就是指交换网络中任意两台终端设备间的最大交换设备数。网络直径越大,说明网络的规模越大。但是这里的网络直径也不是随便设的,因为如果网络直径设置不合理,可能会引起网络收敛速度慢,影响用户的正常通信。根据当前的网络规模,设置合适的网络直径(通常不要超过7个设备),可以帮助加快网络收敛速度。建议同-环网中的所有交换设备配置相同的网络直径。
(2)STP 超时时间。在运行STP生成树算法的交换网络中,如果交换设备在配置的超时时间内没有收到上游设备发送的BPDU就认为此上游设备已经出现故障,本设备会重新进行生成树计算。可能由于上游设备繁忙,有时设备在较长的时间内收不到该上游设备发送的BPDU。在这种情况下一般不应该重新进行生成树计算,因此在稳定的网络中,可以配置超时时间,以减少网络资源的浪费。
(3)STP定时器。在STP生成树的计算过程中,用到了Forward Delay、Hello Time和Max Age3个定时器参数,具体参见本章8.1.3节介绍。在配置这3个定时器参数时,同一环网中的设备建议配置一致的定时器值。但是,通常情况下,不建议通过本配置直接调整上述3个时间参数,而是建议通过调整网络直径,使生成树协议自动调整这3个定时器参数的值。当网络直径取缺省值时,这3个定时器参数也分别取其各自的缺省值。
(4)影响链路聚合带宽最大连接数。接口的路径开销是生成树计算的重要依据,路径开销值改变时,会重新进行生成树计算。而接口的路径开销是受带宽影响的,因此可以通过改变接口带宽来影响生成树的计算。当接口是Eth-Trunk 的聚合接口时,可配置链路聚合带宽最大连接数,以选择适当的聚合链路。当然,这里配置的影响带宽的最大连接数仅影响生成树协议计算接口的链路开销,并不影响实际链路带宽。Eth-Trunk接口在转发流量时的实际带宽仍然是由活动接口数决定的。
具体配置
stp bridge-diameter ?
INTEGER<2-7> Bridge diameter
# 设置STP网络直径,可选范围2-7
stp bridge-diameter 3 #配置STP网络直径为3
#配置网络直径后,交换设备会自动根据配置的网络直径设置Hello Time、Forward Delay与Max Age 3个时间参数为较优值,且在配置文件中会出现Forward Delay与Max Age两个时间参数的具体配置值
#缺省情况下默认为7
[Huawei]stp timer-factor ?
INTEGER<1-10> Aged out time factor, the default value is 3
#配置为收到上游的BPDU就重新计算生产树的超时时间,
----------------------------
在S2700/3700/9300 系列交换机中,超时时间= Hello Time*Timer Factor,
在S5700/6700/77009700系列交换机中,超时时间= Hello Time*3*Timer F actor
5700/67007700/9700系列交换机中,超时时间是3倍的 hello timer 时间
#转发延时
[Huawei]stp timer forward-delay ?
INTEGER<400-3000> STP forward delay in centiseconds, in steps of 100, the default value is 1500
#配置转发延时,单位为厘秒
---------------------------------
#hello 时间配置
[Huawei]stp timer hello ?
INTEGER<100-1000> Hello time in centiseconds, in steps of 100, the default value is 200
#不能随意设置 步长100 默认200
---------------------------------
#最大生存时间
[Huawei]stp timer max-age ?
INTEGER<600-4000> Max age in centiseconds, in steps of 100, the default
value is 2000
#步长100 默认2000
---------------------------------
# 配置影响生成树计算的链路聚合带宽最大连接数
[Huawei]interface Eth-Trunk 1
[Huawei-Eth-Trunk1]max bandwidth-affected-linknumber ?
INTEGER<1-8> The data of bandwidth-affected-linknumber
# 取值范围默认 1-8
---------------------------------
#查看配置结果
undo stp enable # 关闭stp
display stp # 查看生成树信息
字段 | 说明 |
---|---|
Protocol Status | 显示STP/RSTP协议状态:Disabled为去使能Enabled为使能 |
Protocol Standard | 显示设备运行生成树协议标准 |
Version | 显示设备生成树版本:0标识STP ,2标识 RSTP;3标识MSTP |
CIST Bridge Priority | 显示交换设备在CIST(公共内部生成树)中的优先级,仅运行MSTP协议时显示 |
MAC address | 显示交换设备的MAC地址 |
Max age(s) | 显示BPDU最大生存时间 |
Forward delay(s) | 显示端口状态迁移的延时 |
Hello time(s) | 显示根交换设备发送BPDU的周期 |
Max hops | 显示MST域中的最人跳数,仅当MSTP协议时显示 |
影响参数有:端口链路类型;端口的BPDU报文最大发送速率;执行MCheck操作;边缘端口和BPDU报文过滤功能
[Huawei-GigabitEthernet0/0/1]stp point-to-point ?
auto Decided by Spanning Tree Protocol (STP)
force-false Disable point to point link
force-true Enable point to point link
#如果当前以太网端口工作在全双工模式,则当前端口相连的链路是点到点链路,选择force-true选项,以实现快速收敛。
#如果当前以太网端口工作在半双工模式,可通过执行选择force-true选项强制链路类型为点对点链路,实现快速收敛
[Huawei-GigabitEthernet0/0/1]stp transmit-limit ?
INTEGER<1-255> Count of transmission limit
#单位时间内发送BPDU的最大数目,取值范围1~255,缺省情况每秒最大发送6个
stp mcheck
#接口执行,执行端口自动迁移回原来的RSTP状态
# 全局执行:交换机所有端口自动迁移回原来的RSTP状态
stp edged-port default #配置当前设备上所有端口为边缘端口
stp bpdu-filter default #启用BPDU过滤功能
#缺省情况下,设备的所有端口为非BPDU filter 端口,可用undo stp bpdu-filter default 命令配置当前设备上所有端口为非BPDU filter端口
[Huawei-GigabitEthernet0/0/1]stp edged-port enable #配置当前端口为边缘端口
#当通过本命令将当前端口配置成边缘端口后,仍然会发送BPDU报文,这可能导致BPDU报文发送到其他网络,引起其他网络产生振荡
[Huawei-GigabitEthernet0/0/1]stp bpdu-filter enable
#开启当前端口的BPDU过滤功能,解决上一个问题
#缺省情况下,设备的所有端口为非BPDU filter 端口,可用stp bpdu-filter disable 或undo stp bpdu-filter命令配置当前端口为非BPDU filter 端口
#全局模式配置
stp bpdu-protection #开启边缘端口BPDU保护
#配置边缘端口的BPDU保护功能。配置BPDU保护功能后,如果边缘端口收到BPDU报文,边缘端口将会被error-down,边缘端口属性不变
error-down auto-recovery cause bpdu-protection interval 30
#边缘端口因为收到BPDU关闭后30S自动打开
#时间范围 <30-86400>
注意 :
[Huawei]stp tc-protection #开启TC类型BPDU保护功能
[Huawei]stp tc-protection threshold ?
INTEGER<1-255> The threshold of TC-BPDU protection, default is 1
#配置交换设备在收到TC类型BPDU报文后,单位时间内处理TC类型BPDU报文,并立即刷新转发表项的阀值
注意:
[Huawei-GigabitEthernet0/0/1]stp root-protection
#配置以上指定端口(只能在指定端口下配置)的Root保护功能
在指定端口使能根保护功能后,收到优先级更高的BPDU时该端口状态将进入Discarding状态,不再转发报文。在经过一段时间(通常为两倍的Forward Delay)后,如果端口一直没有再收到优先级较高的BPDU,该指定端口会自动恢复到正常的Forwarding 状态,但
注意:
[Huawei-GigabitEthernet0/0/1]stp loop-protection
#配置交换设备根端口或者替代(Alternate)端口的环路保护功能,不能在指定行端口下配置
#默认状态下端口的环路保护功能处于关闭状态
说明:在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态),而阻塞端口则会一直保持在阻塞状态,不转发报文,从而不会在网络中形成环路。直到根端口或Altermate端口收到BPDU报文,端口状态才恢复正常为Forwarding状态。配置本命令后就可以防止这种现象发生由于Altermate 端口是根端口的备份端口,如果交换设备上有Altermate 端口,需要在根端口和Altermate端口上同时配置环路保护。但配置了根保护的端口不可以再配置环路保护功能
在RSTP协议中,网络收敛主要依靠P/A协商机制,但不同厂商设备所支持的P/A机制工作方式不完全一样。
华为 RSTP 有两种 模式
这是一种正常的P/A机制工作方式,双方是通过一对Proposal/Agreement报文进行协商,收到Proposal 报文的端口为根端口,并自动进入到Forwarding 状态,而收到Agreement报文的端口为指定端口,也自动进入Forwarding状态。具体流程如下。
这种方式特别适用于不同厂商设备之间的P/A协商。在这种工作方式中,上游设备发送的Proposal 报文,在到达下游非同一厂商的设备的根端口时可能不能马上进入Forwarding状态,这时上游设备再发送一一个Agreement报文,强制下游设备的根端口进入Forwarding状态。这时下游设备的根端口才可以发送Agreement报文,响应上游设备发送的Proposal报文,使上游设备的指定端口也进入Forwarding状态。具体流程如下。
[Huawei-GigabitEthernet0/0/1]stp no-agreement-check #开启普通模式
#只需要将直接在其他厂商设备的端口调整成普通的快速迁移方式
[Huawei-GigabitEthernet0/0/1]undo stp no-agreement-check
#关闭普通模式,默认是增强快速迁移机制