Chinaunix首页 | 论坛 | 博客
  • 博客访问: 808561
  • 博文数量: 489
  • 博客积分: 475
  • 博客等级: 下士
  • 技术积分: 3087
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 16:28
文章分类

全部博文(489)

文章存档

2013年(7)

2012年(301)

2011年(181)

分类:

2012-06-12 21:44:19

原文地址:STP协议原理及配置 作者:utm168

一、STP概述

  STP(生成树)是一个二层管理。在一个扩展的局域网中参与STP的所有之间通过交换桥协议数据单元bpdu(bridge protocol data unit)来实现;为稳定的生成树拓扑结构选择一个根桥;为每个交换网段选择一台指定;将冗余路径上的交换机置为blocking,来消除网络中的环路。

 IEEE 802.1d是最早关于STP的标准,它提供了网络的动态冗余切换机制。STP使您能在网络设计中部署备份线路,并且保证:

  * 在主线路正常工作时,备份线路是关闭的。

  * 当主线路出现故障时自动使能备份线路,切换数据流。

  rSTP(rapid spanning tree protocol)是STP的扩展,其主要特点是增加了端口状态快速切换的机制,能够实现网络拓扑的快速转换。

  1.1 设置STP模式

  使用命令config spanning-tree mode可以设置STP模式为802.1d STP或者802.1w rSTP.

  1.2 STP

  交换机中默认存在一个default STP域。多域STP是扩展的802.1d,它允许在同一台交换设备上同时存在多个STP域,各个STP域都按照802.1d运行,各域之间互不影响。它提供了一种能够更为灵活和稳定网络环境,基本实现在vlan中计算生成树。

  1.2.1 创建或删除STP

  利用命令create STPd和delete STPd可以创建或删除STP.

  缺省的default STP域不能手工创建和删除。

  1.2.2 使能或关闭STP

  交换机中STP缺省状态是关闭的。利用命令config STPd可以使能或关闭STP.

  1.2.3 使能或关闭指定STP的端口

  交换机中所有端口默认都是参与STP计算的。使用命令config STPd port可以使能或关闭指定的STP端口。

  1.2.4 配置STP的参数

  运行某个指定STP的STP协议后,可以根据具体的网络结构调整该STP的一些参数。交换机中可以调整以下的STP协议参数:

  * bridge priority

  * hello time

  * forward delay

  * max age

  另外每个端口上可以调整以下参数:

  * path cost

  * port priority

  表1-1 配置STP参数的常用命令

config stpd forward delay
       
配置根桥交换机端口状态切换的时间间隔
config stpd hellotime
       
配置根桥交换机发送BPDU的时间间隔
config stpd maxage
       
配置BPDU报文老化的最长时间间隔
config stpd priority
       
配置运行STP协议时本交换机的优先级
config stpd port cost
       
配置参与STP计算端口的路径开销
config stpd port priority
       
配置参与STP计算的端口的优先级

  1.2.5 显示STP状态

  利用命令show STPd可以查看STP的状态,包括:

  * bridgeid

  * root bridgeid

  * STP的各种配置的参数

  利用命令show STPd port可以显示端口的STP状态,包括:

  * 端口状态

  * designated port

  * 端口的各种配置参数

  在缺省的CISCO STP模式中,每个VLAN定义一个STP.

  IEEE802.1Q标准是在整个交换VLAN网络中使用一个STP,但并不排除在每个VLAN中实现STP.

  1 VLAN与生成树的关系

  >IEEE通用生成树(CST)

  >CISCO PER VLAN生成树(PVST)

  >带CST的CISCO PER VLAN生成树(PVST+)

  CST是IEEE解决运行虚拟局域网VLAN生成树的方法。CST定义,整个第2层交换网络所有实现了的VLAN,仅使用一个生成树实例。这个生成树实例运行在整个交换局域网上。

  PVST是解决在虚拟局域网上处理生成树的CISCO特有解决方案。PVST为每个虚拟局域网运行单独的生成树实例。一般情况下PVST要求在交换机之间的中继链路上运行CISCO的ISL.

  PVST+是CISCO解决在虚拟局域网上处理生成树问题的另一个方案。PVST+允许CST信息传给PVST,以便与其他厂商在VLAN上运行生成树的实现方法进行操作。

