• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

STP

开发技术 开发技术 1周前 (04-06) 9次浏览

一、STP的诞生背景,解决的问题?


  1. 环路产生,是因为,我们在交换网络中,需要设计机制,避免线路单点故障,提升冗余性

  2. 物理上线路的冗余,产生了环路,而环路会带来很大的副作用
      广播风暴  耗尽交换机的带宽,CPU资源,导致数据无法正常转发
            现场,看一下交换机,如果交换机的所有的亮着灯,都出现疯狂闪烁,肯定是环路
            广播风暴,无解,交换机  关机重启,因为二层广播报文,没有TTL机制,它会一直存在。
      不稳定CAM表交换机对于学习到的MAC地址,反复记录在不同的接口上,引起CAM表的抖动,
      影响正常通信重复的单播帧

  3. 需要物理线路上的冗余,同时又要避免环路带来的副作用,同时还要能够自动化的实现STP的终极目的,就是自动破除逻辑上的二层环路

二、生成树是如何实现的?


  1. 通过协议:STP  IEEE=802.1d
    阻塞网络中的某一个接口(从逻辑上),实现物理链路正常链接,逻辑上关闭(down),避免环路的危害

  2. 具体要阻塞哪一个端口?交换机之间的协商出来的===》BDPU报文,交换机通过BPDU中的关键的参数,进行选举选举出来的结果,就是要阻塞的端口。

三、STP的选举过程


  • 选举根桥
  • 选举根端口
  • 选举指定端口
  • 最后选出 阻塞端口(非指定端口)
  1. 根桥选举 需要比较关键参数(BPDU),BID=brige id 网桥(交换机)优先级+MAC地址 优先级范围0-65535 默认32768
    所有的交换机之间产生的,BID越小越优先

     display stp			查看根桥的BID
    
     stp root primary/secondary	将交换机设为根桥BID为0
    
     stp priority <0-61440>		将交换机设为根桥BID为<0-61440>,默认是32768
    
     display stp brief		查看交换机的端口角色
    
     注:设置桥优先级,优先级的值,必须是4096的倍数
    
  2. 非根桥上选举根端口(RP)(所有接口都参加选举)每一个非根桥交换机所有端口进行比较选举出一个根端口(负责接受根桥发送BPDU数据)
    根据根路径成本来选举(三个交换机成三角形相连)
      cost of path 到达根桥的开销值(STP的路径成本)越小越优先,与接口带宽有关不是按链路的带宽算,而是按接口算的
        100M 19
        1000M 4
        10G 2
    根据发送网桥ID来选举(四个交换机成矩形相连)
      sender BID 发送者的BID 这个接口对端交换机的BID 越小越优先 在现网中,我们会对BID进行规划,一般来讲,BID越小
    的,越靠近核心层
    根据发送端口ID来选举(两个交换机两条线相连)
      sender PID(端口ID=端口优先级+端口ID缺省优先级为128,范围0-255,越小越好)
    根据本地端口ID来选举(SW1-hub=SW2)
      local PID

  3. 所有非根桥交换机空余链路中选择出来的指定端口(DP)(是在两台交换机之间选择出来的)(负责转发BPDU数据)
      cost of path  注意: 此处的开销值,指的不是接口到达根桥的开销,而是当前接口所在交换机,它的根端口到达根桥
    的开销值
      local BID   (本地交换机的BID) 越小越优先
      local PID   (交换机本地端口ID) 越小越优先
    根桥上所有接口都是指定接口(不需要选就知道)

  4. 剩下的就是阻塞(BP)(不转发负责对指定端口的转发BPDU数据的监听)


注:
Hub内部为总线,通过载波监听来判断线路是否被占用,所有的接口出于一个冲突域,Hub所发信息都是广播的形式
工作形式:CMCD:载波监听
交换机和hub的区别:
  交换机内部存在一个有高带宽的线路板,交换模块,交换机所有的接口都在一个广播域下,交换机内部可以实现 终端的单播通信(CAM表)

