STP的接口状态:
禁用状态:
禁用状态下交换机的接口将不再产生和发送数据,而一般这个协议只存在两种情况:
①接口物理关闭
②接口禁用STP生成树协议
阻塞状态:
在STP生成树协议激活后接口,交换机将会进入的第一个状态。这个状态下交换机只能侦听BPDU,不能发生和转发STP数据帧,也不能进行MAC地址学习
在STP初始化阶段下,如果交换机没有接收到BPDU的信息发送,则接口将等待20s(最大寿命),然后进入下一个状态
侦听状态:
侦听状态下,交换机可以发送BPDU,但是不能转发数据,而这个状态就是STP生成树角色选举的状态,侦听状态停留15s
侦听状态不允许转发数据是因为避免在所以角色没有选举完成时,网络中出现临时环路,角色选举结束后,只有根端口和指定端口会进入到下一个状态(学习状态),非指定端口则将会退回到阻塞状态
学习状态:
在这个状态下交换机会学习之前侦听到的数据帧,并将学习到的地址记录在本地的Mac地址上,但是这个状态下不转发数据帧。学习状态持续时间为15s
增加了MAC地址表的学习时间,目的是为了防止未知单播的泛洪
转发状态:
这个状态下交换机将会正常接收和转发数据帧以及BPDU
802.1D收敛时间:
802.1D帧存在两种收敛时间:30s和50s
A,首次收敛时间是50s
20(初始化状态时间)+15(侦听时间)+15(学习时间)
B,拓扑结构变化:
①根网桥发生故障:50s
20(BPDU最大等待时间)+15(侦听时间)+15(学习时间)
②直连链路发生故障:30s
15(侦听时间)+15(学习时间)
抓包分析:
③非直连发生故障:50s
20(阻塞链路收不到BPDU信息老化时间)+15(侦听)+15(学习)
抓包分析:
802.1D的缺点:
①收敛速度慢
侦听,学习时间固定为15s,无法做到在收敛完成后就进入下一个状态
②链路利用率低
如果所有的VLAN的根都是同一个交换机上,那么很多的阻塞端口因为STP协议将一直被阻塞,无法通信使得网络链路利用率低
STP的配置:
①修改STP的工作模式,华为设备默认使用的是802.1S(MSTP)
[sw1]stp mode stp
②激活STP
[sw1]stp enable
//华为设备默认开启STP生成树
[sw6]display stp
//查看STP的选举信息
[sw1]display stp brief
//可以查看STP接口的角色和状态
[sw5]stp priority 28672
//修改BID中优先级的命令,优先级必须按照4096的倍数修改
!!!STP根网桥的选举是抢占模式的
[sw1-GigabitEthernet0/0/1]stp port priority ?
//接口修改PID中优先级的方式
INTEGER<0-240> Port priority, in steps of 16
[sw1-GigabitEthernet0/0/1]stp cost ?
// 修改接口的开销值
INTEGER<1-200000000> Port path cost
[sw1]stp root primary
// 将改交换机设置为根网桥,其实质是将BID的优先级修改为0.
[sw2]stp root secondary
//将改交换机设置为备份根网桥,其实质是将BID的优先级修改为4096
RSTP(快速生成树协议):
IEEE组织在802.1W中提出的快速生成树RSTP,主要解决的是802.1D收敛慢的问题,并没有解决链路利用率低的问题(还是一个交换网络一颗树,可以向下兼容802.1D)
RSTP改进点:
①更改端口的角色
在802.1D生成树协议中,存在3种端口角色:根端口(RP),指定端口(DP),非指定端口(NDP)
而802.1W生成树协议中,端口角色被重新划分为4类(将非指定端口划分为替代端口和备份端口):根端口,指定端口,替代端口(alternate),备份端口(Backup)
802.1W中,替代端口和备份端口实质都是需要被阻塞的端口(只是在链路发生故障后,担任的角色不一样)
替代端口:本地交换机通过学习根交换机发送的配置BPDU,而将自己的冗余线路的接口变成阻塞端口,它提供了从指定端口到根网桥的另一条路径,所以可以作为根端口的备份端口。当一个根端口失效时,则将最优的替代端口成为根端口,直接进入转发状态。
备份端口:由于学习到自己交换机发送的配置BPDU而变成阻塞端口。他们作为指定端口的备份,如果指定端口失效,则备份端口将直接替代指点端口,进入转发状态。
交换机下接集线器(拉两根线),此时STP会阻塞一个接口,在RSTP中,阻塞接口会被定义为备份接口
②修改接口了状态
在STP协议中,802.1D存在五种接口状态:禁用,阻塞,侦听,学习,转发
而在RSTP协议中,802.1W规定了三种接口状态:
丢弃状态(包含禁用,阻塞,侦听):不转发用户流量,且不学习MAC地址
学习状态:不转发用户流量,也可以学习MAC地址
转发状态:既可以转发用户流量,也可以学习MAC地址
相当于将STP的禁用,阻塞,侦听状态整合为一个状态
③对配置BPDU的报文内容进行了修改
802.1W使用的是RST BPDU数据包,而RST的数据包中含有P/A暂停等待机制(帮助完成快速收敛的重大举措)
RSTP生成树通过P/A机制来保证一个指定接口得以从丢弃状态快速进入转发状态,从而加速了生成树的收敛速度。在P/A机制中存在一个同步状态,实际上就是将本地全部接口设置为丢弃状态,防止环路产生
P/A机制:在收敛过程时,如果两个交换机之间因为选举而导致一方从指定端口变成替代/根端口,此时LSW1会发送BPDU数据包(将其中的Proposal置1)给LSW2,此时LSW2收到LSW1发送的包,会回复一个BPDU数据包(将其中的Agreement置1),然后LSW2会进入同步状态(这个时候,除了和LSW1通信的端口,其他的端口都会被设置为逻辑阻塞状态,目的:防止产生环路),在同步状态下LSW2会将接口转化为替代/根端口,转化完成后会将退出同步状态(此时接口重新工作)
④对配置BPDU的处理逻辑进行修改
a.在拓扑收敛完成后,配置BPDU不再是只有根网桥主动发送,而是所有非根网桥也会每隔2s发送一个配置BPDU(发送的内容还是根网桥的配置BPDU)
b.更短的超时时间
在802.1D中,如果在一个MAX AGE时间中,如果没有收到配置BPDU则会认为上行交换机失效,此时会重新收敛;而在802.1W中,一个接口在超时时间内(3个周期:6s)没有收到BPDU,则认为和邻居协商失败,此时重新收敛
⑤快速收敛机制:
a.根端口和指定端口的快速切换:利用的是替代端口(替代根端口)和备份端口(替代指定端口)
b.设置边缘接口:指的是交换机连接终端的接口,因为连接终端,下行接口不会出现环路,所以这些接口可以手工配置成边缘接口,一旦配置成边缘接口后会第一时间切换为转发状态(不参与STP选举)
因为边缘接口是人工选择配置,而为了避免人为失误,RSTP也存在保护机制:当一个边缘接口通过链路收到其他交换设备发送BPDU,则将立即切换为普通接口
c.引入P/A机制
⑥拓扑变更机制发送变化
在802.1D中,变更信息需要层层上报至根网桥处,再由根网桥下发变更通知(TC置1的BPDU)逐级扩散到整个交换网络,这样存在效率较低
而在802.1W中,变更通知将直接由变更点设备发出,直接泛洪到整个交换网络都收到网络拓扑发生变化的信息
MSTP多生成树协议:
MSTP多生成树协议:在一个三层网络中使用多颗树去管理网络中的VLAN(减少链路利用率低的问题,也可以做VLAN的冗余),而MPLS多生成树协议为了解决链路利用率低的问题,引入了新的概念instance 实例(实例可以理解为一个或多个的vlan的集合)
为了区分不同的instance,引入instance ID(由十二位二进制构成,但是实际取值单位为0-4094,根据vlan来划分)。华为设备中默认为instance 0,并且默认所有的Vlan都属于instance 0,之前的BID优先级中的12位扩展ID就是用来携带instance ID(用来区分不同的instance)
同样的,在MSTP引入域(region)概念(类似于OSPF中区域的概念),当一个交换网络过大时,可以将其分为多个MST域;如果网络规模较小时,也可以划分为一个MST域。
在三层交换中配置MSTP的域时,交换机之间需要保证三个参数必须相同:
①相同的域名(region name)
②相同的修订等级(revision level)
③相同的vlan和instance的映射关系
配置:
①配置VLAN
[sw1]vlan batch 2 to 10
②将端口划分到VLAN
[sw1]port-group group-member g0/0/1 g0/0/2 g0/0/3
[sw1-port-group] port default vlan 2
③配置干道的类型
[sw1]port-group group-member g0/0/1 g0/0/2 g0/0/3
[sw1-port-group]p l t
[sw1-port-group]p t a v a
[sw1-port-group]q
//配置为trunk干道,默认允许所有
④更改生成树模式并激活
[sw1]stp mode mstp
//华为设备默认使用MSTP
[sw1]stp enable
//激活STP生成树
⑤配置MST域并激活域
[sw1]stp region-configuration
//进入MST域配置页面
[sw1-mst-region]region-name lxb
//声明MST域的域名
[sw1-mst-region]revision-level 1
//声明MST域的修订等级
[sw1-mst-region]instance 1 vlan 1 to 6
//配置vlan和instance的映射关系
[sw1-mst-region]instance 2 vlan 7 to 10
//配置vlan和instance的映射关系
[sw1-mst-region]active region-configuration
//激活MST域的配置
//以上配置都需要在三层网络中所有的交换机中配置激活
⑥调整交换机的根优先级
[sw1]stp instance 1 root primary
//设置SW1为instance 1 的根端口
[sw1]stp instance 2 root secondary
//设置SW1为instance 2 的备份根端口
此时查看SW1的STP配置
RSTP数据包,此时会在STP数据包后加上MST帧
此时查看MST域内的信息