STP(生成树)协议概念

1. 冗余备份的组网

1.1 冗余备份的思想

  • 链路冗余:双上行链路,当一条链路出现问题,数据转发会走另外一条链路
  • 设备冗余:当设备出现故障后,数据流量会走另外一台设备进行转发
  • 不足点:当我们关闭STP协议以后,冗余备份组网存在环路问题

2. 二层环路和三层环路概述

2.1 二层环路

  • 二层以太网中,并没有涉及防环字段,得靠STP技术防环。
  • 单链路可以解决环路,但是会使网络更加脆弱,容易出现链路和设备的单点故障。

2.2 三层环路

  • 在IP报文中有生存时间限制,TTL(time to live),范围为0-255。
  • 默认TTL非0,每经过一个三层设备,TTL值减一,当路由器收到TTL值为0的数据包的时候,会丢弃。

3. 二层环路引发的问题

  • MAC地址表的震荡
    • 数据成环以后,mac地址表不停更新
  • 二层网络出现广播风暴
    • 不处理广播包,直接广播
  • 主机容易受到重复的数据帧
  • 导致计算机CPU100%
    • 关闭STP以后,eNSP测试ping,PC直接CPU100%
      二层环路

4. STP技术的诞生和作用

  • 破除环路,拒绝单点故障,STP(生成树)协议
  • 作用:
    • 消除环路:通过阻断冗余链路来消除网络中可能存在的环路
    • 链路备份:当活动路径发生故障时,激活备份链路,及时回复网络连通性
  • 生成树协议
    • stp
    • rstp
    • mstp
  • 生成树中节点
    • 根桥
      • 根桥故障后,非根桥会在BPDU老化之后开始根桥的重新选举
      • 当故障根桥恢复以后,重新选举的根桥被撤销,根桥恢复(抢占)
    • 次根桥
    • 非根桥

5. STP技术的命令

stp mode {stp | rstp | mstp}	//三种模式选一种,默认是mstp
stp priority 4096	//设置优先级,越小优先级越高,默认是32768,<0-61440>,需要是4096的倍数
rtp root primary	//将设备优先级设置为0,制定交换机为根桥
stp root secondary //设备优先级为4096,制定交换机为次根桥
display stp brief	//展示当前的stp协议信息
stp enable	//启动生成树,默认开启
  • G0/0/3 :被堵塞
    g0/0/3被阻塞

6. BPDU报文的概述

6.1 定义

  • STP 的正常工作依赖于BPDU报文的泛洪(Bridge Protocol Data Unit,网桥协议数据单元)
    • 网络刚启动,所有设备都会发送BPDU报文
    • 当root选举产生,只有root才能发送BPDU报文
      BPDU报文原理

6.2 报表内容

  • 报表内容
    BPDU报表
  • 重点字段解析
    • Root Identifier(根的BID):根交换机的BID
    • Root Path Cost(RPC):设备到达root交换机的开销(入口开销之和)
    • Bridge Identifier(BID):发送设备的BID
    • Port Identifier(PID):发送设备的PID

6.3 字段解析

6.3.1 Bridge ID(BID)

