STP学习笔记

2层环路导致的问题:
1、广播风暴,交换机转发BUM报文的机制导致,数据帧没有防环机制。
B:Boardcost
U:未知的DMAC单播帧
M:组播

2、Mac地址表震荡,生成错误MAC地址表项,导致转发出现错误。
3、重复数据帧接收,如果存在大量的广播帧,导致网络性能下降甚至不可用,终端设备也会消耗大量CPU资源处理广播。

STP操作:
(1)在一个广播域中有且只有一个根桥
(2)每个非根交换机选举一个根端口
(3)每个网段(冲突域)选举一个指定端口(网段:交换机连接的每个链路都是一个网段)。
(4)阻塞非根、非指定端口。

标准STP(802.1D) -- Block Port
华为STP -- AP;AP源之于RSTP

STP协议的所有角色都是比较BPDU的参数选举出来的
STP定义每个交换机都有一个BID来标识自己。

BID = priority + mac

Pri默认值:32768
Pri取值有两种标准:
(1)0-65535
(2)0-61440 华为采用0-61440,但pri取值必须是4096的倍数

stp priority xxx 修改stp优先级

ROOT桥:发送最好BPDU的交换机
RP(根端口):非根桥上接收最好BPDU的端口
DP(指定端口):链路上发送最好BPDU的端口
AP(备用端口):既不是根端口也不是DP的端口,被block。

DP端口要么对着RP,要么对着AP。

BPDU中四个选举参数:
RID:根桥的BID
RPC:
对于根桥来说,RPC永远等于0;
对于非根桥来说RPC是自己根端口到根桥的路径开销之和。
BID:交换机自身的BID
PID:由端口优先级+端口ID组成,优先级的取值为0-240,默认值128,取16的倍数。

最好BPDU的选举机制:
1、比较RID,RID越小越优
2、如果RID相同,则比较RPC路径和,越小越优
3、如果RPC路径和相同,则比较BID,越小越优
4、BID相同,则比较PID,越小越优
5、如果PID相同,则比较自身PID(特殊场景下)

非根桥根据根端口的配置消息计算DP端口的配置消息。

DP对端要么是RP要么是AP
RP对端一定是DP

STP端口状态:
1、forwarding:转发状态,学习MAC地址表,处理BPDU
2、learning:不转发数据,学习MAC地址,处理BPDU
3、listening:不转发数据,不学习MAC地址,处理BPDU
4、blocking:不转发数据,不学习MAC地址,处理BPDU
5、disable:接口被禁用

稳定STP网络只有两种状态,即forwarding和blocking

一个blocking状态的RP或者DP,至少需要30s进入到转发状态。

生成树故障恢复:

1、非根桥的RP失效,并存在AP时,AP成为新的RP,并经历30s进入转发状态。
2、非根桥的RP失效,但不存在AP时,此时交换机认为自己失去了到根桥的所有路径。
于是该交换机将自身作为根桥,发送以自己为根的BPDU。下游交换机需要等待20s将之前的BPDU老化,再处理该BPDU,此时需要50s恢复网络。

---- 次级BPDU的处理机制

第1种情况:
RP失效,存在AP,AP会立即选举新的RP
Blocking—>forwarding需要30s,网络恢复

第2种情况:
当交换机B的RP失效,交换机B发现自己没有端口接收根桥的BPDU;
交换机B以自己为根,发送次级BPDU,下游交换机的AP端口,不会立即处理,
而是等待之前根桥BPDU失效(老化时间20s),20s过后处理这个次级BPDU,
AP端口会成为新的DP端口,blocking-->forwarding:30s,
共50s才会恢复正常。

STP协议MAC地址表刷新机制:
当交换机收到TC BPDU后将自身所有端口(边缘端口除外)的MAC地址表的老化时间强制设置为15s。
TC BPDU会持续由根桥发送35s的时间。
边缘端口标准生成树协议是不支持的,但是华为的STP协议支持边缘端口的设置。
stp edged-port enable

STP协议最早认为任何端口进入到forwarding状态或者进入disable状态时认为STP拓扑发生变化。
后来STP协议对拓扑发生变化的定义做出了优化:
1、当端口进入到forwarding状态,边缘端口除外
2、RP失效或RP进入到forwarding状态
3、DP端口失效不认为拓扑发生变化

STP BPDU:

(1)配置BPDU
TCA 配置BPDU
TC 配置BPDU

(2)TCN BPDU

TCA = 0, TC = 0 配置BPDU
TCA = 1, TC = 0 TCA 配置BPDU
TCA = 0, TC = 1 TC 配置BPDU

STP协议当接口up并过渡到forwarding状态,会发生TCN BPDU,
逐跳传给根桥,上游向下游发送TCA=1,TC=1的配置BPDU,用于确认TCN,并将TCN逐跳传给根桥。
根桥在接收到TCN的端口上回送一个TCA=1,TC=1的配置BPDU,用于确认TCN,并通知网络拓扑发生变化。
配置BPDU,在其他端口上则发送TCA=0,TC=1的配置BPDU。

BPDU重要字段:

Message age:已经存在的时间,根桥发出的为0,逐跳加1
Max age:最大年龄,默认20s
--当message age到达max age则认为该BPDU失效
Hello time:发送BPDU的周期性时间,默认2s发一次

Forward delay:
(1)确定监听和学习状态所需的时间
(2)收到TC BPDU后MAC地址老化时间

华为STP,根桥发送配置BPDU,非根桥也可以主动发送BPDU。

华为STP协议引入了大量RSTP的特点:
1、非根桥可以主动发送BPDU
2、收到次级BPDU立即老化
3、引入了边缘端口

为什么在监听和学习状态需要forward delay的等待时间:

监听状态15s是避免STP协议在收敛过程中产生临时环路,让BPDU有足够的时间在整个网络进行传递。

监听状态期间,MAC地址表受TC BPDU的影响会进行提前老化,清除错误的MAC地址信息,导致错误的MAC地址老化也导致空闲MAC地址老化,
如果此时要转发数据帧就会导致大量未知DMAC的单播帧泛洪的现象,影响网络性能。那么牺牲15s的时间,设计出学习状态能让交换机在此期间重新构建正确的MAC地址表项,减少单播帧在STP收敛期间产生大量的泛洪行为。

STP的弊端:
STP协议的收敛是完全依赖计时器完成的,收敛速度慢,为了解决临时环路和收敛期间单播帧泛洪,需要等待30s;

STP(802.1d)/RSTP(802.1w)是单生成树协议,在存在多个VLAN的网络中,所有VLAN共享一棵树,导致链路利用率不高。
可能会产生部分vlan不通的情况。

为了解决STP的收敛慢,开发出了RSTP
为了解决RSTP单树弊端,开发出了MSTP

RSTP针对STP的优化。

P/A机制,在点到点全双工的链路上让DP和RP端口快速进入到转发状态,同时也不会产生临时环路。

P/A机制协商前提:
1、DP端口处于Discarding
2、点到点全双工链路
3、DP端口对端是RP端口

上一篇:sed 学习笔记


下一篇:挖掘系统自带的局域网互联工具