目录

1.STP概念

1.1  STP选举过程

1.1.1 根桥和根端口的选举

1.1.2 端口角色的选举

2.STP端口状态解释及转换

2.1 STP的五种端口状态

2.2 STP过程中的两种常见问题

3.STP的拓扑改变条件及流程

3.1 STP的拓扑改变流程

3.2 STP拓扑改变的条件

3. STP华为eNSP实验


1.STP概念

为了提高网络可靠性,交换网络中通常会使用冗余链路。然而。冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的 通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。

STP协议的原理:找到交换网络中的冗余链路,然后阻塞一端,避免环路。

STP协议的版本:IEEE 802.1D(STP)、IEEE 802.1W(RSTP-Rapid)、IEEE 802.1S(MSTP-Multiply  华为私有协议)

HUB网络就算存在冗余链路引也不会出现环路,因为HUB工作在物理层,工作模式为半双工。

1.1  STP选举过程

STP的选举过程:

1. 选举一个根桥        在一个交换网络中选举一个根桥,根桥是设备的概念。默认情况下所有设备都是根桥,通过交互BPDU包优选BID小的设备作为根桥,在STP根桥选举后只会由根桥每隔2秒发送一次BPDU包,其它的非根桥接收后转发。

2.每个非根交换机选举一个根端口         根桥选举后,交换网络中的其它设备都是非根桥,每个非根桥还需要选举一个到达根桥最短路径的端口成为根端口。注:非根桥只能由一个根端口

3.每个网段选举一个指定端口                 每条链路上还需要选举一个指定端口,默认情况下根桥的所有端口都是指定端口

4.阻塞非根,非指定端口                既不是根端口也不是指定端口的其它端口需要被阻塞。不能转发数据帧。

所有配置了STP协议的交换机都会发送BPDU(桥协议数据单元)报文,通过交互BPDU报文选举设备角色和端口角色。

BPDU包是通过组播的方式发送的。目的MAC地址:01-80-C2-00-00-00

STP BPDU包结构:

Protocol id=00(生成树协议)

Protocol Version= 00(STP)02(RSTP)03(MSTP)

BPDU Type = 00(Config BPDU)80(TCN BPDU)

BPDU Flags = TC(拓扑改变)TCA(拓扑改变确认)这些Flags只有在配置BPDU包中被置位

STP协议中包含一些重要的时间参数,这里举例说明如下:

Hello Time是指运行STP协议的设备发送配置BPDU的时间间隔,用于检测链路是否存在故障。交换机每隔Hello Time时间会向周围的交换机发送配置BPDU报文,以确认链路是否存在故障。当网络拓扑稳定后,该值只有在根桥行修改才有效。

Message Age:如果配置BPDU是根桥发出的,则Message Age为0.否则,Message Age是从根桥发送带当前桥接接收到BPDU的总时间,包括传输时延等。实际实现中,配置BPDU报文每经过一个交换机,Message Age增加1.

Max Age是指BPDU报文的老化时间,可在根桥上通过命令人为改动这个值。Max Age通过配置BPDU报文的传递,可以保证Max Age在整网中一直。非根桥设备收到配置BPDU报文后,会将报文中的Message Age和Max Age进行比较;如果Message Age小于Max Age,则该非根桥设备会继续转发配置BPDU报文。如果Message Age大于Max Age,则该设置BPDU报文会被老化掉。该非根桥设备将直接丢弃该配置BPDU,并认为Hi好网络直接过大,导致了根桥连接失败。

设备角色:根桥、非根桥

端口角色:根端口、指定端口、替代端口

1.1.1 根桥和根端口的选举

根桥的选举:

通过比较BID(桥ID)选举,优选BID小的。BID参数由两部分组成:优先级(默认值为32768)+MAC地址(交换机的背板MAC地址)

1.比较优先级,优先级越小越优

2.如果优先级一样,比较MAC地址,MAC地址越小越优

根端口的选举:

RPC(root path cost)RPC是BPDU包中的一个参数,用于标识发送BPDU包的交换机自己到达根桥的距离

本地端口的RPC(通过端口到根桥的距离)=本端口的PC+收到的BPDU报文中通告的RPC

PC(port cost)PC的计算是需要依据端口的带宽来计算的,目前计算PC的标准有三种:1.IEEE 802.1d

2.IEEE 802.1t    3.华为私有标准

1.1.2 端口角色的选举

STP端口角色的选举过程:

1.比较RID(根桥ID),优选小的

2.比较到达根桥的RPC(root path cost),越小越优

3.比较BPDU包发送者的BID,越小越优

4.比较BPDU包发送者的PID(Port ID(端口ID)),端口ID由两部分组成=端口优先级(默认为128,可以配置,配置时必须为16的整数倍)+端口ID 越小越优

5.比较BPDU包接收者的PID,越小越优

