STP生成树的工作原理.docx
《STP生成树的工作原理.docx》由会员分享,可在线阅读,更多相关《STP生成树的工作原理.docx(9页珍藏版)》请在冰豆网上搜索。
STP生成树的工作原理
STP生成树的工作原理
一、STP生成树的工作原理
STP的基本原理可以归纳为三步,选择根网桥RB、选择根端口RP、选择指定端口DP。
然后把根端口、指定端口设为转发状态,其它接口设为阻塞状态,这样一个逻辑上无环路的网络拓扑就形成了。
1.选择根网桥
选择根网桥的依据是网桥ID,由优先级和MAC地址组成,先看优先级,优先级相同时再看MAC地址,值越小越优先选择。
根网桥的选择过程与政治选举类似。
2.选择根端口
每一个非根网桥将从其接口选出一个到根网桥管理成本(administrativecost)最低的接口作为根端口,选择的依据是
(1)自身到达根网桥的根路径成本最低的接口。
根路径成本的计算是,接口收到BPDU中所包含的成本与接口的成本的累加。
(2)直连网桥ID最小
(3)端口ID最小
3.选择指定端口
当一个网段中有多个网桥时,这些网桥会将他们到根网桥的管理成本都通告出去,其中具有最低管理成本的网桥将作为指定(designated)网桥。
指定网桥中发送最低管理成本的BPDU的接口是该网段中的指定端口。
在每段链路上,选择一个指定端口,选择的依据是:
(1)发送最低根路径成本的BPDU的接口
(2)所在网桥ID最小
(3)端口ID最小
总结:
选举根端口,比较接收的BPDU
选举指定端口,比较发送的BPDU
二、STP拓扑稳定后,所以工作中的交换机接口都将处于转发或阻塞状态,生成树的工作过程如下:
(1)根交换机创建成本为0的HelloBPDU,并向其所有接口转发出去
(2)邻接的非根网桥将接收的hello数据包中的成本加上接收端口的成本后,从指定端口转发出去。
(3)每经过一个hello时间周期根网桥重复步骤
(1),非根网桥重复步骤
(2),直到网络拓扑发生变化。
总结一下:
STP拓扑稳定后,根网桥通过每2s的hello时间创建和发送helloBPDU,非根网桥通过根端口接收BPDU,并且从从指定端口转发改变后的BPDU。
各交换机通过接收到得的BPDU消息,来保持各端口状态的有效,直到拓扑发生变化。
三、网络对变化时生成树的状态
运行生成树协议的交换机上的端口,总是处于下面四个状态中的一个。
在正常操作期间,端口处于转发或阻塞状态。
当设备识别网络拓扑结构变化时,交换机自动进行状态转换,在这期间端口暂时处于监听和学习状态。
(1)禁用Disabled:
(为了管理目的或者因为发生故障将端口关闭)
(2)阻塞Blocking:
所有端口以阻塞状态启动以防止回路。
由生成树确定哪个端口转换到转发状态,处于阻塞状态的端口不转发数据,但可接受BPDU
(3)监听Listening:
如果一个端口可以成为一个根端口或者指定端口,那么它就转入监听状态。
不发送接收数据,接收并发送bpdu,不进行地址学习(临时状态)。
(4)学习Learning:
不接收或转发数据,接收并发送bpdu,开始地址学习MAC地址表(临时状态)。
(5)转发Forwarding:
端口能转送和接受数据。
四、配置STP
(1).启用STP
(config)#spanning-treevlanID
(2).设置根网桥
(config)#spanning-treevlanIDrootprimary|second
注:
primary(24576)、second(28672)
(3).修改网桥优先级
(config)#spanning-treevlanIDpriority优先级
注:
优先级是4096整数倍
(4).修改端口成本
(config-if)#spanning-treevalnIDcost成本
(5).修改端口优先级
(config-if)#spanning-treevlanIDport-prio优先级
(6).配置上行速链路
(config)#spanning-treeuplinkfast
(7).配置速端口
(config-if)#spanning-treeporfast
(8).查看STP配置
#showspanning-tree
#showspanning-treevlaniddetail--详细信息
STP学习心得,应该都可以看懂的
了解生成树协议
1.STP:
bridges之间交换BPDU信息来检测循环,并通过关闭接口的方式来破坏循环
2.根桥(rootbridge):
拥有最好的bridgeID即为根桥,网络中的一些诸如哪些端口被堵塞(block)哪些端口作为转发模式的决定都由根桥来决定
3.BPDU:
BridgeProtocolDataUnit,所有的switches通过交换这些信息来选择根switch
4.bridgeID:
用于STP跟踪网络中的所有switches,这个ID由bridge优先级(priority)和MAC地址符合而成,优先级默认为32768,ID最低的即为根桥
5.非根桥(nonrootbridge):
不是根桥的全为非根桥,非根桥交换BPDUs来更新STP拓扑数据库
6.根端口(rootport):
与根桥直接相连的端口,或者是到根桥最短的接口.如果到根桥的连接不止1条,将比较每条连接的带宽,耗费(cost)低的作为根端口;如果耗费相同就比较bridgeID,ID低的将被选用
7.指定端口(designatedport):
耗费低的端口,作为转发端口
8.端口耗费(portcost):
带宽来决定
9.非指定端口(nondesignatedport):
耗费较高,为堵塞模式(blockingmode),即不转发帧
10.转发端口(forwardingport):
转发端口用来转发帧
11.堵塞端口(blockedport):
不转发帧,用来防止循环的产生,虽然不转发,但是它可以监听(listen)帧
SpanningTreeOperations
之前说过:
STP的任务就是查找出网络中的所有连接,并关闭些会造成循环的冗余连接.STP首先选举1个根桥,用来对网络中的拓扑结构做决定.当所有的switches认同了选举出来的根桥后,所有的bridge开始查找根端口.假如在switches之间有许多连接,只能有1个端口作为指定端口
SelectingtheRootBridge
bridgeID用来在STP域里选举根桥和决定根端口,这个ID是8字节长,包含优先级和设备的MAC地址,IEEE版本的STP的默认优先级是32768.决定谁是根桥,假如优先级一样,那就比较MAC地址,MAC地址小的作为根桥
SelectingtheDesignatedPort
假如不止1个连接到根桥,那就开始比较端口耗费,耗费低的作为根端口,下面是一些典型的耗费标准:
1.10Gbps:
2
2.1Gbps:
4
3.100Mbps:
19
4.10Mbps:
100
Spanning-TreePortStates
运行STP的bridges和switches的5种状态:
1.堵塞(blocking):
不转发帧,只接受BPDUs,主要目的是防止循环的产生.默认情况下,当switch启动时所有端口均为blocking状态,一般为20s
2.监听(listening):
端口接受和发送BPDUs监听数据帧,不转发数据帧,来决定在传送数据帧之前没有循环会发生,一般为15s
3.学习(learning):
监听BPDUs和学习所有路径,学习MAC地址表,不转发帧,一般为15s
4.转发(forwarding):
转发和接收数据帧,读取MAC地址,更新桥的CAM表。
5.禁用(disabled):
不参与帧的转发和STP,一般在这个状态的都是不可操作的
生成树”资料
交换机内的生成树算法(STA)使你可以创建一条备用链路(当网络中存在多台交换机时)。
在主链路正常工作时,备用链路处于空闲状态(不工作);只有在主链路出现问题时,备用链路才不需要任何人工干预自动地接替主链路。
这种自动重构的功能,使得网络上的用户能够最大限度地与网络保持正常的连接。
生成树算法较复杂,所以,建议最好在充分研究理解其之后,再更改其一些设置。
请仔细阅读并理解下述内容之后,再去更改交换机上的生成树的默认设置。
网络环路的侦测和预防(Networkloopdetectionandprevention):
任何两个局域网之间应该只有一条路径,否则,网络中将出现环路。
如果存在着多于一条的路径,那么生成树算法将会侦测到环路的发生,并自动选择开销值(cost)最低的那条路径作为可使用的路径(主链路),而阻断其它路径,将它们作为备用路径(备用链路)。
自动拓扑重构(Automatictopologyre-configuration):
当主链路出现故障时,生成树算法将自动启用备用链路,重构网络结构。
生成树的级别(STAOperationLevels)
生成树有两种工作级别:
桥级别(bridgelevel)和端口级别(portlevel)。
在桥一级上,生成树算法为每台交换机计算桥的标志级数(BridgeIdentifier),然后设定根桥(RootBridge)和指定桥(DesignatedBridges)。
而在端口一级上,生成树算法设定根端口(RootPort)和指定端口(DesignatedPorts)。
详述如下:
在桥一级上(OntheBridgeLevel):
根桥(RootBridge):
具有最小桥标志级数的(lowestBridgeIdentifier)交换机是根桥(RootBridge)。
当然,你希望根桥是环路中所有交换机当中最好的一台(交换机),以保证能够提供最好的网络性能和可靠性。
桥标志级数(BridgeIdentifier):
桥标志级数是桥的优先级(BridgePriority)和交换机的MAC地址的综合数值,其中桥的优先级(BridgePriority)是一个你可以设定的参数。
例如,“40080C8000100”中的“4”是桥的优先级,“0080C8000100”是交换机的MAC地址。
交换机的桥标志级数越低,则交换机的优先级越高,这样可以增加其成为根桥的可能性。
指定桥(DesignatedBridge):
在每个网段中,到根桥(RootBridge)的路径开销最低的(lowestRootPathCost)桥将成为指定桥(DesignatedBridge),数据包将通过它转发到网段。
一旦所有的交换机具有相同的根路径开销(RootPathCost),那么具有最低的桥标志级数的(lowestBridgeIdentifier)交换机才会被定为指定桥(DesignatedBridge)。
根路径开销(RootPathCost):
一台交换机的根路径开销(RootPathCost)是根端口(RootPort)的路径开销(PathCost)与数据包经过的所有交换机的根路径开销(RootPathCost)之和。
根桥(RootBridge)的根路径开销(RootPathCost)是零。
桥的优先级(BridgePriority):
是一个用户可以设定的参数。
设定的值越小,优先级越高。
交换机具有越高的优先级,才越有可能成为根桥。
在端口一级上(OnthePortLevel):
根端口(RootPort):
每台交换机都有一个根端口(RootPort),这个端口到根桥的路径开销最低。
一旦多个端口具有相同的到根桥的路径开销时,那么具有最低的端口标志级别的才会成为根端口。
指定端口(DesignatedPort):
指定端口就是指定桥(DesignatedBridge)上的端口。
端口优先级(PortPriority):
数值越小,端口的优先级就越高。
具有越高端口优先级,才越有可能成为根端口。
路径开销(PathCost):
这是一个可变的参数,它将随着生成树中的设定值的变化而变化。
依据STA的默认参数值,每个1000Mbps网段有一个指定的路径开销值为4,100Mbps网段的路径开销值19,10Mbps网段的路径开销值100。
生成树参数(STAParameters)
生成树的参数用户可以根据自己的需要进行修改,但是建议最好使用出厂时的默认设置。
除非确实需要对出厂设置值进行变动时,再去改动默认值。
用户可以改动的生成树参数有如下几个:
桥优先级(BridgePriority):
数值范围从0到65535。
“0”的优先级最高。
呼叫时间(BridgeHelloTime):
数值范围从1秒到10秒。
是指根桥向其它所有交换机发出BPDU数据包的时间间隔,以告知其它所有交换机它是根桥。
如果你的交换机还未是根桥时为其设置了呼叫时间,那么,一旦你的交换机成为根桥,该呼叫时间就会派上用处。
注意:
呼叫时间不能大于桥的最大老化时间(Max.Age),否则,将出现错误信息。
最大的桥老化时间(BridgeMax.Age):
数值范围从6秒到40秒。
如果在超出最大老化时间之后,还没有收到根桥发出的BPDU数据包,那么,在允许的条件下你的交换机将充当根桥向其它所有的交换机发出BPDU数据包。
如果交换机确实具有最小的桥标志级数,那么,它将随之成为根桥。
桥转发时延(BridgeForwardDelay):
数值范围从4秒到30秒。
是指交换机的端口从阻塞状态转为转发状态所用的监听时间。
当你欲变动生成树参数时,请一定记住下述公式:
最大的桥老化时间≤2x(桥转发时延–1秒)
即:
Max.Age≤2x(ForwardDelay-1second)
最大的桥老化时间≥2x(呼叫时间+1秒)
即:
Max.Age≥2x(HelloTime+1second)
端口优先级(PortPriority):
数值范围从0到255。
数值越小,那么该端口越可能成为根端口。
生成树协议(STP)
1.冗余链路:
冗余连接可以防止网络中的单点失效的问题;冗余连接也导致了交换回路的出现。
2.交换回路引发的问题:
广播风暴;同一帧的多拷贝;不稳定的MAC地址表。
3.STP介绍:
通过阻塞一个或多个冗余端口,维护一个无回路的网络(IEEE802.1d)
4.工作过程:
运行生成树算法(STA)的交换机定期发送BPDU;选取唯一一个根网桥;在每个非根网桥选取唯一一个根端口;在每网段选取唯一一个标志端口。
(1).选取唯一一个根网桥:
BPDU中包含BridgeID;BridgeID(8B)=优先级(2B)+交换机MAC地址(6B);一些交换机的优先级默认为32768,可以修改;优先级值最小的成为根网桥;优先级值最小的成为根网桥;优先级值相同,MAC地址最小的成为根网桥;BridgeID值最小的成为根网桥;根网桥缺省每2秒发送一次BPDU;
(2).在每个非根网桥选取唯一一个根端口:
根网桥上没有根端口;端口代价最小的成为根端口;端口代价相同,PortID最小端口的成为端口;PortID通常为端口的MAC地址;MAC地址最小的端口成为根端口;
(3).在每网段选取唯一一个标志端口:
端口代价最小的成为标识端口;根网桥端口到各网段的代价最小;通常只有根网桥端口成为标识端口;被选定为根端口和标识端口的进行转发状态;落选端口进入阻塞状态,只侦听BPDU;
(4).阻塞端口在指定的时间间隔(缺省20秒)收不到BPDU时,会重新运行生成树算法进行选举;缺点:
在运行生成树算法的过程中,网络处理阻断状态,所有端口都不进行转发。
计算过程缺省为50秒。
生成树相关的几个概念STP/RSTP/MSTP
STP:
IEEEStd802.1D-1998定义,不能快速迁移。
即使是在点对点链路或边缘端口,也必须等待2倍的forwarddelay的时间延迟,网络才能收敛。
RSTP:
IEEEStd802.1w定义,可以快速收敛,却存在以下缺陷:
局域网内所有网桥共享一棵生成树,不能按vlan阻塞冗余链路。
MSTP可以弥补这样缺陷,它允许不同vlan的流量沿各自的路径分发,从而为冗余链路提供了更好的负载分担机制。
MSTP:
MultipleSpanningTreeProtocol多生成树协议在规范IEEEStd802.1s中第13节描述。
MSTP算法通过应用MSTP、STP或RSTP的桥任意互连的桥接网络,为分配给任一个特定VLAN的帧提供了简单而完备的连通性。
MSTP允许不同VLAN的数据从各自的路径分发。
各条路径建立在由LAN和MST桥组成的MST域中的各个独立的多生成树实例的基础上。
当STP和RSTP混用
当STP和RSTP混用时,STP会丢弃RSTP的BPU,当RSTP收到STP的BPDU的时候会在经过一个hello周期后(防止端口频繁切换),适配未STP模式!
当网络中支持STP的设备被拿走后,RSTP的设备不会自动切换为RSTP状态,因为设备不能察觉这种情况!
MSTP和PVST的区别!
PVST会为每一个VLAN维护一个STP的进程,发送BPUD,但是会给交机和链路带来很大的负担!
但是在实际组网中并不需要为每个VLAN生成独立的VLAN,可以给一组VLAN采用相同的STP!
因此MSTP,对此进行了改进!
提出了region的概念!
详细可以参考RFC!
MSTP和RSTP的互通
MSTP上存在一个IST(InternalSpanningTree),相当于一个RSTP的进程,通过该IST和其它RSTP设备互通!
整个MSTP的Region对于CST(CommonSpanningTree)来说是一个虚拟的交换机!
搜索更多相关主题的帖子:
STP 学习心得