您现在的位置是:沙巴体育平台 > 网络世界 >

带你走进网络世界:环路杀手—STP

2020-03-13 19:25网络世界 人已围观

简介走进网络世界可能大家都觉得是最重要的是快就是性能方面一定要强,不然大流量关键业务怎样跑,这个答案看似是没什么毛病。 在企业网当中性能固然重要,但不是最重要的,企业网最看重的是容...

  可能大家都觉得是最重要的是快就是性能方面一定要强,不然大流量关键业务怎样跑,这个答案看似是没什么毛病。

  在企业网当中性能固然重要,但不是最重要的,企业网最看重的是容灾性,所以企业网设计尽量避免单点故障,一下我们通过一个例子来说明一下:

  下图,是一个简化版的企业网络结构,从下图我们可以看出整个网络的核心是SW1,如果中间的SW1突然挂了,那整个网络就全瘫痪了,整个被称为单点故障,在企业网设计中是要尽量避免这种设计,当然前提是预算允许。

  这个图我们可以看出核心层从原来的一台设备增加到两台,这种设计即使SW1挂了也不会导致整个网络瘫痪,因为还有SW2在,SW2会在SW1挂了的时候完全自动接替SW1的工作,这样就很好的避免了单点故障了。

  拓展阅读:上述的这种情况,在SW1挂了的情况下SW2自动接替SW1的工作这种情况是需要做配置的,一般情况这种配置我们成为高可靠性,一般实现这种功能有很多方法,例如现在很流行的虚拟化,又或者是传统的MSTP+VRRP都可以。

  然而细心的读者可能会发现,这种所谓的高可靠性设计不就是上一篇文章《带你走进网络世界:交换机的工作失误?广播风暴详解》中提到的环路吗,是的,这种高可靠性设计确实是一个物理环路。

  生成树协议是一种工作在OSI七层模型中第二层的一个协议,它是通过阻塞物理端口来达到消除广播风暴的目的。

  之所以叫生成树协议,是因为自然生长的树是没有环路的,从树根到到某一片树叶只有一条路能到达,这个特性较为符合生成树协议的特性,所以就这么叫了。

  此端口为非指定端口,且不会转发数据帧,端口在这个状态下只会接收BPDU报文,当网络拓扑发生改变的时候此端口会根据BPDU报文进行状态更改。

  当端口处于这个状态下就证明交换机判定这个端口应该参与根端口或者指定端口的选举,这个状态的端口仍然不能发送和接收数据帧,而是仅可以接收和发送BPDU,这个状态只会发展成两个状态,要么成为根端口或者是指定端口,要么是回到 Blocking状态。

  在forwarding状态下该端口可以发送和接收数据帧,也可以收集MAC地址加入到它的地址表,还可以发送和接收BPDU报文。

  根桥是一个网络的逻辑中心,但并不一定是物理上的中心,根桥会根据网络拓扑变化而动态变化,在网络完成收敛后会定期发送BPDU维护网络拓扑的稳定。

  根端口负责想根桥转发数据,是交换机到达根桥路径开销最小的端口,也是就是距离根桥最近的端口。

  当一个网段拥有两条或者两条以上的链路通往根桥时,连接这个网段的交换机就必须指定一个指定端口。

  路径开销是由链路速率决定的。可以这样理解,从A市到达B市,走高速的线小时,这个耗费的时间就可以理解成路径开销了。

  生成树协议通过上述的参数将有环路的物理拓扑修剪成无环网络,达到链路备份和路径优化等目的。

  首先要实现上述的功能,交换机需要通过一系列的信息交流和选举,方可实现。

  交换机在修剪无环网络的过程中需要互相进行信息交流,而交流的这些信息我们称之为BPDU(Bridge Protocol Data Unit),BPDU是二层报文,所有支持STP协议的交换机都会收到并且处理这种数据报文,BPDU报文中包含多种生成树所需要的参数。这些参数会用到在后面的选举过程中。

  选举根桥是在真个运行STP的网络中选举出一个唯一的根桥,这个根桥是STP网络中最顶端的设备。

  选举根桥的过程中,每台交换机都认为自己是根,然后互相发送BPDU报文,然后通过规则进行比较选举出根桥。(一个广播域需要选举出一个根桥)

  Bridge ID值可以手动调整,数值越低优先级越高(范围是1-61440默认32768,需要是4096的倍数),若Bridge ID值相同则对比MAC地址,MAC地址的数值越小优先级则越高,优先级高的交换机则当选为根桥。

  根端口选举就是在所有非根桥上的不同端口之间选举出一个到根桥最近的端口,当然这个最近并不是指到达根桥所经过的交换机数量最少,而是根据端口到根桥的累计根路径开销最小的来判定,实际上是非根桥上接收到最优配置BPDU的那个端口即为根端口,每个非根桥设备都要选择一个根端口,根端口对于一个设备来说只有一个。

  累计根路径开销的计算方法是累加从端口到达根桥所经过的各个端口(除根桥上的指定端口外)的各段链路的路径开销值(链路开销),这里需要注意一下,同一交换机上不同端口之间的路径开销值为0。

  如果同一交换机上有两个以上的端口计算得到的累计根路径开销相同,那么选择收到的BPDU中的发送者Bridge ID最小的那个端口作为根端口。

  每一条物理链路需要选举指定端口,可以理解成为每条连接交换机的物理线路的两个端口之间,有一个就要被选为指定端口,每个网段选举指定端口后,就能保证每个网段的链路都能够到达根交换机,根端口的对端一定是指定端口(主要作用是用来转发来自根桥的BPDU)

  比较同一段链路上2个端口发送BPDU到根的路径开销,较小的一个端口成为DP,如果相同再比较发送者的Bridge ID,Bridge ID小的那个则成为指定端口。

  在完成以上选举之后,交换机会对落选的端口,既不能成为根端口和指定端口的端口进行阻塞。

  当端口被选举为根端口或者指定端口时会进入侦听状态,这个时候端口能够正接收和发送BPDU,这个状态会持续15秒。

  如果没有意外情况,端口就会进入学习状态,如果有意外情况,端口则回到阻塞状态。

  端口处于学习状态能够接收和发送BPDU,同时会开始学习MAC地址,构建MAC地址表,需要注意的是这个端口状态下端口还不能接收和发送数据帧。

  在端口处于学习状态下,如果没有因为端口被禁用等情况端口会顺利进入转发状态,端口处于转发状态能够接收和发送数据帧与BPDU。

  如果STP完成了选举并且进入稳定状态之后,因为网络发生变化就会触发收敛。

  STP收敛需要耗费很长时间,所以现在STP协议已经被淘汰了,取而代之的是RSTP和MSTP,当然也有思科的私有协议PVST。

Tags: 走进网络世界 

本栏推荐

标签云

站点信息

  • 文章统计1679篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们