生成树STP:
-
背 景:解决二层环路
-
二层环路:在以太网中自己发送,自己接收的报文
-
影 响:
-
不断产生大量无用的转发数据,占用网络资源
-
带来MAC表现振荡
-
二层流量转发错误
-
-
产生原因:从 源-->目的 有多条可达路径
-
工作原理:解决二层冗余路径(保证单条可达路径)
-
实 现:阻塞链路上的端口
-
设备分类:
-
根桥---->负责统一确定阻塞的具体链路端口
-
非根桥-->执行
-
-
选 举:选举BID
-
先比较STP优先级,值越小优先级越高(取值范围0~65535,默认值32768 ,修改值必须为4096的倍数)
-
优先级相同,比较MAC地址,值越小优先级越高
-
-
端口角色:
-
根端口 RP------->每一个非根桥上有且仅有一个,接收来自根桥方向的STP报文
-
指定端口 DP------->每条物理链路有且仅有一个 , 转发来自根桥方向的STP报文
-
预备端口 AP------->不是每一条链路都有
-
-
根端口选择: 选举-------BID、开销、端口号、优先级
-
先比较本设备到根桥设备的开销和---->根路径开销, 开销最小的端口是根端口
-
开销相同,就比较上接设备的BID,最小BID的对端端口成为根端口
-
比较端口PID ,拥有最小PID端口对应的本设备端口成为根端口
-
比较端口PID, 本设备上拥有最小PID的端口成为根端口
-
-
-
指定端口选择:
-
先比较本设备到根桥设备的开销---->根路径开销, 开销最小的端口是指定端口
-
开销相同,就比较设备的BID,最小BID的对端端口成为根端口
-
比较端口PID, 本设备上拥有最小PID的端口成为根端口
-
-
-
开销计算:S到D沿途接口出方向的开销值(源--->端口)
-
STP协议端口状态:描述STP协商的过程
-
disable-------------->端口未打开
-
blocking------------->只接收处理STP报文, 不转发stp报文,不处理业务流量
-
listening------------->接收并处理转发STP报文,不处理业务报文,不学习MAC地址开始协商STP
-
learning------------->STP协商已完成,开始学习MAC地址,接收并处理转发STP报文,不处理业务流量
-
forwarding---------->接收并处理STP报文,接收并处理转发业务流量
-
-
STP转发延迟:
-
默认为15秒
-
防止因设备性能不同导致各设备之间无法在同一时刻完成STP收敛,造成临时环路
-
从 listening----->learning 需要经历15s等待
-
从 learning----->forwarding 需要经历15等待
-
-
STP维护:
-
根桥两秒同步一次STP报文-->hello时间
-
非根桥在STP报文老化之前没有收到STP报文,会进行新一轮重新协商(选举)
-
老化时间:message + max-age
-
如果本设备与根桥直连,30s左右
-
如果本设备与根桥非直连,50s左右
-
TCN报文:拓扑改变通知
TCA置位的报文主要用于上游设备对TCN报文进行相应,上游设备收到TCN之后会继续转发TCN报文到
上游,直到根桥
根桥如果受大盘TCN报文会恢复TC置位的报文给下游,一直到产生TCN报文的设备,用于清空MAC地址表现,重新学习
-
-
STP协议的不足:
-
STP协议虽然能够解决环路问题,但是由于网络拓扑收敛慢,影响了用户通信质量。如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断,这是用户无法忍受的
-
STP没有细致区分接口状态和接口角色,不利于初学者学习及部署
-
网络协议的优劣往往取决于协议是否对各种情况加以细致区分
-
从用户角度来讲,Listening、Learning和Blocking状态并没有区别,都同样不转发用户流量
-
从使用和配置角度来讲,接口之间最本质的区别并不在于接口状态,而是在于接口扮演的角色
-
根接口和指定接口可以都处于Listening状态,也可能都处于Forwarding状态
-
STP算法是被动的算法,依赖定时器等待的方式判断拓扑变化,收敛速度慢
-
STP算法要求在稳定的拓扑中,根桥主动发出配置BPDU报文,而其他设备进行处理,传遍整个STP网络。这也是导致拓扑收敛慢的主要原因之一
-
RSTP协议
-
RSTP : 在STP基础上进行了优化,收敛时间,保证网络稳定
-
优化内容:
-
RSTP中采用所有设备都可以发送rstp协议报文用于网络收敛(STP只有根桥可以发送报文)
-
RSTP针对协议报文字段进行了修改
-
RSTP采用P/A协商机制,协商速度快
-
RSPT增加了设备端口角色、根端口、指定端口、预备端口、备份端口
-
RSTP减少了端口状态discarding 、learning 、forwarding
-
RSTP增加了快速收敛机制 根端口快速收敛
-
RSTP增加了保护机制 环路保护 根保护 TC保护 BPSU保护(边缘端口保护)
-
RSTP增加了边缘端口机制 连接中端的端口可设置为边缘端口,使中端快速接入网络
-
-
RSTP边缘端口:
-
一般配置在连接终端的端口,默认边缘端口不发送RSTP报文,但收到报文时还是会参与计算,配置了边缘端口的设备建议配置边缘端口保护功能,否则可能导致同时参与STP计算的端口太多,占用设备资源
-
-
RSTP保护功能:让RSTP网络更加稳定
-
根保护:
-
保证根桥不被抢占,应用在指定端口下
-
如果指定端口收到更优的RSTP报文,会将该端口变为阻塞状态,使设备不会处理该报文,避免根桥被抢占
-
-
环路保护:
-
保证网络不会出现临时环路,应用在根端口下
-
如果根端口因为网络拥塞长时间没有收到根桥发送的STP报文,设备会将根端口临时设置位拥塞端口,并临时打开网络中的阻塞端口,避免临时环路
-
-
边缘端口保护
-
默认情况下,边缘端口不会参与RSTP选举,但如果边缘端口收到STP报文,也会立即进入转发状态,实现快速收敛;同时也会参与STP选举
-
如果边缘端口同时参与STP选举的数量过多,会占用大量的设备资源,影响网络稳定性,在配有边缘端口保护的情况下,如果边缘端口再收到STP报文,会立即关闭该端口,保护网络稳定性
-
应用在配置边缘端口的设备上
-
-
TC保护:
-
STP设备如果收到TC置位的STP报文,会立即删除MAC表项,并重新学习
-
控制单位时间内设备能够处理TC置位的STP报文次数,默认2s处理一次,可修改
-
-
-
RSTP备份端口与预备端口的确定
-
设备端口收到更优的STP报文是从其他设备发送------------预备端口
-
设备端口收到更优的STP报文是从本设备发送来------------备份端口
-
配置代码
此时SW2为根桥
SW3的 0/0/24为根端口
SW4的 0/0/23为根端口
/SW1配置
interface Eth-Trunk 12 /链路聚合配置
trunkport GigabitEthernet 0/0/10
trunkport GigabitEthernet 0/0/11
quit
stp enable /生成树配置
stp mode stp /启动生成树协议,并指定工作模式
stp priority 4096 /给SW1设置优先级
interface GigabitEthernet 0/0/23 /进入对应的端口
stp root-protection /打开根端口保护功能
quit
interface GigabitEthernet 0/0/24 /进入对应端口
stp root-protection /打开根端口保护功能
quit
interface eth-trunk 12
stp loop-protection /根端口,打开端口环路保护功能
quit
/SW2配置
interface Eth-Trunk 12 /链路聚合配置
trunkport GigabitEthernet 0/0/10
trunkport GigabitEthernet 0/0/11
quit
stp enable
stp mode stp /启动生成树协议,并指定工作模式
stp priority 4096 /给SW2设置优先级
interface GigabitEthernet 0/0/23 /进入对应的端口
stp root-protection /打开根端口保护功能
quit
interface GigabitEthernet 0/0/24 /进入到对应的端口
stp root-protection /打开根端口保护功能
quit
interface eth-trunk 12
stp loop-protection /打开端口环路保护功能
quit
/SW3配置
stp enable /启动生成树协议
stp mode stp /指定工作模式
interface Gigabitether 0/0/23
stp instance 0 cost 400000001 /设置到根设备的路径开销
quit
stp edged-port default /将交换机所有端口设置为默认边缘端口
interface GigabitEthernet0/0/24 /进入到对应的端口
stp edged-port disable /关闭端口的边缘端口功能
quit
interface GigabitEthernet0/0/23 /进入到对应的端口
stp edged-port disable /关闭端口的边缘端口功能
quit
stp bpdu-protection /打开边缘端口保护功能
interface GigabitEthernet 0/0/24 /进入到对应的端口,该端口为根端口
stp loop-protection /打开端口环路保护功能
quit
/SW4配置
stp enable /启动协议
stp mode stp
interface Gigabitether 0/0/24
stp instance 0 cost 400000001 /设置路径开销,现在该端口为根端口
quit
stp edged-port default /将交换机的所有端口设置为边缘端口
interface GigabitEthernet0/0/24 /进入到对应的的端口
stp edged-port disable /关闭端口的边缘端口功能
quit
interface GigabitEthernet0/0/23
stp edged-port disable /关闭端口的边缘端口功能
quit
stp bpdu-protection /设置其他端口,打开边缘端口保护
interface GigabitEthernet 0/0/23
stp loop-protection /其为根端口,打开端口环路保护
quit