路由交換(三):生成樹技術

生成樹技術

1、生成樹協議簡介

爲了提升網絡可靠性,交換網絡中一般會使用冗餘鏈路來解決單點故障問題,但冗餘鏈路會給交換網絡帶來環路風險,並致使廣播風暴以及MAC地址表不穩定等問題,進而會影響到用戶的通訊質量。生成樹協議STP(Spanning Tree Protocol)能夠在提升可靠性的同時又能避免環路帶來的各類問題。生成樹協議主要做用有:算法

  • 消除環路
    經過阻斷冗餘鏈路來消除網絡中可能存在的環路
  • 鏈路備份
    當活動路徑發生故障時,激活備份鏈路,及時恢復網絡連通性

生成樹協議主要有STP(801.1d)、RSTP(802.1w)和MSTP(802.1s)三種協議。網絡

2、STP

1. STP 基本概念

STP經過運行STA算法在交換網絡中構造一棵樹(無環)來消除交換網絡中的環路。每一個STP網絡中,都存在一個根橋,其餘交換機爲非根橋,根橋位於整個邏輯樹的根部,是STP網絡的邏輯中心,非根橋是根橋的下游設備。當現有根橋發生故障時,非根橋之間會交互BPDU並從新選舉根橋。負載均衡

  • 端口狀態
端口狀態 描述
Disable 不參與STP,不轉發任何數據和BPDU
Blocking 不轉發數據,可接收BPDU,不發送BPDU,不學習MAC地址
Listening 不轉發數據,可接收BPDU,可發送BPDU,不學習MAC地址
Learning 不轉發數據,可接收BPDU,可發送BPDU,學習MAC地址
Forwarding 轉發數據,可接收BPDU,可發送BPDU,學習MAC地址
  • 端口角色
端口角色 描述
根端口RP 可以轉發數據,接收BPDU(存儲最優的BPDU),一般不發BPDU
指定端口DP 可以轉發數據,接收BPDU(發送RP收到的最優BPDU),一般不收BPDU
阻塞端口Block 不能轉發數據,接收BPDU(存儲RP之外的次級BPDU),不發BPDU
Disable 不參與STP,不轉發任何數據和BPDU

說明:ide

  • 只有DP和RP最終進入到Forwarding狀態,參與數據幀的轉發,可是一旦成爲RP/DP並不能直接進入Forwarding,而必須經歷30s的轉發延遲(Listening、Learning),防止網絡中臨時環路的產生。
  • 端口由Block/Disable 變爲RP/DP,在進入Forwarding狀態前延時30s
  • 端口由RP/DP變爲Block,那麼直接進入Blocking狀態
  • 端口由RP變爲DP或DP變爲RP,forwarding狀態不變

2. BPDU

橋協議數據單元BPDU(Bridge Protocol Date Unit)用於在交換機直接交換相關信息完成生成樹的選舉。BPDU報文被封裝在以太網數據幀中,目的MAC是組播MAC:01-80-C2-00-00-00。
BPDU有兩類:配置BPDU和TCN BPDUoop

  • 配置BPDU包含BID、RPC、PID、Timer等信息,在初始化工程中,橋設備主動發送配置BPDU;拓撲穩定後,從橋設備中的指定端口發送配置BPDU。
  • TCN BPDU是指網絡拓撲變化時下游交換機向上遊交換機發送拓撲變化通知。 TCN BPDU報文只有配置 BPDU報文的前三個字段,共4個字節。

說明:學習

  • 配置BPDU中Timer包括Message Age、Max Age、Hello Time、ForwardDelay。
  • 若是配置BPDU是從根橋發出 ,Message Age爲0;配置BPDU每通過一個橋Message Age增長1
  • Max Age表示報文老化時間,默認爲20s
  • Hello Time表示發送2個相鄰的BPDU的時間間隔。默認爲2s
  • Forward Delay表示控制Listening和Learning狀態的持續時間。默認爲15s。

