生成樹協議

生成樹算法的網橋協議STP(Spanning Tree Protocol) 它通過生成生成樹保證一個已知的網橋在網絡拓撲中沿一個環動態工作。網橋與其他網橋交換BPDU消息來監測環路,然後關閉選擇的網橋接口取消環路,統指IEEE802·1生成樹協議標準和早期的數字設備合作生成樹協議,該協議是基於後者產生的。IEEE版本的生成樹協議支持網橋區域,它允許網橋在一個擴展本地網中建設自由環形拓撲結構。IEEE版本的生成樹協議通常爲在數字版本之上的首選版本。生成樹協議是由Sun微系統公司著名工程師拉迪亞·珀爾曼博士(Radia Perlman)發明的。
1988 年, 珀爾曼在MIT完成了她的計算機科學博士學位。
珀爾曼在1993年離開了DEC去了Novell工作, 1997她又加入Sun Microsystems 公司。
珀爾曼博士擁有80多個技術發明專利, 其中40多個是在Sun Microsystems 公司發明的。
珀爾曼博士被哈佛大學和華盛頓大學聘請爲客座教授。
珀爾曼博士在數據通信領域的經典著作有:
《Interconnections: Bridges, Routers, Switches,and Internetworking Protocols》
《Network Security: Private Communication in a Public World》
珀爾曼博士被授予了許多傑出工程師獎,
她被評爲20個數據通信領域最有影響力的人之一。生成樹協議拓撲結構的思路是: 不論網橋(交換機)之間採用怎樣物理聯接,網橋(交換機)能夠自動發現一個沒有環路的拓撲結構的網路,這個邏輯拓撲結構的網路必須是樹型的。生成樹協議還能夠確定有足夠的連接通向整個網絡的每一個部分。所有網絡節點要麼進入轉發狀態,要麼進入阻塞狀態,這樣就建立了整個局域網的生成樹。當首次連接網橋或者網絡結構發生變化時,網橋都將進行生成樹拓撲的重新計算。爲穩定的生成樹拓撲結構選擇一個根橋, 從一點傳輸數據到另一點, 出現兩條以上條路徑時只能選擇一條距離根橋最短的活動路徑。生成樹協議這樣的控制機制可以協調多個網橋(交換機)共同工作, 使計算機網絡可以避免因爲一個接點的失敗導致整個網絡聯接功能的丟失, 而且冗餘設計的網絡環路不會出現廣播風暴。
例如,網絡中,A點到C點,有兩條路可以走,當ABC的路徑不通的時候,可以走ADC。C點到A點也是,路徑CDA不通的時候可以走CBA。
如果某一時刻的網絡,使能生成樹協議,阻塞了B到C的端口,那麼網絡拓撲就會變成下圖。如果有廣播包,一定會終結於B點或者C點,不會循環轉發。網橋使用珀爾曼博士發明的這種方法能夠達到2層路由的理想境界:冗餘和無環路運行。你可以把生成樹協議設想爲一個各網橋設備記在心裏的用於進行優化和容錯發送數據的過程的樹型結構. 生成樹協議(Spanning Tree)定義在 IEEE 802.1D 中,是一種鏈路管理協議,它爲網絡提供路徑冗餘同時防止產生環路。爲使以太網更好地工作,兩個工作站之間只能有一條活動路徑。網絡環路的發生有多種原因,最常見的一種是有意生成的冗餘- 萬一一個鏈路或交換機失敗,會有另一個鏈路或交換機替代。1,幾個關鍵的概念:(1)網橋標識(bridge ID):
①非擴展的:網橋優先級(2bytes)+ MAC地址

②擴展的:網橋優先級(4bits) + 系統標識(VLAN ID;12bits) + MAC地址
(2)網橋協議數據單元(BPDU):
①配置(CFG)BPDU: 初始時每個網橋都會發送,假設自己就是根網橋
收斂後,只從根網橋發出,其他網橋在根端口接收後向下中繼。
②拓撲改變提示(TCN)BGDU:當拓撲發生變化時,其他網橋可以從根端口發出該BPDU,到達根網橋。
根網橋在配置BPDU中設定TCN位,提示其他網橋快速清理MAC地址表。
(3)時間值:
①HELLO間隔:2秒,CFG BPDU發送間隔
②MAX AGE: 20秒,CFG BPDU的保留時間
③FWD_DELAY: 15秒,監聽(listening)和學習(learning)的時間
(4)路徑代價:與鏈路速率相關,用於計算網橋間的距離
(5)端口狀態:
①關閉(disable):端口處於管理關閉狀態
②阻塞(blocking): 不能轉發用戶數據
③監聽(listening): 接口開始啓動
④學習(learning) : 學習MAC地址, 構建MAC表進程項
⑤轉發(forwarding): 可以轉發用戶數據
(6)選擇標準:
①最低的網橋標識號
②最低的路徑代價到根網橋
③最低的發送者的網橋標識號
④最低的端口標識號
2,選擇操作順序:
(1)選擇一個根網橋:每一個網絡選擇一個
(2)選擇一個根端口:每一個非根網橋選擇一個
(3)選擇一個指派端口:每一個網段選擇一個
(4)非指派端口被放置在阻塞狀態