STP有几种端口角色:根端口(RP--Root Port),指定端口(DP --Define Port),替代端口(AP---Alternative Port)

2.STP端口状态解释及转换

2.1 STP的五种端口状态

STP中有几种端口状态:Disable(禁用)、Listening(监听)、学习(Learning)、转发(Forwarding)、阻塞(Blocking)

Disable(禁用):端口shutdown,端口Up后会从Disable转为Listening状态

Listening(监听):在该状态下可以发送和接收BPDU包,但是不能转发数据帧,用于选举设备角色和端口角色,该状态会维持一个,该状态会维持一个Forward Delay(15秒)的时间,超过该时间后会过渡到Learning状态

Learning(学习):在该状态下可以发送和接收BPDU包,可以接收但是不能转发数据帧,会学习源MAC地址用来构建MAC地址表,该状态会维持一个Forward Delay(15秒)的时间,超过该时间后会过渡到Forwarding状态

Forwarding(转发):在该状态下可以发送和接收BPDU包,同时也可以接收和转发数据帧。

Blocking(阻塞):在该状态下可以接收BPDU包,但是不能转发BPDU包和数据帧。

STP中根桥的选举依据的是桥ID,STP中的每个交换机都会有一个桥ID(Bridge ID)。桥ID由16位的的桥优先级(Bridge Priority)和48位的MAC地址构成。在STP网络中,桥优先级是可以配置的,取值范围是0~65535,默认值为32768.优先级最高的设备(桥ID最小)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。

交换机启动后就自动开始进行生成树收敛计算啊。默认情况下,所有交换机启动时都认为自己是根桥,自己的所有端口都为指定端口,这样的BPDU报文就可以通过所有端口转发。对端交换机收到BPDU报文后,会比较BPDU中的根桥ID和自己的桥ID,如果收到的BPDU报文中的桥ID优先级低,接收交换机会继续通告自己的配置BPDU报文给相邻交换机。如果收到的BPDU报文中的桥ID优先级高,则交换机会修改自己的BPDU报文的根桥ID地段,宣告新的根桥。

Disable->Listening->Blocking(AP)

Disable->Listening->Learning->Forwarding(RP/DP)

直接链路故障进入到转发状态需要的时间是30秒(两次转发延时)

间接链路故障进入到转发状态需要的时间是50秒(MAX  AGE+Forward delay×2)

2.2 STP过程中的两种常见问题

什么场景下STP的收敛时间是30秒?

1.直连故障

2.AP切换到RP

什么场景下STP收敛的时间是50秒?

1.非直连故障和单向链路故障

2.次优BPDU

3.STP的拓扑改变条件及流程

TCN BPDU包:拓扑改变通告

TCN BPDU包只能由非根桥发起,沿着根端口通告给根桥

TCA BPDU包:用于确认接收到的TCN BPDU包

TC BPDU包:只能由根桥发起,连续发送35秒(max age+forwarding delay)

接收到TC BPDU包后会将自己的MAC地址表老化时间设置为15秒,加速老化

3.1 STP的拓扑改变流程

STP的拓扑改变流程

1.如果非根桥上发生拓扑改变,向根端口发送TCN BPDU包,通告根桥拓扑已经变化

2.上联的非根桥从指定端口收到了TCN BPDU包后,会向发送者恢复TCA flag位置位的配置BPDU包,同时继续向根桥发送TCN BPDU包

3.根桥收到TCN BPDU包后,向发送者回复TCA flag位置位的配置BPDU包,同时向所有的指定端口发送TC flag置位的配置BPDU包,TC置位的配置BPDU包会持续发送35S(max age+forward delay),同时将自己的MAC地址表的老化时间设置为15S

4,其它非根桥收到TC置位的配置BPDU包后,将自己MAC地址表的老化时间设置为15S

3.2 STP拓扑改变的条件

STP中触发拓扑改变的条件:

1、一个端口从forwarding状态过渡到blocking或者disable状态

2、一个非根桥如果从指定端口接收到TCN BPDU,需要向根桥转发TCN BPDU

3、一个端口进入到forwarding状态,并且本地(交换机)已经存在一个指定端口

华为X7系列交换机支持三种生成树协议模式。

stp mode  {  mstp(多路生成树协议)  |  stp   |  rstp(快速生成树协议) }命令用来配置交换机的生成树协议模式。缺省情况下,华为X7系列交换机工作在MSTP模式。在使用STP前,STP模式必须重新配置。

STP  ,RSTP(Rapid Spanning Tree Protocol),华为私有协议

3. STP华为eNSP实验

STP实验:

拓扑图;

一:宣布根桥

二:查看根桥

三:修改STP模式为STP

 四:修改SW3的RPC值来完成端口角色的转换

通过display stp brief 命令查看各端口的角色,发现SW3与拓扑图不符

