计算机网络 - stp生成树实验

【实验假设】

  • 我们使用 Cisco Packet Tracer 或类似的模拟软件,或物理的 Cisco 交换机。

  • 交换机初始为默认配置(或已通过 write erase 和 reload 清除配置)。

  • PC 已配置 IP 地址如下(示例):

    • PC0: 192.168.1.11 / 255.255.255.0

    • PC1: 192.168.1.22 / 255.255.255.0

    • PC2: 192.168.1.33 / 255.255.255.0

    • PC3: 192.168.1.44 / 255.255.255.0

【实验步骤】

第一部分:观察无生成树协议时的问题

  • 目标:理解在没有 STP 的冗余拓扑中出现的广播风暴、MAC 地址漂移和网络不稳定现象。

  1. 构建拓扑:

    • 在工作区放置四台 2960 交换机(或类似型号)。标记为 SW0, SW1, SW2, SW3。

    • 放置四台 PC。标记为 PC0, PC1, PC2, PC3。

    • 使用直通双绞线按照 OCR 第 1 页的图示连接设备:

      • PC0 -> SW0 (Fa0/1)

      • PC1 -> SW1 (Fa0/1)

      • PC2 -> SW2 (Fa0/1)

      • PC3 -> SW3 (Fa0/1)

      • SW0 (Fa0/24) <-> SW1 (Fa0/24)

      • SW0 (Fa0/22) <-> SW1 (Fa0/22)

      • SW0 (Fa0/23) <-> SW2 (Fa0/22)

      • SW1 (Fa0/23) <-> SW3 (Fa0/22)

      • SW2 (Fa0/24) <-> SW3 (Fa0/24)

      • SW2 (Fa0/23) <-> SW3 (Fa0/23)

    • (注意:请仔细检查您的连接是否与您使用的拓扑图完全一致,特别是 SW2 和 SW3 之间的连接。)

  2. 配置 PC IP 地址:

    • 点击 PC0 -> 桌面 (Desktop) 选项卡 -> IP 配置 (IP Configuration)。

    • 输入 IP 地址:192.168.1.11,子网掩码:255.255.255.0。

    • 对 PC1 (192.168.1.22), PC2 (192.168.1.33), PC3 (192.168.1.44) 重复此操作。

  3. 禁用生成树协议:

    • 点击 SW0 -> CLI 选项卡。

    • 输入以下命令:

            enable
      configure terminal
      no spanning-tree vlan 1  # 在 VLAN 1 上禁用 STP
      end
    • 在 SW1, SW2, 和 SW3 上重复这些命令。

    • (注意:STP 在 Cisco 交换机上通常默认启用。此步骤是为了观察目的确保它已关闭)。

  4. 测试连通性并观察问题:

    • 在 PC0 上,打开命令提示符 (Command Prompt)。

    • 启动到 PC2 的持续 ping:

            ping -t 192.168.1.33
    • 观察现象: 查看 ping 的结果。您很可能会看到:

      • 频繁或完全出现 Request timed out.(请求超时)。

      • 可能偶尔有零星的回复。

      • (在模拟器或物理设备上)观察交换机上的链路指示灯过度闪烁,表明存在广播风暴。如果可以检查交换机 CPU 利用率,会发现非常高。检查 MAC 地址表 (show mac address-table) - 你可能会看到同一个 MAC 地址在不同端口之间快速切换(MAC 地址漂移)。这证明了二层环路导致的不稳定性。

    • 观察到现象后,在 PC0 上按 Ctrl+C 停止 ping。

