目錄
一、前言:生成樹協議(STP)
計算機網路中,我們為了減少網路故障導致無法正常通訊的問題,通常會增加冗餘裝置作為備用,形成冗餘拓撲。但是也增加了冗餘鏈路,這樣卻會引起交換環路,造成通訊訊息迴圈傳送。交換環路會帶來三個問題:廣播風暴、同一幀的多個拷貝、交換機 CAM 表不穩定。
所以,STP(生成樹協議,Spanning Tree Protocol)就是解決冗餘拓撲出現的問題。STP 基本思路是阻斷一些交換機介面,構建一棵沒有環路的轉發樹,讓具有冗餘結構的網路在故障時自動調整網路的資料轉發路徑。STP 利用 BPDU(Bridge Protocol Data Unit)和其他交換機進行通訊,從而確定哪個交換機該阻斷哪個介面。
為了在網路中形成一個沒有環路的拓撲,網路中的交換機要進行以下三個步驟,BPDU 中的幾個關鍵欄位:選舉根橋、選取根口、選取指定口。這些步驟中,作為根橋的交換機取決於以下因素(按順序進行):
(1) 最低的根橋 ID;
(2) 最低的根路徑代價;
(3) 最低傳送者橋 ID;
(4) 最低傳送者埠 ID。
現在瞭解基本的STP知識之後,下面將開始通過實驗感受STP的實際應用場景。
軟體平臺:Cisco Packet Tracer
綜合實踐題目:STP.pka已經上傳到CSDN,可下載實踐練習。
二、CISCO交換機STP命令彙總
命令 | 作用 |
show spanning-tree | 檢視 STP 樹資訊 |
spanning-tree vlan 1 priority 4096 | 配置 VLAN1 的橋優先順序 |
spanning-tree portfast | 配置介面為 portfast,當有裝置接入時立即進入轉發狀態 |
spanning-tree uplinkfast | 配置 uplinkfast 特性 |
spanning-tree backbonefast | 配置 backbonefast 特性 |
spanning-tree mode rapid-pvst | 把 STP 的執行模式設為 RSTP+PVST |
spanning-tree link-type point-to-point | 把介面的鏈路型別改為點對點 |
spanning-tree mode mst | 把生成樹的模式改為 MST |
spanning-tree mst configuration | 進入 MST 的配置模式 |
name TEST-MST | 命名 MST 的名字 |
revision 1 | 配置 MST 的 revision 號 |
instance 1 vlan 1-2 | 把 VLAN 1 和 VLAN 2 的生成樹對映到例項 1 |
spanning-tree guard root | 在介面上配置 root guard 特性 |
spanning-tree bpduguard enable | 在介面上配置 bpduguard 特性 |
第一條命令在特權模式(enable)下執行,其他都是在配置模式(configure terminal)下。
這次實驗只涉及到第1、2條命令,為基礎運用。
show spanning-tree
如下,可以看到交換機生成樹具體資訊,分為兩部分:根ID 和 橋ID.
Priority:優先順序(引數範圍:<0-61440>)
Address:交換機的Mac地址
Hello Time:傳送訊息時間間隔
三、運用STP搭建簡單拓撲
下面是一個最簡單的冗餘拓撲,可以看到,箭頭所指位置是不通的,這就是生成樹協議的作用,它阻塞了一條鏈路,避免形成交換環路。
現在我們看一下Switch0的STP情況:
Switch1的STP情況:
Switch0的f0/2介面阻塞,Switch0不是作為根橋。未進行配置預設情況下,結果如圖所示。
那麼,現在要將S0設定為根橋了,手動進行配置。操作就是將Priority設定為4096,前面提到BPDU決定根橋的因素之一。
命令:
spanning-tree vlan 1 priority 4096
將S0優先順序設定之後,根橋變為S0,這時以S0向網路傳送資料包。
四、實戰:STP綜合實驗
綜合實踐題目:STP.pka已經上傳到CSDN,可下載實踐練習。
這道題目上來就是IP地址分配,也許這是一個難點,而生成樹協議我們前面看到的只需一行配置搞定,相對簡單。
題目只給出IP地址空間為:10.1.1.0/24 ,這是關鍵突破口!
VLAN名稱、vlan號和所需主機IP地址對應如下:
VLAN號 | 名稱 | 所需IP地址數 |
vlan 5 | Management&Native | 10 |
vlan 15 | Production | 100 |
vlan 25 | Staff | 50 |
vlan 35 | Guest | 20 |
給定地址空間10.1.1.0/24,根據IP地址數量,從多到少進行分配。
IP地址數 | 主機位數 | 可用IP地址數 | 分配網段(子網掩碼) |
100 | 7位 | 126 | 10.1.1.128/25 |
50 | 6位 | 62 | 10.1.1.192/26 |
20 | 5位 | 30 | 10.1.1.224/27 |
10 | 4位 | 14 | 10.1.1.240/28 |
問題來了,雖然得到了VLAN的網段,滿足IP地址數量要求,但是題目完全沒給出具體IP配置說明!
經過一段時間的探索,終於找到完全正確的地址分配,為每個裝置配置IP、預設閘道器、子網掩碼。具體配置就是,預設閘道器為取各自網段的可用IP第一個,PC、交換機Vlan的IP地址取可用IP地址的第二個。
如果理解還是不清楚,直接用下面我配置好的各裝置地址表。
現在解決了題目關鍵部分,後續就簡單了,直接按任務配置就可以。
其中,遇到一個任務:配置Vlan的預設閘道器,之前沒配置過,所以學習了一條配置命令。
交換機配置預設閘道器命令:
ip default-gateway 10.1.1.255
完成任務過程,可以邊檢視進度情況,這是Cisco實驗練習題目的一個優點,可以實時檢查完成進度。完成率應該為 100%。若不是,則單擊 Check Results(檢查結果),瞭解哪些必需的元件尚未完成。
五、結語
STP(生成樹協議,Spanning Tree Protocol)就是解決冗餘拓撲出現的問題。STP 基本思路是阻斷一些交換機介面,構建一棵沒有環路的轉發樹,讓具有冗餘結構的網路在故障時自動調整網路的資料轉發路徑。本篇記錄學習計算機網路重點知識:生成樹協議(STP),詳細步驟將從認識到實踐,使用Cisco Packet Tracer 完成STP綜合練習。同時,也更實際地學習IP地址分配,加深對IP地址的理解和應用。
我的部落格園:https://www.cnblogs.com/chenzhenhong/p/13776360.html
我的CSDN部落格:https://blog.csdn.net/Charzous/article/details/108926031