如何让生成树在网络中更稳定
在局域网中,可能会遇到蓄意攻击导致交换机STP计算错误或由于拓扑频繁变化产生大量TC报文导致交换机频繁删除Mac地址,造成未知单播报文的泛滥等问题;意外接入网络的交换机也可能影响整个网络的生成树的稳定性。此时需要通过生成树保护机制可以解决或避免这些问题 在生成树网络中,接入层设备端口一般直接与用户终端或服务器相连,为了加快接口的收敛速度,此时可以设置该接口为边缘端口实现接口的快速迁移。 正常情况下,边缘端口不会收到BPDU。当然了,如果有人伪造BPDU发送给边缘端口或意外将边缘端口连接运行STP的设备时,系统会自动将边缘端口设置为非边缘端口,重新进行生成树的计算,引起网络拓扑的震荡 通过以上描述,可以通过配置BPDU保护功能防止这种网络拓扑的震荡。交换机上启动了BPDU保护功能以后,如果边缘端口收到了BPDU,系统就将这些端口关闭。被关闭端口只能由网管人员手动恢复 一般推荐用户在配置了边缘端口的交换机上配置BPDU保护功能 在配置生成树时,可能由于网管人员的错误配置或网络中的恶意攻击,网络中的合法根桥有可能收到优先级更高的BPDU,这样当根桥会失去根桥的地位,引起网络拓扑结构的变动 通过以上描述,可以设置Root保护(根保护)功能可以防止这种情况的发生。对于设置了Root保护功能的端口,端口角色会锁死为指定端口,一旦该端口收到了优先级高的BPDU,这些端口的状态将被置为Listening状态,不再转发报文 端口会经历Listening状态到Forwarding状态的转变,在此期间如果端口没有收到更优的BPDU时,端口会自动恢复原来的转发状态 根保护需要在指定端口上配置,且需要该端口在所有实例中均为指定端口才能配置 交换机各端口的生成树状态依靠不断接收上游交换机发送的BPDU来维持。但是由于链路拥塞或单向链路故障,根端口会收不到上游交换机的BPDU。 BPDU老化后下游交换机会重新选择根端口,原来的根端口经过计算后会变为指定端口,而原来的阻塞端口重新计算后变为根端口且迁移到转发状态,从而交换网络中会产生环路 启动环路保护功能后,当端口保存的BPDU老化时,环路保护生效 根端口的角色如果发生变化就会变为Discarding状态,不转发报文,从而不会在网络中形成环路。Discarding状态会一直维持,直到端口再次收到BPDU,重新成为根端口 环路保护需要在根端口或Alternate端口配置。在MSTP中,此功能对根端口、Alternate端口和Backup端口有效 注意:不能在端口上同时启动环路保护、根保护和边缘端口中的任意两种 交换机在接收到TC-BPDU报文后,会执行Mac地址表项和ARP表项的删除操作(这里的ARP表项是通过Mac表项删除而更新的,不是直接删除)。 在有人伪造TC-BPDU报文恶意攻击交换机时,交换机短时间内会收到很多的TC-BPDU报文,频繁的删除操作给交换机带来很大负担,给网络的稳定带来很大隐患 TC保护功能使能后,设备在收到TC-BPDU报文后的10s内,允许收到TC-BPDU报文后立即进行表项删除操作的次数可以由用户控制,当设备在该时间时间内超过用户设置表项删除操作则后续不会删除转发表项 当端口收到指定端口发出的低优先级消息,且发送端口处于Forwarding或Learning状态时,会触发Dispute保护,阻塞端口以防止环路 透传BPDU报文,当做普通的二层组播报文处理,携带VLAN Tag BPDU报文上送CPU处理,且CPU发出的BPDU报文不携带任何VLAN Tag----------------------------------------------------------------------------- 通过上图可以得知,SW1作为根桥,SW3无法收到BPDU配置信息,则SW3认为自己是根桥,SW3也周期性发送BPDU配置消息,此消息能够被SW1收到,SW1收到低优先级的配置时触发Dispute机制