摺疊
在園區網中實現生成樹協議
1,實現優化的生成樹拓撲
(1)每VLAN生成樹協議(PVST):每一個VLAN有一個生成樹的計算進程
(2)根網橋的選擇:樓內分佈層交換機應該成爲根網橋,即避免訪問層交換機成爲根網橋
(3)生成樹的負載平衡:配置不同的分佈層交換機成爲不同VLAN的根網橋
2,配置根網橋:兩種方式
(1)定義優先級:
(config)#spanning-tree vlan <vlan-id> priority <priority>
(2)定義交換機爲根網橋:
(config)#spanning-tree vlan <vlan-id> root [primary|secondary]

摺疊
加速生成樹協議的收斂過程
1,端口快速(postfast):
(1)端口立即從阻塞狀態進入轉發狀態,不經過監聽和學習狀態
(2)應該只將這一特性配置在連接終端主機的端口上,即不應配置在交換機間的端口上。
(3)配置命令:兩種方式
①接口配置模式:
(config-if)#spanning-treeportfast
②全局模式:對所有非骨幹鏈路端口生效
(config)#spanning-treeportfastdefault
2,快速生成樹協議(RSTP):802.1w
(1)端口狀態:
①丟棄(discarding):不能轉發用戶數據
②學習(learning):學習MAC地址, 構建MAC表進程項
③轉發(forwarding): 可以轉發用戶數據
(2)端口類型:
①根(root)端口:與802.1D相同
②指派(designated)端口: 與802.1D相同
③預備(alternative)端口: 端口被阻塞,作爲根端口的備份
④備份(backup)端口:(learning) : 端口被阻塞,作爲指派端口的備份
(3)網橋協議數據單元:
①數據字段:增加了4個字段描述位,說明端口的狀態和類型
②CFG BPDU:直接在兩個交換機間交換,如果丟失3個BPDU,意味着鏈路拓撲發生改變。
③TCNBPDU:直接在交換機間泛洪。
(4)快速收斂機制:
①邊緣(edge)端口: 連接終端主機的端口,自動實現端口快速特性
②點到點鏈路:即全雙工鏈路,自動實現快速端口狀態改變,不再有max-age和fwd-delay的延遲
(5)配置命令:
(config)#spanning-tree mode rapid-pvst
(6)校驗命令:
#show spanning-tree vlan <vlan-id>
#debug spanning-tree

摺疊
增強生成樹協議的操作性能
1,多進程生成樹協議(MSTP):
(1)定義:映射多個vlan生成樹計算進程到一個MST的進程;減少PVST的計算負擔;實現與CST域的互操作
(2)配置命令:
①進入MST配置模式:
(config)#spanning-tree mst configuration
②定義MST域名:
(config-mst)#name <name>
③定義MST的配置版本號:
(config-mst)#revision <num>
④映射多個VLAN到一個MST進程:
(config-mst)#instance <inst-num> vlan <vlan-range>
⑤定義根網橋:
(config)#spanning-tree mst <inst-num> root [primary|secondary]
(3)校驗命令:
#show spanning-tree mst configuration
#show spanning-tree mst <inst-num>
2,以太通道(etherchannel):
(1)定義:
①綁定多條相同的以太網鏈路作爲一個邏輯的通道。
②生成樹協議將其看作爲一個端口的鏈路
③實現多鏈路上的負載平衡和冗餘
(2)配置二層的以太通道:
①指定要綁定的端口範圍:
(config)#interface range <type slot/port - port>
②定義通道管理協議:
(config-if-range)#channel-protocol [pagp|lacp]
③定義端口到通道:
(config-if-range)#channel-group <group-num> mode on
④定義負載平衡模式:
(config)#port-channel load-banlance <mode>
(3)校驗命令:
#show interfaces <num> etherchannel
#show etherchannel <group-num> port-channel
#show etherchannel <group-num> summary

摺疊
保護優化的生成樹拓撲結構
1,防止"端口快速"的錯誤:
錯誤:把交換機連接到了配置了"端口快速"的端口上,可能引起環路問題
(1)BPDU守衛(GUARD):
①定義:當配置了"端口快速"的端口接收到BPDU時,關閉該端口。
②配置命令:
(config)#spanning-treeportfastbpduguard
③校驗命令:
#show spanning-tree summary totals
(2)BPDU過濾(filtering):
①定義:當配置了"端口快速"的端口接收到BPDU時,該端口失去"端口快速"特性。
②配置命令:
(config)#spanning-treeportfastbpdufilter default
③校驗命令:
#show spanning-tree summary totals
2,保護現有優化的根網橋:"根守衛"(root guard)
(1)定義:當端口收到一個具有更好的參數的網橋協議數據單元(superiorbpdu)時,
將該端口放置在一個"根不一致(root-inconsistent)"狀態,不轉發這一BPDU。
(2)配置命令:
(config-if)#spanning-tree guardroot
(3)校驗命令:
#show spanning-tree inconsistentports
3,阻止可能的生成樹的環路:
(1)單向鏈路檢測(UDLD):
①定義: 通過發送檢測消息發現物理鏈路出現單向中斷時,關閉該鏈路端口。
②配置命令:
(config)#udld enable →在所有的光纖端口上啓用
或(config-fi)#udld enable →在某一個光纖或非光線端口上啓用
③校驗命令:
#show udld interface <num>
(2)環路守衛(loop guard):
①定義: 當某一方向端口在MAX-AGE時間後沒有收到BPDU時,
將該端口放置在一個"環路非一致(loop-inconsistent)"狀態,
阻止該端口發送用戶數據。
②配置命令:
(config-if)#spanning-tree guardloop
③校驗命令:
#show spantree guard <int-num>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章