目录
STP生成树协议
路由器的转发依靠路由表,交换机的转发依靠mac地址表。
当路由器出现环路的时候有ttl值来进行防环。
二层环路出现的原因:
在实际中因为要实现备份,通常要将几台设备相互连接防止当一条线路出现问题时不会影响整个网络。但就在这个过程中往往就会出现几台交换机连成环的情况,此时就会造成环路。
二层环路引发的危害:
1.广播风暴:当交换机出现环路的时候就会一直进行下去,消耗链路资源。并且交换机存在泛洪机制,会出现两条环路(顺时针环路与逆时针环路)。危害极大,可能会使设备宕机。
2.mac地址表的翻转:
因为环路的存在会导致mac地址表的翻转,消耗设备的资源。假设pc1连接交换机的1口,因为存在环路该帧会从交换机的2口重新回到交换机。此时交换机会根据该帧原mac地址学习生成一条mac地址条目:pc1mac地址----2口 ,但之前存在pc1mac----1口。所以会覆盖原先的mac条目。因为存在两个循环所以就会导致mac地址表的翻转。
ps--------在实际中可以通过日志信息查看mac地址表的变化判断是否出环。
3.多帧复制
在环路的过程中会导致各种设备重复接收到该帧。
stp生成树防环的基本思路:
既然造成环路的原因时因为设备相互连接成环,那么我们可以将该环破掉就行了。所以stp生成树协议是在逻辑上将该环的某条线路切断(不是物理真实的切断,阻塞端口),此时就不会环路了。
stp生成树协议就是将该网络中的所有交换机生成一个树形结构,树形结构就不会出现环路。
在生成树之前首先要选取一台设备当树根。 实现从根交换机到所有节点的路径为最短且最优的没有一个环路的树形结构。当个别链路出现故障时,可以开启其他的阻塞端口形成备份链路。
802.1D生成树协议:
由此发明了一个协议:802.1D---STP----生成树(最原始的生成树协议,现在所有的生成树协议都是在该基础上进行改进的)
路由器之间会发送数据包进行沟通,同样在运行生成树时交换机之间也会也会进行沟通,交换机之间会发送:BPDU进行沟通。
BPDU分为两种:配置BPDU,TCN BPDU(该数据包是当交换机的top结构发生变化时才发送)。
配置BPDU的报文结构:
配置BPDU中某些字段的解析:
协议版本id:几种不同生成树协议的版本id
802.1D----0
802.1W-----2
802.1S-----3
FLAG---1字节--8位:在802.1D中只启用两位,最高位(TCA位)和最低位(TC位)。
------------该报文中最重要的4个参数:-------------
(1)根桥ID:在802.1D中,一个交换网络只生成一颗树,只有一个根,根网桥ID就是根的网桥的ID。
(2)根路径开销:RPC---表明的是发送配置BPDU的接口到根网桥的开销值。
(3)网桥ID:每一台交换机的标识。
共8个字节----前2个字节内容:优先级
优先级-----范围0-65535,初始默认值为32768
在前两个字节中前4位是优先级,后12位是扩展系统ID(802.1S),在前4位优先级中每一位值为4096。
所以在修改优先级时必须按照4096的倍数来进行修改。
后6个字节内容:mac地址----如果一台交换机只有一个mac地址那么就直接使用该mac地址作为网桥ID中的mac地址,但是如果一台设备存在多个mac地址则将选择数值最小的mac地址作为网桥ID中的mac地址。
(4)接口ID:---区分一台交换机的不同接口。
2个字节---前4位---代表优先级
每一位代表16,优先级的范围为0-240,修改优先级只能以16为单位进行修改。
后12位----厂商定义的接口表识。
消息寿命:每经过一次交换机的转发,数值加1,该数值存在最大值----20
配置BPDU的用法:
刚开始并不知道谁是根网桥,认为自己就是根网桥,所有的交换机都会互相发送配置BPDU。当比较后确定谁是根网桥时,此时只有根交换机会发送配置BPDU。根交换机会周期性的发送配置BPDU。其他的交换机只转发根交换机发送的配置BPDU。不过在发送的过程中配置BPDU中的个别内容会变化。
配置BPDU-----
只有根网桥可以发送,在交换网络初始状态,所有的交换机都认为自己时根网桥,之后相互发送配置BPDU,通过里面的参数进行角色选举。当选出根网桥后,所有的非根网桥将不再发送配置BPDU,仅仅接收并发送根网桥发送的配置BPDU,周期2s,max age20s。
TCN BPDU报文格式:
TCN BPDU----
本地链路发生故障时,stp重新收敛,为了加快刷新整个网络交换设备的mac地址表,将向stp接口发送TCN BPDU,邻居设备收到后将先回复TCA标记位置为1的配置BPDU进行确认,之后,将该 TCN BPDU逐级上报到根网桥处。根网桥收到后,再逐级下发TC位为1的配置BPDU。当交换设备收到TC位置为1的配置BPDU后,会临时将MAC地址表300s的老化时间修改为15s。加速mac地址表的老化,使交换设备重新学习正确的mac地址。
如下图所示: