網工在路上--一文弄懂MSTP協議

對於STP生成樹協議,瞭解的人比較多。經過STP協議,解決了二層網絡內的環路問題,在消除環路和鏈路備份之間達成了平衡。但在現網中,一個二層網路內每每不止一個vlan,而是多個vlan的集合,STP/RSTP只能處理單個vlan的問題,而對於多個vlan的狀況一籌莫展。所以,MSTP的出現相當重要。
本文經過查詢華爲Hex文檔,結合自身理解,造成比較清晰而重要的MSTP的文檔,多是全網最詳細的MSTP文檔。網絡

1 定義

MSTP(multiple spanning tree protocol)是多生成樹協議,經過生成多個生成樹,來解決以太網的環路問題。負載均衡

2 目的

  • 在一個局域網內生成多個STP樹,解決多個vlan的廣播風暴,並實現冗餘備份。
  • 多棵STP樹在vlan間實現負載均衡,不一樣vlan的流量按照不一樣的路徑轉發。解決stp/rstp某一vlan的鏈路被阻塞後全部vlan均被阻塞的問題。
    網工在路上--一文弄懂MSTP協議
    在此圖中,若是在全網內應用stp/rstp,則按協議要求,獲得一棵用虛線表示的生成樹,其中,S6爲根橋,S2和S5之間、S1和S4之間的鏈路被阻塞。若是該網中只有一種vlan或者vlan的容許經過的鏈路同樣,則stp/rstp已經知足現網要求。可是因爲s1和s2之間,s3和s6之間只容許vlan3經過,s4與s5之間只容許vlan2經過,因此hostB和hostA之間沒法通訊。
    所以須要MSTP協議的引入來解決這種問題。

    3 原理

    MSTP把一個交換網絡劃分紅多個域,每一個域造成多棵生成樹,生成樹之間彼此獨立,每顆生成樹叫作一個多生成樹實例MSTI(multiple spanning tree instance),每一個域叫作一個MST域(multiple spanning tree region)。每一個MSTI能夠看做是多個vlan的集合,即vlan根據須要捆綁在若干MSTI上(通常而言,這種須要指的是相同的拓撲結構),vlan和MSTI是多對一的關係,這樣能夠節省通訊開銷和資源佔用率。
    網工在路上--一文弄懂MSTP協議
    在引入MSTP後,MSTP經過設置vlan映射表,把vlan和msti聯繫起來,根據現網須要,該網絡中,每一個vlan對應了一個msti。能夠認爲,每一個msti之間容許獨立的stp協議。
    通過計算,最終生成了兩棵樹:ide

  • MSTI1 以 S4爲根交換設備,轉發VLAN 2 的報文
  • MSTI2 以S6 爲根交換設備,轉發VLAN 3 的報文
    以往咱們認爲,一個交換網絡中只會存在一個根橋,可是在引入MSTP後,交換網絡中能夠存在多個根橋,根橋數量與MSTI的數量一致。

4 基本概念

4.1 網絡層次

一個MSTP網絡中包含多個MST域,每一個MST域中包含多個MSTI,一個MSTI中包含多個運行STP/RSTP/MSTP的交換設備spa

網工在路上--一文弄懂MSTP協議

4.2 MST域

MST域由交換網絡中的多臺交換設備以及他們之間的網段所組成。同一MST域的設備具備如下特色:blog

  • 都啓用了MSTP
  • 具備相同的域名 (region name)
  • 相同的vlan-MSTI映射關係 (instance xx vlan xx)
  • 相同的MSTP修訂級別配置(region level)

MST域之間在物理上直接或者間接相連。ip

4.3 VLAN映射表

描述了vlan和MSTI的映射關係,vlan和MSTI是多對一的關係。資源

4.4 CST

公共生成樹,鏈接交換網絡內全部MST域的一棵生成樹。若是把MST域看做是一個節點或橋,那麼CST就是這些節點經過STP/RSTP計算生成的一棵生成樹。文檔

