计算机网络 - 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)并观察收敛情况。

相关推荐
徐白117710 分钟前
Node.js 事件循环和线程池任务完整指南
开发语言·javascript·node.js
兮山与28 分钟前
数据结构4.0
java·开发语言·数据结构
~央千澈~1 小时前
域名与官网的迷思:数字身份认证的全球困境与实践解方-优雅草卓伊凡
开发语言·php
爱编程的鱼1 小时前
C# 多态性详解:从静态到动态的编程艺术
开发语言·c#
字节旅行者1 小时前
Matlab自学笔记
开发语言·笔记·matlab
关岭风尘3 小时前
Matlab/Simulink - BLDC直流无刷电机仿真基础教程(六) - 波形解析专题P1
开发语言·matlab·电机控制·simulink仿真·bldc仿真·电机续流·pid调节
景天科技苑8 小时前
【Rust通用集合类型】Rust向量Vector、String、HashMap原理解析与应用实战
开发语言·后端·rust·vector·hashmap·string·rust通用集合类型
阿沁QWQ9 小时前
友元函数和友元类
开发语言·c++
小黑随笔10 小时前
【Golang玩转本地大模型实战(一):ollma部署模型及流式调用】
开发语言·后端·golang
江沉晚呤时10 小时前
Redis缓存穿透、缓存击穿与缓存雪崩:如何在.NET Core中解决
java·开发语言·后端·算法·spring·排序算法