2008年7月15日 星期二

IEEE 802.1d(STP)

IEEE 802.1d(STP)


為什麼需要802.1d

二 層數據網的自愈需求由來已久,早期的以太網 Bridge 採用了基於 MAC 位址在不同端口之間的轉發,而每一個端口對應的是一個以太網的網段,也就是一個以太網的廣播域,透過學習每個端口的 MAC 位址表的模式,以太網 Bridge 只轉發不同端口間的通信。但是由於Bridge 倚賴的是營運網路中存在的MAC 位址和端口的對應表,所以一旦收到到達站址未知的數據包,它將利用廣播的形式來尋址,這種方法使得它天生不能隔離廣播包和組播包的通信,其後果就是在一個 環形網路中造成數據流量以指數形式的增長,從而導致網路的癱瘓,這種現象也稱為“廣播風暴”。

可以說“廣播風暴”的現象只存在於兩點之間 存在冗餘鏈路的網路之中,而冗餘鏈路的存在正是網路設計中大量存在的,這種設計的目的是當某一條鏈路失效時,另一條冗餘的鏈路能夠馬上接管所有的工作。為 了解決“廣播風暴”這一在二層數據網路中存在弊端,IEEE(電機和電子工程師學會)製定了 802.1d 的生成樹協議(Spanning Tree),這種協議的本質就是消除網路拓撲中任意兩點之間可能存在的重複路徑,利用這種算法將兩點之間存在的多條路經劃分為“通信路徑”和“備份鏈路 ”,數據的轉發在“通信路徑”上進行,而“備份鏈路”只用於鏈路的偵聽,一旦發現“通信路徑”失效時,將自動地將通信切換到“備份鏈路”上。

現 代的二層以太網交換機和三層以太網交換機採用了硬體電路的設計,保證了每個端口的獨享帶寬,用戶可以將它的每一個端口看作是一個獨立的 Bridge 端口,其二層的工作原理同 Bridge 類似。為了實現下用戶接入層、匯聚層甚至城域網路範圍內的高可靠性,網路中關鍵的拓撲設計往往採用冗餘鏈路的設計,雖然也有其他的技術可以實現高效的網路 收斂,但是大多數網路設計者還是採用了 802.1d 的方法,原因是 Spanning Tree是一項簡單而成熟的網路自愈技術。

Spanning Tree的工作模式

Spanning Tree 的工作模式可以從它的字面上理解為“生成樹”,它的所有的工作都是為了生成一顆倒裝的樹形,這棵樹的根就稱為“bridge root”,每個設備會定義一個優先級,稱為“bridge priority”,它的數值越小代表它成為樹根的可能性越大,而每個葉結點通往樹根的路徑稱為“root path”,衡量這一路徑的權值稱為“path cost”,通常它代表了鏈路的帶寬,一個千兆端口的權值會小於一個百兆端口的權值。所有參與生成樹算法的網路設備都交換它們的報文訊息(BPDU),透 過這些訊息它們知道哪個路徑更為快捷、哪個設備成為樹根的可能性最高,然後它首先選出整個網路的樹根,其次計算每個葉結點到樹根的路徑,選擇代價最小的成 為通信的路徑,而另外的路徑成為備份的路徑。在每個節點的生成樹算法完畢以前,所有的設備端口都只發送和接收報文訊息,端口的狀態處於初始化的階段 (listening learning),一旦完成初始化,那麼成為通信的路徑的端口轉變為“Forwarding”的狀態,用於數據的收發,而備份鏈路的端口成為 “Blocking”的狀態(或對端成為“Blocking”的狀態),只偵聽 BPDU 的數據。一旦通信的路徑失效,根據 BPDU 的報文,備份鏈路的端口將重新一輪計算的過程而成為“Forwarding”的狀態。

Spanning Tree的弊端和增強技術

Spanning Tree 的算法廣泛運用於二層以太網的收斂和自愈,但是由於它的出現是在局域網的初期所開發的技術,所以它也存在著一些弊端, 主要有以下幾個不足。

1、二層數據網的收斂時間過長

根據 802.1d的算法,每個葉結點的初始化時間約為 30 秒鐘,整個拓撲的收斂將會在 45 秒左右,即使是一個以太網端口由於插入計算機也需要這個過程。而我們知道一旦在關鍵網路如主機核心機房的連接,用戶期望的值往往要短的多。

