来源:网络技术联盟站 你好,这里是网络技术联盟站。 在计算机网络中,生成树协议是一种基本的机制,用于防止冗余网络拓扑中的环路和广播风暴。这些协议确保在任何给定时间网络中的任何两个节点之间仅存在一条路径,从而防止数据冲突和数据包丢失。本文瑞哥将深入介绍三种主要的生成树协议:STP(Spanning Tree Protocol)、RSTP(Rapid Spanning Tree Protocol)和MSTP(Multiple Spanning Tree Protocol)。 让我们直接开始! 目录: 一、生成树协议诞生的背景 二、术语 2.1 设备角色 2.2 端口角色 三、STP、RSTP、MSTP概念 3.1 STP 3.2 RSTP 3.3 MSTP 四、STP端口状态 4.1 Disabled(禁用) 4.2 Blocking(阻塞) 4.3 Listening(监听) 4.4 Learning(学习) 4.5 Forwarding(转发) 五、STP端口状态的迁移过程 六、RSTP/MSTP端口状态 6.1 Forwarding(转发) 6.2 Learning(学习) 6.3 Discarding(丢弃) 七、端口的选举原则 7.1 根桥选举原则 7.2 根端口选举原则 7.3 指定端口选举原则 八、BPDU 8.1 BPDU报文分类 8.2 BPDU报文格式 九、生成树协议定时器 9.1 Hello Time定时器和超时时间 9.2 Forward Delay定时器 9.3 Max Age定时器和Message Age 十、STP 拓扑计算方法 10.1 初始状态 10.2 选择根桥 10.3 选择根端口和指定端口 十一、MSTP详解 11.1 MST域 11.2 CST、IST、CIST、SST 11.3 域根、总根、主桥 11.4 MSTP的拓扑计算 11.5 优先级向量的比较原则 11.6 CIST的计算、MSTI的计算 11.7 MSTP与VLAN的关系: 十二、拓扑变化机制 十三、RSTP/MSTP快速收敛机制 13.1 Proposal/Agreement 机制 13.2 根端口快速切换机制 13.3 边缘端口 十四、STP/RSTP/MSTP兼容性 14.1 RSTP兼容STP 14.2 MSTP兼容STP/RSTP 十五、总结 生成树协议(Spanning Tree Protocol, STP)的出现背景主要是为了解决以太网中由于冗余链路导致的环路问题。在网络设计中,为了提高网络的可靠性和避免单点故障,通常会在交换机之间使用冗余链路。然而,这些冗余链路如果没有得到适当的管理,就会在网络中形成环路,导致一系列问题,如广播风暴和MAC地址表震荡。 广播风暴是指当网络中存在环路时,广播帧或未知单播帧会被无限制地在环路中转发,从而消耗大量的网络资源,导致网络性能急剧下降,甚至可能导致网络瘫痪。 MAC地址表震荡则是由于环路中的不断广播,导致交换机的MAC地址表不断更新,无法稳定,进而影响到交换机的正常学习和转发功能。 为了解决这些问题,STP协议被提出。STP通过在网络中创建一棵无环路的生成树来消除环路,同时在活动路径发生故障时,能够激活备份链路,恢复网络连通性。这样,即使在网络中存在多条链路,STP也能确保网络中不会出现环路,从而避免了广播风暴和MAC地址表震荡的问题。 STP的基本思想是通过交换机之间的信息交换来发现并阻断造成环路的链路,最终形成一棵覆盖所有设备的无环路生成树。这个过程中,会选举出一个根桥(Root Bridge),并确定每个交换机的根端口(Root Port)和指定端口(Designated Port),以确保网络中的数据流动是有序的。 随着技术的发展,STP也经历了改进,产生了RSTP(快速生成树协议)和MSTP(多生成树协议),它们在STP的基础上提供了更快的网络收敛速度和更好的网络负载均衡能力。这些协议的发展,都是为了适应网络规模的扩大和业务需求的增长,确保网络的稳定性和高效性。 在STP和RSTP中,这两个端口角色是协议动态计算的结果,旨在构建无环的生成树拓扑,防止环路的发生。根端口和指定端口的选择基于端口到根桥的路径开销,以确保数据的有效传输,并在网络拓扑发生变化时快速适应。 这两个端口角色的引入使得生成树协议在面对链路故障时能够更加迅速地切换到备份路径,从而提高网络的可靠性和快速收敛性。 在MSTP中,还引入了一些新的端口角色: STP(Spanning Tree Protocol)是一种二层网络协议,用于防止网络中的环路问题。它通过在冗余网络拓扑中创建一棵覆盖所有交换机的无环路生成树来实现。STP的工作原理包括根桥选举、根端口和指定端口的选举,以及非根端口的阻塞来消除环路。 RSTP(Rapid Spanning Tree Protocol)是STP的改进版本,提供了更快的网络收敛能力。RSTP引入了新的端口角色和状态,如Alternate和Backup端口,以及Discarding、Learning和Forwarding状态。这些改进使得RSTP能够更快地响应网络拓扑的变化。 MSTP(Multiple Spanning Tree Protocol)是一种进一步改进的协议,它允许在一个物理网络中创建多个逻辑生成树。每个生成树可以被分配给不同的VLAN,从而实现负载均衡和更细粒度的冗余控制。MSTP通过将VLAN映射到不同的生成树实例来实现这一点。 在生成树协议(STP)中,设备的端口存在不同的状态,这些状态反映了端口在生成树计算过程中的角色和行为。 当一个端口变为Up(启用)或者STP被启用时,端口会从Disabled状态进入Blocking状态。在Blocking状态下,端口仅接收并处理BPDU报文,不进行用户数据的转发,起到防止环路形成的作用。 当端口被选为根端口或指定端口,它会进入Listening状态。在Listening状态下,端口开始生成树计算,可以接收和发送BPDU报文,但仍然不进行用户数据的转发。 当端口的Forward Delay定时器超时时,端口会从Listening状态进入Learning状态,然后进入Forwarding状态。在Learning状态下,设备开始构建MAC地址表。在Forwarding状态下,端口可以接收和发送BPDU报文,并且开始正常转发用户数据流量。 如果端口不再被选为根端口或指定端口,它将从当前状态(可能是Forwarding或者Listening)返回到Blocking状态。这确保了生成树重新计算,并防止环路的形成。 当端口变为Down(禁用)或者STP被禁用时,端口会从当前状态(可能是Blocking、Listening、Learning或者Forwarding)进入Disabled状态。在Disabled状态下,端口不处理BPDU报文,也不进行用户数据的转发。 在快速生成树协议(RSTP)和多生成树协议(MSTP)中,相比STP,它们将端口状态缩减为三种,具体如下: 这种简化的端口状态使得RSTP和MSTP能够更快速地适应拓扑变化,提高网络的收敛速度。 最小BID原则: 设备通过比较BID(Bridge ID)来选举根桥。BID由桥优先级(Bridge Priority)和桥MAC地址构成,其中高16位是桥优先级,低48位是MAC地址。被选举为根桥的设备是BID最小的设备。 最小RPC原则: 在非根桥设备上,生成树协议会选举根端口。根端口是根路径开销(Root Path Cost,RPC)最小的端口。 最小发送设备BID原则: 如果存在两个或更多端口的根路径开销相同,那么通过比较这些端口收到的BPDU报文中的“发送设备BID”,选择BID最小的端口作为根端口。 最小PID原则: 在根路径开销相同的情况下,生成树协议会选举指定端口。指定端口是阻塞PID值较大的端口,而PID小的端口被选为指定端口。 PID的作用: 在存在根路径开销相同的情况下,通过比较端口的PID值来决定选举哪个端口为指定端口,以便消除潜在的环路。 生成树协议中设备之间的拓扑计算是通过交互BPDU(Bridge Protocol Data Unit)报文实现的。这些BPDU报文携带了生成树计算和维护生成树拓扑所需的信息。 BPDU报文被封装在以太网数据帧中,其目的MAC地址通常为:01-80-C2-00-00-00。 BPDU报文格式包含多个字段,其中两个关键字段用于判断BPDU报文类型: Protocol Version Identifier (PVID): BPDU Type: 这些字段的值有助于设备识别BPDU报文的类型以及执行相应的拓扑计算。生成树协议通过这种交互的方式,确保网络中的设备始终保持对拓扑变化的感知,并根据生成树算法进行相应的调整,以维护环路防御和网络的稳定性。 这些定时器和超时机制的设计有助于生成树协议在网络拓扑发生变化时,能够快速而稳定地进行拓扑计算,确保生成树结构的及时调整和环路防御的有效性。 初始状态下,每个设备都认为自己是根桥,并且每个端口发出的BPDU中根桥字段使用自己的BID,RPC字段是到根桥的路径开销(初始状态下,每个设备认为自己是根桥,因此RPC为0),发送者BID是自身的BID,端口PID是发送该BPDU端口的端口ID。 通过交换配置消息,设备之间比较根桥ID,网络中BID最小的设备被选为根桥。 非根桥设备将接收到的最优配置消息的那个端口定为根端口。 设备根据根端口的配置消息和根端口的路径开销为每个端口计算一个指定端口配置消息。 根桥ID替换为根端口的配置消息的根桥ID。 根路径开销替换为根端口配置消息的根路径开销加上根端口对应的路径开销。 发送者BID替换为自身设备的ID。 发送端口PID替换为自身端口ID。 设备将计算出的配置消息与角色待定端口自己的配置消息进行比较: 设备将所有端口的配置消息进行比较,选出最优的配置消息。 MSTP(Multiple Spanning Tree Protocol)是生成树协议的一种变体,引入了多生成树的概念。 MST域(MST Region)是指在MSTP(Multiple Spanning Tree Protocol)网络中的一组设备以及它们之间的网络拓扑结构,形成一个逻辑上独立的单元。 具体来说,同一个MST域的设备满足以下条件: 启用了MSTP: 所有设备都必须启用MSTP协议,以参与生成树的计算和维护。 相同的域名: MST域内的设备共享相同的域名,这个域名用于标识和区分不同的MST域。域名是一个字符串,通过配置命令设置。 相同的VLAN到生成树实例映射配置: MST域内的设备使用相同的VLAN到生成树实例的映射配置。这一点是为了确保各设备在同一MST域内对VLAN的处理方式一致。 相同的MSTP修订级别配置: MST域内的设备使用相同的MSTP修订级别配置,用于判断MST配置的更新情况。当MST配置发生变化时,修订级别会增加。 在MSTP网络中,一个局域网可以划分为多个MST域,各MST域之间可以在物理上直接或间接相连。通过MSTP的配置命令,用户可以将多台设备划分到同一个MST域内,以实现更灵活的生成树控制和配置管理。每个MST域内都会独立地执行生成树协议的计算,形成逻辑上的生成树结构。 CST(Common Spanning Tree): CST是连接网络内所有MST域的一棵生成树。每个MST域可以看作是一个节点,而CST是这些节点通过STP或RSTP协议计算生成的一棵生成树。 CST的目标是将整个网络连接为一个单一的生成树,确保不存在环路。在网络中,黑色线条表示连接各个域的CST。 IST(Internal Spanning Tree): IST是各MST域内的一棵生成树。IST是一个特殊的MSTI(Multiple Spanning Tree Instance),通常称为MSTI0。IST是CIST在MST域中的一个片段,是MST域内部的生成树。在网络中,深蓝色线条表示连接该域的所有交换设备形成的IST。 CIST(Common and Internal Spanning Tree): CIST是通过STP或RSTP协议计算生成的,连接一个网络内所有设备的单生成树。CIST包括了CST和IST,形成了网络内的一棵完整的生成树。CIST的目标是确保整个网络中不存在环路,同时在每个MST域内形成相应的生成树。 SST(Single Spanning Tree): SST是指运行STP或RSTP的设备只能属于一个生成树的情况。在某些情况下,整个MST域中只有一个设备,这个设备构成了单生成树。这样的情况下,整个MST域就是一个SST。 IST域根(Internal Spanning Tree Root): 在MSTP网络中,IST域根是指在MST域中IST生成树中距离总根(CIST Root)最近的设备。这是每个MST域内部形成的生成树的树根。 MSTI域根(Multiple Spanning Tree Instance Root): 一个MST域内可以生成多棵生成树,每棵生成树都称为一个MSTI。MSTI域根是每个多生成树实例的树根。在图中不同的MSTI有各自的域根。 总根(CIST Root): 总根是CIST(Common and Internal Spanning Tree)的根桥,即整个网络中的根桥。在图中,DeviceA是CIST的根桥,也是总根。 主桥(Master Bridge)或IST Master: 主桥是域内距离总根最近的交换设备。主桥是每个MST域内IST生成树的树根。在图中,黄色标识的设备是主桥。 总根在MST域中时,总根同时也是该域的主桥。 MSTP的拓扑计算使用了优先级向量来确定CIST和MSTI的生成树。 参与CIST计算的优先级向量: 参与MSTI计算的优先级向量: 根交换设备ID比较: 先比较根交换设备ID,值最小的向量具有最高优先级。 外部路径开销比较: 如果根交换设备ID相同,再比较外部路径开销。 域根ID比较: 如果外部路径开销相同,再比较域根ID。 内部路径开销比较: 如果域根ID仍然相同,再比较内部路径开销。 指定交换设备ID比较: 如果内部路径仍然相同,再比较指定交换设备ID。 指定端口ID比较: 如果指定交换设备ID仍然相同,再比较指定端口ID。 接收端口ID比较: 如果指定端口ID还相同,再比较接收端口ID。 如果接收到的BPDU内包含的配置消息优于端口上保存的配置消息,则端口上原来保存的配置消息被新收到的配置消息替代。端口同时更新交换设备保存的全局配置消息。反之,新收到的BPDU被丢弃。 通过这样的比较原则,MSTP能够有效地选举出根交换设备、生成CIST和各个MSTI的生成树,以确保网络的稳定和避免环路。 计算CIST和MSTI的生成树涉及不同的层次,具体如下: 选择CIST的树根: 在整个网络中选择一个优先级最高的设备作为CIST的树根。这通过比较CIST的配置消息,包括根交换设备ID、外部路径开销等字段来实现。 计算CIST: 在整个网络中计算CIST,包括所有MST域。MSTP将每个MST域视为单台设备,通过计算在MST域间生成CST。CST和IST(Internal Spanning Tree)构成整个网络的CIST。 MSTI的计算: 在MST域内,MSTP根据VLAN和生成树实例的映射关系,为每个VLAN生成不同的生成树实例(MSTI)。每个MSTI独立进行计算,互不干扰。 生成树计算方法: 每个MSTI的生成树计算方法与STP基本相同。它包括选择树根、选择根端口和指定端口。 MSTI的特点: 每个MSTI的生成树独立,可以有不同的根、不同的拓扑、可以在不同的生成树内发送BPDU。 路径选择: 在运行MSTP协议的网络中,一个VLAN报文将沿着其对应的MSTI进行转发。在MST域内,沿着对应MSTI进行转发;在MST域间,沿着CST进行转发。 MSTP允许将多个VLAN映射到同一个MSTI,从而在网络中更灵活地配置生成树。 拓扑变化机制主要通过拓扑变化通知(Topology Change Notification,TCN)来实现。 拓扑变化通知 (Topology Change Notification, TCN): 当网络中发生拓扑变化时,例如链路断开或接口状态改变,受到影响的设备会生成TCN BPDU,用来通知其他设备网络拓扑发生变化。 TCN BPDU传播: 生成TCN BPDU的设备会将该BPDU广播到网络中的其他设备。这样,整个网络都能够感知到拓扑的变化。 接收TCN BPDU的设备: 每个设备在接收到TCN BPDU后,会做出相应的处理。它将该信息传递给上游设备,通知它有拓扑变化发生。这样,整个网络中的设备能够及时更新拓扑信息。 老化机制: 当设备收到TCN BPDU后,会立即老化与该端口相关的MAC地址表项,以便及时更新到新的拓扑。老化机制用于清除与上游设备关联的MAC地址,防止数据流量因为过时的MAC地址表项而引发问题。 生成树重新计算: 收到TCN通知后,设备会重新计算生成树,确保网络中没有环路,并更新生成树的相关参数。这包括重新选择根端口、指定端口等。 通过TCN机制,生成树协议能够快速适应网络拓扑的变化,避免临时环路的产生,保障数据流量的正常传输。TCN BPDU的生成和传播帮助网络中的设备及时感知拓扑变化,从而保证生成树的稳定性。 RSTP/MSTP的快速收敛机制涉及到Proposal/Agreement机制、根端口快速切换机制以及边缘端口。这些机制的目的是加速网络拓扑变化的通知和适应,提高整体收敛速度。 如果 RSTP/MSTP 网络中的根端口失效,最优 Alternate 端口将直接成为根端口并进入 Forwarding 状态。 根端口失效后,通过快速切换机制直接切换到 Forwarding 状态,避免了传统 STP 下的两个 Forward Delay 时间的等待。 边缘端口是不再与其他交换设备连接,而是直接与终端设备相连的端口。 边缘端口不参与生成树运算,可以由 Disable 直接转到 Forwarding 状态,且不经历时延。 一旦边缘端口收到 BPDU,就丧失边缘端口属性,成为普通端口,并重新进行生成树计算。 这些机制的引入有效减少了生成树协议收敛时间,提高了网络的快速收敛能力。 STP(Spanning Tree Protocol),RSTP(Rapid Spanning Tree Protocol),和 MSTP(Multiple Spanning Tree Protocol)之间有一定的兼容性。 运行 RSTP 的设备可以与运行 STP 的设备互相连接,但在这种情况下,RSTP 设备会忽略 STP BPDU,而 STP 设备则会忽略 RSTP BPDU。 如果 RSTP 设备的某个端口接收到 STP 设备发出的配置 BPDU,该端口会在两个 Hello Time 时间后将自己的模式切换回 STP 模式,并发送 STP 配置 BPDU。 当 STP 设备从网络中移除后,运行 RSTP 的设备可以手动执行 MCheck 操作,使相连的端口切换回原来的 RSTP 模式。 运行 MSTP 的设备与运行 STP 的设备相连时,MSTP 设备会将与 STP 设备相连的接口切换到 STP 模式,实现了互相兼容。 运行 MSTP 的设备与运行 RSTP 的设备相连时,两者之间可以互相识别 BPDU。 在网络中同时运行 STP、RSTP 和 MSTP 的设备时,各个设备会尽量进行兼容性处理,以确保网络的正常运行。然而,需要注意的是,兼容性通常会导致使用最低公共的协议特性,因此可能无法充分发挥 RSTP 或 MSTP 的快速收敛等优势。最佳实践是在整个网络中选择一种生成树协议,以确保获得最佳性能。 STP、RSTP和MSTP是构建稳定二层网络的经典生成树协议。它们在不同的网络环境中发挥着关键作用,提供了网络拓扑的稳定性和可维护性。网络管理员在选择和配置生成树协议时,需要综合考虑网络规模、复杂度和管理需求,以达到最佳的性能和可管理性。 本文详细介绍了STP、RSTP和MSTP的原理、工作机制、拓扑计算过程、拓扑变化机制以及它们之间的兼容性。希望这些信息能够帮助大家更深入地理解生成树协议,并在实际网络中做出明智的选择和配置。
原创文章,作者:网络技术联盟站,如若转载,请注明出处:https://www.sudun.com/ask/34956.html
一、生成树协议诞生的背景
二、术语
2.1 设备角色
根桥(Root Bridge)
非根桥设备
2.2 端口角色
根端口(Root Port – RP)
指定端口(Designated Port – DP)
备用端口(Alternate Port)
备份端口(Backup Port)
边缘端口(Edge Port)
主端口(Master Port)
域边缘端口(Boundary Port)
三、STP、RSTP、MSTP概念
3.1 STP
3.2 RSTP
3.3 MSTP
四、STP端口状态
4.1 Disabled(禁用)
4.2 Blocking(阻塞)
4.3 Listening(监听)
4.4 Learning(学习)
4.5 Forwarding(转发)
五、STP端口状态的迁移过程
六、RSTP/MSTP端口状态
6.1 Forwarding(转发)
6.2 Learning(学习)
6.3 Discarding(丢弃)
七、端口的选举原则
7.1 根桥选举原则
7.2 根端口选举原则
7.3 指定端口选举原则
八、BPDU
8.1 BPDU报文分类
配置BPDU(Configuration BPDU)
RST BPDU
MST BPDU
TCN BPDU(Topology Change Notification BPDU)
8.2 BPDU报文格式
九、生成树协议定时器
9.1 Hello Time定时器和超时时间
9.2 Forward Delay定时器
9.3 Max Age定时器和Message Age
十、STP 拓扑计算方法
10.1 初始状态
10.2 选择根桥
10.3 选择根端口和指定端口
十一、MSTP详解
11.1 MST域
11.2 CST、IST、CIST、SST
11.3 域根、总根、主桥
11.4 MSTP的拓扑计算
11.5 优先级向量的比较原则
11.6 CIST的计算、MSTI的计算
CIST(Common and Internal Spanning Tree)
MSTI(Multiple Spanning Tree Instances)
11.7 MSTP与VLAN的关系:
十二、拓扑变化机制
十三、RSTP/MSTP快速收敛机制
13.1 Proposal/Agreement 机制
普通 P/A 机制
增强 P/A 机制
13.2 根端口快速切换机制
13.3 边缘端口
十四、STP/RSTP/MSTP兼容性
14.1 RSTP兼容STP
14.2 MSTP兼容STP/RSTP
十五、总结
Like (0)
如何使用netstat查看网络连接状态?
Previous
2024年4月13日
roxxxy是什么?简单解释一下
Next
2024年4月13日