4.5 CIST&IST

  • CIST是公共和內部生成樹,經過STP/RSTP生成,將交換網內全部交換設備看做是沒有vlan區分的設備,由它們生成一棵單生成樹。
  • IST是內部生成樹,是MST域內的一棵生成樹,IST是一個特殊的MSTI,MSTI的ID爲0,一般稱爲MSTI0。能夠把IST理解成CIST在MST域內的一個子集。

    4.6 SST

    單生成樹,運行STP/RSTP的交換設備只能屬於一個生成樹。或者MST域中只有一個交換設備,這個交換設備構成單生成樹。域名

    4.7 總根&域根

  • 總根是CIST的根橋。
  • 域根分爲IST域根和MSTI域根。
  • IST域根是在MST域中IST生成樹中距離總根最近的交換設備。
  • MSTI域根是每一個多生成樹實例的樹根。一個MSTI域內能夠有多個生成樹實例,也即有多個MSTI域根。

    4.8 主橋

    IST Master,域內距離總根最近的交換設備。it

    5 端口角色

    相比於RSTP,MSTP在根端口,指定端口,alternate端口,backup端口和邊緣端口的基礎上,新增master端口和域邊緣端口。即共有7種端口類型。

    5.1 master端口

    是MST域和總根相連的全部路徑種最短路徑上的端口,是交換設備上鍊接MST域到總根的端口。Master端口是域中的報文去往總根的必經之路。master端口是特殊的域邊緣端口,他在CIST上的角色是root port ,在其餘各實例上的角色都是master端口。

網工在路上--一文弄懂MSTP協議

5.2 域邊緣端口

位於MST域的邊緣並鏈接其餘MST域或SST的端口。

6 MSTP報文格式

網工在路上--一文弄懂MSTP協議

相比於RST BPDU報文,MSTP的BPDU報文前36字節是相同的。從第37字節開始是其專有字段。
目前MST BPDU存在兩種格式。分別是:

  • dot1s
  • legacy
    須要人工識別,手動配置,配錯成環。
    華爲新增:auto
    實現自動識別,自動適配。初始支持dot1s。

    7 MSTP拓撲計算

    MSTP將二層網絡分爲多個MST域,域間計算生產CST,域內分爲多個生成樹實例,每一個實例分別計算獨立的STP生成樹。
    實例0被稱爲IST,其餘的多生成樹實例爲MSTI。

    7.1 優先級向量

  • MSTI的優先級向量{域根ID,內部路徑開銷,指定交換設備ID,指定端口ID,接收端口ID}
  • CIST的優先級向量{根交換設備ID,外部路徑開銷,域根ID,內部路徑開銷,指定交換設備ID,指定端口ID,接收端口ID}
    從左至右依次遞減。
向量名稱 說明
根交換設備ID CIST的根交換設備ID,等於priority(16bit)+MAC(48bit),其中priority爲MSTI0的優先級
外部路徑開銷(ERPC) 從CIST的域根到達總根的路徑開銷。MST域內全部交換設備上保存的外部路徑開銷相同。若CIST根交換設備在域中,則域內全部交換設備上保存的外部路徑開銷爲0。
域根ID 域根ID用於選擇MSTI中的域根。域根ID = Priority(16bits) + MAC(48bits)。其中Priority爲MSTI0的優先級。
內部路徑開銷(IRPC) 本橋到達域根的路徑開銷。域邊緣端口保存的內部路徑開銷大於非域邊緣端口保存的內部路徑開銷。
指定交換設備ID CIST或MSTI實例的指定交換設備是本橋通往域根的最鄰近的上游橋。若是本橋就是總根或域根,則指定交換設備爲本身。
指定端口ID 指定交換設備上同本設備上根端口相連的端口。Port ID = Priority(4位) + 端口號(12位)。端口優先級必須是16的整數倍。
接收端口ID 接收到BPDU報文的端口。Port ID = Priority(4位) + 端口號(12位)。端口優先級必須是16的整數倍。

7.2 比較原則

