STP基础知识

STP

STP报文格式

拓扑变化感知

STP的时间参数

STP常用的三个参数是两秒、十五秒、还有二十秒。

2秒指的是hello时间,是运行了STP的交换机发送配置BPDU的时间间隔,如果修改的话,仅需要在根桥上修改,在根桥上修改完成后,非根桥也自动和根桥对齐的,非根桥是怎么知道的呢?是通过根桥传过来BPDU当中的字段知道的呀!

15秒指的是转发延迟,这个延迟指的是两段时间的延迟,由侦听状态到学习状态需要延迟15秒,从学习状态到转发状态也需要延迟15秒,为什么需要这个延迟呢?通电之后直接转发他不好吗?我认为是这样,如果通电之后直接转发的话,可能会存在环路,如果等一会儿,等什么呢?等STP计算收敛完成,完成之后指定不会有环路,直接进入转发状态而不等STP计算收敛完成的话,就可能会出现环路。也就是说一个被阻塞的接口被选举成为根接口或指定接口之后,进入转发状态之前至少需要经历30s的时间。

最大生存时间20秒,也就是BPDU的老化时间,其实根接口会一直保存着根桥发过来的BPDU,仿佛这是它最珍贵的东西一样,这个20秒有什么特殊含义吗?由于根接口保存的是非根交换机最优的BPDU的,非根交换机会尽量保证它的新鲜感,也就是说根接口保存的BPDU是有老化时间的,如果在老化时间之前又收到BPDU,那老化时间则会被重置,一般都会在2秒左右收到新的BPDU的,所以说20秒的时间是足够充足了;如果都20秒了,根接口还没有收到新鲜的BPDU,说明根桥或根桥与自已中间的线路已经挂了,这个时候,根接口就会放弃这个他曾经非常珍惜的BPDU,本性暴露了,根接口喜新厌旧,对旧的,也就是已经超时的BPDU怎么办呢?就会将各个接口收集到的BPDU进行PK,再选出一个根接口。

受限于这几个时间的影响,一个接口从阻塞到转发状态至少要花费30秒的时间,这还是非常正常的状态下,其实是有解决办法的。

BPDU的比较原则

BPDU当中有四字字段非常重要:根桥ID、RPC、网桥ID、接口ID

比较顺序:

  1. 最小的根桥ID
  2. 最小的RPC
  3. 最小网桥ID
  4. 最小接口ID

最小根桥ID主要用做是网络当中选举根桥用的,后面的原则用来选择根接口以及指定接口。

STP生成树的过程

第一步:选举根桥

这一点与人很相似,在学习里的时候觉得自已挺厉害的,和同学相约江湖见面,但出了社会被打击之后就知道自已啥也不是。

初始情况下都觉得自已是根桥,刚开始两者发送的BPUD当中根桥都是写的自已,RPC填的是0,这一点也很好理解呀,自已是根桥,那到达自已的开销自然就是0嘛!网桥ID就是写的自已的桥ID,接口ID就是发送该BPDU的接口ID。双方都会收到对方发送过来的BPDU,SW2收到对方发送过来的BPDU,一看根桥ID当中的优先级就明白了,对方的更小,所以就默认了对方根桥的身份;SW1也会收到SW2的BPDU,一看对方比自已大,说明不如自已,SW1会忽略SW2发送的BPDU,自顾自的2s向外发送BPDU。

第二步:根接口选举

SW2开始选举根接口,根接口选举原则就是比较从哪个接口收到的BPDU更优,SW2收到的BPDU全是SW1发的,所以在根桥ID是比较不出来的,都是一样的,RPC呢?也是一样的,桥ID呢?也是一样的,都是SW1,接下业该比接口ID了,本次案例当中接口优先级是一样的,那得比接口编号,sw2的3号接口收到的BPDU当中的接口ID更小一些,所以3号接口成为根端口,3号成为根接口之后,会将根桥的BPDU保存,把自已原本的BPDU拿走。

第三步:开始计算

SW2的3号接口(根接口)会帮助刚才跟自已PK的4号接口计算出一个BPDU,怎么计算的呢?会通过3号接口保存的根桥给的BPDU帮助4号接口计算,计算的结果如下:

  • 根桥ID:不变,还是SW1 的根桥ID

  • RPC:在这里面就要写入最优BPDU,就是根桥根的BPDU,然后再加上自已(3号接口)到根桥的和,0+20000=20000

  • 桥ID:就是本设备(SW2)的桥ID

  • 接口ID:写4号接口的接口ID,毕竟是三号接口帮助4号接口,肯定要写4号接口的接口ID了

用计算出来的BPDU与4号接口收到的BPDU做一个PK,在收到的BPDU当中,根桥ID一样,RPC一样吗?不一样了,算出来的RPC是20000,而收到的RPC是0,明显后者更优,于是4号接口就是非指定接口,4号接口仍然保持状态不变,继续接收根桥发送来的BPDU,进入阻塞状态,二层环路打破。

原文地址:https://www.cnblogs.com/yizhangheka/p/13866032.html