3.2 STP原理与配置

2016年4月12日 1 条评论 842 次阅读 0 人点赞

环路引起广播风暴,mac地址表震荡,重复数据帧

[v_error]生成树协议STP(Spanning Tree Protocol):[/v_error]

•  Spanning-Tree Protocol简称STP,生成树协议,被广泛部署在二层交换网络中,用于
防止网络出现二层环路,同时增加网络的冗余性。 

•  交换机之间通过生成树协议数据的交互来完成所需信息的搜集,在此基础上交换机进
行相应的计算,最终将交换机的某个(或某些)接口阻塞从而打破环路。

 

[v_error]生成树协议的主要功能:[/v_error]

• 消除环路:在利用生成树算法、在以太网络中,创建一个以某台交换机的某个端口为根的生成树,避免环路。

• 链路备份:在以太网络拓扑发生变化时,通过生成树协议达到收敛保护的目的。

[v_error]在STP中,交换机之间相互交互的信息称为BPDU(Bridge Protocol Data Unit)网桥协议数据单元:[/v_error]

字节 name 字段 描述
2 PID 协议  代表上层协议(BPDU),该值总为0 
1 PVI 版本  (802.1D的总为0) 
1 BPDU Type TYPE  “配置BPDU”为0、“TCN BPDU”为80 
1 Flags 标志  LSB最低有效位表示TC标志;MSB最高有效位表示TCA标志
8 Root ID 根桥ID 根网桥的桥ID
4 RPC 路径开销  到达根桥的STP cost 
8 Bridge ID 网桥ID  BPDU发送桥的ID 
2 Port ID 端口ID  BPDU发送网桥的端口ID(优先级+端口号) 
2 Message Age 消息寿命 Message age 从根网桥发出BPDU之后的秒数,每经过一个网桥都加1,所以它本质上 是到达根桥的跳数。 
2 Max Age 最大寿命 Max age 当一段时间未收到任何BPDU,生存期到达MAX age时,网桥认为该端 口连接的链路发生故障。默认20S 
2 Hello Time HELLO时间  根网桥连续发送的BPDU之间的时间间隔。默认2S 
2 Fwd Delay 转发延迟  在监听和学习状态所停留的时间间隔。默认15S

[v_error]STP的计算:[/v_error]

STP计算

① 每个交换网络选举一个根桥RB
② 每个非根桥上选举一个根端口RP
③ 每个段选举一个指定端口DP
④ 阻塞非指定端口NDP

① 每个交换网络选举一个根桥RB

•  Bridge Identifier,交换机的STP 标识符; 

•  拥有最小BID的交换机成为根桥。

根桥ID Bridge Identifier:

    桥优先级     
        桥MAC地址         
←—————→ ←—————————→
2B 6B

根桥ID由16位优先级(Bridge Priority 取值范围0~65535,默认为32768,可配置修改)和48位的mac地址组成。

值越小,优先级越高,先对比桥ID,如果相同再比较MAC地址。

② 每个非根桥上选举一个根端口RP

根端口选举

华为X7系列交换机使用IEEE802.1t (dot1t)标准来计算路径开销

比较顺序(均比小): 

1、到根桥的路径开销 

STP 接口Cost 与接口带宽的对应关系

Link Speed  Cost (New IEEE
Specification) 
Cost (Old IEEE
Specification) 
10 Gb/s 2 1
1 Gb/s 4 1
100 Mb/s  19 10
10 Mb/s 100 100

路径开销是接口cost 累加,而接口cost 是基于接口带宽的

非根桥某个接口到RB的路径开销等于该接口的Cost 加上这个接口收到的BPDU 中包含
的Path Cost 值。

2、网桥ID (当开销一样时则比较收到发送BPDU 网桥ID,这里只有3个交换机对比不出来,当存在多个交换机时,收到对方BPDU 的就不一定是同一个交换机,这时收到的对端网桥ID对比大小,如果一样则对比端口ID)

3、端口ID 

•  Port Identifier,接口标识符,共有2个字节。 

•  Port ID (2字节)= 接口优先级(1字节)+接口编号(1字节)。 

•  缺省情况下接口优先级为128,范围是0-255。

③ 每个段选举一个指定端口DP

指定端口选举

在网段上抑制其他端口(无论是自己的还是其他设备的)发送 BPDU 报文的端口,就是该网段的指定端口。

根桥的每个端口都是指定端口 DP(除非根桥在物理上存在环路)。

指定端口的选举顺序同根端口。

④ 阻塞非指定端口NDP

当这些选举完成之后,剩下的端口为预备端口,被阻塞。图中阻塞的则是 SWC 的 G0/0/2。

[v_error]以下为举例:[/v_error]

STP选举案例1
STP选举案例2
STP选举案例3
STP选举案例4

[v_error]端口状态:[/v_error]

Disable  不收发任何报文
Blocking  不接收也不转发帧,接收但不发送BPDU,不学习MAC地址
Listening  不接收也不转发帧,接收并且发送BPDU,不学习MAC地址 
Learning 不接收也不转发帧,接收并且发送BPDU,学习MAC地址 
Forwarding 接收并转发帧,接收并且发送BPDU,学习MAC地址

STP端口状态转换过程

stp端口状态

生成树协议的应用

[v_error]拓扑变化:[/v_error]

• 根桥故障

在稳定的STP拓扑中,非根桥会定期收到来自根桥的BPDU报文,如果根桥发生故障,停止发送BPDU,如果下游交换机一直收不到报文,则Max Age 定时器会超时(默认20s),此时非根交换机会互相发送配置BPDU,重新选举新的根桥,会经过15s*2,总共消耗50s时间恢复网络。

• 直连故障

交换机检查到根端口链路发生物理故障,AP端口会经历Listening(15s),Learning(15s),Forwarding,然后恢复到转发状态。

• 非直连故障

交换机非直连直接出现故障,下游端口接收不到BPDU,同根桥故障一样,到恢复正常历时50s。

• 拓扑改变导致mac地址表变化

拓扑改变导致mac地址表变化

mac地址表老化时间300s,如果STP拓扑发生变化,交换机转发数据的路径也会随着发生改变,此时mac地址表中未及时老化的表项会导致数据转发错误,因此当拓扑发生变化后需要及时更新mac地址表。

上图中SWB 中的mac地址表定义了主机A 发往主机B 的端口,当SWC 发生故障,STP 收敛导致拓扑结构改变,主机A 到主机B 仍然无法通信,因为mac地址表还没有更新。

所以,在拓扑变化中,根端口通过发送TCN BPDU 获知拓扑中发生了故障,根桥通过TC BPDU 告知其他交换机加速老化现有mac地址表从而快速更新mac地址表。

过程如下:

1、SWC 感知网络拓扑发送变化,向SWB 发送TCN BPDU。

2、SWB 将收到SWC 发送的TCN BPDU报文中的Flags 的TCA位设置为1,发送给SWC 告知其停止发送TCN BPDU 报文,已经确认收到了。

3、SWB 向根桥转发TCN BPDU。

4、SWA 根桥把BPDU 报文中的Flags TC位设置为1,通知下游设备把mac 地址老化时间设置为Fowarding Delay的时间15s。

5、最多15s之后SWB 中重新学习arp信息。

•  操作命令→ STP


[v_error]总结:[/v_error]

根桥产生故障后,其他交换机优先级高的会被选举为根桥,当原来根桥恢复正常之后,网络结构改变,又会重新选举。

根路径开销是到根桥路径的总开销,路径开销是指交换机端口的开销。

Sevenfal

这个人太懒什么东西都没留下

文章评论(1)