一、STP概述
1.交换网络环路的产生
- 广播风暴的形成
- 多帧复制
- MAC地址表紊乱
2.STP简介
STP–Spanning Tree Protocol(生成树协议)
- 逻辑上断开环路,防止广播风暴的产生
- 当线路故障,阻塞接口被激活,恢复通信,起备份线路的作用
二、STP工作原理
1.生成树算法
1)生成树算法
生成树算法的过程可以将其归纳为以下三个步骤:选择根网桥、选择根端口、选择指定端口
(1)选择根网桥(Root Bridge)
选择根网桥的依据是网桥ID,网桥ID是一个8字节的字段,前两字节的十进制数称为网桥优先级,后六字节是网桥的MAC地址。
网桥ID是唯一的,取值范围为 0 ~ 65535,缺省值(默认值)是32768。
按照生成树算法的定义,比较某个STP参数的两个取值时,值小的优先级高。所以,在选择根网桥的时候,比较的方法是看哪台交换机的网桥ID值最小,优先级的被选择为根网桥;在优先级相同的情况下,MAC地址小的为根网桥。
(2)选择根端口(Root Ports)
选出了根网桥之后,网络中的每台交换机必须和根网桥建立某种关联,所以得选择根端口。根端口存在于非根网桥上,需要在每个非根网桥上选择一个根端口。
选择根端口时,依据的顺序如下:
1.到根网桥最低的根路径成本
2.直连的网桥ID最小
3.端口ID最小
根路径成本是两个网桥间的路径上所有路线的成本之和。
宽带与路径成本的关系:
链路宽带/(Mb/s) | 路径成本 |
---|---|
10 | 100 |
16 | 62 |
45 | 39 |
100 | 19 |
155 | 14 |
622 | 6 |
1000 | 4 |
10000 | 2 |
端口ID是一个2字节的STP参数,由1字节的端口优先级和1字节的端口编号组成。
取值范围是0~255,缺省值(默认值)是128。
(3)选择指定端口(Designated Ports)
为了消除环路形成的可能,STP进行最后的计算,在每个网段上会指定出一个指定端口,依据有三:
- 1)根路径成本较低的
- 2)所在的交换机网桥ID值小的
- 3)端口ID小的
2.BPDU(桥协议数据单元)
BPDU(Bridge Protocol Unit) – 桥协议数据单元
使用组播发送BPDU
BPDU类型
配置BPDU - 用于生成树计算
拓扑变更通告(Topology Change Notification ,TCN)BPDU - 用于通告网络拓扑的变化
BPDU报文字段
BPDU中包含根网桥ID、根路径成本、发送网桥ID、端口ID和计时器等。
STP利用BPDU选择根网桥的过程
1)当交换机启动时,假定自己是根网桥,在向外发送的BPDU中根网桥ID字段填写自己的网桥ID。
2)当接收到其他交换机发出的BPDU后,比较网桥ID,选择较小的添加到根网桥ID中。
3.STP的收敛
1、生成树端口的状态
状态 | 用途 |
---|---|
转发(Forwarding) | 发送/接收用户数据 |
学习(Learing) | 构建网桥表 |
侦听(Listening) | 构建“活动”拓扑 |
阻塞(Blocking) | 只接收BPDU |
禁用(Disabled) | 强制关闭 |
如果一个端口允许转发数据,它首先从Disabled状态开始,经过几个被动状态最后进入Active(活动)状态。
2、生成树计时器
- Hello时间:网桥发送配置BPDU报文之间 的时间间隔。IEEE802.1d标准规定的默认访问时间为2s。
- 转发延时:一个交换机端口在Listening(侦听)和Learning(学习)状态所花费的时间间隔,默认值各为15s。
- 最大老化时间:交换机在丢弃BPDU报文之前存储的最大时间。最大老化时间的默认值是20s。
侦听和学习都是生成树所实施的过渡状态,用来强迫端口等待来自其他交换机上的所有BPDU。经典端口过度如下:(1)从阻塞到侦听(20s)。(2)从侦听到学习(15s)。(3)从学习到转发(15s)。
三、STP的应用
1、VLAN与STP的关系
IEEE通用生成树(CST)不考虑VLAN
PVST(Cisco私有)为每一个VLAN构造一个生成树实例
STP:多生成树协议——可为每个vlan或者多个vlan为一组,构造一个生成树,实现网络的负载分担(均衡)
2、MSTP的配置
将SW1、SW2分别做vlan10、vlan20的根网桥
[SW1]stp mode mstp //将交换机配置成MSTP模式, MSTP兼容STP/RSTP。
[SW1]stp region-configuration //进入MSTP域视图MSTP配置模式
[SW1-mst-region]region-name huaweil //配置MSTP域的域名为huaweil,缺省为交换设备主控板上管理网口的MAC地址
[SW1-mst-reqion]revision-level 1 //配置MST域的MSTP修订级别为1,缺省情况下MSTP域的MSTP修订级别为0,需要将各设备的MSTP修订级别修改为一致
//配置多生成树实例和VLAN的映射关系,同一vlan的数据只能对应一个实例,而一个实例可以对应多个vlan (instance 1 vlan 2 to10)
[SW1-mst-region]instance 1 vlan 10 //将vlan 10加入实例1中
[SW1-mst-region]instance 2 vlan 20 //将vlan 20加入实例2中
[SW1-mst-region]check region-confiquration //查看MSTP域配置参数
[SW1-mst-region]active region-configuration //激活MSTP域的配置(必须配置)
[SW1-mst-region]quit //退出配置模式
[SW1]stp instance 1 root primary //配置此交换机为实例1的主根桥
[SW1]stp instance 2 root secondary //配置此交换机为实例2的备份根桥
[SW2]stp mode mstp
[SW2]stp reqion-confiquration
[SW2-mst-reqion] reqion-name huaweil
[SW2-mst-region] revision-level 1
[SW2-mst-reqion]instance 1 vlan 10
[SW2-mst-reqion]instance 2 vlan 20
[SW2-mst-reqion]active reqion-confiquration
[SW2-mst-reqion]quit
[SW2]stp instance 1 root secondary //井配置SW1交换机为实例1的备份根桥
[SW2]stp instance 2 root primary //配置SW2交换机为实例2的主根桥
[SW3] stp mode mstp
[SW3]stp region-configuration
[SW3-mst-region]region-name huaweil
[SW3-mst-reqion] revision-level 1
[SW3-mst-region]instance 1 vlan 10
[SW3-mst-region]instance 2 vlan 20
[SW3-mst-reqion]active reqion-confiquration
[SW1]stp enable //在所有交换机上启用MSTP
[SW2]stp enable
[SW3]stp enable
[SW3]dis stp brief //查看STP接口角色及状态信息
修改交换机优先级值
[SW1]stp priorityo ##数值要为4096的倍数
[SW1]stp root primary ###优先级变为0
[SW1]dis stp ###查看stp信息,可以确定哪个是根网桥