07-生成樹配置
本章節下載: 07-生成樹配置 (1014.66 KB)
生成樹協議是一種二層管理協議,它通過選擇性地阻塞網絡中的冗餘鏈路來消除二層環路,同時還具備鏈路備份的功能。最初的生成樹協議為STP(Spanning Tree Protocol,生成樹協議),之後又發展出RSTP(Rapid Spanning Tree Protocol,快速生成樹協議)、PVST(Per-VLAN Spanning Tree,每VLAN生成樹)和MSTP(Multiple Spanning Tree Protocol,多生成樹協議)。
STP由IEEE製定的802.1D標準定義,用於在局域網中消除數據鏈路層物理環路的協議。運行該協議的設備通過彼此交互信息發現網絡中的環路,並有選擇的對某些端口進行阻塞,最終將環路網絡結構修剪成無環路的樹型網絡結構,從而防止報文在環路網絡中不斷增生和無限循環,避免設備由於重複接收相同的報文造成的報文處理能力下降的問題發生。
STP包含了兩個含義,狹義的STP是指IEEE 802.1D中定義的STP協議,廣義的STP是指包括IEEE 802.1D定義的STP協議以及各種在它的基礎上經過改進的生成樹協議。
STP采用的協議報文是BPDU(Bridge Protocol Data Unit,網橋協議數據單元),也稱為配置消息。本文中將生成樹協議的協議報文均簡稱為BPDU。
STP通過在設備之間傳遞BPDU來確定網絡的拓撲結構。BPDU中包含了足夠的信息來保證設備完成生成樹的計算過程。STP協議的BPDU分為以下兩類:
· 配置BPDU(Configuration BPDU):用來進行生成樹計算和維護生成樹拓撲的報文。
· TCN BPDU(Topology Change Notification BPDU,拓撲變化通知BPDU):當拓撲結構發生變化時,用來通知相關設備網絡拓撲結構發生變化的報文。
網橋之間通過交互配置BPDU來進行根橋的選舉以及端口角色的確定。配置BPDU的格式如圖1-1所示。
配置BPDU中BPDU數據的信息包括:
· 協議類型(Protocol ID):固定為0x0000,表示生成樹協議。
· 協議版本號(Protocol Version ID):目前生成樹有三個版本,STP的協議版本號為0x00.
· BPDU類型:配置BPDU類型為0x00。
· BPDU Flags位:BPDU標誌位,表示是哪種BPDU。由8位組成,最低位(0位)為TC(Topology Change,拓撲改變)標誌位;最高位(7位)為TCA(Topology Change Acknowledge,拓撲改變確認)標誌位;其他6位保留。
· 根橋(Root Bridge)ID:由根橋的優先級和MAC地址組成。
· 根路徑開銷:到根橋的路徑開銷。
· 指定橋ID:由指定橋的優先級和MAC地址組成。
· 指定端口ID:由指定端口的優先級和該端口的全局編號組成。
· Message Age:BPDU在網絡中傳播的生存期。
· Max Age:BPDU在設備中的最大生存期。
· Hello Time:BPDU的發送周期。
· Forward Delay:端口狀態遷移的延遲時間。
其中通過根橋ID、路徑開銷、指定橋ID、指定端口ID、Message Age、Max Age、Hello Time和Forward Delay信息來保證設備完成生成樹的計算過程。
如圖1-2所示,TCN BPDU和配置BPDU在結構上基本相同,也是由源/目的MAC地址、L/T位、邏輯鏈路頭和BPDU數據組成。但是TCN BPDU的BPDU數據組成非常簡單,隻包含三部分信息:協議類型、協議版本號和BPDU類型。協議類型和協議版本號字段和配置BPDU相同,BPDU類型字段的值為0x80,表示該BPDU為TCN BPDU。
TCN BPDU有兩個產生條件:
· 網橋上有端口轉變為Forwarding狀態,且該網橋至少包含一個指定端口。
· 網橋上有端口從Forwarding狀態或Learning狀態轉變為Blocking狀態。
當上述兩個條件之一滿足時,說明網絡拓撲發生了變化,網橋需要使用TCN BPDU通知根橋。根橋可以通過將配置BPDU中對應標誌位置位來通知所有網橋網絡拓撲發生了變化,需要使用較短的MAC地址老化時間,保證拓撲的快速收斂。
樹形的網絡結構必須有樹根,於是STP引入了根橋的概念。根橋在全網中有且隻有一個,其他設備則稱為葉子節點。根橋會根據網絡拓撲的變化而改變,因此根橋並不是固定的。
在網絡初始化過程中,所有設備都視自己為根橋,生成各自的配置BPDU並周期性地向外發送;但當網絡拓撲穩定以後,隻有根橋設備才會向外發送配置BPDU,其他設備則對其進行轉發。
所謂根端口,是指非根橋設備上離根橋最近的端口。根端口負責與根橋進行通信。非根橋設備上有且隻有一個根端口,根橋上沒有根端口。
有關指定橋與指定端口的含義,請參見表1-1的說明。
分類 |
指定橋 |
指定端口 |
對於一台設備而言 |
與本機直接相連並且負責向本機轉發BPDU的設備 |
指定橋向本機轉發BPDU的端口 |
對於一個局域網而言 |
負責向本網段轉發BPDU的設備 |
指定橋向本網段轉發BPDU的端口 |
如圖1-3所示,Device B和Device C與LAN直接相連。如果Device A通過Port A1向Device B轉發BPDU,則Device B的指定橋就是Device A,指定端口就是Device A上的Port A1;如果Device B負責向LAN轉發BPDU,則LAN的指定橋就是Device B,指定端口就是Device B上的Port B2。
STP的端口有5種工作狀態。如表1-2所示。
表1-2 STP的端口狀態
狀態 |
描述 |
Disabled |
該狀態下的端口沒有激活,不參與STP的任何動作,不轉發用戶流量 |
Listening |
該狀態下的端口可以接收和發送BPDU,但不轉發用戶流量 |
Learning |
該狀態下建立無環的轉發表,不轉發用戶流量 |
Forwarding |
該狀態下的端口可以接收和發送BPDU,也轉發用戶流量 |
Blocking |
該狀態下的端口可以接收BPDU,但不轉發用戶流量 |
路徑開銷是STP協議用於選擇鏈路的參考值。STP協議通過計算路徑開銷,選擇較為“強壯”的鏈路,阻塞多餘的鏈路,將網絡修剪成無環路的樹型網絡結構。
STP的拓撲計算過程如下:設備通過比較不同端口收到的BPDU報文的優先級高低,選舉出根橋、根端口、指定端口,完成生成樹的計算,建立對應的樹形拓撲。
各設備的各端口在初始時會生成以本設備為根橋的BPDU,根路徑開銷為0,指定橋ID為自身設備ID,指定端口為本端口。
網絡初始化時,需要在網絡中所有的STP設備中選擇一個根橋,根橋的選擇方式有以下兩種:
· 自動選舉:網絡初始化時,網絡中所有的STP設備都認為自己是“根橋”,根橋ID為自身的設備ID。通過交換BPDU,設備之間比較根橋ID,網絡中根橋ID最小的設備被選為根橋。
· 手工指定:用戶手工將設備配置為指定生成樹的根橋或備份根橋。
¡ 在一棵生成樹中,生效的根橋隻有一個,當兩台或兩台以上的設備被指定為同一棵生成樹的根橋時,係統將選擇MAC地址最小的設備作為根橋。
¡ 用戶可以在每棵生成樹中指定一個或多個備份根橋。當根橋出現故障或被關機時,如果配置了一個備份根橋,則該備份根橋可以取代根橋成為指定生成樹的根橋;如果配置了多個備份根橋,則MAC地址最小的備份根橋將成為指定生成樹的根橋。但此時若配置了新的根橋,則備份根橋將不會成為根橋。
根端口和指定端口的選擇過程如表1-3所示。
表1-3 根端口和指定端口的選擇過程
步驟 |
內容 |
1 |
非根橋設備將接收最優BPDU(最優BPDU的選擇過程如表1-4所示)的那個端口定為根端口 |
2 |
設備根據根端口的BPDU和根端口的路徑開銷,為每個端口計算一個指定端口BPDU: · 根橋ID替換為根端口的BPDU的根橋ID; · 根路徑開銷替換為根端口BPDU的根路徑開銷加上根端口對應的路徑開銷; · 指定橋ID替換為自身設備的ID; · 指定端口ID替換為自身端口ID。 |
3 |
設備將計算出的BPDU與角色待定端口自己的BPDU進行比較: · 如果計算出的BPDU更優,則該端口被確定為指定端口,其BPDU也被計算出的BPDU替換,並周期性地向外發送; · 如果該端口自己的BPDU更優,則不更新該端口的BPDU並將該端口阻塞。該端口將不再轉發數據,且隻接收不發送BPDU。 |
當拓撲處於穩定狀態時,隻有根端口和指定端口在轉發用戶流量。其他端口都處於阻塞狀態,隻接收STP協議報文而不轉發用戶流量。
表1-4 最優BPDU的選擇過程
步驟 |
內容 |
1 |
每個端口將收到的BPDU與自己的BPDU進行比較: · 如果收到的BPDU優先級較低,則將其直接丟棄,對自己的BPDU不進行任何處理; · 如果收到的BPDU優先級較高,則用該BPDU的內容將自己BPDU的內容替換掉。 |
2 |
設備將所有端口的BPDU進行比較,選出最優的BPDU |
BPDU優先級的比較規則如下:
· 根橋ID較小的BPDU優先級較高;
· 若根橋ID相同,則比較根路徑開銷:將BPDU中的根路徑開銷與本端口對應的路徑開銷相加,二者之和較小的BPDU優先級較高;
· 若根路徑開銷也相同,則依次比較指定橋ID、指定端口ID、接收該BPDU的端口ID等,上述值較小的BPDU優先級較高。
一旦根橋、根端口和指定端口選舉成功,整個樹形拓撲就建立完畢了。
下麵結合例子說明STP算法實現的具體過程。
圖1-4 STP算法實現過程組網圖
如圖1-4所示,Device A、Device B和Device C的優先級分別為0、1和2,Device A與Device B之間、Device A與Device C之間以及Device B與Device C之間鏈路的路徑開銷分別為5、10和4。
各設備的初始狀態如表1-5所示。
設備 |
端口名稱 |
端口的BPDU |
Device A |
Port A1 |
{0,0,0,Port A1} |
Port A2 |
{0,0,0,Port A2} |
|
Device B |
Port B1 |
{1,0,1,Port B1} |
Port B2 |
{1,0,1,Port B2} |
|
Device C |
Port C1 |
{2,0,2,Port C1} |
Port C2 |
{2,0,2,Port C2} |
表1-5中BPDU各項的具體含義為:{根橋ID,根路徑開銷,指定橋ID,指定端口ID}。
各設備的比較過程及結果如表1-6所示。
設備 |
比較過程 |
比較後端口的BPDU |
Device A |
· Port A1收到Port B1的BPDU {1,0,1,Port B1},發現自己的BPDU {0,0,0,Port A1}更優,於是將其丟棄。 · Port A2收到Port C1的BPDU {2,0,2,Port C1},發現自己的BPDU {0,0,0,Port A2}更優,於是將其丟棄。 · Device A發現自己各端口的BPDU中的根橋和指定橋都是自己,於是認為自己就是根橋,各端口的BPDU都不作任何修改,此後便周期性地向外發送BPDU。 |
· Port A1: {0,0,0,Port A1} · Port A2: {0,0,0,Port A2} |
Device B |
· Port B1收到Port A1的BPDU {0,0,0,Port A1},發現其比自己的BPDU {1,0,1,Port B1}更優,於是更新自己的BPDU。 · Port B2收到Port C2的BPDU {2,0,2,Port C2},發現自己的BPDU {1,0,1,Port B2}更優,於是將其丟棄。 |
· Port B1: {0,0,0,Port A1} · Port B2: {1,0,1,Port B2} |
· Device B比較自己各端口的BPDU,發現Port B1的BPDU最優,於是該端口被確定為根端口,其BPDU不變。 · Device B根據根端口的BPDU和路徑開銷,為Port B2計算出指定端口的BPDU {0,5,1,Port B2},然後與Port B2本身的BPDU {1,0,1,Port B2}進行比較,發現計算出的BPDU更優,於是Port B2被確定為指定端口,其BPDU也被替換為計算出的BPDU,並周期性地向外發送。 |
· 根端口Port B1: {0,0,0,Port A1} · 指定端口Port B2: {0,5,1,Port B2} |
|
Device C |
· Port C1收到Port A2的BPDU {0,0,0,Port A2},發現其比自己的BPDU {2,0,2,Port C1}更優,於是更新自己的BPDU。 · Port C2收到Port B2更新前的BPDU {1,0,1,Port B2},發現其比自己的BPDU {2,0,2,Port C2}更優,於是更新自己的BPDU。 |
· Port C1: {0,0,0,Port A2} · Port C2: {1,0,1,Port B2} |
· Device C比較自己各端口的BPDU,發現Port C1的BPDU最優,於是該端口被確定為根端口,其BPDU不變。 · Device C根據根端口的BPDU和路徑開銷,為Port C2計算出指定端口的BPDU {0,10,2,Port C2},然後與Port C2本身的BPDU {1,0,1,Port B2}進行比較,發現計算出的BPDU更優,於是Port C2被確定為指定端口,其BPDU也被替換為計算出的BPDU。 |
· 根端口Port C1: {0,0,0,Port A2} · 指定端口Port C2: {0,10,2,Port C2} |
|
· Port C2收到Port B2更新後的BPDU {0,5,1,Port B2},發現其比自己的BPDU {0,10,2,Port C2}更優,於是更新自己的BPDU。 · Port C1收到Port A2周期性發來的BPDU {0,0,0,Port A2},發現其與自己的BPDU一樣,於是將其丟棄。 |
· Port C1: {0,0,0,Port A2} · Port C2: {0,5,1,Port B2} |
|
· Device C比較Port C1的根路徑開銷10(收到的BPDU中的根路徑開銷0+本端口所在鏈路的路徑開銷10)與Port C2的根路徑開銷9(收到的BPDU中的根路徑開銷5+本端口所在鏈路的路徑開銷4),發現後者更小,因此Port C2的BPDU更優,於是Port C2被確定為根端口,其BPDU不變。 · Device C根據根端口的BPDU和路徑開銷,為Port C1計算出指定端口的BPDU {0,9,2,Port C1},然後與Port C1本身的BPDU {0,0,0,Port A2}進行比較,發現本身的BPDU更優,於是Port C1被阻塞,其BPDU不變。從此,Port C1不再轉發數據,直至有觸發生成樹計算的新情況出現,譬如Device B與Device C之間的鏈路down掉。 |
· 阻塞端口Port C1: {0,0,0,Port A2} · 根端口Port C2: {0,5,1,Port B2} |
經過上述比較過程之後,以Device A為根橋的生成樹就確定下來了,其拓撲如圖1-5所示。
為了便於描述,本例簡化了生成樹的計算過程,實際的過程要更加複雜。
STP的BPDU傳遞機製如下:
· 當網絡初始化時,所有的設備都將自己作為根橋,生成以自己為根的BPDU,並以Hello Time為周期定時向外發送。
· 接收到BPDU的端口如果是根端口,且接收的BPDU比該端口的BPDU優,則設備將BPDU中攜帶的Message Age按照一定的原則遞增,並啟動定時器為這條BPDU計時,同時將此BPDU從設備的指定端口轉發出去。
· 如果指定端口收到的BPDU比本端口的BPDU優先級低時,會立刻發出自己的更好的BPDU進行回應。
· 如果某條路徑發生故障,則這條路徑上的根端口不會再收到新的BPDU,舊的BPDU將會因為超時而被丟棄,設備重新生成以自己為根的BPDU並向外發送,從而引發生成樹的重新計算,得到一條新的通路替代發生故障的鏈路,恢複網絡連通性。
不過,重新計算得到的新BPDU不會立刻就傳遍整個網絡,因此舊的根端口和指定端口由於沒有發現網絡拓撲變化,將仍按原來的路徑繼續轉發數據。如果新選出的根端口和指定端口立刻就開始數據轉發的話,可能會造成暫時性的環路。
在STP的計算過程中,用到了以下三個重要的時間參數:
· Forward Delay:用於確定狀態遷移的延遲時間。缺省情況下Forward Delay時間為15秒。鏈路故障會引發網絡重新進行生成樹的計算,生成樹的結構將發生相應的變化。不過重新計算得到的新BPDU無法立刻傳遍整個網絡,如果新選出的根端口和指定端口立刻就開始數據轉發的話,可能會造成暫時性的環路。為此,生成樹協議在端口由Blocking狀態向Forwarding狀態遷移的過程中設置了Listening和Learning狀態作為過渡(Listening和Learning狀態都會持續Forward Delay時間),並規定狀態遷移需要等待Forward Delay時間,以保持與遠端的設備狀態切換同步。新選出的根端口和指定端口要經過2倍的Forward Delay延時後才能進入轉發狀態,這個延時保證了新的BPDU已經傳遍整個網絡。
· Hello Time:用於設備檢測鏈路是否存在故障。缺省情況下Hello Time為2秒。生成樹協議每隔Hello Time時間會發送BPDU,以確認鏈路是否存在故障。如果設備在超時時間(超時時間=超時時間因子×3×Hello Time)內沒有收到BPDU,則會由於消息超時而重新計算生成樹。
· Max Age:用於判斷BPDU在設備內的保存時間是否“過時”,設備會將過時的BPDU丟棄。缺省情況下Max Age時間為20秒。在MSTP的CIST上,設備根據Max Age時間來確定端口收到的BPDU是否超時。如果端口收到的BPDU超時,則需要對該MSTI重新計算。Max Age時間對MSTP的MSTI無效。
STP每隔一個Hello Time發送一個BPDU,並且引入Keepalive機製。Hello包的發送可以避免最大失效定時器溢出。如果最大失效定時器溢出,通常表明有連接錯誤發生。此時,STP會進入Listening狀態。STP要從連接錯誤中恢複過來,一般需要50秒的時間。其中BPDU最長的失效時間20秒;Listening狀態持續15秒;Learning狀態持續15秒。
為保證網絡拓撲的快速收斂,需要配置合適的時間參數。上述三個時間參數之間應滿足以下關係,否則會引起網絡的頻繁震蕩:
· 2×(Forward Delay-1秒)≥Max Age
· Max Age≥2×(Hello Time+1秒)
RSTP由IEEE製定的802.1w標準定義,它在STP基礎上進行了改進,實現了網絡拓撲的快速收斂。其“快速”體現在,當一個端口被選為根端口和指定端口後,其進入轉發狀態的延時將大大縮短,從而縮短了網絡最終達到拓撲穩定所需要的時間。
RSTP也是通過在設備之間傳遞BPDU來確定網絡的拓撲結構。RSTP的BPDU格式和STP的配置BPDU格式非常相似,僅在以下幾個信息有所不同:
· BPDU類型變為0x02,表示為RSTP的BPDU。
· BPDU協議版本號為0x02,表示為RSTP協議。
· Flags位字段使用了全8位。
· RSTP在BPDU報文的最後增加了Version1 Length字段。該字段的值為0x00,表示本BPDU中不包含Version 1內容。
在拓撲改變時,RSTP的拓撲改變處理過程不再使用TCN BPDU,而使用Flags位中TC置位的RST BPDU取代TCN BPDU,並通過泛洪方式快速的通知到整個網絡。
RSTP中根端口和指定端口角色的定義和STP相同。與STP相比,RSTP增加了三種端口角色替換端口(Alternate Port)、備份端口(Backup Port)和邊緣端口(Edge Port)。
· 替換端口為網橋提供一條到達根橋的備用路徑,當根端口或主端口被阻塞後,替換端口將成為新的根端口或主端口。
· 備份端口為網橋提供了到達同一個物理網段的冗餘路徑,當指定端口失效後,備份端口將轉換為新的指定端口。當開啟了生成樹協議的同一台設備上的兩個端口互相連接而形成環路時,設備會將其中一個端口阻塞,該端口就是備份端口。
· 邊緣端口是不與其他設備或網段連接的端口,邊緣端口一般與用戶終端設備直接相連。
RSTP將端口狀態縮減為三個,分別為Discarding、Learning和Forwarding狀態。STP中的Disabled、Blocking和Listening狀態在RSTP中都對應為Discarding狀態,如表1-7所示。
表1-7 RSTP的端口狀態
STP端口狀態 |
RSTP端口狀態 |
是否發送BPDU |
是否進行MAC地址學習 |
是否收發用戶流量 |
Disabled |
Discarding |
否 |
否 |
否 |
Blocking |
Discarding |
否 |
否 |
否 |
Listening |
Discarding |
是 |
否 |
否 |
Learning |
Learning |
是 |
是 |
否 |
Forwarding |
Forwarding |
是 |
是 |
是 |
進行RSTP計算時,端口會在Discarding狀態完成角色的確定,當端口確定為根端口和指定端口後,經過Forward Delay端口會進入Learning狀態;當端口確定為替換端口,端口會維持在Discarding狀態。
處於Learning狀態的端口其處理方式和STP相同,開始學習MAC地址並在Forward Delay後進入Forwarding狀態開始收發用戶流量。
在RSTP中,根端口的端口狀態快速遷移的條件是:本設備上舊的根端口已經停止轉發數據,而且上遊指定端口已經開始轉發數據。
在RSTP中,指定端口的端口狀態快速遷移的條件是:指定端口是邊緣端口(即該端口直接與用戶終端相連,而沒有連接到其他設備或共享網段上)或者指定端口與點對點鏈路(即兩台設備直接相連的鏈路)相連。如果指定端口是邊緣端口,則指定端口可以直接進入轉發狀態;如果指定端口連接著點對點鏈路,則設備可以通過與下遊設備握手,得到響應後即刻進入轉發狀態。
相比於STP,RSTP對BPDU的發送方式做了改進,RSTP中網橋可以自行從指定端口發送RST BPDU,不需要等待來自根橋的RST BPDU,BPDU的發送周期為Hello Time。
由於RSTP中網橋可以自行從指定端口發送RST BPDU,所以在網橋之間可以提供一種保活機製,即在一定時間內網橋沒有收到對端網橋發送的RST BPDU,即可認為和對端網橋的連接中斷。
RSTP規定,若在三個連續的Hello Time時間內網橋沒有收到對端指定橋發送的RST BPDU,則網橋端口保存的RST BPDU老化,認為與對端網橋連接中斷。新的老化機製大大加快了拓撲變化的感知,從而可以實現快速收斂。
在RSTP中,如果阻塞狀態的端口收到低優先級的RST BPDU,也可以立即對其做出回應。
如圖1-6,網絡中Device A為根橋,Device C阻塞和Device B相連的端口。當Device B和根橋之間的鏈路中斷時,Device B會發送以自己為根橋的RST BPDU。Device C收到Device B發送的RST BPDU後,經過比較,Device B的值RST BPDU為低優先級的RST BPDU,所以Device C的端口會立即對該RST BPDU做出回應,發送優先級更高的RST BPDU。Device B收到Device C發送的RST BPDU後,將會停止發送RST BPDU,並將和Device C連接的端口確定為根端口。
圖1-6 RSTP對低優先級RST BPDU的處理
STP和RSTP在局域網內的所有網橋都共享一棵生成樹,不能按VLAN阻塞冗餘鏈路,所有VLAN的報文都沿著一棵生成樹進行轉發。而PVST則可以在每個VLAN內都擁有一棵生成樹,能夠有效地提高鏈路帶寬的利用率。PVST可以簡單理解為在每個VLAN上運行一個RSTP協議,不同VLAN之間的生成樹完全獨立。
運行PVST的H3C設備可以與運行Rapid PVST或PVST的第三方設備互通。當運行PVST的H3C設備之間互聯,或運行PVST的H3C設備與運行Rapid PVST的第三方設備互通時,H3C設備支持像RSTP一樣的快速收斂。
如圖1-7,從報文結構對上看,PVST的BPDU和RSTP的BPDU不同在於以下幾點:
· 報文的目的MAC地址改變,變為私有MAC地址01-00-0c-cc-cc-cd。
· 報文攜帶VLAN標簽,確定該協議報文歸屬的VLAN。
· 報文配置消息固定鏈路頭字段添加Organization code和PID字段。
圖1-7 PVST報文格式
根據端口類型的不同,PVST所發送的BPDU格式也有所差別:
· 對於Access端口,PVST將根據該VLAN的狀態發送RSTP格式的BPDU。
· 對於Trunk端口和Hybrid端口,PVST將在缺省VLAN內根據該VLAN的狀態發送RSTP格式的BPDU,而對於其他本端口允許通過的VLAN,則發送PVST格式的BPDU。
PVST借助MSTP的實例和VLAN映射關係模型,將MSTP每個實例映射一個VLAN。PVST中每個VLAN獨立運行RSTP,獨立運算,並允許以每個VLAN為基礎開啟或關閉生成樹。每個VLAN內的生成樹實例都有單獨的網絡拓撲結構,相互之間沒有影響。這樣既可以消除了VLAN內的冗餘環路,還可以實現不同VLAN間負載分擔。
PVST在缺省VLAN上通過RSTP報文進行拓撲運算;在其他VLAN上通過帶VLAN Tag的PVST報文進行拓撲運算。
PVST的端口角色和端口狀態和RSTP相同,能夠實現快速收斂,請參見“1.2.2 RSTP的基本概念”。
MSTP由IEEE製定的802.1s標準定義,相比於STP、RSTP和PVST,MSTP的優點如下:
· MSTP把一個交換網絡劃分成多個域,每個域內形成多棵生成樹,生成樹之間彼此獨立。生成樹間獨立計算,實現快速收斂。
· MSTP通過設置VLAN與生成樹的對應關係表(即VLAN映射表),將VLAN與生成樹聯係起來。並通過“實例”的概念,將多個VLAN捆綁到一個實例中,從而達到了節省通信開銷和降低資源占用率的目的。
· MSTP將環路網絡修剪成為一個無環的樹型網絡,避免報文在環路網絡中的增生和無限循環,同時還提供了數據轉發的多個冗餘路徑,不同VLAN的流量沿各自的路徑轉發,實現VLAN數據的負載分擔。
· MSTP兼容STP和RSTP,部分兼容PVST。
如圖1-8,MST BPDU和RST BPDU的前36個字節格式是相同的,其中BPDU協議版本號為0x03,表示MSTP協議,BPDU類型為0x02,表示為RST/MST BPDU。
圖1-8 MSTP的BPDU格式
RST BPDU中的Root ID字段在MSTP中表示CIST(Common and Internal Spanning Tree,公共和內部生成樹)總根ID,Root Path Cost字段在MSTP中表示CIST外部路徑開銷(External Path Cost,EPC),Bridge ID字段在MSTP中表示CIST域根ID,Port ID字段在MSTP中表示CIST指定端口ID。
從第37字節開始是MSTP的專有字段:
· Version3 Length:表示MSTP專有字段長度,該字段用於接收到BPDU後進行校驗。
· MST配置標識(Configuration ID):包含格式選擇符(Format Selector)、域名(Configuration Name)、修訂級別(Revision Level)和配置摘要(Configuration Digest)四個字段。其中格式選擇符字段固定為0x00,其餘三個字段用來判斷網橋是否屬於某MST域。
· CIST內部路徑開銷(Internal Root Path Cost,IRPC):表示發送此BPDU的網橋到達CIST域根的路徑開銷。
· CIST Bridge ID:表示發送此BPDU的網橋ID。
· CIST剩餘跳數:用來限製MST域的規模。從CIST域根開始,BPDU每經過一個網橋的轉發,跳數就被減1;網橋將丟棄收到的跳數為0的BPDU,使出於最大跳數外的網橋無法參與生成樹的計算,從而限製了MST域的規模。CIST剩餘跳數默認值為20。
· MSTI Configuration Messages:包含0個或最多64個MSTI(Multiple Spanning Tree Instance,多生成樹實例)配置信息,MSTI配置信息數量由域內MST實例數決定,每一個MSTI配置信息長度為16字節。
圖1-9 MSTP的基本概念示意圖
圖1-10 MST域3詳圖
在如圖1-9所示的交換網絡中有四個MST域,每個MST域都由四台設備構成,所有設備都運行MSTP;為了看清MST域內的情形,我們以MST域3為例放大來看,如圖1-10所示。下麵就結合這兩張圖來介紹一些MSTP中的基本概念:
MST域(Multiple Spanning Tree Regions,多生成樹域)是由交換網絡中的多台設備以及它們之間的網段所構成。這些設備具有下列特點:
· 都開啟了生成樹協議。
· 域名相同。
· VLAN與MSTI間映射關係的配置相同。
· MSTP修訂級別的配置相同。
· 這些設備之間有物理鏈路連通。
一個交換網絡中可以存在多個MST域,用戶可以通過配置將多台設備劃分在一個MST域內。如在圖1-9所示的網絡中就有MST域1~MST域4這四個MST域,每個域內的所有設備都具有相同的MST域配置。
一個MST域內可以通過MSTP生成多棵生成樹,各生成樹之間彼此獨立並分別與相應的VLAN對應,每棵生成樹都稱為一個MSTI(Multiple Spanning Tree Instance,多生成樹實例)。如在圖1-10所示的MST域3中,包含有三個MSTI:MSTI 1、MSTI 2和MSTI 0。
VLAN映射表是MST域的一個屬性,用來描述VLAN與MSTI間的映射關係。如圖1-10中MST域3的VLAN映射表就是:VLAN 1映射到MSTI 1,VLAN 2和VLAN 3映射到MSTI 2,其餘VLAN映射到MSTI 0。MSTP就是根據VLAN映射表來實現負載分擔的。
CST(Common Spanning Tree,公共生成樹)是一棵連接交換網絡中所有MST域的單生成樹。如果把每個MST域都看作一台“設備”,CST就是這些“設備”通過STP協議、RSTP協議計算生成的一棵生成樹。如圖1-9中的藍色線條描繪的就是CST。
IST(Internal Spanning Tree,內部生成樹)是MST域內的一棵生成樹,它是一個特殊的MSTI,通常也稱為MSTI 0,所有VLAN缺省都映射到MSTI 0上。如圖1-10中的MSTI 0就是MST域3內的IST。
CIST(Common and Internal Spanning Tree,公共和內部生成樹)是一棵連接交換網絡內所有設備的單生成樹,所有MST域的IST再加上CST就共同構成了整個交換網絡的一棵完整的單生成樹,即CIST。如圖1-9中各MST域內的IST(即MSTI 0)再加上MST域間的CST就構成了整個網絡的CIST。
域根(Regional Root)就是MST域內IST或MSTI的根橋。MST域內各生成樹的拓撲不同,域根也可能不同。如在圖1-10所示的MST域3中,MSTI 1的域根為Device B,MSTI 2的域根為Device C,而MSTI 0(即IST)的域根則為Device A。
總根(Common Root Bridge)就是CIST的根橋。如圖1-9中CIST的總根就是MST域1中的某台設備。
端口在不同的MSTI中可以擔任不同的角色。如圖1-11所示,在由Device A、Device B、Device C和Device D共同構成的MST域中,Device A的端口Port A1和Port A2連向總根方向,Device B的端口Port B2和Port B3相連而構成環路,Device C的端口Port C3和Port C4連向其他MST域,Device D的端口Port D3直接連接用戶主機。
如圖1-11所示,MSTP計算過程中涉及到的主要端口角色有以下幾種:
· 根端口(Root Port):在非根橋上負責向根橋方向轉發數據的端口就稱為根端口,根橋上沒有根端口。
· 指定端口(Designated Port):負責向下遊網段或設備轉發數據的端口就稱為指定端口。
· 替換端口(Alternate Port):是根端口和主端口的備份端口。當根端口或主端口被阻塞後,替換端口將成為新的根端口或主端口。
· 備份端口(Backup Port):是指定端口的備份端口。當指定端口失效後,備份端口將轉換為新的指定端口。當開啟了生成樹協議的同一台設備上的兩個端口互相連接而形成環路時,設備會將其中一個端口阻塞,該端口就是備份端口。
· 邊緣端口(Edge Port):不與其他設備或網段連接的端口就稱為邊緣端口,邊緣端口一般與用戶終端設備直接相連。
· 主端口(Master Port):是將MST域連接到總根的端口(主端口不一定在域根上),位於整個域到總根的最短路徑上。主端口是MST域中的報文去往總根的必經之路。主端口在IST/CIST上的角色是根端口,而在其他MSTI上的角色則是主端口。
· 域邊界端口(Boundary Port):是位於MST域的邊緣、並連接其他MST域或MST域與運行STP/RSTP的區域的端口。主端口同時也是域邊界端口。在進行MSTP計算時,域邊界端口在MSTI上的角色與CIST的角色一致,但主端口除外——主端口在CIST上的角色為根端口,在其他MSTI上的角色才是主端口。
MSTP中的端口狀態可分為三種,如表1-8所示。同一端口在不同的MSTI中的端口狀態可以不同。
表1-8 MSTP的端口狀態
狀態 |
描述 |
Forwarding |
該狀態下的端口可以接收和發送BPDU,也轉發用戶流量 |
Learning |
是一種過渡狀態,該狀態下的端口可以接收和發送BPDU,但不轉發用戶流量 |
Discarding |
該狀態下的端口可以接收和發送BPDU,但不轉發用戶流量 |
端口狀態和端口角色是沒有必然聯係的,表1-9給出了各種端口角色能夠具有的端口狀態(“√”表示此端口角色能夠具有此端口狀態;“-”表示此端口角色不能具有此端口狀態)。
端口角色(右) 端口狀態(下) |
根端口/主端口 |
指定端口 |
替換端口 |
備份端口 |
Forwarding |
√ |
√ |
- |
- |
Learning |
√ |
√ |
- |
- |
Discarding |
√ |
√ |
√ |
√ |
MSTP將整個二層網絡劃分為多個MST域,各域之間通過計算生成CST;域內則通過計算生成多棵生成樹,每棵生成樹都被稱為是一個MSTI,其中的MSTI 0也稱為IST。MSTP同STP一樣,使用BPDU進行生成樹的計算,隻是BPDU中攜帶的是設備上MSTP的配置信息。
通過比較BPDU後,在整個網絡中選擇一個優先級最高的設備作為CIST的根橋。在每個MST域內MSTP通過計算生成IST;同時MSTP將每個MST域作為單台設備對待,通過計算在域間生成CST。CST和IST構成了整個網絡的CIST。
在MST域內,MSTP根據VLAN與MSTI的映射關係,針對不同的VLAN生成不同的MSTI。每棵生成樹獨立進行計算,計算過程與STP計算生成樹的過程類似,請參見“1.1.3 STP的拓撲計算過程”。
MSTP中,一個VLAN報文將沿著如下路徑進行轉發:
· 在MST域內,沿著其對應的MSTI轉發;
· 在MST域間,沿著CST轉發。
MSTP同時兼容STP和RSTP。STP和RSTP的協議報文都可以被運行MSTP協議的設備識別並應用於生成樹計算。設備除了提供MSTP的基本功能外,還從用戶的角度出發,提供了如下便於管理的特殊功能:
· 根橋保持。
· 根橋備份。
· 根保護功能。
· BPDU保護功能。
· 環路保護功能。
· 防TC-BPDU攻擊保護功能。
· 端口角色限製功能。
· TC-BPDU傳播限製功能。
· 支持接口板的熱插拔,同時支持主控板與備用主控板的倒換。
在STP中,為避免臨時環路,端口從開啟到進入轉發狀態需要等待默認30秒的時間,如果想要縮短這個時間,隻能手工方式將Forward Delay設置為較小值。但是Forward Delay是由Hello Time和網絡直徑共同決定的一個參數,如果將Forward Delay設置太小,可能會導致臨時環路的產生,影響網絡的穩定性。
目前,RSTP/PVST/MSTP都支持快速收斂機製。快速收斂機製包括邊緣端口機製、根端口快速切換機製、指定端口快速切換機製。其中指定端口快速切換機製也稱為P/A(Proposal/Agreement,請求/回應)機製。
當端口直接與用戶終端相連,而沒有連接到其他網橋或局域網網段上時,該端口即為邊緣端口。
邊緣端口連接的是終端,當網絡拓撲變化時,邊緣端口不會產生臨時環路,所以邊緣端口可以略過兩個Forward Delay的時間,直接進入Forwarding狀態,無需任何延時。
由於網橋無法自動判斷端口是否直接與終端相連,所以用戶需要手工將與終端連接的端口配置為邊緣端口。
圖1-12 邊緣端口示意圖
當舊的根端口進入阻塞狀態,網橋會選擇優先級最高的替換端口作為新的根端口,如果當前新根端口連接的對端網橋的指定端口處於Forwarding狀態,則新根端口可以立刻進入Forwarding狀態。
如圖1-13,Device C有兩個端口,一個為根端口另一個為替換端口,當根端口鏈路中斷時,替換端口會立刻成為新的根端口並進入Forwarding狀態,期間不需要延時。
P/A機製是指指定端口可以通過與對端網橋進行一次握手,即可快速進入轉發狀態,期間不需要任何定時器。P/A機製的前提條件是:握手必須在點到點鏈路上進行。有點到點鏈路作為前提,P/A機製可以實現網絡拓撲的逐鏈路收斂,而不必像STP,需要被動等待30秒的時間以確保全網實現收斂。
當新鏈路連接或故障鏈路恢複時,鏈路兩端的端口初始都為指定端口並處於阻塞狀態。當指定端口處於Discarding狀態和Learning狀態,其所發送的BPDU中Proposal位將被置位,端口角色為指定端口。收到Proposal置位的BPDU後,網橋會判斷接收端口是否為根端口,如果是,網橋會啟動同步過程。同步過程指網橋阻塞除邊緣端口之外的所有端口,在本網橋層麵消除環路產生的可能。
圖1-14 RSTP/PVST的P/A機製實現快速收斂
如圖1-14,當Device A和Device B之間的鏈路連接後,P/A機製處理過程如下:
· Device A從端口Port A1發送Proposal置位的BPDU給Device B。
· Device B收到Proposal BPDU後,判斷端口Port B2為根端口,啟動同步過程阻塞指定端口Port B1和替換端口 Port B3避免環路產生,然後將根端口Port B2設置為轉發狀態,並向Device A回複Agreement BPDU。
· Device A收到Agreement BPDU後,指定端口Port A1立即進入轉發狀態。
· Device A的端口Port A1和Device B的端口Port B2均進入轉發狀態,P/A收斂過程結束。
在MSTP中,上遊網橋發送的Proposal BPDU中的Proposal位和Agreement位均置位,下遊網橋收到Proposal位和Agreement位均置位的BPDU後,執行同步操作然後回應Agreement置位的BPDU,使得上遊指定端口快速進入轉發狀態。
圖1-15 MSTP的P/A機製實現快速收斂
如圖1-15,Device A和Device B之間的P/A機製處理過程如下:
· Device A從端口Port A1發送Proposal位和Agreement位均置位的BPDU給Device B。
· Device B收到Proposal位和Agreement位均置位的BPDU後,判斷端口Port B1為根端口,執行同步操作然後將根端口Port B1設置為轉發狀態,並向Device A回複Agreement BPDU。
· Device A收到Agreement BPDU後,指定端口Port A1立即進入轉發狀態。
· Device A的端口Port A1和Device B的端口Port B1均進入轉發狀態,P/A收斂過程結束。
從RSTP/PVST和MSTP的P/A機製處理過程可以看到,P/A機製沒有依賴任何定時器,可以實現快速的收斂。
需要注意的是,如果指定端口發出的Proposal BPDU後沒有收到Agreement BPDU,則該端口將切換到STP方式,需要等待30秒時間才能進入轉發狀態。
與生成樹相關的協議規範有:
· IEEE 802.1D:Media Access Control (MAC) Bridges
· IEEE 802.1w:Part 3: Media Access Control (MAC) Bridges—Amendment 2: Rapid Reconfiguration
· IEEE 802.1s:Virtual Bridged Local Area Networks—Amendment 3: Multiple Spanning Trees
· IEEE 802.1Q-REV/D1.3:Media Access Control (MAC) Bridges and Virtual Bridged Local Area Networks—Clause 13: Spanning tree Protocols
本特性的支持情況與設備型號有關,請以設備的實際情況為準。
係列 |
型號 |
說明 |
F50X0係列 |
F5010、F5020、F5020-GM、F5030、F5030-6GW、F5030-6GW-G、F5040、F5060、F5080、F5000-A、F5000-C、F5000-S、F5000-M |
支持 |
F5000-CN係列 |
F5000-CN30、F5000-CN60 |
支持 |
F5000-AI係列 |
F5000-AI-15、F5000-AI-20、F5000-AI-40 |
支持 |
F5000-V係列 |
F5000-V30 |
支持 |
F1000-AI係列 |
F1000-AI-03、F1000-AI-05、F1000-AI-10、F1000-AI-15、F1000-AI-20、F1000-AI-25、F1000-AI-30、F1000-AI-35、F1000-AI-50、F1000-AI-55、F1000-AI-60、F1000-AI-65、F1000-AI-70、F1000-AI-75、F1000-AI-80、F1000-AI-90 |
支持 |
F1000-L係列 |
F1003-L、F1003-L-C、F1003-L-S、F1005-L、F1010-L |
支持 |
F10X0係列 |
F1003-C、F1003-M、F1003-S、F1005、F1005-GM、F1010、F1010-GM、F1020、F1020-GM、F1030、F1030-GM、F1050、F1060、F1070、F1070-GM、F1070-GM-L、F1080、F1090 |
支持 |
F1000-V係列 |
F1000-V50、F1000-V60、F1000-V70、F1000-V90 |
支持 |
F1000-SASE係列 |
F1000-SASE100、F1000-SASE200 |
支持 |
F1000-AK係列 |
F1000-AK108、F1000-AK109、F1000-AK110、F1000-AK115、F1000-AK120、F1000-AK125、F1000-AK130、F1000-AK135、F1000-AK140、F1000-AK145、F1000-AK150、F1000-AK155、F1000-AK160、F1000-AK165、F1000-AK170、F1000-AK175、F1000-AK180、F1000-AK185、F1000-GM-AK370、F1000-GM-AK380、F1000-AK710、F1000-AK711、F1000-AK1010、F1000-AK1015、F1000-AK1020、F1000-AK1025、F1000-AK1030、F1000-AK1105、F1000-AK1110、F1000-AK1115、F1000-AK1120、F1000-AK1125、F1000-AK1130、F1000-AK1140、F1000-AK1150、F1000-AK1160、F1000-AK1170、F1000-AK1180、F1000-AK1205、F1000-AK1212、F1000-AK1215、F1000-AK1222、F1000-AK1232、F1000-AK1242、F1000-AK1252、F1000-AK1262、F1000-AK1272、F1000-AK1305、F1000-AK1312、F1000-AK1315、F1000-AK1322、F1000-AK1332、F1000-AK1342、F1000-AK1352、F1000-AK1362、F1000-AK1414、F1000-AK1424、F1000-AK1434、F1000-AK1505、F1000-AK1514、F1000-AK1515、F1000-AK1524、F1000-AK1534、F1000-AK1614、F1000-AK9109、F1000-AK9110、F1000-AK9120、F1000-AK9210、F1000-AK9150、F1000-AK9160、F1000-AK9180、F1000-AK9190 |
支持 |
插卡 |
IM-NGFWX-IV、LSCM1FWDSD0、LSCM2FWDSD0、LSPM6FWD、LSPM6FWDB、LSQM1FWDSC0、LSQM2FWDSC0、LSU3FWCEA0、LSUM1FWCEAB0、LSUM1FWDEC0、LSWM1FWD0、LSX1FWCEA1、LSXM1FWDF1 |
支持 |
vFW係列 |
vFW1000、vFW2000、vFW-E-Cloud |
不支持 |
生成樹協議與L2PT功能互斥。
生成樹的部分功能支持在二層以太網接口視圖、二層聚合接口視圖配置,本文後續將概括稱為接口視圖。
係統視圖下的配置全局生效;二層以太網接口視圖下的配置隻對當前端口生效;二層聚合接口視圖下的配置隻對當前接口生效;聚合成員端口上的配置,隻有當成員端口退出聚合組後才能生效。
在二層聚合接口上開啟生成樹協議後,生成樹的相關計算隻在二層聚合接口上進行,聚合成員端口不再參與生成樹計算。二層聚合接口的所有選中成員端口上生成樹協議的開啟/關閉狀態以及端口轉發狀態與二層聚合接口保持一致。盡管聚合成員端口不參與生成樹計算,但端口上的生成樹相關配置仍然保留,當端口退出聚合組時,該端口將采用這些配置參與生成樹計算。
STP模式下,根橋上的配置任務如下:
(1) 配置生成樹的工作模式
通過本配置將生成樹的工作模式配置為STP模式。
(2) (可選)配置根橋和備份根橋
(3) (可選)配置設備的優先級
(4) (可選)配置影響STP拓撲收斂的參數
¡ 配置超時時間因子
(5) (可選)打開端口狀態變化信息顯示開關
(6) 開啟生成樹協議
(7) (可選)配置生成樹高級功能
STP模式下,葉子節點上的配置任務如下:
(1) 配置生成樹的工作模式
通過本配置將生成樹的工作模式配置為STP模式。
(2) (可選)配置設備的優先級
(3) (可選)配置影響STP拓撲收斂的參數
¡ 配置超時時間因子
¡ 配置端口的優先級
(4) (可選)打開端口狀態變化信息顯示開關
(5) 開啟生成樹協議
(6) (可選)配置生成樹高級功能
RSTP模式下,根橋上的配置任務如下:
(1) 配置生成樹的工作模式
通過本配置將生成樹的工作模式配置為RSTP模式。
(2) (可選)配置根橋和備份根橋
(3) (可選)配置設備的優先級
(4) (可選)配置影響RSTP拓撲收斂的參數
¡ 配置超時時間因子
(5) (可選)打開端口狀態變化信息顯示開關
(6) 開啟生成樹協議
(7) (可選)配置生成樹高級功能
RSTP模式下,葉子節點上的配置任務如下:
(1) 配置生成樹的工作模式
通過本配置將生成樹的工作模式配置為RSTP模式。
(2) (可選)配置設備的優先級
(3) (可選)配置影響RSTP拓撲收斂的參數
¡ 配置超時時間因子
¡ 配置端口的優先級
(4) (可選)打開端口狀態變化信息顯示開關
(5) 開啟生成樹協議
(6) (可選)配置生成樹高級功能
PVST模式下,根橋上的配置任務如下:
(1) 配置生成樹的工作模式
通過本配置將生成樹的工作模式配置為PVST模式。
(2) (可選)配置根橋和備份根橋
(3) (可選)配置設備的優先級
(4) (可選)配置影響PVST拓撲收斂的參數
¡ 配置超時時間因子
(5) (可選)打開端口狀態變化信息顯示開關
(6) 開啟生成樹協議
(7) (可選)配置生成樹高級功能
PVST模式下,葉子節點上的配置任務如下:
(1) 配置生成樹的工作模式
通過本配置將生成樹的工作模式配置為PVST模式。
(2) (可選)配置設備的優先級
(3) (可選)配置影響PVST拓撲收斂的參數
¡ 配置超時時間因子
¡ 配置端口的優先級
(4) (可選)打開端口狀態變化信息顯示開關
(5) 開啟生成樹協議
(6) (可選)配置生成樹高級功能
MSTP模式下,根橋上的配置任務如下:
(1) 配置生成樹的工作模式
通過本配置將生成樹的工作模式配置為MSTP模式。
(2) 配置MST域
(3) (可選)配置根橋和備份根橋
(4) (可選)配置設備的優先級
(5) (可選)配置影響MSTP拓撲收斂的參數
¡ 配置超時時間因子
(6) (可選)配置端口收發的MSTP報文格式
(7) (可選)打開端口狀態變化信息顯示開關
(8) 開啟生成樹協議
(9) (可選)配置生成樹高級功能
¡ 配置摘要偵聽功能
MSTP模式下,葉子節點上的配置任務如下:
(1) 配置生成樹的工作模式
通過本配置將生成樹的工作模式配置為MSTP模式。
(2) 配置MST域
(3) (可選)配置設備的優先級
(4) (可選)配置影響MSTP拓撲收斂的參數
¡ 配置超時時間因子
¡ 配置端口的優先級
(5) (可選)配置端口收發的MSTP報文格式
(6) (可選)打開端口狀態變化信息顯示開關
(7) 開啟生成樹協議
(8) (可選)配置生成樹高級功能
¡ 配置摘要偵聽功能
生成樹的工作模式有以下幾種:
· STP模式:設備的所有端口都將向外發送STP BPDU。如果端口的對端設備隻支持STP,可選擇此模式。
· RSTP模式:設備的所有端口都向外發送RSTP BPDU。當端口收到對端設備發來的STP BPDU時,會自動遷移到STP模式;如果收到的是MSTP BPDU,則不會進行遷移。
· PVST模式:設備的所有端口都向外發送PVST BPDU,每個VLAN對應一棵生成樹。進行PVST組網時,若網絡中所有設備的生成樹維護量(開啟生成樹協議的VLAN數×開啟生成樹協議的端口數)達到一定數量,會導致CPU負荷過重,不能正常處理報文,引起網絡震蕩。
· MSTP模式:設備的所有端口都向外發送MSTP BPDU。當端口收到對端設備發來的STP BPDU時,會自動遷移到STP模式;如果收到的是RSTP BPDU,則不會進行遷移。
MSTP模式兼容RSTP模式,RSTP模式兼容STP模式,PVST模式與其他模式的兼容性如下:
· 對於Access端口:PVST模式在任意VLAN中都能與其他模式互相兼容。
· 對於Trunk端口或Hybrid端口:PVST模式僅在缺省VLAN中能與其他模式互相兼容。
(1) 進入係統視圖。
system-view
(2) 配置生成樹的工作模式。
stp mode { mstp | pvst | rstp | stp }
缺省情況下,生成樹的工作模式為MSTP模式。
兩台或多台開啟了生成樹協議的設備若要屬於同一個MST域,必須同時滿足以下兩個條件:第一是選擇因子(取值為0,不可配)、域名、修訂級別和VLAN映射表的配置都相同;第二是這些設備之間的鏈路相通。
在配置MST域的相關參數(特別是VLAN映射表)時,會引發生成樹的重新計算,從而引起網絡拓撲的震蕩。為了減少網絡震蕩,新配置的MST域參數並不會馬上生效,而是在使用active region-configuration命令激活,或使用命令stp global enable全局開啟生成樹協議後才會生效。
在STP/RSTP/PVST模式下,MST域的相關配置不會生效。
(1) 進入係統視圖。
system-view
(2) 進入MST域視圖。
stp region-configuration
(3) 配置MST域的域名。
region-name name
缺省情況下,MST域的域名為設備的MAC地址。
(4) 配置VLAN映射表。請選擇其中一項進行配置。
¡ 將指定VLAN映射到指定的MSTI上。
instance instance-id vlan vlan-id-list
¡ 快速配置VLAN映射表。
vlan-mapping modulo modulo
缺省情況下,所有VLAN都映射到CIST(即MSTI 0)上。
(5) 配置MSTP的修訂級別。
revision-level level
缺省情況下,MSTP的修訂級別為0。
(6) (可選)顯示MST域的預配置信息。
check region-configuration
(7) 激活MST域的配置。
active region-configuration
生成樹協議可以根據橋ID自動計算確定生成樹的根橋,也可以手工將設備配置為指定生成樹的根橋或備份根橋。手工指定時,需要注意:
· 設備在各生成樹中的角色互相獨立,在作為一棵生成樹的根橋或備份根橋的同時,也可以作為其他生成樹的根橋或備份根橋;但在同一棵生成樹中,一台設備不能既作為根橋,又作為備份根橋。
· 用戶指定根橋後不會再根據設備的優先級選舉根橋。當設備一旦被配置為根橋或者備份根橋之後,便不能再修改該設備的優先級。也可以通過配置設備的優先級為0來實現將當前設備指定為根橋的目的。有關設備優先級的配置,請參見“2.7 配置設備的優先級”。
(1) 進入係統視圖。
system-view
(2) 配置設備為根橋。
¡ STP/RSTP模式:
stp root primary
¡ PVST模式:
stp vlan vlan-id-list root primary
¡ MSTP模式:
stp [ instance instance-list ] root primary
缺省情況下,設備不是根橋。
(1) 進入係統視圖。
system-view
(2) 配置設備為備份根橋。
¡ STP/RSTP模式:
stp root secondary
¡ PVST模式:
stp vlan vlan-id-list root secondary
¡ MSTP模式:
stp [ instance instance-list ] root secondary
缺省情況下,設備不是備份根橋。
設備的優先級參與生成樹計算,其大小決定了該設備是否能夠被選作生成樹的根橋。數值越小表示優先級越高,通過配置較小的優先級,可以達到指定某台設備成為生成樹根橋的目的。可以在不同的生成樹中為設備配置不同的優先級。如果設備的優先級相同,則MAC地址最小的設備將被選擇為根。當指定設備為根橋或者備份根橋之後,不允許再修改該設備的優先級。
(1) 進入係統視圖。
system-view
(2) 配置設備的優先級。
¡ STP/RSTP模式:
stp priority priority
¡ PVST模式:
stp vlan vlan-id-list priority priority
¡ MSTP模式:
stp [ instance instance-list ] priority priority
缺省情況下,設備的優先級為32768。
MST域的最大跳數限製了MST域的規模,在域根上配置的最大跳數將作為該MST域的最大跳數。
從MST域內的生成樹的根橋開始,域內的BPDU每經過一台設備的轉發,跳數就被減1;設備將丟棄跳數為0的BPDU,以使處於最大跳數外的設備無法參與生成樹的計算,從而限製了MST域的規模。
本配置隻需在根橋設備上進行,非根橋設備將采用根橋設備的配置值。
用戶可以根據設計的MST域內拓撲的層數來配置MST域的最大跳數,MST域的最大跳數要大於MST域內拓撲的最大層數。
(1) 進入係統視圖。
system-view
(2) 配置MST域的最大跳數。
stp max-hops hops
缺省情況下,MST域的最大跳數為20。
交換網絡中任意兩台終端設備都通過特定路徑彼此相連,這些路徑由一係列的設備構成。網絡直徑就是指對於交換網絡中的任意兩台網絡邊緣設備,其中一台經過根橋到達另一台所經過的最大設備數。網絡直徑越大,說明網絡的規模越大。
在STP/RSTP/MSTP模式下,每個MST域將被視為一台設備,且網絡直徑配置隻對CIST有效(即隻能在總根上生效),而對MSTI無效。在PVST模式下,網絡直徑的配置隻能在指定VLAN的根橋上生效。
通過本配置,可以根據網絡直徑調整設備的Hello Time、Forward Delay和Max Age三個時間參數到合適的值。
(1) 進入係統視圖。
system-view
(2) 配置交換網絡的網絡直徑。
¡ STP/RSTP/MSTP模式:
stp bridge-diameter diameter
¡ PVST模式:
stp vlan vlan-id-list bridge-diameter diameter
缺省情況下,交換網絡的網絡直徑為7。
在生成樹的計算過程中,用到了以下三個時間參數:
(1) Forward Delay:用於確定狀態遷移的延遲時間。為了防止產生臨時環路,生成樹協議在端口由Discarding狀態向Forwarding狀態遷移的過程中設置了Learning狀態作為過渡,並規定狀態遷移需要等待Forward Delay時間,以保持與遠端的設備狀態切換同步。
(2) Hello Time:用於檢測鏈路是否存在故障。生成樹協議每隔Hello Time時間會發送BPDU,以確認鏈路是否存在故障。如果設備在超時時間(超時時間=超時時間因子×3×Hello Time)內沒有收到BPDU,則會由於消息超時而重新計算生成樹。
(3) Max Age:用於確定BPDU是否超時。在MSTP的CIST上,設備根據Max Age時間來確定端口收到的BPDU是否超時。如果端口收到的BPDU超時,則需要對該MSTI重新計算。Max Age時間對MSTP的MSTI無效。
為保證網絡拓撲的快速收斂,需要配置合適的時間參數。上述三個時間參數之間應滿足以下關係,否則會引起網絡的頻繁震蕩:
· 2×(Forward Delay-1秒)≥Max Age
· Max Age≥2×(Hello Time+1秒)
配置生成樹時間參數時,需要注意:
· Forward Delay的長短與交換網絡的網絡直徑有關。一般來說,網絡直徑越大,Forward Delay就應該越長。如果Forward Delay過短,可能引入臨時的冗餘路徑;如果Forward Delay過長,網絡可能較長時間不能恢複連通。建議用戶采用自動計算值。
· 合適的Hello Time可以保證設備能夠及時發現網絡中的鏈路故障,又不會占用過多的網絡資源。如果Hello Time過長,在鏈路發生丟包時,設備會誤以為鏈路出現了故障,從而引發設備重新計算生成樹;如果Hello Time過短,設備將頻繁發送重複的BPDU,增加了設備的負擔,浪費了網絡資源。建議用戶采用自動計算值。
· 如果Max Age過短,設備會頻繁地計算生成樹,而且有可能將網絡擁塞誤認成鏈路故障;如果Max Age過長,設備很可能不能及時發現鏈路故障,不能及時重新計算生成樹,從而降低網絡的自適應能力。建議用戶采用自動計算值。
通常情況下,不建議通過手工配置直接調整上述三個時間參數。由於這三個時間參數的取值與網絡規模有關,生成樹協議會自動根據網絡直徑計算出這三個時間參數的最優值,因此在網絡拓撲變化時,建議在設備上通過執行stp bridge-diameter命令調整網絡直徑,使設備自動調整這三個時間參數的值。當網絡直徑取缺省值時,這三個時間參數也分別取其各自的缺省值。
本配置隻需在根橋設備上進行,整個交換網絡中的所有設備都將采用根橋設備的配置值。
(1) 進入係統視圖。
system-view
(2) 配置Forward Delay時間參數。
¡ STP/RSTP/MSTP模式:
stp timer forward-delay time
¡ PVST模式:
stp vlan vlan-id-list timer forward-delay time
缺省情況下,Forward Delay為15秒。
(3) 配置Hello Time時間參數。
¡ STP/RSTP/MSTP模式:
stp timer hello time
¡ PVST模式:
stp vlan vlan-id-list timer hello time
缺省情況下,Hello Time為2秒。
(4) 配置Max Age時間參數。
¡ STP/RSTP/MSTP模式:
stp timer max-age time
¡ PVST模式:
stp vlan vlan-id-list timer max-age time
缺省情況下,Max Age為20秒。
超時時間因子用來確定設備的超時時間:超時時間=超時時間因子×3×Hello Time。
當網絡拓撲結構穩定後,非根橋設備會每隔Hello Time時間向周圍相連設備轉發根橋發出的BPDU以確認鏈路是否存在故障。通常如果設備在9倍的Hello Time時間內沒有收到上遊設備發來的BPDU,就會認為上遊設備已經故障,從而重新進行生成樹的計算。
對於以下情況,建議將設備的超時時間因子配置為5~7。
· 有時本端設備在較長時間內收不到對端設備發來的BPDU,可能是由於對端設備的繁忙導致的(例如,對端設備配置了大量二層接口時),在這種情況下一般不應重新進行生成樹的計算,需要延長本端設備的超時時間。
· 穩定的網絡中,可以通過延長超時時間來減少網絡資源的浪費。
(1) 進入係統視圖。
system-view
(2) 配置設備的超時時間因子。
stp timer-factor factor
缺省情況下,設備的超時時間因子為3。
每Hello Time時間內端口能夠發送的BPDU的最大數目=端口發送BPDU的速率+Hello Time時間值。端口發送BPDU的速率越高,每個Hello Time內可發送的BPDU數量就越多,占用的係統資源也越多。適當配置發送速率一方麵可以限製端口發送BPDU的速度,另一方麵還可以防止在網絡拓撲動蕩時,生成樹協議占用過多的帶寬資源。
端口發送BPDU的速率與端口的物理狀態和網絡結構有關,建議用戶采用缺省配置。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置端口的發送BPDU的速率。
stp transmit-limit limit
缺省情況下,端口發送BPDU的速率為10。
當端口直接與用戶終端相連,而沒有連接到其他設備或共享網段上,則該端口被認為是邊緣端口。網絡拓撲變化時,邊緣端口不會產生臨時環路。
由於設備無法知道端口是否直接與終端相連,所以需要用戶手工將端口配置為邊緣端口。如果用戶將某個端口配置為邊緣端口,那麼當該端口由阻塞狀態向轉發狀態遷移時,這個端口可以實現快速遷移,而無需等待延遲時間。
對於直接與終端相連的端口,請將該端口設置為邊緣端口,同時開啟BPDU保護功能。這樣既能夠使該端口快速遷移到轉發狀態,也可以保證網絡的安全。
在同一個端口上,不允許同時配置邊緣端口和環路保護功能。
在端口沒有開啟BPDU保護的情況下,如果被設置為邊緣端口的端口上收到來自其他端口的BPDU,則該端口會重新變為非邊緣端口。此時,隻有重啟端口才能將該端口恢複為邊緣端口。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置當前端口為邊緣端口。
stp edged-port
缺省情況下,端口為非邊緣端口。
路徑開銷(Path Cost)是與端口相連的鏈路速率相關的參數。在支持生成樹協議的設備上,端口在不同的MSTI中可以擁有不同的路徑開銷。設置合適的路徑開銷可以使不同VLAN的流量沿不同的物理鏈路轉發,從而實現按VLAN負載分擔的功能。
設備可以自動計算端口的缺省路徑開銷,用戶也可以直接配置端口的路徑開銷。
缺省路徑開銷的計算標準有以下三種,用戶可以通過本配置來改變設備自動計算端口的缺省路徑開銷時所采用的計算標準:
· dot1d-1998:表示按照IEEE 802.1D-1998標準來計算缺省路徑開銷。
· dot1t:表示按照IEEE 802.1t標準來計算缺省路徑開銷。
· legacy:表示按照私有標準來計算缺省路徑開銷。
不同速率鏈路的路徑開銷值請參見下列各表。
表2-1 100M及以下鏈路速率與端口路徑開銷值的對應關係表
鏈路速率 |
端口類型 |
端口的路徑開銷值 |
||
IEEE 802.1D-1998 |
IEEE 802.1t |
私有標準 |
||
0 |
- |
65535 |
200,000,000 |
200,000 |
10Mbps |
單個端口 |
100 |
2,000,000 |
2,000 |
聚合接口(含兩個選中端口) |
1,000,000 |
1,800 |
||
聚合接口(含三個選中端口) |
666,666 |
1,600 |
||
聚合接口(含四個選中端口) |
500,000 |
1,400 |
||
100Mbps |
單個端口 |
19 |
200,000 |
200 |
聚合接口(含兩個選中端口) |
100,000 |
180 |
||
聚合接口(含三個選中端口) |
66,666 |
160 |
||
聚合接口(含四個選中端口) |
50,000 |
140 |
表2-2 1000M鏈路速率與端口路徑開銷值的對應關係表
鏈路速率 |
端口類型 |
端口的路徑開銷值 |
||
IEEE 802.1D-1998 |
IEEE 802.1t |
私有標準 |
||
1000Mbps |
單個端口 |
4 |
20,000 |
20 |
聚合接口(含兩個選中端口) |
10,000 |
18 |
||
聚合接口(含三個選中端口) |
6,666 |
16 |
||
聚合接口(含四個選中端口) |
5,000 |
14 |
表2-3 10G鏈路速率與端口路徑開銷值的對應關係表
鏈路速率 |
端口類型 |
端口的路徑開銷值 |
||
IEEE 802.1D-1998 |
IEEE 802.1t |
私有標準 |
||
10Gbps |
單個端口 |
2 |
2,000 |
2 |
聚合接口(含兩個選中端口) |
1,000 |
1 |
||
聚合接口(含三個選中端口) |
666 |
1 |
||
聚合接口(含四個選中端口) |
500 |
1 |
表2-4 20G鏈路速率與端口路徑開銷值的對應關係表
鏈路速率 |
端口類型 |
端口的路徑開銷值 |
||
IEEE 802.1D-1998 |
IEEE 802.1t |
私有標準 |
||
20Gbps |
單個端口 |
1 |
1,000 |
1 |
聚合接口(含兩個選中端口) |
500 |
1 |
||
聚合接口(含三個選中端口) |
333 |
1 |
||
聚合接口(含四個選中端口) |
250 |
1 |
表2-5 40G鏈路速率與端口路徑開銷值的對應關係表
鏈路速率 |
端口類型 |
端口的路徑開銷值 |
||
IEEE 802.1D-1998 |
IEEE 802.1t |
私有標準 |
||
40Gbps |
單個端口 |
1 |
500 |
1 |
聚合接口(含兩個選中端口) |
250 |
1 |
||
聚合接口(含三個選中端口) |
166 |
1 |
||
聚合接口(含四個選中端口) |
125 |
1 |
表2-6 100G鏈路速率與端口路徑開銷值的對應關係表
鏈路速率 |
端口類型 |
端口的路徑開銷值 |
||
IEEE 802.1D-1998 |
IEEE 802.1t |
私有標準 |
||
100Gbps |
單個端口 |
1 |
200 |
1 |
聚合接口(含兩個選中端口) |
100 |
1 |
||
聚合接口(含三個選中端口) |
66 |
1 |
||
聚合接口(含四個選中端口) |
50 |
1 |
改變缺省路徑開銷的計算標準,將使端口的路徑開銷值恢複為缺省值。
在計算聚合接口的路徑開銷時,IEEE 802.1D-1998標準不考慮聚合接口所對應聚合組內選中端口的數量;而IEEE 802.1t標準則對此予以考慮,其計算公式為:端口的路徑開銷=200000000÷鏈路速率(單位為100Kbps),其中鏈路速率為聚合接口所對應聚合組內選中端口的速率之和。
當端口的鏈路速率大於10Gbps、且缺省路徑開銷的計算標準為IEEE 802.1D-1998或私有標準時,單個端口和聚合接口的路徑開銷值都會取所選標準規定的最小值,這將影響轉發路徑選擇的合理性。在這種情況下,建議將缺省路徑開銷的計算標準配置為IEEE 802.1t,或手工配置端口的路徑開銷(請參見“2.14.3 配置端口的路徑開銷”)。
(1) 進入係統視圖。
system-view
(2) 配置缺省路徑開銷的計算標準。
stp pathcost-standard { dot1d-1998 | dot1t | legacy }
缺省情況下,缺省路徑開銷的計算標準為legacy。
當端口的路徑開銷值改變時,係統將重新計算端口的角色並進行狀態遷移。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置端口的路徑開銷。
¡ STP/RSTP模式:
stp cost cost-value
¡ PVST模式:
stp vlan vlan-id-list cost cost-value
¡ MSTP模式:
stp [ instance instance-list ] cost cost-value
缺省情況下,自動按照相應的標準計算各生成樹上的路徑開銷。
端口優先級是確定該端口是否會被選為根端口的重要依據,同等條件下優先級高的端口將被選為根端口。在支持生成樹協議的設備上,端口可以在不同的生成樹中擁有不同的優先級,同一端口可以在不同的生成樹中擔任不同的角色,從而使不同VLAN的數據沿不同的物理路徑傳播,實現按VLAN進行負載分擔的功能。用戶可以根據組網的實際需要來設置端口的優先級。
當端口的優先級改變時,係統將重新計算端口的角色並進行狀態遷移,引起網絡拓撲變化,請用戶做好相關準備工作。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置端口的優先級。
¡ STP/RSTP模式:
stp port priority priority
¡ PVST模式:
stp vlan vlan-id-list port priority priority
¡ MSTP模式:
stp [ instance instance-list ] port priority priority
缺省情況下,端口的優先級為128。
點對點鏈路是兩台設備之間直接連接的鏈路。與點對點鏈路相連的兩個端口如果為根端口或者指定端口,則端口可以通過傳送同步報文(Proposal報文和Agreement報文)快速遷移到轉發狀態,減少了不必要的轉發延遲時間。
如果某端口是二層聚合接口或其工作在全雙工模式下,則可以將該端口配置為與點對點鏈路相連。通常建議使用缺省配置,由係統進行自動檢測。
在PVST或MSTP模式下,如果某端口被配置為與點對點鏈路(或非點對點鏈路)相連,那麼該配置對該端口所屬的所有VLAN或MSTI都有效。
如果某端口被配置為與點對點鏈路相連,但與該端口實際相連的物理鏈路不是點對點鏈路,則有可能引入臨時環路。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置端口的鏈路類型。
stp point-to-point { auto | force-false | force-true }
缺省情況下,端口的鏈路類型為auto,即由係統自動檢測與本端口相連的鏈路是否為點對點鏈路。
端口可以收發的MSTP報文格式有兩種:
· dot1s:符合802.1s協議的標準格式;
· legacy:與非標準格式兼容的格式。
端口默認配置為自動識別方式(auto),即可以自動識別這兩種格式的MSTP報文,並根據識別結果確定發送報文的格式,從而實現與對端設備的互通。
用戶也可以通過配置改變端口發送的MSTP報文格式,使端口隻發送與所配格式相符的MSTP報文,實現與對端隻識別特定格式報文的設備互通。
當端口處於auto模式時,默認發送802.1s標準的報文。在此模式下,為避免因收到不同格式的MSTP報文而導致端口發送的報文格式頻繁變化,端口一旦收到私有格式報文就將一直以該格式發送報文。若想使該端口恢複發送802.1s標準的報文,可對其依次執行關閉/開啟操作。
如果當前配置的MSTI大於48,端口將隻發送802.1s標準的MSTP報文。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置端口收發的MSTP報文格式。
stp compliance { auto | dot1s | legacy }
缺省情況下,端口會自動識別收到的MSTP報文格式並根據識別結果確定發送的報文格式。
在開啟了生成樹協議的大型網絡中,用戶可以通過打開端口狀態變化信息顯示開關,使係統輸出端口狀態變化的相關信息,方便用戶對端口狀態進行實時監控。
(1) 進入係統視圖。
system-view
(2) 打開端口狀態變化信息顯示開關。
¡ STP/RSTP模式:
stp port-log instance 0
¡ PVST模式:
stp port-log vlan vlan-id-list
¡ MSTP模式:
stp port-log { all | instance instance-list }
缺省情況下,端口狀態變化信息顯示開關處於關閉狀態。
隻有開啟了生成樹協議,生成樹的其他配置才會生效。在STP/RSTP/MSTP模式下,必須保證全局和端口上的生成樹協議均處於開啟狀態;在PVST模式下,必須保證全局、VLAN和端口上的生成樹協議均處於開啟狀態。
可以通過undo stp enable命令關閉指定端口的生成樹協議,使其不參與生成樹計算,以節省設備的CPU資源。但必須保證指定的端口關閉生成樹協議後,網絡中不能出現環路。
(1) 進入係統視圖。
system-view
(2) 全局開啟生成樹協議。
stp global enable
缺省情況下,生成樹協議的全局狀態為關閉。
(3) 進入接口視圖。
interface interface-type interface-number
(4) 在端口上開啟生成樹協議。
stp enable
缺省情況下,所有端口上的生成樹協議均處於開啟狀態。
(1) 進入係統視圖。
system-view
(2) 全局開啟生成樹協議。
stp global enable
缺省情況下,生成樹協議的全局狀態為關閉。
(3) 在VLAN中開啟生成樹協議。
stp vlan vlan-id-list enable
缺省情況下,生成樹協議在VLAN中處於開啟狀態。
(4) 進入接口視圖。
interface interface-type interface-number
(5) 在端口上開啟生成樹協議。
stp enable
缺省情況下,所有端口上的生成樹協議均處於開啟狀態。
生成樹的工作模式有STP模式、RSTP模式、PVST模式和MSTP模式四種。在運行RSTP、PVST或MSTP的設備上,若某端口連接著運行STP協議的設備,該端口收到STP報文後會自動遷移到STP模式;但當對端運行STP協議的設備關機或撤走,而該端口又無法感知的情況下,該端口將無法自動遷移回原有模式,此時需要通過執行mCheck操作將其手工遷移回原有模式。
當運行STP的設備A、未開啟生成樹協議的設備B和運行RSTP/PVST/MSTP的設備C三者順次相連時,設備B將透傳STP報文,設備C上連接設備B的端口將遷移到STP模式。在設備B上開啟生成樹協議後,若想使設備B與設備C之間運行RSTP/PVST/MSTP協議,除了要在設備B上配置生成樹的工作模式為RSTP/PVST/MSTP外,還要在設備B與設備C相連的端口上都執行mCheck操作。
隻有當生成樹的工作模式為RSTP模式、PVST模式或MSTP模式時執行mCheck操作才有效。
(1) 進入係統視圖。
system-view
(2) 全局執行mCheck操作。
stp global mcheck
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 在端口上執行mCheck操作。
stp mcheck
在當鏈路相連的兩端PVID不一致時,PVST的計算可能出現錯誤,為了防止這樣的錯誤,係統默認會開啟PVID不一致保護功能,即做PVID不一致的檢查。若端口PVID不一致保護功能觸發後,端口在PVID不一致的VLAN中,會變為阻塞狀態。
在某些特定的組網場景中,比如網絡中的接入層設備采用同樣的配置,其接口PVID一致,而網絡管理員在彙聚層設備的下行口(即連接接入層設備的接口)上做了不同的PVID配置,該配置與接入層設備的上行口(即連接彙聚層設備的接口)的PVID配置不一致時,有可能引起生成樹的阻塞,為避免這種情況的發生,保持流量的轉發,可以關閉PVID不一致保護功能。
關閉PVST的PVID不一致保護功能後,如果鏈路兩端端口PVID不一致,為了避免生成樹的計算錯誤,需要注意:
· 除了缺省VLAN,本端所在設備不能創建對端PVID對應的VLAN,同樣,對端也不能創建本端PVID對應的VLAN。
· 本端端口的鏈路類型是Hybrid時,建議本端所在設備不創建以Untagged方式允許通過的VLAN,同樣,對端也不創建本端Untagged方式允許通過的VLAN。
· 建議鏈路對端設備也關閉PVST的PVID不一致保護功能。
· 本配置在PVST工作模式下才能生效。
(1) 進入係統視圖。
system-view
(2) 關閉PVST的PVID不一致保護功能。
stp ignore-pvid-inconsistency
缺省情況下,PVST的PVID不一致保護功能處於開啟狀態。
根據IEEE 802.1s規定,隻有在MST域配置(包括域名、修訂級別和VLAN映射關係)完全一致的情況下,相連的設備才被認為是在同一個域內。當設備開啟了生成樹協議以後,設備之間通過識別BPDU數據報文內的配置ID來判斷相連的設備是否與自己處於相同的MST域內;配置ID包含域名、修訂級別、配置摘要等內容,其中配置摘要長16字節,是由HMAC-MD5算法將VLAN與MSTI的映射關係加密計算而成。
在網絡中,由於一些廠商的設備在對生成樹協議的實現上存在差異,即用加密算法計算配置摘要時采用私有的密鑰,從而導致即使MST域配置相同,不同廠商的設備之間也不能實現在MST域內的互通。
通過在我方設備與對生成樹協議的實現存在差異的第三方廠商設備相連的端口上開啟摘要偵聽功能,可以實現我方設備與這些廠商設備在MST域內的完全互通。
摘要偵聽功能在端口生效後,由於不再通過配置摘要的比較計算來判斷是否在同一個域內,因此需要保證互連設備的域配置中VLAN與MSTI映射關係的配置相同。
全局開啟摘要偵聽功能後,如果要修改VLAN與MSTI間的映射關係,或執行undo stp region-configuration命令取消當前域配置,均可能因與鄰接設備的VLAN和MSTI映射關係不一致而導致環路或流量中斷,因此請謹慎操作。
隻有當全局和端口上都開啟了摘要偵聽功能後,該功能才能生效。開啟摘要偵聽功能時,建議先在所有與第三方廠商設備相連的端口上開啟該功能,再全局開啟該功能,以一次性讓所有端口的配置生效,從而減少對網絡的衝擊。
請不要在MST域的邊界端口上開啟摘要偵聽功能,否則可能會導致環路。
建議配置完摘要偵聽功能後再開啟生成樹協議。在網絡穩定的情況下不要進行摘要偵聽功能的配置,以免造成臨時的流量中斷。
配置本任務前,請確保生成樹協議在我方設備與第三方廠商設備上均正常運行。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 在端口上開啟摘要偵聽功能。
stp config-digest-snooping
缺省情況下,端口上的摘要偵聽功能處於關閉狀態。
(4) 退回係統視圖。
quit
(5) 全局開啟摘要偵聽功能。
stp global config-digest-snooping
缺省情況下,摘要偵聽功能處於全局關閉狀態。
RSTP和MSTP的指定端口快速遷移機製使用兩種協議報文:
· Proposal報文:指定端口請求快速遷移的報文。
· Agreement報文:同意對端進行快速遷移的報文。
RSTP和MSTP均要求上遊設備的指定端口在接收到下遊設備的Agreement報文後才能進行快速遷移。不同之處如下:
· 對於MSTP,上遊設備先向下遊設備發送Agreement報文,而下遊設備的根端口隻有在收到了上遊設備的Agreement報文後才會向上遊設備回應Agreement報文。
· 對於RSTP,下遊設備無需等待上遊設備發送Agreement報文就可向上遊設備發送Agreement報文。
如圖2-1所示,是MSTP的指定端口快速遷移機製。
圖2-1 MSTP指定端口快速遷移機製
如圖2-2所示,是RSTP的指定端口快速遷移機製。
圖2-2 RSTP指定端口快速遷移機製
當我方設備與作為上遊設備且與對生成樹協議的實現存在差異的第三方廠商設備互聯時,二者在快速遷移的配合上可能會存在一定的限製。例如:上遊設備指定端口的狀態遷移實現機製與RSTP類似;而下遊設備運行MSTP並且不工作在RSTP模式時,由於下遊設備的根端口接收不到上遊設備的Agreement報文,它不會向上遊設備發Agreement報文,所以上遊設備的指定端口無法實現狀態的快速遷移,隻能在2倍的Forward Delay延時後變成轉發狀態。
通過在我方設備與對生成樹協議的實現存在私有性差異的上遊第三方廠商設備相連的端口上開啟No Agreement Check功能,可避免這種情況的出現,使得上遊的第三方廠商設備的指定端口能夠進行狀態的快速遷移。
請在設備的根端口上進行如下配置,且本功能隻有在根端口上配置才會生效。
設備與作為上遊設備且支持生成樹協議的第三方廠商設備互連,並且端口之間為點對點鏈路。
為我方設備與第三方廠商設備配置相同的域名、域配置修訂級別和VLAN與MSTI的映射關係,以確保它們在同一個域內。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟No Agreement Check功能。
stp no-agreement-check
缺省情況下,No Agreement Check功能處於關閉狀態。
TC Snooping功能的典型應用環境如圖2-3所示。在該組網中,由Device A和Device B組成的IRF設備未開啟生成樹協議,而用戶網絡1和用戶網絡2中的所有設備均開啟了生成樹協議。用戶網絡1和用戶網絡2均通過雙上行鏈路與IRF設備相連以提高鏈路可靠性,IRF設備可以透明傳輸每個用戶網絡中的BPDU。
在該組網中,當用戶網絡的拓撲結構發生改變時,由於IRF設備對BPDU進行了透明傳輸而不參與生成樹計算,因而其本身可能需經過較長時間才能重新學到正確的MAC地址表項和ARP表項,在此期間可能導致網絡中斷。
圖2-3 TC Snooping功能典型應用組網圖
為了避免這種情況,可以通過在IRF設備上開啟TC Snooping功能,使其在收到TC-BPDU(網絡拓撲發生變化的通知報文)後,主動更新接收該報文的端口所屬的VLAN所對應的MAC地址表和ARP表,從而保證業務流量的正常轉發。有關MAC地址表和ARP表的詳細介紹,請分別參見“二層技術-以太網交換配置指導”中的“MAC地址表”和“三層技術-IP業務配置指導”中的“ARP”。
配置TC Snooping功能時,需要注意:
· TC Snooping功能與生成樹協議互斥,因此在開啟TC Snooping功能之前必須全局關閉生成樹協議。
· TC Snooping功能不支持PVST格式的TC-BPDU,因此在PVST模式下不支持該功能。
(1) 進入係統視圖。
system-view
(2) 全局關閉生成樹協議。
undo stp global enable
缺省情況下,生成樹協議在全局中處於關閉狀態。
(3) 開啟TC Snooping功能。
stp tc-snooping
缺省情況下,TC Snooping功能處於關閉狀態。
本節中的所有配置均為可選,請根據實際情況選擇配置。
· 配置根保護功能
· 配置環路保護功能
對於接入層設備,接入端口一般直接與用戶終端(如PC)或文件服務器相連,此時接入端口被設置為邊緣端口以實現這些端口的快速遷移;當這些端口接收到BPDU時係統會自動將這些端口設置為非邊緣端口,重新計算生成樹,引起網絡拓撲結構的變化。這些端口正常情況下應該不會收到STP的BPDU。如果有人偽造BPDU惡意攻擊設備,就會引起網絡震蕩。
生成樹協議提供了BPDU保護功能來防止這種攻擊:設備上開啟了BPDU保護功能後,如果邊緣端口收到了BPDU,係統就將這些端口關閉,同時通知網管這些端口已被生成樹協議關閉。被關閉的端口在經過一定時間間隔之後將被重新激活,這個時間間隔可通過shutdown-interval命令配置。有關該命令的詳細介紹,請參見“基礎配置命令參考”中的“設備管理”。
配置端口的BPDU保護功能時,請在直連用戶終端的端口上配置,勿在連接其他設備或共享網段的端口上配置。
本功能隻對stp edged-port命令手工指定的邊緣端口生效。
BPDU保護功能對開啟了環回測試功能的端口無效。有關環回測試功能的相關介紹,請參見“接口管理配置指導”中的“以太網接口”。
(1) 進入係統視圖。
system-view
(2) 開啟全局的BPDU保護功能。
stp bpdu-protection
缺省情況下,全局的BPDU保護功能處於關閉狀態。
請在設備的指定端口上配置本功能。
生成樹的根橋和備份根橋應該處於同一個域內,特別是對於CIST的根橋和備份根橋,網絡設計時一般會把CIST的根橋和備份根橋放在一個高帶寬的核心域內。但是,由於維護人員的錯誤配置或網絡中的惡意攻擊,網絡中的合法根橋有可能會收到優先級更高的BPDU,這樣當前合法根橋會失去根橋的地位,引起網絡拓撲結構的錯誤變動。這種不合法的變動,會導致原來應該通過高速鏈路的流量被牽引到低速鏈路上,導致網絡擁塞。
為了防止這種情況發生,生成樹協議提供了根保護功能:對於開啟了根保護功能的端口,其在所有MSTI上的端口角色隻能為指定端口。一旦該端口收到某MSTI優先級更高的BPDU,立即將該MSTI端口設置為偵聽狀態,不再轉發報文(相當於將此端口相連的鏈路斷開)。當在2倍的Forward Delay時間內沒有收到更優的BPDU時,端口會恢複原來的正常狀態。
在同一個端口上,不允許同時配置根保護功能和環路保護功能。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟端口的根保護功能。
stp root-protection
缺省情況下,端口上的根保護功能處於關閉狀態。
請在設備的根端口和替換端口上配置本功能。
依靠不斷接收上遊設備發送的BPDU,設備可以維持根端口和其他阻塞端口的狀態。但是由於鏈路擁塞或者單向鏈路故障,這些端口會收不到上遊設備的BPDU,此時下遊設備會重新選擇端口角色,收不到BPDU的下遊設備端口會轉變為指定端口,而阻塞端口會遷移到轉發狀態,從而交換網絡中會產生環路。環路保護功能會抑製這種環路的產生。
在開啟了環路保護功能的端口上,其所有MSTI的初始狀態均為Discarding狀態:如果該端口收到了BPDU,這些MSTI可以進行正常的狀態遷移;否則,這些MSTI將一直處於Discarding狀態以避免環路的產生。
請不要在與用戶終端相連的端口上開啟環路保護功能,否則該端口會因收不到BPDU而導致其所有MSTI將一直處於Discarding狀態。
在同一個端口上,不允許同時配置邊緣端口和環路保護功能,或者同時配置根保護功能和環路保護功能。
以下端口配置環路保護功能後,該端口不會因收不到BPDU而導致其一直處於Discarding狀態,而是進行端口狀態遷移,經過兩個Forward Delay時長後再次變為Forwarding狀態:
· 端口狀態從down變成up。
· 處於up狀態的端口,生成樹功能狀態從關閉變成開啟。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟端口的環路保護功能。
stp loop-protection
缺省情況下,端口的環路保護功能處於關閉狀態。
請在與用戶接入網絡相連的端口上配置本功能。
用戶接入網絡中設備橋ID的變化會引起核心網絡生成樹拓撲的改變。為了避免這種情況,可以在端口上開啟端口角色限製功能,此後當該端口收到最優根消息時將不再當選為根端口,而是成為替換端口。
開啟端口角色限製功能後可能影響生成樹拓撲的連通性,請慎重配置。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟端口角色限製功能。
stp role-restriction
缺省情況下,端口角色限製功能處於關閉狀態。
請在與用戶接入網絡相連的端口上配置本功能。
用戶接入網絡的拓撲改變會引起核心網絡的轉發地址更新,當用戶接入網絡的拓撲因某種原因而不穩定時,就會對核心網絡形成衝擊。為了避免這種情況,可以在端口上開啟TC-BPDU傳播限製功能,此後當該端口收到TC-BPDU時,不會再向其他端口傳播。
開啟TC-BPDU傳播限製功能後,當拓撲改變時原有轉發地址表項可能無法更新,請慎重配置。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟TC-BPDU傳播限製功能。
stp tc-restriction
缺省情況下,TC-BPDU傳播限製功能處於關閉狀態。
設備在收到TC-BPDU後,會執行轉發地址表項的刷新操作。在有人偽造TC-BPDU惡意攻擊設備時,設備短時間內會收到很多的TC-BPDU,頻繁的刷新操作給設備帶來很大負擔,給網絡的穩定帶來很大隱患。而通過在設備上開啟防TC-BPDU攻擊保護功能,就可以避免轉發地址表項的頻繁刷新。
當開啟了防TC-BPDU攻擊保護功能後,如果設備在單位時間(固定為十秒)內收到TC-BPDU的次數大於stp tc-protection threshold命令所指定的最高次數(假設為N次),那麼該設備在這段時間之內將隻進行N次刷新轉發地址表項的操作,而對於超出N次的那些TC-BPDU,設備會在這段時間過後再統一進行一次地址表項刷新的操作,這樣就可以避免頻繁地刷新轉發地址表項。
建議不要關閉防TC-BPDU攻擊保護功能。
(1) 進入係統視圖。
system-view
(2) 開啟防TC-BPDU攻擊保護功能。
stp tc-protection
缺省情況下,防TC-BPDU攻擊保護功能處於開啟狀態。
(3) (可選)配置在單位時間(固定為十秒)內,設備收到TC-BPDU後立即刷新轉發地址表項的最高次數。
stp tc-protection threshold number
缺省情況下,在單位時間(固定為十秒)內,設備收到TC-BPDU後立即刷新轉發地址表項的最高次數為6。
本配置在MSTP工作模式下才能生效。
對於開啟MSTP的設備,並不識別PVST報文,所以開啟MSTP的設備會將PVST報文當做數據報文轉發。在另一個並不相幹的網絡中,開啟PVST的設備收到該報文,處理後可能導致該網絡的拓撲計算出現錯誤。
對於這個問題,可以通過配置MSTP的PVST報文保護功能來解決。在MSTP模式下,設備上開啟了PVST報文保護功能後,如果端口收到了PVST報文,係統就將這些端口關閉。
(1) 進入係統視圖。
system-view
(2) 開啟MSTP的PVST報文保護功能。
stp pvst-bpdu-protection
缺省情況下,MSTP的PVST報文保護功能處於關閉狀態。
當端口收到指定端口發出的低優先級消息,且發送端口處於Forwarding或Learning狀態時,會觸發Dispute保護,阻塞端口以防止環路。
Dispute保護功能是設備默認啟用的特性,不需要配置。
如圖2-4所示,正常情況下,Device A是根橋,經過生成樹計算後,Port B1被阻塞。如果Port A1發生單通故障,即Port A1不能發送報文,隻能接收報文。Port B1在一定時間內未收到Port A1發送的BPDU,則Device B認為自己是根橋,由Port B1發送低優先級BPDU到Port A1。此時,Port A2和Port B2之間鏈路正常,Device B會接收到自己發送BPDU,導致產生環路。因此當鏈路出現單通故障後,會觸發Dispute保護功能,阻塞端口,防止環路。
圖2-4 Dispute保護觸發場景
開啟生成樹的告警功能之後,生成樹會生成告警信息,用於報告本模塊的重要事件。生成的告警信息將發送至SNMP模塊,通過配置SNMP中告警信息的發送參數,來決定告警信息輸出的相關屬性。有關告警信息的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”。
(1) 進入係統視圖。
system-view
(2) 開啟生成樹的告警功能。
snmp-agent trap enable stp [ new-root | tc ]
缺省情況下,生成樹的new-root告警功能處於關閉狀態。在MSTP模式下,生成樹的TC告警功能在MSTI 0中處於開啟狀態,在其他MSTI中處於關閉狀態。在PVST模式下,生成樹的TC告警功能在所有VLAN中處於關閉狀態。
在完成上述配置後,在任意視圖下執行display命令都可以顯示配置後生成樹的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除生成樹的統計信息。
操作 |
命令 |
顯示生成樹的狀態和統計信息 |
display stp [ instance instance-list | vlan vlan-id-list ] [ interface interface-list | slot slot-number ] [ brief ] |
顯示生成樹端口角色計算的曆史信息 |
display stp [ instance instance-list | vlan vlan-id-list ] history [ slot slot-number ] |
顯示生成樹所有端口收發的TC或TCN報文數 |
display stp [ instance instance-list | vlan vlan-id-list ] tc [ slot slot-number ] |
顯示被生成樹保護功能阻塞的端口信息 |
display stp abnormal-port |
顯示端口上的BPDU統計信息 |
display stp bpdu-statistics [ interface interface-type interface-number [ instance instance-list ] ] |
顯示被生成樹保護功能down掉的端口信息 |
display stp down-port |
顯示生效的MST域配置信息 |
display stp region-configuration |
顯示所有生成樹的根橋信息 |
display stp root |
清除生成樹的統計信息 |
reset stp [ interface interface-list ] |
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!