3. STP 選舉過程

  • step 1 :選舉根橋3d

    交換機啓動後就自動開始進行生成樹收斂計算。默認狀況下,全部交換機啓動時都認爲本身是根橋(即RootBID=BID),本身的全部端口都爲指定端口,這樣BPDU報文就能夠經過全部端口轉發。對端交換機收到BPDU報文後,會比較BPDU中的RootBID和本身的BID,若是收到的BPDU報文中的RootBID優先級低,接收交換機會繼續通告本身的配置BPDU報文給鄰居交換機;若是收到的BPDU報文中的RootBID優先級高則交換機會修改本身的BPDU報文的RootBID字段宣告新的根橋,直到網絡中全部交換機對根橋的認識一致。BID由兩部分組成:Priority+MAC。BID比較方法:先比較Priority值大小再比較MAC地址大小。Priority越小越優先,MAC越小越優先。code

  • step 2 :選舉根端口blog

    每一個非根橋都要選舉一個根端口。根端口是一個非根橋交換機距離根橋"最近"的端口。即累計根路徑開銷最小的端口。端口收到BPDU報文後,讀取累計根開銷字段(RPC)加上該端口自己的路徑開銷即爲累計根路徑開銷。根端口選舉依據:根路徑開銷、發送者BID、發送端口PID。接口

  • step 3 :選舉指定端口

    每一個網段選舉出一個指定端口DP。在網段上抑制其餘端口發送BPDU報文的端口。根橋的全部端口都是指定端口。指定端口選舉依據:根路徑開銷、發送者BID、發送端口PID
    說明:
    鏈接終端的接口也會參與STP選舉,最終成爲DP
    每一個網段必須存在一個DP,DP端口對端不是RP就是block端口

  • step 4 :選舉阻塞端口

    其它端口做爲阻塞端口

4. 實驗

實驗拓撲

路由交換(三):生成樹技術

配置步驟

1)配置生成樹協議爲stp

stp mode stp

路由交換(三):生成樹技術

2)配置根橋

stp root primary

或者修改橋ID優先級,默認是32768,如修改橋ID優先級爲4096

stp priority 4096

路由交換(三):生成樹技術
3)配置根端口
查看默認狀況下SW2的g0/0/1和g0/0/2接口STP信息
路由交換(三):生成樹技術

路由交換(三):生成樹技術

路由交換(三):生成樹技術
修改接口COST值,讓g0/0/2爲RP
路由交換(三):生成樹技術

恢復SW2的g0/0/2接口COST,修改SW1的g0/0/2的PORT PRIORITY
路由交換(三):生成樹技術

4 ) 配置指定端口
根橋設備端口爲指定端口DP
路由交換(三):生成樹技術

查看SW2的g0/0/3和SW3的g0/0/2接口
路由交換(三):生成樹技術
路由交換(三):生成樹技術

修改SW3 橋優先級與SW2 橋優先級相同
路由交換(三):生成樹技術

3、RSTP

1. RSTP 基本概念

STP雖然能夠解決環路問題,但網絡收斂時間長,當鏈路發生故障時,須要等待50s後才能對網絡重收斂。(50s=20s+15s*2。即報文老化時間加上2倍轉發延遲)

  • 端口狀態
端口狀態 描述
Discarding 不參與 STP ,不轉發任何數據和 BPDU
Learning 不轉發數據,可接收 BPDU ,可發送BPDU ,學習 MAC地址
Forwarding 轉發數據,可接收 BPDU ,可發送BPDU ,學習 MAC地址
  • 端口角色
端口角色 描述
根端口 RP 可以轉發數據,接收 BPDU (存儲最優的 BPDU)
指定端口 DP 可以轉發數據,接收 BPDU (發送RP 收到的最優 BPDU )
替代端口 AP RP 備份,當RP 發生故障時, AP 成爲新的RP 並進入 Forwarding狀態。學習到其餘網橋發送的配置 BPDU 報文而阻塞的端口
備份端口 BP DP 備份,提供另外一條從本設備到達根橋的路徑。學習到本身發送的配置 BPDU 報文而阻塞的端口
  • 邊緣端口

    配置邊緣端口的端口在 UP 的時候,能夠直接將端口的狀態轉變爲 forwarding 狀態, 不須要經歷轉發延時就能夠爲鏈接到邊緣端口的設備轉發流量。
    邊緣端口轉變爲 forwarding 狀態不算拓撲變化,能夠避免 MAC 表刷新。

