STP理论基础01-背景及概念
一、 STP出现的背景: STP 是一个用于局域网中消除环路的协议。运行该协议的设备通过彼此交互信息而发现网络中的环路,并适当对某些端口进行阻塞以消除环路。
首先了解环路造成的危害如下: 1.广播风暴 2.MAC地址表震荡 3.网络中的主机会收到重复的数据帧
二、 STP基础概念: 一根桥、两度量、三要素、四比较、五角色;
1、 一根桥: 对于一个 STP 网络,根桥在全网中只有一个,它是整个网络的逻辑中心,但不一定是物理中心。根桥会根据网络拓扑的变化而动态变化。 网络收敛后,根桥会按照一定的时间间隔产生并向外发送配置 BPDU,其他设备仅对该报文进行处理,传达拓扑变化记录,从而保证拓扑的稳定。
根桥的选举规则: 比较桥ID:越小越优先 桥ID分为两部分: 1.桥优先级(默认为32768)越小越优先 2.MAC地址,越小越优先
2、 两度量: 1)、桥ID(Bridge ID): IEEE 802.1D 标准中规定 BID 是由 16 位的桥优先级(Bridge Priority)与桥 MAC 地址构成。 BID 桥优先级占据高 16 位,其余的低 48 位是 MAC 地址。在 STP 网络中,桥 ID 最小的设备会被选举为根桥。 2)、端口ID(Port ID): PID 由两部分构成的,高 4 位是端口优先级,低 12 位是端口号。
3、 三要素: 从环形网络拓扑结构到树形结构,总体来说有三个要素:根桥、根端口和指定端口。 1)、根桥 RB(Root Bridge): 根桥就是网桥 ID 最小的桥,通过交互配置 BPDU 协议报文选出最小的 BID。 2)、根端口 RP(Root Port): 根端口就是去往根桥路径开销最小的端口,根端口负责向根桥方向转发数据,这个端口的选择标准是依据根路径开销判定。在一个运行 STP 协议的设备上根端口有且只有一个,根桥上没有根端口。 3)、指定端口 DP(Designated Port): 对一台交换设备而言,它的指定端口是向下游交换设备转发BPDU报文的端口。
注:在拓扑稳定后,只有根端口和指定端口转发流量,其他的非根非指定端口都处于阻塞(Blocking)状态,它们只接收 STP 协议报文而不转发用户流量。
4、 四比较: STP 选举有四个比较原则,构成消息优先级向量: { 根桥 ID,累计根路径开销,发送设备 BID,发送端口 PID }。 1)、根桥 ID: 每个 STP 网络中有且仅有一个根。 2)、累计根路径开销: 发送配置 BPDU 的端口到根桥的距离,决定了到根桥的路径开销。用来在非根桥上选择根端口。 3)、发送设备 BID: 发送配置 BPDU 的设备的 BID。当一台运行 STP 协议的设备要在两个以上根路径开销相等的端口之中选择根端口时,通过 STP 协议计算,将选择接收到的配置消息中发送者 BID 较小的那个端口。 4)、发送端口 PID: 发出配置 BPDU 的端口的 PID。用于在根路径开销相同的情况下,不阻塞最小 PID 的端口,而是阻塞 PID 值较大的端口。
5、 五角色: 运行STP协议的设备上端口状态有如下五种: 1)、disabled: 没有使能STP或者接口down,端口不仅不处理 BPDU 报文,也不转发用户流量。 2)、listening: 监听状态,确定端口角色,就是一堆选举(选举出根桥、根端口和指定端口)。 3)、learning: 学习状态,设备会根据收到的用户流量构建 MAC 地址表,但不转发用户流量。(防止临时环路) 4)、blocking: 接受并处理收到的BPDU,端口仅仅接收并处理 BPDU,但不转发用户流量。 5)、forwarding: 转发流量,端口既转发用户流量也处理 BPDU 报文。
在STP中,影响端口状态和端口收敛的3个参数; 1)、Hello Time: 运行 STP 协议的设备发送配置消息 BPDU 的时间间隔,用于设备检测链路是否存在故障。设备每隔 Hello Time 时间会向周围的设备发送 hello 报文,以确认链路是否存在故障。 当网络拓扑稳定之后,该计时器的修改只有在根桥修改后才有效。新的根桥会在发出的 BPDU报文中填充适当的字段以向其他非根桥传递该计时器修改的信息。但当拓扑变化之后, TCN BPDU 的发送不受这个计时器的管理。 2)、Forward Delay: 设备状态迁移的延迟时间。链路故障引发生成树的重新计算,新计算得到的配置消息无法立刻传遍整个网络,如果新选出的根端口和指定端口立刻就开始转发数据,可能造成临时环路。因此,STP 采用了一种状态迁移机制,新选出的根端口和指定端口要经过 2倍的 Forward Delay延时后才能进入转发状态,这个延时保证了新的配置消息传遍整个网络,从而防止了临时环路的产生。 注:Forward Delay Timer 指一个端口处于 Listening 和 Learning 状态的各自持续时间,默认是 15秒。 3)、Max Age: 端口的 BPDU 报文老化时间。 Max Age 通过配置 BPDU 报文的传输,可保证 Max Age 在整网中一致。运行 STP 协议的网络中非根桥设备收到配置 BPDU 报文后,报文中的 Message Age 和 Max Age 会进行比较: a、如果 Message Age 小于等于 Max Age,则该非根桥设备继续转发配置 BPDU 报文。 b、如果 Message Age 大于 Max Age,则该配置 BPDU 报文将被老化。该非根桥设备直接丢弃该配置 BPDU,可认为网络直径过大,导致根桥连接失败。
注:如果配置 BPDU 是根桥发出的,则 Message Age 为 0。否则, Message Age 是从根桥发送到当前桥接收到 BPDU 的总时间,包括传输延时等。实际实现中,配置 BPDU 报文经过一个桥,Message Age 增加 1。