STP-生成樹協議

STP

1.協議簡述

STP(Spanning Tree Protoco),可應用於計算機網絡中樹形拓撲結構建立,主要作用是防止根網橋網絡中的冗餘鏈路形成環路工作。但某些特定因素會導致STP失敗,要排除故障可能非常困難,這取決於網絡設計。生成樹協議適合所有廠商的網絡設備,在配置上和體現功能強度上有所差別,但是在原理和應用效果是一致的。 ---------From.百度百科

要了解STP生成樹協議,首先要知道生成樹網絡中的信息溝通問題-BPDU

2.BPDU

交換機之間溝通是使用數據幀,網橋之間溝通是通過BPDU(Bridge Protocol Data Unit)橋協議數據單元,跨層封裝到二層,
BPDU的數據幀默認不屬於任何一個VLAN,故在存在VLAN的設備上,該數據幀基於Native VLAN發送。

  • 配置BPDU:
    拓撲收斂完成之後,僅根網橋週期(2S)發送;在沒有根網橋時,所有設備僅發送BPDU;—用於選舉根網橋、發佈拓撲信息、週期保活鏈路

  • TCN BPDU(拓撲變更信息):
    TCN包中不包含任何具體信息,不會導致網絡重新收斂

    當一臺交換機的阻塞端口鏈路被斷開,那麼將標記爲中7位 置爲1,標識拓撲已經改變,該BPDU將發送到根網橋處,根網橋使用標記位 第0位,來確認;

    若沒有收到ACK,那麼2S週期發送TCN;根網橋確認之後,將使用BPDU告訴所有的非根網橋,刷新CAM表,默認CAM的保存週期爲300s

  • 次優BPDU
    當非根網橋上的根端口斷開,此時接收不到根網橋的BPDU了,同時本地斷開的不爲阻塞端口,那麼本地會將自己定義爲根網橋,發出BPDU,由於該BPDU次於根網橋,所以稱爲次優BPDU

    次優BPDU,包含本地拓撲信息,同時也爲配置BPDU,但不爲根網橋發出的BPDU

3.STP生成樹協議發展

所有的生成樹協議都基於IEEE 802.1D,所以我們詳細的介紹802.1D,之後的生成樹PVST、PVST+、RSTP/802.1W、802.1S/MSTP都是對之前的優化

(1).IEEE 802.1D

802.1D在計算過程中,選出4中角色

  • 根網橋(樹根、核心)
    在一顆生成樹實例中有且僅有1臺,沒有根網橋之前,所有的交換機默認本地爲根網橋,發出BPDU進行根網橋的選舉

    根網橋的選舉:
    比較BPDU中的BID(橋ID) = 網橋優先級 + MAC地址 越小越優

    先比較所有設備的優先級,0-65535 默認爲32768越小越優
    優先級相同的情況下比較MAC地址數值小優
    在這裏插入圖片描述
    CISCO用Extend System ID來標識VLAN信息

  • 根端口
    在每臺非根網橋上有且僅有一個,本地離根網橋最近的接口,該接口用於接收來自根的BPDU,同時該接口也用於收發用戶的數據;

    根端口的選舉:
    PID = 端口ID = 接口優先級 0-255 默認爲 128 +接口編號
    1.入方向最小COST值
    2.比較該接口對端(上級)的設備的BID,小優
    3.比較該接口對端(上級)設備的PID,小優
    4.比較本地PID

  • 指定端口
    在每根網線上有且僅有一個,用於轉發來自根的BPDU,同時轉發用戶流量,根端口的對端肯定是指定端口,根網橋上所有接口均爲指定端口
    1.比較從該接口發出BPDU的COST值
    2.比較本地BID,小優
    3.比較本地PID,小優
    4.直接阻塞端口

  • 非指定端口(阻塞端口)
    當以上端口角色全部完成,剩餘的所有的存在的端口爲非指定端口,邏輯阻塞,可以接收,不能轉發

    COST值:
    10M = 100
    100M = 19
    1000M = 4
    10000M = 2
    > 10000M = 1

實例分析

在這裏插入圖片描述

接口狀態
  • Down:接口指示燈未亮起,網線剛剛連接,不能收發BPDU

  • Listening(偵聽):接口指示燈爲橙色,進行BPDU收發,選舉各種角色,時長爲15S

    當指定端口和根端口進入到下一個狀態,非指定端口進入阻塞狀態,指示燈一致保持爲橙色

  • Learning(學習):接口指示燈爲橙色,根端口和指定端口學習各個接口下放連接PC的MAC地址;生成MAC表;15S時長結束後進入下一個狀態

  • Forwarding(轉發):接口指示燈爲綠色,收斂完成,可以正常轉發用戶的數據,在30S內接口是轉發用戶數據;

  • Blocking(阻塞狀態):非指定端口在偵聽完成之後,進入的狀態,指示燈一直保持爲橙色

收斂時間
  1. 初次收斂爲30S = listening + learning
  2. 結構突變時
  • 存在直連檢測時:當本地根端口斷開,且本地只剩下阻塞端口能接受到BPDU,該接口直接進入偵聽和學習狀態,30S轉換爲根端口
  • 當不存在直連檢測時:阻塞端口需要50S轉換爲根端口 = 20S hold time + 30S 收斂
802.1D優缺點分析
  1. 收斂速度慢,所有的VLAN一顆樹,當交換機發生拓撲變更時接口跳轉50S,所有的接口都要參與生成樹的建立
  2. 鏈路利用率低 備份路勁在最佳路徑存在時一直閒置;

(2).PVST

CISCO私有,基於vlan的生成樹

