生成树协议
2009-09-27 | 8:331、生成树协议的目的:
防止广播风暴、多帧复制、无限循环。STP(802.1D)该协议执行STA(生成树算法),以避免成环。
网桥标识符:桥优先级+mac地址,优先级默认为32768,最大为65535。
路径开销(cost):路径上所有端口开销的综合。
端口开销:端口速率/新IEEE开销/旧IEEE开销~~10G/2/1、1G/4/1、100M/19/10、10M/100/100,速率单位:b/s,运行IOS的交换机上端口开销的取值范围~~1至200000000。
桥协议数据单元(BPDU):多播目标地址是0180C2000000,BPDU数据中包括的比较参数有:根id,开销,桥id,端口id。BPDU是由根发出的,叫做配置BPDU,其他交换机接收并作出转发!
端口id:端口优先级+端口编号,优先级取值范围为0至63,默认32(VLAN1005的默认值为4)。使用PVST可利用端口优先级做负载均衡。
2、接口状态:阻塞~20s~监听~15s~学习~15s~转发
生成树协议算法决定哪些端口是阻塞状态的(交换机刚加电时全部端口为阻塞状态),STP收敛后交换机端口要么为转发状态(指定端口和根端口)要么为阻塞状态。阻塞状态还是会监听BPDU,只是不再参与数据转发了;从阻塞到监听这个过程是等待BPDU的过程,协议设计的时候只是为了等待3个BPDU经历最长路径(七段链路)传递的过程,经历的时间是20s(2*7+2*3=20),而如今经历这20s只是为了等待链路状态稳定下来,当阻塞状态经历20s都没有收到BPDU则转向监听状态,监听状态是选根和决定各端口类型的状态;从监听到学习需要经历15s的时间,处于学习状态的端口可以学习流入帧的源MAC地址了,不能转发数据帧;从学习到转发还要经历15s的时间,处于转发状态的端口才能转发数据帧。
3、STP的操作过程:
选:a.根(选最小的桥标识符,先比优先级后比MAC地址)
b.根端口(执行收动作)
c.指定端口(执行发动作,根网桥上全为指定端口)
d.非指定端口(阻塞状态)
比:a.根id
b.开销
c.发方桥id
d.端口id
拓扑变更:a.感知的交换机发出TC BPDU到传递根,根回应TCA(这样一个交互过程不是在根和感知交换机之间,而是之间传递的每段链路都有);
b.根做出BPDU的重新配置;
c.根发出配置BPDU通告。
4、PVST每vlan生成树(cisco only):
概念:即为每一个vlan维持一个生成树。
优点:可以做负载平衡且又能相互备份。
缺点:由于维持的树过多,会影响交换机性能。
升级:PVST+,支持802.1Q。
配置:(cisco交换机默认就是pvst)
(config)#spanning-tree vlan xx priority xx (设置网桥优先级)
(config)#spanning-tree vlan xx [forward-time|hello-time|max-age] xx(设置记时器)
(config)#spanning-tree vlan xx priority xx dia xx (设置网络直径,取值范围2至7,能按比例调制所有的时间)
(config)#spanning-tree vlan xx [root|secondary] (强制指定为根,优先级为8192;或备用根,优先级16384)
(config-if)#spanning-tree vlan xx port-priority xx (指定端口优先级)
#sh spanning-tree vlan xx (detail)
#sh spanning-tree int x (detail)
5、STP记时器:
Fwddelay:端口从侦听到学习以及从学习到转发的时间,默认15s,取值范围4s至30s。
Hello:根网桥发送BPDU的间隔时间,默认2s,取值范围1s至10s。
Maxage:BPDU有效时间,超时而没有收到新的BPDU则丢弃,默认20s,取值范围6s至40s。
所有的STP时间要保持与root bridge一致,所以要更改时间只需在root上更改即可!
6、RSTP快速生成树协议(802.1w)
rstp相当于一种握手机制,是主动的,而stp是被动等待通告。
端口分类:p to p,可以做握手机制(全双工则是该类)
共享,不可以做握手,只能通过老的机制收发(半双工则是该类)
又分成:边界端口,不接收bpdu,不参与stp,不用感知top,也没有必要感知
非边界端口,收bpdu,参与stp,top是它需要参与感知的
对于以上的分类而言,p to p握手机制可以快速的协商收敛,而设定边界(如接pc的端口)可以免除参与stp。
端口状态:丢弃(相当于stp中的阻塞和监听)——学习——转发
以前的非指定端口成为现在的:预备端口 & 备份端口
预备端口,bpdu来自别人,用来备份根端口;
备份端口,bpdu来自自己,用来备份指派端口。
7、mst 多生成树(802.1s)
主要是设置了生成树实例,再与每个vlan做映射,将vlan映射到所属树中,比PVST减少了生成树个数,加快了收敛,降低了设备资源使用率,同时仍然可以做负载平衡和相互备份。
配置:step 1: spanning-tree mode mst
step 2: spanning-tree mst config
step 3: name 名
step 4: revision 号
step 5: instance 号 vlan vlan-range
(config-mst)#sh current 显示已有的配置
(config-mst)#sh pending 显示未提交的配置
#sh spanning-tree mst config
#sh spanning-tree mst (int)
8、802.1D的增强
(1)portfast:配置在2层接入端口,能使其立即进入转发状态,而不用经历监听和学习状态(因为抑制了TCN,不通告top变更),提高了可用性,还可以防止如端口接了pc造成dhcp超时这样一种问题。
配置:(config-if)#spanning-tree portfast
(config)#spanning-tree default
(2)uplinkfast:配置在上行接入汇聚交换机的端口,能使交换机端口即刻进入转发状态,不经过监听和学习。
原理:抑制TCN,使用伪多播帧连接根,通告链路故障MAC地址,进而便于上游交换机能够将MAC地址表从发生故障的链路立即移动到新端口。
配置: (config)#spanning-tree uplinkfast
vlan优先级配置则这不能再开启uplinkfast,这个命令影响的是所有的vlan。
(3)backbonefast:用于核心中,收敛能从50s降到30s,但用的少,因为核心都是跑的路由,靠路由收敛了。
(4)BPDU防护:防止交换设备接到portfast口,引起环路,如果接上了,使其进入err状态; (config)#spanning-tree portfast bpduguard。
(5)BPDU过滤:用于过滤接终端interface发bpdu影响终端设备; (config)#spanning-tree portfast bpdufilter default (全局启用,有在接口上的命令)。
(6)BPDU时滞:核心交换机上使用的技术,防止交换机过忙无法正常发bpdu,如果出现这种情况,通告snmp引起网管的戒备。
(7)根保护:抵制新接入的交换机因为priority高而成为根; (config)#spanning-tree guard root。
(8)loop防护:该技术不能与根保护一起用。
如果同时配置BPDU防护和BPDU过滤,过滤生效。











最新评论