对于新的网络人员,生成树协议(STP)可能是一个令人生畏的话题。许多老人们都在以不祥的音调谈论生成树,讲述了“生成树循环”的时间 使网络瘫痪。一些管理人员严格禁止任何人更改与生成树相关的任何内容,以免造成服务中断。围绕生成树的某些恐惧可能是基于不良经验,但有些则基于无知—至少部分。我们倾向于害怕我们做什么’t understand.

It’一篇博客文章无法完全消除您可能对生成树的恐惧。就是说,让您感到恐惧的关键始于了解生成树’的目的。首先, 生成树是一个环路预防协议。生成树本身并没有 原因 循环。虽然可以说在极端情况下生成树无法 防止循环 从发生,它当然不会’t 原因 loops.

为什么所有这些都集中在循环上?在网络中,环路为网络流量提供了一条永无止境的路径。在以太网中,帧永不消亡。那里 ’没有时间将功能附加到传统的以太网框架。因此,如果存在环路,则没有明确目的地的帧(例如广播帧)将永远在网络上循环。

随着广播帧的累积,对网络的负面影响增加。广播帧适用于该细分市场中的每个人;每个连接的主机都必须处理广播。一遍又一遍地。随着时间的流逝而增加。因此,有时会称为桥接循环 广播风暴.

这些风暴影响网络利用率并占用CPU资源。网络交换机和路由器受到这些风暴的严重影响。由于必须处理所有广播处理,因此它们的CPU在几秒钟内即可达到100%的利用率。这通常会阻止他们执行其他应做的事情,例如维护生成树拓扑或与路由邻居保持同步。最终结果是网络中断。

生成树简介

生成树的作用是防止造成网络混乱的桥接环路。解释生成树如何执行此操作的最简单方法是一个示例。请看下面的简单图,它显示了三个配置成三角形的开关。

 生成树

在此图中,我们创建了一个循环。好的。那么,生成树如何防止此循环引起网络问题?生成树将 拓扑中的链接,这样它就不能再用于转发流量。当物理电缆仍然插入时,生成树告诉交换机不再使用该链接。因此,减轻了循环。

 生成树

毫无疑问,您想知道生成树如何确定哪个链接是要阻止的链接。要回答这个问题,您需要了解一些生成树基础知识。

  1. 交换机使用网桥协议数据单元(BPDU)相互共享生成树信息。术语“开关”就我们的目的而言,“桥梁”是同义词。
  2. 生成树交换机选择域中的网桥之一作为 根桥 。在上图中,交换机1、2和3进行了选择,以确定其中哪一个应为根。
  3. 确定根目录后,所有交换机都会计算返回根桥的成本最低的路径。更昂贵的路径被阻止。

让我们更详细地看一下。在下图中,我们假设交换机1已成为根网桥。交换机2可以通过两种方式到达交换机1:直接或通过交换机3。直接路径的成本为10。通过交换机3的路径的成本为20。更昂贵的链路被阻塞。

 生成树

现在,您可能想知道生成树桥如何选举根桥。将为所有生成树交换机分配一个网桥ID,其中包含数字网桥优先级和唯一标识该交换机的MAC地址。具有最低网桥ID的交换机赢得选举。通常,这将转换为最低的网桥优先级,但是,如果多个交换机具有相同的网桥优先级,则嵌入在网桥ID中的最低MAC地址将成为决胜局。

保持对生成树的控制

