STP(Spanning Tree Protocol)生成树协议,可应用于计算机网络中树形拓扑结构建立,主要作用是防止网桥网络中的冗余链路形成环路工作。但是,在目前,很少使用到STP协议了,更多是在使用STP的变体协议PVST或rapidly PVST
冗余:网络分层设计的一个重要组成部分,可防止用户网络服务的中断。大多大型公司或者重要的部分单位,都会设置冗余,以保证网络的的稳定。冗余功能可防止网络因单个故障点(例如网络电缆或交换机故障)而无法运行,以此提升网络拓扑的可用性。当物理冗余功能引入设计时,便会出现环路和重复帧。环路和重复帧对交换网络有着极为严重的影响。生成树协议 (STP) 便旨在解决这些问题。
STP 会特意阻塞可能导致环路的冗余路径,以确保网络中所有目的地之间只有一条逻辑路径。端口处于阻塞状态时,用户数据将无法进入或流出该端口,不过,STP 用来防止环路的 BPDU(网桥协议数据单元)帧仍可继续通行
STP 通过策略性设置“阻塞状态”的端口来配置无环网络路径,从而防止形成环路。运行 STP 的交换机能够动态对先前阻塞的端口解除阻塞,以允许流量通过替代路径传输,从而抵消故障对网络的影响。
IEEE 802.1D STP 和 RSTP 使用生成树算法 (STA) 确定网络中的哪些交换机端口必须处于阻塞状态才能防止形成环路,STA 会将一台交换机指定为根网桥,确定根网桥后,STA会计算到根网桥的最佳距离。
根端口的选定:非根交换机将具有最低根路径开销的端口转换为根端口
根桥自动将其所有交换机端口配置为指定端口角色。拓扑中的其他交换机将自己的非根端口配置为指定端口或替代端口。

可以,发现三台交换机之间的链路有呈橘黄色,可以说明,此时的链路已经是处于一个闭塞状态
| S1 | VLAN 99 | 172.31.99.1 | 255.255.255.0 |
| S2 | VLAN 99 | 172.31.99.2 | 255.255.255.0 |
| S3 | VLAN 99 | 172.31.99.3 | 255.255.255.0 |
| PC1 | 172.31.10.1 | 255.255.255.0 | |
| PC2 | 172.31.20.1 | 255.255.255.0 | |
| PC3 | 172.31.30.1 | 255.255.255.0 |
| S1 F0/8 | VLAN 10 |
| S2 F0/16 | VLAN 20 |
| S3 F0/24 | VLAN 30 |
- Switch>enable
- Switch#configure
- Switch(config)#hostname S1
- S1(config)#vlan 10
- S1(config-vlan)#vlan 20
- S1(config-vlan)#vlan 30
- S1(config-vlan)#vlan 40
- S1(config-vlan)#vlan 50
- S1(config-vlan)#vlan 60
- S1(config-vlan)#vlan 70
- S1(config-vlan)#vlan 80
- S1(config-vlan)#vlan 99
- S1(config)#interface fastEthernet 0/8
- S1(config-if)#switchport mode access
- S1(config-if)#switchport access vlan 10
- S1(config)#interface vlan 99
- S1(config-if)#ip address 172.31.99.1 255.255.255.0
- Switch>enable
- Switch#configure
- Switch(config)#hostname S2
- S2(config)#vlan 10
- S2(config-vlan)#vlan 20
- S2(config-vlan)#vlan 30
- S2(config-vlan)#vlan 40
- S2(config-vlan)#vlan 50
- S2(config-vlan)#vlan 60
- S2(config-vlan)#vlan 70
- S2(config-vlan)#vlan 80
- S2(config-vlan)#vlan 99
- S2(config)#interface fastEthernet 0/16
- S2(config-if)#switchport mode access
- S2(config-if)#switchport access vlan 20
- S2(config)#interface vlan 99
- S2(config-if)#ip address 172.31.99.2 255.255.255.0
- Switch>en
- Switch#configure
- Switch(config)#hostname S3
- S3(config)#vlan 10
- S3(config-vlan)#vlan 20
- S3(config-vlan)#vlan 30
- S3(config-vlan)#vlan 40
- S3(config-vlan)#vlan 50
- S3(config-vlan)#vlan 60
- S3(config-vlan)#vlan 70
- S3(config-vlan)#vlan 80
- S3(config-vlan)#vlan 99
- S3(config)#interface fastEthernet 0/24
- S3(config-if)#switchport mode access
- S3(config-if)#switchport access vlan 30
- S3(config)#interface vlan 99
- S3(config-if)#ip address 172.31.99.3 255.255.255.0
- S1(config)#interface range fastEthernet 0/1-4
- S1(config-if-range)#switchport mode trunk
- S1(config-if-range)#switchport trunk native vlan 99
- S2(config)#interface range fastEthernet 0/1-4
- 2(config-if-range)#switchport mode trunk
- S2(config-if-range)#switchport trunk native vlan 99
- S3(config)#interface range fastEthernet 0/1-4
- S3(config-if-range)#switchport mode trunk
- S3(config-if-range)#switchport trunk native vlan 99
- S1(config)#spanning-tree mode pvst
- S1(config)#spanning-tree vlan 1,10,30,50,70 root primary
S2(config)#spanning-tree vlan 1,10,20,30,40,50,60,70,80,99 root secondary
S3(config)#spanning-tree vlan 20,40,60,80,99 root primary
配置 PortFast 和 BPDU 防护
- S1(config)#interface range f0/1-4
- S1(config-if-range)#spanning-tree portfast
- S1(config-if-range)#spanning-tree bpduguard enable
- S2(config)#interface range fastEthernet 0/1-4
- S2(config-if-range)#spanning-tree portfast
- S2(config-if-range)#spanning-tree bpduguard enable
- S3(config)#interface range f0/1-4
- S3(config-if-range)#spanning-tree portfast
- S3(config-if-range)#spanning-tree bpduguard enable
配置完后会发现交换机的端口全部宕掉了,这是由于配置的原因。正确的操作是:先关掉端口,在配置portfast。

解决:先关掉端口,在打开端口


与没有配置STP的时候相比,此时有明显的变化
