STP协议学习

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一部分STP基础STP概述生成树协议(STP,Spanning-TreeProtocol)是一种2层协议,通过一种专用的算法来发现网络中的物理环路并产生一个逻辑的无环(loop-free)拓扑结构。STP生成了一个无环的树形结构,包括可以在整个2层网络范围内扩展的叶和枝。如上图这样一个高冗余度的网络,如果没有STP的存在,将会产生大量的广播环路,严重影响性能。生成树协议和其他协议一样,是随着网络的不断发展而不断更新换代的。在生成树协议发展过程中,老的缺陷不断被克服,新的特性不断被开发出来。l广播环路当主机A发送一个目的地址为FF-FF-FF-FF-FF-FF的广播帧时,该frame将传至CAT-1和CAT-2,当达到CAT-1的端口1/1时,CAT-1按照标准透明桥接算法将数据帧从除去入端口,将其泛洪到其他每个端口,包括CAT-1的1/2端口,从端口1/2发出的数据帧会到达下方以太网中的所有节点,包括CAT-2的端口1/2。同样CAT-2也做这样的处理,此后广播报文就会在CAT-1和CAT-2之间的链路成几何级数的增长。广播环路比路由环路更危险,在以太网帧结构只包含两个MAC地址、一个类型字段和一个循环冗余校验(CRC),并将网络层的包作为数据部分的内容,它没有像路由器那样,存在一个TTL域,对于一个路由环路而言,一个报文跳过255条后,就会被丢弃。而广播路由环路的报文将永远不会被丢弃。同时反复广播,其报文数量呈几何级数增长。*桥接表受损除了广播风暴外,单播帧也会引起网络瓶颈。当主机A此前已经拥有一条主机B的ARP条目,希望ping主机B,但主机B临时从网络移除,并且交换机上相应于B的桥接表项已经被删除。假定任何一个交换机都没有运行STP,则当帧到达CAT-11/1后,CAT-1找不到目的地址,则CAT-11/2产生泛洪,同时CAT-2收到后,将主机A的位置改变到一个错误的端口上。此后帧还沿反方向循环。在端口1/1和1/2之间反复改变,导致CPU负载极大。生成树算法算法(algorithm)就是一个公式或者解决特定问题的一组步骤。算法通常依赖于一组规则,有明确的开始和结束。l*网桥IDSTP的特征就是生成树算法。生成树算法是根据一组参数来进行判别。网桥ID(BID,BridgeID)是一个8字节的字段,包含一个数字有序对,如图,头2个字节的十进制数成为网桥优先级(BridgePriority),后6字节是MAC地址(16进制)。网桥优先级是一个用来衡量网桥在生成树算法中优先权的十进制数,2的16次方,取值为0-65535。缺省值为32768。BID的MAC地址是交换机的MAC地址之一。每个交换机都有一个MAC地址池,每个STP实例使用一个,作为按VLAN生成树实例(每个VLAN一棵)的BID。具体算法:BID的比较方式如下,假设(s,t)和(u,v)分别为两个BID,数对中的第一个值为优先级,第二个为MAC地址,则比较规则如下:Ifsuthen(s,t)(u,v)If(s=u)&&(tv)then(s,t)(u,v)BID值越小的网桥,其优先级越高*路径开销路径开销用来衡量网桥之间距离的一种方式。路径开销是两个网桥间某条路径上所有链路开销的总和,IEEE802.1D最初定义链路开销是使用1000Mbit/s除以Mbit/s为单位的链路带宽。例如10BASE-T链路的开销为100,快速以太网和FDDI为10。随着Gbit/s以太网和其它高速技术的出现,反映了该定义的一些缺陷。链路开销使用整数存储,为了解决高带宽网络按原有标准计算出现小数的问题(10Gbit/s按原标准为0.1)。IEEE改变了原有的反比例模型,按如下2种方式定义新的链路开销。1Gbit/s的CatOS系统使用短整型,10Gbit/s带宽以上的CatOS和新版的IOS使用长整形*端口ID端口ID(PID,PortID),用来确定到根交换机的路径。由16bit的子串决定,其中包括6bit的端口优先级和10bit的端口号。基于IOS交换机,两部分都是8位。端口优先级是一个可配置的STP参数。在CatOS交换机上,端口优先级的十进制取值范围是0-63,默认为32。基于IOS的交换机上,端口优先级的十进制取值范围是0-255,默认值为128。具体算法:PortID的比较方式如下,假设(s,t)和(u,v)分别为两个PortID,数对中的第一个值为端口优先级,第二个值为MAC地址,则比较规则如下Ifsuthen(s,t)(u,v)If(s=u)&&(tv)then(s,t)(u,v)PID越小的端口优先级越高案例:sw2#showspanning-treeinterfacefa0/3detailPort23(FastEthernet0/23)ofVLAN0001isforwardingPortpathcost100,Portpriority128,PortIdentifier128.23.Designatedroothaspriority32769,address0008.2059.9e40Designatedbridgehaspriority32769,address0009.4376.2300Designatedportidis128.3,designatedpathcost19Timers:messageage0,forwarddelay0,hold0Numberoftransitionstoforwardingstate:1LinktypeissharedbydefaultBPDU:sent238527,received0PID中端口号定义采用数字编号的方式,一般基于IOS的交换机上端口号空间为256个端口。例如slot0上的23号口,其端口号为23,则PortID如上所示为128.23STP过程*STP判定和BPDU交换Spanning-tree算法主要依靠BID,路径开销和端口ID,在创建一个无环路的拓扑时,STP执行如下4个步骤:1.选取根交换机2.计算到根交换机的最小路径开销3.确定最小发送者BID4.确定最小的端口ID为做出最佳判决,STP需要保证所有参与的网桥都获得正确的信息,网桥间的信息交互采用网桥协议数据单元(BPDU)的基于2层的frame来传递STP信息。网桥通过如上4步来选择每个端口上所看到的“最佳BPDU”网桥会村除从每个端口收到的最佳BPDU。在判定最优时,网桥会比较在此端口上收到的所有BPDU,以及会此端口上发送的BPDU。每收到一个BPDU,网桥都会根据4步过程进行检查,以判定是否比目前保存的此端口的最佳BPDU更好,如果有新的BPDU(或者本地生成的BPDU)更好,就会替换旧值。当一个网桥被激活后,其所有的端口每隔2s(默认hello时间)发送一次BPDU报文。如果收到其它端口比自己更好的BPDU,则本BPDU。如果20s(默认最大时间MaxAge)的时间没有从邻居收到更好的BPDU,则本地端口将重新发送BPDU。最大生存时间是最佳BPDU超时的时间。*STP收敛的步骤生成树算法比较复杂,其收敛于一个无拓扑的初始过程包含1.选举根交换机(RootBridge)2.选举根端口(RootPorts)3.选举指定端口(DesignatedPorts)在网络第1次“初始”的时候,所有的网桥都会泛洪混合的BPDU信息。网桥开始执行前面讨论过的STP4个判断过程。使得网桥追踪到一组BPDU,形成整个网络(Cisco是一个vlan一个STP实例,故cisco的生成树范围定义在一个vlan中)。I.选举根桥STP要求每个网桥分配一个唯一的标识(BID),BID通常由优先级(2bytes)和网桥MAC地址(6bytes)构成。根据IEEE802.1d规定,优先级值为0-65535,缺省的优先级为32768(0x8000)。当交换机最初启动时,它假定自己就是根交换机,并发送次优的BPDU,当交换机接收到一个更低的BID时,它会把自己正在发送的BPDU的根BDI替换为这个最低的根BID,所有的网桥都会接收到这些BPDU,并且判定具有最小BID值的网桥作为根网桥。如下图所示,假定A,B的优先级均为32,768,C的优先级为40,000。各个交换机如何知道哪个交换机的BID最小呢?这是通过交换BPDU实现的。BPDU是网桥之间用于交换生成树信息的一种特殊的数据帧。根据选举规则,选择较小的优先级的交换机,则选择出Cat-A和Cat-B。在A,B优先级相同的时候,查找最小的MAC地址AA-AA-AA-AA-AA-AA.于是Cat-A被选举成为根交换机.BPDU的结构:II.选择根端口在选举根桥结束后,将选举根端口,一个网桥的根端口是按照路径开销最靠近根交换机的端口。每一个非根交换机都将选出一个根端口。根交换机每个接口均为根端口。网桥还是使用开销(cost)的概念来衡量接近程度。与某些路由协议的度量一样,STP对接近程度的度量也不使用跳数,而是通过“根路径开销”---到达根桥的链路开销之和来衡量。其选择过程如下:1)根交换机Cat-A发送BPDU,他们所包含的根路径开销为0,当Cat-B收到这些BPDU后,迅速将端口1/1的路径开销累加到所收到BPDU的根路径开销。假定为FastEthernet,则加上端口1/1的开销19,Cat-B1/1到根路径的开销为19。2)Cat-B使用内部值19,并从端口1/2发送一个根路径开销为19的BPDU3)当Cat-C从Cat-B收到这些BPDU将计算自己到根网桥的开销为38(19+19)。4)Cat-C也在1/1上收到来自A的BPDU。同时计算1/1到根网桥的开销为19。5)根据最靠近根桥原则,C选出根端口为1/1。6)Cat-C将继续向下游交换机公布其到根端口的开销为19III.选择指定端口在桥接式的网络中,每个网段都有一个指定端口。一个网段的指定端口(DesignatedPort)是连接到网段中的一个桥接端口,它既向根桥发送数据,也通过此网段从根桥接收数据。在选举根端口的同时,基于到根网桥的的根路径成本的累加值的指定端口选择过程也在进行。包含某一网段的指定端口的网桥称为该网段的指定网根网桥的所有活动端口都成为指定端口,指定端口的选择也是基于到根桥的根路径开销。这条规则的例外是:当根网桥自身存在第一层物理环路的情况,例如:根网桥的两个端口连接到了同一台集线器上,或者两个端口通过交叉线连接到了一起。Segment1中,根交换机Cat-A上1/1的路径开销为0,Cat-B上1/1的开销为19。故Cat-A的1/1为指定端口。Segment2中,同样Cat-A上的1/2被选举为指定端口。在Segment3中。Cat-B和Cat-C上的1/2口,端口路径开销均为19。此时将根据最小发送者的BID来确定,此时确定B的端口为指定端口,在某些情况下,例如Cisco的交换机每个vlan一个生成树实例,此时,将会出现BID相同的情况,则最后比较端口ID,端口ID在同一台交换机上定义是必定不相同的,最小端口ID的端口被定义为指定端口。STP状态在确定根端口,指定端口和非指定端口后,STP准备创建一个无环路拓扑。STP配置根端口和指定端口来转发流量,非指定端口阻塞流量。STP一共有5种状态:阻塞、监听、学习、转发和禁用。STP状态可以看作是等级制的,网桥端口从阻塞状态开始并按照顺序到转发状态。禁用状态是管理性的关闭STP状态。它不是正常STP端口过程的一部分。在交换机初始化之后,所有端口由阻塞状态开始。5种状态:状态转换过程:*阻塞状态(Blocking)一个端口处于阻塞状态将会有如下特征:#丢弃所有连接的网段上收到的数据帧,或者通过交换而来内部转发的帧。#接收到的BPDU直接传给系统模块。#没有地址数据库。#不传递从系统模块收到的BPDU#接收响应网络管理消息,但不传递他们#需时20s*侦听状态(Listening)如果一个网桥在启动或者在一定时间没有收到BPDU后立即认为自己是根交换机,端口进入侦听状态,侦听

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功