生成树协议笔记STP.docx
《生成树协议笔记STP.docx》由会员分享,可在线阅读,更多相关《生成树协议笔记STP.docx(6页珍藏版)》请在冰豆网上搜索。
生成树协议笔记STP
生成树协议(STP)
1.冗余链路:
冗余连接可以防止网络中的单点失效的问题;冗余连接也导致了交换回路的出现。
2.交换回路引发的问题:
广播风暴;同一帧的多拷贝;不稳定的MAC地址表。
3.STP介绍:
通过阻塞一个或多个冗余端口,维护一个无回路的网络(IEEE802.1d)
4.工作过程:
运行生成树算法(STA)的交换机定期发送BPDU;选取唯一一个根网桥;在每个非根网桥选取唯一一个根端口;在每网段选取唯一一个标志端口。
选举顺序:
①桥优先级低者胜(默认都是32768)
2桥MAC地址低者胜,SW2胜出
选出根桥,然后开始选根端口
③根端口其他非根桥交换机中距根交换机cost最小的胜出
根桥的所有端口都是根端口(自己到自己的距离当然最近)开始选举非指定端口
非指定端口选举
④端口优先级(默认都是128)低者胜出
⑤端口Cost(10G为1,1G为4,100M为19,10M为100)低者胜出
⑥邻居的MAC地址低者胜出
⑦端口序号低者胜出
⑧非指定端口即不是根端口也不是指定端口即为非指定端口,状态为BLK
这样为什么下面这张图中SW2的Fa0/2(比较至第6步)和SW4的F0/4(比较至第7步)会成为非指定端口的原因就明白了。
(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的任务就是查找出网络中的所有连接,并关闭些会造成循环的冗余连接.STP首先选举1个根桥,用来对网络中的拓扑结构做决定.当所有的switches认同了选举出来的根桥后,所有的bridge开始查找根端口.假如在switches之间有许多连接,只能有1个端口作为指定端口
SelectingtheRootBridge
bridgeID用来在STP域里选举根桥和决定根端口,这个ID是8字节长,包含优先级和设备的MAC地址,IEEE版本的STP的默认优先级是32768.决定谁是根桥,假如优先级一样,那就比较MAC地址,MAC地址小的作为根桥
SelectingtheDesignatedPort
假如不止1个连接到根桥,那就开始比较端口耗费,耗费低的作为根端口,下面是一些典型的耗费标准:
1.10Gbps:
1
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。
数值越小,那么该端口越可能成为根端口。