STP生成树协议(这项技术在项目中很少使用,但还是值得学习)
STP主要是用做防止二层环路产生,同时当活动链路发生故障时,激活冗余链路,及时恢复网络的连通性的一项技术。
交换机环路会引起mac地址表动荡,比如电脑发送一个mac地址g0/0/3这时g0/0/3端口记录的就是该电脑的mac地址然后交换机广播转一圈回来,数据来到g0/0/2交换机就会重新绑定,将该mac地址绑定给g/0/0/2,导致mac地址表不稳定。
交换机开启时,每台交换机都会自认为是根端口,交换机会通过BID值来选举出根桥,BID的优先级可以自己修改,默认优先级是32768,BID 越小的就是根桥。
l
查看STP优先级。
根端口选举会根据通往根桥路径所需要的cost值来决定的,所需的cost值越小,则优先选为根端口
1.如果路径开销一样,则比较 BID,越小越优先,最后未被选上的端口进入阻塞状态。
stp的收敛速度是比较慢的,因为在listening到fowarding之间需要30妙。
BPDU又叫网桥协议单元,是交换机特有的一种数据包格式,这种数据包只有交换机才能处理,每两秒发一次。
根桥被选取出后,则只有根桥才发BPDU数据包,其余交换机只做转发,如果20。
端口5种状态
网桥或交换机的端口可能有5个状态:阻塞、侦听、学习、转发和禁用。他们之间的状态转换如图所示:
上图中,实线箭头表示端口的正常转换,虚线箭头表示由管理配置引起的改变。
交换机上的端口在启动stp协议后,端口存在的五种状态:
1、禁用(disabled) - 该端口只是相应网管消息,并且必须先转到阻塞状态。这种状态可以是由于端口的物理状(如端口物理层没有up)态导致的,也可能是管理员手工讲端口关闭。
2、 阻塞(blocking) - 处于这个状态的端口不能够参与转发数据报文,但可以接收BPDU配置消息,并交给CPU处理。不过不能发送配置BPDU消息,也不能进行地址学习。
3、监听(listening) - 处于这个状态的端口不参与数据转发,也不进行地址学习,但可以接收并发送BPDU配置消息。
4、学习(learning) - 处于这个状态的端口不能转发数据,但是开始地址学习,并可以接收、处理和发送BPDU配置消息。
5、转发(forwarding) -一旦端口进入该状态,就可以转发任何数据,同时也进行地址学习和BPDU配置消息的接收、处理和发送。
总结:
状态 | 功能 |
---|---|
禁用 | 不收发任何报文 |
阻塞 | 不接收或转发数据,接收但不发送BPDU,不进行地址学习 |
监听 | 不接收或转发数据,接收并发送BPDU,不进行地址学习 |
学习 | 不接收或转发数据,接收并发送BPDU,开始地址学习 |
转发 | 接收或转发数据,接收并发送BPDU,开始地址学习 |
BPDU是运行STP的交换机之间交换的消息帧。BPDU内包含了STP所需的路径和优先级信息,STP便利用这些信息来确定根桥以及到根桥的路径。
在初始化后,端口进入阻塞状态,此状态下不进行地址学习、数据转发或BPDU发送,但它会监控接收的BPDU并在它需要被包含在将到达的根网桥的路径中的情况下使端口转换到侦听状态。在侦听状态下,该端口允许发送和接收BPDU,但不进行地址学习或数据转发。经过一个典型的15秒转发延迟,端口就进入到学习状态中,这是它被允许执行数据转发以外的所有操作。要从学习状态进入到转发状态,端口还需要等待另一个转发延迟。
端口角色
STP端口角色: 4种
根端口,指定端口,替代端口,禁用端口
端口角色 | 位置 | 解释 |
---|---|---|
禁用端口 | 存在于非根网桥和根网桥上 | 生成树中不起作用的端口 |
根端口 | 存在于非根网桥上 | 非根交换机上距离根交换机最近的端口,根端口会将数据传送给根桥用于传输,是交换机端口去往跟桥的最佳路径。 |
指定端口 | 存在于非根网桥和根网桥上 | 对于根网桥来说,所有端口都为指定端口;对于非根网桥来说,指定端口根据需要与根交换机之间收发数据。 |
替代端口 | 存在于非根网桥上 | 用来提供替代去往根网桥路径的端口,即替换当前根端口,工作在稳定拓扑中为丢弃状态。 |
备份端口 | 存在于非根网桥上 | 充当指定交换机的那个网段提供一条备份链路,工作在稳定拓扑中为丢弃状态。 |