Network-Protocols

生成樹協議:如何選擇埠指定或不指定?

  • January 30, 2022

我現在已經閱讀了很多關於 STP 的內容。也許還不夠,但要獲得詳細資訊開始變得困難。

我已經了解所有網橋如何選擇其根埠的機制。在交換了足夠多的包含潛在根網橋資訊的 BPDU 之後,關於真正根網橋的資訊將滲透到網路中,為每個網橋提供到根網橋的路徑成本資訊。然後,每個網橋都會將其根埠設置為路徑成本最低的埠。但僅此一項並不能防止循環。在所有其他埠中,網橋必須將一些設置為指定角色,一些設置為非指定角色。後者將保持阻塞,而指定的最終將切換到轉發模式。

我不明白,如何區分指定埠和非指定埠。在我看來,必須有一些關於不同方向的資訊。假設網橋 A 離根網橋很遠,而網橋 B 是 A 的對等點。在某些時候網橋 A 必須告訴網橋 B:“嘿,我的根埠現在指向你,所以你必須創建對端埠你的一個指定的。”

但我沒有找到任何參考資料,據我所知,BPDU 中沒有關於此問題的資訊。但是必須有一個機制,但我還看不到它。

編輯

為了更簡潔:在一個網段上,可以連接許多網橋的許多埠。每個連接到該網段的網橋可能有 0 個或 1 個埠一個根埠。並且只要一個根埠連接到該網段,就必須將另一個網橋的一個埠轉換為指定埠。我很明白這一點,但我覺得我必須把它寫得更清楚。

我的問題仍然是:如何確定該段上的哪個埠將變成指定埠?STP 算法的哪一部分做出這個決定以及如何做出決定?

編輯

在此處輸入圖像描述

我添加了一張範例圖片以使問題再次可見。假設有一個段,其中上半部分的兩個交換機 A 和 G 在其指向上的埠上各自具有最小路徑成本。因此,它們與被檢查段的介面只能指定或不指定。我們有一個或多個其他交換機,它們在他們選擇作為根埠的網路上有一個埠。

我知道下面的交換機包括 B 發送的 BPDU 清楚地表明,至少有一個根埠連接到該網段。這清楚地表明,需要一個指定埠來滿足 B 的根埠和其他具有連通性的埠。但是,由於 BPDU 是多播的,因此不存在“鏈路夥伴”之類的東西。A 和 G 如何知道哪個埠必須指定或不指定埠?

本質上,當埠是另一側的根埠(對於 STP 網橋)或邊緣埠(端節點,無 STP 網橋)時,它會被指定。

802.1Q 第 13.4 條說

根埠的埠角色 (13.12) 分配給每個網橋上的一個埠,該埠提供到根網橋的最低成本路徑,指定埠的埠角色分配給一個網橋埠,該埠提供從連接的最低成本路徑LAN 到根橋

$$ edit $$雖然現在所有埠都使用全雙工模式(半雙工模式僅存在最高 100 Mbit/s),但您正在詢問共享媒體連結。嗯,這就是埠的點對點狀態發揮作用的地方。全雙工鏈路被認為是點對點的(參見 802.1Q 第 13.4 條),我的簡化語句根埠或另一側的邊緣節點適用。 共享媒體連結使用上述 IEEE 802.1Q 引用中更通用的規則:如果該衝突域上的任何 STP 網橋選擇有問題的埠作為其根路徑,則指定本地埠。請注意,同一網段上的其他 STP 網橋要麼選擇同一個網橋來提供其根路徑,要麼使用另一個成本較低的埠通向網橋。

引用自:https://serverfault.com/questions/1091598