STP 生成树协议
STP(Spanning Tree Protocol):生成树协议,用来提高网络链路的冗余,又可防止交换机环路(交换机默认是开启STP生成树协议)
STP协议算法原理:通过运行STP算法来阻塞特定的接口,实现链路冗余无环【根据STP算法原理,上图网络拓扑中SW1的G0/0/2口将会被阻塞】交换机每隔一段周期互发BPDU(Bridge Protocol Data Unit)报文来维护根桥,BPDU报文含有“桥优先级”和“桥MAC”
- 修改交换机STP的优先级,在需要设置为根桥的交换机上配置(在SW1上配置命令;使SW1成为根桥):
<sw3>system-view #进入系统视图 [sw3]stp priority 0 #将优先级改为最小值0, 注:优先级值必须是4096的倍数 查看STP根桥: <sw1>display stp -------[CIST Global Info][Mode MSTP]------- CIST Bridge :4096 .4c1f-cc70-7e80 Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 CIST Root/ERPC :4096 .4c1f-cc70-7e80 / 0 根桥设备ID CIST RegRoot/IRPC :4096 .4c1f-cc70-7e80 / 0 CIST RootPortId :0.0 BPDU-Protection :Disabled TC or TCN received :42 TC count per hello :0 STP Converge Mode :Normal Time since last TC :0 days 0h:25m:1s Number of TC :16 Last TC occurred :GigabitEthernet0/0/1 ----[Port25(GigabitEthernet0/0/1)][FORWARDING]---- Port Protocol :Enabled Port Role :Designated Port Port Priority :128 Port Cost(Dot1T ) :Config=auto / Active=20000 Designated Bridge/Port :4096.4c1f-cc70-7e80 / 128.25 Port Edged :Config=default / Active=disabled Point-to-point :Config=auto / Active=true Transit Limit :147 packets/hello-time Protection Type :Root
- 交换机端口由down到端口转发状态大概需要30s【状态由 Down----->Listening----->Learning----->Forwarding】
- 边缘端口:建议将连接PC的端口配置为边缘端口(减少接口收敛时间)
- 配置边缘端口:
<sw2>system-view #进入系统视图 [sw2]interface GigabitEthernet 0/0/3 #进入g/0/3接口视图 [sw2-GigabitEthernet0/0/3]stp edged-port enable #将接口配置为边缘端口,减少端口收敛时间
- 未配置边缘端口前:
- 将SW3的g/0/3接口配置为边缘端口后:
- STP根保护;建议到根桥的接口下配置【一旦开启根保护功能的指定端口收到优先级更低的BPDU时,端口状态将进入Discarding状态,在经过一段时间后,如果端口再没有收到优先级更低的BPDU时,端口会自动恢复到Forwarding状态】
<sw1>system-view #进入系统视图 [sw1]interface GigabitEthernet 0/0/1 #进入g0/0/1接口 [sw1-GigabitEthernet0/0/1]stp root-protection #开启根保护 [sw1-GigabitEthernet0/0/1]inter gig0/0/2 #进入g0/0/2接口 [sw1-GigabitEthernet0/0/2]stp root-protection #开启根保护 注:该指令只有在交换机指定端口下配置才生效
- STP BPDU防护:根保护【开启BPDU保护后,如果从边缘端口收到STP报文,交换机会自动将该接口shutdown,从而确保根桥不被抢占,同时确保不会环路】
<sw2>system-view #进入系统视图 [sw2]stp bpdu-protection #开启STP BPDU防护,该命令只对边缘端口生效 [sw2]error-down auto-recovery cause bpdu-protection interval 30 #因BPDU报文引起的端口shutdown,端口间隔30s后自动up
- 如果不希望SW1的G0/0/2接口被阻塞,而是希望SW1的G0/0/1口被阻塞那该怎么办呢?只能将G0/0/2接口的COST调小,使得从这个接口上收到的BPDU累加COST比G0/0/1口的累加值要小(端口COST默认值为20000),也就是使得这个接口距离根桥SW2的“开销”更小、“更近”
[sw1]interface GigabitEthernet 0/0/2 #进入g0/0/2接口 [sw3-GigabitEthernet0/0/2]stp cost 5000 #将COST改为5000,默认值为20000,数值越小越优先
- RSTP:rapaid STP 快速的生成树协议;STP协议升级版
[sw2]stp mode rstp #将STP模式切换为RSTP