查看端口的PRC发现是默认的20000,所以需要修改g0/0/1口的PRC来实现角色的转换

五:查看修改效果

计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置相关推荐

  1. stp:spanning tree protocol 生成树基本原理

    作用:通过阻塞特定的接口实现冗余无环的网络. 注意:华为交换机默认开机就执行stp 协议. [ ]undo stp enable 关闭stp TTL:生存周期 三层防环 每过一个三层设备该数值会减1 ...

  2. 计算机网络应用层(二):DNS协议详解

    DNS协议详解 前言 DNS协议概述 DNS工作原理 DNS缓存 DNS记录和报文 资源记录 DNS报文 总结 前言 DNS是计算机网络中应用层的一个协议,可能很多同学碰到过DNS被劫持的情况,我们现 ...

  3. STP生成树协议详解

    目录 1. STP 1.1 背景 1.2 STP(生成树协议)802.1d 1.2.1 生成树形结构的过程 1.2.1.1 生成树树形结构形成过程: 1.2.1.2 根桥的选举规则 1.2.1.3 端 ...

  4. 计算机网络 | 传输层 :UDP与TCP协议详解

    传输层 UDP UDP的协议格式 UDP的特点 基于UDP的应用层知名协议 UDP如何实现可靠传输 TCP TCP的协议格式 TCP的特点 连接管理机制 三次握手 四次挥手 保活机制 问题补充 可靠传 ...

  5. 计算机网络——华为QINQ详解及其实验配置

    创作不易,记得点赞哦 QinQ协议在用户私网VLAN Tag之外封装公网VLAN Tag,在公网中报文只根据公网VLAN Tag传播.QinQ为用户提供一种较为简单的二层VPN隧道. 目录 一. QI ...

  6. MSTP和STP协议详解

    STP: STP - Spanning Tree Protocol(生成树协议) 1.逻辑上断开环路,防止广播风暴的产生 2.当线路故障时,阻塞接口被激活,恢复通信,起到备份作用 交换网络环路的产生: ...

  7. rstp协议和stp协议对比_Stp/Rstp协议详解

    STP协议 STP(IEEE 802.1D标准定义的)的主要任务是阻止在第2层网络(网桥或交换机)产生网络环路,它警惕的监视着网络中所有的链路,通过关闭任何冗余的接口来确保在网络中不会产生环路.STP ...

  8. Spanning Tree Protocol介绍

    Spanning Tree Protocol(STP)主要是用在网桥上,用来避免网络回路,并制造冗余连接(也就是保证网络的可靠性). 这里只是一个大概的介绍,具体的还是要去看IEEE 的 802.1D ...

  9. 【计算机网络】HTTPS 协议详解

    前言: 之前详细介绍了 HTTP 协议,在 HTTP 协议的基础上,本章详细介绍 HTTPS 协议的内容.如果对于 HTTP 协议有疑问的友友们,可以看看之前的文章<HTTP 协议详解>, ...

最新文章

  1. 设置Sysctl.conf用以提高Linux的性能(最完整的sysctl.conf优化方案)
  2. NK.bin和NK.nb0学习
  3. python合并两个有序列表_合并两个有序链表(Python3)
  4. mysql数据库blob换行_mysql Blob存取的一个简单例子
  5. 界面设计方法 (1) — 3. 字典功能的设计
  6. TortoiseSVN and TortoiseGit 版本控制图标不见了
  7. 程序逻辑的处理方式尽量不要写在SQL文中
  8. vmnet0 子网ip和子网掩码_IP地址知识介绍及子网划分与汇总
  9. 上网痕迹查询助手Viewurl 2017
  10. Python模块selenium实例:电影分类排名数据生成json,sqlite和excel(openpyxl)文件(一)
  11. python四分位数_四分位数计算以及使用pandas计算
  12. 华为云D-Plan解决方案为企业数智升级注入AI新动力
  13. Python---面向对象
  14. b B KB MB GB TB 之间的关系与换算
  15. 项目2-企业级电商平台的搭建--填坑过程
  16. Xgboost实践 | 第一名天池o2o优惠券的使用预测思路完整版
  17. 微信小程序_map组件实现定位
  18. CSR867x — 如何添加自定义AT Command
  19. 手机PDF转换器如何实现PPT转换PDF格式
  20. Oracle 表解锁

热门文章

  1. linux怎样重启php,Linux改动php.ini后如何重启php-fpm
  2. ie浏览器(ie11及以下)
  3. Android 下载不同版本的platform-tools
  4. 智慧城市的由来与发展现状
  5. 290. 单词规律。
  6. 十六进制转八进制代码心得
  7. mac Android Studio 环境搭建,flutter开发环境搭建,已经加快AS的编译速度(Android mac 系统配置)
  8. WPF学习笔记-单实例应用程序(包装器)
  9. android学习点缀
  10. vue 重置按钮功能实现