2. P/A 機制

路由交換(三):生成樹技術

如上圖所示,根橋 S1 和 S2 之間新添加了一條鏈路。當前狀態下,S2 的p2 是 Alternate端口,p3 是指定端口且處於 Forwarding 狀態,p4 是邊緣端口。新鏈路鏈接成功後,P/A 機制協商過程以下:
(1) p0 和 p1 兩個端口立刻都先成爲指定端口,發送 RST BPDU
(2) S2 的 p1 口收到更優的 RST BPDU,立刻意識到本身將成爲根端口,而不是指定端口,中止發送 RST BPDU;S1 的 p0 進入 Discarding 狀態,因而發送的 RST BPDU 中把 proposal 置 1。
(3) S2 收到根橋發送來的攜帶 proposal 置位 的 RST BPDU,開始將本身的全部端口進入 sync 變量置位。p2 已經阻塞,狀態不變;p4 是邊緣端口,不參與運算;因此只須要阻塞非邊緣指定端口 p3。
(4) p二、 p三、 p4 都進入 Discarding 狀態以後,各端口的 synced 變量置位,根端口 p1 的 synced 也置位,因而 S1 unblock P1 端口,並向 S1 返回 Agreement 位置位的迴應 RST BPDU。該 RST BPDU 攜帶和剛纔根橋發過來的 BPDU 同樣的信息,除了 Agreement 位置位以外(Proposal 位清零)。當 S1 判斷出這是對剛剛發出的 Proposal 的迴應,因而端口 p0 立刻進入 Forwarding 狀態。

3. 保護功能

  • BPDU保護

    啓動了BPDU保護功能後,若是邊緣端口收到BPDU報文,邊緣端口將被error-down,防止BPDU報文***

  • 根保護

    若網絡中存在更高優先級的BPDU 報文引發網絡拓撲變化。啓用根保護功能的指定端口,端口角色只能保持爲指定端口。一旦啓用根保護功能的指定端口收到優先級更高的BPDU時,端口狀態將進入Discarding狀態,再也不轉發報文。在通過一段時間(一般爲兩倍的Forward Delay),若是端口一直沒有再收到優先級較高的BPDU,端口會自動恢復到正常的Forwarding狀態。

  • 環路保護

    當因爲鏈路擁塞或者單向鏈路故障致使這些端口收不到來自上游交換設備的RST BPDU時,此時交換設備會從新選擇根端口。原先的根端口會轉變爲指定端口,而原先的阻塞端口會遷移到轉發狀態,從而形成交換網絡中可能產生環路。
    在啓動了環路保護功能後,若是根端口或Alternate端口長時間收不到來自上游設備的BPDU報文時,則向網管發出通知信息(此時根端口會進入Discarding狀態,角色切換爲指定端口),而Alternate端口則會一直保持在阻塞狀態(角色也會切換爲指定端口),不轉發報文,從而不會在網絡中造成環路。直到鏈路再也不擁塞或單向鏈路故障恢復,端口從新收到BPDU報文進行協商,並恢復到鏈路擁塞或者單向鏈路故障前的角色和狀態。

  • 防TC-BPDU***

    啓用防TC-BPDU報文***功能後,在單位時間內,交換設備處理TC BPDU報文的次數可配置。若是在單位時間內,交換設備在收到TC BPDU報文數量大於配置的閾值,那麼設備只會處理閾值指定的次數。對於其餘超出閾值的TC BPDU報文,定時器到期後設備只對其統一處理一次。

4. 實驗

實驗拓撲

路由交換(三):生成樹技術