第二部分:配置和验证 STP (802.1D)

  • 目标:实施标准 STP 以防止环路,并观察其收敛过程。

  1. 启用 STP (802.1D 模式):

    • 在 SW0 -> CLI 选项卡:

            enable
      configure terminal
      spanning-tree mode pvst
      spanning-tree vlan 1       # 为 VLAN 1 启用/确保启用 STP
      end
    • 在 SW1, SW2, 和 SW3 上重复这些命令。

  2. 等待收敛: STP (802.1D) 需要时间(30-50秒)使端口经历 阻塞 -> 侦听 -> 学习 -> 转发 状态转换。等待大约 1 分钟。

  3. 验证 STP 状态:

    • 每台交换机 (SW0, SW1, SW2, SW3) 上运行命令:

            show spanning-tree vlan 1
    • 观察现象:

      • 识别根桥 (Root Bridge): 查找显示 “This bridge is the root” 的交换机。根据最低的 MAC 地址(来自 OCR 第 1 页:SW3 的 MAC 为 ...01E1),如果优先级都是默认值 (32768),SW3 应该是根桥。

      • 识别端口角色/状态: 在非根桥 (SW0, SW1, SW2) 上,识别 根端口 (Root Port - Root) - 到根桥路径开销最低的端口。识别 指定端口 (Designated Port - Desg) - 将流量转发到某个网段的端口。识别 阻塞端口 (Blocked Port - BLK) - 被 STP 逻辑关闭以防止环路的端口。注意 Cost(开销)和 Sts(状态:FWD, LIS, LRN, BLK)。每个环路中至少应有一个端口处于 BLK 状态。

      • 例如: 在 SW0 上,检查输出。将其与 OCR 第 1 页的输出进行比较(尽管那个显示的是 RSTP,但结构类似)。识别哪个端口是根端口、指定端口或阻塞端口。

  4. 测试连通性:

    • 在 PC0 上,打开命令提示符。

    • 启动到 PC2 的持续 ping:

            ping -t 192.168.1.33
    • 观察现象: Ping 现在应该是稳定的,有持续的回复。STP 已经创建了一个无环路的拓扑。

    • 按 Ctrl+C 停止 ping。

  5. (可选) 影响根桥选举:

    • 在 SW0 -> CLI 选项卡:

            configure terminal
      spanning-tree vlan 1 priority 4096  # 设置一个较低的优先级使 SW0 成为根桥
      end
    • 等待约 1 分钟收敛。

    • 在所有交换机上再次运行 show spanning-tree vlan 1。

    • 观察现象: SW0 现在应该报告 “This bridge is the root”。观察 SW1, SW2, SW3 上的根端口和阻塞端口是如何变化的。

    • 如果需要,重置 SW0 上的优先级:

            configure terminal
      no spanning-tree vlan 1 priority
      end

第三部分:配置和验证 RSTP (802.1W)

  • 目标:实施 RSTP 并观察其比 STP 更快的收敛速度。

  1. 启用 RSTP 模式:

    • 在 SW0 -> CLI 选项卡:

            enable
      configure terminal
      spanning-tree mode rapid-pvst # 设置模式为 RSTP (Cisco 常用 rapid-pvst)
      end

      (注意:rapid-pvst 是 Cisco 针对每个 VLAN 的快速 STP 实现。根据您的设备或实验指导,也可能使用 spanning-tree mode rstp 命令。)

    • 在 SW1, SW2, 和 SW3 上重复这些命令。

  2. 验证 RSTP 状态:

    • RSTP 收敛速度快得多(几秒钟内)。

    • 每台交换机上运行:

            show spanning-tree vlan 1
    • 观察现象:

      • 根桥应该和之前一样(除非更改了优先级,否则可能是 SW3)。

      • 注意端口角色:根端口 (Root Port - Root), 指定端口 (Designated Port - Desg), 替代端口 (Alternate Port - Altn), 备份端口 (Backup Port - Back)。替代端口提供了一条朝向根桥的备用路径(但不是根端口),是阻塞状态的一种。

      • 注意端口状态:FWD (转发), LRN (学习), DISC (丢弃)。阻塞/侦听状态合并为丢弃状态。

  3. 测试 RSTP 收敛(故障模拟):

    • 识别活动路径: 根据 show spanning-tree 输出(特别是 SW0 上的根端口),确定从 PC0 到 PC3 的当前活动路径。例如,如果 SW0 的 Fa0/22 是根端口,路径可能是 PC0 -> SW0 -> SW1 -> SW3 -> PC3 (需要检查 SW1 和 SW3 上的端口状态确认)。

    • 启动 Ping: 在 PC0 上,启动到 PC3 的持续 ping:

            ping -t 192.168.1.44

      等待稳定的回复。

    • 模拟链路故障: 在 SW0 -> CLI 选项卡 (假设 Fa0/22 是当前活动路径上的根端口):

            configure terminal
      interface FastEthernet0/22
      shutdown                   # 关闭端口模拟链路故障
      end
    • 观察收敛: 密切关注 PC0 上的 ping 输出。在回复恢复之前,你应该只看到很少(可能是 0-2 个)Request timed out. 消息。这证明了 RSTP 的快速收敛。

    • 验证新路径: 在 SW0 上再次运行 show spanning-tree vlan 1。Fa0/22 应该处于 DOWN(关闭)或 DISCARDING(丢弃)状态。另一个端口(例如 Fa0/23 或 Fa0/24)现在应该成为了根端口(状态变为 FWD)。检查其他交换机,看看角色可能发生了什么变化。

    • 恢复链路: 在 SW0 -> CLI 选项卡:

            configure terminal
      interface FastEthernet0/22
      no shutdown                # 重新启用端口
      end
    • 观察恢复: 观察 ping 输出。当原始路径被 RSTP 快速恢复时,回复应保持稳定或几乎立即恢复。使用 show spanning-tree vlan 1 验证 Fa0/22 是否回到了其原始角色(很可能是根端口,FWD 状态)。

    • (可选) 重复: 尝试关闭其他活动或备用链路(例如,如 OCR 第 3 页建议的在 SW0 上关闭 interface FastEthernet0/23 或 interface FastEthernet0/24)并观察收敛情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/80124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅析 Spring 中 FactoryBean 的实现与使用

