12、配置MSTP超时时间
在运行生成树算法的网络中,如果设备在配置的超时时间内没有收到上游设备发送的BPDU,就认为上游设备已经出现故障,本设备会重新进行生成树计算。
由于上游设备繁忙,有时设备在较长的时间内收不到上游设备发送的BPDU。在这种情况下一般不应该重新进行生成树计算,因此,在稳定的网络中,可以配置超时时间,以减少网络资源的浪费。
如果设备在超时时间(超时时间=Hello Time × 3 × Timer Factor)内没有收到上游设备发送的BPDU,则生成树会重新进行计算。
[Huawei-mst-process-1]stp timer-factor ?
INTEGER<1-10> Aged out time factor, the default value is 3
13、配置MSTP定时器
在生成树的计算过程中,用到了以下三个时间参数:
1、Forward Delay:
用于确定状态迁移的延迟时间。在运行生成树算法的网络中,当网络拓扑结构发生变化时,因为新的BPDU配置消息需要经过一定的时间才能传遍整个网络,所以本应被阻塞的端口可能还来不及被阻塞而之前被阻塞的端口已经不再阻塞,这样就有可能会形成临时的环路。为了避免这种情况引起的临时环路,可以通过Forward Delay定时器设置延时时间,即在这个延时时间内所有端口会临时被阻塞。
2、Hello Time:
用于检测链路是否存在故障。生成树协议每隔Hello Time时间会发送配置BPDU报文,以确认链路是否存在故障。如果设备根端口在Hello Time时间内没有收到BPDU,则会由于消息超时而重新计算生成树。
3、Max Age:
用于确定配置消息是否超时。设备根据Max Age时间来确定端口收到的配置消息是否超时。如果端口收到的配置消息超时,则需要重新计算。
在配置上述三个时间参数时,同一环网中的设备配置时间建议保持一致。
通常情况下,不建议通过本配置直接调整上述三个时间参数。由于这三个时间参数的取值与网络规模有关,因此建议通过调整网络直径,使生成树协议自动调整这三个时间参数的值。当网络直径取缺省值时,这三个时间参数也分别取其各自的缺省值。
根交换设备的Hello Time、Forward Delay以及Max Age三个时间参数取值之间应该满足如下公式,否则网络会频繁震荡。2 × (Forward Delay -1.0 second) >= Max Age;Max Age >= 2 × (Hello Time + 1.0 second)。
13.1、配置交换设备的Forward Delay时间
[Huawei-mst-process-1]stp timer forward-delay ?
INTEGER<400-3000> STP forward delay in centiseconds, in steps of 100, the default value is 1500
13.2、配置交换设备的Hello Time时间
[Huawei-mst-process-1]stp timer hello ?
INTEGER<100-1000> Hello time in centiseconds, in steps of 100, the default value is 200
13.3、配置交换设备的Max Age时间
[Huawei-mst-process-1]stp timer max-age ?
INTEGER<600-4000> Max age in centiseconds, in steps of 100, the default value is 2000
14、配置影响生成树计算的链路聚合带宽最大连接数
接口的路径开销是生成树计算的重要依据,路径开销值改变时,会重新进行生成树计算。而接口的路径开销是受带宽影响的,因此可以通过改变接口带宽来影响生成树的计算。
图1 配置影响链路聚合带宽的最大连接数示例
如上图1所示,设备A与设备B通过两条Eth-Trunk链路相连,Eth-Trunk1含有3条状态为Up的成员链路,Eth–Trunk2含有2条状态为Up的成员链路。假设每条成员链路的带宽都相同,且设备A被选举为根桥:
Eth-Trunk1的带宽大于Eth-Trunk2的带宽。STP计算后,设备B上Eth-Trunk1接口被选为Root port,Eth-Trunk2接口被选为Alternate port。
当配置Eth-Trunk1接口影响带宽的最大连接数为1后,STP计算的Eth-Trunk1接口的路径开销大于Eth-Trunk2的开销,将会重新进行生成树计算,设备B上Eth-Trunk1接口将变为Alternate port,Eth-Trunk2变为Root port。
配置的影响带宽的最大连接数仅影响生成树协议计算接口的路径开销,并不影响实际链路带宽。Eth-Trunk接口在转发流量时的实际带宽仍然是由活动接口数决定的。
[Huawei]interface Eth-Trunk 1
[Huawei-Eth-Trunk1]max bandwidth-affected-linknumber ?
INTEGER<1-8> The data of bandwidth-affected-linknumber
15、配置端口的链路类型
点到点链路可帮助实现快速收敛。与点到点链路相连的两个端口如果为根端口或者指定端口,则端口可以通过传送同步报文(Proposal报文和Agreement报文)快速迁移到转发状态,减少了不必要的转发延迟时间。
如果当前以太网端口工作在全双工模式,则当前端口相连的链路是点到点链路,选择参数force-true实现快速收敛。
如果当前以太网端口工作在半双工模式,可通过执行命令 force-true强制链路类型为点对点链路,实现快速收敛。
[Huawei-GigabitEthernet0/0/2]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
16、配置端口的最大发送速率
端口在每个Hello Time时间内BPDU的最大发送数目值越大,表示单位时间内发送的BPDU越多,则占用的系统资源也越多。适当的配置该值可以限制端口发送BPDU的速度,防止在网络拓扑动荡时,MSTP占用过多的带宽资源。
[Huawei-GigabitEthernet0/0/2]stp transmit-limit ?
INTEGER<1-255> Count of transmission limit
17、配置设备执行MCheck操作
在运行MSTP的设备上,如果某个端口和另一台运行STP的设备连接,则该端口会自动迁移到STP兼容工作模式。如果运行STP的设备被关机或移走,该端口无法自动迁移回RSTP模式,此时需要在该端口上执行MCheck操作,将端口手动迁移到MSTP模式。
以下情况端口无法自动迁回MSTP模式,需要在端口上执行MCheck操作,将端口手动迁移到MSTP模式:
运行STP的交换设备被关机或移走;运行STP的交换设备切换为MSTP模式。
[Huawei]stp mcheck
或
[Huawei-GigabitEthernet0/0/2]stp mcheck
18、配置边缘端口和BPDU报文过滤功能
在MSTP里面,如果某一个指定端口位于整个网络的边缘,即不再与其他交换设备连接,而是直接与终端设备直连,这种端口叫做边缘端口。
边缘端口不接收处理配置BPDU报文,不参与RSTP运算,可以由Disable直接转到Forwarding状态,且不经历时延,就像在端口上将MSTP禁用。
配置为边缘端口后,端口仍然会发送BPDU报文,这可能导致BPDU报文发送到其他网络,引起其他网络产生震荡。因此可以配置边缘端口的BPDU报文过滤功能,使边缘端口不处理、不发送BPDU报文。
在全局模式下配置边缘端口和BPDU报文过滤功能后,设备上所有的端口不会主动发送BPDU报文,且均不会主动与对端设备直连端口协商,所有端口均处于转发状态。
这将可能导致网络成环,引起广播风暴,请用户慎用。
在端口模式下配置边缘端口和BPDU报文过滤功能后,端口将不处理、不发送BPDU报文。该端口将无法成功与对端设备直连端口协商STP协议状态,请慎用。
在stp中,不参与生成树计算的端口可以采用stp disable命令关闭。
18.1、将端口配置成边缘端口
[Huawei-GigabitEthernet0/0/2]stp edged-port ?
disable Disable edge port
enable Enable edge port
[Huawei-GigabitEthernet0/0/2]stp edged-port enable
18.2、配置当前端口为BPDU filter端口
[Huawei-GigabitEthernet0/0/2]stp bpdu-filter enable
18.3、配置当前设备上所有端口为边缘端口
[Huawei]stp edged-port default
18.4、配置当前设备上所有端口为BPDU filter端口
[Huawei]stp bpdu-filter default
19、配置MST域的最大跳数
在运行MSTP的二层网络中,交换设备之间靠MST BPDU进行信息的交互。在MST BPDU中,包含一个记录该BPDU剩余生存跳数的字段。
根交换设备发送的BPDU的剩余生存跳数为MST域的最大跳数。
非根交换设备发送的BPDU的剩余生存跳数为MST域的最大跳数减去本交换设备距根交换设备的跳数。
如果交换设备收到的BPDU中携带的剩余生存跳数为0,则交换设备将该BPDU丢弃。
因此,MST域内生成树的最大跳数会决定生成树的网络规模大小。通过配置当前MST域的最大跳数,从而控制生成树的网络规模。
[Huawei-mst-process-1]stp max-hops ?
INTEGER<1-40> STP max hops
20、配置设备的BPDU保护功能
边缘端口直接和用户终端相连,正常情况下,边缘端口不会收到BPDU报文。如果攻击者伪造BPDU恶意攻击交换设备,当边缘端口接收到BPDU报文时,交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。通过使能BPDU保护可以防止伪造BPDU恶意攻击。
交换设备上启动BPDU保护功能后,如果边缘端口收到BPDU报文,交换设备将关闭这些端口,同时通知网管系统。在未使能端口自动恢复功能时,必须由网络管理员手动恢复端口状态。
[Huawei-mst-process-1]stp bpdu-protection
如果用户希望被error-down的边缘端口可自动恢复,可通过配置使能端口自动恢复功能,并设置延迟时间,即在系统视图下执行命令error-down auto-recovery cause bpdu-protection interval interval-value,使能端口管理状态自动恢复为Up的功能,并设置端口自动恢复为Up的延时时间使被关闭的端口经过延时时间后能够自动恢复。配置时需要注意:
缺省情况下,未使能处于error-down状态的端口状态自动恢复为Up的功能,所以才没有缺省延迟时间值。当用户配置该命令时,必须指定恢复延迟时间。
取值越小表示端口的管理状态自动恢复为Up的延迟时间越短,端口Up/Down状态震荡频率越高。
取值越大表示端口的管理状态自动恢复为Up的延迟时间越长,端口流量中断时间越长。
自动恢复仅对配置error-down auto-recovery命令之后发生error-down的端口有效,对配置此命令之前已经error-down的端口不生效。
21、配置设备的TC保护功能
如果攻击者伪造拓扑变化BPDU报文恶意攻击交换设备,交换设备短时间内会收到很多拓扑变化BPDU报文,频繁的删除MAC或者ARP表项操作会给设备造成很大的负担,也给网络的稳定带来很大隐患。
启用TC保护功能后,在单位时间内,交换设备处理拓扑变化报文的次数可配置。如果在单位时间内,交换设备在收到拓扑变化报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。对于其他超出阈值的拓扑变化报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项和ARP表项,从而达到保护设备的目的。
21.1、配置设备处理阈值指定数量的拓扑变化报文所需的时间
[Huawei-mst-process-1]stp tc-protection interval ?
21.2、配置MSTP进程在收到TC类型BPDU报文后,单位时间内处理TC类型BPDU报文并立即刷新转发表项的阈值。
[Huawei-mst-process-1]stp tc-protection threshold ?
INTEGER<1-255> The threshold of TC-BPDU protection, default is 1
配置后,在stp tc-protection interval指定的时间内,设备只会处理stp tc-protection threshold指定数量的拓扑变化报文,对于其他的报文会延迟处理,所以可能会影响生成树的收敛速度。
例如,时间设定为10秒,阈值设定为5,则设备收到拓扑变化报文后,在10秒内只会处理最开始收到的5个拓扑变化报文,对于后面收到的报文则会等10秒超时后再统一处理。
22、配置端口的Root保护功能
由于维护人员的错误配置或网络中的恶意攻击,网络中的合法根交换设备有可能会收到优先级更高的BPDU报文,使得合法根交换设备失去根交换设备的地位,引起网络拓扑结构的错误变动。
这种不合法的拓扑变化,可能会导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。为了防止这种情况发生,可在交换设备上部署Root保护功能,通过维持指定端口的角色来保护根交换设备的地位。当端口的角色是指定端口时,配置的Root保护功能才生效。
在MSTP多进程的环中,建议端口阻塞不要配置在与根保护端口直连的链路上。
[Huawei-GigabitEthernet0/0/5]stp binding process 1
[Huawei-GigabitEthernet0/0/5]stp root-protection
23、配置端口的环路保护功能
在运行MSTP协议的网络中,根端口和其他阻塞端口状态是依靠不断接收来自上游交换设备的BPDU报文维持。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换设备的BPDU报文时,交换设备会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换网络中可能产生环路。为了防止以上情况发生,可部署环路保护功能。
在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态,角色切换为指定端口),而Alternate端口则会一直保持在阻塞状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。
由于Alternate端口是根端口的备份端口,如果交换设备上有Alternate端口,需要在根端口和Alternate端口上同时配置环路保护。
[Huawei-GigabitEthernet0/0/2]stp binding process 1
[Huawei-GigabitEthernet0/0/2]stp loop-protection
24、配置设备的共享链路保护功能
共享链路保护功能用在交换设备双归属接入网络的场景中。当共享链路故障时,通过共享链路保护功能,使本设备的工作模式强制转换为RSTP,配合使用根保护功能,可以避免网络环路。
[Huawei]stp process 1
[Huawei-mst-process-1]stp link-share-protection
25、配置端口Proposal/Agreement机制的迁移方式
Proposal/Agreement机制,目前交换设备的端口支持以下两种方式:
1、增强方式:当前端口在计算同步标志位时计算根端口。
上游设备发送Proposal报文,请求进行快速迁移,下游设备接收到后,把与上游设备相连的端口设置为根端口,并阻塞所有非边缘端口。
上游设备继续发送Agreement报文,下游设备接收到后,根端口转为Forwarding状态。
下游设备回应Agreement报文,上游设备接收到后,把与下游设备相连的端口设置为指定端口,指定端口进入Forwarding状态。
2、普通方式:当前端口在计算同步标志位时忽略根端口。
上游设备发送Proposal报文,请求进行快速迁移,下游设备接收到后,把与上游设备相连的端口设置为根端口,并阻塞所有非边缘端口,根端口转为Forwarding状态。
下游设备回应Agreement报文,上游设备接收到后,把与下游设备相连的端口设置为指定端口,指定端口进入Forwarding状态。
华为数据通信设备和其他制造商的设备进行互通时,需要根据其他制造商设备的Proposal/Agreement机制,选择端口使用增强的快速迁移机制还是普通的快速迁移机制。
[Huawei-GigabitEthernet0/0/3]stp no-agreement-check # 配置为普通的快速迁移方式,缺省为增强的快速迁移机制。
26、配置端口收发MSTP协议的报文格式
MSTP协议报文存在两种格式,一种为dot1s,即IEEE802.1s规定的报文格式,另一种为legacy,是一种私有报文格式。
配置时,可以指定报文的格式,也可以配置MSTP协议报文格式自适应的功能,即根据收到的MSTP协议报文格式自动切换端口支持的MSTP协议报文格式,使报文格式与对端匹配。
[Huawei-GigabitEthernet0/0/3]stp compliance ?
auto Protocol type is auto
dot1s Protocol type is 802.1s
legacy Protocol type is legacy
27、使能摘要侦听功能
当华为设备与其他制造商的设备互连时,在域名、修订级别、VLAN实例映射表全都一致的情况下,由于双方BPDU报文密钥不一致,会导致两台设备不能正常互通,在这种情况下,需要在交换设备上使能摘要侦听功能。在MST域中的交换设备上进行以下配置,实现华为设备的BPDU报文密钥与其他制造商设备的BPDU报文密钥一致。
[Huawei-GigabitEthernet0/0/3]stp config-digest-snoop