天天看點

STP生成樹協定學習總結三層網絡架構

三層網絡架構

三層網絡架構采用階層化模型設計,即将複雜的網絡設計分成幾個層次,每個層次着重于某些特定的功能,這樣就能夠使一個複雜的大問題變成許多簡單的小問題。三層網絡架構設計的網絡有三個層次:核心層(網絡的高速交換主幹)、彙聚層(提供基于政策的連接配接)、接入層 (将工作站接入網絡)。

  • 核心層:核心層是網絡的高速交換主幹,對整個網絡的連通起到至關重要的作用。核心層應該具有如下幾個特性:可靠性、高效性、備援性、容錯性、可管理性、适應性、低延時性等。在核心層中,應該采用高帶寬的千兆以上交換機。因為核心層是網絡的樞紐中心,重要性突出。核心層裝置采用雙機備援熱備份是非常必要的,也可以使用負載均衡功能,來改善網絡性能。
  • 彙聚層:彙聚層是網絡接入層和核心層的“中介”,就是在工作站接入核心層前先做彙聚,以減輕核心層裝置的負荷。彙聚層具有實施政策、安全、工作組接入、虛拟區域網路(VLAN)之間的路由、源位址或目的位址過濾等多種功能。在彙聚層中,應該選用支援三層交換技術和VLAN的交換機,以達到網絡隔離和分段的目的。
  • 接入層:接入層向本地網段提供工作站接入。在接入層中,減少同一網段的工作站數量,能夠向工作組提供高速帶寬。接入層可以選擇不支援VLAN和三層交換技術的普通交換機。
STP生成樹協定學習總結三層網絡架構

摘自百度百科——三層網絡架構

三層網絡架構的設計原則

  • 階層化設計:每個層可以看作為是一個具有特定角色和功能的、結構定義良好的子產品,階層化的設計結構,易于擴充和維護,降低了設計的複雜度和難度。三層網絡架構可以更好地控制網絡規模和網絡品質,同時也友善網絡管理和維護。
  • 子產品化設計:每個子產品對應一個部門、功能或業務區域,可根據網絡規模靈活擴充,部門或區域内部調整涉及範圍小,容易進行問題定位。
  • 備援設計:雙節點備援性設計可以保證裝置級可靠,适當的備援提高可靠性,但過度的備援也不便于運作維護。如果無法做好雙節點備援設計,對框式的核心交換機或者出口路由器,可以考慮單闆級的備援,如雙主要闆,雙交換網闆。另外,關鍵鍊路可以采用

    Eth-Trunk 鍊路實作鍊路級可靠性。

  • 對稱性設計:網絡的對稱性便于業務部署,拓撲直覺,便于協定設計和分析。

總結:三層網絡架構特點—備援:線路備援、裝置備援、網關備援、電源備援(UPS)

線路備援

因為路由器的路由表是有相對完善的計算所得,且存在防環規則;故路由器實體鍊路上實施備份時,一般不會出現環路;

但交換轉發資料依賴MAC表(CAM表),該表的生成規則非常簡單(記錄産生),沒有防環設計,故隻要交換機使用鍊路備份,就将出現二層環路;

CAM:将MAC位址+接口編号+VLAN ID進行哈希運算後,存儲的哈希值;

二層環路導緻的問題

  1. 廣播風暴
  2. MAC位址表翻滾——MAC位址在交換機中的重新整理時間為5min,一個接口可以對應多個MAC;但一台交換機上同一MAC位址隻能對應一個接口;
  3. 同一資料幀的重複拷貝

生成樹協定(STP)

生成樹協定(Spanning Tree Protocol,STP),是一種工作在 OSI 網絡模型中的第二層(資料鍊路層)的通信協定,基本應用是防止交換機備援鍊路産生的環路,用于確定以太網中無環路的邏輯拓撲結構,進而避免了廣播風暴大量占用交換機的資源。

傳統的資料中心網絡技術中,STP 是二層網絡中非常重要的一種協定。但是,在二層網絡中使用 STP 協定有一個相當沖突的點,那就是 可靠性 和 安全性 的沖突。

  • 可靠性是指建構二層網絡時,一般會采用會采用裝置備援和鍊路備援的方式。
  • 安全性是指二層交換機同處于一個廣播域,廣播封包在環路中會反複持續傳送,可能會形成廣播風暴,是以必須防止形成環路。要想兩種同時達到,可以采用STP(生成樹協定)自動控制,即備援裝置和備援鍊路成備份,在正常情況下被阻塞掉,當出現鍊路故障時備援的裝置端口和鍊路才會被打開。

在一個二層交換網絡,邏輯的阻塞部分接口;當最佳路徑故障時,自動疏通部分接口來實作鍊路備份

