生成树协议(STP)基本知识及实验(使用eNSP)
1、基本知识--摘至《网络之路--交换专题》
(1)生成树的作用:在链路层消除环路上可能出现的广播风暴。
(2)生成树的工作由三部分组成:选举过程、拓扑计算、端口行为确定。
选举过程:在二层网络中选举一个网桥作为根桥,用于指挥整网设备协同工作。根桥只是负责统一计算的规则。
根桥统一网络中所有网桥的行为准则的原理:通过在某个恰当位置阻塞端口来阻止环路的发生。从一台网桥的角度来说,它通过这样的法则进行判断,如果到达网络中的某一网桥只有一条路径,那么必定不存在环路;如果到达某一网桥的路径有两条或者多条,那么这两台网桥之间存在环路,只能保持一条通路。
(3)根桥的选举方式
根桥是通过网络中所有网桥间相互比较产生的。根桥只能由网络中桥ID最小者担当。一开始时把自己当作根桥,根桥ID就是自己的桥ID,然后通过BPDU和自己的邻居交换拓扑信息,如果邻居的根桥ID小于自己的桥ID,则把邻居当作自己的根桥,然后向其他邻居通告这个新的根桥信息,直到网络中所有网桥的根桥ID都一样时,根桥就被选举了出来。
桥ID有8个字节,由两部分组成,分别是2字节的桥优先级字段和6字节的桥MAC字段。桥优先级字段可手工设置,默认为0x8000;桥MAC即网桥的物理MAC。
(4)使网络中的网桥和根桥保持统一的方式
通过一个独特的消息机制实现,当根桥被选举出来后,根桥会周期性的向所有邻居发送BPDU报文,这个周期被称为Hello Time,默认设置为2s。邻居收到根桥发送来的BPDU时,会更新自己的状态和定时器,然后转发出去。在生成树协议中(STP)只有根桥有主动发送BPDU的权力。快速生成树协议(RSTP)中所有网桥都会按照Hello Time的时间间隔主动从指定端口发送BPDU。
生成树协议中的BPDU报文有两种,一个被称为配置BPDU(Configuration BPDU),一种被称为拓扑变化通知BPDU(Topology Change Notification BPDU 或叫 TCN BPDU)
配置BPDU报文格式如下:
端口ID占2个字节,和桥ID类似分为两个部分,前8bits为优先级,默认值为0x80,可手工修改,后8bits为端口号,由设备指定,保证每个端口都不一样。
TCN BPDU报文只有前三个字段,其中前两个字段和配置BPDU一样,BPDU Type字段的值为0x80。
Root Path Cost(根桥路径开销)代表了这个网桥到根桥的距离,对根桥而言,这个值被设置为0。当网桥收到一个BPDU,其中的根桥ID比自己当前的根桥ID小时,这个网桥会将BPDU中的Root Paath Cost加上接收到这个BPDU的端口的Cost值作为自己的Root Path Cost。
Message Age是用来衡量当前网桥所收到的BPDU在网络内传播时间的一个参数,根桥在构造发送BPDU的时候,会将这个字段设置为0,但下游网桥在传递从根桥发来的BPDU时,会在BPDU报文的Message Age字段中把这一跳转发过程中可能引入的时延上限加到里面。
Max Age是一个预先设定的值,这个值可以看作是一个门限,用来配合Message Age定时器。
Message Age和Max Age是生成树协议用于判断拓扑是否变化的重要指标。网桥在根端口上设置了一个定时器,如果通往根桥的路径完好,根端口会定时收到BPDU,并更新这个定时器。如果一直不能收到BPDU,每过1s定时器就自动加1,但这个定时器超过某一门限(Max Age)之后,网桥会认为原根端口通往根桥的路径已经出现了故障,拓扑发生了变化。
(5)连接到一个LAN的端口的优先级比较
每个网桥都各自存储着一套信息,包括当前的根桥ID、Root Path Cost和自己的桥ID,每个端口还存储着自己的端口ID。
当端口收到BPDU后,先判断根桥ID,如果相同继续比较根桥路径开销,再相同则比较桥ID,如果再相同,则比较端口ID。比较之后,比较失败的端口停止向LAN中转发BPDU。这样比较之后,最终获胜的端口成为这个LAN的指定端口。
在同一台网桥中,网桥会从在优先级比较中失败的端口中选择一个开销最小的端口作为自己的根端口,作为网桥通往根桥的唯一出口,其他端口成为Alternate端口进入Blocking状态,既不接收或转发数据报文,也不转发BPDU。根端口的选择方式是依次比较Root Path Cost(要先加上端口自身的cost)、桥ID和端口ID、本身的端口ID。
(6)生成树协议中端口的五种状态
分别为:Disable、Blocking、Listening、Learning、Forwarding。当端口没有连接上或被shutdown时,处于Disable状态,一旦up起来后就进入Blocking状态,如果没有收到优先级更高的BPDU或本身被网桥选举为根端口,会进入Listening状态,然后等待一个Forward Delay的时间,进入Learning状态,再等待一个Forward Delay的时间,如果端口没有因为新的选择过程而成为Alternate的话,进入Forwarding状态。
Blocking状态下的端口不会转发任何报文,或者学习MAC地址;端口在Listening状态时即不转发数据报文,也不会根据监听到的数据报文学习MAC地址; 在Learning状态时不转发数据报文,但会学习MAC地址;在Forwarding状态时即学习MAC,也转发数据报文。
端口状态 | 目的 | 说明 |
Forwarding | 端口既转发用户流量也处理BPDU报文 | 只有根端口或指定端口才能进入Forwarding状态 |
Learning | 设备会根据收到的用户流量构建MAC地址表,但不转发用户流量 | 过渡状态 |
Listening | 确认端口角色,将选举根桥、根端口和指定端口 | 指定端口 |
Blocking | 端口仅仅接收并处理BPDU,不转发用户流量 | 阻塞端口的最终状态 |
2、实验
参考链接:https://blog.csdn.net/flyfish5/article/details/50224537
实验拓扑结构如下:
下面进行简单的配置说明:
1.将LSW1、LSW2、LSW3、LSW4都设置为stp模式(默认为MSTP)
[Huawei]stp mode stp
2.使用display stp brief 命令查看每个网桥的端口模式
LSW1:
LSW2:
LSW3:
LSW4:
对以上几种接口角色进行一下简单的说明:有4种接口角色:
Root Port(ROOT):根端口,就是去往根桥路径开销最小的端口,该端口可以正常转发流量。
Designated Port(DESI):指定端口,就是负责转发BPDU报文的端口,根桥上的端口都是指定端口,该端口可以正常转发流量。
Alternate Port(ALTE):阻塞端口,就是禁止转发流量的端口。
Backup Port:暂时不清楚。
可以看出上面的拓扑中把LSW3当作了根桥。LWS1的根端口为Eth 0/0/3、LSW2的根端口为Eth 0/0/2、LSW4的根端口为Eth 0/0/2。
在LSW3的Eth 0/0/3端口抓取STP报文的格式如下:
生成树协议(STP)基本知识及实验(使用eNSP)的更多相关文章
- 第2层交换和生成树协议(STP)__第2层的3种交换功能
地址学习(Address Learning):第2层交换机和网桥能够记住在一个接口上所收到的每个帧的源设备硬件地址,而且它们会将这个硬件地址信息输入到被称为转发/过滤表的MAC数据库中. 转发/过滤决 ...
- 生成树协议stp
生成树协议应用的原因是从逻辑上阻塞交换机在物理上形成的环路.大家都知道交换机工作在二层,也就是数据链路层,根据mac地址识别主机,对三层网络无法识别,因此交换机不能隔离广播.但是在日常的工作中,为了达 ...
- 第2层交换和生成树协议(STP)__MAC地址表
1.MAC(Media Access Control, 介质访问控制)地址是识别LAN节点的标识.网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的 ...
- 第2层交换和生成树协议(STP)__散知识点
1.交换式服务 网桥是基于软件的,而交换机使用专用集成电路(ASIC)来创建并维护其过滤表.2层交换机和网桥转发数据的速度比路由器快一些,因为它们不查看网络层报头的信息,不对数据包做任何修改.相反,在 ...
- CISCO交换机STP实验(生成树协议)
目录 一.前言:生成树协议(STP) 二.CISCO交换机STP命令汇总 三.运用STP搭建简单拓扑 四.实战:STP综合实验 五.结语 一.前言:生成树协议(STP) 计算机网络中,我们为了减少网络 ...
- STP 生成树协议 RSTP 快速生成树
STP(Spanning Tree Protocol)是生成树协议的英文缩写 该协议可应用于在网络中建立树形拓扑,消除网络中的环路,并且可以通过一定的方法实现路径冗余,但不是一定可以实现路径冗余.生成 ...
- STP基本概念及实验
相关命令(华为交换机): stp enable(在交换机开启stp:stp使能) display stp 查看stp状态 stp mode stp/rstp/mstp 启用stp/rstp/mstp ...
- s4-7 生成树协议
Spanning Tree :为了可靠,采用冗余结构:但是透明网桥 会产生无休止循环的问题 冗余交换拓扑可能带来的问题 广播风暴 多帧传送 MAC地址库不稳定 生成树协议 STP:sp ...
- 生成树协议(STP)的精髓知识
STP生成树协议 1.STP介绍 2.STP生成树算法 1.STP - Spanning tree protocol (生成树协议)是逻辑上断开环路,防止广播风暴的产生.当线路故障,阻塞接口 ...
- Huawei-R&S-网络工程师实验笔记20190607-STP生成树协议(基本配置、桥优先级、根桥选举、根端口、路径开销、边缘端口)
>Huawei-R&S-网络工程师实验笔记20190607-STP生成树协议(基本配置.桥优先级.根桥选举.根端口.路径开销.边缘端口) >>实验开始,先上拓扑图参考: &l ...
随机推荐
- lattice crosslink开发板mipi核心板csi测试dsi屏lif md6000 fpga 常见问题解答
1. 概述 CrossLink开发板,是用Lattice的芯片CrossLink 家族系列的,LIF-MD6000-6JM80I.该芯片用于桥接视频接口功能,自带2路MIPI硬核的功能,4 LANE ...
- 妙用 drop-shadow 实现线条光影效果
本文将介绍一种利用 CSS 滤镜 filter 的 drop-shadow(),实现对 HTML 元素及 SVG 元素的部分添加阴影效果,以实现一种酷炫的光影效果,用于各种不同的场景之中.通过本文,你 ...
- 力扣570(MySQL)-至少有5名直接下属的经理(简单)
题目: Employee 表包含所有员工和他们的经理.每个员工都有一个 Id,并且还有一列是经理的 Id. 给定 Employee 表,请编写一个SQL查询来查找至少有5名直接下属的经理.对于上表,您 ...
- 力扣657(java & python)-机器人能否返回原点(简单)
题目: 在二维平面上,有一个机器人从原点 (0, 0) 开始.给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束. 移动顺序由字符串 moves 表示.字符 move[i] 表示 ...
- 力扣388(java)-文件的最长绝对路径(中等)
题目: 假设有一个同时存储文件和目录的文件系统.下图展示了文件系统的一个示例: 这里将 dir 作为根目录中的唯一目录.dir 包含两个子目录 subdir1 和 subdir2 .subdir1 包 ...
- 力扣171(java)-Excel表列序号(简单)
题目: 给你一个字符串 columnTitle ,表示 Excel 表格中的列名称.返回 该列名称对应的列序号 . 例如: A -> 1B -> 2C -> 3...Z -> ...
- 深入理解C++中的RVO
前言 考虑存在这样一个类如HeavyObject,其拷贝赋值操作比较耗时,通常你在使用函数返回这个类的一个对象时会习惯使用哪一种方式?或者会根据具体场景选择某一种方式? // style 1 Heav ...
- 基于 KubeVela 的机器学习实践
简介:本文主要介绍如何使用 KubeVela 的 AI 插件,来帮助工程师更便捷地完成模型训练及模型服务. 作者:KubeVela 社区 在机器学习浪潮迸发的当下,AI 工程师除了需要训练.调试自己 ...
- [Go] golang 替换组件包 更新 go.mod, go.sum 的方式
当我们不再使用某个包,或者包名变更时,是如何保证 go.mod 更新的. 只要代码中没有地方 import 使用到某个包了,我们运行: $ go mod tidy module 管理器会帮我们自动清理 ...
- dotnet 8 破坏性改动 在 AssemblyInformationalVersionAttribute 添加上 git 的 commit 号
我在一个 WPF 项目里面,在界面显示应用的版本号,更新到 dotnet 8 的 SDK 之后,发现我的界面布局损坏了.本质上这个破坏性改动和 WPF 没有什么关系,是 dotnet 的 SDK 或编 ...