9.3.1 STP的由來
9.3 理解STP STP(Spanning Tree Protocol,生成樹協(xié)議)與上節(jié)介紹的VLAN的關系非常密切。STP對應IEEE 802.1D標準,主要應用于存在環(huán)路(通俗一點說就是,構(gòu)成了數(shù)據(jù)發(fā)送和接收的循環(huán)路徑)的網(wǎng)絡,通過一定的算法既能實現(xiàn)路徑冗余,同時又可將環(huán)路網(wǎng)絡修剪成無環(huán)路的樹型網(wǎng)絡,從而避免報文在環(huán)路網(wǎng)絡中的增生和無限循環(huán)。 9.3.1 STP的由來 要正確使用STP,就必須先了解它存在的意義或者開發(fā)這種技術(shù)的目的,只有這樣才能更好地理解它的工作原理。前面說了,STP的目的就是消除網(wǎng)絡中冗余的鏈路(當然不是物理消除),下面就來介紹STP是如何實現(xiàn)這個目的的。 二層數(shù)據(jù)網(wǎng)的自愈(就是指在網(wǎng)絡出現(xiàn)故障時的自動修復能力)需求由來已久,早期的以太網(wǎng)橋采用了基于 MAC 地址在不同端口之間的轉(zhuǎn)發(fā),而每一個端口對應的是一個以太網(wǎng)的網(wǎng)段,也就是一個以太網(wǎng)的廣播域,通過學習每個端口的 MAC 地址表的方式,以太網(wǎng)橋只轉(zhuǎn)發(fā)不同端口間的通信。但是由于網(wǎng)橋依賴的是運行網(wǎng)絡中存在的MAC 地址和端口的對應表,所以一旦收到目的地址未知的數(shù)據(jù)包,它仍將利用廣播的形式來尋址,所以,這種方法使得它天生不能隔離廣播包和組播包的通信,其后果就是在一個環(huán)形網(wǎng)絡中造成數(shù)據(jù)流量以指數(shù)形式的增長,從而導致網(wǎng)絡的癱瘓,這種現(xiàn)象也稱為'廣播風暴'。 '廣播風暴'的現(xiàn)象只存在于兩點之間存在冗余鏈路的網(wǎng)絡之中,而冗余鏈路卻是在現(xiàn)實網(wǎng)絡設計中大量存在的。如圖9-5中核心層、匯聚層的交換機間都是有冗余設計的。本來這樣設計的目的就是想當某一條鏈路失效時,另一條冗余的鏈路能夠馬上接管所有的工作。但是,在實際工作中,這些冗余連接還會帶來廣播風暴隱患。 如圖9-5中的Switch 6交換機發(fā)送的數(shù)據(jù)要到達Switch 1,就可以有多條不同路徑了,其中包括:Switch 6→Switch 3→Switch 1,Switch 6→Switch 3→Switch 4→Switch 1,Switch 6→Switch 3→Switch 4→Switch 5→Switch 2→Switch 1這三條。這樣一來,當從Switch 6發(fā)送一個請求數(shù)據(jù)包到Switch 1時,就可能從以上三條路徑中同時流出,顯然這不是必要的,給網(wǎng)絡帶來了不必要的網(wǎng)絡流量壓力。本示例還只是一個很簡單的結(jié)構(gòu),如果結(jié)構(gòu)更復雜的話,冗余連接會更多,對應的冗余鏈路也就是更多,所帶來的廣播風暴將更大。
除了廣播風暴的影響外,這么多冗余鏈路還可能形成網(wǎng)絡環(huán)路,造成數(shù)據(jù)發(fā)送和接收死循環(huán)。同樣以圖9-5為例。在以上三條路徑中,如果不加修剪,從Switch 1上發(fā)送到Switch 6的數(shù)據(jù)包,可能就不會到達Switch 6,而是直接在Switch 1→Switch 3→Switch 4→Switch 1,或者Switch 1→Switch 4→Switch 3→Switch 1,或者Switch 1→Switch 2→Switch 5→Switch 4→Switch 1等多個封閉的環(huán)路上循環(huán)。 為了解決'廣播風暴'和網(wǎng)絡死循環(huán)這兩個在二層數(shù)據(jù)網(wǎng)絡中存在的主要弊端,IEEE(電機和電子工程師學會)在基于思科的STP技術(shù)基礎上頒發(fā)了IEEE 802.1D協(xié)議標準。這種兩種協(xié)議的本質(zhì)其實是一樣的,就是消除網(wǎng)絡拓撲中任意兩點之間可能存在的冗余路徑,將兩點之間存在的多條路經(jīng)劃分為'通信鏈路'和'備份鏈路'。并規(guī)定,數(shù)據(jù)的轉(zhuǎn)發(fā)只在'通信鏈路'上進行,而'備份鏈路'只用于鏈路的偵聽,只有在發(fā)現(xiàn)'通信鏈路徑'失效時,才自動地將通信切換到'備份鏈路'上。 用于正常數(shù)據(jù)轉(zhuǎn)發(fā)的'通信鏈路'往往是最短的路徑,如上一示例中的'Switch 6→Switch 3→Switch 1'這條路徑。但是,STP并不是全部禁用這些冗余鏈路,而只是在正常工作中讓它們處于偵聽狀態(tài),當活躍鏈路失效時才接替活躍鏈路的工作。這樣就可以達到既不會因為冗余鏈路而形成廣播風暴,也不會因為沒有冗余鏈路而造成網(wǎng)絡循環(huán),降低網(wǎng)絡的可用性。 現(xiàn)在的二層以太網(wǎng)交換機和三層以太網(wǎng)交換機采用了硬件電路的設計,保證了每個端口的獨享帶寬。這樣一來,每個交換機都可以看成是一個多個擁有獨立帶寬端口的網(wǎng)橋,用戶可以將它的每一個端口看作是一個獨立的網(wǎng)橋端口,其二層的工作原理與網(wǎng)橋類似。為了實現(xiàn)在用戶接入層、匯聚層甚至骨干層范圍內(nèi)的高可靠性,網(wǎng)絡中關鍵的拓撲設計往往采用冗余鏈路的設計(參見圖9-5),雖然也有其他的技術(shù)可以實現(xiàn)高效的網(wǎng)絡收斂,但是大多數(shù)網(wǎng)絡設計者還是采用了IEEE 802.1D 的方法,原因是生成樹協(xié)議是一項簡單而又成熟的網(wǎng)絡自愈技術(shù)。 9.3.2 STP的基本功能和工作原理
9.3.2 STP的基本功能和工作原理 在網(wǎng)橋或交換機上運行的STP是與IEEE 802.1D標準具有類似功能的,但是它們是兩種不同的鏈路層協(xié)議。因為IEEE 802.1D是以標準形式頒布的,所以應用更廣,所有品牌的網(wǎng)絡設備都可以支持,而STP是由思科開發(fā)的,所以僅在思科自身以及授權(quán)使用的品牌設備上使用。但就目前來看,兩者幾乎是一個統(tǒng)一體,沒什么區(qū)分了,因為IEEE 802.1D幾乎是等同采用思科STP的。 在網(wǎng)橋和交換機上部署STP的目的就是在你既想要有冗余鏈路,又要阻止環(huán)路的情形下阻止在網(wǎng)絡中出現(xiàn)環(huán)路,最終達到降低廣播風暴產(chǎn)生的可能(只能是可能,因為廣播風暴不僅只有網(wǎng)絡環(huán)路才能發(fā)生,還可能是因為專門的廣播包引起的),消除網(wǎng)絡循環(huán)。有時,在網(wǎng)絡設計中,特別是一些比較大型,同時可用性要求高的網(wǎng)絡系統(tǒng)設計時,冗余的鏈路與網(wǎng)絡中故障轉(zhuǎn)移所需的備份同等重要。在主鏈路失效時,通過激活備份鏈路可以使得用戶繼續(xù)連接到網(wǎng)絡。在網(wǎng)橋和交換機上不部署STP,這樣的部署又可能造成網(wǎng)絡環(huán)路出現(xiàn)。如果兩個連接的交換機一個運行STP,另一個運行IEEE 802.1D,則它們需要不同的收斂計時器。 在如圖9-6所示的網(wǎng)絡示例中,在Switch A和Switch B之間存在一條冗余鏈路。但是這種部署可能會創(chuàng)建一個橋接環(huán)路。例如,從Station M(站點M)發(fā)出的一個到Station N(站點N)的廣播或者多播包可能會在兩個交換機之間循環(huán)。 但是,如果在兩個交換機上運行了STP,則網(wǎng)絡的邏輯結(jié)構(gòu)就可看成圖9-7所示。這時在Switch A和Switch B之間就只有一條路徑,從Station M發(fā)出的一個到Station N的廣播或者多播包就不會在兩個交換機之間循環(huán)了,消除了網(wǎng)絡環(huán)路。 為了提供所需的路徑冗余,同時又可以避免環(huán)路發(fā)生,STP定義了一個延伸到網(wǎng)絡中所有交換機的'樹'(只是一種比喻說法,既表示了網(wǎng)絡中各交換機的層次結(jié)構(gòu),又暗示網(wǎng)絡中沒有環(huán)路)。STP強迫冗余數(shù)據(jù)路徑處于備用的阻塞狀態(tài),而使其他路徑處于轉(zhuǎn)發(fā)狀態(tài)。如果處于轉(zhuǎn)發(fā)狀態(tài)的一條鏈路不可用,STP重新配置網(wǎng)絡,并變更數(shù)據(jù)路徑為備用路徑
9.3.3 STP運作規(guī)則
9.3.3 STP運作規(guī)則 在STP中,網(wǎng)絡中所有交換機的關鍵就是選擇根網(wǎng)橋。網(wǎng)絡中的其他確定,如哪個端口置于阻塞模式,哪個端口置于轉(zhuǎn)發(fā)模式,都是需要依據(jù)根網(wǎng)橋才能確定的。在交換網(wǎng)絡中,不同于橋接環(huán)境,更像多VLAN處理。一個交換網(wǎng)絡中,在你執(zhí)行根網(wǎng)橋時,通常是指定根網(wǎng)橋作為根交換機。每個VLAN必須有它自己的根網(wǎng)橋,因為每個VLAN是一個獨立的廣播域。不同VLAN的根網(wǎng)橋可以都是在一臺交換機上,當然也可以在不同交換機上。 【說明】為特定VLAN進行根交換機選舉非常重要。你可以選擇根交換機,或者可以由網(wǎng)絡中的交換機自己決定。如果不控制根交換機選舉過程,可能在你的網(wǎng)絡中會存在不適宜的路徑。 所有交換機交換用于根交換機選舉和以后網(wǎng)絡配置的信息。BPDU承載了這些信息。每個交換機會比較本機發(fā)送到鄰居交換機的BPDU和從鄰居中接收到的BPDU中的參數(shù)。在STP根交換機選舉過程中,參數(shù)值越小越好(優(yōu)先級越高)。如果Switch A通告的根ID比Switch B通告的根ID小,則來自Switch A的信息就越好。Switch B停止它的根ID通告,接受Switch A的根ID通告。 生成樹(ST)的工作方式是為交換機和端口分配角色,以確保在任何時刻交換網(wǎng)絡中點與點之間只有一條路徑。它所分配的端口角色包括根網(wǎng)橋(Root Bridge,RB)、指定網(wǎng)橋(Designated Bridge,DB)、根端口(Root Port,RP)、指定端口(Designated Port,DP)和非指定端口(Nondesignated Port)。 根交換機識別每個VLAN,在根交換機識別后,交換機按照以下STP規(guī)則運作: 首先,根交換機中的所有端口都必須處于轉(zhuǎn)發(fā)狀態(tài)。然后,網(wǎng)絡中的其他每個交換機通過比較交換機上每個端口上接收到的BPDU信息來決定到根交換機的最佳路徑。交換機使用接收到的BPDU中信息最小的端口作為到達根交換機的端口,也就相應交換機的'根端口'。在確定了根端口后,交換機進行以下規(guī)則。 根端口必須設置為轉(zhuǎn)發(fā)模式。另外,每個LAN網(wǎng)段中交換機相互通信,以確定哪臺交換機用于從該網(wǎng)段中轉(zhuǎn)發(fā)數(shù)據(jù)到根交換機,這臺交換機就稱之為'指定交換機'。 在一個LAN網(wǎng)段中,指定交換機上連接到這個網(wǎng)段的端口必須處于轉(zhuǎn)發(fā)狀態(tài)。 所有交換機中的其他端口必須處于阻塞模式。這條規(guī)則僅適用于連接到其他交換機的端口。STP不會影響連接到工作站或者服務器的端口,這些端口必須處于轉(zhuǎn)發(fā)狀態(tài)。 【說明】當STP運行在PVST或PVST+時添加或者刪除VLAN會觸發(fā)VLAN實例ST的重新計算,僅相應VLAN的通信將中斷,中繼鏈路上的其他VLAN仍可以正常通信。在已有的MST實例中添加或者刪除VLAN也會觸發(fā)這個實例的ST重新計算,并且該MST實例中的所有VLAN通信都將中斷。 默認情況下,在每個端口上都運行ST(生成樹)。ST功能不能在交換機上基于每端口方式關閉。盡管不建議,但你仍可以在交換機上基于每VLAN,或者全局方式關閉STP。只要你禁止ST就需要特別小心,因為這可能在網(wǎng)絡內(nèi)部生成二層環(huán)路。 9.3.4 STP角色選舉
9.3.4 STP角色選舉 當交換機第一次啟動,開始了根交換機的選舉過程。每個交換機基于每VLAN方式傳遞一個BPDU到直接連接的交換機上。因為BPDU是通過網(wǎng)絡傳遞的,所以每個交換機會比較該交換機會把自己的BPDU與接收到的BPDU進行比較。然后交換機對哪臺機成為根交換機達成一致意見。在網(wǎng)絡中具有更低網(wǎng)橋ID的交換機將成為根交換機,贏得選舉。 以上STP角色的選舉基本過程如下: (1)首先在整個交換網(wǎng)絡中選舉一個'根網(wǎng)橋'(RB),即選舉一個根交換機。 每個交換網(wǎng)絡中只能有一個網(wǎng)橋擔當'根網(wǎng)橋'。它是通過比較網(wǎng)橋的BPDU(Bridge Protocol Data Unit,橋接協(xié)議數(shù)據(jù)單元)信息來選舉的。在BPDU中包括了'網(wǎng)橋ID'(Bridge ID)。網(wǎng)橋ID包含2個字節(jié)的網(wǎng)橋優(yōu)先級(Bridge Priority)和6個字節(jié)的MAC地址。'網(wǎng)橋ID'的數(shù)值越低,成為'根網(wǎng)橋'的概率也就越高。 (2)確定了'根網(wǎng)橋'后,網(wǎng)絡中的其他交換機就為非根網(wǎng)橋了。此時再為所有'非根網(wǎng)橋'選舉'根端口'(RP)。'根端口'可以發(fā)送和接收'配置BPDU',或者接收BPDU消息包。 '根端口'是'非根網(wǎng)橋'到'根網(wǎng)橋'的最佳路徑所在端口,也即最低開銷的路徑(當然,直接連接的路徑開銷最?。T诿總€'非根網(wǎng)橋'上選舉一個'根端口',也就是'根端口'是針對'非根網(wǎng)橋'而言的,而不是在'根網(wǎng)橋'上,這一點最容易引起誤會。 如果有多條等價路徑(也就是此交換機到根網(wǎng)橋的路徑中所經(jīng)過的交換機躍點數(shù)是一樣,也就是經(jīng)過了相同數(shù)量的交換機),那么'非根網(wǎng)橋'先根據(jù)所直接連接的網(wǎng)橋的'網(wǎng)橋ID'來選擇(不同交換機的'網(wǎng)橋ID'是不一樣的),選擇連接'網(wǎng)橋ID'最低的網(wǎng)橋的端口作為根端口;如果所連接的網(wǎng)橋的'網(wǎng)橋ID'都一樣(也就是一個交換機與另一臺交換機之間有兩個或以上端口直接連接),則再根據(jù)所連網(wǎng)橋的'端口ID'(也就是端口號,每個端口的'端口ID'是不一樣的)最低的那個端口作為'根端口'。 【說明】要顯示交換機上各VLAN中網(wǎng)橋ID中的網(wǎng)橋優(yōu)先級和MAC地址值,可以使用show spanning-tree命令查看。它是用來查看交換機上生成樹配置的。 (3)在各個網(wǎng)段(星型網(wǎng)絡對應于一個交換機端口,而總線型網(wǎng)絡則對應于一條總線)中選舉一個'指定端口'(DP)。'指定端口'所在的交換機就是'指定網(wǎng)橋'(Designated Bridge,DB,也即'指定交換機')。 '指定端口'是相應網(wǎng)段所有端口中到達'根網(wǎng)橋'的路徑開銷最低的端口。在'根網(wǎng)橋'上,所有的端口都為'指定端口',因為它們各自所代表的網(wǎng)段中,到達'根網(wǎng)橋'的路徑為0(就在'根網(wǎng)橋'交換機上),當然最小了。但是并不是說'指定端口'只是在'根網(wǎng)橋'上,'非根網(wǎng)橋'上也有,只是在一個網(wǎng)段中只能有一個'指定端口'。'指定端口'不僅能夠發(fā)送和接收流量,還可以發(fā)送和接收配置消息或BPDU(BPDU的發(fā)送僅針對'根網(wǎng)橋'之上的'指定端口')。 (4)最后,STP封堵所有'非指定端口'。 在STP中,除了'根端口'和'指定端口'外的交換端口都屬于'非指定端口'。'非指定端口'是處于阻塞狀態(tài)的,不能接收和發(fā)送配置信息和BPDU。 【說明】'網(wǎng)橋'連接的是不同網(wǎng)段的設備,而早期的'集線器',或者'中繼器'所連接的不是不同網(wǎng)段,而同一網(wǎng)段(或者說是同一沖突域)的設備,因為網(wǎng)橋的兩個端口不是共享介質(zhì)的,而集線器或者中繼器各端口是共享介質(zhì)的。而交換機可以看成是一個具有多個端口的網(wǎng)橋,每個端口都具有橋接功能。這樣一來,也就可以這么理解,由同一網(wǎng)橋或者交換機端口(其實路由器中的LAN端口也一樣)連接的設備就屬于一個網(wǎng)段。在星型以太網(wǎng)中,最常見的就是按交換機來劃分網(wǎng)段的,一個交換機(根交換機除外)代表一個網(wǎng)段,因為它上面各端口所連接設備到根交換機的通信都是共享一條介質(zhì)的。但它與下級交換機的連接又可根據(jù)不同端口劃分不同的網(wǎng)段,因為它可以連接多個下級交換機。在總線型網(wǎng)絡中,一條總線上連接的設備都屬于一個網(wǎng)段,HUB上連接的也屬同一個網(wǎng)段,但HUB的各端口不能再分網(wǎng)段,因為它們是共享介質(zhì)的。 通過以上端口角色的分配,就可以確保在同一時刻,只能一條性能最佳的鏈路(最佳路徑)為活躍的(每個網(wǎng)絡中只有一個根網(wǎng)橋,每個網(wǎng)段上只有一個指定端口,而每個非根網(wǎng)橋只有一個根端口),其他冗余路徑都處于阻塞狀態(tài)。 也可以這么簡單理解,就是在STP算法中,活躍鏈路只包括:根網(wǎng)橋上的'指定端口'--網(wǎng)段中的'指定端口'--非根網(wǎng)橋的'根端口'。所有包括非指定端口的鏈路都是阻塞的。在如圖9-8所示的示例中,根網(wǎng)橋(Switch X)上的兩個端口都是'指定端口',非根網(wǎng)橋(Switch Y)的一個端口為'根端口',另一個端口為'非指定端口',因為在網(wǎng)段1和網(wǎng)段2中已有一個指定端口了,所以不能再在連接同一個網(wǎng)段的交換機上指定某個端口為'指定端口'。
9.4.1 STP端口狀態(tài)概述
9.4 STP端口狀態(tài) 在STP中,各種類型的端口都有與其對應的工作狀態(tài)的。當然端口狀態(tài)在從交換機啟動到正常工作過程中,可能會發(fā)生一系列的改變。STP中包括的端口狀態(tài)有:阻塞(Blocking)狀態(tài)、偵聽(Listening)狀態(tài)、學習(Learning)狀態(tài)、轉(zhuǎn)發(fā)(Forwarding)狀態(tài)、禁止(Disabled)狀態(tài)。通過這些不同狀態(tài)的分配,就可以使得交換機(或網(wǎng)橋)上的各端口工作在不同狀態(tài),從而達到無網(wǎng)絡環(huán)路的目的。 9.4.1 STP端口狀態(tài)概述 當協(xié)議信息通過一個交換網(wǎng)絡時,可能發(fā)生傳播延時。其結(jié)果往往是交換網(wǎng)絡的拓撲結(jié)構(gòu)可能會隨時發(fā)生改變。當一個原來不在生成樹拓撲結(jié)構(gòu)中的二層端口直接轉(zhuǎn)變成轉(zhuǎn)發(fā)狀態(tài)時,則可能會創(chuàng)建新的臨時數(shù)據(jù)環(huán)路。 端口在正式進行數(shù)據(jù)幀轉(zhuǎn)發(fā)前必須等待新的拓撲信息,然后再通過交換網(wǎng)絡傳播。但是必須允許已使用舊拓撲結(jié)構(gòu)轉(zhuǎn)發(fā)的幀繼續(xù)轉(zhuǎn)發(fā),直到達到幀的生存周期期滿。 每一個使用STP的二層LAN端口存在于以下5種狀態(tài): 阻塞(Blocking):這種二層LAN端口不能參與幀轉(zhuǎn)發(fā)。 偵聽(Listening):這是端口自阻塞狀態(tài)后的第一個過渡狀態(tài)。STP認為這種狀態(tài)的二層LAN端口應當參與幀轉(zhuǎn)發(fā)。 學習(Learning):這種狀態(tài)的二層LAN端口處于準備參與幀轉(zhuǎn)發(fā)狀態(tài)。 轉(zhuǎn)發(fā)(Forwarding):這種狀態(tài)的二層LAN端口就可以正式轉(zhuǎn)發(fā)幀了。 禁止(Disabled):這種狀態(tài)的二層LAN端口不參與STP,不轉(zhuǎn)發(fā)幀。 以上狀態(tài)的二層LAN端口在數(shù)據(jù)通信中可進行以下5個狀態(tài)轉(zhuǎn)變過程: 從初始化到阻塞狀態(tài) 從阻塞到偵聽或者禁用狀態(tài) 從偵聽到學習或者禁用狀態(tài) 從學習到轉(zhuǎn)發(fā)或者禁用狀態(tài) 從轉(zhuǎn)發(fā)到禁用狀態(tài) 圖9-9描述了一個二層LAN端口是如何進行以上這5個狀態(tài)轉(zhuǎn)變的。 當你啟用了STP,在設備開啟電源后,每個端口和網(wǎng)絡都要經(jīng)歷阻塞、偵聽、學習這類的過渡狀態(tài)。如果有適當?shù)呐渲茫總€二層LAN端口最終會穩(wěn)定到轉(zhuǎn)發(fā)或者禁用狀態(tài)。圖中的實線流程表示一個基本的狀態(tài)轉(zhuǎn)變過程,虛線流程表示在實際的端口狀態(tài)轉(zhuǎn)變過程中可能發(fā)生的狀態(tài)轉(zhuǎn)變過程。 當STP算法把一個二層LAN端口置于轉(zhuǎn)發(fā)狀態(tài),將發(fā)生以下過程: (1)當二層LAN端口等待協(xié)議信息時置于偵聽狀態(tài),建議置于阻塞狀態(tài)。 (2)二層LAN端口等待轉(zhuǎn)發(fā)延時(Forward delay,此步包括由偵聽狀態(tài)到學習狀態(tài)所需經(jīng)歷的等待時間)到期,轉(zhuǎn)變這個二層LAN端口為學習狀態(tài),并重置轉(zhuǎn)發(fā)延時計數(shù)器(Forward delay timer)。 (3)在學習狀態(tài)下,這個二層LAN端口繼續(xù)阻止幀轉(zhuǎn)發(fā),以便它可以從轉(zhuǎn)發(fā)數(shù)據(jù)庫中學習到終端位置信息。 (4)這個二層LAN端口再次等待轉(zhuǎn)發(fā)延時(此步是由學習狀態(tài)到轉(zhuǎn)發(fā)狀態(tài)所需經(jīng)歷的等待時間)到期,然后轉(zhuǎn)變?yōu)檗D(zhuǎn)發(fā)狀態(tài),此時,學習和轉(zhuǎn)發(fā)這兩種狀態(tài)是同時啟用的。 從以上流程可以看出,在整個端口狀態(tài)轉(zhuǎn)變中,一個端口由初始的阻塞狀態(tài)到轉(zhuǎn)發(fā)狀態(tài)是需要經(jīng)過兩個轉(zhuǎn)發(fā)延時周期的,效率比較低。這是STP最大的不足,也就是它最終被RSTP(快速生成樹協(xié)議)取代的一個重要原因。 以下各節(jié)會具體介紹以上5種端口狀態(tài)。 9.4.2 阻塞狀態(tài)
9.4.2 阻塞狀態(tài) 處于阻塞狀態(tài)的二層LAN端口不參與幀的轉(zhuǎn)發(fā),圖9-10顯示了一個處于阻塞狀態(tài)的二層LAN端口(Port 2)。初始化后,會有一個CBPDU發(fā)送到每個二層LAN端口上的。網(wǎng)絡設備在與其他網(wǎng)絡設備交換CBPDU之前,最初都是假設自己為根的。交換CBPDU后就可以確定網(wǎng)絡中哪個設備可作為根或根網(wǎng)橋。如果在網(wǎng)絡中僅有一個設備,則不會有CBPDU交換過程,在轉(zhuǎn)發(fā)延時到期后,端口就會轉(zhuǎn)變?yōu)閭陕牋顟B(tài)。一個端口在初始化時,總是先置于阻塞狀態(tài)的。 一個處于阻塞狀態(tài)的二層LAN端口可以執(zhí)行以下任務: 丟棄從所在網(wǎng)段中接收到的幀。 丟棄與其他轉(zhuǎn)發(fā)端口交換的幀。 不把終端站點位置信息添加到地址數(shù)據(jù)庫中(因為在阻塞狀態(tài)的二層LAN端口中不具備學習功能,所以不能進行數(shù)據(jù)庫更新)。 接收BPDU,并把它們直接傳到系統(tǒng)模塊(System Module)中。 不傳輸從系統(tǒng)模塊中接收到的BPDU。 接收和響應網(wǎng)絡管理消息。 9.4.3 偵聽狀態(tài)9.4.3 偵聽狀態(tài)偵聽狀態(tài)是二層LAN端口自阻塞狀態(tài)后進入的一個過渡狀態(tài)。當STP確定這個二層LAN端口應當參與幀轉(zhuǎn)發(fā)時,就進入到偵聽狀態(tài)。圖9-11顯示了一個處于偵聽狀態(tài)的二層LAN端口(Port 2)。 圖9-11 處于偵聽狀態(tài)的端口可執(zhí)行任務示意圖一個處于偵聽狀態(tài)的二層LAN端口可以執(zhí)行以下任務:丟棄從所在網(wǎng)段中接收到的幀。丟棄與其他轉(zhuǎn)發(fā)端口交換的幀。不把終端站點位置信息添加到地址數(shù)據(jù)庫中(因為在偵聽狀態(tài)的二層LAN端口中不具備學習功能,所以不能進行數(shù)據(jù)庫更新)。接收BPDU,并把它們直接傳到系統(tǒng)模塊中。接收、處理和傳輸從系統(tǒng)模塊中接收到的BPDU。接收和響應網(wǎng)絡管理消息。
9.4.4 學習狀態(tài)9.4.4 學習狀態(tài)處于學習狀態(tài)的二層LAN端口準備參與幀轉(zhuǎn)發(fā)。它是從偵聽狀態(tài)進入到這個學習狀態(tài)的,圖9-12顯示了一個處于學習狀態(tài)的二層LAN端口(Port 2)。一個處于學習狀態(tài)的二層LAN端口可以執(zhí)行以下任務:丟棄從所在網(wǎng)段中接收到的幀。丟棄與其他轉(zhuǎn)發(fā)端口交換的幀。把終端站點位置信息添加到地址數(shù)據(jù)庫中。接收BPDU,并把它們直接傳到系統(tǒng)模塊中。接收、處理和傳輸從系統(tǒng)模塊中接收到的BPDU。接收和響應網(wǎng)絡管理消息。 圖9-12 處于學習狀態(tài)的端口可執(zhí)行任務示意圖
9.4.5 轉(zhuǎn)發(fā)狀態(tài)9.4.5 轉(zhuǎn)發(fā)狀態(tài)處于轉(zhuǎn)發(fā)狀態(tài)的二層LAN端口可以正式轉(zhuǎn)發(fā)幀了,如圖9-13顯示了一個處于轉(zhuǎn)發(fā)狀態(tài)的二層LAN端口(Port 2)。二層LAN端口是從學習狀態(tài)進入到轉(zhuǎn)發(fā)狀態(tài)的。 圖9-13 處于轉(zhuǎn)發(fā)狀態(tài)的端口可執(zhí)行任務示意圖一個處于轉(zhuǎn)發(fā)狀態(tài)的二層LAN端口可以執(zhí)行以下任務:轉(zhuǎn)發(fā)從所在網(wǎng)段中接收到的幀。轉(zhuǎn)發(fā)與其他轉(zhuǎn)發(fā)端口交換的幀。把終端站點位置信息添加到地址數(shù)據(jù)庫中。接收BPDU,并把它們直接傳到系統(tǒng)模塊中。處理從系統(tǒng)模塊中傳遞的BPDU。接收和響應網(wǎng)絡管理消息。
9.4.6 禁用狀態(tài)
9.4.6 禁用狀態(tài) 處于禁用狀態(tài)的二層LAN端口不參與幀轉(zhuǎn)發(fā)或者STP,如圖9-14所示顯示了一個處于禁用狀態(tài)的二層LAN端口(Port 2)。事實上,這種把二層端口置于禁用狀態(tài)的行為是不建議的,因為這相當于一種浪費。 一個處于禁用狀態(tài)的二層LAN端口會執(zhí)行以下任務: 丟棄從所在網(wǎng)段中接收到的幀。 丟棄與其他轉(zhuǎn)發(fā)端口交換的幀。 不把終端站點位置信息添加到地址數(shù)據(jù)庫中(因為在禁用狀態(tài)的二層LAN端口中不具備學習功能,所以不能進行數(shù)據(jù)庫更新)。 不接收BPDU。 不接收系統(tǒng)模塊中傳遞的BPDU。 9.5.1 RSTP概述
9.5 理解RSTP RSTP(Rapid Spanning Tree Protocol,快速生成樹協(xié)議)是在IEEE 802.1W標準中定義的,是基于IEEE 802.1D的STP技術(shù)而提出的。它解決的就是STP技術(shù)中網(wǎng)絡收斂速度不夠快的不足。但基本工作原理與STP還是基本一樣的,只是在端口角色和狀態(tài)定義上有所改變,以便加速網(wǎng)絡收斂速度。 9.5.1 RSTP概述 RSTP與前面介紹的STP類似,是通過快速生成樹算法在交換網(wǎng)絡中阻斷部分冗余路徑,建立起無環(huán)路的樹狀網(wǎng)絡RSTP所采用的快速生成樹算法與生成樹算法一樣,也是一個分布式算法。RSTP運行在一個橋接網(wǎng)絡中的所有網(wǎng)橋(或者交換機)上,負責為該橋接網(wǎng)絡計算出簡單連通的樹形活躍拓撲結(jié)構(gòu)(Active Topology)。計算時也是先選擇一個網(wǎng)橋作為樹根(即'根網(wǎng)橋'),同時為所有網(wǎng)橋的所有端口指定角色。 與STP相比,RSTP算法基本和IEEE 802.1D標準中定義的STP算法一致,唯一不同的是RSTP解決了STP算法對任何端口只要從Blocking(阻塞)狀態(tài)遷移到Forwarding(轉(zhuǎn)發(fā))狀態(tài)必須經(jīng)過2倍Forward-Delay(包括由偵聽狀態(tài)到學習狀態(tài)的等待時間和由學習狀態(tài)到轉(zhuǎn)發(fā)狀態(tài)的等待時間)時間的缺點。它利用點對點連接,針對各種端口在拓撲結(jié)構(gòu)中角色的不同,對某些端口實現(xiàn)了從Blocking狀態(tài)到Forwarding狀態(tài)的瞬間遷移或快速遷移,提供快速地生成樹收斂,可以少于1秒的時間內(nèi)重新配置生成樹(在802.1D生成樹中默認是50秒)。 RSTP在STP基礎上做了以下3個重要改進(也是RSTP的主要優(yōu)勢),使得收斂速度快得多(最快1秒以內(nèi))。 (1)為'根端口'和'指定端口'設置了快速切換用的'替換端口'(Alternate Port)和'備份端口'(Backup Port)兩種角色。當'根端口'和'指定端口'失效時,'替換端口'和'備份端口'就會無時延地進入轉(zhuǎn)發(fā)狀態(tài)。有關RSTP的端口狀態(tài)將在下節(jié)具體介紹。 (2)在只連接了兩個交換端口的點對點鏈路中,'指定端口'只需與下級網(wǎng)橋進行一次握手就可以無時延地進入轉(zhuǎn)發(fā)狀態(tài)。但如果是連接了三個以上網(wǎng)橋的共享鏈路,下級網(wǎng)橋是不會響應上級'指定端口'發(fā)出的握手請求的,也只能像STP一樣等待兩倍'Forward Delay'時間才能進入轉(zhuǎn)發(fā)狀態(tài)。 (3)把直接與終端相連而不是與其他網(wǎng)橋相連的端口定義為'邊緣端口'(Edge Port)。'邊緣端口'可以直接進入轉(zhuǎn)發(fā)狀態(tài),不需要任何延時。但由于網(wǎng)橋無法知道端口是否是直接與終端相連,所以需要人工配置。 由上可見,RSTP協(xié)議相對于STP協(xié)議的改進主要體現(xiàn)在端口狀態(tài)上。為了支持這些改進,BPDU的格式做了一些修改,但RSTP協(xié)議仍然向下兼容STP協(xié)議,可以混合組網(wǎng)。雖然如此,RSTP和STP一樣同屬于單生成樹SST(Single Spanning-Tree),所以它仍具有它自身的以下不足: (1)由于整個交換網(wǎng)絡只有一棵生成樹,在網(wǎng)絡規(guī)模比較大的時候會導致較長的收斂時間,拓撲改變的影響面也較大。 (2)在網(wǎng)絡結(jié)構(gòu)不對稱的時候,單生成樹就會影響網(wǎng)絡的連通性。 (3)當鏈路被阻塞后將不承載任何流量,造成了帶寬的極大浪費,這在環(huán)形城域網(wǎng)的情況下比較明顯。 這些缺陷都是單生成樹SST無法克服的,于是支持VLAN的多生成樹(MST)協(xié)議出現(xiàn)了。 9.5.2 RSTP端口角色和拓撲結(jié)構(gòu)
9.5.2 RSTP端口角色和拓撲結(jié)構(gòu) RSTP通過分配端口角色和學習動態(tài)拓撲結(jié)構(gòu)提供快速生成樹收斂。RSTP依賴802.1D STP選舉具有最高優(yōu)先權(quán)(優(yōu)先權(quán)數(shù)字最小的那個)的交換機擔當'根網(wǎng)橋'。RSTP根據(jù)端口在活動拓撲中的作用,定義了5種端口角色(STP只有3種角色):禁用端口(Disabled Port)、根端口(Root Port)、指定端口(Designated Port)、為支持RSTP的快速特性規(guī)定的替代端口(Alternate Port)和備份端口(Backup Port)。具體如下: 根端口(Root Port):這是STP中就有的一種端口角色。當交換機轉(zhuǎn)發(fā)包到根網(wǎng)橋時,'根端口'可以提供最小的路徑開銷(Path Cost)。 指定端口(Designated Port):這也是STP中就有的一種端口角色。該類端口連接到指定的交換機,在從該交換機上轉(zhuǎn)發(fā)來自LAN中的包到'根網(wǎng)橋'時,該端口可以提供最小的路徑開銷。通過指定交換機與LAN連接的端口稱之為'指定端口'。與STP一樣,每個網(wǎng)段內(nèi)必須有一個指定端口。'根網(wǎng)橋'上的端口都是'指定端口',但非根網(wǎng)幫中也可以有指定端口,這與STP中的'指定端口'是一樣的。 替代端口(Alternate Port):這是RSTP特有的一種端口角色。該類端口為當前'根端口'到'根網(wǎng)橋'提供一條替代路徑。 備份端口(Backup Port):這是RSTP特有的一種端口角色。該類端口為'指定端口'到達生成樹葉提供一條備份路徑。'備份端口'僅當兩個端口在一個由一個點對點鏈路組成的環(huán)路上連接時,或者當交換機有兩個或多個到達共享LAN網(wǎng)段的連接時可以存在。 禁用端口(Disabled Port):這也是STP中就有的一種端口角色。該類端口在生成樹操作中沒有擔當任何角色,不參與RSTP運算。 一個具有根或指定角色的端口是包括在活躍拓撲結(jié)構(gòu)中的,而一個具有交替或備份角色的端口是不在活躍拓撲結(jié)構(gòu)之中的。 在一個有一致端口角色的穩(wěn)定拓撲結(jié)構(gòu)中,RSTP會確保根和指定端口立即轉(zhuǎn)變?yōu)檗D(zhuǎn)發(fā)狀態(tài),而同時交替和備份端口總是處于丟棄狀態(tài)(相當于802.1D中的阻塞狀態(tài))。端口狀態(tài)控制了轉(zhuǎn)發(fā)和學習進程的控制。表9-1提供了802.1D STP和RSTP所包含的端口狀態(tài)比較。 表9-1 STP和RSTP所包含的端口狀態(tài)比較
由以上可以看出,RSTP只有3種端口狀態(tài):Discarding(丟棄)、Leaning(學習)和Forwarding(轉(zhuǎn)發(fā)),它把STP中的Blocking(阻塞)、Listening(偵聽)和Disabled(禁用)統(tǒng)一用一種狀態(tài)--Discarding(丟棄)替代。這樣一來的好處就是一個端口從初始狀態(tài)轉(zhuǎn)變?yōu)檗D(zhuǎn)發(fā)狀態(tài)只需要一個轉(zhuǎn)發(fā)延時周期時間,也就是從學習狀態(tài)到轉(zhuǎn)發(fā)狀態(tài)所需等待的時間。在活躍拓撲結(jié)構(gòu)中,只有'學習'和'轉(zhuǎn)發(fā)'這兩種狀態(tài)的端口。 9.5.3 RSTP的快速收斂原理
9.5.3 RSTP的快速收斂原理 RSTP可以在一個交換機,或者一個交換端口,甚至一個VLAN失效時快速恢復網(wǎng)絡的連通性。所采用的機制就是'建議-同意握手'(proposal-agreement handshake)機制。它為以下邊緣端口、新的根端口,以及通過點到點鏈路而連接的端口提供了快速收斂: 邊緣端口(Edge port):'邊緣端口'是直接連接終端站點的網(wǎng)橋端口。如果在一個RSTP交換機上通過使用spanning-tree portfast接口配置命令把一個端口配置為邊緣端口,則這個邊緣端口會立即轉(zhuǎn)變?yōu)檗D(zhuǎn)發(fā)狀態(tài)。一個邊緣端口同時作為一個啟用了端口快速(PortFast)功能的端口,應當在它僅與單一終端站點連接時啟用它。 根端口(Root Port):如果RSTP選舉一個新的根端口,它將阻塞舊的根端口,并且立即轉(zhuǎn)變這個新的根端口為轉(zhuǎn)發(fā)狀態(tài)。 點對點鏈接(Point-to-point Link):如果你通過一個點對點鏈路把一個端口與另一個端口連接起來,并且本地端口成為指定端口,則該端口將使用'建議-同意握手'機制與其他端口進行協(xié)商,以確保有一個可用的環(huán)路。 圖9-15是一個RSTP端口角色轉(zhuǎn)換示例,在圖中的DP為'指定端口',RP為'根端口',F(xiàn)代表相應端口處于轉(zhuǎn)發(fā)狀態(tài)。 在圖(1)中,Switch A是通過一個點對點鏈路與Switch B連接的,并且所有端口是處于阻塞狀態(tài)的。假設Switch A的優(yōu)先權(quán)高于Switch B,所以Switch A成為'根網(wǎng)橋'。Switch A先通過它的一個'指定端口'(根網(wǎng)橋上的端口都是'指定端口')發(fā)送一個建議消息(一個配置有建議標記設置的BPDU)到Switch B,建議由它自己作為指定交換機。 在Switch B收到這條建議消息(Proposal Message)后,它就會選舉接收這條建議消息的端口作為它的新根端口(如圖(2)所示),強迫所有非邊緣端口置于阻塞狀態(tài),并通過這個新的根端口發(fā)送一個同意消息(Agreement Message,一個配置有同意標記設置的BPDU),如圖(2)所示。 在Switch A接收到了Switch B發(fā)來的同意消息后,立即轉(zhuǎn)變連接的兩個端口為轉(zhuǎn)發(fā)狀態(tài)。因為Switch B阻止了它上面的所有非邊緣端口,在Switch A和Switch B之間就成了一條點對點鏈路,這樣一來在網(wǎng)絡中不會形成環(huán)路。 當Switch C再與Switch B連接時,同樣會存在像Switch A與Switch B之間的握手消息交換。Switch C首先通過接收從中得來的建議消息,選舉與Switch B連接的端口作為它的根端口,如圖(3)所示。然后Switch C向Switch B發(fā)送一條同意消息,在Switch B收到這條同意消息后,就把連接Switch C與Switch B的這兩個端口立即轉(zhuǎn)變?yōu)檗D(zhuǎn)發(fā)狀態(tài)。 在新交換機加入到這個活躍的拓撲結(jié)構(gòu)中時,會重復以上的握手過程。作為網(wǎng)絡匯聚,這個'建議-同意'握手進程是從根網(wǎng)橋指向生成樹葉(也是生成樹的最末端)的,一級級進行。 交換機從端口雙工模式中學習到鏈路類型:一個全雙工模式端口被認為具有一個點對點連接,半雙工模式的端口被認為具有一個共享的連接??梢酝ㄟ^使用spanning-tree link-type接口配置命令進行的默認雙工設置。 9.5.4 RSTP端口角色同步原理
9.5.4 RSTP端口角色同步原理 這里同樣以一個示例進行介紹,如圖9-16所示。當一個交換機一個端口上接收到一個建議消息(Proposal Message)時,這個端口就被選舉為新的'根端口',如圖9-16中的1、6、7。RSTP強迫所有其他端口與這個新的'根端口'信息同步(本節(jié)所講的'同步'是指'根端口'信息的同步,因為一臺交換機上只能有一個'根端口')。如果所有其他端口是同步的,則交換機使用在'根端口'上接收到的上級根信息進行同步,但以下類型端口是不在同步之列的: 處于阻塞狀態(tài)的端口 邊緣端口(配置在邊緣網(wǎng)絡中) 如果一個'指定端口'是在轉(zhuǎn)發(fā)狀態(tài),而不是配置為'邊緣端口',在RSTP強迫與新的根信息同步時,同時轉(zhuǎn)變該端口將為阻塞狀態(tài),如圖中的2和3。通常,在RSTP強迫一個端口去與根信息同步,而端口并不信任根信息中的環(huán)境時,該端口將轉(zhuǎn)變?yōu)樽枞麪顟B(tài)。 在確保所有端口(除阻塞端口狀態(tài)端口和邊緣端口外)同步后,交換機會在其'根端口'上發(fā)送一個建議消息(Agreement Message)到與之相連的交換機上的'指定端口'上,如圖中的4、8、10。當通過點對點鏈路進行連接的交換機在端口角色方面達成一致時,RSTP立即轉(zhuǎn)變點對點鏈路上的交換機端口為轉(zhuǎn)發(fā)狀態(tài),如圖中的5、9、11。也就是原來是阻塞狀態(tài)的端口可以通過一次握手協(xié)商立即轉(zhuǎn)變?yōu)檗D(zhuǎn)發(fā)狀態(tài),不要再經(jīng)過由阻塞狀態(tài)到偵聽狀態(tài),再由偵聽狀態(tài)到學習狀態(tài),最后由學習狀態(tài)到轉(zhuǎn)發(fā)狀態(tài)這三次握手過程。整個過程由STP中的兩倍轉(zhuǎn)發(fā)延時變?yōu)橐粋€轉(zhuǎn)發(fā)延時了。這也就是'快速生成樹協(xié)議'中'快速'的真正含義了。 9.6.1 MST概述
9.6 理解MSTP 前面介紹的STP和RSTP都是針對單一生成樹實例進行應用的。由于單生成樹實例是每個實例對應一個VLAN,這樣一來不僅生成樹實例可能會非常多,難以管理,還沒有一個容錯機制,容易出現(xiàn)單點失效。 按照PVST、PVST+等協(xié)議的規(guī)則,就應該每個VLAN一個生成樹,而且是每隔2秒就會發(fā)送一個BPDU。這對于一個有著上千個VLAN的網(wǎng)絡來說,一方面這么多生成樹維護起來比較困難,另一方面,為每個VLAN每隔2秒就發(fā)送一個BPDU,交換機也是難以承受的。為了解決這一問題,Cisco就開發(fā)新的生成樹技術(shù)--MST。 MSTP(Multiple Spanning Tree Protocol,多生成樹協(xié)議)就是對網(wǎng)絡中眾多的VLAN進行分組,一些VLAN分到一個組里,另外一些VLAN分到另外一個組里。這里的'組'就是后面講的MST實例(Instance)。每個實例一個生成樹,BPDU是只對實例進行發(fā)送的,這樣就可以既達到了負載均衡,又沒有浪費帶寬,因為不是每個VLAN一個生成樹,這樣所發(fā)送的BPDU數(shù)量明顯減少了。 9.6.1 MST概述 【注意】并不是所有的Cisco以太網(wǎng)交換機都支持MSTP,如運行Cisco IOS 12.1(14)EA1以前版本的Catalyst 3750、Catalyst 2950等早期系列交換機就不支持MST。 MSTP對應的標準是IEEE 802.1S。MSTP把IEEE 802.1W標準中的RSTP(Rapid Spanning Tree Protocol,快速生成樹協(xié)議)算法擴展到多生成樹,在為多VLAN環(huán)境提供了快速收斂的同時也實現(xiàn)了負載均衡的功能。MST比PVST+(對應IEEE 802.1D標準)收斂快,并且和802.1D、802.1W生成樹,以及PVST+結(jié)構(gòu)兼容。 MSTP允許通過中繼來構(gòu)建多個生成樹,可以組合和關聯(lián)多個VLAN到生成樹實例(Spanning Tree Instance,SPI)。每個實例可以有一個獨立于其他生成樹實例的拓撲結(jié)構(gòu)。這種新的架構(gòu)為數(shù)據(jù)通信和負載均衡提供了多個轉(zhuǎn)發(fā)路徑。也提供了網(wǎng)絡容錯機制,因為一個實例(也就是一個轉(zhuǎn)發(fā)路徑)的失效不會影響其他實例。 在大型的網(wǎng)絡中,你可以輕易地管理網(wǎng)絡,并且通過定位于不同VLAN的冗余路徑使用冗余路徑,為網(wǎng)絡中的不同部分分配生成樹實例。生成樹實例僅可以在兼容VLAN實例的網(wǎng)橋設備中存在。你必須為網(wǎng)絡中的網(wǎng)橋設備配置相同的MST配置信息,以使它們參與到指定的的生成樹實例中。具有相同MST配置,相互連接的網(wǎng)橋是指MST區(qū)域。 MSTP具有如下特性: (1)MSTP運行的生成樹變量稱之為IST(Internal Spanning Tree,內(nèi)部生成樹)。 IST通過添加MST區(qū)域中的內(nèi)部信息而增加了CST(Common Spanning Tree,公共生成樹)信息。MST表現(xiàn)為一個單一網(wǎng)橋到鄰接的單生成樹(Single Spanning Tree,SST)和MST區(qū)域。有關IST、CIST、CST的關系將在后面小節(jié)中介紹。 (2)一個運行MSTP的網(wǎng)橋會按照以下方式提供與單生成樹橋的互操作性: MST網(wǎng)橋運行IST,IST用有關MST區(qū)域的內(nèi)部信息來增加CST的信息。 IST連接區(qū)域中的所有MST網(wǎng)橋,并且是表現(xiàn)為包括整個橋接域的CST中的一個子樹。MST區(qū)域表現(xiàn)為與鄰接的SST網(wǎng)橋和MST區(qū)域的虛擬橋接。 CIST(Common and Internal Spanning Tree,公共和內(nèi)部生成樹)是每個MST區(qū)域中的內(nèi)部生成樹(IST)、互連MST區(qū)域的CST和SST橋接的集合。STP、RSTP和MSTP共同選舉一個單獨網(wǎng)橋來做為CIST的根網(wǎng)橋。 (3)MSTP在每個MST區(qū)域內(nèi)部建立和維護額外的生成樹。 這些生成樹就是指MST實例(MST Instance,MSTI)。IST的實例號為0,MSTI的實例號為1、2、3等。任何MSTI都是位于MST區(qū)域內(nèi)部,與另一個MST區(qū)域的MSTI無關,即使這兩個MST區(qū)域是相互連接的MSTI的生成樹信息包含在MSTP記錄(M-record)中。MSTP記錄總是封裝在MST的BPDU中。由MSTP計算的原始生成樹叫做M樹(M-tree),M樹只在MST區(qū)域內(nèi)部活躍。M樹和位于MST區(qū)域邊界IST合并形成CST。 (4)通過為非CST VLAN產(chǎn)生的PVST+ BPDU,MST提供與PVST+的互操作性。 (5)MST支持PVST+的以下一些擴展: 在MST模式中UplinkFast和BackboneFast特性無效,但在RSTP中支持這些特性。 支持PortFast特性。 在MST模式中支持BPDU過濾(BPDUFilter)和BPDU保護(BPDU Guard)。 在MST模式中支持環(huán)路保護(Loop Guard)和根保護(Root Guard)特性。 對于私有VLAN(Private VLAN),從VLAN必須和主VLAN映射到同一個實例。 MSTP常應用于骨干和分布式的二層交換網(wǎng)絡中。這種部署在服務提供商環(huán)境中提供了一種高可用性。MSTP通過消除802.1D協(xié)議中的轉(zhuǎn)發(fā)延時,快速轉(zhuǎn)變根網(wǎng)橋端口和指定端口成為轉(zhuǎn)發(fā)狀態(tài)的這種內(nèi)在握手機制來加快生成樹的收斂。 MSTP改善了生成樹操作,并保持與以下STP版本兼容: 以前的802.1D生成樹 現(xiàn)存的Cisco專用的MISTP(Multiple Instance STP,多實例生成樹協(xié)議) 現(xiàn)存的增強型Cisco每VLAN生成樹協(xié)議(PVST+) 增強型快速每VLAN生成樹(Rapid-PVST+) 【說明】在MST中涉及許多術(shù)語,如MST區(qū)域、IST、CIST、CST、MSTI等。理解并區(qū)分這些術(shù)語對于理解MST工作原理非常重要。所以下面分別對以上這些術(shù)語進行具體解釋。 9.6.2 MST區(qū)域
9.6.2 MST區(qū)域 為了使交換機參與MST實例,必須在交換機中始終配置相同的MST配置信息。相同MST配置的互聯(lián)交換機包含一個MST區(qū)域(MST region),如圖9-17所示。 MST配置控制每個交換機屬于哪個MST區(qū)域。其配置包括區(qū)域名稱、版本號和MST VLAN到實例的分配映射。 一個區(qū)域有一個或多個具有相同MST配置的成員,每個成員都必須能處理RSTP BPDU。一個網(wǎng)絡的MST區(qū)域中的成員數(shù)是沒有限制的,但是每個區(qū)域最多只支持65個生成樹實例(是在IOS 12.25XH及以上版本時),也就是說最多有65個VLAN組。實例可以由一個0~4094范圍中的任一數(shù)字標識。你可以分配一個VLAN在同一時刻僅屬于一個生成樹實例中。 要形成一個MST區(qū)域,網(wǎng)橋可以是以下任意一種情形: 一個MST網(wǎng)橋僅是一個MST區(qū)域成員。 通過一個局域網(wǎng)互聯(lián)MST網(wǎng)橋。一個局域網(wǎng)中的'指定網(wǎng)橋'具有與MST網(wǎng)橋相同的MST配置。局域網(wǎng)中的所有網(wǎng)橋都可以處理MST BPDU。 如果你連接兩個具有不同MST配置的MST區(qū)域,MST區(qū)域進行如下操作: 通過網(wǎng)絡中的冗余路徑提供負載均衡。如果兩個MST區(qū)域是冗余連接的,但在同一時刻,在網(wǎng)絡MST區(qū)域中的所有通信流都在單一連接上傳輸。 提供RSTP握手,以啟用在MST區(qū)域間的快速收斂。但是這種握手機制不及兩個網(wǎng)橋間的收斂速度快。為了阻止環(huán)路,所有區(qū)域中的網(wǎng)橋必須統(tǒng)一與其他區(qū)域中的連接,這樣就可以減少延時。不建議分割網(wǎng)絡為多個區(qū)域。 1.邊界端口 一個邊界端口(Boundary Port)就是連接一個局域網(wǎng)、一個SST網(wǎng)橋,或者一個不同MST區(qū)域中的一個'指定網(wǎng)橋'的端口。如果檢測到一個STP網(wǎng)橋,或者接收到一個來自一個RST或者具有不同配置的MST網(wǎng)橋上的同意消息,則可識別該端口為'指定端口'。 在邊界端口中,與MST端口角色無關。它們的狀態(tài)強制與IST端口狀態(tài)一致。如果端口設置了邊界標記,MSTP端口角色選擇一種方法為邊界分配端口角色,并且分配與IST端口相同的狀態(tài)。在邊界中的IST端口可以是除了備份端口角色外的任何角色。 在Cisco預標準中,一個邊界端口是連接一個MST區(qū)域到以下這些STP區(qū)域之一: 一個運行RSTP的單生成樹區(qū)域 一個運行PVST+或者PVST+的單生成樹區(qū)域 另一個具有不同MST配置的MST區(qū)域 一個邊緣端口也可以連接一個局域網(wǎng),指定的交換機可以是一個單生成樹交換機,或者是一個具有不同MST配置的交換機。 在802.1S標準中沒有定義邊界端口。802.1Q-2002標準定義了一個端口可以接收的兩種消息類型:內(nèi)部消息(來自同一個區(qū)域中的消息)和外部消息。當是外部消息時,僅可以由CIST接收。如果這個CIST角色或根或者交替交換機,或者外部BPDU是拓撲結(jié)構(gòu)改變消息,則可能會在MST實例中出現(xiàn)沖突。當是內(nèi)部消息時,屬于CIST部分的則由CIST接收,每個MST實例接收它自己的M記錄(M-record)。 2.IST主 這是IEEE 802.1S預標準中的概念。注意:在最后的版本中是沒有'IST主'這個說法的。在最后版本中,是以'CIST區(qū)域根'替代的。 一個MST區(qū)域的IST主是具有最低網(wǎng)橋ID和具有到達CST根網(wǎng)橋的最低路徑開銷的網(wǎng)橋。如果MST網(wǎng)橋是CST根網(wǎng)橋,則就是MST區(qū)域的IST主。如果CST根網(wǎng)橋在MST區(qū)域外部,則位于邊界的一個MST網(wǎng)橋被選舉為IST主。其他位于邊界的網(wǎng)橋?qū)儆谕粋€區(qū)域,以阻止這些指向CST根網(wǎng)橋的邊界端口的通信。 如果區(qū)域邊界中的兩個或多個網(wǎng)橋具有相同的路徑到達CST根網(wǎng)橋,可以設置一個更低網(wǎng)橋優(yōu)先級值的網(wǎng)橋作為IST主。
9.6.3 IST、CST和CIST
9.6.3 IST、CST和CIST 本節(jié)將介紹的IST、CIST和CST這幾個術(shù)語。 1.IST、CST和CIST概述 與其他生成樹協(xié)議中所有生成樹實例都是獨立的不同,MST建立和維護如IST、CST和CIST這樣既有獨立性一面,又可以有相互關聯(lián)的多種生成樹實例。 IST(Internal Spanning Tree,內(nèi)部生成樹)是MST區(qū)域中的一個生成樹實例。在每個MST區(qū)域內(nèi)部,MST維護著多個生成樹實例。實例0是一個特殊的實例(其實可以與VLAN 1類比,VLAN 1是交換機默認的管理VLAN,也是交換機默認的本地VLAN),那就是此處所說的IST。所有其他MST實例號只能在1~4094之間,也可以把IST看成是每個MST區(qū)域的外在表現(xiàn)。默認情況下,所有VLAN是分配到IST實例中的。 IST是僅發(fā)送和接收BPDU的生成樹實例,所有其他生成樹實例信息是包含在MST記錄(MSTP record,又稱'M記錄')中,是用MST BPDU進行封裝的。因為MST BPDU攜帶了所有實例信息,這樣在支持多個生成樹實例時所需要處理的BPDU數(shù)量就會大大減少。 在同一個MST區(qū)域中的所有MST實例共享相同的協(xié)議計時器,但是每個MST實例有它們自己的拓撲結(jié)構(gòu)參數(shù),例如根網(wǎng)橋ID、根路徑開銷等。但是,一個MST實例是與所在區(qū)域相關的,例如,區(qū)域A中的MST實例1與在區(qū)域B中的MST實例1是無關的,即使區(qū)域A和區(qū)域B是互聯(lián)的。 CST(Common Spanning Tree,公共生成樹)是用來互聯(lián)MST區(qū)域的單生成樹。如果把每個MST區(qū)域看作是一個'設備',CST就是這些'設備'通過STP協(xié)議、RSTP協(xié)議計算生成的一棵生成樹。在每個MST區(qū)域中計算出的生成樹都是作為包含整個交換域的CST的子樹出現(xiàn)的。 CIST(Common and Internal Spanning Tree,公共和內(nèi)部生成樹)是連接一個交換網(wǎng)絡內(nèi)所有設備的單生成樹,由IST和CST共同構(gòu)成。 由上可知,從包含的范圍來看,IST是最小的,僅屬于一個MST區(qū)域內(nèi)部,CST次之,則是MST區(qū)域間的互聯(lián)生成樹實例,而CIST則最大,包括了IST和CST。 除了IST、CST和CIST外,還有以下幾個術(shù)語: MSTI:一個MST域內(nèi)可以通過MSTP算法生成多棵生成樹,各棵生成樹之間彼此獨立。每棵生成樹都稱為一個MSTI(Multiple Spanning Tree Instance,多生成樹實例)。 區(qū)域根網(wǎng)橋(Region Root Bridge):MST域內(nèi)MSTI的根橋就是域根。MST域內(nèi)各棵生成樹的拓撲不同,區(qū)域根也可能不同,也稱之為'MST區(qū)域根'。 公共根網(wǎng)橋(Common Root Bridge):是指CIST的根橋,也就是整個網(wǎng)絡中的根網(wǎng)橋,也稱為'CIST區(qū)域根'。 2.在一個MST區(qū)域內(nèi)的生成樹操作 當IST時,IST的根成為CIST最初的根(稱為執(zhí)行IEEE 802.1S 預標準中的'IST主'),如圖9-17所示。如果在網(wǎng)絡中只有一個區(qū)域的話,'CIST區(qū)域根'也稱為'CST根'。如果CIST中超出了某個區(qū)域,則在這個區(qū)域中的一臺骨干MST交換機會被選舉成為CIST區(qū)域根。 當一個MST交換機初始化時,它發(fā)送標識自己為CIST根和CIST區(qū)域根的BPDU,BPDU中到達CIST根和CIST區(qū)域根的路徑開銷為0。交換機也初始化所有它自己的MST實例和作為根的主張。如果交換機接收到一個比當前端口上存儲的具有更高級的MST根信息(也就是具有更低交換機ID、更低路徑開銷等)時,該交換機就會放棄作為CIST區(qū)域根的主張。 在初始化過程中,一個區(qū)域可能有多個子區(qū)域,每個子區(qū)域擁有它自己的CIST區(qū)域根。當交換機接收到來自同一個區(qū)域中的鄰居交換機的更高IST信息時,它們會離開其原來的子區(qū)域,加入到新的包含真正CIST區(qū)域根的子區(qū)域中。這樣一來就會導致所有子區(qū)域會縮減,除了那個包含真正CIST區(qū)域根的子區(qū)域。 正確的操作是所有在MST區(qū)域中的交換機必須與同一CIST區(qū)域根保持一致。這樣一來,區(qū)域中的任何兩臺交換機,如果要聚合成一個公用CIST區(qū)域根,則僅需要對一個MST實例同步它們的端口角色。 3.在MST區(qū)域間的生成樹操作 如果在一個網(wǎng)絡中有多個MST區(qū)域,或者802.1D交換機,MST建立和維護著網(wǎng)絡中包括所有MST區(qū)域和所有802.1D STP交換機的CST。MST實例是與區(qū)域邊界的IST組合,形成CST。 IST連接著一個區(qū)域中的所有MST交換機,并且是作為整個交換域中CIST的子樹表現(xiàn)的。子樹的根是CIST區(qū)域根。MST區(qū)域的表現(xiàn)形式就是作為鄰接STP交換機和MST區(qū)域的虛擬網(wǎng)橋,也就是一個虛擬的網(wǎng)橋設備。 圖5-25顯示了一個具有三個MST區(qū)域(A、B、C結(jié)點)和一個802.1D交換機(D結(jié)點)的網(wǎng)絡。MST區(qū)域1的CIST區(qū)域根也是CST根,MST區(qū)域2和MST區(qū)域3中的CIST區(qū)域根是CIST內(nèi)各自子樹的根。 只有CST實例發(fā)送和接收BPDU,MST實例添加它們的生成樹信息到BPDU中,以便與鄰居交換機連接,并計算出最后的生成樹拓撲結(jié)構(gòu)。這樣一來,凡是涉及BPDU傳播的生成樹參數(shù)(如hello時間、轉(zhuǎn)發(fā)時間、最長壽命、最大跳數(shù)等)僅在CST實例上配置,但是會影響到所有MST實例。涉及生成樹拓撲結(jié)構(gòu)的參數(shù)(如交換機優(yōu)先權(quán)、端口VLAN開銷和端口VLAN優(yōu)先權(quán)等)則可以在CST實例和MST實例中配置。 MST交換機使用版本3的BPDU或者802.1D STP BPDU來與802.1D交換機通信。MST交換機使用MST BPDU與MST交換機通信。 4.IEEE 802.1S術(shù)語 在以前執(zhí)行的標準中有一些命名協(xié)定已更改,包括一些internal和regional參數(shù)。這些參數(shù)僅用于MST區(qū)域內(nèi)部,區(qū)別于應用于跨越整個網(wǎng)絡中的那些參數(shù)。因為CIST僅是整個網(wǎng)絡的生成樹實例,僅CIST參數(shù)需要外部限定,而不是內(nèi)部或區(qū)域限定。 CIST根(CIST root)是CIST的根網(wǎng)橋,它是跨越整個網(wǎng)絡的唯一實例。 CIST外部根路徑開銷(CIST external root path cost)是到CIST根的開銷。這個開銷在一個MST區(qū)域中是保持不變的。MST中的成員,對CIST看來像單一交換機。CIST外部根路徑開銷是根據(jù)這些虛擬交換機和不屬于任何區(qū)域的交換機之間的根路徑開銷計算的。 CIST區(qū)域根(CIST regional root)在IEEE 802.1s預標準中被稱之為'IST主'(IST master)。如果CST根是在區(qū)域中,'CIST區(qū)域根'就是'CIST根'。否則,'CIST區(qū)域根'是到達'CIST根'最近的交換機。'CIST區(qū)域根'是作為IST的根交換機。 CIST內(nèi)部根路徑開銷(CIST internal root path cost)是一個區(qū)域中交換機到達CIST區(qū)域根的開銷。這個開銷僅與IST(實例0)有關。 表9-2是IEEE標準和Cisco預標準術(shù)語的比較。 表9-2 預標準與正式標準的術(shù)語比較
|
|