生成樹:在一個二層交換網絡中,生成一棵樹型結構,邏輯的阻塞部分接口,使得從根到所有的節點僅存在唯一的路徑;當最佳路徑故障時,自動打開部分阻塞端口,來實作線路備份的作用(生成樹在生成過程中,應該盡量的生成一棵星型結構,且最短路徑樹)

生成樹協定分類:802.1D、PVST/PVST+(CISCO)、RSTP(CISCO)/802.1W(公有) 、MST=802.1S

  • BPDU—橋協定資料單元:

    交換機間使用BPDU進行交換機間溝通互動收發資料,使得網絡中所有交換機均收到其他裝置的BPDU,之後基于資料中的參數進行比對,選舉出根網橋;之後所有非根網橋不再發送BPDU,而是僅接收和轉發根網橋的BPDU

  • TCN—拓撲變更消息(也是BPDU):

    本地交換機鍊路故障後,STP重新收斂,為了快速重新整理全網所有交換機的MAC表,将向本地所有STP接口發送TCN(标記位中的TCN位置1),鄰居交換機收到TCN後,先标記為ACK位為回複,用于可靠傳輸消息;之後将TCN逐級轉發到根網橋處,由根網橋回複TC消息來逐級回複到所有交換機;使所有交換機臨時将MAC表的老換時間修改為15s(預設的,轉發延時)

TCN

STP生成樹協定學習總結三層網絡架構

BPDU

STP生成樹協定學習總結三層網絡架構

選舉角色

  • 根網橋:在每一棵生成樹執行個體中,有且僅有一台交換機作為根橋;負責發送BPDU,計算和指揮整個樹的收斂;作為樹形結構的根部,交換網絡部分的中心節點;

    對比BPDU中的橋ID(BID);

    橋ID= 網橋優先級 + MAC位址(本地背闆池)

    比較網橋優先級(0-65535,預設32768),數值越小越優;若優先級一緻,比較MAC位址,數值越小越優;

    注意:交換機作為網橋裝置時,關注終端裝置發送的資料幀中的MAC位址;但交換機本地無MAC;

    需要運作STP協定的交換機,必須在出廠時由廠家進行MAC的寫入,存儲于交換機的背闆位址池中

    若交換的背闆位址池中MAC位址為多個,将選擇數值最小的位址來進行選舉

  • 根端口:在每一台非根網橋上有且僅有一個接口;本地離根網橋最近的接口,用于接收來自根網橋的BPDU,同時轉發終端的資料幀;

    1.比較從根網橋發出,之後通過該接口進入時最小的cost值;

    2.若入向的cost相同,比較接口對端的裝置的BID,小優

    3.若對端裝置的BID相同,那麼比較對端接口的PID;小優

    4.若對端裝置的PID相同,那麼比較本地的PID,小優

    端口ID(PID) = 接口優先級(0-240,預設128 小優(數值越小越優))+ 接口編号 先比較優先級,小優;若優先級相同比較接口編号,數值小優

  • 指定端口:在每一段運作了STP的實體鍊路上有且僅有一個接口;轉發來自根網橋的BPDU,同時轉發終端的資料幀;根網橋上所有接口均為指定端口;根端口的對端一定為指定端口;

    1.比較轉發來自根網橋的BPDU是,出項的最小cost值

    2.若出向cost值相同,比較本地的BID,小優

    3.若本地的BID相同,比較本地的PID,小優

    4.若本地PID相同,将直接阻塞該端口

  • 非指定端口(阻塞端口):以上所有角色選舉完成後,剩餘各個接口的角色;該接口處于阻塞狀态;

    接口阻塞是邏輯上的,并不是接口被關閉;該接口處于可以接收到資料,但不進行轉發的狀态;

接口狀态

  • Down :所有接口通電後進入下一狀态
  • 偵聽:交換機收發BPDU,選出所有角色;根端口、指定端口15s後進入學習狀态;非指定端口進入阻塞
  • 學習:學習終端裝置發出資料幀中的源mac位址,生成交換機的MAC表(CAM表);15s後進入轉發狀态
  • 轉發:根端口、指定端口可以開始轉發終端的資料幀
  • 阻塞:邏輯阻塞

選舉流程:

當網絡中還沒有根網橋時,所有交換機自己将自己視為根網橋,向外發送BPDU,最終對比每台交換機的BPDU中的BID(橋ID),選舉出根網橋。

每台交換機選出一個根端口,負責接收根網橋發送的BPDU;選舉出若幹個指定端口,負責轉發BPDU,同時轉發終端的資料幀。其餘非指定端口進入阻塞狀态,可正常收到PBDU,但是不進行轉發。

802.1D協定

收斂時間:

  1. 初次收斂 30s 15s偵聽+15s學習
  2. 結構變化

    1)存在直連檢測 –本地僅存在一個阻塞端口可以接收到來自根網橋的BPDU;需要30s收斂

    2)無直連檢測 — 20s

    hold time等待+30s收斂=50s