四、STP的状态机制


  1. STP的端口状态
    disable===》不会参加STP的选举(可能端口没有打开,或者没有连线)

    阻塞 —》 20S—》和计时器有关
        在选举之前,所有的端口从disable过度到的第一个状态
        在选举结束之后,被阻塞的端口,就是阻塞状态

    监听—>选举 forwarding delay =15S
        在监听的状态下,交换机完成STP的角色的选举,选出根桥、根端口、指定端口、非指定端口
        选举结束之后,网络拓扑无环,处于一种比较稳定的状态

    学习 forwarding delay = 15S: 交换机学习MAC地址,完善CAM表
        交换机转发数据,依靠CAM表,交换机的接口开始学习MAC地址来形成CAM表
        如果交换机接口从监听直接跳跃到转发状态,
        在最开始的时候,交换机的CAM表是空的,在网络中的一段时间内,会有大量的泛洪的数据

    转发
        交换机的端口能够正常的转发数据流量

五、STP的拓扑变更


  1. 拓扑变更机制
    当网络中某些链路、交换机设备出现的故障的时候,与该交换机有关的MAC地址信息就会变成无用的信息
    拓扑变更机制的目的:让其他交换机快速刷新CAM表,将这些无用的信息快速的刷新掉,节省计算和带宽资源

    TCN: top change notice =>最先感知到top变化的交换机发送到报文,这个报文最终将要被传递到根桥

    TCN ACK :当交换机收到一个TCN报文的时候,向发送TCN的交换机发出的回复报文

    TC:根桥发出的,用于通知全网交换机,网络拓扑发生了变化:35s,当交换机收到TC的时候,会将自己的CAM表老化时间  由原来的300s秒调整到15s,快速的将CAM表进行刷新,刷新之后,就不再由关于发生故障交换机的MAC地址信息了

  2. 扑变更信息通知及操作过程
    1.SWB 感知到SWA的链路故障

    2.SWB 通过自己的根端口 向上发送TCN BPDU,通知上面的交换机 拓扑变更的情况,TCN BPDU最终要通知到根桥

    3.SWC 的指定端口 收到SWB 发送的BPDU,会给SWB 一个TCN ACK报文的回复,同时,会将接收到的TCN BPDU 再通过自己的根端口向上转发

    4.SWC 发送的BPDU TCN 最终被根桥接收,根桥向SWC发送TCN ACK的回复信息

    5.根桥向全网通知 拓扑变更

    6.全网交换机将自己的CAM表时间由300s 变成15s,重新刷新自己的CAM表。

六、STP的特性


  1. port fast
    链接终端的接口,不会连接其他的交换机,所以也不会出现环路,但是这些接口依然受控与STP,当接口在启用的时候,依然要经历30-50
    漫长的时间,所以,要把连接终端的端口的选举机制去掉,让这些端口在启用后,迅速的进入到转发状态

  2. bpdu guard/bpdu防护
    只配置portfast的缺陷:当 边缘端口/配置了portfast的端口接入交换机的时候,交换机会发送bpdu,则portfast接口会重新参与stp计算,造成环路或者二层的网络动荡
    当交换机的portfast 接口收到 BPDU报文的时候,接口会切换到 down(hauwei)/err-disbale(cisco)的状态

  3. bpdu filter
    背景:
      1. 全局配置BPDU filter
      希望这个接口处于 边缘接口的角色,但是也可以接入交换机设备,一旦收到BPDU的时候,就会消失掉portfast的特性,成为一个普通的stp的端口
      2. 在接口情况下配置bpdu filter
      相当于关闭了 STP的功能,当收到BPDU的时候,可能会导致二层环路

  4. uplink fast
    主要作用:主动向其他交换机发送自己下联PC的MAC地址信息,让其他交换机快速更新CAM表

  5. backbone fast
    BackboneFast是对UplinkFast的一种补充,
    UplinkFast能够检测直连链路的失效,
    BackboneFast是用来检测间接链路的失效。
    当启用了BackboneFast的交换机检测到间接链路失效之后,会马上使阻塞的端口进入监听状态,少了20S的老化时间。

  6. RootGuard
    如果新接入的交换机优先级更低,将抢占原有的根网桥
    Root Guard是一种强制的根保护措施,它的作用是防止意外(或者非法)加入的交换机成为网络中的根桥


程序员灯塔
转载请注明原文链接:STP
喜欢 (0)