計算機網絡 - 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.pswp.cn/bicheng/80124.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80124.shtml
英文地址,請注明出處:http://en.pswp.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;自…