使用以前的信息作为背景,这里提供一些建议,用于建立和维护生成树设计的控制。

  1. 通过设置网桥优先级,自己选择根网桥。

    如果您非常了解网络拓扑,则根桥的选择应该很直观。在大多数网络设计中,一个或一对交换机充当网络’的拓扑中心。它们通常称为“核心”交换机。

    一般来说,核心是作为根桥的不错选择。在包含多个VLAN的网络上的双核设计中,一种常见的策略是使一个核心成为奇数编号的VLAN的根桥,而另一个核心成为偶数编号的VLAN的根桥。假设您正在运行“每个VLAN生成树,”思科环境中的默认设置。这种奇偶方案允许双核之间的流量达到某种负载平衡。

    如果你不这样做’如果您自己设置网桥优先级,则会发现默认情况下,所有交换机的根网桥优先级都相同:32768。由于最低的MAC地址是唯一需要决胜局,因此拓扑中的任何交换机都可能成为根网桥—甚至是一个低矮而古老的壁橱交换机也可以在您的网络尘土飞扬的角落安静地运行。因此,您自己设置根网桥是明智的,因为您应该获得对您的网络有意义的流量转发路径。

    在Cisco网络中,使用“ spanning-tree vlan X priority”命令以4096为增量设置交换机的网桥优先级,其中X是您希望为其设置优先级的VLAN号或VLAN范围。

  2. 守护根桥。确保没有其他交换机可以接管root角色。
    • 保持流氓交换机关闭网络。 一种简单的方法是使用BPDU保护,我们在 以前的博客文章。 BPDU保护是防止交换机意外引入生成树域的第一道防线。
    • 将可能成为篡夺根桥宝座的人置于大门外。 思科交换机提供了一种称为 根卫 ,如果到达高级BPDU(宣布具有较低ID的网桥的BPDU),则端口将处于阻塞的“根不一致”状态。

      在永远不会出现根网桥的接口上配置了根卫士。尽管您可能认为根防护可以随处可见,但请先仔细考虑。许多网络不仅配置有显式的根网桥(具有最小网桥ID的网桥),而且还配置有显式的备份网桥,以在主根网桥关闭时接管root的职责。

      绝对不要在可能会合法出现根网桥的接口上安装根卫士。具体取决于您的网络拓扑,但是一般的指导原则是将根防护视为外围防御机制。在网络边缘放置根保护通常是安全的。将根保护放置在可以并且应该互连交换机的某些接口上,但是确定哪个接口需要更仔细的计划。要将根防护应用于Cisco交换机接口,请使用以下命令“生成树保护根。”

  3. 避免由于电缆故障而导致意外循环。

    我们将在这里讨论的最后一个跨树护卫是 回路保护 。环路防护有一个非常特定的目的:防止可能由单向通信引起的桥接环路,防止生成树听到它应有的所有BPDU。

    公认单向通信在网络中很少见,但最常见的情况是发生在发送/接收对中的一根光纤发生故障的光纤链路上。在接口上启用环路保护后,它会侦听来自相邻交换机的BPDU。如果未接收到BPDU,则环路保护功能会假定出现问题,并通过将端口置于“环路不一致”状态来阻塞端口。当再次接收到BPDU时,允许端口转发流量。

    在Cisco交换机上,使用“spanning-tree guard loop”接口命令。与根保护一样,环路保护的正确位置将因网络拓扑而异,只有在仔细考虑后才应应用。

欲获得更多信息

这篇博客仅介绍了生成树。细心的网络人’以太网交换和生成树配置的新功能应该将此处讨论的主题视为更多学习的起点。一个不错的起点是探索您自己的网络生成树拓扑。找出哪台交换机是根网桥,哪些接口被阻塞,正在运行哪种生成树类型以及生成树拓扑是否按VLAN变化。创建一个图。生成树设计看起来是否最佳?如果没有,什么变化将改善它,为什么?

思科提供了许多出色的文档,可以帮助您回答这些问题,了解有关生成树的更多信息,并为您的环境应用适当的设计。这是我的最爱,包括一些我们没有时间在这里讨论的有趣话题。

了解和配置Catalyst交换机上的生成树协议(STP)
了解快速生成树协议(802.1w)
了解多个生成树协议(802.1s)
使用Loop Guard和BPDU偏斜检测功能增强生成树协议
生成树协议根防护的增强