生成樹 交換器 STP 網路

從STP到RSTP 認識多重生成樹協定

2018-02-21
生成樹的技術,一直以來都是交換機很重要的技術,其目的是為了避免網路迴圈所造成的各種問題。而各個交換機之間到底如何透過一個共同的技術製作出一份生成樹是一個重要的議題,本文將簡述運作的原理,而如何改善運算生成樹的過程,也就是RSTP,也會做介紹。

1. 選擇誰來當Root Bridge

2. 在Non-root Bridge設備上決定Root Port

3. 在每一個網路區段上選出一個Designated Port

Learning與Forwarding狀態

所謂的Learning狀態是用來學習各個交換機和橋接器設備的MAC位址,以避免轉發資料時所必須的Flooding動作。

如果當某個埠在這種學習的過程結束後,還是屬於Root Port或Designated Port的話,這些埠就會被轉變成Forwarding狀態。當埠處於Forwarding狀態時,這個埠就可以用來發送和接收資料封包。當然,若學習結束之後,那些不是Root Port或是Designated Port的埠都會轉成Blocking狀態。

從Listening狀態轉換成Learning狀態的時間差,以及從Learning狀態轉變成Forwarding狀態的時間差,都稱為「Forward Delay」,預設值是15秒。

一般而言,埠要從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的各個網路路徑的成本相加而得,而每一段的成本是決定於這段網路的速度。其網路速度與成本的對應關係如表1所示。

表1 網路速度與成本的對應關係分析

針對STP的成本計算標準,IEEE 802.1d修訂過一次,由表1可以看出修訂前後的不同之處。因此,若某個Non-root Bridge的某個埠A,必須經過一段10Mbps網路,再經過100Mbps的網路才能到Root Bridge,那這個埠的成本就是100 + 19 = 119(假設使用新版本的成本計算方式)。

如果另一個埠B必須經過一段1Gbps的網路和一段10Mbps的網路才能夠到達Root Bridge的話,則這個埠的成本就是19 + 4 = 23,因此埠B就會被選成Root Port,因為它的成本比較低。值得一提的是,Cisco大多的Catalyst Switch設備都是採用新版本的成本計算標準。

RSTP協定介紹

介紹過基本的生成樹協定之後,接下來說明RSTP(Rapid Spanning Tree Protocol),因為等一下要介紹的多重生成樹協定是基於RSTP來做延伸的。

首先,將各個埠穩定地轉換到Blocking狀態或Forwarding狀態的過程就叫做收斂。

RSTP是一種能夠加快這種收斂過程的協定,算是STP的加強版本。前面提到STP協定被訂立為IEEE 802.1d,而RSTP協定則是被訂立成802.1w。

在STP協定中,各個埠一旦經過STP運算後,埠的角色有Root Port、Designated Port以及Non-designated Port。而RSTP主要增加了兩種埠的角色,包括Alternative Port和Backup Port。

此外,在STP協定中,把埠個狀態分成Blocking、Listening、Learning以及Forwarding四種狀態,而RSTP協定則是新增了Discarding狀態。表2列出STP協定和RSTP協定的比較。

表2 STP協定與RSTP協定比較

在各種埠的角色中,RSTP的Root Port與STP的Root Port完全相同,Designated Port也一樣。而Alternative Port則被定義成:另外可到達Root Bridge的埠,這個埠到達Root Bridge的路徑並非最佳路徑。

Backup Port則是可以提供額外的連接,但是這種Backup Port只能針對那種使用Point to Point的連接。至於Disabled Port,則是在RSTP中沒有任何相對的操作。

大致來說,相當於RSTP把STP中的Non-designated Port分成Alternative Port和Backup Port兩種類型。而RSTP中埠的狀態與STP中埠的狀態的對應關係,則如表3所示。

表3 RSTP內埠的狀態與STP中埠的狀態之對應關係

何謂Edge Type與Link Type

事實上,RSTP協定之所以能快速地收斂各個埠的收斂過程,主要是因為RSTP可以安全地以最快的速度將某些埠直接收斂到Forwarding狀態,這就像Port-Fast的道理一樣。而為了要達到這樣的效用,在RSTP內必須對埠做相對應的設定,亦即必須將埠指定為Edge-type Port或是Link-type Port這兩種類型的其中一種。

所有連接Edge Port的設備必須是使用者終端設備,也就是說,從Edge Port連出去的網路不應該造成網路迴圈,例如連接到使用者個人電腦的埠就可以直接指定成Edge Port。因此,Edge Port可以安全地直接轉換到Forwarding狀態,不需要經過Listening和Learning狀態,而那些連接到Duplex模式的埠就會自動轉換成Link Type的埠。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!