浅析 Spring 中 FactoryBean 的实现与使用 一、FactoryBean核心机制剖析二、高级应用场景与实战三、框架级应用案例解析四、FactoryBean常见面试题 一、FactoryBean核心机制剖析 1. 本质与双重角色 FactoryBean是Spring容器中用于定制化对象创建的核心接口&#xff08;org.spri…

vue3 element-plus 输入框回车跳转页面问题处理

问题描述&#xff1a; 当页面搜索条件只有一个的情况下&#xff0c;输入框不管有没有值&#xff0c;回车后会跳转页面 解决办法&#xff0c;给表单添加 submit.prevent <el-form ref"ruleForm" :model"search" label-width"120px" class&qu…

(51单片机)LCD展示动画(延时函数)(LCD1602教程)

前言&#xff1a; 前面我们说过&#xff0c;之前LCD1602模块有点难&#xff0c;但是现在&#xff0c;我们通过几遍博客的学习&#xff0c;今天来讲一下LCD1602的原理 演示视频&#xff1a; LCD1602流动 源代码&#xff1a; main.c #include <STC89C5xRC.H> #include &q…

深入了解 OpenIddict:实现 OAuth 2.0 和 OpenID Connect 协议的 .NET 库

在现代 Web 开发中&#xff0c;身份验证和授权是安全性的重要组成部分。随着对安全性的要求不断增加&#xff0c;OAuth 2.0 和 OpenID Connect&#xff08;OIDC&#xff09;协议已经成为许多应用程序的标准身份验证方式。而 OpenIddict&#xff0c;作为一个用于实现 OAuth 2.0 …

【C++游戏引擎开发】第30篇:物理引擎(Bullet)—软体动力学系统

一、软体动力学理论体系 1.1 连续体力学基础 1.1.1 变形梯度张量 物体运动可描述为映射函数: x = ϕ ( X , t ) \mathbf{x} = \phi(\mathbf{X},t) x

Android Compose 层叠布局(ZStack、Surface)源码深度剖析(14)

Android Compose 层叠布局&#xff08;ZStack、Surface&#xff09;源码深度剖析 一、引言 在 Android 应用开发领域&#xff0c;用户界面&#xff08;UI&#xff09;的设计与实现一直是至关重要的环节。随着技术的不断演进&#xff0c;Android Compose 作为一种全新的声明式…

性能优化实践:内存优化技巧

性能优化实践&#xff1a;内存优化技巧 在Flutter应用开发中&#xff0c;内存优化是提升应用性能的关键环节之一。本文将从实战角度深入探讨Flutter内存优化的各种技巧&#xff0c;帮助你构建高性能的Flutter应用。 一、内存分析工具使用 1. DevTools内存分析器 启动DevTool…

2025-05-07 Unity 网络基础8——UDP同步异步通信

文章目录 1 UDP 概述1.1 通信流程1.2 TCP 与 UDP1.3 UDP 分包1.4 UDP 黏包 2 同步通信2.1 服务端2.2 客户端2.3 测试 3 异步通信3.1 Bgin / End 方法3.2 Async 方法 1 UDP 概述 1.1 通信流程 ​ 客户端和服务端的流程如下&#xff1a; 创建套接字 Socket。用 Bind() 方法将套…

如何减少锁竞争并细化锁粒度以提高 Rust 多线程程序的性能?

在并发编程中&#xff0c;锁&#xff08;Lock&#xff09;是一种常用的同步机制&#xff0c;用于保护共享数据免受多个线程同时访问造成的竞态条件&#xff08;Race Condition&#xff09;。然而&#xff0c;不合理的锁使用会导致严重的性能瓶颈&#xff0c;特别是在高并发场景…

AGV智能搬运机器人:富唯智能引领工业物流高效变革

在智能制造与工业4.0深度融合的今天&#xff0c;物流环节的高效与精准已成为企业核心竞争力的关键。富唯智能凭借其自主研发的AGV智能搬运机器人&#xff0c;以创新技术重塑工业物流标准&#xff0c;助力企业实现降本增效的跨越式发展。 一、技术突破&#xff1a;精准导航与智能…

