BPDU报文(传统STP)

 

BPDU字段包含的信息:编程

Protocol ID   协议ID缓存

Version    STP版本(三种)spa

STP(802.1D)传统生成树    值为0

RSTP(802.1W)快速生成树    值为2

MSTP(802.1S)多生成树    值为3

Message Type   消息类型(常见的两种)3d

   配置BPDU:负责创建,维护STP拓扑     

   TCN BPDU:传达拓扑变动        

Root ID    根桥IDcode

Cost of Path   路径开销blog

Bridge ID      桥ID接口

Port ID     端口ID同步

Message Age    当前消息年龄(STP每通过一台交换机,该字段+1,同步不一样位置的设备根桥超时)io

Max Age           最大消息年龄(超过则表明根桥故障)class

Hello Time    问候时间(根桥经过不断发送STP维持本身的地位,Hello time 是发送的间隔时间)

Forward Delay   端口从listening -> learning  或 learning -> forwarding 的转态须要时间

 

STP 选举流程:

1.选举根桥

2.非根交换机选举根端口

3.每一个线路选举指定端口

4.阻塞非根,非指定端口

 

选举根桥,根端口,指定端口,阻塞端口都如下面的规则来选,都是越小越好

这些信息在BPDU中都有。

 

比较规则:

1.bridge ID:   优先级(默认32768) + MAC地址

2.Cost路径开销   根据接口带宽比例计算

3.port ID:    优先级 (默认128)+ 端口号

 

 

根桥选举:

1.选根桥:每一个交换机假设本身为根,互相发送BPUD报文,而后经过比较规则竞选根桥

2.选根端口:每一个交换机根据接收由根桥发送的BPDU中的开销来选举根端口(最优路径),交换机接收累加开销,转发不累加

3.选指定端口:每条链路根据比较规则来选出指定端口,每条链路必须有指定端口。

4.选阻塞端口:除了根端口,指定端口,剩下的为阻塞端口

 

 

下面是华为设备STP  的配置BPDU

从这里能够分析出,该端口的端口号是2,据开销20000可知千兆口,因此为G0/0/2

很明显该端口所属的交换机不是根桥,而且是根桥的邻居。BPDU类型是配置BPDU。

 

下面看下当某条链路断开时,发生了拓扑变化的BPDU报文

 

好比有一台交换机,一个端口为根端口,另外一个为阻塞端口。若是根端口被关闭了

那么阻塞端口会发送一个拓扑变动BPDU的报文给相邻的交换机,这个BPDU类型为:TCN

 

而相邻的交换机会向这个阻塞端口发送一个确认拓扑变动的BPDU,这样阻塞端口就知道本身的消息被收到并将会传达。

这个BPDU类型为 TCA,同时相邻的交换机就会把继续把 TCN 向根端口方向转发,以后也会收到上层交换机发来的TCA确认接收报文

若是根桥收到了这个由阻塞端口传来的TCN,便会下发拓扑变动BPDU其类型为TC,每台收到此TC报文的交换机都会将本身的MAC缓存表刷新或减低过时时间。

而后再向下传达这个TC报文。

 

 

看下下面的拓扑图

 

在交换机 LSW5中 GE0/0/1本来为阻塞状态,GE0/0/0为根端口

可是有一天GE0/0/2端口down掉了

若是没有上述的拓扑变动BPDU的话,那么会发生以下状况

 

client6 发送 数据 给 client4

缓存表里client6的mac地址对应的倒是GE0/0/2的接口(已经down掉了)

这样致使client6没法与外界通讯,除非要等mac缓存表的过时时间300s也就是5min

这个时间实在太长了,解决的办法就是发送拓扑变动给根桥,根桥赞成变动后向下发送

TC BPDU,全部收到此报文的交换机都把MAC缓存表刷新或减小过时时间来避免收敛速度慢

 

与根桥的直连链路发生故障

LSW8交换机上的G0/0/1为根端口,G0/0/2为指定端口,

G0/0/1发生故障后,G0/0/2会的端口角色会编程根端口

当是状态要从 listening->learning->forwarding须要30秒的时间

 

 

与根桥的非直连链路发生故障

在LSW8中GE 0/0/1为根端口,由于HUB集线器与根设备的线down掉了

因此LSW8 会在Max Age 的时间内不能收到根桥发送的BPDU,因而他会以

自身为根桥向周围发送 BPDU,当LSW9收到两边的BPDU则会对比,发现LSW7

才适合作根桥,因而又会通知LSW8,这样GE0/0/3就会转变成根端口。

所用的时间为50s(MAX Age +Forward Delay)

相关文章
相关标签/搜索