一、相关知识介绍
1、生成树协议的主要功能有两个:一是在利用生成树算法、在以太网络中,创建一个以某台交换机的某个
端口为根的生成树,避免环路。二是在以太网络拓扑发生变化时,通过生成树协议达到收敛保护的目的。 2、根网桥的选择流程:
(1)第一次启动交换机时,自己假定是根网桥,发出BPDU报文宣告。
(2)每个交换机分析报文,根据网桥ID选择根网桥,网桥ID小的将成为根网桥(先比较网桥优先级,如
果相等,再比较MAC地址)。
(3)经过一段时间,生成树收敛,所有交换机都同意某网桥是根网桥。
(4)若有网桥ID值更小的交换机加入,它首先通告自己为根网桥.其它交换机比较后,将它当作新的根网桥
而记录下来. 3、RSTP 协议原理
STP并不是已经淘汰不用,实际上不少厂家目前还仅支持STP。STP的最大缺点就是他的收敛时间太长,对于现在网络要求靠可靠性来说,这是不允许的,快速生成树的目的就是加快以太网环路故障收敛的速度。 (1)RSTP 5种端口类型
STP定义了4种不同的端口状态,监听(Listening),学习(Learning),阻断(Blocking)和转发 (Forwarding),其端口状态表现为在网络拓扑中端口状态混合(阻断或转发),在拓扑中的角色(根端口、指定端口等等)。在操作上看,阻断状态和 监听状态没有区别,都是丢弃数据帧而且不学习MAC地址,在转发状态下,无法知道该端口是根端口还是指定端口.RSTP有五种端口类型。根端口和指定端口这两个角色在RSTP中被保留,阻断端口分成备份和替换端口角色。生成树算法(STA)使用BPDU来决定端口的角色,端口类型也是通过比较端口中保存的BPDUB来确定哪个比其他的更优先.
1)根端口:非根桥收到最优的BPDU配置信息的端口为根端口,即到根桥开销最小的端口,这点和STP一样.请注意图8—16上方的交换机,根桥没有根端口.按照STP的选择根端口的原则,SW—1和SW—2和根连接的端口为根端口.
2)指定端口:与STP一样,每个以太网网段段内必须有一个指定端口.假设SW-1的BID比SW—2 优先,而且SW—1的P1口端口ID比P2优先级高,那么P1为指定端口,如图8—17所示.
图8—16 RSTP根端口
图8-17 指定端口的选择
3)替换端口
如果一个端口收到另外一个网桥的更好的 BPDU,但不是最好的,那么这个端口成为替换端口,如图8—18所示。对于SW-2来说,端口P3收到的BPDU比自己优先,自己为次优先,P3为替换端口. 4)备份端口
如果一个端口收到同一个网桥的更好 BPDU,那么这个端口成为备份端。当两个端口被一个点到点链路的一个环路连在一起时,或者当一个交换机有两个或多个到共享局域网段的连接时,一个备份端口才能存在。如图8-19所示,SW-1的P1和P2口同时接入到以太网的同一网段,P1为指定端口,P2 优先级低,则P2端口为备份端口.
图8-18 替换端口的选择
图8-19 备份端口的选择
5)禁用端口
在快速生成树协议应用的网络运行中不担当任何角色.
4 RSTP配置命令介绍
PVST是Cisco私有的,为每个VLAN构造一棵生成树 (1) 启用生成树
Switch(config)#spanning-tree vlan vlan-list (2)设置根网桥
Switch(config)#spanning—tree vlan vlan-list root primary | secondary( 3) 修改网桥的优先级
Switch(config)#spanning-tree vlan vlan-list priority Bridge-priority (4) 修改端口成本
Switch(config—if)#spanning—tree vlan vlan—list cost cost (5) 修改端口优先级
Switch(config-if)#spanning-tree vlan vlan-list port—priority priority (6) 配置上行速链路
配置上行速链路的作用:当接入层或汇聚层的交换机主用的上行链路断开的时候,被阻塞的端口迅速装换到转发状态,不需要经过侦听和学习状态,配置了上行速链路后交换机的优先级变为49152,成本增加3000
Switch(config)#spanning—tree uplinkfast (7) 配置端口速链路
配置速端口的作用:不经过侦听和学习状态,直接进入到转发状态,但是该端口依然会运行生成树协议,如果检测到环路,也能够将转发状态转换为阻塞状态,配置在连接终端的接口上。 Switch(config—if)#spanning—tree portfast (8)查看生成树的配置
Switch#show spanning-tree
(9) 查看某个VLAN的生成树详细信息
Switch#show spanning—tree vlan vlan-id detail
(10) EthernetChannel-以太通道 § 多条线路负载均衡,带宽提高
§ 容错,当一条线路失效时,其他线路通信,不会丢包 配置接口为以太通道模式
Switch(config)# interface range fastEthernet 0/1 – 2 Switch(config—if—range)#channel-group 1 mode on (11) 查看以太通道的配置
Switch# show etherchannel 1 summary
二、实验配置步骤
STP的全称是spanning—tree protocol,STP协议,它是一个二层的链路管理协议,它在提供链路冗余的同时防止网络产生环路,与VLAN配合可以提供链路负载均衡。生成树协议现已经发展为多生成树协议和快速生成树协议(RSTP,Rapid Spanning Tree Protocol,IEEE802.1W)。
两台Cisco 2960交换机使用两个百兆端口相连,默认情况下STP协议启用的。通过两台交换机之间传送BPDU协议数据单元,选出根交换机、根端口等,以便确定端口的转发状态。上图中标记为黄色的端口处于block状态。 (1) SW1配置stp
设置23、24端口为trunk interface FastEthernet0/23 switchport mode trunk interface FastEthernet0/24 switchport mode trunk
创建vlan10、20,将端口划分vlan interface FastEthernet0/1 switchport access vlan 10
interface FastEthernet0/2 switchport access vlan 20
交换机默认启动stp-—pvst ,更改rstp——rapid-pvst spanning—tree mode rapid—pvst spanning—tree vlan 10,20 // stp默认情况对vlan 1起作用,不能删除,当新建vlan后,对新建vlan同样起作用。因此,此命令可以忽略.
(2)SW2配置stp
配置命令和SW1相同。
(3)比较根网桥
从上图中得知,SW1为根网桥。 在真实设备上不可能存在相同mac地址的情况。比较根网桥原则,先比较优先级,越小说明级别越高,如果优先级相同就比较mac地址,越小优先级越高.此外,还了解到SW1上fa0/23 ,fa/24为指定端口。SW2上的fa0/23为根端口.fa0/24为替代端口,故端口显示橙黄色状态。
SW1#show spanning-tree
VLAN0010
Spanning tree enabled protocol rstp Root ID Priority 32778
Address 0003。E441。ADB6 This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32778 (priority 32768 sys—id—ext 10) Address 0003。E441。ADB6
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20
Interface Role Sts Cost Prio。Nbr Type ——-——----—-----— --—- -—- ———--——-— —-———-—— ——————--—-—-—---————-—————-—-—-— Fa0/1 Desg FWD 19 128。1 P2p Fa0/23 Desg FWD 19 128。23 P2p Fa0/24 Desg FWD 19 128.24 P2p
SW2#show spanning—tree
VLAN0010
Spanning tree enabled protocol rstp Root ID Priority 32778 Address 0003。E441.ADB6 Cost 19
Port 23(FastEthernet0/23)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32778 (priority 32768 sys—id—ext 10) Address 00D0。BC77.8743
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20
Interface Role Sts Cost Prio.Nbr Type ——-——-———-—-———— --—- ——— —-—-—-—-- —-----—-
—-—-——--——-———-—-—————-———-—--—— Fa0/1 Desg FWD 19 128.1 P2p Fa0/23 Root FWD 19 128。23 P2p Fa0/24 Altn BLK 19 128。24 P2p
4) 修改Brigde ID,重新选SW2为根网桥
SW2(config)#spanning—tree vlan 10,20 priority 4096 SW2#show spanning-tree
VLAN0010
Spanning tree enabled protocol rstp Root ID Priority 4106
Address 00D0.BC77。8743 This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 4106 (priority 4096 sys—id—ext 10) Address 00D0。BC77。8743
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
————-—————--——-- ———— -—- —-——--—-— ———--—————-——--————-—--——-——-——— Fa0/1 Desg FWD 19 128。1 P2p Fa0/23 Desg FWD 19 128.23 P2p Fa0/24 Desg FWD 19 128.24 P2p
SW1#show spanning—tree
VLAN0010
Spanning tree enabled protocol rstp Root ID Priority 4106
Address 00D0。BC77。8743 Cost 19
Port 23(FastEthernet0/23)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32778 (priority 32768 sys—id—ext 10)
———-———-
(Address 0003。E441。ADB6
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20
Interface Role Sts Cost Prio。Nbr Type -—-—---————---—- ———— ——— —---—-——- —-———--— ---—-———-—---———--——————-———---— Fa0/1 Desg FWD 19 128。1 P2p Fa0/23 Root FWD 19 128.23 P2p Fa0/24 Altn BLK 19 128。24 P2p
修改后发现SW1的 fa0/24端口变成替代端口。为什么呢?
这是因为交换机在选举根端口时会首先考虑根路径成本,这里都是19,再比较发送网桥id大小,这里是同一个根网桥.最后比较发送端口id大小,23比24小,所以23端口成为根端口。而24端口因为非根非指定端口就只能阻塞block。(这里指定端口被根网桥的发送端口占了,因为它的开销最小.)
附注:在学习STP时,根端口、指定端口、转发端口的指定规则:
根网桥的所有端口都是指定的
非根网桥到根网桥开销最小的端口是根端口 与其他网桥的根端口相连的端口都是指定的
根据以上规则就确定了根端口和指定端口后,既不是根端口又不是指定端口的就成为阻塞端口 至于根端口和指定端口的区分,是这样的:
根端口:先比较cost,如果相等,则比较端口标识符ID,低则优。
指定端口:先比较cost,如果相等,则比较桥ID。桥ID由priority和MAC组成,低则优。
因篇幅问题不能全部显示,请点此查看更多更全内容