2 按VLAN生成树(PVST)

  为每个VLAN建立一个独立的生成树实例(PVST)。

  生成树算法计算整个交换型网络的最佳无环路径。

  PVST的优点:

  >生成树拓扑结构的总体规模减少。

  >改进了生成树的扩展性,并减少了收敛时间。

  >提供更快的收敛恢复能力和更高的可靠性。

  PVST的缺点:

  >为了维护针对每个VLAN而生成的生树,交换机的利用率会更高

  >为了支持各个VLAN的BPDU,需要占用更多的TRUNK链路带宽

  生成树仅可运行在64个VLAN上。

  3 公共生成树(CST)

  CST是IEEE在虚拟局域网上处理生成树的特有方法,这是一种VLAN解决方案,称为单一或者公共生成树。生成树协议运行在VLAN1即缺省的 VLAN上。所有的交换机都举出同一个根网桥,并建立与该根网桥的关系。

  公共生成树不能针对每个VLAN来优化根网桥的位置。

  公共生成树优点:

  >最小数量的BPDU通信,带宽占用少。

  >交换机负载保持最小。

  公共生成树的缺点如下:

  >只用一个根网桥,这不能为所有的VLAN做到网桥的优化放置,导致对某些设备来说可能存在次优化路径。

  >为包括交换架构中的所有端口,生成树的拓扑结构较大,这就会导致较长的收敛时间和更频繁的重新配置。

4 增强型的按VLAN生成树(PVST+)

  PVST+有以下特征:

  >它是CISCO发展的,可以与802.1Q公共生成树(CST)互操作。

  >通过ISL中继,PVST+与现存的CISCO交换机PVST协议向后兼容,同时,PVST+也通过802.1Q中继与CST连接互操作。

  >如果PVST区域和CST区域之间要互操作,一定要通过PVST+区域。

二 生成树配置

  生成树配置涉及下面一些任务:

  >选举和维护一个根网桥。

  >通过配置一些生成树的参数来优化生成树。(如端口优先级 端口成本)

  >通过配置上行链路来减少生成树的收敛时间。

  2950交换机上生成树的缺省配置:

  >STP启用:缺省情况下VLAN1启用

  >STP模式:PVST+

  >交换机优先级:32768

  >STP端口优先级:128

  >STP路径成本:1000M:4 100M:19 10M:100

  >STP VLAN端口成本: (同上)

  >STP计时器:HELLO时间:2秒 转发延迟:15秒 最大老化时间:20秒

  1 启用生成树:

switch(config)#spanning-tree vlan vlan-list
步骤:
switch#c onfig t
switch(config)# spanning-tree vlan 10
switch(config)#end
switch#show spanning-tree summary/detail
summary摘要  detail详细
Bridge Identifier has priority 8912,address 0006.eb06.1741 (本地交换机网桥ID)
desigated root has priority 8912,address 0006.eb06.1741 (根网桥ID)
designated port is 7,path cost 0 (路径成本)
times: hold1, topology change 35, notification 2
hello 2, max age 20, forward delay 15 (根计时器)

  2 人为建立根网桥

  在生成树网络中,最重要的事情就是决定根网桥的位置。

  可以让交换机自己根据一定的原则来选择根网桥以及备份或从(secondary)根网桥,也可使用命令人为指定根网桥。

  PS:不要将接入层的交换机配置为根网桥。STP根网桥通常是汇聚层或者核心层的交换机。

  通过命令直接建立根网桥:

  spanning-tree vlan vlan-id root primary (网桥优先级被置为24576)

  步骤:

  switch#c onfig terminal

  switch(config)#spanning-tree vlan vlan-id root primary dianmeter net-diameter hello-time sec

  为VLAN配置根网桥、网络半径以及HELLO间隔

  ROOT关键字:指定这台交换机为根网桥

  diameter netdianmeter:该关键字指定在末端口主机任意两点之间的网段的最大数量。net-diameter的值是2-7.这个直径应该从根网桥开始计算,根网桥是1

  switch(config)#end

  switch#show spanning-tree vlan vlan-id detail

  让交换机返回缺省的配置,可以使用如下命令:

  no spanstree vlan vlan-id root

  2>修改网桥的优先级别:

  多数情况下做如下配置:

  spanning -tree vlan vlan-id root primary (主ROOT网桥优先级被置为24576)

  spanning-tree vlan vlan-id root secondary(备份ROOT网桥优先级被置为28672)

  修改网桥优先级:

  spanning-tree vlan vlan-id priority bridge-priority

  3 确定到根网桥的路径

  生成树协议依次用BPDU中这些不同域来确定根网桥的最佳路径:

  >根路径成本(ROOT PATH COST)

  >发送网桥ID(BRIDGE ID)

  >发送端口ID(PORT ID)

  从端口发出BPDU时,它会被施加一个端口成本,所有端口成本的总和就是根路径成本。生成树首先查看根路径成本,以确定哪些端口应该转发,哪些端口应该阻塞。报告最低路径成本的端口被选为转发端口。

  如果对多个端口来说,其中根路径成本相同,那么,生成树将查看网桥ID.报告有最低网桥ID的BPDU端口被允许进行转发,而其他所有端口被阻断。

  如果路径成本和发送网桥ID都相同(如在平行链路中),生成树将查看发送端口ID.端口ID值小的优先级高,将作为转发端口。