同一貫量比較,值最小的向量具備最高優先級。

  • 1 比較根交換設備ID。

  • 2 若是根交換設備ID相同,再比較外部路徑開銷。

  • 3 若是外部路徑開銷相同,再比較域根ID。

  • 4 若是域根ID仍然相同,再比較內部路徑開銷。

  • 5 若是內部路徑仍然相同,再比較指定交換設備ID。

  • 6 若是指定交換設備ID仍然相同,再比較指定端口ID。

  • 7 若是指定端口ID還相同,再比較接收端口ID。

若是端口接收到的BPDU內包含的配置消息優於端口上保存的配置消息,則端口上原來保存的配置消息被新收到的配置消息替代。端口同時更新交換設備保存的全局配置消息。反之,新收到的BPDU被丟棄。

7.3 CIST的計算

通過比較配置消息後,在整個網絡中選擇一個優先級最高的交換設備做爲CIST的樹根。在每一個MST域內MSTP經過計算生成IST;同時MSTP將每一個MST域做爲單臺交換設備對待,經過計算在MST域間生成CST。CST和IST構成了整個交換設備網絡的CIST。

7.4 MSTI的計算

在MST域內,MSTP根據VLAN和生成樹實例的映射關係,針對不一樣的VLAN生成不一樣的生成樹實例。每棵生成樹獨立進行計算,計算過程與STP計算生成樹的過程相似

MSTI的特色:

  • 每一個MSTI獨立計算本身的生成樹,互不干擾。

  • 每一個MSTI的生成樹計算方法與STP基本相同。

  • 每一個MSTI的生成樹能夠有不一樣的根,不一樣的拓撲。

  • 每一個MSTI在本身的生成樹內發送BPDU。

  • 每一個MSTI的拓撲經過命令配置決定。

  • 每一個端口在不一樣MSTI上的生成樹參數能夠不一樣。

  • 每一個端口在不一樣MSTI上的角色、狀態能夠不一樣。

在運行MSTP協議的網絡中,一個VLAN報文將沿着以下路徑進行轉發:

  • 在MST域內,沿着其對應的MSTI轉發。
  • 在MST域間,沿着CST轉發。

8 MSTP快速收斂機制(P/A機制)

8.1 普通方式

網工在路上--一文弄懂MSTP協議

-1 p0和p1兩個端口立刻都先成爲指定端口,發送RST BPDU。
-2 S2的p1口收到更優的RST BPDU,立刻意識到本身將成爲根端口,而不是指定端口,中止發送RST BPDU。

  • 3 S1的p0進入Discarding狀態,因而發送的RST BPDU中把proposal和Agreement置1。
  • 4 S2收到根橋發送來的攜帶proposal的RST BPDU,開始將本身的全部端口進入sync變量置位。
  • 5 p2已經阻塞,狀態不變;p4是邊緣端口,不參與運算;因此只須要阻塞非邊緣指定端口p3。
  • 6 各端口的synced變量置位後,p二、p3進入Discarding狀態,p1進入Forwarding狀態並向S1返回Agreement位置位的迴應RST BPDU。
  • 7 當S1判斷出這是對剛剛發出的Proposal的迴應,因而端口p0立刻進入Forwarding狀態。
    下游設備繼續執行P/A協商過程。

8.2 加強方式

網工在路上--一文弄懂MSTP協議

  • 1 協商開始時,每一臺設備都認爲本身是根橋,根橋上的端口是指定端口,端口狀態爲Discarding,端口的synced變量置位,觸發Proposal和Agreement同時置位。上游設備發送Proposal報文,請求進行快速遷移。下游設備接收到後,把與上游設備相連的端口設置爲根端口,並阻塞全部非邊緣端口。

  • 2 上游設備繼續發送Agreement報文。下游設備接收到後,根端口轉爲Forwarding狀態。

  • 3 下游設備迴應Agreement報文。上游設備接收到後,把與下游設備相連的端口設置爲指定端口,指定端口進入Forwarding狀態。

缺省狀況下,華爲數據通訊設備使用加強的快速遷移機制。

相關文章
相關標籤/搜索