原理:
  • 在每個vlan中存在一顆樹,通常將不同生成樹的根放置於不同匯聚層位置,來實現鏈路利用率的提高.

  • 每個vlan發出一個BPDU;各個vlan進行各自的802.1D計算

  • 爲了區分不同的vlan發出的BPDU,網橋優先級(4096的倍數)+vlanid

優缺點分析
  1. 收斂慢
  2. cisco私有
  3. 樹多,帶寬和設備硬件資源均佔用(cisco設備存在一個專用的芯片來進行生成樹的運行)
  4. 僅支持接口封裝爲ISL的Trunk幹道

(3).PVST+

在PVST的基礎上進行升級,目前大多數cisco設備默認使用的STP協議
1.支持802.1q,trunk幹道封裝模式
2.可以做部分加速

  • 修改優先級

      Switch(config)#spanning-tree vlan 2 priority ?
      <0-61440>  bridge priority in increments of 4096
    
  • 可直接設備備份(secondary)和主根(primary)

      Switch(config)#spanning-tree vlan 2 root ?
      primary    Configure this switch as primary root for this spanning tree
      secondary  Configure switch as secondary root
      該命令不一定完全生效
      主根命令是本地優先級下調2個4096
      備份根命令是本地優先級下調1個4096 		
    
  • 可修改接口優先級或者COST值

      修改接口優先級:
      Switch(config-if)#spanning-tree vlan 2 port-priority ?
      <0-240>  port priority in increments of 16
      修改COST值:
      CORE(config-if)#spanning-tree vlan 2 cost ?  
       <1-200000000>  Change an interface's per VLAN spanning tree path cost
    
  • 端口加速

      連接PC的接口,開啓端口加速後;一旦連線,直接爲轉發狀態;
      Switch(config)#interface f0/1
      Switch(config-if)#spanning-tree portfast
    
  • 全局開啓端口加速

      全局下開啓端口加速,對Trunk幹道不生效
      Switch(config)#spanning-tree portfast default
    
  • 上行鏈路加速
    只能在接入層設備配置
    配置之後,該交換機的網橋優先級和接口COST值會加大,意義在於存在阻塞端口的設備纔會存在直連檢測,而阻塞端口最好在接入層設備上;故加大優先級和COST值,在於放棄成爲根網橋,儘量成爲阻塞端口

      Switch(config)#spanning-tree uplinkfast
    
  • 骨幹加速
    當阻塞端口接收到次優BPDU,那麼該接口取消20s hold time,直接進入30s收斂,所有設備均可配置

      Switch(config)#spanning-tree backbonefast
    
優缺點分析
  1. 樹多
  2. cisco私有
  3. 加速不夠徹底

(4).快速生成樹(RSTP/802.1W)

不再依賴計時器 而是一個狀態的工作完成之後,直接進入下一個狀態

RSTP:爲cisco私有的快速生成樹協議;RSTP可以兼容802.1W
802.1W:爲非CISCO產品大多數默認的協議

  • 802.1W是對802.1D的提速,依然整個交換網絡一棵樹
  • RSTP爲CISCO的快速生成樹,是對PVST+的提速,每個VLAN一棵樹

這兩種協議均爲快速收斂,1-2s完成收斂,提速的原理一致,區別在於CISCO有基於VLAN的運算芯片

RSTP的狀態規範把原來的5種狀態縮減爲3種,根據端口是否轉發用戶流量和學習MAC地址來劃分:

  • 如果不轉發用戶流量,也不學習MAC地址,那麼端口的狀態就是Discarding狀態。
  • 如果不轉發用戶流量但是學習MAC地址,那麼端口的狀態就是Learning狀態
  • 如果既轉發用戶流量又學習MAC地址,那麼端口就爲Forwarding狀態

PacketTracer7.0中,存在兩種生成樹PVST/PVST+,和RSTP

干涉選舉同PVST+一致

Switch(config)#spanning-tree mode ?
pvst        Per-Vlan spanning tree mode
rapid-pvst  Per-Vlan rapid spanning tree mode

注:默認接口爲半雙工(10M)時,接口類型爲共享,全雙工接口爲點到點類型;
在共享接口下依然運行慢速生成,只有點到點接口可以快速收斂

Switch(config-if)#spanning-tree link-type ?
point-to-point  Consider the interface as point-to-point
shared          Consider the interface as shared
優缺點分析
  1. RSTP-樹太多
  2. 802.1W-一個數->鏈路利用率低

(5).分組式生成樹(MSTP/802.1S)

快速生成樹協議,將多個VLAN放置於同一個組內,一個組一顆樹
使用該協議時,整個網絡所有設備必須均運行MSTP,同時所有設備的分組設置必須完全一致;

MSTP/802.1S

原理

將多個VLAN放置在一個組裏,爲每個組生成一棵樹,樹型算法爲802.1W;將不同組的根網橋放置於不同的匯聚層設備處,可以實現流量的分載,提高鏈路利用率;

不同組發出的BPDU,使用BPDU,使用網橋優先級區分,優先級+組ID

vlan分組:
Switch(config)#spanning-tree mst configuration 
Switch(config-mst)#instance 1 vlan 1-50   將vlan1-50劃	分到組1
Switch(config-mst)#instance 2 vlan 51-100 將vlan51-100劃分到組2

定義根網橋,備份根網橋的位置:
Switch(config)#spanning-tree mst 1 root primary    降2個4096
Switch(config)#spanning-tree mst 2 root secondary  降1個4096

修改參選接口的參數:
Switch(config)#interface e0/0  
Switch(config-if)#spanning-tree mst 1 ?
 cost           Change the interface spanning tree path cost for an instance
 port-priority  Change the spanning tree port priority for an instance
發佈了56 篇原創文章 · 獲贊 109 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章