2021年9月15日 星期三

BPDU - When Windows Ethernet and WiFi are configured in "Bridge" mode.

Source https://www.itsfun.com.tw/BPDU/wiki-8372865-1834445

BPDU

BPDU是運行STP的交換機之間交換的訊息幀。BPDU內包含了STP所需的路徑和優先權信息,STP便利用這些信息來確定根橋以及到根橋的路徑。

  • 中文名稱
    BPDU
  • 版本號
    STP的版本(為IEEE 802.1d時值為0
  • 協定ID
    該值總為0。
  • 報文類型
    BPDU類型

概念

網橋協定資料單元(Bridge Protocol Data Unit)。是一種生成樹協定問候封包,它以可配置的間隔發出,用來在網路的網橋間進行信息交換。

當一個網橋開始變為活動時,它的每個連線埠都是每2s(使用缺省定時值時)傳送一個BPDU。然而,如果一個連線埠收到另外一個網橋傳送過來的BPDU,而這個BPDU比它正在傳送的BPDU更優,則在地連線埠會停止傳送BPDU。如果在一段時間(缺省為20s)後它不再接收到鄰居的更優的BPDU,則在地連線埠會再次傳送BPDU。

BPDU是網橋協定資料單元(Bridge Protocol Data Unit)的英文首字母縮寫。

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。

計時器:計時器用于說明生成樹用多長時間完成它的每項功能。這些功能包括報文老化時間、最大老化時間、訪問時間和轉發延遲。

最大老化時間:根網橋傳送BPDU後的秒數,每經過一個網橋都會增加1,所以它的本質是到達根網橋的跳計數。

訪問時間:根網橋連續傳送BPDU的時間間隔。

轉發延遲:網橋在監聽學習狀態所停留的時間。

網橋的三種典型方式

BPDU究竟是如何工作的呢?

這得從網橋說起。網橋有三種典型的方式:透明橋、源路由橋與源路由透明橋。

網橋典型地連線兩個用同樣介質存取控製方法的網段,IEEE 802.1d規範(此規範是為所有的802介質存取方法開發的)定義了透明橋。源路由橋是由IBM公司為它的令牌環網路開發的;而源路由透明橋則是透明橋和源路由橋的組合。橋兩邊的網段分屬于不同的沖突域,但卻屬于同一個廣播域

路徑連線原理

在一個橋接的區域網路裏,為了增強可靠性,必然要建立一個冗餘的路徑,網段會用冗餘的網橋連線。但是,在一個透明橋橋接的網路裏,存在冗餘的路徑就能建立一個橋回路,橋回路對于一個區域網路是致命的。

生成樹協定是一種橋嵌套協定,在IEEE 802.1d規範裏定義,可以用來消除橋回路。它的工作原理是這樣的:生成樹協定定義了一個封包,叫做橋協定資料單元BPDU(Bridge Protocol Data Unit)。網橋用BPDU來相互通信,並用BPDU的相關機能來動態選擇根橋和備份橋。但是因為從中心橋到任何網段隻有一個路徑存在,所以橋回路被消除。

在一個生成樹環境裏,橋不會立即開始轉發功能,它們必須首先選擇一個橋為根橋,然後建立一個指定路徑。在一個網路裏邊擁有最低橋ID的將變成一個根橋,全部的生成樹網路裏面隻有一個根橋。根橋的主要職責是定期傳送配置信息,然後這種配置信息將會被所有的指定橋傳送。這在生成樹網路裏面是一種機製,一旦網路結構發生變化,網路狀態將會重新配置。

當選定根橋之後,在轉發封包之前,它們必須決定每一個網段的指定橋,運用生成樹的這種演算法,根橋每隔2秒鍾從它所有的連線埠傳送BPDU包,BPDU包被所有的橋從它們的根連線埠復製過來,根連線埠是接根橋的那些橋連線埠。BPDU包括的信息叫做連線埠的COST,網路管理員分配連線埠的COST到所有的橋連線埠,當根橋傳送BPDU的時候,根橋設定它的連線埠值為零。然後沿著這條路徑,下一個橋增加它的配置連線埠COST為一個值,這個值是它接收和轉發封包到下一個網段的值。這樣每一個橋都增加它的連線埠的COST值為它所接收的BPDU的包的COST值,所有的橋都檢測它們的連線埠的COST值,擁有最低連線埠的COST值的橋就變為了指定的橋。擁有比較高連線埠COST值的橋置它的連線埠進入阻塞狀態,變為了備份橋。在阻塞狀態,一個橋停止了轉發,但是它會繼續接收和處理BPDU封包


Source http://smalleaf.blogspot.com/2011/10/switch-bpdu-guard.html

防止私接Switch的利器 - BPDU GUARD

今天客戶問我一個問題:

為什麼設定了Spanning-tree portfast還有spanning-tree bpduguard enable那個port不能接switch!?

回答這個問題之前,有三個名詞要先了解:
1.spanning-tree: 中文好像翻成生成樹,管它什麼翻譯,這個東西是Switch上的設定,設定上去後,Switch與Switch之間會相互溝通,避免網路迴圈(loop)狀況產生,缺點是剛接上switch的設備會需要30~50秒的時間…溝通…之後網路才會通。

2.portfast: 這是spanning-tree的進階設定,目的就是當確定網路port所連接的設備確定是終端設備,如印表機、PC、Server等時,不需要switch之間的spanning-tree那30~50秒的溝通,可以利用portfast跳過這個溝通時間。

3.BPDU:全面為bridge protocol data unit,為switch之間spanning-tree溝通的協定資料,只要有spanning-tree的環境就會有BPDU存在。

了解這三個名詞之後,再來看spanning-tree的進階設定"BPDUGUARD",我們知道bpdu是switch之間溝通spanning-tree的協定資料,那來防止bpdu的bpduguard就是防止switch之間溝通spanning-tree的保彪,問題是…為什麼要禁止spanning-tree呀??這不是防止loop發生的好機制嗎??

原因是spanning-tree是cisco switch預設的功能,只要開機就有啦!!所以只要把一台switch接到另一個swich就會發生spanning-tree的溝通。這時....BPDU GUARD的功就用產生了,可以用來避免人把swich接到自已的網路環境,因為只要一接上就會有bpdu協定資料出現,這時bpdu guard就會將該port error disable,來避免有人私接swich進網路環境。

聰明的您應該有發現,這有個前提,整個bpdu guard的保護只能保護會發送bpdu的switch,如果對方把spanning-tree關掉,或是非cisco swich,這個安全機制就破功啦@@

雖然如此,這還是一個很好的功能,比如說某天自已忘了,接了一台swich上去,更動了原本的STP架構,這不就糗了!!透過BPDU GUARD就是在避免STP被更動的危險狀況!!

最後…回到原將問題:
為什麼設定了Spanning-tree portfast還有spanning-tree bpduguard enable那個port不能接switch!?


因為spanning-tree bpduguard enable之後,會開啟spanning-tree的bpdu防護機制,避免swich之間有spanning-tree的溝通資料(bpdu),或者說,避免有人私接switch進來,因為當對方一接進來,該port會偵測到bpdu資料,此時已啟用bpdu guard的switch會自動將該port Error Disable。所以更正確一點的說法是,不能接會發送bpdu的switch進來,如果非cisco swich或是已關掉spanning-tree的swich還是可以接進來的。


Source https://a46087.pixnet.net/blog/post/32217254

======================================================================

網孔底

Hub

NB / Win10 /

WiFi/Ethernet network bridge by following https://superuser.com/questions/1319833/use-wifi-and-ethernet-simultaneously-on-windows-10

PC / Linux / Ethernet


WNC MIS : 網孔底下的設備串到loop or 私接的switch被偵測到導致網孔被鎖住。WNC MIS : 網孔偵測到BPDU這種封包就會被鎖住

沒有留言: