感興趣的同學可以到本頁最後直接下載下傳附件word原版.~~~~高清大圖~~~呵呵.
MSTP中端口的角色:
在 MSTP的計算過程中,端口的角色有指定端口、根端口、Master端口、Alternate端口、Backup端口等。
■RP,根端口是負責向樹根方向轉發資料的端口;
■DP,指定端口是負責向下遊網段或交換機轉發資料的端口;
■Master端口位于整個域到總根的最短路徑上,它是連接配接域到總根的端口; (實際上,我自己的了解應該說是整個域的域内IST的根橋到總根橋最小cost耗費的路徑接口).
■Alternate端口不僅僅是 Master端口的備份端口,也是域内根端口的備份端口。如果 Master端口被阻塞後,Alternate端口将成為新的 Master端口;
當同一台交換機的兩個端口互相連接配接時就存在一個環路,此時交換機會将其中一個端口阻塞,Backup端口是被阻塞的那個端口。
Instance 0 對于MSTP的意義:
MSTP的執行個體0具有特殊的作用,稱為CIST(Common Internal Spanning Tree),即公共與内部生成樹,其他的執行個體稱為MSTI(Multiple Spanning Tree Instance),即多生成樹執行個體。CIST由通過STP/RSTP計算得到的單生成樹和MSTP計算得到的域組成,是為了保證在所有橋接的區域網路是簡單的和全連接配接的。CST(Common Spanning Tree)是STP/RSTP也是MSTP計算出的用于連接配接MST域的單生成樹。IST(Internal Spanning Tree)是在一個給定的MST域内由CIST提供的連通性。如圖 1 MSTP基本概念示意圖所示,如果把每個MST域看作是一個“交換機”,CST就是這些“交換機”通過STP/RSTP或者MSTP協定計算生成的一棵生成樹。IST是CIST在MST域内的片段,是一個特殊的多生成樹執行個體。
總根和域根
與STP和RSTP相比,MSTP中引入了總根和域根的概念。總根是一個全局概念,對于所有互連的運作STP/RSTP/MSTP的交換機隻能有一個總根,也即是CIST的根;而域根是一個局部概念,是相對于某個域的某個執行個體而言的。
CIST生成樹的計算
網絡中的裝置發送接受BPDU封包,在經過比較配置消息後,在整個網絡中選擇一個優先級最高的交換機作為CIST的樹根。在每個MST域内MSTP通過計算生成IST;同時MSTP将每個MST域作為單台交換機對待,通過計算在MST域間生成CST。如前所述,CST和IST構成了整個交換機網絡的CIST。
1, 實驗拓撲圖:
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_1386946935qLCr.png"></a>
2, 實驗原理和步驟:
在拓撲圖中,有三個區域,分别是區域A,B,C,每個區域有兩個Instance, 0和1,0是除1以外所有的的VLAN映射.
第一部分,會說明三個域内的選舉,然後再說域間的選舉.
在區域内選舉根橋,DP, RP等的時候遵循下列原則:
1, 首先進行比較每個交換機的橋ID, 橋ID= priority+裝置的MAC位址. 首先比較priority,交換機的預設優先級為32768, 越小越優先,如果橋ID不進行設定,那麼就比較交換機的MAC位址,越小越優先. 最後優先級最小或者是優先級一樣MAC位址最小的選舉為根橋.
2, 第二是比較鍊路的cost,
3, 比較sender ID. sender ID=priority(預設32768)+ 裝置的MAC位址.
哪個小,那麼剩下的那個sender的非Root port的端口會被block掉.
4, 如果sender ID也一樣,(這種情況隻會發生在兩台交換機中間用兩根鍊路進行組環連接配接),那麼每個交換機的端口還有端口優先級. 同樣,越小越優先。
對于上面的選舉原則,下面會用Region A和Region B來進行解釋:
Region A Internal election:
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_1386946946cPVP.png"></a>
上面是區域A的情況,對于Instance 1來說,在區域A裡面, 設計原則是:Switch-1是根橋,switch-3的port 0/0/22被block掉。
就這個需求,需要在交換機switch-1上面,配置下面的參數:
spanning-tree mst configuration
region-name A
revision-level 1
instance 1 vlan 200-300
exit
spanning-tree mst instance 0 priority 4096
spanning-tree mst instance 1 priority 4096
spanning-tree enable
在交換機switch-1上面,Instance1的優先級修改為4096,而其他兩個交換機的橋優先級是預設的32768沒有進行修改,是以,switch-1選舉為Region A的根橋.
從下面交換機2和3上面show的結果可以看到,switch-1是根橋:
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_1386946953ywrm.png"></a>
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_1386946954losP.png"></a>
截圖中高亮部分是switch-1的系統mac位址:0001.7a58.f2d0.
根橋選舉好以後,接下來比較的是鍊路cost。
Switch-2到switch-1(根橋)的cost是20000(1000M鍊路),而switch-3到switch-1的cost一樣,也是1000M鍊路,cost為2W.
接下來是比較發送者sender ID.
Switch-2對于instance 1來說,sender ID=20480:0001.7a58.ebe8(我在交換機2上面設定好了Instance1的priority=20480,而switch-3的sender ID=32768:0001.7a58.be0c,這裡直接比較prority,switch-2優于switch-3. 是以最後switch-2的port 0/0/21為指定端口,狀态為FWD,swtich-3的port 0/0/20為Alternate port, 會被block掉,隻接收BPDU封包,不負責轉發資料流量。當端口收到BPDU攜帶TCP(topology change)字段的時候再進行打開端口.
最後對于Instance 1來說,形成的樹如下:
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_1386946958P1Tb.png"></a>
Region B Internal election:
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_1386946967cK9a.png"></a>
對于region B來說,希望能達到下面的設計初衷:
Switch-5為Instance 1的根橋,對于switch-4來說,port 0/2為alternate port,被block掉。
對于實作來說,隻需要在switch-5上面将instance1的優先級從預設的32768降低即可:
Switch-5的部配置設定置:
region-name B
revision-level 2
spanning-tree mst instance 1 priority 8192
這裡可以看到,在switch-5上面有意把instance 1的橋優先級降低為8192.
而switch-4的預設優先級32768沒有進行修改。
是以swtich-5是根橋。
而swtich-5的兩個端口port 0/0/24和port 0/0/25為指定端口DP,對于switch-4來說,到達根橋switch-5的cost一樣的,而sender ID也一樣,因為是同一台交換機的MAC位址。
最後比較的就是端口ID,在圖中已經标示出來,swtich-4的port 0/1端口ID是128.02,而port 0/2的端口ID是128.03,這個是系統自動預設配置設定的,也可以進行手動修改。
最後128.02小于128.03,是以swtich-4的port 0/2最後被block掉。
最終形成了下面的樹:
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_1386946974kYXA.png"></a>
最後看輸出結果:
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_1386946982gEY0.png"></a>
而Region C和Region B是一樣的。這裡就不贅述了。
我們先不看CIST域間破環的原理,光看IST内部的情況如下:(三個region已經都在内部進行了端口的block動作了.)
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_1386946992FzvN.png"></a>
CIST選舉的原則:
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_1386947005ey2N.png"></a>
現在,将Region A/B/C分别看成一個交換機.
實際上就是三台交換機組成了一個簡單的環網了。
每個region為一個機關.
這裡又會涉及到一個新術語叫Master 端口,前面已經提過:
那麼,到底是怎麼選舉出來的呢?
這裡要回歸到我們并沒有配置的instance 0。
Instance 0就是CIST選舉的根本。
在Region A裡面,實際上我是有意将switch-1的instance 0的優先級也降成最低了的:
Switch-1:
這樣配置以後,swtich-1不僅僅是Region A裡面的内部根橋,而且還是CIST的總根橋(并沒有說總根橋和IST内部根橋一定要在同一個交換機上面,這裡我是為了圖友善).
對于region B和region C來說,switch-4的port 0/5和switch-6的port0/5都是寫商城100M的鍊路,cost=2W. 是以,這兩個端口,一定都是Master 端口的角色,因為這兩個端口到根橋的耗費是一樣的。
注意:CIST選舉的時候,一定是隻算域間隔cost,而不會計算域内的cost.這一點一定要注意.
下面來看哪個端口會被block掉。
對于Region B來說,switch-5是根橋,switch-5到總根橋的耗費是:
200000+200000+20000=42W.
而對于region C來說,switch-6是根橋,switch-6到總根橋的耗費是:20W+2W=22W.
是以Region C這台交換機的NDP端口(非Master端口為port 0/0/22.最後的角色是DP(FWD).
是以region B的switch-5的port 0/0/26為Alternate port(DIS).
下面是顯示的結果:
Switch-7-3900
#show spanning-tree mst
MST Mode MSTP
MST Instance 00 vlans mapped: 1-199,301-4094
Bridge address 0001.7a58.bdf8 priority 32768
Region root address 0001.7a4f.4a07 priority 32768
root: 32789, rpc: 200000, epc: 200000, hop: 19
Operational hello time 2, forward time 15, max age 20
Configured hello time 2, forward time 15, max age 20, max hops 20, hold count 6
Flap guard : admin false, max count 5, detect period 10s, recovery period 30s
Port Role Sts Cost Prio.Nbr Type
-------------------- ----- ---- --------- --------- --------------------------
port 0/0/20 Root FWD 200000 128.021 P2P
port 0/0/21 Alte DIS 200000 128.022 P2P
port 0/0/22 Desg FWD 20000 128.023 P2P
MST Instance 01 vlans mapped: 200-300
Bridge ID address 0001.7a58.bdf8 priority 32769/32768
Designated root address 0001.7a4f.4a07 priority 12289
root: 32789, rpc: 200000, hop: 19
Switch-6-3400
Bridge address 0001.7a4f.4a07 priority 32768
root: 32774, rpc: 0, epc: 200000, hop: 20
Configured hello time 2, forward time 15, max age 20, max hops: 20
port 0/0 Desg FWD 200000 128.01 P2P
port 0/1 Desg FWD 200000 128.02 P2P
port 0/5 Root FWD 200000 128.06 P2P
Bridge ID address 0001.7a4f.4a07 priority 12289/12288
root: 0, rpc: 0, hop: 20
port 0/5 Mast FWD 200000 128.06 P2P
swtich-5-4100
Bridge address 0022.1512.070c priority 32768
Region root address 0001.7a58.0037 priority 32768
root: 32793, rpc: 200000, epc: 200000, hop: 19
port 0/0/24 Root FWD 200000 128.25 P2P
port 0/0/25 Alte DIS 200000 128.26 P2P
port 0/0/26 Alte DIS 20000 128.27 P2P
Bridge ID address 0022.1512.070c priority 8193/8192
Designated root address 0022.1512.070c priority 8193
port 0/0/24 Desg FWD 200000 128.25 P2P
port 0/0/25 Desg FWD 200000 128.26 P2P
port 0/0/26 Alte DIS 20000 128.27 P2P
Switch-4-3400
Bridge address 0001.7a58.0037 priority 32768
port 0/2 Desg FWD 200000 128.03 P2P
Bridge ID address 0001.7a58.0037 priority 32769/32768
root: 32770, rpc: 200000, hop: 19
port 0/1 Root FWD 200000 128.02 P2P
port 0/2 Alte DIS 200000 128.03 P2P
最後形成了下面的CIST樹:
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_138694701747S6.png"></a>
下面再來做一個簡單的實驗,現在假設客戶的需求是,CIST block的端口是Region C的switch-6的port0/5.
對于這個需求,實際上,最簡單的做法就是把Region C裡面的switch-6 port 0/5接口下面把cost修改為一個無窮大的耗費…這樣最終一定是這個接口給discarding掉。
下面,我在regionC的switch-6 port0/5下面進行下面的配置:(cost值是在端口的入方向生效)
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_1386947029uLoP.png"></a>
在Region C的switch-6 port 0/5的配置如下:
port 0/5
port-type nni
port mode trunk
port trunk allowed vlan all
port trunk pvid vlan 1
spanning-tree mst instance 0 cost 150000000
這樣一來,Region C一共有兩條鍊路通往總根switch-1,一條是直連的switch-6 port 0/5上聯,另外一條鍊路是switch-7 port 0/0/22連接配接Region B的鍊路。
但是switch-6的port 0/5上聯cost無窮大,是以該鍊路是最次鍊路,所有其他鍊路到總跟的和都不會有該鍊路的cost大,是以switch-6的port 0/5理應被block掉,角色為alternate port. 狀态是DIsccarding的。
在說Region C的switch-7, port 0/0/22那條鍊路是到總跟最短的鍊路,是以該接口的角色應該是Master 口 for instance 1, 對于Region B來說,switch-4 port 0/5到總跟switch-1的鍊路耗費22W,而交換機 switch-5 port0/0/26到總根swtich-1的耗費為2W+20W+1.5Y~~~~
最終switch-5的port 0/0/25實際角色應該是NDP. 但是狀态依然是FWD的狀态.
對于Instance 0-來說,所有的選舉和IST内部選舉一樣,是以角色的指令不會攜帶Master這樣的角色. .
好了,下面來看看結果是否和下圖一緻:
<a href="http://361531.blog.51cto.com/attachment/201312/13/351531_1386947043PFfS.png"></a>
Swtich-2-3900
Bridge address 0001.7a58.ebe8 priority 32768
Region root address 0001.7a58.f2d0 priority 4096
root: 32789, rpc: 20000, epc: 0, hop: 19
port 0/0/20 Root FWD 20000 128.021 P2P
port 0/0/21 Alte DIS 20000 128.022 P2P
port 0/0/22 Desg FWD 200000 128.023 P2P
Bridge ID address 0001.7a58.ebe8 priority 20481/20480
Designated root address 0001.7a58.f2d0 priority 4097
root: 32789, rpc: 20000, hop: 19
port 0/0/21 Desg FWD 20000 128.022 P2P
port 0/0/22 Desg FWD 200000 128.023 P2P
Switch-3-3900
Bridge address 0001.7a58.be0c priority 32768
root: 32790, rpc: 20000, epc: 0, hop: 19
port 0/0/20 Desg FWD 20000 128.021 P2P
port 0/0/21 Root FWD 20000 128.022 P2P
Bridge ID address 0001.7a58.be0c priority 32769/32768
root: 32790, rpc: 20000, hop: 19
port 0/0/20 Alte DIS 20000 128.021 P2P
#show spanning-tree mst
port 0/5 Root FWD 200000 128.06 P2P
Swtich-5-4100
port 0/0/26 Desg FWD 20000 128.27 P2P
port 0/0/26 Desg FWD 20000 128.27 P2P
Region root address 0001.7a58.bdf8 priority 32768
root: 32791, rpc: 0, epc: 220000, hop: 20
port 0/0/20 Desg FWD 200000 128.021 P2P
port 0/0/21 Desg FWD 200000 128.022 P2P
port 0/0/22 Root FWD 20000 128.023 P2P
port 0/0/22 Mast FWD 20000 128.023 P2P
重頭戲來了,Region C的switch-6:
root: 32769, rpc: 200000, epc: 220000, hop: 19
port 0/0 Root FWD 200000 128.01 P2P
port 0/1 Alte DIS 200000 128.02 P2P
port 0/5 Alte DIS 150000000 128.06 P2P
port 0/5 Alte DIS 200000 128.06 P2P
<a href="http://down.51cto.com/data/2363865" target="_blank">附件:http://down.51cto.com/data/2363865</a>
本文轉自 hny2000 51CTO部落格,原文連結:http://blog.51cto.com/361531/1340467