4 修改端口成本

  如果想要改变某台交换机和根网桥之间的数据通路,就要仔细计算当前的路径成本,然后,改变所希望路径的端口成本。

  我们可以更改交换机端口的成本,端口成本更低的端口更容易被选为转发帧的端口。

  spanning-tree vlan vlan-id cost cost

  no spanning-tree vlan vlan-id cost(恢复默认成本)

  配置步骤:

  >1 config terminal   进入配置状态

  >2 interface interface-id  进入端口配置界面

  >3 spanning-tree vlan vlan-id cost cost值 为某个VLAN配置端口成本

  >4 end

  >5 show spanning-tree interface interface-id detail 查看配置

  >6 write

  5 修改端口优先级

  在根路径成本和发送网桥ID都相同的情况下,有最低优先级的端口将为vlan转发数据帧。

  对应基于CLI的命令的交换机,可能的端口优先级别范围为0~63,缺省为32.基于IOS的交换机端口的优先级别范围是0~255,缺省为128.

  spanning-tree vlan vlan-id port-priority priority值

  no spanning-tree vlan vlan-id port-priority

  1> config terminal  (进入配置模式)

  2> interface interface-id (进入端口配置模式)

  3> spanning-tree vlan vlan-id port-priority 值

  4> end

  5>show spanning-tree interface interface-id detail

  6>write

6 修改生成树计时器

  使用缺省的STP计时器配置,从一条链路失效到另一条接替,需要花费50秒。这可能使网络存取被耽误,从而引起超时,不能阻止桥接回路的产生,还会对某些协议的应用产生不良影响,会引起连接、会话或数据的丢失。

  还有一种情况就是使用热备份路由选择协议(HSRP),将两台路由器连接到一台交换机上。某些情况下,缺省的STP的计时器值对于HSRP而言过长,会引起“活动”路由器的选择的错误。

  1 修改HELLO时间

  spanning-tree vlan vlan-id hello-time seconds

  可以修改每一个VLAN的Hello间隔(HELLO TIME),它的取值范围是 1~10秒

  2 修改转发延迟计时器

  转发延迟计时器(forward delay timer)确定一个端口在转换到学习状态之前处于侦听状态的时间,以及在学习状态转换到转发状态之前处于学习状态的时间。

  spanning-tree vlan vlan-id forward-time seconds

  PS:转发时间过长,会导致生成树的收敛过慢

  转发时间过短,可能会在拓扑改变的时候,引入暂时的路径回环。

  3 修改最大老化时间

  最大老化时间(MAX—AGE TIMER)规定了从一个具有指定端口的邻接交换机上所收到的BPDU报文的生存时间。

  如果非指定端口在最大老化时间内没有收到BPDU报文,该端口将进入listening状态,并接收交换机产生配置BPDU报文。

  修改命令:

  spanning-tree vlan vlan-id max-age seconds

  no spanning-tree vlan vlan-id max-age (恢复默认值)

  7 速端口的配置

  通过速端口,可以大大减少处于侦听和学习状态的时间,速端口几乎立刻进入转发状态。速端口将工作站或者服务器连接到网络的时间减至最短。

  PS:确定一个端口下面接的是终端的时候,方可启用速端口设置

  switch(config-if)#spanning-tree portfast

  switch(config-if)#no spanning-tree portfast(关闭速端口)

  查看端口的速端口状态:

  show spanning-tree interface interface-id detail (最后一行)

  8 上行速链路的配置

  当检测到转发链路发生失效时,上行链路可使交换机上一个阻断的端口几乎立刻马上开始进行转发。

  1>上行速链路在企业网中的应用

  交换机可以分为3级:

  >核心层交换机

  >汇聚层交换机

  >接入层交换机

  汇聚层和接入层的交换机上各自都至少有一条冗作链路被STP阻塞,以避免环路。

  使用STP上行速链路,可以在链路或者交换机失效或者STP重新配置时,加速新的根端口的选择过程。被阻塞端口会立即转换到转发状态。

  上行速链路还可以通过减少参数最大更新速率(max-update-rate,IOS)来限制突发的组播通信。这些参数的缺省值是150包/秒。

  在网络边缘的接入层上,上行速链路是一项最有用的功能,但它不适合用在骨干设备上。

  上行速链路能在直连链路失效时实现快速收敛,并能通过上行链路组(uplink group),在多个冗余链路之间实现负载平衡。上行链路组是一组接口(属于各个VLAN)

  上行链路组由一个根端口(处于转发状态)和一组阻塞状态的端口组成。

  上行链路的配置:

  要在配置了网桥优先级的VLAN上启动上行速链路,必须首先将VLAN上的交换机优先级恢复到缺省值。使用:

  no spanning-tree vlan vlan-id priority

  要配置上行速链路,需要使用命令:

  spanning-tree uplinkfast [ max-uplink-rate pkts-per-second]

  pkts-per-second的取值范围是每秒0到32000个数据包。缺省值是150,通常这个值就足够了。

  要检查上行速链路的配置,可以使用如下命令:

  show spanning-tree summary

  no spanning-tree uplinkfast(关闭)
阅读(567) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~