① BPDU是什麼意思,BPDU是什麼意思
關於BPDU的意思,計算機專業術語名詞解釋
網橋協議數據單元。是一種生成樹協議問候數據包,它以可配置的間隔發出,用來在網路的網橋間進行信息交換。
② STP報文內容
stp協議一共有兩種BPDU
第一種是配置BPDU,第二種是拓撲改變通知BPDU(TCN BPDU)
BPDU報文中的flags位共8個bit,默認只用了 兩個比特(第0位和7位),
TCA(flag第0位為0):拓撲改變確認
TC(lag第7位為0):拓撲改變
根橋的優先順序和根橋交換機系統的mac地址
到根橋的路徑開銷
(自身id)
自身埠ID
前兩位是16進制的優先順序,後兩位代表埠編號,
BPDU存活時間,根橋發送的時候是0,每經過一台交換機+1
默認是20s BPDU最大存活時間,當message age等於max age,則認為該BPDU失效
BPDUf發送間隔,默認是2s
用於埠在監聽狀態和學習狀態分別需要等待的時間,默認是15s
----------------------
STPd的埠開銷,一共有三個標准,我們可以使用stp pathcost-standard 補全查看
分別是
dot1d-1998 IEEE 802.1d-1998 IEEE標准,比較老
dot1t IEEE 802.1T IEEE標准,華為默認此標准
legacy legacy 華為私有標准
③ 什麼是 bp 保護,如何配置(cisco)
1、首先在電腦上點擊打開cisco軟體。然後新建三個電腦和路由器。
④ BPDU報文是通過什麼進行傳送的
在STP協議中,BPDU報文是通過交換機互聯鏈路進行傳送的。目的MAC是一樣的與具體設備無關,所有參與STP計算的交換機都會監聽這個多播地址,這樣也保證交換機都能收到BPDU了。
連接方法:
1、首先打開編輯器。
注意事項:
BPDU包含的關鍵欄位。
STP使用BPDU選擇根網橋2-1:
交換機啟動時,假定自己是根網橋,在向外發送的BPDU中,根網橋ID欄位填寫自己的網橋ID。
STP使用BPDU選擇根網橋2-2:
當接收到其他交換機發出的BPDU後,比較網橋ID,選擇較小的添加到根網橋ID中。
STP使用BPDU計算根路徑成本2-1:
根網橋發送根路徑成本為0的BPDU。
STP使用BPDU計算根路徑成本2-2:
其他交換機接收到根網橋的BPDU後,在根路徑成本上添加接收介面的路徑成本,然後轉發生成樹埠的狀態。
⑤ STP、RSTP
為了提高網路可靠性,避免單點故障而導致網路中斷,常常需要在網路中部署冗餘鏈路或冗餘設備,但是部署了冗餘鏈路或冗餘設備的網路,也會從無環的樹型網路結構變為環形網路結構,環形網路結構會帶來新的問題:
1、廣播風暴導致網路不可用
因為交換機收到廣播幀,會將廣播幀從接收埠外的所有介面轉發出去;
廣播幀就會在環形網路中無限循環轉發,隨著廣播幀的增加,最終導致整個網路的資源被耗盡,網路癱瘓不可用;
2、MAC地址表震盪導致MAC地址表被破壞
即使是單播報文,也有可能導致交換機的MAC地址表項混亂,破壞交換機的MAC地址表;
因為交換機接收到未知單播幀後,也會向除接收埠外的所有介面轉發;
未知單播幀就會在環形網路中無限循環轉發,同一交換機不斷的從不同的介面學到未知單播幀,交換機就會不停的修改MAC地址表,導致MAC地址表震盪,破壞MAC地址;
STP根據IEEE 802.1D標准建立,用於在區域網中消除二層環路的問題;
運行STP協議的設備通過彼此交互信息發現網路中的環路,並有選擇地對某些埠進行阻塞,最終實現將環路網路結構修剪成無環路的樹型網路結構,從而防止報文在環形網路中不斷循環,避免設備由於重復接收相同的報文造成處理能力下降。
STP僅在網路中存在冗餘鏈路或者存在環形網路拓撲結構時才需要使用;
使用STP技術,其實更多是抱著以防萬一的心態,怕網路中存在這樣的物理封閉環路;
因為STP技術在保證正常使用冗餘鏈路備份的同時,又能確保不會出現二層通信環路;
一個根橋、兩個度量、三個要素、四個原則、五個埠狀態
一個根橋:
樹型的網路拓撲結構必須有一個樹根,就像一棵樹只有一個樹根一樣,對於一個運行STP協議的網路,根橋在全網中只有一個,就是網路中具有最小橋ID的交換機;
網路中除根橋外的其它交換機成為非根橋;
網路收斂後,根橋會按照一定的時間間隔向外發送配置BPDU,非根橋僅對該報文進行轉發,傳達拓撲變化記錄,保證拓撲的穩定;
兩個度量:
在STP計算中要確定兩個方面,一是哪台交換機作為根橋,二是非根橋的哪些埠收發數據,哪些埠該被阻塞,以便最終形成無環路的樹型網路拓撲結構;
STP計算依據的就是ID和路徑開銷這兩個度量;
1、ID
ID包括BID橋ID和PID埠ID兩種;
BID Bridge ID一共64位,高16位為Bridge Priority橋優先順序,低48位為橋背板MAC地址;
BID決定了哪台交換機成為網路中的根橋,BID最小的交換機被選舉為根橋;
從橋優先順序欄位和橋MAC地址欄位所處位置可以看出,橋優先順序越小,橋ID越小,橋優先順序相同,取橋MAC地址小的作為根橋;
橋優先順序數值范圍0 - 61440,數值越小越優先;
PID Port ID一共16位,高4位是埠優先順序,低12位是埠號;
在確定根埠、指定埠的過程中,如果根路徑開銷、發送者橋ID均相同,發送者PID小的埠成為根埠或指定埠;
埠優先順序數值范圍0 - 255,數值越小越優先;
2、路徑開銷
路徑開銷是一個埠參數,由具體埠的鏈路速率決定,是STP協議用於選擇鏈路的參考值;
對於聚合鏈路,鏈路速率是聚合組中所有狀態位UP的成員口的速率之和;
STP協議通過計算各埠的路徑開銷,選擇較為強壯的鏈路,阻塞多餘的鏈路,將網路修剪成無環路的樹型網路結構;
根路徑開銷是某埠到根橋累計的路徑開銷,就是所經過的各個橋上的各埠的路徑開銷累加值;
根橋上所有埠的根路徑開銷,以及同交換機上不同埠間的路徑開銷值均為零;
某介面的根路徑開銷 = 根埠接收配置BPDU攜帶的根路徑開銷 + 根埠的路徑開銷
三個選舉要素
由環形網路拓撲結構修剪為樹型結構,需要使用STP中的三個選舉要素,即根橋、根埠和指定埠;
根橋 就是STP網路中BID橋ID最小的橋,通過交互配置BPDU報文選出最小的BID作為根橋;
根埠 非根橋上接收最優配置BPDU的埠,即離根橋最近的埠;
最優配置BPDU根據BPDU優先順序確定;
在一個運行STP協議的設備上,根埠有且只有一個,根橋上沒有根埠;
指定埠 就是向一個網段上發送最優配置BPDU的埠;
一旦根橋、根埠、指定埠選舉成功,整個樹型網路拓撲結構就建立完成了;
拓撲穩定後,只有根埠、指定埠轉發流量,其餘埠處於阻塞狀態;
四個比較原則
STP計算依據的是各個埠發送配置BPDU報文攜帶的4個欄位:
1、根橋ID 每個STP網路只生成一棵樹,一棵樹只有一個樹根;
2、根路徑開銷 發送該配置BPDU的埠到根橋的累計路徑開銷;
3、發送者橋ID 發送該配置BPDU的橋ID;
4、發送者埠ID 發送該配置BPDU的埠ID;
BPDU優先順序按照上述順序依次比較這四個欄位確定,四個欄位都是數值越小越優先;
需要注意的是,當非根橋從多個埠收到多個不同的配置BPDU時,根路徑開銷的比較是接收配置BPDU攜帶的根路徑開銷值加上接收埠路徑開銷值進行比較;
五個埠狀態
運行STP協議的設備,有以下5個埠狀態:
1、disabled 禁用狀態
2、blocking 可以收發BPDU
該狀態下正在確定根橋、根埠、指定埠;
3、listening 可以收發BPDU
在埠被選舉為根埠或指定埠後,進入到該狀態,是一種過渡狀態;
4、learning 可以收發BPDU、學習MAC地址表項
經過一個轉發延時後進入該狀態,需要再經過一個轉發延時後才能進入forwarding狀態,也是一種過渡狀態;
5、forwarding 可以收發BPDU、學習MAC地址表項、轉發用戶流量
只有根埠、指定埠才能進入轉發狀態;
新選出的根埠、指定埠要經過兩倍的轉發延時後,才能進入轉發狀態,確保新的配置BPDU傳遍整個網路,可以防止臨時環路的產生;
STP的3個定時器
1、hello time hello time定時器 預設2s
設備會每隔hello time時間向周圍的設備發送配置BPDU,以確認鏈路是否存在故障;
網路拓撲穩定之後,只有根橋每隔hello time時間從指定埠發送配置BPDU;
非根橋從根埠接收到配置BPDU之後,才會從指定埠發送配置BPDU;
根橋上的hello time時間被修改後,會在下一次發出的配置BPDU報文中更新hello time這個欄位,來向非根橋傳遞hello time定時器信息;
當網路拓撲發生變化之後,TCN BPDU的發送不受這個定時器的管理;
2、forward delay 轉發延時 預設15s
鏈路故障會引發網路重新進行生成樹的計算,生成樹的結構將發生改變,但是重新計算得到的新配置消息不可能立即傳遍整個網路,如果此時新選出的根埠和指定埠就立即開始數據轉發的話,很可能會造成臨時的二層環路;
因此,STP採用了一種狀態遷移機制,新選出的根埠和指定埠要經過兩倍的forward delay延時後才能進入轉發狀態,這個延時保證了新的配置消息傳遍整個網路,從而防止產生臨時的二層環路;
轉發延時是狀態遷移的延遲時間,預設值15s,即listening狀態持續15s,隨後進入learning狀態再持續15s;
3、max age 最大生成時間 預設20s
運行STP協議的網路中,非根橋設備收到配置BPDU報文後,會對報文中的Message Age消息生存時間和Max Age最大生存時間進行比較,如果Message Age小於等於Max Age,非根橋設備就繼續轉發配置BPDU報文;
如果Message Age大於Max Age,則該配置BPDU報文將被老化,該非根橋設備直接丟棄該配置BPDU,可認為網路直徑過大,導致根橋連接失敗;
當配置BPDU從根橋發出時,報文中的Message Age值為0,配置BPDU報文每經過一個交換機,Message Age增加1;
STP BPDU報文
STP協議採用的是BPDU Bridge Protocol Data Unit 橋協議數據單元類型報文,也稱為配置消息,STP就是通過在設備直接傳遞BPDU來確定最終修剪完成的樹型網路拓撲結構;
STP BPDU報文被封裝在乙太網數據幀中,此時目的MAC地址是組播MAC地址:01-80-C2-00-00-00,在LLC頭部中IEEE為STP保留的DSAP和SSAP值均為0x42,Control為0x03;
STP BPDU分為兩類,配置BPDU和TCN BPDU
1、Configuration BPDU 配置BPDU 用於生成樹計算與維護
配置BPDU是一種心跳報文,只要埠使能STP協議,設備就會按照hello time定時器的時間間隔從指定埠發送配置BPDU;
在初始化過程中,每個交換機都會主動發送配置BPDU,但在網路拓撲穩定以後,只有根橋主動從指定埠發送配置BPDU;
非根橋從根埠收到配置BPDU後才觸發從指定埠發送自己的配置BPDU;
配置BPDU在以下3中情況下會產生:
1)根橋每隔hello time時間周期性從指定埠發送配置BPDU;
2)非根橋從根埠收到配置BPDU後,觸發從指定埠發送自己的配置BPDU;
3)當指定埠收到次優配置BPDU時,會立刻從該指定埠發送自己的配置BPDU;
配置BPDU中的欄位:
protocol identifier協議ID:2位元組,總是為0;
protocol version協議版本:1位元組,總是為0;
message type消息類型:1位元組,0x00為配置BPDU,0x80為TCN BPDU
flags標志:1位元組,最低位TC Topology Change標志位,最高位TCA Topology Change Acknowledgment標志位;
Root Identifier根橋ID:8位元組,2位元組橋優先順序,6位元組橋MAC;
Root Path Cost根路徑開銷:4位元組,發送該BPDU的埠到根橋的累計路徑開銷;
Bridge Identifier橋ID:8位元組,發送該BPDU的橋ID,2位元組橋優先順序,6位元組橋ID;
Port Identifier埠ID:2位元組,發送該BPDU的埠ID,高4位埠優先順序,低12位埠號;
Message Age消息生存時間:2位元組,根橋發送的配置BPDU中該欄位為0,每經過一個交換機加1,小於等於Max Age的配置BPDU才會被轉發,否則被丟棄;
Max Age最大生存時間:2位元組,配置BPDU的生存時間超過Max Age就會失效,預設20s;
Hello Time:2位元組,根橋每隔hello time周期性發送配置BPDU,預設2s;
Forward Delay轉發延時:2位元組,listening和learning各自持續的時間,防止臨時的二層環路,預設15s;
2、Topology Change Notificaition BPDU TCP BPDU 用於下游設備通知上游設備網路拓撲變化,直到根橋
TCN BPDU是在設備檢測到網路拓撲發生變化時才發出的;
TCN BPDU在如下兩種情況下會產生:
1)存在指定埠的設備上,埠狀態變為forwarding;
2)從指定埠收到TCN BPDU後向根橋復制TCN BPDU;
TCN BPDU中的欄位:
protocol identifier協議ID:2位元組,總是為0;
protocol version協議版本:1位元組,總是為0;
message type消息類型:1位元組,0x00為配置BPDU,0x80為TCN BPDU;
STP的不足
STP協議雖然解決了二層環路問題,但是由於網路拓撲收斂速度慢,會影響用戶通信質量;
Blocking到Forwarding需要經過兩個轉發延時間隔,另外配置BPDU超時需要20s;
如果網路中的拓撲結構頻繁變化,網路也會隨之頻繁失去連通性,從而導致用戶通信頻繁中斷;
1)STP協議採用的是被動演算法,依賴定時器等待的方式確定拓撲,如轉發延時,所以收斂速度慢;
2)STP網路拓撲穩定後,只有根橋主動發送配置BPDU,非根橋只能被動轉發,也導致收斂速度慢;
3)沒有細致區分埠狀態和埠角色;
STP是最原始的生成樹協議,它的主要不足是網路拓撲收斂速度慢;
RSTP是在STP基礎上改進的生成樹協議版本,提高了網路拓撲收斂速度;
IEEE802.1w定義的RSTP保留了STP的大部分演算法和計時器,只在一些細節上做了改進,但這些改進相當關鍵,極大的提升了STP性能,能滿足低延時、高可靠性的網路要求;
RSTP對STP的改進主要體現在埠角色、埠狀態、BPDU的變化和P/A收斂機制四個方面:
1、新增三種埠角色
RSTP在STP中根埠、指定埠的基礎上,對其它埠進行了細分;
1)Alternate替代埠
作為根埠的備份埠,根埠故障後,替代埠就會無延時地進入轉發狀態;
2)Backup備份埠
作為指定埠的備份埠,指定埠故障後,備份埠就會無延時地進入轉發狀態;
3)Edge邊緣埠
用於連接主機,不參與生成樹計算,不收發BPDU,能夠直接進入forwarding狀態;
如果收到BPDU報文就會失去邊緣埠屬性,開始收發報文進行STP生成樹計算;
2、重新劃分埠狀態
RSTP把STP中的Disabled、Blocking、Listening三種埠狀態用Discarding狀態替代,即:
1)Discarding 收發BPDU
2)Learning 收發BPDU、學習MAC地址
3)Forwarding 收發BPDU、學習MAC地址,轉發用戶流量
3、BPDU的變化
RSTP協議與STP協議一樣在交換機間使用BPDU交互信息,但是RSTP只有配置BPDU,即RST BPDU,沒有TCN BPDU;
RSTP在BPDU方面的改變主要體現在BPDU格式、拓撲變化BPDU的使用和配置BPDU處理方式的改變三個方面:
1)BPDU格式上的改變
Protocol Version欄位:RST BPDU是2,不再為0,運行STP的設備收到RST BPDU會丟棄;
BPDU Flag欄位:最高位TCA和最低位TC保持不變,RST BPDU使用了STP配置BPDU中Flag欄位保留的中間6位,增加了埠狀態、埠角色和PA機制三個功能的標志;
PA機制:Agreement位和Proposal位用於RSTP的點到點鏈路的PA機制;
埠狀態:Forwarding位和Learning位用於表示發送RST BPDU的埠的RSTP埠狀態;
埠角色:占兩個比特,00表示發送RST BPDU的埠的埠角色未知;
01表示發送RST BPDU的埠的RSTP埠角色為Alternate替代埠或Backup備份埠;
10表示發送RST BPDU的埠的RSTP埠角色為根埠;
11表示發送RST BPDU的埠的RSTP埠角色為指定埠;
2)拓撲變化BPDU的使用
在RSTP中不再需要從根埠依次向上發送TCN BPDU,直至根橋;
RSTP直接發送TC置1的RST BPDU,接收的交換機直接清空MAC地址表;
交換機清空MAC地址表不再需要等待根橋發送的TC置1的配置BPDU,提高了收斂速度;
3)配置BPDU處理方式的改變
配置BPDU處理方式的改變主要體現在配置BPDU的發送方式、超時時間和處理次優BPDU三個方面:
配置BPDU的發送方式:
拓撲穩定後,STP中只有根橋按照hello time時間間隔發送配置BPDU,非根交換機需要等待從根埠收到配置BPDU,才會從指定埠發送自己的配置BPDU,這樣導致STP計算復雜和緩慢;
RSTP中所有交換機都按照hello time時間間隔周期性發送配置BPDU,無需等待根橋發出的配置BPDU;
配置BPDU的超時時間:
STP中需要等待Max Age 20s最大生存時間後,配置BPDU失效才會認為上游鄰居故障;
RSTP中如果連續三個hello time時間間隔沒有收到RST BPDU,就認為上游鄰居故障;
處理次優BPDU:
STP中只對指定埠收到的次優配置BPDU,立即發送自己更優的配置BPDU;
對於根埠收到的次優配置BPDU,不會做同樣處理,而是等待Max Age最大生存時間超時,才會進行BPDU協商;
RSTP埠收到次優BPDU都會立即發送自身更優的RST BPDU,無需等待20sMax Age最大生存時間超時時間;
RSTP處理次優BPDU不再像STP那樣依賴於定時器通過超時完成拓撲收斂,從而加快了拓撲收斂;
4、P/A收斂機制
STP中確定一個埠為指定埠後,埠從Listening到Learning,Learning到Forwarding,要經過兩倍的轉發延時時間才能進入Forwarding狀態,這種保守的設計可以防止臨時的二層環路,但是收斂速度慢;
RSTP的提議確認機制,是為了讓指定埠盡快進入Forwarding狀態,而不必等待轉發延遲;
P/A機制只能在點到點鏈路上使用,即埠所在的乙太網對端只有一台設備,否則要從Learning到Forwarding要等待一個轉發延時時間;
1)當一個指定埠處於Discarding或learning狀態時,會向下游設備發送Proposal位置1的RST BPDU,請求快速切換到Forwarding狀態;
2)下游設備根埠收到後,會讓除根埠除外的所有非邊緣埠進入Discarding狀態,然後從根埠向上游設備發送Agreement位置1的RST BPDU,同意上游設備指定埠進入Forwarding狀態;
3)上游設備收到後,指定埠直接進入Forwarding狀態;
4)下游設備通過同樣的方式恢復指定埠的轉發;
5、RSTP保護功能
1)BPDU保護
邊緣埠在收到BPDU以後埠狀態將變為非邊緣埠,此時就會造成生成樹的重新計算,如果攻擊者偽造RST BPDU惡意攻擊交換設備,就會引起網路震盪;
啟動了BPDU保護功能後,如果邊緣埠收到RST BPDU,邊緣埠將被error-down,但是邊緣埠屬性不變,同時通知網管系統被錯誤down掉的邊緣埠只能由網路管理員手動恢復;
也可以配置埠自動恢復功能,並設置延遲時間,使被錯誤down掉的邊緣埠可自動恢復;
2)Root保護
由於維護人員的錯誤配置或網路中的惡意攻擊,根橋收到優先順序更高的RST BPDU會失去根橋的地位,重新計算生成樹,並且由於拓撲結構變化,可能造成高速流量遷移到低速鏈路,引起網路擁塞;
對於啟動Root保護功能的指定埠,埠角色只能保持為指定埠,一旦啟用Root保護功能的指定埠收到優先順序更高的RST BPDU,埠將進入Discarding狀態,不再轉發報文;
在經過一段時間(通常為兩倍的Forward Delay),如果埠一直沒有收到高優先順序的RST BPDU,埠自動恢復到正常的Forwarding狀態;
3)環路保護
當出現鏈路擁塞或者單向鏈路故障時,根埠和Alternate替代埠會被老化,根埠老化會導致交換機重新選擇根埠,Alternate替代埠老化將遷移到forwarding狀態,這樣會產生環路;
在啟動了環路保護功能後,如果根埠或Alternate埠長時間收不到來自上游的RST BPDU,則向網管發出通知信息,根埠進入Discarding狀態,直到根埠收到RST BPDU,埠狀態才恢復正常到forwarding狀態,而阻塞埠則會一直保持在阻塞狀態不轉發報文,從而不會在網路中形成環路;
4)防TC - BPDU報文攻擊保護
交換設備在接收到TC - BPDU報文後,會執行MAC地址表和ARP表的刪除操作,如果頻繁操作則會對CPU的沖擊很大;
啟用防TC -BPDU報文攻擊功能後,可配置單位時間內交換機可以處理TC-BPDU報文的次數;
如果單位時間內交換設備在收到TC-BPDU報文數量大於配置的閥值,那麼設備只會處理閥值指定的次數;對於其它超出閥值的TC-BPDU,定時器到期後交換機只對其統一處理一次;這樣可以避免頻繁地刪除MAC地址表和ARP表,達到保護設備的作用;
RSTP與STP的互操作:
RSTP可以和STP互操作,但是此時會喪失RSTP快速收斂特性;
當一個網段既有運行STP的交換網路,又有運行RSTP的交換設備時,STP設備會忽略RST BPDU,而運行RSTP設備的埠接收到STP的配置BPDU時,會在兩個Hello time時間之後將自己的埠轉換到STP工作模式,發送STP 配置BPDU,這樣就實現了互操作;
⑥ STP生成樹協議
為了提高網路可靠性,交換機網路中通常會使用冗餘鏈路,冗餘鏈路會給交換機帶來環路風險,並導致 廣播風暴 以及 MAC地址表不穩定 等問題,生成樹協議STP(Spanning Tree Protocol)可以在提高可靠性的同時又避免環路帶來的各種問題。
根據交換機的轉發原則, 如果交換機從一個埠上接收到的是一個廣播幀, 或者是一個目的MAC地址未知的單播幀,則會將這個幀向除源埠之外的所有其他埠轉發。如果交換網路中有環路,則這個幀會被無限轉發,此時便會形成廣播風暴,網路中也會充斥著重復的數據幀。
STP的主要作用: 利用生成樹演算法、在乙太網絡中,創建一個以某台交換機的某個埠為根的生成樹,自動地在邏輯上阻塞一個或多個冗餘埠,避免環路。
STP的基本工作原理為:通過 BPDU (Bridge Protocol Data Unit,橋接協議數據單元)的交互來傳遞STP計算所需要的條件,隨後根據特定的演算法,阻塞特定埠,從而得到無環的樹形拓撲。
為了計算生成樹, 交換機之間需要交換相關的信息和參數, 這些信息和參數被封裝在BPDU(Bridge Protocol Data Unit) 中。
BPDU有兩種類型:配置BPDU和TCN BPDU(拓撲變更BPDU)。
STP中根橋的選舉依據的是橋ID, STP中的每個交換機都會有一個橋ID(Bridge ID) 。 橋ID由16位的橋優先順序(Bridge Priority) 和48位的MAC地址構成。 在STP網路中, 橋優先順序是可以配置的, 取值范圍是0~65535, 默認值為32768。 優先順序最高的設備(數值越小越優先) 會被選舉為根橋。 如果優先順序相同, 則會比較MAC地址, MAC地址越小則越優先 。
非根交換機在選舉根埠時分別依據該埠的 根路徑開銷、 對端BID(Bridge ID) 、 對端PID(Port ID) 和本端PID。
交換機的每個埠都有一個 埠開銷 (Port Cost) 參數, 此參數表示該埠在STP中的開銷值。 默認情況下埠的開銷和埠的帶寬有關,帶寬越高,開銷越小。從一個非根橋到達根橋的路徑可能有多條,每一條路徑都有一個總的開銷值,此開銷值是該路徑上所有接收BPDU埠的埠開銷總和(即BPDU的入方向埠),稱為路徑開銷。非根橋通過對比多條路徑的路徑開銷,選出到達根橋的最短路徑,這條最短路徑的路徑開銷被稱為 RPC (Root Path Cost, 根路徑開銷),並生成無環樹狀網路。 根橋的根路徑開銷是0。
如果有兩個或兩個以上的埠計算得到的累計路徑開銷相同,那麼選擇收到發送者BID最小的那個埠作為根埠。
運行STP交換機的每個埠都有一個埠ID,埠ID由埠優先順序和埠號構成。埠優先順序取值范圍是0到240,步長為16,即取值必須為16的整數倍。預設情況下,埠優先順序是128。埠ID(Port ID)可以用來確定埠角色,值小者優先。
在網段上抑制其他埠(無論是自己的還是其他設備的)發送BPDU報文的埠,就是該網段的指定埠。
根橋的每個埠總是指定埠。
根埠相對應的埠(即與根埠直連的埠)皆為指定埠。
指定埠的選舉也是首先比較累計路徑開銷,累計路徑開銷最小的埠就是指定埠。如果累計路徑開銷相同,則比較埠所在交換機的橋ID,所在橋ID最小的埠被選舉為指定埠。如果通過累計路徑開銷和所在橋ID選舉不出來,則比較埠ID,埠ID最小的被選舉為指定埠。(同根埠選舉)
網路收斂後,只有指定埠和根埠可以轉發數據。其他埠為預備埠,被阻塞,不能轉發數據,只能夠從所連網段的指定交換機接收到BPDU報文,並以此來監視鏈路的狀態。
1、 Forwarding:轉發狀態。 埠既可轉發用戶流量也可轉發BPDU報文, 只有根埠或指定埠才能進入Forwarding狀態。
2、 Learning:學習狀態。 埠可根據收到的用戶流量構建MAC地址表,但不轉發用戶流量。 增加Learning狀態是為了防止臨時環路。
3、 Listening:偵聽狀態。 埠可以轉發BPDU報文, 但不能轉發用戶流量。
4、 Blocking:阻塞狀態。 埠僅僅能接收並處理BPDU, 不能轉發BPDU, 也不能轉發用戶流量。 此狀態是預備埠的最終狀態。
5、 Disabled:禁用狀態。 埠既不處理和轉發BPDU報文, 也不轉發用戶流量。
在穩定的STP拓撲里, 非根橋會定期收到來自根橋的BPDU報文。如果根橋發生了故障,停止發送BPDU報文,下游交換機就無法收到來自根橋的BPDU報文。如果下游交換機一直收不到BPDU報文,Max Age定時器就會超時(Max Age的默認值為20秒),從而導致已經收到的BPDU報文失效,此時,非根交換機會互相發送配置BPDU報文,重新選舉新的根橋。根橋故障會導致50秒左右的恢復時間,恢復時間約等於Max Age加上兩倍的Forward Delay收斂時間。
1、SWA和SWB使用了兩條鏈路互連,其中一條是主用鏈路,另外一條是備份鏈路。生成樹正常收斂之後,如果SWB檢測到根埠的鏈路發生物理故障,則其Alternate埠會遷移到Listening、Learning、Forwarding狀態,經過兩倍的Forward Delay後恢復到轉發狀態。
2、SWB經過集線器與SWA通過兩條鏈路互連,當主用鏈路故障時,SWB尚未檢測到信號丟失,因此保持原狀態不變,但是,根埠已經無法收到來至根橋的BPDU報文,經過T=Max_Age-Message_Age 時間後,原BPDU報文過期,SWB的Alternate埠會遷移到Listening、Learning、Forwarding狀態, 經過兩倍的Forward Delay後恢復到轉發狀態。因此,鏈路經過2xForward_Time + (Max_Age-Message_Age)時間後恢復。
SWB與SWA之間的鏈路發生了某種故障(非物理層故障),SWB因此一直收不到來自SWA的BPDU報文。 等待Max Age定時器超時後,SWB會認為根橋SWA不再有效,並認為自己是根橋,於是開始發送自己的BPDU報文給SWC,通知SWC自己作為新的根橋。在此期間,由於SWC的Alternate埠再也不能收到包含原根橋ID的BPDU報文。其Max Age定時器超時後,SWC會切換Alternate埠為指定埠並且轉發來自其根埠的BPDU報文給SWB。所以,Max Age定時器超時後,SWB、SWC幾乎同時會收到對方發來的BPDU。 經過STP重新計算後,SWB放棄宣稱自己是根橋並重新確定埠角色。非直連鏈路故障後,由於需要等待Max Age加上兩倍的Forward Delay時間,埠需要大約50秒才能恢復到轉發狀態。
實驗拓撲如上圖所示,PCA的IP地址為2.2.2.1/24,PCB的IP地址配置為2.2.2.2/24。
由於網路中存在環路,此時可以看到交換機的所有互聯埠以及連接主機的埠的指示燈均快速閃動,表示形成了廣播風暴。此時PCA 無法ping通PCB。
在SW1上通過命令stp mode配置生成樹協議的模式為RSTP,通過命令stp enable在交換機上使能生成樹協議。
SW2、SW3、SW4的配置和SW1相同。啟用生成樹協議後可以看到交換機各埠指示燈停止快速閃動,網路恢復正常。此時PCA可以ping通PCB。
通過命令display stp brief可以查看交換機各埠的STP狀態以及埠角色:
由上可以看出各交換機的根埠為連接SW3的埠,SW3不存在根埠,說明SW3即為網路中的根橋。
2中已知SW3為現根橋,我們可以通過以下命令指定根橋:
該配置將SW1設置為根橋,將SW2設置為備份根橋,我們也可以通過更改橋優先順序控制根橋的選舉,將SW3的優先順序修改為8192,SW2的優先順序修改為4096。
查看STP信息:
可以看到,SW2已成為新的根橋。
步驟3後,SW3的GigabitEthernet0/0/3埠為根埠,與根橋SW2互聯,埠優先順序默認為128,數值越大優先順序越小。
將SW2的埠GigabitEthernet0/0/3埠優先順序設置為32,GigabitEthernet0/0/6埠優先順序設置為16:
注意:此處是修改SW2的埠優先順序,而不是修改SW3的埠優先順序。
在SW3上查看埠角色:
SW3的GigabitEthernet0/0/6埠成為了根埠。
SW4的GigabitEthernet0/0/3為替代埠,SW1的GigabitEthernet0/0/3為指定埠,修改SW1埠GigabitEthernet0/0/2路徑開銷為2000000。
查看當前端口角色信息。
STP能夠提供無環網路,但是收斂速度較慢。如果STP網路的拓撲結構頻繁變化,網路也會隨之頻繁失去連通性,從而導致用戶通信頻繁中斷。快速生成樹協議RSTP使用了Proposal/Agreement機制保證鏈路及時協商,從而有效避免收斂計時器在生成樹收斂前超時。
RSTP的埠角色共有4種: 根埠、指定埠、Alternate埠和Backup埠。
Alternate埠:由於學習到其它網橋發送的更優配置BPDU報文而阻塞的埠;作為根埠的備份埠。
Backup埠:由於學習到自己發送的更優配置BPDU報文而阻塞的埠;作為指定埠的備份埠。
Discarding狀態 , 埠既不轉發用戶流量也不學習MAC地址。
Learning狀態 , 埠不轉發用戶流量但是學習MAC地址。
Forwarding狀態 , 埠既轉發用戶流量又學習MAC地址。
RSTP收斂遵循STP基本原理。網路初始化時,網路中所有的RSTP交換機都認為自己時「根橋」,並設置每個埠為指定埠,此時,埠為Discarding狀態。
每個認為自己是「根橋」 的交換機生成一個RST BPDU報文來協商指定網段的埠狀態,此RST BPDU報文的Flags欄位裡面的Proposal位需要置位。當一個埠收到RST BPDU報文時,此埠會比較收到的RST BPDU報文和本地的RST BPDU報文。如果本地的RST BPDU報文優於接收的RST BPDU報文,則埠會丟棄接收的RST BPDU報文,並發送Proposal置位的本地RST BPDU報文來回復對端設備。
當確認下游指定埠遷移到Discarding狀態後,設備發送RST BPDU報文回復上游交換機發送的Proposal消息。在此過程中,埠已經確認為根埠,因此RST BPDU報文Flags欄位裡面設置了Agreement標記位和根埠角色。
在P/A進程的最後階段,上游交換機收到Agreement置位的RST BPDU報文後,指定埠立即從Discarding狀態遷移為Forwarding狀態,然後,下游網段開始使用同樣的P/A進程協商埠角色。
首先,RSTP將網路拓撲的變化定義為埠角色的變化,因為網路拓撲的變化可以描述為某些網路埠在轉發/阻塞態之間的轉換,而RSTP將埠角色和埠狀態進行了明確的定義(這是RSTP比STP優勝的地方)。
其次,RSTP埠角色的變化直接影響埠狀態的變化。R-Port、D-Port、Edge Port處於Forwarding狀態;Alternated Port(以下簡稱A-Port)和Backup Port處於Discarding狀態。
若某條鏈路失效,即鏈路兩端的埠從轉發態變為阻塞態。從生成樹協議的目的來看,並不會使得網路形成環路。RSTP僅需要找到處於合適的阻塞態埠,並將其轉為轉發態,使拓撲重新連通起來。由於RSTP在計算時已經分配好R-Port的備份埠A-Port,因此若從轉發態變為阻塞態的是R-Port,則把對應的A-Port改為轉發態;同理,D-Port的則色也可置相應的Backup Port為轉發來實現。而Edge Port並不影響生成樹的計算,故忽略。這樣,當某個(些)埠狀態從轉發到阻塞,對於RSTP而言,無需重新計算(是不是有點熟悉,好像哪兒見過不用計算直接使用備用路徑的演算法。聰明的你一定想到了:DUAL)。
由於某條鏈路的連通有可能導致生成樹域成環。在RSTP里,該行為定義為D-Port從阻塞態轉化為轉發態,相對的檢查機制應的就是P/A機制,即從需要進入轉發態的D-Port,建議對端進行同步,待收到確認後進入轉發態。
對端Bridge在接收到「建議」消息後,一方面阻塞自身所有D-Port,並返回「同意」消息給「建議」消息發送方;另一方面,對自身埠進行同步。同步分兩種類型:若埠為E-Port,或者原來就是非轉發態,則為「已同步」;若埠原來為轉發態,為重新進入轉發態,將對對端進行「建議」並等待確認。
下面將結合圖例,演示P/A機制的流程:
1、B、E之間建立一條新鏈路,首先進行埠角色選擇;
2、B、E通過該鏈路交換BPDU,由於B埠發送的BPDU較優(superior),因此B埠角色為D-Port;與此同時,E從B收到的BPDU比從C收到的較優,因此E把連接B的埠轉換為Root Port,同時,連接C的埠轉換為A-Port。要注意的是,RSTP相對STP進行了根埠轉發的改進,一旦確定了舊的R-Port非轉發態,且新的R-Port已確定,則新的R-Port立即進入轉發態;
3、此刻B埠仍為Discarding狀態,並期望進入Forwarding狀態,因此它將從該D-Port發送「Proposal「置位的配置BPDU給E;E接收到該BPDU後,進入同步狀態:即將所有轉發態埠轉為丟棄,並檢查埠同步情況;
4、從同步原理可知,E中只有連接D的埠為轉發態,因此E繼續阻塞該埠,並向B返回」同意「置位的BPDU。自此,B-E鏈路進入已完成同步,立即進行流量轉發;而由於D連接E的埠為A-Port,不轉發BPDU,因此E發出的」Proposal「置位BPDU將不會被」Agreement「置位的BPDU回應。該埠將一直保持阻塞態。
實驗拓撲如上圖所示,交換機各埠均屬於VLAN1,PCA的IP地址為2.2.2.1/24,PCB的IP地址配置為2.2.2.2/24。
測試SW2和SW3的連通性:
查看SW2的埠角色
SW2的GigabitEthernet0/0/3為根埠,用ping測試S1到S2的連通性20次。
提示:SW2執行ping操作之後立刻關閉SW3的GigabitEthernet0/0/3介面。
查看SW2的埠角色
SW2的GigabitEthernet0/0/6 成為根埠,埠進入FORWARDING狀態,1個包超時。
在SW1上通過命令stp mode配置生成樹協議的模式為RSTP,通過命令stp enable在交換機上使能生成樹協議。
SW2、SW3、SW4的配置和SW1相同。
配置SW2為STP生成樹,其他配置保持不變。
查看SW2埠角色信息
SW2的GigabitEthernet0/0/3為根埠,用ping測試S1到S2的連通性30次。
提示:SW2執行ping操作之後立刻關閉SW3的GigabitEthernet0/0/3介面。
查看SW2埠信息
SW2的GigabitEthernet0/0/6 成為根埠,埠進入FORWARDING狀態,16個包超時。
RSTP兼容STP,但收斂方式以STP模式運行。
不管是STP還是RSTP,在網路中進行生成樹計算的時候都沒有考慮到VLAN的情況。它們都是對單一生成樹實例進行應用的。也就是說,在STP和RSTP中所有的VLAN都共享相同的生成樹。
為了解決這一個問題,思科提出了第二代生成樹 - PVST、PVST+。按照PVST協議規定,每一個VLAN都有一個生成樹,而且是每隔2秒就會發送一個BPDU,這對於一個有著上千萬個VLAN網路來說,一方面這么多生成樹維護起來比較困難,另一方面,為每個VLAN每隔2秒就發送一個BPDU,交換機也是難以承受的。
為了解決PVST帶來的困難,思科又提出了第三代生成樹 - MST(MSTP)多生成樹協議。MSTP可以對網路中眾多的VLAN進行分組,把VLAN分到組里。這里的組就是後面講的MST實例(Instance)。每個實例一個生成樹,BPDU只對實例進行發送。這樣就達到了負載均衡。
多生成樹協議MSTP(Multiple Spanning Tree Protocol)是IEEE 802.1s中定義的一種新型生成樹協議。簡單說來,STP/RSTP是基於埠的,PVST+是基於VLAN的,而MSTP是基於實例的。與STP/RSTP和PVST+相比,MSTP中引入了「實例」(Instance)和「域」(Region) 「的概念。
所謂「實例」就是多個VLAN的一個集合,這種通過多個VLAN捆綁到一個實例中去的方法可以節省通信開銷和資源佔用率。MSTP各個實例拓撲的計算是獨立的,在這些實例上就可以實現負載均衡。使用的時候,可以把多個相同拓撲結構的VLAN映射到某一個實例中,這些VLAN在埠上的轉發狀態將取決於對應實例在MSTP里的轉發狀態。
所謂「域」,即MST域(MST Region),由域名(Configuration Name)、修訂級別(Revision Level)、格式選擇器(Configuration Identifier Format Selector)、VLAN與實例的映射關系(mapping of VIDs to spanning trees),其中域名、格式選擇器和修訂級別在BPDU報文中都有相關欄位,而VLAN與實例的映射關系在BPDU報文中表現摘要信息(Configuration Digest),該摘要是根據映射關系計算得到的一個16位元組簽名。只有上述四者都一樣且相互連接的交換機才認為在同一個域內。如上圖所示,每個域內所有交換機都有相同的MST域配置(具有相同的域名;具有相同的VLAN到生成樹實例映射配置;具有相同的MSTP修訂級別配置)。預設時,域名就是交換機的橋MAC地址,修訂級別等於0,格式選擇器等於0,所有的VLAN都映射到實例0上。
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提供的連通性。如上圖所示,如果把每個MST域看作是一個「交換機」,CST就是這些「交換機」通過STP/RSTP或者MSTP協議計算生成的一棵生成樹。IST是CIST在MST域內的片段,是一個特殊的多生成樹實例。
與STP和RSTP相比,MSTP中引入了總根和域根的概念。總根是一個全局概念,對於所有互連的運行STP/RSTP/MSTP的交換機只能有一個總根,也即是CIST的根;而域根是一個局部概念,是相對於某個域的某個實例而言的。上圖所示,所有相連的設備,總根只有一個,而每個域所包含的域根數目與實例個數相關。
與STP和RSTP相比,MSTP中引入了外部路徑開銷和內部路徑開銷的概念。外部路徑開銷是相對於CIST而言的,同一個域內外部路徑開銷是相同的;內部路徑開銷是域內相對於某個實例而言的,同一埠對於不同實例對應不同的內部路徑開銷。
與STP和RSTP相比,MSTP中引入了域邊緣埠和Master埠的概念。域邊緣埠是連接不同MST域、MST域和運行STP的區域、MST域和運行RSTP的區域的埠,位於MST域的邊緣;在某個不包含總根的域中,Master埠是所有邊界埠中,到達總根具有最小開銷的埠,也就是連接MST域到總根的埠,位於整個域到總根的最短路徑上;Alternate埠是Master埠的備份埠,如果Master埠被阻塞後,Alternate埠將成為新的Master埠。
MSTP協議在計算生成樹時使用的演算法和原理與STP/RSTP大同小異,只是因為在MSTP中引入了域和內部路徑開銷等參數,故MSTP中的優先順序向量是7維,而STP/RSTP是5維。
STP/RSTP中的優先順序向量是:
{根橋標識符,根路徑開銷,橋標識符, 發送BPDU報文埠標識符, 接收BPDU報文埠標識符}
MSTP中的優先順序向量是:
{CIST根橋標識符,CIST外部根路徑開銷,CIST域根標識符,CIST內部根路徑開銷,CIST指定橋標識符,CIST指定埠標識符,CIST接收埠標識符}
其中STP/RSTP中的橋標識符實際上是發送BPDU的設備的標識符,與MSTP中的CIST指定橋標識符對應。MSTP中的CIST域根標識符有兩種情況,一種是總根所在域內,BPDU報文中該欄位是參考總根的標識符,另一種情況是不包含總根的域中,BPDU報文該欄位是參考主設備的標識符。運行MSTP的實體初始化時認為自己是總根、域根,通過交互配置消息,按照上面介紹的7維向量計算CIST生成樹和MSTI。
網路中的設備發送接受BPDU報文,在經過比較配置消息後,在整個網路中選擇一個優先順序最高的交換機作為CIST的樹根。在每個MST域內MSTP通過計算生成IST;同時MSTP將每個MST域作為單台交換機對待,通過計算在MST域間生成CST。如前所述,CST和IST構成了整個交換機網路的CIST。
在MST域內,MSTP根據VLAN和生成樹實例的映射關系,針對不同的VLAN生成不同的生成樹實例。每棵生成樹獨立進行計算,計算過程與STP/RSTP計算生成樹的過程類似。
MSTI的特點:
MSTP拓撲變化處理與RSTP拓撲變化處理過程類似。
在RSTP中檢測拓撲是否發生變化只有一個標准:一個非邊緣埠遷移到Forwarding狀態。
如此,網路中就會產生RST BPDU的泛洪。
定義VLAN1-10屬於INSTANCE 1,VLAN11-20屬於INSTANCE 2。
配置SW2在實例1中的優先順序為4096, 在實例2中的優先順序為8192。
配置SW3在實例2中的優先順序為4096,在實例1中的優先順序為8192。
查看實例1和實例2的狀態
SW2為實例1的根橋,SW3為實例2的根橋。
查看MSTP實例1的埠角色
實例1中SW2為根網橋,SW1的VLAN 1到VLAN10的用戶經過GigabitEthernet0/0/1 介面和SW2、 SW3、 SW4的VLAN 1到VLAN10的用戶通訊。
⑦ BPDU報文攻擊的原理是什麼
要知道BPDU報文攻擊的原理,那就要知道BPDU的具體功能,BPDU(Bridge Protocol Data Unit)是在網橋連接中,為了避免產生迴路,而使用的,具體的協議是Spanning-Tree,就是生成樹協議。在多個網橋(交換機也是網橋的一種)互聯時,當一台網橋接入網路、撤出網路(可能因為損壞或斷電)時,生成樹需要重新計算、重新生成,而在重新生成的過程中,整個網路時不轉發數據的,按照最基本的的要求,這個時間可能長達40秒,也就是說這段時間內網路是癱瘓的,當然各個廠家對此都有一定的改進,時間會縮短,起碼正常工作的部分受影響會大大減小。
BPDU報文攻擊時會發送BPDU報文,通知網路內的交換機,生成樹發生變化,需要重新計算,這樣就會造成網路暫時中斷,如果這種現象出現很頻繁,那麼整個網路也就不可用了。
有關詳細知識,去查看以下Spanning-Tree的工作原理。我這里有一份我整理的PPT文檔,如果需要,可以發給你。
⑧ 生成樹發送報文格式有哪二種
BPDU報文有2種類型
一種是配置BPDU,用於生成樹計算,是由每個交換機發出的。
一種是拓撲變更通告BPDU,用於通告網路拓撲的變化,是由根網橋發出的,用於激活block(阻塞)埠。
⑨ BPDU失效,在報文格式中有什麼特徵
BPDU是運行STP的交換機之間交換的訊息幀。BPDU內包含了STP所需的路徑和優先權信息,STP便利用這些信息來確定根橋以及到根橋的路徑。
網橋協定數據單元(Bridge Protocol Data Unit)。是一種生成樹協定問候數據包,它可以配置的間隔發出,用來在網路的網橋間進行信息交換。
當一個網橋開始變為活動時,它的每個連線埠都是每2s(使用預設定時值時)傳送一個BPDU。然而,如果一個連線埠收到另外一個網橋傳送過來的BPDU,而這個BPDU比它正在傳送的BPDU更優,則本地連線埠會停止傳送BPDU。如果在一段時間(預設為20s)後它不再接收到鄰居的更優的BPDU,則本地連線埠會再次傳送BPDU。
主要欄位
協定ID:該值總為0。
版本號:STP的版本(為IEEE 802.1d時值為0)。
報文類型:BPDU類型(配置BPDU=0,TCN BPDU=80)。
標記域:LSB(最低有效位)=TCN標志;MSB(最高有效位)=TCA標志。
根網橋ID:根信息由2位元組優先權和6位元組ID組成。這個信息組合標明已經被選定為根網橋的設備標識。
根路徑成本:路徑成本為到達根網橋交換機的STP開銷。表明這個BPDU從根網橋傳輸了多遠,成本是多少。這個欄位的值用來決定哪些連線埠將進行轉發,哪些連線埠將被阻斷。
傳送網路橋ID:傳送該BPDU的網橋信息。由網橋的優先權和網橋ID組成。
連線埠ID:傳送該BPDU的網橋連線埠ID。
計時器:計時器用於說明生成樹用多長時間完成它的每項功能。這些功能包括報文老化時間、最大老化時間、訪問時間和轉發延遲。
最大老化時間:網橋將將根橋看做不可用前保留根ID的最大時間。
訪問時間:根網橋連續傳送BPDU的時間間隔。
轉發延遲:網橋在監聽學習狀態所停留的時間。
⑩ 非網管交換機會發出bp報文嗎
非網管交換機不能發出bp報文。bp報文是通過交換機互聯鏈路進行發送的,BPDU報文是通過乙太網幀進行傳送地。這是需要網管交換機實現的,非網管交換機不可以。
交換機網管和非網管區別:1、功能不同。網管型交換機比非網管型交換機的功能更強大。它通常為監視連接狀態STP、其它類似QOS的高級性能以及VLAN等提供簡單網路管理協議,這些特徵隨廠商和模式的不同而不同。2、價格不同。網管型交換機比非網管型交換機貴很多,配置起來也比非網管型交換機耗時要多。3、優點不同。非網管型交換機優點是價格便宜,節省開支、埠數量密、用戶使用靈活。網管交換機支持配置,它可以通過配置更改來實現對網路的控制,如優先順序、流量控制和ACL等,而非網管交換機是不支持更改配置的,因此它的功能沒有網管交換機的豐富。不僅如此網管交換機還具備背板帶寬大、數據吐吞量大、包丟失率小、延遲低以及組網靈活等優點,不過也正是因為網管交換機的功能豐富,它的成本價格相對於非網管交換機來說較高。