生成树协议是为了解决冗余网络中的广播风暴问题而产生的。 生成树协议是通过在网络中选举根交换机,并在其他非根交换机上指定接收bpdu的端口来避免广播风暴的产生的。 生成树协议工作时,正常情况下,交换机的端口要经过几个工作状态的转变。物理链路待接通时,将在block状态停留20s,之后是listen状态15s,经过15秒learn,最后成为forward状态。 端口的几种状态:1。Forward状态可以接收,和发送bpdu数据包。2。Listen状态,可以接受数据包,若一forward端口在一个max_age时间内没收到bpdu,则转变为listen状态。3。block状态,此状态下可以接收数据包。4。Disable状态,此状态不参与生成树协议的运行。5。learn状态。 一个网络中只能有一个根交换机,一个网段中之能有一个指定交换机,一个交换机上只能有一个根端口,指定交换机上的根端口为指定端口。一个普通交换机上的和其他普通交换机连接的冗余链路的非根端口叫非指定端口。 生成树协议在网络中选举桥id最小的交换机做为根交换机,根交换机上的每个端口都是指定端口(dp=designate port)。桥id有两个字节的桥识别码和六个字节的mac地址组成。网络中其他交换机通过产生根端口和根交换机进行bpdu通信。每个交换机选择一个到根交换机路径开销最小的端口做为本交换机的根端口,其他端口为非指定端口,非指定端口为block状态。当一个端口为block状态时,不影响它对bpdu的接受,只不过不能发送而已。 当网络结构发生变化时,与起连接的交换机将产生一个bpdu到根交换机,根交换机再重新生成新的树结构,并产生一个配置bpdu向网络中的所有交换机宣告。 负载均衡的生成树协议。在生成树协议中每个vlan形成一个树。如果网络中的vlan个树比较多的话,会导致网络中的固定链路的流量很大,其余链路的流量相对较小。在生成树协议中可以采用多个vlan共用一个生成树协议的办发来实现负载均衡。假如网络中存在10个vlan的话,可以5个vlan共用一个生成树协议的方法把十个vlan的bpdu数据流量分散在两个固定的链路中。 生成树协议的配置: Config#spanning-tree vlan 200 为vlan200激活生成树协议,所有参于生成树选举的交换机都应配置。 Config#spanning-tree valn 200 priority 4096 把当前交换机的级别调整为4096。在vlan200中生效 Config#spanning-tree vlan 200 priority 8192 把当前的交换机的级别调整为8192。在vlan200中生效。 Config-if#spanning-tree cost 18 把当前的端口的链路开销调整为18,这里的设置对所有vlan生效 Config-if#spanning-tree vlan 200 cost 17若当前端口为trunk状态,在vlan中其开销为17 Show spanning-tree vlan 200查看vlan200的生成树协议运行状态 Show spanning-tree bridge查看所有vlan的生成树协议状态 增强的生成树协议: 802.1q 是普通的生成树协议,802.1w是增强的生成树协议。 增强的生成树协议包含以下几个三个特殊性能: Portfast(快速端口): 只能用于access端口,处于这种状态的端口可以很快从block状态转变成forward状态,加速了生成树协议的收敛时间。 Config-if#spanning-tree portfast 激活端口的portfast状态 Show run可以查看端口的状态 Uplinkfast(快速上行链路): 用于接入层交换机,处于这种状态的非根交换机,当根端口发生故障时,它的非根端口 能很快转变成forward状态,而不需经过listen,和learn状态。 Config#spanning-tree uplinkfast Config#show spanning-tree upliknfast Backbonefast(快速骨干): Config#spanning-tree backbonefast Config#spanning-tree backbonefast 此状态可应用于所有的交换机。在一网络中采用backbonefast时,网络中所有的交换机必须全部配置成这种状态。当网络结构发生变化时,采用此配置的端口由block转变成forwark状态时,所用时间有原来的50s变成30s。工作原理:当交换机从邻居交换机收到一个劣等bpdu(宣称自己是根交换机的bpdu),意味着原有链路发生了故障。则此交换机通过其他可用链路向根交换机发送根链路查询bpdu,此时如果根交换机还可达,根交换机就会向网络中的交换机宣告自己的存在。则首先接收到劣等bpdu的端口,很快转变到forward状态。 快速生成树协议(rapid spaning tree protocol):802.1w由802.1d发展而成 这种协议在网络结构发生变化时,能更快的收敛网络。它比802.1d多了两种端口类型:预备端口类型(alternate port)和备份端口类型。. 多生成树协议区域:802.1s Vlan2-100构建一个生成树,vlan101-200构建一个生成树。 Config#spanning-tree mode mst激活多生成树协议,在网络中的所有的交换机上必须全部配置。 Config#spanning-tree mst configuration Config-mst#name {region-name}指定region名字 Config-mst#revision {rev-num}指定mst版本号 Config-mst#instance inst vlan range指定vlan号和mst instance形成关联 例如:instance 2 vlan 10-16,20 把10-16和20vlan和instance 2形成关联 Show spanning-tree mst configuration Show spanning-tree mst 1 查看instance 1 的信息 ――――――――――――――――――――――――――――――――――――― Inther channel 多条链路绑定,增加带宽和冗余功能。 链路层的channel的配置: Switch config#interface interface {slot/port} Config-if#channel-group number mode {auto|desirable|on} 网络层的channel配置:(配置channel后可做三层接口使用) 在链路层channel的基础上做如下配置: Config#interface port-channel port-channel-number Config-if#ip address address-mask Show run interface port-channel-number 例如:show run interface port-channel 1 Show run interface interface x/y 例如:show run interface gig 0/9 Show etherchannel 1 port-channel查看通道状态 ――――――――――――――――――――――――――――――――――――― 链路捆绑协议:pagp(port aggregation protocol)和lacp9(link aggregation control protocol) 其中pagp是cisco的专有协议,lacp是标准的协议(IEEE8023ad) Config-if#channel-protocol {lacp|pagp}指定捆绑协议,缺省的是pagp Config-if#lacp prot-priority priority-value 指定lacp协议的端口优先级 Config#lacp system-priority priority-value 指定交换机优先级 Show interface gig 0/9 etherchannel Config#prot-channel load-balance type 指定链路状态采用的负载均衡方式:基于mac的和基于source和destrination ip两种方式。 Show ethertchannel load-balance ---------------------------------------------------------------------------------------------------------------- TroubleShotting: Bpdu guark: Config#spanning-tree poftfast bpduguard 对处于portfast状态的端口进行诊断,portfast端口一般情况下不接受bpdu数据包,当它收到bpdu数据包时,则转为shutdown状态。 Show spanning-tree summary total 查看guard状态 Portfast口的过滤: Config#spanning-tree portfast bpdufilter deafult激活portfast端口的filter状态,当此端口收到bpdu数据包时,则变为普通端口状态,可以发送和接收bpdu数据包。 Show spanning-tree summary totals ---------------------------------------------------------------------------------------------------------------- Bpdu 的偏移: 也就是bpdu到达目的端口的应到时间和实到时间的时间差。 偏移的原因大概有下面几种: 计时器失效 网络拓扑发生改变 Bpdu没收到 交换机发现偏移后,会产生日志,从而导致交换机性能的下降。影响网络的收敛。 ――――――――――――――――――――――――――――――――――――― Root Guardf: Config-if:spanning-tree guard root必须在指定端口上配置,可以确保指定端口的状态不发生改变,从而保护了根交换机的地位。 Show spanning-tree inunsistentports查看交换机的root guard功能block掉的端口 ――――――――――――――――――――――――――――――――――――― Unidirecrtional link detection: 链路两端的交换机,做冗余链路。其中一条链路可通信,另一链路不可通信。这种现象将发生数据包黑洞,导致广播风暴的产生。发现这种单向链路必须shutdown掉。 Config#udld enable 激活光接口的单向链路检测,不能激活rj45的链路状态 Config-if#udld enable激活以太网接口的单向检测 Config-if#no udld enable关闭以太网的单向检测状态 Config-if#udld disable 关闭光接口的单向检测 Config#udld reset 把接口复位,把关掉的单向检测复位 Show udld intreface查看单向检测口的信息 ――――――――――――――――――――――――――――――――――――― Loop guard:(环路保护) 环路保护防止于交换机上的非指定端口在max_age时间内没有收到bpdu数据包时,交换机上的非指定端口会自动转变成forward状态而产生的环路而设计的。如果激活loopguard功能,在发生上述情况时,非指定端口将转变为loopinconsistent状态。此状态可在所有非指定端口,rp,预备ap上配置,此状态激活后,根保护状态将失效。 Config#spantree guard loop 3/13 ---------------------------------------------------------------------------------------------------------------- 生成树协议的故障: 链路两端双工模式不匹配。 单向链路故障。 根交换机的损坏。 交换机的cpu忙 Portfast配置失效。 生成树时钟参数配置不正确。 故障测试命令如下: Debug spaning-tree all Debug spanning-tree elent Debug spanning-tree backbonefast |
|