stp
4.1.1 实验目的
(1)理解生成树协议STP的用途
(2)理解生成树协议STP的工作过程
(3)掌握根桥、根端口、指定端口的选举规则
(4)掌握生成树协议STP中端口角色的变化
(5)掌握基本生成树协议的配置
4.1.2 实验原理
1.生成树协议STP
网络设计通常采用冗余方法提高网络的健壮性、稳定性。常见的冗余方式有:链路冗余和设备冗余。如图4-1所示。该三层结构的网络中,核心层、分布层和接入层均采用了链路冗余。
不过,对网络中冗余链路会造成网络中的环路,而第二层的网络环路则会带来以下问题:
(1)广播风暴。
(2)多帧复制。
(3)MAC地址表的不稳定。
为了解决第二层网络环路问题而又要保证网络的稳定和健壮性,引入了链路动态管理的策略。首先通过阻塞某些链路避免环路的产生,当正常工作的链路由于故障断开时,阻塞的链路立刻激活,迅速取代故障链路的位置,保证网络的正常运行。这就是生成树(STP)协议的主要思想。
2.STP的工作过程
STP通过协商阻断一些交换机端口,以确保网络中所有目的地之间只有一条逻辑路径,构建一棵没有环路的转发树。当一个端口阻止流量进入或离开时,该端口便视为处于阻塞状态。不过 STP 用来防止环路的网桥协议数据单元 (BPDU) 帧仍可继续通行。为了在网络中形成一个没有环路的拓扑,交换机要进行以下3个步骤:
(1)选举根桥。
(2)每个非根桥交换机计算到达根桥的最短路径。
(3)选择活动端口以及端口的角色类型。
其中STP端口类型一共有3种,如表4-1所示种:
表4-1 STP端口类型
端口类型 | 功能说明 |
根端口(root port) | 存在于非根桥上,指到达根桥路径开销最小的端口,每个交换机只能有一个。 |
指定端口(designated port) | 负责发送网段BPDU的端口,每个物理网段只能有一个。 |
非指定端口(non-designated ) | 被阻塞的端口,不能转发数据帧 |
在STP的根桥和根端口选择过程中,哪个交换机能获胜将取决于以下因素(按顺序进行):
l 最低的根桥ID,也叫BID;
l 最低的根路径代价;
l 最低发送者桥ID;
l 最低发送者端口ID。
下面举例说明了生成树的工作过程:
①选举根桥:每个交换机都具有一个唯一的桥ID(BID, Bridge ID),这个ID由两部分组成,如下图所示:
网桥优先级是一个2字节的数,交换机的默认优先级为32768 ;MAC地址就是交换机的MAC地址。具有最低桥ID的交换机就是根桥。
BID的信息被封装在BPDU中,每个交换机广播接收到的BPDU和发送自身的BPDU,通过BPDU泛洪,可以获知BID最小的交换机,该交换机即被选为根桥。例如在图4-2中,三台交换机的优先级(priority)相同,SwitchA 的MAC地址最小,所以SwitchA的 BID最小,被选举为根网桥。
②选取根端口:选举了根桥后,其他的交换就成为了非根桥。根桥上的接口都是指定端口,会转发数据包。每台非根桥要选举一条到根桥的根路径。STP使用路径代价Cost值来决定到达根桥的最佳路径(Cost是累加的,带宽大的链路Cost低),最低Cost值的路径就是根路径,该端口就是根端口;如果Cost一样,就根据选举顺序选举根口。根口转发数据包。生成树链路开销代价如表4-2所示。
表4-2 生成树链路开销代价表
链路带宽 | 旧标准 | 新标准 |
10Mbps | 100 | 100 |
100Mbps | 10 | 19 |
1Gbps | 1 | 4 |
10Gps | 1 | 2 |
>10Gbps | 1 | 1 |
在图4-3中,各个非根网桥中的端口中,到根网桥路径开销最小的端口被指定为根端口,在图中,Switch B和C 的两个端口F0/1、F0/2的开销分别为19和38,所以F0/1被选定为根端口。
③选举指定端口和非指定端口:当交换机确定了根端口后,还必须将剩余端口配置为指定端口 (DP) 或非指定端口(非 DP),以完成逻辑无环生成树。交换网络中的每个网段只能有一个指定端口。当两个非根端口的交换机端口连接到同一个 LAN 网段时,会发生竞争端口角色的情况。这两台交换机会交换 BPDU 帧,以确定哪个交换机端口是指定端口,哪一个是非指定端口。一般而言,交换机端口是否配置为指定端口由 BID 决定。所以在网段2所连接的2个端口,Switch B的BID值小于Switch C的BID值,所以 Switch B的F0/2为指定端口,处于转发状态。Switch C的F0/2为非指定端口,处于阻塞状态。
3.STP的收敛过程
当网络的拓扑发生变化时,网络会从一个状态向另一个状态过渡,重新打开或阻断某些端口口。交换机的端口状态状态变换和时间如下图:
从上图可以看出STP的最长收敛时间为50s。
当网络的拓扑发生变化时,网络会从一个状态向另一个状态过渡,重新打开或阻断某些端口。交换机的端口要经过几种状态:禁用(disable)——>阻塞(Blocking)——>监听状态(Listenning)——>学习状态(Learning)——>转发状态(Forwarding)。每种端口状态对数据的处理如表4-2所示。
表4-3 生成树端口状态对数据的转发
过程 | 阻塞 | 侦听 | 学习 | 转发 | 禁用 |
接收并处理BPDU | 能 | 能 | 能 | 能 | 不能 |
转发接口上收到的数据 | 不能 | 不能 | 不能 | 能 | 不能 |
转发其它接口发来的数据帧 | 不能 | 不能 | 不能 | 能 | 不能 |
学习MAC地址 | 不能 | 不能 | 能 | 能 | 不能 |
4.STP的配置命令
表4-4 STP常用配置命令
相关命令 | 功能 |
S1#show spanning-tree | 查看交换机生成树协议的配置情况 |
S1(config)# spanning-tree mode pvst/rapid-pvst | 配置生成树的模式为STP或是RSTP |
S1(config)# spanning-tree vlan 1 priority <0-61440> | 配置交换机在VLAN 1中的优先级(优先级为4096倍数),范围为0-61440 |
S1(config)#spanning-tree vlan 1 root primary | 将交换机配置为VLAN1中的根桥 |
S1(config)#spanning-tree vlan 1 root secondary | 将交换机配置为VLAN1中的次根桥 |
S1(config-if) # interface fa0 S1(config-if) # spanning-tree vlan 1 cost 18 | 将fa0端口在VLAN1生成树的路径开销修改为18 |
S1(config-if) # interface fa0 S1(config-if) # spanning-tree vlan 1 port-priority 16 | 将fa0端口在VLAN1生成树的端口优先级修改为16,端口优先级为16的倍数,从0~240 |
S1#show spanning-tree interface fastethernet 0/1 | 查看端口状态 |
S1# show spanning-tree vlan vlan-id | 查看某个VLAN下的STP配置信息 |
5.STP配置实例
实验背景:思科的交换机默认启用STP生成树协议,所以不需要做任何配置,接通电源后,交换机自动协商成功。
实验要求:要求配置STP,确保S1为网络中交换机的根桥,S2为网络中交换机的备用根桥,将和PC1连接端口配置为Portfast端口。
步骤1:观察自动STP的根桥选举情况。(无须做任何配置)
观察S1的生成树情况。
S1#show spanning-treeVLAN0001
Spanning tree enabled protocol ieee
//根桥的信息
Root ID Priority 32769 // 根桥的优先级
Address 0001.4240.48C4 // 根桥的MAC地址,可知S3为根桥
Cost 19 // 本交换机到根桥路径开销为19
Port 1(FastEthernet0/1) // 本交换机根端口为F0/1
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
//本交换机的信息
// 优先级 = 32768(默认优先级) + 1(VLAN 1的序号)
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0001.43E9.8859 //本交换机MAC地址
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Root FWD 19(根端口) 128.1 P2p
Fa0/2 Desg FWD 19(指定端口) 128.2 P2p
Fa0/3 Desg FWD 19 128.3 P2p
②观察S2的生成树情况。
S2#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769 //根桥优先级
Address 0001.4240.48C4 //根桥MAC地址
Cost 19 // 本交换机到根桥路径开销为19
Port 1(FastEthernet0/1) // 本交换机根端口为F0/1
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
//本交换机的信息
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) //优先级
Address 00E0.F980.4970 // MAC地址
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Root FWD 19(根端口) 128.1 P2p
Fa0/2 Altn BLK 19(阻塞端口) 128.2 P2p
注意:S3的F0/2端口和S1的F0/2端口竞争指定端口时失败,端口被阻塞,不转发报文。
③观察S3的生成树情况。
S3#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769 // 根桥优先级
Address 0001.4240.48C4 //根桥MAC地址
This bridge is the root // 本交换机为根桥
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
//观察可以得知自身MAC地址和根桥MAC地址相同,即本交换机为根桥。
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0001.4240.48C4
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/2 Desg FWD 19 (指定端口) 128.2 P2p
Fa0/3 Desg FWD 19(指定端口) 128.3 P2p
步骤2:要让S1成为根桥,S2成为备份根桥,需要修改S1和S2的优先级,将其优先级降低,提高其在选举根桥中的地位。
S1(config)#spanning-tree vlan 1 root primary // 成为根桥
S1(config)#interface f0/3
S1(config-if)#spanning-tree portfast //配置F0/3端口为portfast接口
S2(config)#spanning-tree vlan 1 root secondary // 成为备用根桥
S1(config)#interface f0/3
S1(config-if)#spanning-tree portfast // 配置f0/3端口为portfast接口
步骤3:结果与测试。
查看S1的生成树情况。
S1#sh spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 24577 // 已经发生改变,优先级降低
Address 0001.43E9.8859
This bridge is the root // S1已经成为根桥
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
… 省略部分无关内容
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 19 128.1 P2p
Fa0/2 Desg FWD 19 128.2 P2p
Fa0/3 Desg FWD 19 128.3 P2p
注意:所有的端口都变成了指定端口。
查看S2的生成树情况。
S2#sh spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 24577
Address 0001.43E9.8859
Cost 19
Port 2(FastEthernet0/2) //根端口已经发生变化
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
//S2的生成树信息
Bridge ID Priority 28673 (priority 28672 sys-id-ext 1) // 优先级降低,但比S1优
先级要高
Address 00E0.F980.4970
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
… 省略部分无关内容
从结果看到,我们通过改变交换机的优先级,让网络的根桥选举发生了变化,S1成为根桥,S2成为备用根桥,当S1发生故障时,S2将会取代S1成为网络中的根桥。
相关阅读
路由:route,指从某一网络设备出发去往某个目的地的路径 路由表:Routing Table,是若干条路由信息的一个集合体。只存在于终端计算机和
参考了各个网络的资料、《图解TCP/IP》、《TCP/IP详解》、谢希仁的《计算机网络》等1、网络协议分层(1)传统上,我们所知道的是开放系
2014年4月8日,XP宣布正式停止服务的日子,也是Openssl爆出大漏洞的日子。整个下午我们都处于应急状态中,精神紧绷,这个漏洞影响30-50%
A5创业网(公众号:iadmin5)3月6日报道,近日网上传出沪江网校全部裁员的消息,包括市场部、督导部门、老师在内的员工均被下岗,原因据说是
A5创业网(公众号:iadmin5)11月10日消息,据外媒报道,亚马逊已经与苹果公司达成协议,允许苹果最新产品直接在亚马逊上销售其产品,包括iPh