簡介
本檔案將說明有關RSTP新增到先前802.1D標準之增強功能的資訊。
背景
802.1D生成樹協定(STP)標準設計時,如果在一分鐘內中斷後恢復連線被視為具有足夠的效能。隨著LAN環境中第3層交換的出現,網橋現在與路由解決方案競爭,這些路由解決方案中的協定(如開放最短路徑優先(OSPF)和增強型內部網關路由協定(EIGRP))能夠在更短的時間內提供備用路徑。
Cisco利用Uplink Fast、Backbone Fast和Port Fast等功能來增強原始802.1D規範,以加快橋接網路的收斂時間。缺點是這些機制是專有的,需要額外的配置。
快速跨距樹狀目錄通訊協定(RSTP;IEEE 802.1w)可看作802.1D標準的演變,而不是一場革命。802.1D術語基本保持不變。大多數引數保持不變,因此熟悉802.1D的使用者可以舒適地快速配置新協定。在大多數情況下,RSTP的效能優於思科的專有擴展,無需任何額外配置。802.1w還可以恢復到802.1D,以便與舊式網橋進行互操作(按埠計)。這降低了它帶來的好處。
802.1D標準的新版本IEEE 802.1D-2004融合了IEEE 802.1t-2001和IEEE 802.1w標準。
Catalyst交換機支援RSTP
下表顯示了一些Catalyst交換機系列中對RSTP的支援,以及這種支援所需的最低軟體。
Catalyst平台 |
含有 RSTP 的 MST |
RPVST+(也稱為PVRST+) |
Catalyst 2900 XL/3500 XL |
不可用。 |
不可用。 |
Catalyst 2940 |
12.1(20)EA2 |
12.1(20)EA2 |
Catalyst 2950/2955/3550 |
12.1(9)EA1 |
12.1(13)EA1 |
Catalyst 2970/3750 |
12.1(14)EA1 |
12.1(14)EA1 |
Catalyst 3560 |
12.1(19)EA1 |
12.1(19)EA1 |
Catalyst 3750 Metro |
12.1(14)AX |
12.1(14)AX |
Catalyst 2948G-L3/4908G-L3 |
不可用。 |
不可用。 |
Catalyst 4000/4500(Cisco IOS®) |
12.1(12c)EW |
12.1(19)EW |
Catalyst 6000/6500(Cisco IOS) |
12.1(11b)EX、12.1(13)E、12.2(14)SX |
12.1(13)E |
Catalyst 8500 |
不可用。 |
不可用。 |
新埠狀態和埠角色
802.1D 定義為以下五個不同的連接埠狀態:
有關埠狀態的詳細資訊,請參閱本文檔的埠狀態部分中的表。
連線埠的狀態是混合的,無論是封鎖還是轉送流量,以及在作用中拓撲中扮演的角色(根連線埠、指定連線埠等)。例如,從操作角度來看,處於阻塞狀態的埠和處於偵聽狀態的埠之間沒有區別。兩者都丟棄幀,而且不會獲知MAC地址。真正的區別在於生成樹為埠分配的角色。可以安全地假設偵聽埠是指定埠或根埠,並且正在進入轉發狀態。遺憾的是,一旦處於轉發狀態,就無法從埠狀態推斷埠是根埠還是指定埠。這有助於證明這種基於狀態的術語的失敗。RSTP分離埠角色和狀態以解決此問題。
埠狀態
RSTP中只剩下三種與三種可能的運行狀態相對應的埠狀態。802.1D禁用、阻塞和偵聽狀態合併為唯一的802.1w丟棄狀態。
STP(802.1D)埠狀態 |
RSTP(802.1w)埠狀態 |
埠是否包含在活動拓撲中? |
埠是否學習MAC地址? |
已禁用 |
捨棄中 |
否 |
否 |
封鎖中 |
捨棄中 |
否 |
否 |
接聽中 |
捨棄中 |
是 |
否 |
學習中 |
學習中 |
是 |
是 |
轉送中 |
轉送中 |
是 |
是 |
埠角色
埠角色現在是分配給給定埠的變數。根埠和指定埠角色保持不變,而阻塞埠角色被分為備份和備用埠角色。跨距樹狀目錄演演算法(STA)會根據橋接通訊協定資料單元(BPDU)判斷連線埠的作用。為了簡化問題,關於BPDU,需要記住的一件事是,總有一種方法可以比較其中的任意兩種,並確定其中一種是否比另一種更有用。這是基於BPDU中儲存的值,有時也基於BPDU所接收的埠。考慮到這一點,本節中的資訊說明了埠角色的實際方法。
根埠角色
指定埠角色
備用和備用埠角色
-
這兩個埠角色對應於802.1D的阻塞狀態。阻塞埠定義為不是指定埠或根埠。阻塞埠收到的BPDU比它在其網段上傳送的BPDU更有用。請記住,連線埠需要接收BPDU才能保持封鎖狀態。RSTP為此引入了這兩個角色。
-
備用埠從另一個網橋接收更有用的BPDU,並且埠被阻塞。如下圖所示:
-
備份埠從它所在的橋接器接收更有用的BPDU,該橋接器處於阻塞狀態。如下圖所示:
此區別已在802.1D內部做出。這基本上就是Cisco UplinkFast的運作方式。其原理是備用埠提供到根網橋的備用路徑,因此如果根埠發生故障,可以替換根埠。當然,備份埠提供到同一網段的冗餘連線,並且無法保證到根網橋的備用連線。因此,它被排除在上行鏈路組之外。
因此,RSTP會使用與802.1D相同的標準計算生成樹的最終拓撲。使用不同網橋和埠優先順序的方式沒有變化。名稱阻止用於Cisco實施中的丟棄狀態。CatOS版本7.1及更高版本仍顯示偵聽和學習狀態。這提供的有關連線埠的資訊多於IEEE標準的要求。但是,現在的新功能是,通訊協定為連線埠決定的角色與其目前狀態之間有所差異。例如,現在對於要同時指定和阻塞的埠有效。雖然這通常會持續很短的時間,但這表示此連線埠處於面向指定轉送狀態的過渡狀態。
新的BPDU格式
RSTP對BPDU格式進行了少量更改。802.1D中只定義了兩個標誌:拓撲更改(TC)和TC確認(TCA)。但是,RSTP會使用剩餘的六個標誌位元組位來執行:
-
對產生BPDU的連線埠的角色和狀態進行編碼
-
處理建議/協定機制
Cisco BPDU、IEEE BPDU 和 BPDU 圖的完整檢視
如需更高解析度的影像,請參閱 Cisco BPDU、IEEE BPDU 和 BPDU 圖。
註:第0位(拓撲更改)是最低有效位。
另一個重要更改是RSTP BPDU現在屬於第2類,即第2版。這意味著舊網橋必須丟棄此新BPDU。此屬性使802.1w網橋可以輕鬆檢測與其連線的舊網橋。
新的BPDU處理
每次Hello時間傳送BPDU
每次hello時都會傳送BPDU,不再簡單地轉發。對於802.1D,非根網橋僅在根埠上收到一個BPDU時才生成BPDU。網橋中繼的BPDU多於它實際生成的這些BPDU。802.1w的情況並非如此。網橋每<hello-time>秒(預設為2秒)傳送一次包含其當前資訊的BPDU,即使它沒有從根網橋收到任何資訊。
加快資訊老化
在指定的連線埠上,如果沒有連續三次收到hello,則通訊協定資訊可能會立即過期(或如果max_age過期)。由於上述協定修改,BPDU現在用作網橋之間的保活機制。網橋認為如果連續丟失三個BPDU,就會失去與其直接鄰居根或指定網橋的連線。這種資訊快速過期使得可以進行快速故障檢測。如果網橋無法接收來自鄰居的BPDU,則確定與該鄰居的連線已斷開。這與802.1D相反,後者的問題可能發生在到根目錄路徑上的任何位置。
注意:如果物理鏈路發生故障,則故障檢測速度更快。
接受次級BPDU
這一概念構成了BackboneFast引擎的核心。IEEE 802.1w委員會在RSTP中引入了類似的機制。當網橋從其指定的網橋或根網橋接收到下級資訊時,它會立即接受該資訊並替換以前儲存的資訊。
由於網橋C仍知道根橋處於活動狀態且狀態良好,因此它會立即向網橋B傳送一個BPDU,其中包含有關根橋的資訊。因此,網橋B不傳送自己的BPDU,而是接受通向網橋C的埠作為新的根埠。
快速轉換到轉發狀態
快速過渡是802.1w引入的最重要特徵。傳統STA被動地等待網路收斂,然後再將埠變為轉發狀態。實現更快的收斂是對保守的預設引數(轉發延遲和max_age計時器)進行更改的問題,而且經常會危及網路的穩定性。新的快速STP能夠主動確認埠可以安全轉換到轉發狀態,而無需依賴任何計時器配置。現在,在符合RSTP的網橋之間出現了真正的反饋機制。為了在埠上實現快速收斂,協定依賴於兩個新變數:邊緣埠和鏈路型別。
邊緣埠
思科生成樹使用者已經知道邊緣埠概念,因為它基本上對應於PortFast功能。所有直接連線到終端站的連線埠不能在網路中建立橋接回圈。因此,邊緣埠直接轉換到轉發狀態,並跳過偵聽和學習階段。在鏈路切換時,邊緣埠或啟用PortFast的埠都不會產生拓撲更改。接收BPDU的邊緣連線埠會立即失去邊緣連線埠狀態,並成為普通的跨距樹狀目錄連線埠。此時,邊緣埠狀態有一個使用者配置的值和操作值。思科實施會保留PortFast關鍵字用於邊緣埠配置。這使得向RSTP的過渡更簡單。
連結類型
RSTP只能在邊緣埠和點對點鏈路上實現到轉發狀態的快速過渡。連結型別會自動從連線埠的雙工模式派生。以全雙工執行的連線埠會假設為點對點,而半雙工連線埠預設會視為共用連線埠。此自動連結型別值可以由顯式配置覆蓋。在當今的交換網路中,大多數鏈路以全雙工模式運行,RSTP將其視為點對點鏈路。這使它們有可能快速轉換到轉發狀態。
與 802.1D 融合
此圖說明802.1D如何處理新增到橋接網路的新連結:
在此案例中,根網橋和網橋A之間新增了一條鏈路。假設網橋A和根網橋之間已經有一個間接連線(按照圖中的C - D)。STA阻塞埠並禁用橋接環路。首先,當它們啟動時,根網橋和網橋A之間的鏈路上的兩個埠都處於偵聽狀態。網橋A現在能夠直接偵聽根橋。它會立即將指定埠上的BPDU傳播到樹的枝葉。一旦網橋B和C收到來自網橋A的這個新的上級資訊,它們立即向枝葉傳遞該資訊。幾秒鐘後,網橋D收到來自根的BPDU並立即阻塞埠P1。
生成樹在計算網路新拓撲時非常有效。現在唯一的問題是轉發延遲必須經過兩次,才能使根橋和網橋A之間的鏈路最終進入轉發狀態。這意味著30秒的流量中斷(網路的整個A、B和C部分被隔離),因為8021.D演算法缺乏反饋機制來清晰地通告網路在幾秒鐘內會收斂。
802.1w的收斂
現在,您可以看到RSTP如何處理類似情況。請記住,最終拓撲與由802.1D計算得出的拓撲完全相同(即一個阻塞埠位於與之前相同的位置)。僅用於到達此拓撲的步驟已更改。
交換器A和根之間的連結上的兩個連線埠一進入指定封鎖狀態。到目前為止,所有操作都像在純802.1D環境中。但是在這個階段,交換器A和根網路之間會進行交涉。交換機A收到根的BPDU後,會阻塞非邊緣指定埠。此操作稱為同步。完成此操作後,網橋A會明確授權根網橋將其埠置於轉發狀態。此圖說明此流程在網路中的結果。交換機A和根網橋之間的鏈路被阻塞,並且兩個網橋都交換BPDU。
在交換機A阻塞其非邊緣指定埠後,交換機A和根之間的鏈路將進入轉發狀態,您會遇到以下情況:
仍然不能有循環。現在,網路在交換機A之後阻塞,而不是在交換機A之前阻塞。然而,潛在橋接環路被切割在不同的位置。此切斷操作會隨著根發起的新的BPDU一起通過交換機A沿樹向下傳輸。在這個階段,交換器A上新封鎖的連線埠也會與交換器B和交換器C上的鄰近連線埠交涉快速轉送到轉送狀態,這些連線埠會啟動同步作業。除了通向A的根埠外,交換機B只有邊緣指定埠。因此,它沒有要封鎖的連線埠來授權交換器A進入轉送狀態。同樣,交換機C只需將其指定埠阻塞到D。現在已到達此圖中所示的狀態:
請記住,最終拓撲與802.1D示例完全相同,這表示D上的埠P1最終會阻塞。這表示到達最終的網路拓撲時,正好是新BPDU沿樹向下傳輸所需的時間。此快速收斂過程不涉及計時器。RSTP引入的唯一新機制是確認交換機可以在其新的根埠上傳送以授權立即轉換到轉發狀態,並繞過兩次轉發延遲的長偵聽和學習階段。管理員只需記住以下幾點,即可從快速收斂中獲益:
建議/協定順序
當STA選擇某個埠作為指定埠時,802.1D仍會等待兩次<轉發延遲>秒(預設情況下為2 x 15),然後才會將其轉換為轉發狀態。在RSTP中,此條件對應於具有指定角色但處於阻塞狀態的埠。這些圖說明了如何以分步方式快速實現過渡。假設在根目錄和交換機A之間建立了新鏈路。此鏈路上的兩個埠都處於指定阻塞狀態,直到它們從對方那裡收到BPDU。
當指定連線埠處於捨棄或學習狀態時(僅在此例中),會在所傳送的BPDU上設定建議位元。這是根網橋的埠p0會發生的情況,如前面的圖中的步驟1所示。由於交換機A收到高級資訊,它立即知道p1是新的根埠。然後交換機A開始同步,以驗證其所有埠是否都與此新資訊同步。如果埠滿足以下任一條件,則它處於同步狀態:
-
埠處於阻塞狀態,這意味著在穩定的拓撲中丟棄。
-
連線埠是邊緣連線埠。
為了說明同步機制對不同種類連接埠的影響,假設交換器 A 上存在備用連接埠 p2、指定的轉送連接埠 p3 和邊緣連接埠 p4。請注意,p2 和 p4 已經滿足其中一個條件。為了保持同步(參見上圖的步驟2),交換機A只需要阻塞埠p3,並為其分配丟棄狀態。現在,所有埠都處於同步狀態,交換機A可以取消阻止其新選擇的根埠p1,並傳送協定消息以回覆根。(請參見步驟3)。此消息是建議BPDU的副本,其中設定了協定位而不是建議位。這可確保埠p0確切知道它接收的協定對應於哪個建議。
一旦p0收到該協定,它可以立即轉換到轉發狀態。這是上圖的步驟4。請注意,同步後,埠p3處於指定丟棄狀態。在步驟4中,連線埠處於與步驟1中連線埠p0完全相同的情況。然後,它開始向鄰居求交,並嘗試快速轉換到轉發狀態。
-
建議協定機制非常迅速,因為它不依賴任何計時器。此握手波會快速傳播到網路邊緣,並在拓撲發生變化後快速恢復連線。
-
如果指定丟棄埠在傳送提議後未收到協定,它將緩慢轉換到轉發狀態,並回退到傳統的802.1D偵聽 — 學習序列。如果遠端網橋無法理解RSTP BPDU,或者遠端網橋的埠阻塞,則可能會發生這種情況。
-
Cisco對同步機制進行了增強,允許網橋在同步時僅將其以前的根埠置於丟棄狀態。此機制運作方式的詳細資訊不在本檔案的範圍之內。但是,可以很有把握地假設在大多數重新收斂情況中呼叫它。本文的802.1w收斂一節中所述的情形會變得非常有效,因為只有到達最終阻塞埠的路徑上的埠會暫時混亂。
UplinkFast
RSTP中包括的立即轉換到轉發狀態的另一種形式與Cisco UplinkFast專有生成樹擴展類似。基本上,當網橋丟失其根埠時,它可以將其最佳備用埠直接置於轉發模式(新根埠的外觀也由RSTP處理)。選擇備用埠作為新的根埠會引起拓撲變化。802.1w拓撲更改機制清除上游網橋的內容可定址儲存器(CAM)表中的相應條目。這消除了對UplinkFast虛擬組播生成過程的需要。
無需進一步配置UplinkFast,因為該機制是原生包含的,並自動在RSTP中啟用。
新的拓撲更改機制
當802.1D網橋檢測到拓撲變化時,它會使用可靠的機制首先通知根網橋。如下圖所示:
一旦根網橋知道網路拓撲的變化,就會在它發出的BPDU上設定TC標誌,然後中繼到網路中的所有網橋。當網橋接收到已設定TC標誌位的BPDU時,它減少了網橋表老化時間,以轉發延遲秒。這可確保較快地刷新過時資訊。這種拓撲更改機制在RSTP中進行了深度改造。拓撲變化的檢測及其在網路中的傳播都在發展。
拓撲變化檢測
在RSTP中,只有移動到轉發狀態的非邊緣埠才會導致拓撲更改。這表示與802.1D相反,不再將連線中斷視為拓撲更改(即移至阻塞的連線埠不再產生TC)。當RSTP網橋檢測到拓撲更改時,會發生以下情況:
註:只要TC While計時器在埠上運行,從該埠傳送的BPDU就會設定TC位。當計時器處於活動狀態時,BPDU也會在根埠上傳送。
拓撲更改傳播
當網橋收到從鄰居設定了TC位的BPDU時,會發生以下情況:
這樣,TCN將很快泛洪到整個網路。TC傳播現在是一個一步的過程。實際上,拓撲更改的發起方會將此資訊泛洪到整個網路,而只有根網橋才泛洪到802.1D。此機制比802.1D等效機制快得多。無需等待根網橋收到通知,然後對整個網路保持拓撲更改狀態<max age plus forward delay>秒。
只需幾秒鐘或幾倍的hello時間,整個網路(VLAN)的CAM表中的大部分條目就會刷新。此方法可能導致更多的臨時泛洪,但另一方面,它清除可能阻止快速連線恢復的過時資訊。
與 802.1D 的相容性
RSTP能夠與傳統STP協定進行互操作。但是,必須注意的是,802.1w與舊式網橋互動時,其固有的快速收斂優勢會喪失。
每個埠都維護一個變數,該變數定義要在相應網段上運行的協定。連線埠啟動時,也會啟動三秒的移轉延遲計時器。當此計時器運行時,與埠關聯的當前STP或RSTP模式將被鎖定。一旦遷移延遲到期,埠就會適應與其接收的下一個BPDU對應的模式。如果連線埠因收到的BPDU而變更其操作模式,則移轉延遲會重新啟動。這限制了可能的模式改變頻率。
例如,假設上圖中的網橋A和B都運行RSTP,交換機A被指定用於網段。在此鏈路上引入了傳統STP網橋C。由於802.1D網橋忽略RSTP BPDU並將其丟棄,因此C認為該網段上沒有其他網橋,並開始傳送其次級802.1D格式的BPDU。交換器A收到這些BPDU,並且在最多兩次hello-time秒後,僅在該連線埠上將其模式變更為802.1D。因此,C現在瞭解交換機A的BPDU,並接受A作為該網段的指定網橋。
請注意,在此特定案例中,如果橋接器C被移除,則橋接器A會在該連線埠上以STP模式執行,即使它能夠與其唯一的鄰居B在RSTP模式下更有效地運作。這是因為A不知道網橋C已從網段中移除。對於此特定(罕見)情況,需要使用者干預,才能手動重新啟動連線埠的通訊協定檢測。
當連線埠處於802.1D相容模式時,它還可以處理拓撲變更通知(TCN)BPDU和已設定TC或TCA位元的BPDU。
結論
RSTP(IEEE 802.1w)原生包含大多數針對802.1D生成樹的思科專有增強功能,例如BackboneFast、UplinkFast和PortFast。RSTP可以在正確配置的網路中實現更快的收斂,有時大約在幾百毫秒內。傳統802.1D計時器(例如轉發延遲和max_age)僅用作備份,如果管理員正確識別並設定了點對點鏈路和邊緣埠,則不需要這些計時器。此外,如果沒有與舊網橋的互動,則不需要計時器。
相關資訊