K8s 资源分类

K8s 资源分类图谱 内置资源的分类 1、工作负载相关&#xff1a; Pod&#xff1a;最小的部署单元&#xff0c;包含一个或多个容器。 Deployment&#xff1a;管理无状态应用的副本和滚动更新。 StatefulSet&#xff1a;适用于有状态应用&#xff08;如数据库&#xff09;&#…

VLM-AD:通过视觉语言模型监督实现端到端自动驾驶

《VLM-AD: End-to-End Autonomous Driving through Vision-Language Model Supervision》2024年12月发表&#xff0c;来自Cruise和美国东北大学的论文。 人类驾驶员依靠常识推理来驾驭多样化和动态的现实世界场景。现有的端到端&#xff08;E2E&#xff09;自动驾驶&#xff0…

目标检测中的损失函数(三) | SIoU WIoUv1 WIoUv2 WIoUv3

&#x1f680;该系列将会持续整理和更新BBR相关的问题&#xff0c;如有错误和不足恳请大家指正&#xff0c;欢迎讨论&#xff01;&#xff01;&#xff01; SCYLLA-IoU&#xff08;SIoU&#xff09;来自挂在2022年arxiv上的文章&#xff1a;《SIoU Loss: More Powerful Learnin…

http Status 400 - Bbad request 网站网页经常报 HTTP 400 错误,清缓存后就好了的原因

目录 一、HTTP 400 错误的常见成因(一)问题 URL(二)缓存与 Cookie 异常(三)请求头信息错误(四)请求体数据格式不正确(五)文件尺寸超标(六)请求方法不当二、清缓存为何能奏效三、其他可以尝试的解决办法(一)重新检查 URL(二)暂时关闭浏览器插件(三)切换网络环…

【DeepMLF】具有可学习标记的多模态语言模型,用于情感分析中的深度融合

这是一篇我完全看不懂的论文,写的好晦涩,适合唬人,所以在方法部分我以大白话为主 abstract 在多模态情感分析(MSA)中,多模态融合已经得到了广泛的研究,但融合深度和多模态容量分配的作用还没有得到充分的研究。在这项工作中,我们将融合深度、可扩展性和专用多模容量作…

【ASP.net】在Windows 11上安装IIS并测试C# Web项目的踩坑实录

摘要 多年未接触.NET技术栈的田辛老师&#xff0c;最近因项目需求重新搭建测试环境。本文记录了Windows 11环境下安装IIS服务的全过程&#xff0c;以及一个让开发者抓狂的“空白页面”问题的解决方案。 1. 基础环境配置 工欲善其事&#xff0c;必先利其器。本次环境搭建选择…

【IP101】图像特征提取技术:从传统方法到深度学习的完整指南

&#x1f31f; 特征提取魔法指南 &#x1f3a8; 在图像处理的世界里&#xff0c;特征提取就像是寻找图像的"指纹"&#xff0c;让我们能够识别和理解图像的独特性。让我们一起来探索这些神奇的特征提取术吧&#xff01; &#x1f4da; 目录 基础概念 - 特征的"体…

HybridCLR 详解:Unity 全平台原生 C# 热更新方案

HybridCLR&#xff08;原 Huatuo&#xff09;是 Unity 平台革命性的热更新解决方案&#xff0c;它通过扩展 Unity 的 IL2CPP 运行时&#xff0c;实现了基于原生 C# 的完整热更新能力。下面从原理到实践全面解析这一技术。 一、核心原理剖析 1. 技术架构 原始 IL2CPP 流程&am…

机器学习——逻辑回归ROC练习

一、 题目要求&#xff1a; 给定以下二分类模型的预测结果&#xff0c;手动绘制ROC曲线并计算AUC值&#xff1a; y_true [0, 1, 0, 1, 0, 1] # 真实标签&#xff08;0负类&#xff0c;1正类&#xff09; y_score [0.2, 0.7, 0.3, 0.6, 0.1, 0.8] # 模型预测得分 代码展示…

Python项目源码69:Excel数据筛选器1.0(tkinter+sqlite3+pandas)

功能说明&#xff1a;以下是一个使用Tkinter和Pandas实现的完整示例&#xff0c;支持Excel数据读取、双表格展示和高级条件筛选功能&#xff1a; 1.文件操作&#xff1a;点击"打开文件"按钮选择Excel文件&#xff08;支持.xlsx和.xls格式&#xff09;&#xff0c;自…