缺點:

  1. 收斂速度慢
  2. 鍊路使用率低 – 備份鍊路正常不轉發資料

802.1D配置指令:

[sw1]stp mode stp   //修改為802.1d算法,當下華為預設為MSTP;
[sw1]stp priority 4096    //修改網橋優先級

[sw1-GigabitEthernet0/0/1]stp cost ?   //修改接口cost值
  INTEGER<1-200000000>  Port path cost

[sw1-GigabitEthernet0/0/1]stp port priority ?  //修改接口優先級
  INTEGER<0-240>  Port priority, in steps of 16


           

PVST/PVST+協定

PVST:cisco私有,基于VLAN的生成樹協定,依然沿用了802.1D的運算規則;

差別在于,在每個vlan内,存在一棵樹,每棵樹的工作原理同802.1d一緻;不同vlan的BPDU差別在于網橋優先級。

優先級=4096倍數+vlan id,人為僅可修改4096倍數備份,且隻能修改為4096的整倍。僅支援 trunk幹道封裝為ISL(cisco私有封裝)

PVST+:在PVST的基礎,相容802.1q的trunk封裝;

且設計了部分的加速:

  • 端口加速:将接口設定成邊緣端口,(接入層連接配接使用者的接口),省去30s收斂
  • 上行鍊路加速:針對直連檢測(接入層裝置方可配置)
  • 骨幹加速:針對次優BPDU 剩去20s的hold time 所有交換機均可配置

邊緣接口:用于連接配接PC的接口,一旦被設定為邊緣接口;将不再進行BPDU的發送,且不進行STP的收斂,直接為轉發狀态; 但若該接口收到了對端的BPDU,将失去邊緣特性,重新正常收斂;

[sw1]interface GigabitEthernet 0/0/1
[sw1-GigabitEthernet0/0/1]stp edged-port enable
           

缺點:

  • 收斂慢(加速不徹底)
  • 樹多(僅cisco存在單獨的晶片,友商無法負荷)

快速生成樹(RSTP)

cisco的RSTP:基于vlan的快速生成樹,一個vlan一棵樹,PVST+的更新

公有RSTP(802.1w):整個交換網絡一棵樹, 802.1d的更新

快速的原理:

  1. 取消了計時器,而是在一個狀态工作完成後,直接進入下一狀态;
  2. 分段式同步,兩台裝置間逐級收斂;使用請求和同意标記;依賴标記位的第1和第6位(将完整的同步請求分成多段,逐級收斂)
  3. BPDU的保活為6s;hello time 2s;
  4. 內建端口加速(邊緣接口)、上行鍊路加速、骨幹加速與一體
  5. 相容802.1d和PVST,但802.1d和PVST沒有使用标記位中的第1-6位,故不能快速收斂;是以如果網絡中有一台裝置不支援快速收斂,那麼其他開啟快速收斂的裝置也不能快速;
  6. 當tcn消息出現時,不需要等待根網橋的BPDU,就可以重新整理本地的cam表;

注意:接口預設為半雙工時,即便運作RSTP,依然基于慢速的802.1D算法來收斂;

[sw1]stp priority ?  //修改網橋優先級
  INTEGER<0-61440>  Bridge priority, in steps of 4096 

[sw1]stp root ?  //快速定義根網橋角色
  primary    Primary root switch
  secondary  Secondary root switch

[sw1-GigabitEthernet0/0/1]stp port  priority ?   //修改接口優先級
  INTEGER<0-240>  Port priority, in steps of 16

[sw1-GigabitEthernet0/0/1]stp cost ? //修改接口cost
  INTEGER<1-200000000>  Port path cost 
           

MSTP

繼承了快速生成樹的基礎;解決了快速生成樹的問題:每個VLAN生成一棵樹,這樣将會有許多相同功能的樹,增加資源消耗;将多個vlan放置于一個組内,基于每個組一棵生成樹;

不同組間的BPDU中優先級= 4096倍數+組号

預設存在組0,且所有vlan預設處于該組;優先級= 32768+0

分組配置:

[sw1]stp enable 
[sw1]stp region-configuration 
[sw1-mst-region]region-name a    //所有裝置應在一個域内
[sw1-mst-region]instance 1 vlan 1 to 5
[sw1-mst-region]instance 2 vlan 6 to 10
[sw1-mst-region]active region-configuration     //激活目前配置(必須配置該指令)
           

切記:若将建立某個組,但該組内的vlan,在本交換機上沒有建立,同時沒有為該vlan服務的接口;該組将沒有任何資訊;整個交換網絡中所有裝置的分組資訊必須完全一緻;

定義本地為組1 的主根,組2 的備份根

stp instance 1 root primary      //優先級修改為0
stp instance 2 root secondary    //優先級修改為4096

           

繼續閱讀