简介
为了提高网络的可靠性,交换网络时通常会使用冗余电路。STP可以在提高可靠性的同时避免环路带来的各种问题。
二层交换网络
军事局域网等重要局域网基本都是环路,因为交换机之间多条互连可靠性更高一些,就算被端掉一两条也可以运行。
但,环路也会带来很多问题比如两大典型问题
广播风暴
原理:交换机的广播功能。两个方向同时发广播到处探测但没有回应,就会不停的跑不停运行,导致带宽上全是IP包,全是无效数据就会很麻烦。
MAX地址表震荡
同一交换机上不同端口接收到相同数据帧后会造成所学习的MAC表项不断更新。
于是,为解决问题一个伟大的协议诞生(stp)
思路:破环成树,该连接的组网部分依然相互连接以树的方式。
好处:消除环路,链路备份。
实现STP
一选举,二阻塞,三就生成了。
树根/根桥(基础):根网桥id,简称BID。根据id谁小谁老大的原则,最小的那个就做根桥(原理是桥的优先级)。桥mac地址通常是VLAN1的MAC地址。老大选完阻塞一个端口就行。
根端口选举:依据根路径开销(根据链路带宽规定,带宽越高,开销越小),对端BID,对端PID和本端PID。
指定端口:根桥上的所有端口都是指定端口,其他的端口中优先级一样BID小的端口时指定端口。
阻塞端口:非更非指定端口,正常走协议但不跑点对点通信等信息数据包。
这些我们可以人为配置,优先级可改,后面的编号一般不改,除非做攻击工作的时候去伪造也是可以做到。
BPDU报文
STP协议使用BPDU报文进行交互。内容有:
配置报文:STP通过在交换机之间传递配置BPDU来选举根交换机,并确定每台交换机端口角色和状态,配置BPDU中包含了发送者BID、路径开销、根桥BID和PID等参数,配置BPDU被封装在以太网数据帧部分。
拓扑变化通知报文(TCN BPDU):检测到拓扑变化,会生成一个描述拓扑变化的内容并从自己的根端口发送出去。
包含参数:桥ID,路径开销,端口ID,计时器(更好的去组织整体作业过程)
ps:端口状态可转换。
拓扑变化
根桥故障
非根桥会在故障后重新选举一个根桥。
直连链路故障
SWB检测到物理故障后,预备端口会转换成根端口顶上去,但预备端口会在30秒后恢复到转发状态(这个断的时间确实有点长了,但RSTP协议就进一步解决了这个问题)。
非直连链路故障(逻辑故障)
这其实不大影响,但是也会有一些响应,但这个响应动作是看协议怎么设计了。
MAC地址表错误
在它默认的这个老化时间(300秒)里,SWB无法将数据转发。