06-生成樹配置
本章節下載: 06-生成樹配置 (922.68 KB)
生成樹協議是一種二層管理協議,它通過選擇性地阻塞網絡中的冗餘鏈路來消除二層環路,同時還具備鏈路備份的功能。
與眾多協議的發展過程一樣,生成樹協議也是隨著網絡的發展而不斷更新的,從最初的STP(Spanning Tree Protocol,生成樹協議)到RSTP(Rapid Spanning Tree Protocol,快速生成樹協議)和PVST(Per VLAN Spanning Tree,每VLAN生成樹),再到最新的MSTP(Multiple Spanning Tree Protocol,多生成樹協議)。本文將對STP、RSTP、PVST和MSTP各自的特點及其相互間的關係進行介紹。
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中包含有足夠的信息來保證設備完成生成樹的計算過程,其中包括:
· 根橋ID:由根橋的優先級和MAC地址組成;
· 根路徑開銷:到根橋的路徑開銷;
· 指定橋ID:由指定橋的優先級和MAC地址組成;
· 指定端口ID:由指定端口的優先級和該端口的全局編號組成;
· Message Age:BPDU在網絡中傳播的生存期;
· Max Age:BPDU在設備中的最大生存期;
· Hello Time:BPDU的發送周期;
· Forward Delay:端口狀態遷移的延遲時間。
(1) 根橋
樹形的網絡結構必須有樹根,於是STP引入了根橋(Root Bridge)的概念。根橋在全網中有且隻有一個,其它設備則稱為葉子節點。根橋會根據網絡拓撲的變化而改變,因此根橋並不是固定的。
在網絡初始化過程中,所有設備都視自己為根橋,生成各自的配置BPDU並周期性地向外發送;但當網絡拓撲穩定以後,隻有根橋設備才會向外發送配置BPDU,其它設備則對其進行轉發。
(2) 根端口
所謂根端口,是指非根橋設備上離根橋最近的端口。根端口負責與根橋進行通信。非根橋設備上有且隻有一個根端口,根橋上沒有根端口。
(3) 指定橋與指定端口
指定橋與指定端口的含義,請參見表1-1的說明。
分類 |
指定橋 |
指定端口 |
對於一台設備而言 |
與本機直接相連並且負責向本機轉發BPDU的設備 |
指定橋向本機轉發BPDU的端口 |
對於一個局域網而言 |
負責向本網段轉發BPDU的設備 |
指定橋向本網段轉發BPDU的端口 |
如圖1-1所示,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。
(4) 路徑開銷
路徑開銷是STP協議用於選擇鏈路的參考值。STP協議通過計算路徑開銷,選擇較為“強壯”的鏈路,阻塞多餘的鏈路,將網絡修剪成無環路的樹型網絡結構。
STP算法實現的基本過程如下:
(1) 初始狀態
各設備的各端口在初始時會生成以本設備為根橋的BPDU,根路徑開銷為0,指定橋ID為自身設備ID,指定端口為本端口。
(2) 選擇根橋
網絡初始化時,網絡中所有的STP設備都認為自己是“根橋”,根橋ID為自身的設備ID。通過交換BPDU,設備之間比較根橋ID,網絡中根橋ID最小的設備被選為根橋。
(3) 選擇根端口和指定端口
根端口和指定端口的選擇過程如表1-2所示。
表1-2 根端口和指定端口的選擇過程
步驟 |
內容 |
1 |
非根橋設備將接收最優BPDU(最優BPDU的選擇過程如表1-3所示)的那個端口定為根端口 |
2 |
設備根據根端口的BPDU和根端口的路徑開銷,為每個端口計算一個指定端口BPDU: · 根橋ID替換為根端口的BPDU的根橋ID; · 根路徑開銷替換為根端口BPDU的根路徑開銷加上根端口對應的路徑開銷; · 指定橋ID替換為自身設備的ID; · 指定端口ID替換為自身端口ID。 |
3 |
設備將計算出的BPDU與角色待定端口自己的BPDU進行比較: · 如果計算出的BPDU更優,則該端口被確定為指定端口,其BPDU也被計算出的BPDU替換,並周期性地向外發送; · 如果該端口自己的BPDU更優,則不更新該端口的BPDU並將該端口阻塞。該端口將不再轉發數據,且隻接收不發送BPDU。 |
當拓撲處於穩定狀態時,隻有根端口和指定端口在轉發用戶流量。其它端口都處於阻塞狀態,隻接收STP協議報文而不轉發用戶流量。
表1-3 最優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-2 STP算法實現過程組網圖
如圖1-2所示,Device A、Device B和Device C的優先級分別為0、1和2,Device A與Device B之間、Device A與Device C之間以及Device B與Device C之間鏈路的路徑開銷分別為5、10和4。
(4) 各設備的初始狀態
各設備的初始狀態如表1-4所示。
設備 |
端口名稱 |
端口的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-4中BPDU各項的具體含義為:{根橋ID,根路徑開銷,指定橋ID,指定端口ID}。
(5) 各設備的比較過程及結果
各設備的比較過程及結果如表1-5所示。
設備 |
比較過程 |
比較後端口的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} |
表1-5中BPDU各項的具體含義為:{根橋ID,根路徑開銷,指定橋ID,指定端口ID}。
經過上述比較過程之後,以Device A為根橋的生成樹就確定下來了,其拓撲如圖1-3所示。
為了便於描述,本例簡化了生成樹的計算過程,實際的過程要更加複雜。
STP的BPDU傳遞機製如下:
· 當網絡初始化時,所有的設備都將自己作為根橋,生成以自己為根的BPDU,並以Hello Time為周期定時向外發送。
· 接收到BPDU的端口如果是根端口,且接收的BPDU比該端口的BPDU優,則設備將BPDU中攜帶的Message Age按照一定的原則遞增,並啟動定時器為這條BPDU計時,同時將此BPDU從設備的指定端口轉發出去。
· 如果指定端口收到的BPDU比本端口的BPDU優先級低時,會立刻發出自己的更好的BPDU進行回應。
· 如果某條路徑發生故障,則這條路徑上的根端口不會再收到新的BPDU,舊的BPDU將會因為超時而被丟棄,設備重新生成以自己為根的BPDU並向外發送,從而引發生成樹的重新計算,得到一條新的通路替代發生故障的鏈路,恢複網絡連通性。
不過,重新計算得到的新BPDU不會立刻就傳遍整個網絡,因此舊的根端口和指定端口由於沒有發現網絡拓撲變化,將仍按原來的路徑繼續轉發數據。如果新選出的根端口和指定端口立刻就開始數據轉發的話,可能會造成暫時性的環路。
在STP的計算過程中,用到了以下三個重要的時間參數:
· Forward Delay:用於確定狀態遷移的延遲時間。鏈路故障會引發網絡重新進行生成樹的計算,生成樹的結構將發生相應的變化。不過重新計算得到的新BPDU無法立刻傳遍整個網絡,如果新選出的根端口和指定端口立刻就開始數據轉發的話,可能會造成暫時性的環路。為此,STP采用了一種狀態遷移的機製,新選出的根端口和指定端口要經過2倍的Forward Delay延時後才能進入轉發狀態,這個延時保證了新的BPDU已經傳遍整個網絡。
· Hello Time:用於設備檢測鏈路是否存在故障。設備每隔Hello Time時間會向周圍的設備發送hello報文,以確認鏈路是否存在故障。
· Max Age:用於判斷BPDU在設備內的保存時間是否“過時”,設備會將過時的BPDU丟棄。
RSTP由IEEE製定的802.1w標準定義,它在STP基礎上進行了改進,實現了網絡拓撲的快速收斂。其“快速”體現在,當一個端口被選為根端口和指定端口後,其進入轉發狀態的延時將大大縮短,從而縮短了網絡最終達到拓撲穩定所需要的時間。
· 在RSTP中,根端口的端口狀態快速遷移的條件是:本設備上舊的根端口已經停止轉發數據,而且上遊指定端口已經開始轉發數據。
· 在RSTP中,指定端口的端口狀態快速遷移的條件是:指定端口是邊緣端口(即該端口直接與用戶終端相連,而沒有連接到其它設備或共享網段上)或者指定端口與點對點鏈路(即兩台設備直接相連的鏈路)相連。如果指定端口是邊緣端口,則指定端口可以直接進入轉發狀態;如果指定端口連接著點對點鏈路,則設備可以通過與下遊設備握手,得到響應後即刻進入轉發狀態。
STP和RSTP在局域網內的所有網橋都共享一棵生成樹,不能按VLAN阻塞冗餘鏈路,所有VLAN的報文都沿著一棵生成樹進行轉發。而PVST則可以在每個VLAN內都擁有一棵生成樹,能夠有效地提高鏈路帶寬的利用率。PVST可以簡單理解為在每個VLAN上運行一個STP或RSTP協議,不同VLAN之間的生成樹完全獨立。根據端口類型的不同,PVST所發送的BPDU格式也有所差別:
· 對於Access端口,PVST將根據該VLAN的狀態發送STP格式的BPDU。
· 對於Trunk端口和Hybrid端口,PVST將在VLAN 1內根據該VLAN的狀態發送STP格式的BPDU,而對於其它本端口允許通過的VLAN,則發送PVST格式的BPDU。
(1) STP、RSTP和PVST存在的不足
STP不能快速遷移,即使是在點對點鏈路或邊緣端口,也必須等待兩倍的Forward Delay的時間延遲,端口才能遷移到轉發狀態。
RSTP可以快速收斂,但和STP一樣還存在如下缺陷:由於局域網內所有VLAN都共享一棵生成樹,因此所有VLAN的報文都沿這棵生成樹進行轉發,不能按VLAN阻塞冗餘鏈路,也無法在VLAN間實現數據流量的負載均衡。
對於PVST而言,由於每個VLAN都需要生成一棵樹,因此PVST BPDU的通信量將與Trunk端口上允許通過的VLAN數量成正比。而且當VLAN數量較多時,維護多棵生成樹的計算量以及資源占用量都將急劇增長,特別是當允許通過很多VLAN的Trunk端口的狀態發生改變時,所有生成樹的狀態都要重新計算,網絡設備的CPU將不堪重負。
(2) MSTP的特點
MSTP由IEEE製定的802.1s標準定義,它可以彌補STP、RSTP和PVST的缺陷,既可以快速收斂,也能使不同VLAN的流量沿各自的路徑轉發,從而為冗餘鏈路提供了更好的負載分擔機製。MSTP的特點如下:
· MSTP把一個交換網絡劃分成多個域,每個域內形成多棵生成樹,生成樹之間彼此獨立。
· MSTP通過設置VLAN與生成樹的對應關係表(即VLAN映射表),將VLAN與生成樹聯係起來。並通過“實例”的概念,將多個VLAN捆綁到一個實例中,從而達到了節省通信開銷和降低資源占用率的目的。
· MSTP將環路網絡修剪成為一個無環的樹型網絡,避免報文在環路網絡中的增生和無限循環,同時還提供了數據轉發的多個冗餘路徑,在數據轉發過程中實現VLAN數據的負載分擔。
圖1-4 MSTP的基本概念示意圖
圖1-5 MST域3詳圖
在如圖1-4所示的交換網絡中有四個MST域,每個MST域都由四台設備構成,所有設備都運行MSTP;為了看清MST域內的情形,我們以MST域3為例放大來看,如圖1-5所示。下麵就結合這兩張圖來介紹一些MSTP中的基本概念:
(1) MST域
MST域(Multiple Spanning Tree Regions,多生成樹域)是由交換網絡中的多台設備以及它們之間的網段所構成。這些設備具有下列特點:
· 都使能了生成樹協議;
· 域名相同;
· VLAN與MSTI間映射關係的配置相同;
· MSTP修訂級別的配置相同;
· 這些設備之間有物理鏈路連通。
一個交換網絡中可以存在多個MST域,用戶可以通過配置將多台設備劃分在一個MST域內。如在圖1-4所示的網絡中就有MST域1~MST域4這四個MST域,每個域內的所有設備都具有相同的MST域配置。
(2) MSTI
一個MST域內可以通過MSTP生成多棵生成樹,各生成樹之間彼此獨立並分別與相應的VLAN對應,每棵生成樹都稱為一個MSTI(Multiple Spanning Tree Instance,多生成樹實例)。如在圖1-5所示的MST域3中,包含有三個MSTI:MSTI 1、MSTI 2和MSTI 0。
(3) VLAN映射表
VLAN映射表是MST域的一個屬性,用來描述VLAN與MSTI間的映射關係。如圖1-5中MST域3的VLAN映射表就是:VLAN 1映射到MSTI 1,VLAN 2和VLAN 3映射到MSTI 2,其餘VLAN映射到MSTI 0。MSTP就是根據VLAN映射表來實現負載分擔的。
(4) CST
CST(Common Spanning Tree,公共生成樹)是一棵連接交換網絡中所有MST域的單生成樹。如果把每個MST域都看作一台“設備”,CST就是這些“設備”通過STP協議、RSTP協議計算生成的一棵生成樹。如圖1-4中的藍色線條描繪的就是CST。
(5) IST
IST(Internal Spanning Tree,內部生成樹)是MST域內的一棵生成樹,它是一個特殊的MSTI,通常也稱為MSTI 0,所有VLAN缺省都映射到MSTI 0上。如圖1-5中的MSTI 0就是MST域3內的IST。
(6) CIST
CIST(Common and Internal Spanning Tree,公共和內部生成樹)是一棵連接交換網絡內所有設備的單生成樹,所有MST域的IST再加上CST就共同構成了整個交換網絡的一棵完整的單生成樹,即CIST。如圖1-4中各MST域內的IST(即MSTI 0)再加上MST域間的CST就構成了整個網絡的CIST。
(7) 域根
域根(Regional Root)就是MST域內IST或MSTI的根橋。MST域內各生成樹的拓撲不同,域根也可能不同。如在圖1-5所示的MST域3中,MSTI 1的域根為Device B,MSTI 2的域根為Device C,而MSTI 0(即IST)的域根則為Device A。
(8) 總根
總根(Common Root Bridge)就是CIST的根橋。如圖1-4中CIST的總根就是MST域1中的某台設備。
(9) 端口角色
端口在不同的MSTI中可以擔任不同的角色。如圖1-6所示,在由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-6所示,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上的角色才是主端口。
(10) 端口狀態
MSTP中的端口狀態可分為三種,如表1-6所示。
表1-6 MSTP的端口狀態
狀態 |
描述 |
Forwarding |
該狀態下的端口可以接收和發送BPDU,也轉發用戶流量 |
Learning |
是一種過渡狀態,該狀態下的端口可以接收和發送BPDU,但不轉發用戶流量 |
Discarding |
該狀態下的端口可以接收和發送BPDU,但不轉發用戶流量 |
同一端口在不同的MSTI中的端口狀態可以不同。
端口狀態和端口角色是沒有必然聯係的,表1-7給出了各種端口角色能夠具有的端口狀態(“√”表示此端口角色能夠具有此端口狀態;“-”表示此端口角色不能具有此端口狀態)。
端口角色 端口狀態 |
根端口/主端口 |
指定端口 |
替換端口 |
備份端口 |
Forwarding |
√ |
√ |
- |
- |
Learning |
√ |
√ |
- |
- |
Discarding |
√ |
√ |
√ |
√ |
MSTP將整個二層網絡劃分為多個MST域,各域之間通過計算生成CST;域內則通過計算生成多棵生成樹,每棵生成樹都被稱為是一個MSTI,其中的MSTI 0也稱為IST。MSTP同STP一樣,使用BPDU進行生成樹的計算,隻是BPDU中攜帶的是設備上MSTP的配置信息。
(1) CIST生成樹的計算
通過比較BPDU後,在整個網絡中選擇一個優先級最高的設備作為CIST的根橋。在每個MST域內MSTP通過計算生成IST;同時MSTP將每個MST域作為單台設備對待,通過計算在域間生成CST。CST和IST構成了整個網絡的CIST。
(2) MSTI的計算
在MST域內,MSTP根據VLAN與MSTI的映射關係,針對不同的VLAN生成不同的MSTI。每棵生成樹獨立進行計算,計算過程與STP計算生成樹的過程類似,請參見“1.1.1 3. STP的基本原理”。
MSTP中,一個VLAN報文將沿著如下路徑進行轉發:
· 在MST域內,沿著其對應的MSTI轉發;
· 在MST域間,沿著CST轉發。
MSTP同時兼容STP和RSTP。STP和RSTP的協議報文都可以被運行MSTP協議的設備識別並應用於生成樹計算。設備除了提供MSTP的基本功能外,還從用戶的角度出發,提供了如下便於管理的特殊功能:
· 根橋保持;
· 根橋備份;
· 根保護功能;
· BPDU保護功能;
· 環路保護功能;
· 防TC-BPDU攻擊保護功能;
· BPDU攔截功能。
與生成樹相關的協議規範有:
· 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
生成樹協議包括STP、RSTP、PVST和MSTP四種類型。在配置生成樹之前,首先需明確要使用的生成樹協議類型,並規劃好各設備在其中的角色(根橋或葉子節點);然後根據所選擇的協議類型及規劃好的設備角色,依照本節中的表格進行配置。
· 當同時使能GVRP和生成樹協議時,GVRP報文將沿CIST傳播。因此當同時使能了GVRP和生成樹協議時,如果希望通過GVRP在網絡中發布某個VLAN,則配置生成樹協議的VLAN映射表時要保證將該VLAN映射到CIST上。有關GVRP的詳細介紹,請參見“二層技術-以太網交換配置指導”中的“GVRP”。
· 生成樹協議與RRPP功能和Smart Link功能和互斥。
· 對於生成樹的相關配置來說:係統視圖下的配置在全局生效;以太網接口視圖下的配置隻對當前端口生效;端口組視圖下的配置對當前端口組中的所有端口生效;二層聚合接口視圖下的配置隻對當前接口生效;聚合成員端口上的配置,隻有當成員端口退出聚合組後才能生效。
· 在二層聚合接口上使能生成樹協議後,生成樹的相關計算隻在二層聚合接口上進行,聚合成員端口不再參與生成樹計算。二層聚合接口的所有選中成員端口上生成樹協議的使能/關閉狀態以及端口轉發狀態與二層聚合接口保持一致。盡管聚合成員端口不參與生成樹計算,但端口上的生成樹相關配置仍然保留,當端口退出聚合組時,該端口將采用這些配置參與生成樹計算。
表1-8 STP配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
配置根橋 |
配置生成樹的工作模式 |
必選 生成樹缺省工作在MSTP模式下,通過本配置將其工作模式配置為STP模式 |
|
配置根橋和備份根橋 |
可選 |
||
配置設備的優先級 |
可選 |
||
配置交換網絡的網絡直徑 |
可選 |
||
配置生成樹的時間參數 |
可選 |
||
配置超時時間因子 |
可選 |
||
配置端口的最大發送速率 |
可選 |
||
打開端口狀態變化信息顯示開關 |
可選 |
||
使能生成樹協議 |
必選 |
||
配置葉子節點 |
配置生成樹的工作模式 |
必選 生成樹缺省工作在MSTP模式下,通過本配置將其工作模式配置為STP模式 |
|
配置設備的優先級 |
可選 |
||
配置超時時間因子 |
可選 |
||
配置端口的最大發送速率 |
可選 |
||
配置端口的路徑開銷 |
可選 |
||
配置端口的優先級 |
可選 |
||
打開端口狀態變化信息顯示開關 |
可選 |
||
使能生成樹協議 |
必選 |
||
配置VLAN Ignore功能 |
可選 |
||
配置生成樹保護功能 |
可選 |
表1-9 RSTP配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
配置根橋 |
配置生成樹的工作模式 |
必選 生成樹缺省工作在MSTP模式下,通過本配置將其工作模式配置為RSTP模式 |
|
配置根橋和備份根橋 |
可選 |
||
配置設備的優先級 |
可選 |
||
配置交換網絡的網絡直徑 |
可選 |
||
配置生成樹的時間參數 |
可選 |
||
配置超時時間因子 |
可選 |
||
配置端口的最大發送速率 |
可選 |
||
配置端口為邊緣端口 |
可選 |
||
配置端口的鏈路類型 |
可選 |
||
打開端口狀態變化信息顯示開關 |
可選 |
||
使能生成樹協議 |
必選 |
||
配置葉子節點 |
配置生成樹的工作模式 |
必選 生成樹缺省工作在MSTP模式下,通過本配置將其工作模式配置為RSTP模式 |
|
配置設備的優先級 |
可選 |
||
配置超時時間因子 |
可選 |
||
配置端口的最大發送速率 |
可選 |
||
配置端口為邊緣端口 |
可選 |
||
配置端口的路徑開銷 |
可選 |
||
配置端口的優先級 |
可選 |
||
配置端口的鏈路類型 |
可選 |
||
打開端口狀態變化信息顯示開關 |
可選 |
||
使能生成樹協議 |
必選 |
||
執行mCheck操作 |
可選 |
||
配置VLAN Ignore功能 |
可選 |
||
配置生成樹保護功能 |
可選 |
表1-10 PVST配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
配置根橋 |
配置生成樹的工作模式 |
必選 生成樹缺省工作在MSTP模式下,通過本配置將其工作模式配置為PVST模式 |
|
配置根橋和備份根橋 |
可選 |
||
配置設備的優先級 |
可選 |
||
配置交換網絡的網絡直徑 |
可選 |
||
配置生成樹的時間參數 |
可選 |
||
配置超時時間因子 |
可選 |
||
配置端口的最大發送速率 |
可選 |
||
配置端口為邊緣端口 |
可選 |
||
配置端口的鏈路類型 |
可選 |
||
打開端口狀態變化信息顯示開關 |
可選 |
||
使能生成樹協議 |
必選 |
||
配置葉子節點 |
配置生成樹的工作模式 |
必選 生成樹缺省工作在MSTP模式下,通過本配置將其工作模式配置為PVST模式 |
|
配置設備的優先級 |
可選 |
||
配置超時時間因子 |
可選 |
||
配置端口的最大發送速率 |
可選 |
||
配置端口為邊緣端口 |
可選 |
||
配置端口的路徑開銷 |
可選 |
||
配置端口的優先級 |
可選 |
||
配置端口的鏈路類型 |
可選 |
||
打開端口狀態變化信息顯示開關 |
可選 |
||
使能生成樹協議 |
必選 |
||
執行mCheck操作 |
可選 |
||
配置VLAN Ignore功能 |
可選 |
||
配置生成樹保護功能 |
可選 |
||
配置生成樹PVST模式TC告警功能 |
可選 |
表1-11 MSTP配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
配置根橋 |
配置生成樹的工作模式 |
可選 生成樹缺省即工作在MSTP模式下 |
|
配置MST域 |
必選 |
||
配置根橋和備份根橋 |
可選 |
||
配置設備的優先級 |
可選 |
||
配置MST域的最大跳數 |
可選 |
||
配置交換網絡的網絡直徑 |
可選 |
||
配置生成樹的時間參數 |
可選 |
||
配置超時時間因子 |
可選 |
||
配置端口的最大發送速率 |
可選 |
||
配置端口為邊緣端口 |
可選 |
||
配置端口的鏈路類型 |
可選 |
||
配置端口收發的MSTP報文格式 |
可選 |
||
打開端口狀態變化信息顯示開關 |
可選 |
||
使能生成樹協議 |
必選 |
||
配置葉子節點 |
配置生成樹的工作模式 |
可選 生成樹缺省即工作在MSTP模式下 |
|
配置MST域 |
必選 |
||
配置設備的優先級 |
可選 |
||
配置超時時間因子 |
可選 |
||
配置端口的最大發送速率 |
可選 |
||
配置端口為邊緣端口 |
可選 |
||
配置端口的路徑開銷 |
可選 |
||
配置端口的優先級 |
可選 |
||
配置端口的鏈路類型 |
可選 |
||
配置端口收發的MSTP報文格式 |
可選 |
||
打開端口狀態變化信息顯示開關 |
可選 |
||
使能生成樹協議 |
必選 |
||
執行mCheck操作 |
可選 |
||
配置VLAN Ignore功能 |
可選 |
||
配置摘要偵聽功能 |
可選 |
||
配置No Agreement Check功能 |
可選 |
||
配置生成樹保護功能 |
可選 |
生成樹的工作模式有以下四種:
· STP模式:設備的所有端口都將向外發送STP BPDU。如果端口的對端設備隻支持STP,可選擇此模式。
· RSTP模式:設備的所有端口都向外發送RSTP BPDU。當端口收到對端設備發來的STP BPDU時,會自動遷移到STP模式;如果收到的是MSTP BPDU,則不會進行遷移。
· MSTP模式:設備的所有端口都向外發送MSTP BPDU。當端口收到對端設備發來的STP BPDU時,會自動遷移到STP模式;如果收到的是RSTP BPDU,則不會進行遷移。
· PVST模式:設備的所有端口都向外發送PVST BPDU,每個VLAN維護一棵生成樹。不同型號的設備可維護生成樹的VLAN數目(假設為n,本係列交換機為16)不同,當使用不同型號的設備進行PVST組網時,網絡中維護有生成樹的VLAN總數請勿超過最小的n值,否則將導致網絡故障。運行PVST的H3C設備可以與運行Rapid PVST或PVST的友商設備互通。當運行PVST的H3C設備之間互聯或運行PVST的H3C設備與運行Rapid PVST的友商設備互通時支持像RSTP一樣的快速收斂。
MSTP模式兼容RSTP模式,RSTP模式兼容STP模式,而PVST模式與其它模式的兼容性如下:
· 對於Access端口:PVST模式在任意VLAN中都能與其它模式互相兼容。
· 對於Trunk端口或Hybrid端口:PVST模式僅在VLAN 1中能與其它模式互相兼容。
表1-12 配置生成樹的工作模式
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置生成樹的工作模式 |
stp mode { mstp | pvst | rstp | stp } |
必選 缺省情況下,生成樹的工作模式為MSTP模式 |
在各工作模式下進行配置時,對是否需要指定MSTI和VLAN的要求不同:
· 在STP模式或RSTP模式下無需指定MSTI和VLAN,若指定了MSTI或VLAN則該配置無效。
· 在MSTP模式下,若指定了MSTI則表示針對該MSTI進行配置,若指定了VLAN則該配置無效,若MSTI和VLAN均未指定則表示針對CIST進行配置。
· 在PVST模式下,若指定了VLAN則表示針對該VLAN進行配置,若未指定VLAN則該配置無效。
表1-13 配置MST域
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入MST域視圖 |
stp region-configuration |
- |
配置MST域的域名 |
region-name name |
可選 缺省情況下,MST域的域名為設備的MAC地址 |
配置VLAN映射表 |
instance instance-id vlan vlan-list |
二者可選其一 缺省情況下,所有VLAN都映射到CIST(即MSTI 0)上 |
vlan-mapping modulo modulo |
||
配置MSTP的修訂級別 |
revision-level level |
可選 缺省情況下,MSTP的修訂級別為0 |
顯示MST域的預配置信息 |
check region-configuration |
可選 |
激活MST域的配置 |
active region-configuration |
必選 |
顯示當前生效的MST域配置信息 |
display stp region-configuration [ | { begin | exclude | include } regular-expression ] |
可選 display命令可以在任意視圖執行 |
· 兩台或多台使能了生成樹協議的設備若要屬於同一個MST域,必須同時滿足以下兩個條件:第一是選擇因子(取值為0,不可配)、域名、修訂級別和VLAN映射表的配置都相同;第二是這些設備之間的鏈路相通。
· 在配置MST域的相關參數(特別是VLAN映射表)時,會引發生成樹的重新計算,從而引起網絡拓撲的振蕩。為了減少網絡振蕩,新配置的MST域參數並不會馬上生效,而是在使用active region-configuration命令激活,或使用命令stp enable使能生成樹協議後才會生效。
· 在PVST模式下,係統會自動將VLAN與MSTI進行映射。由於設備在PVST模式下支持的MSTI數量比在MSTP模式下多,因此當由PVST模式切換到MSTP模式時,多出的MSTI(按MSTI的編號由小到大確定)的映射關係配置將被自動清除,此後即使再切換回PVST模式,被清除的這些配置也不會自動恢複。為了避免這種情況,在PVST模式下不建議手工配置VLAN與MSTI的映射關係。
可以通過計算來自動確定生成樹的根橋,用戶也可以手工將設備配置為指定生成樹的根橋或備份根橋:
· 設備在各生成樹中的角色互相獨立,在作為一棵生成樹的根橋或備份根橋的同時,也可以作為其它生成樹的根橋或備份根橋;但在同一棵生成樹中,一台設備不能既作為根橋,又作為備份根橋。
· 在一棵生成樹中,生效的根橋隻有一個;當兩台或兩台以上的設備被指定為同一棵生成樹的根橋時,係統將選擇MAC地址最小的設備作為根橋。
· 可以在每棵生成樹中指定多個備份根橋。當根橋出現故障或被關機時,備份根橋可以取代根橋成為指定生成樹的根橋;但此時若配置了新的根橋,則備份根橋將不會成為根橋。如果配置了多個備份根橋,則MAC地址最小的備份根橋將成為指定生成樹的根橋。
請在欲配置為根橋的設備上進行如下配置。
表1-14 配置根橋
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置當前設備為根橋(STP/RSTP模式) |
stp root primary |
必選 缺省情況下,設備不是根橋 |
配置當前設備為根橋(PVST模式) |
stp vlan vlan-list root primary |
|
配置當前設備為根橋(MSTP模式) |
stp [ instance instance-id ] root primary |
請在欲配置為備份根橋的設備上進行如下配置。
表1-15 配置備份根橋
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置當前設備為備份根橋(STP/RSTP模式) |
stp root secondary |
必選 缺省情況下,設備不是備份根橋 |
配置當前設備為備份根橋(PVST模式) |
stp vlan vlan-list root secondary |
|
配置當前設備為備份根橋(MSTP模式) |
stp [ instance instance-id ] root secondary |
· 用戶可以為每棵生成樹指定一個根橋,而無需關心設備的優先級配置。當設備一旦被配置為根橋或者備份根橋之後,便不能再修改該設備的優先級。
· 也可以通過配置設備的優先級為0來實現將當前設備指定為根橋的目的。有關設備優先級的配置,請參見“1.3.4 配置設備的優先級”。
設備的優先級參與生成樹計算,其大小決定了該設備是否能夠被選作生成樹的根橋。數值越小表示優先級越高,通過配置較小的優先級,可以達到指定某台設備成為生成樹根橋的目的。可以在不同的生成樹中為設備配置不同的優先級。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置設備的優先級(STP/RSTP模式) |
stp priority priority |
必選 缺省情況下,設備的優先級為32768 |
配置設備的優先級(PVST模式) |
stp vlan vlan-list priority priority |
|
配置設備的優先級(MSTP模式) |
stp [ instance instance-id ] priority priority |
· 當指定設備為根橋或者備份根橋之後,不允許再修改該設備的優先級。
· 在生成樹根橋的選擇過程中,如果設備的優先級相同,則MAC地址最小的設備將被選擇為根。
MST域的最大跳數限製了MST域的規模,在域根上配置的最大跳數將作為該MST域的最大跳數。
從MST域內的生成樹的根橋開始,域內的BPDU每經過一台設備的轉發,跳數就被減1;設備將丟棄跳數為0的BPDU,以使處於最大跳數外的設備無法參與生成樹的計算,從而限製了MST域的規模。
本配置隻需在根橋設備上進行,非根橋設備將采用根橋設備的配置值。
表1-17 配置MST域的最大跳數
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置MST域的最大跳數 |
stp max-hops hops |
必選 缺省情況下,MST域的最大跳數為20 |
交換網絡中任意兩台終端設備都通過特定路徑彼此相連,這些路徑由一係列的設備構成。網絡直徑就是指交換網絡中任意兩台終端設備間的最大設備數。網絡直徑越大,說明網絡的規模越大。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置交換網絡的網絡直徑(STP/RSTP/MSTP模式) |
stp bridge-diameter diameter |
必選 缺省情況下,交換網絡的網絡直徑為7 |
配置交換網絡的網絡直徑(PVST模式) |
stp vlan vlan-list bridge-diameter diameter |
· 在配置了網絡直徑之後,係統會通過計算自動將設備的Hello Time、 Forward Delay和Max Age三個時間參數設置為最優值。
· 在STP/RSTP/MSTP模式下,每個MST域將被視為一台設備,且網絡直徑配置隻對CIST有效(即隻能在總根上生效),而對MSTI無效。
· 在PVST模式下,網絡直徑的配置隻能在根橋上生效。
在生成樹的計算過程中,用到了以下三個時間參數:
(1) Forward Delay:用於確定狀態遷移的延遲時間。為了防止產生臨時環路,生成樹協議在端口由Discarding狀態向Forwarding狀態遷移的過程中設置了Learning狀態作為過渡,並規定狀態遷移需要等待Forward Delay時間,以保持與遠端的設備狀態切換同步。
(2) Hello Time:用於檢測鏈路是否存在故障。生成樹協議每隔Hello Time時間會發送BPDU,以確認鏈路是否存在故障。如果設備在Hello Time時間內沒有收到BPDU,則會由於消息超時而重新計算生成樹。
(3) Max Age:用於確定BPDU是否超時。在MSTP的CIST以及PVST的各VLAN上,設備根據Max Age時間來確定端口收到的BPDU是否超時。如果端口收到的BPDU超時,則需要對該MSTI重新計算。Max Age時間對MSTP的MSTI無效。
上述三個時間參數之間應滿足以下關係,否則會引起網絡的頻繁震蕩:
(1) 2×(Forward Delay-1秒)≥Max Age
(2) Max Age≥2×(Hello Time+1秒)
通常情況下,不建議通過本配置直接調整上述三個時間參數。由於這三個時間參數的取值與網絡規模有關,因此建議通過調整網絡直徑,使生成樹協議自動調整這三個時間參數的值。當網絡直徑取缺省值時,這三個時間參數也分別取其各自的缺省值。
本配置隻需在根橋設備上進行,整個交換網絡中的所有設備都將采用根橋設備的配置值。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置Forward Delay時間參數(STP/RSTP/MSTP模式) |
stp timer forward-delay time |
可選 缺省情況下,Forward Delay為15秒 |
配置Forward Delay時間參數(PVST模式) |
stp vlan vlan-list timer forward-delay time |
|
配置Hello Time時間參數(STP/RSTP/MSTP模式) |
stp timer hello time |
可選 缺省情況下,Hello Time為2秒 |
配置Hello Time時間參數(PVST模式) |
stp vlan vlan-list timer hello time |
|
配置Max Age時間參數(STP/RSTP/MSTP模式) |
stp timer max-age time |
可選 缺省情況下,Max Age為20秒 |
配置Max Age時間參數(PVST模式) |
stp vlan vlan-list timer max-age time |
· Forward Delay的長短與交換網絡的網絡直徑有關。一般來說,網絡直徑越大,Forward Delay就應該越長。如果Forward Delay過短,可能引入臨時的冗餘路徑;如果Forward Delay過長,網絡可能較長時間不能恢複連通。建議用戶采用缺省值。
· 合適的Hello Time可以保證設備能夠及時發現網絡中的鏈路故障,又不會占用過多的網絡資源。如果Hello Time過長,在鏈路發生丟包時,設備會誤以為鏈路出現了故障,從而引發設備重新計算生成樹;如果Hello Time過短,設備將頻繁發送重複的BPDU,增加了設備的負擔,浪費了網絡資源。建議用戶采用缺省值。
· 如果Max Age過短,設備會頻繁地計算生成樹,而且有可能將網絡擁塞誤認成鏈路故障;如果Max Age過長,設備很可能不能及時發現鏈路故障,不能及時重新計算生成樹,從而降低網絡的自適應能力。建議用戶采用缺省值。
超時時間因子用來確定設備的超時時間:超時時間=超時時間因子×3×Hello Time。
當網絡拓撲結構穩定後,非根橋設備會每隔Hello Time時間向周圍相連設備轉發根橋發出的BPDU以確認鏈路是否存在故障。通常如果設備在9倍的Hello Time時間內沒有收到上遊設備發來的BPDU,就會認為上遊設備已經故障,從而重新進行生成樹的計算。
有時設備在較長時間內收不到上遊設備發來的BPDU,可能是由於上遊設備的繁忙導致的,在這種情況下一般不應重新進行生成樹的計算。因此在穩定的網絡中,可以通過延長超時時間來減少網絡資源的浪費。在一個穩定的網絡中,建議將超時時間因子配置為5~7。
表1-20 配置超時時間因子
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置設備的超時時間因子 |
stp timer-factor factor |
必選 缺省情況下,設備的超時時間因子為3 |
端口的最大發送速率是指每Hello Time時間內端口能夠發送的BPDU最大數目。端口的最大發送速率與端口的物理狀態和網絡結構有關,用戶可以根據實際的網絡情況對其進行配置。
表1-21 配置端口的最大發送速率
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置端口的最大發送速率 |
stp transmit-limit limit |
必選 缺省情況下,端口的最大發送速率為10 |
最大發送速率越高,每個Hello Time內可發送的BPDU數量就越多,占用的係統資源也越多。適當配置最大發送速率一方麵可以限製端口發送BPDU的速度,另一方麵還可以防止在網絡拓撲動蕩時,生成樹協議占用過多的帶寬資源。建議用戶采用缺省配置。
當端口直接與用戶終端相連,而沒有連接到其它設備或共享網段上,則該端口被認為是邊緣端口。網絡拓撲變化時,邊緣端口不會產生臨時環路。
由於設備無法知道端口是否直接與終端相連,所以需要用戶手工將端口配置為邊緣端口。如果用戶將某個端口配置為邊緣端口,那麼當該端口由阻塞狀態向轉發狀態遷移時,這個端口可以實現快速遷移,而無需等待延遲時間。
表1-22 配置端口為邊緣端口
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置當前端口為邊緣端口 |
stp edged-port enable |
必選 缺省情況下,端口為非邊緣端口 |
· 在設備沒有使能BPDU保護的情況下,如果被設置為邊緣端口的端口上收到來自其它端口的BPDU,則該端口會重新變為非邊緣端口。此時,隻有重啟端口才能將該端口恢複為邊緣端口。
· 對於直接與終端相連的端口,請將該端口設置為邊緣端口,同時使能BPDU保護功能。這樣既能夠使該端口快速遷移到轉發狀態,也可以保證網絡的安全。
· 在同一個端口上不允許同時配置邊緣端口和環路保護功能。
路徑開銷(Path Cost)是與端口相連的鏈路速率相關的參數。在支持生成樹協議的設備上,端口在不同的MSTI中可以擁有不同的路徑開銷。設置合適的路徑開銷可以使不同VLAN的流量沿不同的物理鏈路轉發,從而實現按VLAN負載分擔的功能。
設備可以自動計算端口的缺省路徑開銷,用戶也可以直接配置端口的路徑開銷。
缺省路徑開銷的計算標準有以下三種,用戶可以通過本配置來改變設備自動計算端口的缺省路徑開銷時所采用的計算標準:
· dot1d-1998:表示按照IEEE 802.1D-1998標準來計算缺省路徑開銷。
· dot1t:表示按照IEEE 802.1t標準來計算缺省路徑開銷。
· legacy:表示按照私有標準來計算缺省路徑開銷。
表1-23 配置缺省路徑開銷的計算標準
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置缺省路徑開銷的計算標準 |
stp pathcost-standard { dot1d-1998 | dot1t | legacy } |
必選 缺省情況下,缺省路徑開銷的計算標準為legacy |
改變缺省路徑開銷的計算標準,將使端口的路徑開銷值恢複為缺省值。
鏈路速率與路徑開銷值的對應關係如表1-24所示。
鏈路速率 |
端口類型 |
端口的路徑開銷值 |
||
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 |
||
1000Mbps |
單個端口 |
4 |
20,000 |
20 |
聚合接口(含兩個選中端口) |
10,000 |
18 |
||
聚合接口(含三個選中端口) |
6,666 |
16 |
||
聚合接口(含四個選中端口) |
5,000 |
14 |
||
10Gbps |
單個端口 |
2 |
2,000 |
2 |
聚合接口(含兩個選中端口) |
1,000 |
1 |
||
聚合接口(含三個選中端口) |
666 |
1 |
||
聚合接口(含四個選中端口) |
500 |
1 |
· 在計算聚合接口的路徑開銷時,IEEE 802.1D-1998標準不考慮聚合接口所對應聚合組內選中端口的數量;而IEEE 802.1t標準則對此予以考慮,其計算公式為:端口的路徑開銷=200000000÷鏈路速率(單位為100Kbps),其中鏈路速率為聚合接口所對應聚合組內選中端口的速率之和。
· 當端口的鏈路速率大於10Gbps、且缺省路徑開銷的計算標準為IEEE 802.1D-1998或私有標準時,單個端口和聚合接口的路徑開銷值都會取所選標準規定的最小值,這將影響轉發路徑選擇的合理性。在這種情況下,建議將缺省路徑開銷的計算標準配置為IEEE 802.1t,或手工配置端口的路徑開銷(請參見“1.3.11 2. 配置端口的路徑開銷”)。
表1-25 配置端口的路徑開銷
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置端口的路徑開銷(STP/RSTP模式) |
stp cost cost |
必選 缺省情況下,自動按照相應的標準計算各生成樹上的路徑開銷 |
|
配置端口的路徑開銷(PVST模式) |
stp vlan vlan-list cost cost |
||
配置端口的路徑開銷(MSTP模式) |
stp [ instance instance-id ] cost cost |
當端口的路徑開銷值改變時,係統將重新計算端口的角色並進行狀態遷移。
# 在MSTP模式下,配置按照IEEE 802.1D-1998標準來計算缺省路徑開銷,並配置端口GigabitEthernet1/0/3在MSTI 2上的路徑開銷值為200。
<Sysname> system-view
[Sysname] stp pathcost-standard dot1d-1998
[Sysname] interface gigabitethernet 1/0/3
[Sysname-GigabitEthernet1/0/3] stp instance 2 cost 200
# 在PVST模式下,配置按照IEEE 802.1D-1998標準來計算缺省路徑開銷,並配置端口GigabitEthernet1/0/3在PVST VLAN 20~30上的路徑開銷均為2000。
<Sysname> system-view
[Sysname] stp mode pvst
[Sysname] stp pathcost-standard dot1d-1998
[Sysname] interface gigabitethernet 1/0/3
[Sysname-GigabitEthernet1/0/3] stp vlan 20 to 30 cost 2000
端口優先級是確定該端口是否會被選為根端口的重要依據,同等條件下優先級高的端口將被選為根端口。在支持生成樹協議的設備上,端口可以在不同的生成樹中擁有不同的優先級,同一端口可以在不同的生成樹中擔任不同的角色,從而使不同VLAN的數據沿不同的物理路徑傳播,實現按VLAN進行負載分擔的功能。用戶可以根據組網的實際需要來設置端口的優先級。
表1-26 配置端口的優先級
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置端口的優先級(STP/RSTP模式) |
stp port priority priority |
必選 缺省情況下,端口的優先級為128 |
|
配置端口的優先級(PVST模式) |
stp vlan vlan-list port priority priority |
||
配置端口的優先級(MSTP模式) |
stp [ instance instance-id ] port priority priority |
當端口的優先級改變時,係統將重新計算端口的角色並進行狀態遷移。
點對點鏈路是兩台設備之間直接連接的鏈路。與點對點鏈路相連的兩個端口如果為根端口或者指定端口,則端口可以通過傳送同步報文(Proposal報文和Agreement報文)快速遷移到轉發狀態,減少了不必要的轉發延遲時間。
表1-27 配置端口的鏈路類型
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置端口的鏈路類型 |
stp point-to-point { auto | force-false | force-true } |
必選 缺省情況下,端口的鏈路類型為auto,即由係統自動檢測與本端口相連的鏈路是否為點對點鏈路 |
· 如果某端口是二層聚合接口或其工作在全雙工模式下,則可以將該端口配置為與點對點鏈路相連。通常建議使用缺省配置,由係統進行自動檢測。
· 在MSTP模式或PVST模式下,如果某端口被配置為與點對點鏈路(或非點對點鏈路)相連,那麼該配置對該端口所屬的所有MSTI或VLAN都有效。
· 如果某端口被配置為與點對點鏈路相連,但與該端口實際相連的物理鏈路不是點對點鏈路,則有可能引入臨時回路。
端口可以收發的MSTP報文格式有兩種:
· dot1s:符合802.1s協議的標準格式;
· legacy:與非標準格式兼容的格式。
端口默認配置為自動識別方式(auto),即可以自動識別這兩種格式的MSTP報文,並根據識別結果確定發送報文的格式,從而實現與對端設備的互通。
用戶也可以通過配置改變端口收發的MSTP報文格式,使端口隻收發與所配格式相符的MSTP報文,實現與對端發送所配置格式報文的設備互通。
表1-28 配置端口收發的MSTP報文格式
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置端口收發的MSTP報文格式 |
stp compliance { auto | dot1s | legacy } |
必選 缺省情況下,端口會自動識別收到的MSTP報文格式並根據識別結果確定發送的報文格式 |
· 設備提供了MSTP報文格式不兼容保護功能:在MSTP模式下,當端口上配置的收發MSTP報文格式不是auto時,如果端口收到了與所配格式不符的報文,該端口將成為指定端口,其狀態將保持在Discarding,以防止出現環路。
· 設備提供了MSTP報文格式頻繁切換保護功能:設備運行過程中,如果端口收到的MSTP報文格式頻繁變化,則表明組網中MSTP報文格式的配置出現了錯誤,此時在MSTP模式下會把該端口關閉以進行保護。被關閉的端口在經過一定時間間隔之後將被重新激活,這個時間間隔就是定時檢測時間間隔。有關定時檢測時間間隔的詳細介紹,請參見“基礎配置指導”中的“設備管理”。
在使能了生成樹協議的大型網絡中,用戶可以通過打開端口狀態變化信息顯示開關,使係統輸出端口狀態變化的相關信息,方便用戶對端口狀態進行實時監控。
表1-29 打開端口狀態變化信息顯示開關
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
打開端口狀態變化信息顯示開關(STP/RSTP模式) |
stp port-log instance 0 |
必選 缺省情況下,端口狀態變化信息顯示開關處於開啟狀態 |
打開端口狀態變化信息顯示開關(PVST模式) |
stp port-log vlan vlan-list |
|
打開端口狀態變化信息顯示開關(MSTP模式) |
stp port-log instance { instance-id | all } |
隻有使能了生成樹協議,生成樹的其它配置才會生效。
在STP/RSTP/MSTP模式下,必須保證全局和端口上的生成樹協議均處於使能狀態。
表1-30 使能生成樹協議(STP/RSTP/MSTP模式)
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
全局使能生成樹協議 |
stp enable |
必選 缺省情況下,生成樹協議在全局處於關閉狀態 |
|
進入相應視圖 |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
在端口上使能生成樹協議 |
stp enable |
可選 缺省情況下,所有端口上的生成樹協議均處於使能狀態 |
在PVST模式下,必須保證全局、VLAN和端口上的生成樹協議均處於使能狀態。
表1-31 使能生成樹協議(PVST模式)
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
全局使能生成樹協議 |
stp enable |
必選 缺省情況下,生成樹協議在全局處於關閉狀態 |
|
在VLAN中使能生成樹協議 |
stp vlan vlan-list enable |
必選 缺省情況下,生成樹協議在VLAN中處於使能狀態 |
|
進入相應視圖 |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
在端口上使能生成樹協議 |
stp enable |
可選 缺省情況下,所有端口上的生成樹協議均處於使能狀態 |
· 可以通過undo stp enable命令關閉特定端口的生成樹協議,使這些端口不參與生成樹計算,以節省設備的CPU資源。
· 在PVST模式下,全局使能生成樹協議後,設備會默認使能已創建的前n個VLAN(n為設備支持的PVST實例數,本係列交換機為16)上的生成樹協議,此時如果需要再使能其它指定VLAN的生成樹協議,需先關閉某些VLAN的生成樹協議,然後再在指定的VLAN上使能生成樹協議。如果設備上創建的VLAN總數沒有超過n,則不存在這種情況。
MSTP的工作模式有STP模式、RSTP模式、MSTP模式和PVST模式四種。在運行MSTP、RSTP或PVST的設備上,若某端口連接著運行STP協議的設備,該端口會自動遷移到STP模式;但在下列兩種情況下,該端口將無法自動遷移回到原有模式,而需要通過執行mCheck操作將其手工遷移回原有模式:
· 運行STP協議的設備被關機或撤走;
· 運行STP協議的設備切換為MSTP模式、RSTP模式或PVST模式。
當運行STP的設備A、未使能生成樹協議的設備B和運行RSTP/MSTP/PVST的設備C三者順次相連時,設備B將透傳STP報文,設備C上連接設備B的端口將遷移到STP模式。在設備B上使能生成樹協議後,若想使設備B與設備C之間運行RSTP/MSTP/PVST協議,除了要在設備B上配置生成樹的工作模式為RSTP/MSTP/PVST外,還要在設備B與設備C相連的端口上都執行mCheck操作。
可以在全局或在端口上執行mCheck操作。
表1-32 全局執行mCheck操作
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
全局執行mCheck操作 |
stp mcheck |
必選 |
表1-33 在端口上執行mCheck操作
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
- |
在端口上執行mCheck操作 |
stp mcheck |
必選 |
隻有當生成樹的工作模式為MSTP模式、RSTP模式或PVST模式時執行mCheck操作才有效。
在網絡拓撲比較複雜的情況下,某些VLAN的拓撲有可能會被生成樹阻塞,造成該VLAN的業務流量不通。
圖1-7 MSTP阻塞VLAN連通性示意圖
如圖1-7所示,Device A的端口Port A1允許VLAN 1通過,Port A2允許VLAN 2通過;Device B的端口Port B1允許VLAN 1通過,Port B2允許VLAN 2通過。Device A和Device B都正常運行生成樹協議,通過計算,Device A為根橋,其端口Port A1和Port A2為指定端口,Device B的端口Port B1為根端口,Port B2為阻塞端口,則VLAN 2的業務流量無法實現正常連通。
通過在指定VLAN上使能VLAN Ignore功能,可使該VLAN中每個端口的實際轉發狀態不再遵從生成樹的計算結果,而是一直保持轉發狀態。
表1-34 配置VLAN Ignore功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
在指定VLAN內使能VLAN Ignore功能 |
stp ignored vlan vlan-list |
必選 缺省情況下,VLAN內的VLAN Ignore功能處於關閉狀態 |
顯示已使能VLAN Ignore功能的VLAN列表 |
display stp ignored-vlan [ | { begin | exclude | include } regular-expression ] |
可選 display命令可以在任意視圖下執行 |
(1) 組網需求
· Device A與Device B直連,其各自的GigabitEthernet1/0/1端口都允許VLAN 1通過、GigabitEthernet1/0/2端口都允許VLAN 2通過。
· Device A與Device B都正常運行生成樹協議,Device A為根橋,Device B的GigabitEthernet1/0/2端口為阻塞端口,導致VLAN 2業務流量不通。
· 通過配置VLAN Ignore功能,使Device B上VLAN 2中的端口GigabitEthernet1/0/2一直保持轉發狀態。
(2) 組網圖
圖1-8 VLAN Ignore功能配置組網圖
(3) 配置步驟
# 在Device B上使能VLAN 2內的VLAN Ignore功能。
<DeviceB> system-view
[DeviceB] stp ignored vlan 2
# 顯示已使能VLAN Ignore功能的VLAN列表。
[DeviceB] display stp ignored-vlan
STP-Ignored VLAN: 2
根據IEEE 802.1s規定,隻有在MST域配置(包括域名、修訂級別和VLAN映射關係)完全一致的情況下,相連的設備才被認為是在同一個域內。當設備使能了生成樹協議以後,設備之間通過識別BPDU數據報文內的配置ID來判斷相連的設備是否與自己處於相同的MST域內;配置ID包含域名、修訂級別、配置摘要等內容,其中配置摘要長16字節,是由HMAC-MD5算法將VLAN與MSTI的映射關係加密計算而成。
在網絡中,由於一些廠商的設備在對生成樹協議的實現上存在差異,即用加密算法計算配置摘要時采用私有的密鑰,從而導致即使MST域配置相同,不同廠商的設備之間也不能實現在MST域內的互通。
通過在我方設備與對生成樹協議的實現存在差異的第三方廠商設備相連的端口上使能摘要偵聽功能,可以實現我方設備與這些廠商設備在MST域內的完全互通。
我方設備與第三方廠商設備相連,網絡配置正確,生成樹協議正常運行。
隻有當我方設備與對生成樹協議的實現存在差異的第三方廠商設備(即采用私有密鑰來計算配置摘要)互連時,才有必要配置本功能。
表1-35 配置摘要偵聽功能
配置步驟 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
在端口上使能摘要偵聽功能 |
stp config-digest-snooping |
必選 缺省情況下,摘要偵聽功能處於關閉狀態 |
|
退回係統視圖 |
quit |
- |
|
全局使能摘要偵聽功能 |
stp config-digest-snooping |
必選 缺省情況下,摘要偵聽功能處於關閉狀態 |
· 摘要偵聽功能在端口生效後,由於不再通過配置摘要的比較計算來判斷是否在同一個域內,因此需要保證互連設備的域配置中VLAN與MSTI映射關係的配置相同。
· 全局使能摘要偵聽功能後,禁止修改MST域配置中VLAN與MSTI的映射關係,禁止執行undo stp region-configuration命令取消當前域配置,但可以修改域配置中的域名和修訂級別。
· 隻有當全局和端口上都使能了摘要偵聽功能後,該功能才能生效。使能摘要偵聽功能時,建議先在所有與第三方廠商設備相連的端口上使能該功能,再全局使能該功能,以一次性讓所有端口的配置生效,從而減少對網絡的衝擊。
· 請不要在MST域的邊界端口上使能摘要偵聽功能,否則可能會導致環路。
· 建議配置完摘要偵聽功能後再使能生成樹協議。在網絡穩定的情況下不要進行摘要偵聽功能的配置,以免造成臨時的流量中斷。
(1) 組網需求
· Device A和Device B分別與對生成樹協議的實現存在差異的第三方廠商設備Device C相連並配置在同一域內。
· 分別在Device A和Device B各自與Device C相連的端口上使能摘要偵聽功能,實現Device A、Device B和Device C在MST域內的互通。
(2) 組網圖
圖1-9 摘要偵聽功能配置組網圖
(3) 配置步驟
# 在Device A的端口GigabitEthernet1/0/1上使能摘要偵聽功能,並全局使能摘要偵聽功能。
<DeviceA> system-view
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] stp config-digest-snooping
[DeviceA-GigabitEthernet1/0/1] quit
[DeviceA] stp config-digest-snooping
# 在Device B的端口GigabitEthernet1/0/1上使能摘要偵聽功能,並全局使能摘要偵聽功能。
<DeviceB> system-view
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] stp config-digest-snooping
[DeviceB-GigabitEthernet1/0/1] quit
[DeviceB] stp config-digest-snooping
RSTP和MSTP的指定端口快速遷移機製使用兩種協議報文:
· Proposal報文:指定端口請求快速遷移的報文。
· Agreement報文:同意對端進行快速遷移的報文。
RSTP和MSTP均要求上遊設備的指定端口在接收到下遊設備的Agreement報文後才能進行快速遷移。不同之處如下:
· 對於MSTP,上遊設備先向下遊設備發送Agreement報文,而下遊設備的根端口隻有在收到了上遊設備的Agreement報文後才會向上遊設備回應Agreement報文。
· 對於RSTP,下遊設備無需等待上遊設備發送Agreement報文就可向上遊設備發送Agreement報文。
如圖1-10所示,是MSTP的指定端口快速遷移機製。
圖1-10 MSTP指定端口快速遷移機製
如圖1-11所示,是RSTP的指定端口快速遷移機製。
圖1-11 RSTP指定端口快速遷移機製
當我方設備與作為上遊設備且與對生成樹協議的實現存在差異的第三方廠商設備互聯時,二者在快速遷移的配合上可能會存在一定的限製。例如:上遊設備指定端口的狀態遷移實現機製與RSTP類似;而下遊設備運行MSTP並且不工作在RSTP模式時,由於下遊設備的根端口接收不到上遊設備的Agreement報文,它不會向上遊設備發Agreement報文,所以上遊設備的指定端口無法實現狀態的快速遷移,隻能在2倍的Forward Delay延時後變成轉發狀態。
通過在我方設備與對生成樹協議的實現存在私有性差異的上遊第三方廠商設備相連的端口上使能No Agreement Check功能,可避免這種情況的出現,使得上遊的第三方廠商設備的指定端口能夠進行狀態的快速遷移。
· 設備與作為上遊設備且支持生成樹協議的第三方廠商設備互連,並且端口之間為點對點鏈路。
· 為我方設備與第三方廠商設備配置相同的域名、域配置修訂級別和VLAN與MSTI的映射關係,以確保它們在同一個域內。
請在設備的根端口上進行如下配置,且本功能隻有在根端口上配置才會生效。
表1-36 配置No Agreement Check功能
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
使能No Agreement Check功能 |
stp no-agreement-check |
必選 缺省情況下,No Agreement Check功能處於關閉狀態 |
(1) 組網需求
· Device A與對生成樹協議的實現存在差異的第三方廠商設備Device B互連並配置在同一域內。
· Device B作為域根,Device A作為下遊設備。
(2) 組網圖
圖1-12 No Agreement Check功能配置組網圖
(3) 配置步驟
# 在Device A的端口GigabitEthernet1/0/1上使能No Agreement Check功能。
<DeviceA> system-view
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] stp no-agreement-check
生成樹保護功能包括以下幾種:
· BPDU保護功能
· 根保護功能
· 環路保護功能
· 防TC-BPDU攻擊保護功能
· BPDU攔截功能
對於接入層設備,接入端口一般直接與用戶終端(如PC)或文件服務器相連,此時接入端口被設置為邊緣端口以實現這些端口的快速遷移;當這些端口接收到BPDU時係統會自動將這些端口設置為非邊緣端口,重新計算生成樹,引起網絡拓撲結構的變化。這些端口正常情況下應該不會收到STP的BPDU。如果有人偽造BPDU惡意攻擊設備,就會引起網絡震蕩。
生成樹協議提供了BPDU保護功能來防止這種攻擊:設備上使能了BPDU保護功能後,如果邊緣端口收到了BPDU,係統就將這些端口關閉,同時通知網管這些端口已被生成樹協議關閉。被關閉的端口在端口狀態檢測定時器超時後將被重新激活,有關端口狀態檢測定時器的詳細介紹,請參見“基礎配置指導”中的“設備管理”。
請在有邊緣端口的設備上進行如下配置。
表1-37 配置BPDU保護功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能BPDU保護功能 |
stp bpdu-protection |
必選 缺省情況下,BPDU保護功能處於關閉狀態 |
BPDU保護功能對使能了環回測試功能的端口無效。有關環回測試功能的相關介紹,請參見“二層技術-以太網交換配置指導”中的“以太網接口”。
生成樹的根橋和備份根橋應該處於同一個域內,特別是對於CIST的根橋和備份根橋,網絡設計時一般會把CIST的根橋和備份根橋放在一個高帶寬的核心域內。但是,由於維護人員的錯誤配置或網絡中的惡意攻擊,網絡中的合法根橋有可能會收到優先級更高的BPDU,這樣當前合法根橋會失去根橋的地位,引起網絡拓撲結構的錯誤變動。這種不合法的變動,會導致原來應該通過高速鏈路的流量被牽引到低速鏈路上,導致網絡擁塞。
為了防止這種情況發生,生成樹協議提供了根保護功能:對於使能了根保護功能的端口,其在所有MSTI上的端口角色隻能為指定端口。一旦該端口收到某MSTI優先級更高的BPDU,立即將該MSTI端口設置為偵聽狀態,不再轉發報文(相當於將此端口相連的鏈路斷開)。當在2倍的Forward Delay時間內沒有收到更優的BPDU時,端口會恢複原來的正常狀態。
請在設備的指定端口上進行如下配置。
表1-38 配置根保護功能
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
使能端口的根保護功能 |
stp root-protection |
必選 缺省情況下,端口上的根保護功能處於關閉狀態 |
在同一個端口上不允許同時配置根保護功能和環路保護功能。
依靠不斷接收上遊設備發送的BPDU,設備可以維持根端口和其它阻塞端口的狀態。但是由於鏈路擁塞或者單向鏈路故障,這些端口會收不到上遊設備的BPDU,此時下遊設備會重新選擇端口角色,收不到BPDU的下遊設備端口會轉變為指定端口,而阻塞端口會遷移到轉發狀態,從而交換網絡中會產生環路。環路保護功能會抑製這種環路的產生。
在使能了環路保護功能的端口上,其所有MSTI的初始狀態均為Discarding狀態:如果該端口收到了BPDU,這些MSTI可以進行正常的狀態遷移;否則,這些MSTI將一直處於Discarding狀態以避免環路的產生。
請在設備的根端口和替換端口上進行如下配置。
表1-39 配置環路保護功能
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入相應視圖 |
進入二層以太網端口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
使能端口的環路保護功能 |
stp loop-protection |
必選 缺省情況下,端口的環路保護功能處於關閉狀態 |
· 請不要在與用戶終端相連的端口上使能環路保護功能,否則該端口會因收不到BPDU而導致其所有MSTI將一直處於Discarding狀態。
· 在同一個端口上不允許同時配置邊緣端口和環路保護功能,或者同時配置根保護功能和環路保護功能。
設備在收到TC-BPDU後,會執行轉發地址表項的刷新操作。在有人偽造TC-BPDU惡意攻擊設備時,設備短時間內會收到很多的TC-BPDU,頻繁的刷新操作給設備帶來很大負擔,給網絡的穩定帶來很大隱患。而通過在設備上使能防TC-BPDU攻擊保護功能,就可以避免頻繁地刷新轉發地址表項。
當使能了防TC-BPDU攻擊保護功能後,如果設備在單位時間(固定為十秒)內收到TC-BPDU的次數大於stp tc-protection threshold命令所指定的最高次數(假設為N次),那麼該設備在這段時間之內將隻進行N次刷新轉發地址表項的操作,而對於超出N次的那些TC-BPDU,設備會在這段時間過後再統一進行一次地址表項刷新的操作,這樣就可以避免頻繁地刷新轉發地址表項。
表1-40 配置防TC-BPDU攻擊保護功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能防TC-BPDU攻擊保護功能 |
stp tc-protection enable |
可選 缺省情況下,防TC-BPDU攻擊保護功能處於使能狀態 |
配置在單位時間(固定為十秒)內,設備收到TC-BPDU後立即刷新轉發地址表項的最高次數 |
stp tc-protection threshold number |
可選 缺省情況下,在單位時間(固定為十秒)內,設備收到TC-BPDU後立即刷新轉發地址表項的最高次數為6 |
建議不要關閉防TC-BPDU攻擊保護功能。
在使能了生成樹協議的網絡中,由於設備收到BPDU後會進行STP計算並向其它設備轉發,因此惡意用戶可借此進行BPDU攻擊:通過不停地發送BPDU,使網絡中的所有設備都不停地進行STP計算,從而導致設備的CPU占用率過高或BPDU的協議狀態錯誤等問題。
為了避免這種情況,用戶可以在端口上配置BPDU攔截功能。使能了該功能的端口將不再接收任何BPDU,從而能夠防止設備遭受BPDU攻擊,保證STP計算的正確性。
表1-41 配置BPDU攔截功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入二層以太網端口視圖 |
interface interface-type interface-number |
- |
使能端口的BPDU攔截功能 |
bpdu-drop any |
必選 缺省情況下,端口的BPDU攔截功能處於關閉狀態 |
開啟BPDU攔截功能的端口,對收到的802.1X報文也會進行丟棄,因此請不要同時開啟端口的BPDU攔截功能和802.1X功能。關於802.1X功能請參見“安全配置指導”中的“802.1X”。
開啟生成樹PVST模式TC告警功能之後,在PVST模式下,當端口檢測或接收到TC報文後,打印日誌信息並發送Trap信息到SNMP模塊。您可以通過配置SNMP中告警信息的發送參數,來決定告警信息輸出的相關屬性。有關告警信息的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”。
表1-42 配置生成樹PVST模式TC告警功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟生成樹PVST模式TC告警功能 |
snmp-agent trap enable stp [ tc ] |
缺省情況下,PVST模式的生成樹的TC告警功能在所有VLAN中處於關閉狀態 |
在完成上述配置後,在任意視圖下執行display命令都可以顯示配置後生成樹的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除生成樹的統計信息。
操作 |
命令 |
顯示被生成樹保護功能阻塞的端口信息 |
display stp abnormal-port [ | { begin | exclude | include } regular-expression ] |
顯示端口上的BPDU統計信息 |
display stp bpdu-statistics [ interface interface-type interface-number [ instance instance-id ] ] [ | { begin | exclude | include } regular-expression ] |
顯示被生成樹保護功能down掉的端口信息 |
display stp down-port [ | { begin | exclude | include } regular-expression ] |
顯示生成樹端口角色計算的曆史信息 |
display stp [ instance instance-id | vlan vlan-id ] history [ slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
顯示生成樹所有端口收發的TC或TCN報文數 |
display stp [ instance instance-id | vlan vlan-id ] tc [ slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
顯示生成樹的狀態和統計信息 |
display stp [ instance instance-id | vlan vlan-id ] [ interface interface-list | slot slot-number ] [ brief ] [ | { begin | exclude | include } regular-expression ] |
顯示當前生效的MST域配置信息 |
display stp region-configuration [ | { begin | exclude | include } regular-expression ] |
顯示所有生成樹的根橋信息 |
display stp root [ | { begin | exclude | include } regular-expression ] |
顯示已使能VLAN Ignore功能的VLAN列表 |
display stp ignored-vlan [ | { begin | exclude | include } regular-expression ] |
清除生成樹的統計信息 |
reset stp [ interface interface-list ] |
· 網絡中所有設備都屬於同一個MST域。Device A和Device B為彙聚層設備,Device C和Device D為接入層設備。
· 通過配置MSTP,使不同VLAN的報文按照不同的MSTI轉發:VLAN 10的報文沿MSTI 1轉發,VLAN 30沿MSTI 3轉發,VLAN 40沿MSTI 4轉發,VLAN 20沿MSTI 0轉發。
· 由於VLAN 10和VLAN 30在彙聚層設備終結、VLAN 40在接入層設備終結,因此配置MSTI 1和MSTI 3的根橋分別為Device A和Device B,MSTI 4的根橋為Device C。
圖1-13 MSTP典型配置組網圖
(1) 配置VLAN和端口
請按照圖1-13在Device A和Device B上分別創建VLAN 10、20和30,在Device C上創建VLAN 10、20和40,在Device D上創建VLAN 20、30和40;將各設備的各端口配置為Trunk端口並允許相應的VLAN通過,具體配置過程略。
(2) 配置Device A
# 配置MST域的域名為example,將VLAN 10、30、40分別映射到MSTI 1、3、4上,並配置MSTP的修訂級別為0。
<DeviceA> system-view
[DeviceA] stp region-configuration
[DeviceA-mst-region] region-name example
[DeviceA-mst-region] instance 1 vlan 10
[DeviceA-mst-region] instance 3 vlan 30
[DeviceA-mst-region] instance 4 vlan 40
[DeviceA-mst-region] revision-level 0
# 激活MST域的配置。
[DeviceA-mst-region] active region-configuration
[DeviceA-mst-region] quit
# 配置本設備為MSTI 1的根橋。
[DeviceA] stp instance 1 root primary
# 全局使能生成樹協議。
[DeviceA] stp enable
(3) 配置Device B
# 配置MST域的域名為example,將VLAN 10、30、40分別映射到MSTI 1、3、4上,並配置MSTP的修訂級別為0。
<DeviceB> system-view
[DeviceB] stp region-configuration
[DeviceB-mst-region] region-name example
[DeviceB-mst-region] instance 1 vlan 10
[DeviceB-mst-region] instance 3 vlan 30
[DeviceB-mst-region] instance 4 vlan 40
[DeviceB-mst-region] revision-level 0
# 激活MST域的配置。
[DeviceB-mst-region] active region-configuration
[DeviceB-mst-region] quit
# 配置本設備為MSTI 3的根橋。
[DeviceB] stp instance 3 root primary
# 全局使能生成樹協議。
[DeviceB] stp enable
(4) 配置Device C
# 配置MST域的域名為example,將VLAN 10、30、40分別映射到MSTI 1、3、4上,並配置MSTP的修訂級別為0。
<DeviceC> system-view
[DeviceC] stp region-configuration
[DeviceC-mst-region] region-name example
[DeviceC-mst-region] instance 1 vlan 10
[DeviceC-mst-region] instance 3 vlan 30
[DeviceC-mst-region] instance 4 vlan 40
[DeviceC-mst-region] revision-level 0
# 激活MST域的配置。
[DeviceC-mst-region] active region-configuration
[DeviceC-mst-region] quit
# 配置本設備為MSTI 4的根橋。
[DeviceC] stp instance 4 root primary
# 全局使能生成樹協議。
[DeviceC] stp enable
(5) 配置Device D
# 配置MST域的域名為example,將VLAN 10、30、40分別映射到MSTI 1、3、4上,並配置MSTP的修訂級別為0。
<DeviceD> system-view
[DeviceD] stp region-configuration
[DeviceD-mst-region] region-name example
[DeviceD-mst-region] instance 1 vlan 10
[DeviceD-mst-region] instance 3 vlan 30
[DeviceD-mst-region] instance 4 vlan 40
[DeviceD-mst-region] revision-level 0
# 激活MST域的配置。
[DeviceD-mst-region] active region-configuration
[DeviceD-mst-region] quit
# 全局使能生成樹協議。
[DeviceD] stp enable
(6) 檢驗配置效果
在本例中,假定Device B的根橋ID最小,因此該設備將在MSTI 0中被選舉為根橋。
當網絡拓撲穩定後,通過使用display stp brief命令可以查看各設備上生成樹的簡要信息。例如:
# 查看Device A上生成樹的簡要信息。
[DeviceA] display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/0/1 ALTE DISCARDING NONE
0 GigabitEthernet1/0/2 DESI FORWARDING NONE
0 GigabitEthernet1/0/3 ROOT FORWARDING NONE
1 GigabitEthernet1/0/1 DESI FORWARDING NONE
1 GigabitEthernet1/0/3 DESI FORWARDING NONE
3 GigabitEthernet1/0/2 DESI FORWARDING NONE
3 GigabitEthernet1/0/3 ROOT FORWARDING NONE
# 查看Device B上生成樹的簡要信息。
[DeviceB] display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/0/1 DESI FORWARDING NONE
0 GigabitEthernet1/0/2 DESI FORWARDING NONE
0 GigabitEthernet1/0/3 DESI FORWARDING NONE
1 GigabitEthernet1/0/2 DESI FORWARDING NONE
1 GigabitEthernet1/0/3 ROOT FORWARDING NONE
3 GigabitEthernet1/0/1 DESI FORWARDING NONE
3 GigabitEthernet1/0/3 DESI FORWARDING NONE
# 查看Device C上生成樹的簡要信息。
[DeviceC] display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/0/1 DESI FORWARDING NONE
0 GigabitEthernet1/0/2 ROOT FORWARDING NONE
0 GigabitEthernet1/0/3 DESI FORWARDING NONE
1 GigabitEthernet1/0/1 ROOT FORWARDING NONE
1 GigabitEthernet1/0/2 ALTE DISCARDING NONE
4 GigabitEthernet1/0/3 DESI FORWARDING NONE
# 查看Device D上生成樹的簡要信息。
[DeviceD] display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/0/1 ROOT FORWARDING NONE
0 GigabitEthernet1/0/2 ALTE DISCARDING NONE
0 GigabitEthernet1/0/3 ALTE DISCARDING NONE
3 GigabitEthernet1/0/1 ROOT FORWARDING NONE
3 GigabitEthernet1/0/2 ALTE DISCARDING NONE
4 GigabitEthernet1/0/3 ROOT FORWARDING NONE
根據上述顯示信息,可以繪出各VLAN所對應MSTI的拓撲,如圖1-14所示。
圖1-14 各VLAN所對應MSTI的拓撲圖
· Device A和Device B為彙聚層設備,Device C和Device D為接入層設備。
· 通過配置PVST,使VLAN 10、20、30和40中的報文分別按照其各自VLAN所對應的生成樹轉發。
· 由於VLAN 10、20和30在彙聚層設備終結、VLAN 40在接入層設備終結,因此配置VLAN 10和20的根橋為Device A,VLAN 30的根橋為Device B,VLAN 40的根橋為Device C。
圖1-15 PVST典型配置組網圖
(1) 配置VLAN和端口
請按照圖1-15在Device A和Device B上分別創建VLAN 10、20和30,在Device C上創建VLAN 10、20和40,在Device D上創建VLAN 20、30和40;將各設備的各端口配置為Trunk端口並允許相應的VLAN通過,具體配置過程略。
(2) 配置Device A
# 配置生成樹的工作模式為PVST模式。
<DeviceA> system-view
[DeviceA] stp mode pvst
# 配置本設備為VLAN 10和VLAN 20的根橋。
[DeviceA] stp vlan 10 20 root primary
# 全局使能生成樹協議,並使能VLAN 10、20和30中的生成樹協議。
[DeviceA] stp enable
[DeviceA] stp vlan 10 20 30 enable
(3) 配置Device B
# 配置生成樹的工作模式為PVST模式。
<DeviceB> system-view
[DeviceB] stp mode pvst
# 配置本設備為VLAN 30的根橋。
[DeviceB] stp vlan 30 root primary
# 全局使能生成樹協議,並使能VLAN 10、20和30中的生成樹協議。
[DeviceB] stp enable
[DeviceB] stp vlan 10 20 30 enable
(4) 配置Device C
# 配置生成樹的工作模式為PVST模式。
<DeviceC> system-view
[DeviceC] stp mode pvst
# 配置本設備為生成樹VLAN 40的根橋。
[DeviceC] stp vlan 40 root primary
# 全局使能生成樹協議,並使能VLAN 10、20和40中的生成樹協議。
[DeviceC] stp enable
[DeviceC] stp vlan 10 20 40 enable
(5) 配置Device D
# 配置生成樹的工作模式為PVST模式。
<DeviceD> system-view
[DeviceD] stp mode pvst
# 全局使能生成樹協議,並使能VLAN 20、30和40中的生成樹協議。
[DeviceD] stp enable
[DeviceD] stp vlan 20 30 40 enable
(6) 檢驗配置效果
當網絡拓撲穩定後,通過使用display stp brief命令可以查看各設備上生成樹的簡要信息。例如:
# 查看Device A上生成樹的簡要信息。
[DeviceA] display stp brief
VLAN Port Role STP State Protection
10 GigabitEthernet1/0/1 DESI DISCARDING NONE
10 GigabitEthernet1/0/3 DESI FORWARDING NONE
20 GigabitEthernet1/0/1 DESI FORWARDING NONE
20 GigabitEthernet1/0/2 DESI FORWARDING NONE
20 GigabitEthernet1/0/3 DESI FORWARDING NONE
30 GigabitEthernet1/0/2 DESI FORWARDING NONE
30 GigabitEthernet1/0/3 ROOT FORWARDING NONE
# 查看Device B上生成樹的簡要信息。
[DeviceB] display stp brief
VLAN Port Role STP State Protection
10 GigabitEthernet1/0/2 DESI FORWARDING NONE
10 GigabitEthernet1/0/3 ROOT FORWARDING NONE
20 GigabitEthernet1/0/1 DESI FORWARDING NONE
20 GigabitEthernet1/0/2 DESI FORWARDING NONE
20 GigabitEthernet1/0/3 ROOT FORWARDING NONE
30 GigabitEthernet1/0/1 DESI FORWARDING NONE
30 GigabitEthernet1/0/3 DESI FORWARDING NONE
# 查看Device C上生成樹的簡要信息。
[DeviceC] display stp brief
VLAN Port Role STP State Protection
10 GigabitEthernet1/0/1 ROOT FORWARDING NONE
10 GigabitEthernet1/0/2 ALTE FORWARDING NONE
20 GigabitEthernet1/0/1 ROOT FORWARDING NONE
20 GigabitEthernet1/0/2 ALTE FORWARDING NONE
20 GigabitEthernet1/0/3 DESI DISCARDING NONE
40 GigabitEthernet1/0/3 DESI FORWARDING NONE
# 查看Device D上生成樹的簡要信息。
[DeviceD] display stp brief
VLAN Port Role STP State Protection
20 GigabitEthernet1/0/1 ALTE FORWARDING NONE
20 GigabitEthernet1/0/2 ROOT DISCARDING NONE
20 GigabitEthernet1/0/3 ALTE DISCARDING NONE
30 GigabitEthernet1/0/1 ROOT FORWARDING NONE
30 GigabitEthernet1/0/2 ALTE DISCARDING NONE
40 GigabitEthernet1/0/3 ROOT FORWARDING NONE
根據上述顯示信息,可以繪出各VLAN所對應生成樹的拓撲,如圖1-16所示。
圖1-16 各VLAN所對應生成樹的拓撲圖
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!