STP基础(学习笔记)

1       STP介绍

避免形成广播风暴,需要一种方法来阻断冗余链路,消除这种路径环路。而当主链路中断之后,又能使得冗余链路能自动处切换到转发状态,恢复网络的连通性,STP就能实现这种功能 。

STP消除链路层环路的基本思想是:将网络环境修剪成树形拓扑,树形拓扑是没有环路的。

运行STP的设备之间会交互相关信息,然后通过计算实现网络拓扑的收敛,具体内容如下:

   1. 运行STP的设备会依据一定的准则选举一个树根节点作为网络中的根桥,其他节点为非树根节点。

   2.每一个非树根节点,都会选择一条最优路径与根桥连接,非树根节点上位于最优路径的端口,为该节点的根端口。

   3.如果网络中存在冗余链路,就会阻断冗余链路

每个非树根节点都会这么计算,最终网络中任意两台设备之间都有一条路径可达,从而行成一棵无环的树 。

2       STP基本概念

2.1   桥和端口的角色

1.        网桥

Ø  根桥:是整个生成树中根节点,由整个生成树中的优先级最高的网桥担任。

Ø  指定桥:是负责一个Physical Segment(物理段)上数据转发任务的桥,由这个Physical Segment上优先级最高的桥担任。

2.        端口

Ø  根端口:指网桥上距离根桥最近的端口,根桥没有根端口,非根桥有且仅有一个根端口。

Ø  指定端口:指Physical Segment上指定桥的端口。

Ø  候补端口:非根端口和非指定端口,它用来做根端口和指定端口的备份端口,也就需要阻断的端口。

2.2   桥ID

STP中每一个网桥都具有一个桥ID,用于网络中唯一标识一个桥。根桥的选举的依据就是桥ID,桥ID越小优先级越高。

桥ID包含桥优先级和MAC地址,长度为8B,其中桥优先级位于桥ID的高16位,而桥MAC地址位于桥ID的低48位,由于MAC地址在网络中时唯一的,因此桥ID在网络中也是唯一的。

如果没有配置桥优先级时,桥默认优先级为32768。

2.3   路径开销

路径开销是用来衡量桥与桥之间路径的优劣。

默认链路开销值取决于所遵循的路径开销标准以及链路的带宽。

路径开销等于整个路径上路径开销的总和。

2.4   BPDU

BPDU:桥协议数据单元,用来交互协议信息,分为两类:

  1.配置BPDU:用来进行生成树计算和维护生成树拓扑的报文

  2.TCN BPDU:当拓扑发生变化时用来告诉某些设备拓扑发生改变的报文

配置BPDU是通过二层组播发送的,目的MAC地址为01-80-C2-00-00.

配置BPDU由根桥产生并通过指定端口周期性的发送出去,发送周期为Hello Time非根桥交换机通过根端口收到配置BPDU,进行更新并从指定端口发送出去。网络只有根桥会产生配置BPDU,非根桥只会相互交互BPDU报文,没有配置STP协议的交换机会把配置BPDU作为普通数据帧处理。

网桥上的每个端口都会保存本地端口接收到的最优配置BPDU,老化时间为Max Age,当在Max Age时间内没收到配置BPDU更新时,端口会自动删除其保存的配置BPDU信息。

配置BPDU报文包含目的MAC地址、源MAC地址、帧长、逻辑链路头以及载荷等,载荷包括以下部分:

  1.协议ID:用来表示STP协议,固定为0x0000

  2.协议版本ID:STP为0x00  RSTP为0x02

  3.BPDU类型:配置BPDU为0x00,TCN BPDU为0x80

  4.Flag标志位:由8为组成,最低位(0)为TC(Topology Change)标志位,最高位(7)为TCA(Topology Change Ack)标志位,其他6位保留。

  5.根桥ID:用来标识网络中的根桥

  6.根路径开销:指从收到该配置BPDU的网桥到根桥的最小路径开销,即最短路径上所有链路路径开销代数和。

  7.发送桥ID:指发送配置BPDU网桥的ID,即Physical Segment上指定桥ID。

  8.发送端口ID:指发送配置BPDU网桥端口ID,由优先级和端口索引号组成,即Physical Segment上的指定端口。

  9.Massage Age:配置BPDU到当前时间的存活时间。

  10.Max Age:配置BPDU的最大存活时间。

  11.Hello time:配置BPDU的生成周期,默认为2秒

  12.Forward Delay:配置BPDU传播到全网的最大延迟,默认为15秒

3       STP计算过程

3.1   STP计算步骤

STP计算主要包含两个任务:选举根桥和确定端口角色。

STP计算离不开配置BPDU,比较配置BPDU的依据优先级向量最小者优先的原则,遵循步骤如下:

  1.根桥ID,根桥ID包含桥优先级和MAC地址,桥ID最小者优先。

  2.根路径开销:依据遵循的路径开销标准和链路带宽,开销最小者优先

  3.指定桥ID:该ID包括桥优先级和MAC地址,桥ID最小者优先。

  4.指定桥端口ID:该ID包括端口优先级和端口索引号,最小者优先。

  5.接受桥端口ID:该ID包括端口优先级和端口索引号,最小者优先。

