走进生成树协议(STP,Spanning Tree Protocol),图文结合法!

深思熟虑的结果往往就是说不清楚。
—— 王小波(1952.5.13—1997.4.11),《黑铁时代》

本章摘要

生成树协议(STP,Spanning Tree Protocol)允许以太网LAN既能获得冗余链路的附加好处,同时又克服了在添加额外的链路时出现问题。在局域网设计中使用冗余链路,可以使LAN在某些链路失效或某些交换机失效的情况下继续工作。正确的局域网设计应该增加足够的冗余,这样就不会产生单点故障导致局域网崩溃;STP允许在不引起其他问题的情况下使用冗余设计。

本章将材料组织成三部分。第一部分介绍了适用于大多数STP类型的核心概念。STP经过多年的改进和改变,最主要改进是RSTP(Rapid STP)。第一部分介绍了没有添加RSTP逻辑的STP概念,而第二部分详细介绍了RSTP概念。最后部分讨论了少量优化和保护STP的特性:PortFast、BPDU Guard和EtherChannel。

生成树协议(IEEE 802.1D)

如果没有生成树协议(STP,Spanning Tree Protocol),以太网帧将在一个具有冗余链路的LAN中无限期地循环下去。

启用STP可以智能地选择端口,以实现一种平衡,既允许将帧发送到每个设备,又不会导致帧循环。

  • VLAN中的所有设备都可以向所有其他设备发送帧。换句话说,STP不会阻塞太多的端口,从而切断LAN的某些部分与其他部分的连接性。
  • 帧的生命周期很短,不会无期限地在网络中循环。

STP为了防止循环帧,在交换机使用接口发送或接收用户流量之前,会在接口上添加额外的检查。检查内容如下:

  • 如果端口在该VLAN中处于转发状态,则正常使用它;
  • 若处于阻塞状态,则阻塞所有用户流量经过,即不发送或接收该VLAN的该接口上的数据流量。

注意,这些STP状态不会更改原有的交换机接口信息,如接口的已连接/未连接状态,access或trunk端口的运行状态。STP添加了这个额外的STP状态。

在许多方面,上述两段总结了STP的工作内容。然而,STP工作的细节需要大量的研究和实践。本章的第一部分首先解释STP的必要性,以及STP解决循环帧问题的基本思想。然后,大部分内容将介绍STP如何选择要阻塞端口,以实现STP的目标。

生成树的需要

STP可以防止Ethernet LAN中的三个常见问题,这些都源于一个事实:没有STP,一些以太网帧会在网络中长时间循环。

图2-1 中的网络,Bob发送了一个广播帧。虚线显示了当STP不存在时,帧转发的路径。

图2-1 广播风暴

Bob的原始广播也将围绕另一个方向进行转发,SW3将原始帧的副本发送到它的Gi0/1端口。为了避免混乱,上图没有进行显示。

表2-1 在冗余局域网中不使用STP导致的三类问题
问题 描述
广播风暴 (broadcast storm)—————————————— 在同一链路上重复转发一个帧,消耗了链路的容量,挤掉了好帧,因处理太多的广播帧会显著地影响终端用户设备的性能。帧会一直循环,直到有人关闭接口,或重启交换机。
MAC表不稳定(MAC table instability)—————————————— 由于错误输入的MAC地址(具有相同源MAC的帧到达不同的端口),交换器的MAC地址表不断更新,导致在回应时,帧被发送到错误的位置。如:SW3中的MAC地址 0200.3333.3333 Fa0/13 VLAN 1 循环帧经SW2,SW1,再转回SW3的Gi0/1接口,变成 0200.3333.3333 Gi0/1 VLAN 1
多帧传输(Multiple frame transmission)—————————————— 一个帧的多个副本被传送到预定的主机,从而使目的主机的应用程序产生混乱。

Cisco交换机默认运行STP,不要轻易尝试去禁用(disable),除非你知道你在做什么!

IEEE 802.1D 生成树可以做什么?

STP将交换机端口置于转发状态(forwarding state)或阻塞状态(blocking state)这两种状态来防止循环。处于转发状态的接口分别为正常(normal)、转发(forwarding)和接收帧(receiving frames)。但是,处于阻塞状态的接口不处理除STP消息(以及一些其他成本消息)之外的任何帧。对于接收到的用户帧,阻塞的接口不转发也不处理,甚至不学习帧里面的MAC地址。

图2-2 显示了一棵简单的STP树,它通过在SW3上放置一个处于阻塞状态的端口,来解决广播风暴。

图2-2 STP可做的:阻塞一个端口来打断循环

现在当Bob发送广播帧时,该帧不循环。过程如下图所示:

  1. Bob发送帧给SW3;
  2. SW3只转发帧给SW1,不是通过Gi0/2发给SW2,因为SW3的Gi0/2接口处于阻塞状态;
  3. SW1泛洪该帧,往Fa0/11和Gi0/1发出;
  4. SW2泛洪该帧,往Fa0/12和Gi0/1发出;
  5. SW3物理地接受该帧,但是忽略从SW2处接收的包,因为SW3的Gi0/2接口处于阻塞状态。

但是,如果其他两个链路中有一条失效,STP就会收敛(converges),这样SW3就会在Gi0/2接口上转发,而不是阻塞。

术语STP收敛(STP convergence)是指这样一个过程,交换机集体意识到局域网拓扑结构发生了变化,决定是否需要更改端口的阻塞和转发状态。

生成树是如何工作的?

STP算法创建了关于一个由转发帧的接口组成的树,该树的结构创建了单一路径(即以太网链路),就像从树的底部生长到每片叶子一样,可以跟踪到每一条路径。

在LAN交换机出现之前,STP的概念就在使用了,那时候以太网桥(Ethernet bridges)就使用STP的概念。今天,交换机继续扮演着桥接的角色,因此沿用了STP的术语。

STP使用的进程有时称为扩展树算法STA(spanning-tree algorithm),目的是来选择哪些接口来转发,而剩下的接口将进入阻塞状态。这过程有三个标准:

  1. STP选择一个根桥(也叫根交换机,根网桥,root switch),根桥上的所有接口置于转发状态。
  2. 每个非根桥认为它与根桥之间的任意端口的管理成本最低。这个成本叫做根成本(root cost)。该端口是最小根成本路径的一部分,被STP置于转发状态(称为根端口RP,root port)
  3. 通常一条链路连接两台交换机,与连接到同一链路的其他交换机相比,根成本最低的交换机处于转发状态,该交换机叫指定交换机(designated switch),连接到该段的接口称为指定端口DP(designated port)。

根桥要将所有工作接口(working interfaces)置于转发状态的真正原因是,它的所有接口都将成为DP。方便记忆,我们将转发帧的端口叫做工作接口。

剩余的其他接口则处于阻塞状态。

表2-2 STP:端口置于转发或阻塞状态的原因
端口 STP 状态 描述
根桥的所有端口 Forwarding 根桥是连接所有段的指定交换机
每个非根桥的根端口 Forwarding 该端口到根桥有最小的成本(lowest root cost)
每个LAN的指定端口 Forwarding 将Hello转发到具有最低根成本的段的交换机,是该段的指定交换机。
其他工作的端口 Blocking 该端口不用于转发用户帧,也不考虑转发这些接口上接收的任何帧。

STP只考虑工作接口(处于连接状态的接口),不工作的接口(例如,没有插电缆的接口)或管理员操作关闭的接口将被置于STP禁用状态。因此,本节使用术语工作端口࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值