之前的文章介紹了Cisco網路交換器在網路中的定位和運作的原理,眼尖的讀者可能會想到,過去筆者所介紹的文章都是比較單純的網路環境,僅假設網路架構只有單一的網路交換器,這是為了方便說明,但大多企業型的網路環境不可能只有一個交換器,多個交換器存在時很容易出現一些網路問題。為此,本文將特別介紹多個交換器所可能發生的問題,以及相關的解決方案。
一般而言,埠要從Learning狀態轉變成Forwarding狀態大約需要30?50秒的時間,這段時間是用來學習各個設備的詳細資訊。
這個時間差當然是可以設定的,不過建議還是使用預設值,因為這樣可以確保交換器和橋接器設備有足夠的時間可以學習相關資訊。
Cisco加速狀態轉換的秘訣:PortFast
從Blocking到Forwarding狀態的轉換需要一段時間,若讀者手邊有交換器設備的話,將交換器設備開機的時候,會發現各個埠大約要過個半分鐘到一分鐘左右的時間才能正常運作。
其原因就是因為這些埠必須要有一段時間來學習相關資訊,以便決定是否要變成Forwarding狀態還是Blocking狀態。而在Cisco設備中,有一種名叫PortFast的技術可以讓某些埠加快這種狀態的轉換。
當Cisco交換器的某個埠連接到使用者端的設備(End-user Station),而不是連到另一台交換器設備時,因為從這個埠不可能接收到任何BPDU,不可能在網路中造成迴圈,所以這樣的埠就不需要經過Listening和Learning的狀態,而是可以從Blocking狀態直接轉換到Forwarding狀態。這種技術可以加快某些埠的STP收斂過程。
STP中的成本計算
在上面的範例與說明中一直不斷提到成本,STP根據每個埠到達Root Bridge的成本,選其低者為Root Port,而這裡所提到的成本計算 ,是指將每段由這個埠到達Root Bridge的各網路路徑的成本相加而得,而每一段的成本是決定於這段網路的速度。
其網路速度與成本的對應關係如下表所示。
針對STP的成本計算標準,IEEE 802.1d修訂過一次,由上表可以看出修訂前後的不同之處。因此,若某個Non-root Bridge的某個埠A,必須經過一段10Mbps網路再經過100Mbps的網路才能到Root Bridge時,則這個埠的成本是100 + 19 = 119(假設使用新版本的成本計算方式)。
若另一個埠B必須經過一段1Gbps的網路和一段10Mbps的網路才能到達Root Bridge的話,則這個埠的成本為19 + 4 = 23,因此,埠B就會被選成Root Port,因為它的成本比較低。而Cisco大部份的Catalyst交換器設備都是採用新版本的成本計算標準。
結語
看到這裡,讀者是否已經完全體會STP技術是如何解決網路迴圈的問題嗎?很簡單,其主要精神就是想辦法透過樹狀結構來取代網路迴圈,藉由關閉某些路徑來達到樹狀結構的建立,這是一種很不錯的演算法,因為到底要關閉哪一個區段,都是經由計算而得出的結論。
從這一篇文章中也可以看出,一樣都是STP技術,Cisco竟然還可以發揮得更完美,而產生更優良的PortFast技術。總結來說,STP技術是很重要的概念,是每一位網路管理人員都必須具備的知識。