配置步驟

1)配置生成樹協議爲rstp

stp mode  rstp

2)配置BPDU保護
配置邊緣端口

interface GigabitEthernet0/0/24
 stp edged-port enable

全局啓用BPDU保護功能
stp bpdu-protection

3)配置根保護
在根橋的指定端口配置

interface GigabitEthernet0/0/1
 stp root-protection
interface GigabitEthernet0/0/2
 stp root-protection
interface GigabitEthernet0/0/3
 stp root-protection

路由交換(三):生成樹技術

4)配置環路保護
在根端口和Alternate端口配置環路保護

interface GigabitEthernet0/0/1
 stp loop-protection

5)配置防TC-BPDU***
全局配置防TC-BPDU***

stp tc-protection

3、MSTP

1. MSTP簡介

在RSTP和STP生成樹中全部的VLAN共享一棵生成樹,沒法在VLAN間實現數據流量的負載均衡,鏈路被阻塞後將不承載任何流量,還有可能形成部分VLAN的報文沒法轉發。
MSTP兼容STP和RSTP,既能夠快速收斂,又提供了數據轉發的多個冗餘路徑,在數據轉發過程當中實現VLAN數據的負載均衡。
MSTP把一個交換網絡劃分紅多個域,每一個域內造成多棵生成樹,生成樹之間彼此獨立。每棵生成樹叫作一個多生成樹實例MSTI(Multiple Spanning Tree Instance),每一個域叫作一個MST域(MST Region:Multiple Spanning Tree Region)。

  • MST 域

    MST域由交換網絡中的多臺交換設備以及互聯網段所構成。同一MST域內設備具備相同的域名、VLAN映射表和修訂級別

  • VLAN映射表

    VLAN映射表是MST域的屬性,它描述了VLAN和MSTI之間的映射關係

  • CST

    公共生成樹CST(Common Spanning Tree)是鏈接交換網絡內全部MST域的一棵生成樹

  • IST

    內部生成樹IST(Internal Spanning Tree)是各MST域內的一棵生成樹。IST是一個特殊的MSTI,MSTI的ID爲0,一般稱爲MSTI0。IST是CIST在MST域中的一個片斷。

  • CIST

    公共和內部生成樹CIST(Common and Internal Spanning Tree)是經過STP或RSTP協議計算生成的,鏈接一個交換網絡內全部交換設備的單生成樹。

  • 端口角色

    MSTP 中端口角色在RSPT基礎上新增Master端口和域邊緣端口
    1)Master端口是MST域和總根相連的全部路徑中最短路徑上的端口,它是交換設備上鍊接MST域到總根的端口。Master端口是域中的報文去往總根的必經之路。Master端口是特殊域邊緣端口,Master端口在CIST上的角色是Root Port,在其它各實例上的角色都是Master端口。
    2)域邊緣端口是指位於MST域的邊緣並鏈接其它MST域或SST的端口

  • 端口狀態

    MSTP 中端口角色同RSTP 中端口角色

2. MSTP快速收斂機制

MSTP支持普通方式和加強方式兩種P/A機制

  • 普通方式
    普通方式與RSTP 中P/A機制相同
  • 加強方式
    路由交換(三):生成樹技術

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

3. 實驗

實驗拓撲

實驗步驟

1)建立VLAN

vlan batch 10 20 30 40 50 60 70 80 90 100

2)配置生成樹協議

stp mode mstp

3)配置MST域

stp region-configuration
 region-name HW
 revision-level 1
 instance 1 vlan 10 30 50 70 90
 instance 2 vlan 20 40 60 80 100
 active region-configuration

4)配置根橋
SW1是實例1的根橋,實例2的備份根橋

stp instance 1 root primary
 stp instance 2 root secondary

SW2是實例2的根橋,實例1的備份根橋

stp instance 1 root secondary
 stp instance 2 root primary

5)查看
路由交換(三):生成樹技術

注:參考華爲產品手冊

相關文章
相關標籤/搜索