3.2   根桥选举

网络中桥ID最小者会被选举为根桥,桥ID由桥优先级和MAC地址组成。

选举过程:

  1.在初始状态,网络中的网桥都没收到对方的配置BPDU,此时每个网桥都认为自己是根桥,向网络中以二层组播的形式发送配置BPDU。

  2.网桥把自己的配置BPDU跟收到的配置BPDU进行比较,更新为优先级高的配置BPDU保存在接收端口,并从指定端口继续与设备交互更新之后的配置BPDU。

  3.当全网络中网桥根桥保持一致之后,根桥选举结束。

3.3   确定端口角色

端口角色的确定分为根端口的确认、指定端口的确认和Alternate端口的确认。

  1.根端口:当网桥从一个端口收到配置BPDU后,首先获取其中的RPC(根路径开销)和接收端口链路路径开销相加,得到此端口的RPC。再比较该网桥上其他端口的RPC,RPC值最小者为该网桥的根端口。

  2.指定端口:发送的配置BPDU优于接收到的配置BPDU,表明该端口在本Physical Segment最优配置BPDU,则此端口为指定端口。

  3.Alternate端口:端口的配置BPDU在本Physical Segment不是最优配置BPDU,则此端口为Alternate端口。

注:在时间计算过程中,端口确认是同步完成的。

在网络稳定运行时,根桥以Hello Time为周期发送配置BPDU,其他网桥接受到配置BPDU之后,更新本地的配置BPDU,并从指定接口发出更新后的配置BPDU。

3.4   等路径开销计算

在根桥选举和端口确认的步骤中,只用到了优先级向量里的桥ID和根路径开销。剩下的三个向量指定桥ID用于等路径开销的情况下来确认端口角色、指定桥端口ID则用于等路径开销和同一台指定桥的情况下来确认端口角色,接收端口ID则是在优先级向量中前四个都相同的情况下来确认端口角色。

3.5   收到低优先级配置BPDU时的处理

通常情况下,非根桥不会主动发送配置BPDU。而当网络中添加一台新的网桥,并其网桥优先级比较低,并在原有网桥的指定端口上收到新添加网桥的配置BPDU时,该网桥会回立即回应一个配置BPDU,这样可以保证新加入的网桥尽快的确认根桥和端口角色,使得网络实现快速收敛。

3.6   STP端口状态

STP端口状态

是否发送BPDU

是否发送数据

是否学习MAC地址

Disabled

Blocking

Listening

Learning

Forwarding

其中Listening和Learning为中间状态,为了避免临时环路,处于中间状态的端口不能发送数据。端口在中间状态的停留的时长为Forware Delay,默认为15s 。

Forward Delay根据hello Time以及网络的直径综合计算出来的,它确保了BPDU有足够的时间传播的网络中的每个角落,使得网络实现收敛。

在listening状态,经过Forward Delay时间来交互配置BPDU报文,从而使得各网桥有足够长的时间来确定其端口角色,通过阻塞Alternate端口避免临时环路的产生。在learning状态,经过Forward Delay时间来交互配置BPDU报文,以确保各网桥有足够长的时间来学习MAC地址,尽量减小由未知单播造成的广播。

3.7   STP拓扑改变处理过程

当网络拓扑发生改变之后,由于配置BPDU的Max Age时间(默认20s)小于MAC地址老化时间(默认300s),网络中会出现短暂的中断,为了解决网络中断这种现象,STP使用TCN BPDU使网络中断到恢复的最长等待时间还时间为Max Age + 2Forward Delay (20+2*15=50s)。

处理过程如下:

  1.网桥感知拓扑发生变化,产生TCN BPDU从根端口发出,通知根桥。

  2.如果上游不是根桥,此网桥会将下一个要发送的配置BPDU中的TCA位置位发送给下游网桥,作为收到TCN BPDU的确认。并该上游网桥继续从根端口发送TCN BPDU。

  3.重复2步骤,直到根桥收到TCN BPDU。当网桥收到TCN BPDU之后,会把将下一个要发送的配置BPDU中的TCA位置位发送给下游网桥,作为收到TCN BPDU的确认,同时还会将该配置BPDU的TC位置位,用来通告网络中所有网桥拓扑发生了变化。

  4.根桥在其后的Max Age+Forward Delay时间内,将发送的配置BPDU中的TC位置位,当网桥收到根桥TC位置位的配置BPDU时,会把自身MAC老化时间由300 s缩短为Forward Delay 。

TCN BPDU有如下两个产生条件

  1. 网桥上有个端口转变为Forwarding状态,并该网桥上至少有一个端口为指定端口。

  2.网桥上有端口从Forwarding状态或liearning状态转变为bloacking状态。

3.8   STP的不足

  1. STP为了避免临时环路的产生,每个端口在确认为根端口或指定端口后仍然需要等待30s的时间才能进入转发状态,对于一些对是时延敏感的应用是不可接受的。

  2.对于网络拓扑不稳定的网络,经常需要重新进行STP计算,某些端口可能会长期处于阻塞状态而导致网络长时间的中断。

 

文章原地址:http://blog.51cto.com/2785903/1104274

转载于:https://www.cnblogs.com/munglan/p/9958306.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值