桥ID(Bridge ID)是交换机的STP标识符,一共8个字节,由2个字节的优先级和6个字节的MAC地址构成

  • 桥优先级缺省为32768,可以手工修改
  • MAC地址为交换机背板MAC
  • 网络中的Bridge ID最小的交换机将成为根桥(先比较优先级,再比较MAC地址)
  • 优先级配置的时候,只能是4096的倍数(只能配置成:0,4096,8192)
  • 如果现网优先级都是一样的话,会比较MAC地址,越小越优先(不建议

6.3.2 路径开销(COST)

  • 路径开销和端口的带宽成反比
  • 华为设备支持的路由开销计算标准:802.1d-1998\802.1t及legacy,其中legacy是华为私有标准,华为交换机默认选择802.1t的标准。如千兆交换机的开销为2W,参考下图
    STP的路径开销和带宽关系
  • 开销计算:路径开销=入接口开销之和,默认数据从根桥出来的开销为0

6.3.3 端口ID(PVID)

  • 端口ID(2字节)=端口优先级(1字节)+端口编号(1字节)
  • 优先级缺省值为128,范围0-255,越小越优先,数值需是16的倍数
step port priority 0 	//接口模式下,更改优先级

7. STP选举的过程

7.1 选举过程

  1. 每个交换网络(广播域)选举一个根桥(Root Bridge)
    根据每台设备的优先级和mac地址进行比较,都是越小越好
  2. 每个非根桥上选举一个根端口(Root Port)
    RP端口是非根交换机到达ROOT最优路径(最近)的一个端口,每个非根设备上面有且仅有一个RP。
  3. 每个链路上选举一个指定端口(Designated Port)
    DP端口是用来发送BPDU报文的,root上面都是指定端口,用来发送BPDU报文给非根交换机
  4. 阻塞非指定端口(Non Designated Port)
    在STP里面对应的就是AP端口,除了DP,其他均是AP。优先级比较低的,为AP,被阻塞。

stp选举结果

7.2 选举过程详解

7.2.1 根桥选举

每个交换网络选举一个根交换机(Root Bridge)网络中Bridge ID最小的交换机作为根桥,设备的优先级越小,优先级越高。在每个交换网络中只有一个跟设备,其他均为非根设备。
只有root 交换机才能发送BPDU,非根交换机只会进行转发。

  1. 每台交换机启动STP后,都认为自己是根桥
  2. 所有端口都是DP(指定端口)
  3. 互相发送BPDU后,会比较优先级和MAC地址
  4. 优先级越小越好,MAC地址越小越好

7.2.2 根端口选举

  • RP端口在我们的非根交换机上选举
  • 非跟交换机上有且只有一个RP端口
  • RP端口是到达root交换机的最优路径

选举规则:

  1. 该端口到达root交换机的开销(入口开销之和),推荐这种方式选举RP端口
    计算该端口到root交换机的开销,选开销最小的。开销:考虑链路长度接口带宽
  2. 发送设备的BID
    端口进过转发,比较链路上面经过设备的优先级
  3. 对端设备的PID
    对比对端端口的端口优先级,然后再比较端口号(G0/0/1优先级高于G0/0/2)
  4. 自身的PID
    对比自己端口的端口优先级,然后再比较端口号(G0/0/1优先级高于G0/0/2)

7.2.3 指定端口的选举(DP)

  • 每个网段(链路)选举一个指定端口(DP)
  • root交换机的端口几乎都是DP端口
  • DP端口的作用是用来发送BPDU

选举规则:

  1. 该端口到达root交换机的开销(开销 = 入口开销之和),(一般不建议修改这一条)
  2. 发送设备的BID(一般建议修改这一条
  3. 对端设备的PID
  4. 自身的PID

7.2.4 AP端口(阻塞端口)

网络收敛后

  1. 只有指定端口和根端口可以转发数据
  2. 其他端口为预备端口,被阻塞,不能转发数据(不能发送BPDU,但是可以接受BPDU),只能从锁链万分段的指定交换机接受BPDU报文,并以此来见识链路的状态。

注意:AP端口是一个逻辑的阻塞端口,这个端口可以接受BPDU报文,但是不能发送BPDU报文,更加不能转发用户流量。

7.2.5 总结

端口角色描述
Root Port 根端口所在交换机上离根交换机最近的端口,处于转发状态 (Forwarding)
Designated Port 指定端口向非根交换机转发配置BPDU的端口,处于转发状态(Forwarding)
Alternate Port 预备端口预不向所连网段转发任何数据,处于阻塞状态(Blocking)

7.3 STP状态迁移

disable状态—block状态—listening(侦听)状态—learning(学习)状态—forwarding(转发)状态

  • Forwarding:转发状态。端口既可以转发用户流量也可以转发BPDU报文。
  • learning:学习状态。端口可根据收到的用户流量构建MAC地址表,但不能转发用户流量。增加learning状态是为了防止临时环路。
  • listening:侦听状态。端口可以转发BPDU报文,但不能转发用户流量。
  • blocking:阻塞状态。比如说AP端口
  • disable:禁用状态。表示还没有启动STP的状态

记住:

  1. RP、DP端口的最终状态是Forwarding状态
  2. AP端口的最终状态是Blocking状态
  3. Listening到learning需要15s,learning到forwarding需要15s,一共需要30s才能变成forwarding状态。
  4. 所以一个DP或RP端口,想要到达forwarding状态,至少需要30s

8. STP的计时器

hello 计时器:默认值是2s,用来发送BPDU的时间间隔(设备每2s发送一次BPDU)
max age时间:默认值是20s,设备在20s之内没有收到BPDU的话,会重新选举(超时重新选举)
FwDly(转发延迟):默认值是15s,就是用来解决临时环路的

注意:

  1. 需要修改以上时间,需要在 Root 设备上面修改,因为只有root交换机才会发送BPDU数据

9. STP的拓扑变化

9.1 ROOT设备故障

  • 非ROOT设备的重新收敛需要50s的时间(20s + 30s)
    • 20s 超时自动选举
    • 30s 端口起来

9.2 直连链路故障

  • SWA和SWB有两根物理线连接,其中SWB端实线为RP,虚线为AP,当RP接口链路故障时
    • SWB会将预备端口转换成根端口(AP---->RP)
    • SWB的预备端口会在30秒后恢复到转发状态(AP: blocking—>forwarding)
      STP直连故障
      注意:端口角色变化的秒变,时间几乎可以不计,但是端口状态变化需要延迟。

9.3 非直连故障

  • 非直连链路故障后,SWC的预备端口恢复到转发状态大约需要50秒
    • AP需要等待20s确认没有BPDU过来
    • AP端口转换后,需要等待状态起来

9.4 拓扑改变导致MAC地址表错误

  • 网络拓扑变化后,数据的发送会有问题。
  • MAC地址表项的默认老化时间是300s,但是端口状态的变化最多就50s,会导致端口状态变成forwarding以后,但是路由表还没更新,交换机不会将数据发送到切换过来的端口里面。
  • 所以路由表要及时更新。
  • 优化机制:
    • 当设备发现有个链路不通以后,会通过其他的接口发送TCN数据,对端设备收到TCN数据以后会回复一个TCA做确认
    • 这个TCN会随着链路一直发到Root交换机
    • root交换机收到TCN数据以后,回复TCA确认,确认完成以后,还会发送数据将TC置位(传播到整个网络),并且将所有交换机的路由表更新时间从300s–>15s,快速刷新。

10. STP的不足

网络的收敛比较慢(30s - 50s的收敛时间)

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值