目录
一、前言:生成树协议(STP)
计算机网络中,我们为了减少网络故障导致无法正常通信的问题,通常会增加冗余设备作为备用,形成冗余拓扑。但是也增加了冗余链路,这样却会引起交换环路,造成通信消息循环发送。交换环路会带来三个问题:广播风暴、同一帧的多个拷贝、交换机 CAM 表不稳定。
所以,STP(生成树协议,Spanning Tree Protocol)就是解决冗余拓扑出现的问题。STP 基本思路是阻断一些交换机接口,构建一棵没有环路的转发树,让具有冗余结构的网络在故障时自动调整网络的数据转发路径。STP 利用 BPDU(Bridge Protocol Data Unit)和其他交换机进行通信,从而确定哪个交换机该阻断哪个接口。
为了在网络中形成一个没有环路的拓扑,网络中的交换机要进行以下三个步骤,BPDU 中的几个关键字段:选举根桥、选取根口、选取指定口。这些步骤中,作为根桥的交换机取决于以下因素(按顺序进行):
(1) 最低的根桥 ID;
(2) 最低的根路径代价;
(3) 最低发送者桥 ID;
(4) 最低发送者端口 ID。
现在了解基本的STP知识之后,下面将开始通过实验感受STP的实际应用场景。
软件平台:Cisco Packet Tracer
综合实践题目:STP.pka已经上传到CSDN,可下载实践练习。
二、CISCO交换机STP命令汇总
命令 | 作用 |
show spanning-tree | 查看 STP 树信息 |
spanning-tree vlan 1 priority 4096 | 配置 VLAN1 的桥优先级 |
spanning-tree portfast | 配置接口为 portfast,当有设备接入时立即进入转发状态 |
spanning-tree uplinkfast | 配置 uplinkfast 特性 |
spanning-tree backbonefast | 配置 backbonefast 特性 |
spanning-tree mode rapid-pvst | 把 STP 的运行模式设为 RSTP+PVST |
spanning-tree link-type point-to-point | 把接口的链路类型改为点对点 |
spanning-tree mode mst | 把生成树的模式改为 MST |
spanning-tree mst configuration | 进入 MST 的配置模式 |
name TEST-MST | 命名 MST 的名字 |
revision 1 | 配置 MST 的 revision 号 |
instance 1 vlan 1-2 | 把 VLAN 1 和 VLAN 2 的生成树映射到实例 1 |
spanning-tree guard root | 在接口上配置 root guard 特性 |
spanning-tree bpduguard enable | 在接口上配置 bpduguard 特性 |
第一条命令在特权模式(enable)下执行,其他都是在配置模式(configure terminal)下。
这次实验只涉及到第1、2条命令,为基础运用。
show spanning-tree
如下,可以看到交换机生成树具体信息,分为两部分:根ID 和 桥ID.
Priority:优先级(参数范围:<0-61440>)
Address:交换机的Mac地址
Hello Time:发送消息时间间隔
三、运用STP搭建简单拓扑
下面是一个最简单的冗余拓扑,可以看到,箭头所指位置是不通的,这就是生成树协议的作用,它阻塞了一条链路,避免形成交换环路。
现在我们看一下Switch0的STP情况:
Switch1的STP情况:
Switch0的f0/2接口阻塞,Switch0不是作为根桥。未进行配置默认情况下,结果如图所示。
那么,现在要将S0设置为根桥了,手动进行配置。操作就是将Priority设置为4096,前面提到BPDU决定根桥的因素之一。
命令:
spanning-tree vlan 1 priority 4096
将S0优先级设置之后,根桥变为S0,这时以S0向网络发送数据包。
四、实战:STP综合实验
综合实践题目:STP.pka已经上传到CSDN,可下载实践练习。
这道题目上来就是IP地址分配,也许这是一个难点,而生成树协议我们前面看到的只需一行配置搞定,相对简单。
题目只给出IP地址空间为:10.1.1.0/24 ,这是关键突破口!
VLAN名称、vlan号和所需主机IP地址对应如下:
VLAN号 | 名称 | 所需IP地址数 |
vlan 5 | Management&Native | 10 |
vlan 15 | Production | 100 |
vlan 25 | Staff | 50 |
vlan 35 | Guest | 20 |
给定地址空间10.1.1.0/24,根据IP地址数量,从多到少进行分配。
IP地址数 | 主机位数 | 可用IP地址数 | 分配网段(子网掩码) |
100 | 7位 | 126 | 10.1.1.128/25 |
50 | 6位 | 62 | 10.1.1.192/26 |
20 | 5位 | 30 | 10.1.1.224/27 |
10 | 4位 | 14 | 10.1.1.240/28 |
问题来了,虽然得到了VLAN的网段,满足IP地址数量要求,但是题目完全没给出具体IP配置说明!
经过一段时间的探索,终于找到完全正确的地址分配,为每个设备配置IP、默认网关、子网掩码。具体配置就是,默认网关为取各自网段的可用IP第一个,PC、交换机Vlan的IP地址取可用IP地址的第二个。
如果理解还是不清楚,直接用下面我配置好的各设备地址表。
现在解决了题目关键部分,后续就简单了,直接按任务配置就可以。
其中,遇到一个任务:配置Vlan的默认网关,之前没配置过,所以学习了一条配置命令。
交换机配置默认网关命令:
ip default-gateway 10.1.1.255
完成任务过程,可以边查看进度情况,这是Cisco实验练习题目的一个优点,可以实时检查完成进度。完成率应该为 100%。若不是,则单击 Check Results(检查结果),了解哪些必需的组件尚未完成。
五、结语
STP(生成树协议,Spanning Tree Protocol)就是解决冗余拓扑出现的问题。STP 基本思路是阻断一些交换机接口,构建一棵没有环路的转发树,让具有冗余结构的网络在故障时自动调整网络的数据转发路径。本篇记录学习计算机网络重点知识:生成树协议(STP),详细步骤将从认识到实践,使用Cisco Packet Tracer 完成STP综合练习。同时,也更实际地学习IP地址分配,加深对IP地址的理解和应用。
我的博客园:https://www.cnblogs.com/chenzhenhong/p/13776360.html
我的CSDN博客:https://blog.csdn.net/Charzous/article/details/108926031