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

相关推荐
BingoGo1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1235 天前
matlab画图工具
开发语言·matlab
dustcell.5 天前
haproxy七层代理
java·开发语言·前端