目录
1.1选举过程:根网桥 根端口 指定端口 非指定端口(阻塞端口)
STP(生成树协议)—在一个(二层)交换网络中,逻辑的去阻塞部分接口,形成从源到目标的唯一路径;当可用路径故障时,再打开部分的阻塞接口来继续网络通讯,实现链路备份;
生成树:在一个二层交换网络中,生成一颗树结构,逻辑的阻塞部分接口,使得从根到所有节点仅存在唯一路径;当最佳路径故障时,自动打开部分阻塞端口,来实现线路备份的作用;
生成树在生成过程中,应该尽量的生成一颗星型结构,且最短路径树;
802.1D PVST/PVST+(Cisco) RSTP(Cisco)/802.1W(公有) MST=802.1S
状态:down 侦听 学习 转发 阻塞
一、802.1D(一个交换网络内仅存在一颗生成树实例)
交换机之间使用BPDU—只有网桥可以发送,在交换网络初始状态时,所有交换机均定义本地为根网桥,进行BPDU的发送;使得网络中所有交换机均收到其他设备的BPDU,之后基于数据中的参数进行比对,选举出根网桥;之后所有非根网桥不再发送BPDU,而是仅接收和转发根网桥的BPDU;周期2s发送,hold time 20s;
TCN—拓扑变更消息(也是BPDU):本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为1回复,用于可靠传输消息;之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;使所有交换机临时将MAC表的老化时间修改为15s(默认的转发延时)
1.1选举过程:根网桥 根端口 指定端口 非指定端口(阻塞端口)
1、根网桥:在每一个生成树实例中,有且仅有一台交换机作为根网桥,负责发送BPDU,计算和指挥整个树的收敛来作为树形结构的根部,交换网络部分的中心节点;
整颗树形结构的中心,负责管理整颗树,周期发送BPDU;
对比BPDU中的桥ID;桥ID=网桥优先级+MAC地址(本地背板池)
交换机作为网桥设备时,关注终端设备发送的数据帧中的MAC地址,但交换机本地无MAC;
需要运行STP协议交换机,必须在出厂时由厂家进行MAC的写入—存储于交换机的背板地址池中
若交换的背板地址池中MAC地址为多个,将选择数值最小的地址来进行选举
先比较网桥的优先级(0-65535,默认32768),越小越优;若优先级一致,比较MAC地址,数值越小越好;
2、根端口:在每台非根网桥上有且仅有一个接口;本地离根网桥最近的接口;
负责周期接收来自根网桥的BPDU,同时用于转发用户的数据;不好阻塞
(1、比较从根网桥发出BPDU后,通过该接口进入交换机,最小的cost值;
(2、若本地多个接口,入向cost值一样,比较上级(上一跳)设备的BID,越小越优;
(3、若以上参数一致,比较上级(上一跳)的PID,越小越优;
若比较接口优先级,越小越优;若比较级相同,比较接口编号,越小越优;
PID port-id 接口优先级+接口编号 优先级0-255 默认128越小越优 编号越小越优;
10M=100 100M=19 1000M=4
10000M=2 大于10000M=1
3、指定端口:在每条STP链路上有且仅有一个接口;负责转发根网桥的BPDU;
同时转发用户数据,不会阻塞
所有根端口对端为指定端口,根网桥上所有端口为指定端口;
(1、比较转出根网桥BPDU最小cost值;出方向cost值;
(2、若出方向cost值相同,比较本地BID,越小越优;
(3、比较本地的PID,越小越优;
(4、本地PID相同---直接阻塞
4、非指定端口(阻塞端口)
以上所有角色选举完成后,剩下的接口逻辑堵塞,可以收到数据,只是不转发数据;
三层架构中,汇聚层(分布层)作为交换部分的流量中心,生成树的根网桥作为一棵树形结构的中心;要求:中心合一;
1.2 802.1D算法:
角色:根网桥 根端口 指定端口 非指定端口
状态:down 学习 侦听 阻塞 转发
1、所有接口down
2、所有接口进入侦听状态(15s)所有接口收发BPDU,选举各种角色;
根端口、指定端口→学习
非指定端口→阻塞
3、学习状态(15s)接口记录所有经过的数据帧源MAC地址,生成MAC表
4、学习结束后的接口进入转发状态
1.3 收敛时间:
1、初次收敛 30s
2、结构变化
存在直连检测:30s
没有直连检查:50s 20s hold time+30s收敛
直连检测:本地仅剩一个阻塞端口可以接收来自根网桥的BPDU
1.4 802.1D的缺点:
1、收敛慢
2、一棵树,链路利用率低
二、Cisco PVST——基于vlan的生成树
在交换网络中基于一个vlan一棵树;每个vlan的那棵树实施的时802.1D标准;
如何区别不同vlan的BPDU——网桥优先级/4094的余数为vlan id
人只能以4096的倍数修改优先级,设备自动添加vlan id到优先级中;
所以最终优先级÷4096,余数为设备添加的vlan id
可以将不同vlan的根网桥放置于不同的汇聚层设备,实现在不同vlan中阻塞不同的链路; 最终所有链路均被利用,互为备份,提高链路的利用率;
优点:分流,使用所有物理链路--提高利用率
缺点:1、收敛慢
2、树多 Cisco设备中存在一块独立的stp专用芯片
3、纯私有协议—仅支持ISL封装 ISL:Cisco专用的trunk上封装vlan id的标准,另一个标准802.1q
三、PVST+
在PVST的基础上进行了升级
1、部分的加速
2、兼容了802.1q
加速:
1)端口加速—用于连接终端的接口,不用收敛,直接转发
2)上行链路加速—在满足针对直接检测条件的接口上,直接进入转发状态,省30s; 只能在接入层交换上配置,自动调大本地网桥优先级和接口cost值——非根网桥
3)骨干加速—针对次优BPDU,所有交换机均可配置,省去在收到次优BPDU时消耗的20s hold time,30s的正常收敛不能省略
优点:利用率(一个vlan一棵树) 部分加速 兼容802.1q
缺点:1、树多 2、加速不够彻底
四、快速生成树
Cisco RSTP——基于PVST+ 升级 一个vlan一棵树 树多
公有802.1W——基于802.1D升级 一个交换网络一棵树 一棵树
4.1 加速(快速)的原理:
1、取消了计时器,而是在一个状态工作完成后,直接进入下一个状态;
2、分段式同步,两台设备间逐级收敛;使用请求和同意标记;依赖标记位的第1和第6位;
3、BPDU的保活为6s;hello time 2s;
4、将端口加速(边缘接口)、上行链路加速、骨干加速集成了;
5、兼容802.1D和PVST,但802.1D和PVST没有使用标记中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能加速;
当TCN消息出现时,不需要等待根网桥的BPDU,就可以刷新本地的CAM表;
切记:接口默认为半双工时,即便运行RSTP,依然基于慢速的802.1D算法来收敛;
[sw1]stp mode rstp
边缘接口---用于连接PC的接口,一旦被设定为边缘接口,将不再进行BPDU的发送,且不进行STP的收敛,直接为转发状态;但若该接口收到了对端的BPDU,将失去边缘特性,重新正常收敛;
[sw1]interface GigabitEthernet 0/0/1
[sw1-GigabitEthernet 0/0/1]stp edged-port enable 0s收敛
[sw1]stp prioriy? 修改网桥优先级
INTEGER<0-61440> Bridge priority,in steps of 4096
[sw1]stp root? 快速定义根网桥角色
primary Primary root switch
secondary Secondary root switch
[sw1-GigabitEthernet 0/0/1]stp port priority? 修改接口优先级
INTEGER<0-240> Port priority,in steps of 16
[sw1-GigabitEthernet 0/0/1]stp cost? 修改接口cost值
INTEGER<0-200000000> Port path cost
五、MSTP—基于组的生成树
以一个组为一棵树,将多个vlan放置于一个组内,基于每个组一颗生成树;
不同组间的BPDU中优先级=4096倍数+组号
MSTP—mst 使用优先级+组ID的数字来区分不同组的BPDU
[r1]stp mode mstp
默认存在组0,且所有vlan默认处于该组;优先级=32768+0
分组:
[sw1]stp enable
[sw1]stp region-configuration
[sw1-mst-region]region-name a 所有设备应在一个组
[sw1-mst-region]instance 1 vlan 1 to 5
[sw1-mst-region]instance 2 vlan 6 to 10
[sw1-mst-region]active region-configuration 激活当前配置(必须配置该指令)
切记:若将创建某个组,但该组内的vlan在本交换机上没有创建,同时没有为该vlan服务的接口,该组将没有任何信息;
整个交换网络在所有设备的分组信息必须完全一致
定义本地为组1的主根,组2的备份根
stp instance 1 root primary 优先级修改为0
stp instance 2 root secondary 优先级修改为4096
[sw1]stp instance 1 priority?
INTEGER<0-61440> Bridge priority, in steps of 4096
[sw1]interface GigabitEthernet0/0/1
[sw1-GigabitEthernet]stp instance 1 cost?
INTEGER<0-200000000>Port path cost
[sw1-GigabitEthernet0/0/1]stp instance 1 port priority?
INTEGER<0-240> Port priority, in steps of 16
桥:早期交换机一般只有二个转发端口,所以那个时候的交换机常常被称为“网桥”,后来“桥”这个术语一直沿用至今,但并不是指只有二个转发端口的交换机了,而是泛指任意多端口的交换机,目前“桥”和“交换机”这二个术语是可以混用的;
桥的MAC地址:我们知道一个桥有多个转发端口,每个端口都有一个MAC地址,通常,我们把端口编号最小的那个端口的MAC地址作为整个桥的MAC地址。
桥ID(BID):一个桥(交换机)的桥ID由二部分组成,即:桥优先级+桥的MAC地址;其中桥优先级的值可以人为设定,默认0x8000(相当于十进制32768),取值范围是0~65535.
端口ID(PID):一个桥(交换机)的某个端口ID由二部分组成,即:端口优先级+端口编号;端口优先级的值是可以人为设定的。不同厂商的设备对于二部分所占用的字节数可能有所不同 。