一,STP
STP定义:生成树协议(Spanning Treee Protocol)
作用:逻辑上断开环路,阻止广播风暴产生,当线路故障,阻塞接口被激活,恢复通信,起备份线路的作用
STP的工作过程:
1、确定交换机的角色
根交换机:整个交换网络中,有且只有一个;
非根交换机:剩余的其他交换机,都称之为非根交换机
注意:
每一个非根交换机都会计算出一条去往根交换机的最短的、无环、2层数据转发路径,并且最终该路径是“转发”状态;
选举原则:
比较每个交换机的 BID (bridge ID):优先级+MAC地址
优先级:默认值为 32768 ; 2个字节;
MAC地址:使用的是交换机的主板MAC;6个字节;
比较原则 -
首先比较优先级,越小越好;
其次比较MAC地址,越小越好;
2、确定端口的角色
根端口:在每一个非根交换机上,有且只有一个。 距离根交换机最近的端口;
指定端口:在每一个"网段/segment"中,有且只有一个;距离根交换机最近的端口;
非指定端口:其他所有端口,都叫做“非指定端口”
3、确定端口的状态
#down -关闭(指的是当前端口没有启动STP)
#listening -侦听,此时侦听的是网络中的所有的BPDU
目的是为了确定交换机和端口的角色;
端口在该状态停留15s
#learning -学习,该阶段主要是学习端口上收到的数据帧
的源MAC地址,从而形成 MAC地址表;
端口在该状态停留15s;
#forwarding -转发(最终状态),该状态实现数据包的发送和接收
#blocking -阻塞(最终状态),该状态不能发送和接收数据包;只能接收 BPDU。
二,BPDU
BPDU:桥协议数据单元(Bridge Protocol Data Unit)
使用的是(组播)发送BPDU
BPDU类型:
1、配置BPDU
用于创建和维护 STP 无环转发路径树
2、TCN BPDU (拓扑变更通告)
只有当 STP 无环转发路径树(拓扑)变化的时候,才会产生并发送
并且是:感知到该变化的交换机,产生 TCN BPDU ,只发送给根交换机,然后再由根交换机转发给其他的所有非根交换机;
BPDU包含的字段:
交换机端口的5种STP状态:
STP计时器:
#hell 交换机周期性发送 BPDU 的时间间隔,默认是 2s ;
#forward-delay : 转发延迟,默认时间为15s ;
#max-age:最大老化时间,默认时间为 20s ;
STP参数修改(思科):
1、修改交换机的 STP 优先级 (确保网络中有主根交换机和辅根交换机)
spanning-tree vlan x priority {value} , value 是4096的倍数
2、修改交换机的 STP 模式 (必须确保网络的所有交换机的STP模式相同)
spanning-tree mode {pvst | rapid-pvst | mstp }
3、修改交换机的 端口 cost
# interface fas0/22 (该链路指的是 trunk 链路)
# spanning-tree vlan 3 cost {value}
4、针对某个 VLAN ,关闭 STP 功能
# no spanning-tree vlan x
验证命令:
#show spanning-tree vlan x ->可以查看交换机上关于 VLAN x 的 STP 信息
show spanning-tree ->可以查看交换机上关于所有VLAN的 STP 信息
show spanning-tree summary ->可以查看交换机运行的 STP 的模式;
show version -> 可以查看交换机的 base mac ;
STP参数修改(华为):注意:交换机上的 STP 功能,默认都是开启的;可以人工关闭;
1 修改交换机的 STP 优先级:
[SW] stp priority {value} -> 必须得是4096的倍数
2修改交换机的 STP 模式
# [SW] stp mode {stp | rstp | mstp }
3修改交换机的端口的 STP cost :
# [SW]interface fas0/13
# [sw-fas0/13]stp cost {value}
4在交换机上关闭/开启 STP :
# [sw]stp disable -> 关闭 STP ;
#[sw]stp enable -> 开启 STP ,默认是开启的;
验证命令:
#display stp
#display stp brief
二,MSTP
MSTP:多实例生成树
是基于STP协议的增强性技术
(1)将二层交换设备上的端口绑定到不同的进程中,并以进程为单位进行STP协议计算
(2)不在同一进程的端口不参与计算,从而实现各个进程内的生成树计算独立、互补影响
(3)MSTP网络中包含一个或多个MST域(包含一个或多个MSTI)
MSTI(instance)即实例,是运行生成树协议的交换设备 可以关联多个VLAN
配置 MST region
#[SW]stp region-configuration
#[sw-mstp-region]region-name {string} //配置 region 的名字;
#[sw-mstp-region]instance {id} vlan x y z m n //配置关联的VLAN
#[sw-mstp-region]active region-configuration # [sw-mstp-region]display this
配置 MSTI
#[sw1]stp instance {id} priority {value} <-将 SW1设置为 实例id 的根;
验证命令:
#display stp instance {id} #display stp brief
注意:
默认情况下,所有的 VLAN 都是属于 instance 0 ; (系统的默认instance)
一个MSTP网络中,可以同时包含多个 region ;
每个MST Region 中,可以包含多个 instance (MSTI)
属于相同 region 的交换机上,以下参数必须相同:
#region-name
#实例与vlan的映射关系必须相同
属于同一个 region 中的多个交换机之间,可以基于 instance 进行流量的负载均衡和备份;
STP 收敛速度比较慢 :30-50s
RSTP收敛速度要比 STP 快,因为做了以下改进:
1、发现问题比较快
2、反应/传输问题比较快
发现拓扑变更的交换机,会产生TCN BPDU,直接发送给与自己相连
的其他所有交换机;
3、解决问题比较快
端口角色细化:
#根端口(root port ) #指定端口 (designated port ) #替代端口(alternative port ):是根端口的备胎;
#备份端口(bakcup port ):是指定端口的备胎
(边缘端口:一般都建议关闭 STP ;或者将连接非交换机的端口,设置非边缘端口)
端口状态精简化:
#learning :学习
#forwarding :转发
#discarding :丢弃,相当于之前 STP 中的 down / blocking / listening
原文地址:http://blog.51cto.com/13560878/2063501