STP生成树协议.docx
《STP生成树协议.docx》由会员分享,可在线阅读,更多相关《STP生成树协议.docx(12页珍藏版)》请在冰豆网上搜索。
STP生成树协议
STP生成树协议
STP(SpanningTreeProtocol)是生成树协议的英文缩写。
该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。
STP的基本原理是,通过在交换机之间传递一种特殊的协议报文(在IEEE802.1D中这种协议报文被称为“配置消息”)来确定网络的拓扑结构。
配置消息中包含了足够的信息来保证交换机完成生成树计算。
生成树协议STP/RSTP
1.技术原理:
STP的基本思想就是生成“一棵树”,树的根是一个称为根桥的交换机,根据设置不同,不同的交换机会被选为根桥,但任意时刻只能有一个根桥。
由根桥开始,逐级形成一棵树,根桥定时发送配置报文,非根桥接收配置报文并转发,如果某台交换机能够从两个以上的端口接收到配置报文,则说明从该交换机到根有不止一条路径,便构成了循环回路,此时交换机根据端口的配置选出一个端口并把其他的端口阻塞,消除循环。
当某个端口长时间不能接收到配置报文的时候,交换机认为端口的配置超时,网络拓扑可能已经改变,此时重新计算网络拓扑,重新生成一棵树。
2.功能介绍:
生成树协议最主要的应用是为了避免局域网中的网络环回,解决成环以太网网络的“广播风暴”问题,从某种意义上说是一种网络保护技术,可以消除由于失误或者意外带来的循环连接。
STP也提供了为网络提供备份连接的可能,可与SDH保护配合构成以太环网的双重保护。
新型以太单板支持符合ITU-T802.1d标准的生成树协议STP及802.1w规定的快速生成树协议RSTP,收敛速度可达到1s。
但是,由于协议机制本身的局限,STP保护速度慢(即使是1s的收敛速度也无法满足电信级的要求),如果在城域网内部运用STP技术,用户网络的动荡会引起运营商网络的动荡。
目前在MSTP组成环网中,由于SDH保护倒换时间比STP协议收敛时间快的多,系统采用依然是SDHMS-SPRING或SNCP,一般倒换时间在50ms以内。
但测试时部分以太网业务的倒换时间为0或小于几个毫秒,原因是内部具有较大缓存。
SDH保护倒换动作对MAC层是不可见的。
这两个层次的保护可以协调工作,设置一定的“拖延时间”(hold-off),一般不会出现多次倒换问题。
生成树算法
生成树协议运行生成树算法(STA)。
生成树算法很复杂,但是其过程可以归纳为一下三个部分。
(1)选择根网桥
(2)选项根端口
(3)选择指定端口
选择根网桥的依据是交换机的网桥优先级,网桥优先级是用来衡量网桥在生成树算法中优先级的十进制数,取值范围是0~65535.默认值是32768,网桥ID是由网桥优先级和网桥MAC地址组成的。
共有8个字节。
选择根端口的依据是
(1)到跟网桥的最低路径成本。
根路径成本是两个网桥间的路径上所有链路的成本之和,也就是某个网桥到达根网桥的中间所有链路的路径成本之和,一条链路的带宽越大,他的传输成本就越低。
(2)直连的网桥ID最小
(3)端口ID最小
选择指定端口的依据是:
(1)根路径成本较低
(2)所在的交换机网桥ID值最小
(3)端口ID值最小
STP生成树协议
一、STP概述
STP(生成树协议)是一个二层管理协议。
在一个扩展的局域网中参与STP的所有交换机之间通过交换桥协议数据单元BPDU(BridgeProtocolDataUnit)来实现;为稳定的生成树拓扑结构选择一个根桥;为每个交换网段选择一台指定交换机;将冗余路径上的交换机置为Blocking,来消除网络中的环路。
IEEE802.1d是最早关于STP的标准,它提供了网络的动态冗余切换机制。
STP使您能在网络设计中部署备份线路,并且保证:
在主线路正常工作时,备份线路是关闭的。
当主线路出现故障时自动使能备份线路,切换数据流。
RSTP(RapidSpanningTreeProtocol)是STP的扩展,其主要特点是增加了端口状态快速切换的机制,能够实现网络拓扑的快速转换。
1.1设置STP模式
使用命令configspanning-treemode可以设置STP模式为802.1dSTP或者802.1wRSTP。
1.2配置STP
交换机中默认存在一个defaultSTP域。
多域STP是扩展的802.1d,它允许在同一台交换设备上同时存在多个STP域,各个STP域都按照802.1d运行,各域之间互不影响。
它提供了一种能够更为灵活和稳定网络环境,基本实现在VLAN中计算生成树。
1.2.1创建或删除STP
利用命令createstpd和deletestpd可以创建或删除STP。
缺省的defaultSTP域不能手工创建和删除。
1.2.2使能或关闭STP
交换机中STP缺省状态是关闭的。
利用命令configstpd可以使能或关闭STP。
1.2.3使能或关闭指定STP的端口
交换机中所有端口默认都是参与STP计算的。
使用命令configstpdport可以使能或关闭指定的STP端口。
1.2.4配置STP的参数
运行某个指定STP的STP协议后,可以根据具体的网络结构调整该STP的一些参数。
交换机中可以调整以下的STP协议参数:
BridgePriority
HelloTime
ForwardDelay
MaxAge
另外每个端口上可以调整以下参数:
PathCost
PortPriority
表1-1配置STP参数的常用命令
configstpdforwarddelay
配置根桥交换机端口状态切换的时间间隔
configstpdhellotime
配置根桥交换机发送BPDU的时间间隔
configstpdmaxage
配置BPDU报文老化的最长时间间隔
configstpdpriority
配置运行STP协议时本交换机的优先级
configstpdportcost
配置参与STP计算端口的路径开销
configstpdportpriority
配置参与STP计算的端口的优先级
1.2.5显示STP状态
利用命令showstpd可以查看STP的状态,包括:
BridgeID
RootBridgeID
STP的各种配置的参数
利用命令showstpdport可以显示端口的STP状态,包括:
端口状态
Designatedport
端口的各种配置参数
一 VLAN与生成树
在缺省的CISCO STP模式中,每个VLAN定义一个STP.
IEEE802.1Q标准是在整个交换VLAN网络中使用一个STP,但并不排除在每个VLAN中实现STP.
1 VLAN与生成树的关系
>IEEE通用生成树(CST)
>CISCO PER VLAN生成树(PVST)
>带CST的CISCO PERVLAN生成树(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-treevlanvlan-list
步骤:
switch#configt
switch(config)#spanning-treevlan10
switch(config)#end
switch#showspanning-treesummary/detail
summary摘要 detail详细
BridgeIdentifierhaspriority8912,address0006.eb06.1741(本地交换机网桥ID)
desigatedroothaspriority8912,address0006.eb06.1741 (根网桥ID)
designatedportis7,pathcost0(路径成本)
times:
hold1,topologychange35,notification2
hello2,maxage20,forwarddelay15(根计时器)
2 人为建立根网桥
在生成树网络中,最重要的事情就是决定根网桥的位置.
可以让交换机自己根据一定的原则来选择根网桥以及备份或从(secondary)根网桥,也可使用命令人为指定根网桥.
PS:
不要将接入层的交换机配置为根网桥.STP根网桥通常是汇聚层或者核心层的交换机.
通过命令直接建立根网桥:
spanning-treevlanvlan-idrootprimary(网桥优先级被置为24576)
步骤:
switch#configterminal
switch(config)#spanning-treevlanvlan-idrootprimarydianmeternet-diameterhello-timesec
为VLAN配置根网桥、网络半径以及HELLO间隔
ROOT关键字:
指定这台交换机为根网桥
diameternetdianmeter:
该关键字指定在末端口主机任意两点之间的网段的最大数量.net-diameter的值是2-7.这个直径应该从根网桥开始计算,根网桥是1
switch(config)#end
switch#showspanning-treevlanvlan-iddetail
让交换机返回缺省的配置,可以使用如下命令:
nospanstreevlanvlan-idroot
2>修改网桥的优先级别:
多数情况下做如下配置:
spanning-treevlanvlan-idrootprimary(主ROOT网桥优先级被置为24576)
spanning-treevlanvlan-idrootsecondary(备份ROOT网桥优先级被置为28672)
修改网桥优先级:
spanning-treevlanvlan-idprioritybridge-priority
3 确定到根网桥的路径
生成树协议依次用BPDU中这些不同域来确定根网桥的最佳路径:
>根路径成本(ROOTPATH COST)
>发送网桥ID(BRIDGE ID)
>发送端口ID(PORT ID)
从端口发出BPDU时,它会被施加一个端口成本,所有端口成本的总和就是根路径成本.生成树首先查看根路径成本,以确定哪些端口应该转发,哪些端口应该阻塞.报告最低路径成本的端口被选为转发端口.
如果对多个端口来说,其中根路径成本相同,那么,生成树将查看网桥ID.报告有最低网桥ID的BPDU端口被允许进行转发,而其他所有端口被阻断.
如果路径成本和发送网桥ID都相同(如在平行链路中),生成树将查看发送端口ID.端口ID值小的优先级高,将作为转发端口.
4 修改端口成本
如果想要改变某台交换机和根网桥之间的数据通路,就要仔细计算当前的路径成本,然后,改变所希望路径的端口成本.
我们可以更改交换机端口的成本,端口成本更低的端口更容易被选为转发帧的端口.
spanning-treevlanvlan-idcostcost
nospanning-treevlanvlan-idcost(恢复默认成本)
配置步骤:
>1 configterminal 进入配置状态
>2 interfaceinterface-id 进入端口配置界面
>3 spanning-treevlanvlan-idcostcost值 为某个VLAN配置端口成本
>4 end
>5 showspanning-treeinterfaceinterface-iddetail 查看配置
>6 write
5 修改端口优先级
在根路径成本和发送网桥ID都相同的情况下,有最低优先级的端口将为vlan转发数据帧.
对应基于CLI的命令的交换机,可能的端口优先级别范围为0~63,缺省为32.基于IOS的交换机端口的优先级别范围是0~255,缺省为128.
spanning-treevlanvlan-idport-prioritypriority值
nospanning-treevlanvlan-idport-priority
1> configterminal (进入配置模式)
2> interfaceinterface-id(进入端口配置模式)
3>spanning-treevlanvlan-idport-priority值
4>end
5>showspanning-treeinterfaceinterface-iddetail
6>write
--------------------------------------------------------------------------------
6 修改生成树计时器
使用缺省的STP计时器配置,从一条链路失效到另一条接替,需要花费50秒.这可能使网络存取被耽误,从而引起超时,不能阻止桥接回路的产生,还会对某些协议的应用产生不良影响,会引起连接、会话或数据的丢失。
还有一种情况就是使用热备份路由选择协议(HSRP),将两台路由器连接到一台交换机上。
某些情况下,缺省的STP的计时器值对于HSRP而言过长,会引起“活动”路由器的选择的错误。
1 修改HELLO时间
spanning-treevlanvlan-idhello-timeseconds
可以修改每一个VLAN的Hello间隔(HELLO TIME),它的取值范围是 1~10秒
2 修改转发延迟计时器
转发延迟计时器(forwarddelaytimer)确定一个端口在转换到学习状态之前处于侦听状态的时间,以及在学习状态转换到转发状态之前处于学习状态的时间。
spanning-treevlanvlan-idforward-timeseconds
PS:
转发时间过长,会导致生成树的收敛过慢
转发时间过短,可能会在拓扑改变的时候,引入暂时的路径回环。
3 修改最大老化时间
最大老化时间(MAX—AGE TIMER)规定了从一个具有指定端口的邻接交换机上所收到的BPDU报文的生存时间。
如果非指定端口在最大老化时间内没有收到BPDU报文,该端口将进入listening状态,并接收交换机产生配置BPDU报文。
修改命令:
spanning-treevlanvlan-idmax-ageseconds
nospanning-treevlanvlan-idmax-age(恢复默认值)
7 速端口的配置
通过速端口,可以大大减少处于侦听和学习状态的时间,速端口几乎立刻进入转发状态。
速端口将工作站或者服务器连接到网络的时间减至最短。
PS:
确定一个端口下面接的是终端的时候,方可启用速端口设置
switch(config-if)#spanning-treeportfast
switch(config-if)#nospanning-treeportfast(关闭速端口)
查看端口的速端口状态:
showspanning-treeinterfaceinterface-iddetail&nb
8上行速链路的配置
当检测到转发链路发生失效时,上行链路可使交换机上一个阻断的端口几乎立刻马上开始进行转发。
1>上行速链路在企业网中的应用
2>交换机可以分为3级:
>核心层交换机
>汇聚层交换机
>接入层交换机
汇聚层和接入层的交换机上各自都至少有一条冗作链路被STP阻塞,以避免环路。
使用STP上行速链路,可以在链路或者交换机失效或者STP重新配置时,加速新的根端口的选择过程。
被阻塞端口会立即转换到转发状态。
上行速链路还可以通过减少参数最大更新速率(max-update-rate,IOS)来限制突发的组播通信。
这些参数的缺省值是150包/秒。
在网络边缘的接入层上,上行速链路是一项最有用的功能,但它不适合用在骨干设备上。
上行速链路能在直连链路失效时实现快速收敛,并能通过上行链路组(uplinkgroup),在多个冗余链路之间实现负载平衡。
上行链路组是一组接口(属于各个VLAN)
上行链路组由一个根端口(处于转发状态)和一组阻塞状态的端口组成。
上行链路的配置:
要在配置了网桥优先级的VLAN上启动上行速链路,必须首先将VLAN上的交换机优先级恢复到缺省值。
使用:
nospanning-treevlanvlan-idpriority
要配置上行速链路,需要使用命令:
spanning-treeuplinkfast[max-uplink-rate
pkts-per-second]pkts-per-second的取值范围是每秒0到32000个数据包。
缺省值是150,通常这个值就足够了。
要检查上行速链路的配置,可以使用如下命令:
showspanning-treesummary
nospanning-treeuplinkfast(关闭)