http://anheng.com.cn/news/html/network_basic/595.html

2、網路拓撲容易引起全局波動

由 於 802.1d 的理論沒有域的概念,網路中用戶增加或減少設備、設備配置的改變往往會引起全局不必要的波動,用戶如果改變其設備參數甚至能引起bridge root 的改變,出現通信網路的中斷。這造成用戶在大規模的數據網路中不敢輕易使用 802.1d 的算法。

http://anheng.com.cn/news/html/network_basic/595.html

3、缺乏對現有多 VLAN 環境的支援

802.1d 沒有闡明在一個存在多個 VLAN 情況下如何處理 Spanning Tree 的算法,造成一個以太網交換機只支援單個 STP運算,從而使得雙光纖鏈路的資源只能利用到一半。

針對這些802.1d 所帶來的弊端,網路設備製造商開發了許多增強的技術,以使以太網用於現代高速的寬帶網路,這些技術主要有︰

修改 Spanning Tree 的算法,大大提升其收斂時間。
提出 Spanning Tree 劃分域的概念,將核心網路與用戶接入網路的 STP 域分開,保護核心網路的穩定性。
針對以太網交換機開發的多 STP 協議,就是在每個 VLAN 上營運獨立的 STP 算法,互不干擾。
需 要指出的是以上幾種技術現下尚未存在開放的標準,不同廠商的互連需要依情況不同而定。當然二層數據網路的自愈技術不光是 802.1d 一種,針對 STP 的不足,尤其是收斂時間過長這一點,許多知名的網路廠商甚至開發出不需要 STP 的子秒級收斂技術,這種收斂有些是倚賴於特殊的光纖端口上,也有一些是建立在光纖以太網技術上的。

http://anheng.com.cn/news/html/network_basic/595.html

http://anheng.com.cn/news/html/network_basic/595.html

STP︰生成樹協議 -IEEE 802.1D (STP︰Spanning Tree Protocol - IEEE 802.1D)

生 成樹協議 Spanning Tree 定義在 IEEE 802.1D 中,是一種橋到橋的鏈路管理協議,它在防止產生自循環的基礎上提供路徑冗餘。為使以太網更好地工作,兩個工作站之間只能有一條活動路徑。網路環路的發生有 多種原因,最常見的一種是故意生成的冗餘,萬一一個鏈路或交換機失敗,會有另一個鏈路或交換機替代。

STP 是一種橋到橋的通信技術,提供發現網路物理環路的服務。該協議規定了網橋創建無環回loop - free 邏輯拓朴架構的算法。換句話說,STP 提供了一個生成整個第二層網路的無環回樹架構。

生成樹協議操作對終端站透明,也就是說,終端站並不知道它們自己是否連接在某單個局域網或多交換局域網中。當兩個網橋相互連接在相同的由兩台計算機組成的網路中時,生成樹協議支援兩網橋之間相互交換訊息,這樣只需要其中一個網橋處理兩台計算機之間發送的訊息。

橋 接設備之間透過使用網橋協議數據單元(Bridge Protocol Data Unit,BPDU)交換各自狀態訊息。生成樹協議透過發送 BPDU 訊息為交換網路配置根交換和根端口,並為每個交換網路區段(switched segment)配置根端口和指定端口。

網橋中的生成樹算法可以用來決定如何使用生成樹協議,該算法的優點在於能夠避免網橋環路,並確保在多路徑情形下網橋能夠選擇一條最有效的路徑。如果最佳路徑選擇失敗,可以使用該算法重新計算網路路徑並找出下一條最佳路徑。

利用生成樹算法可以決定網路路徑(哪台計算機主機在哪個區段),並透過 BPDU 訊息交換以上數據。該過程主要分為以下兩個步驟︰

透過評估網橋接收的配置訊息以及選擇最佳選項,再利用生成樹算法來決定網橋發送的最佳訊息。
一旦選定某發送訊息,網橋將該訊息與來自無根(non-root)連接的可能配置訊息相比較。如果步驟1中選擇的最佳選項並不優於可能配置訊息,便刪除該端口。

原文網址 文章james 發表於 週日 3月 16日, 2008年 1:37 pm

沒有留言:

張貼留言