在局域網 中,交 換設備間借助于生成樹協議(Spanning-Tree Protocol,STP) 來 這 完成動態(tài)修剪,從而形成統一的樹形結構,避免同一VLAN下數據鏈路層環(huán)路的存在,其標準為IEEE802.1D。
路徑開銷Cost、端口ID、端口編號是決定非根交換機指定端口和阻塞端口的判定條件。
CISCO交換機的端口優(yōu)先級是以“Prio.Nbr”的格式表示的,其中Prio為端口 ID,數 值 在 <0,240> 之間,默認為128,且必須是16的倍數;Nbr為端口編號,從1開始由FastEthernet端口按順序編號到GigabitEthernet端口。
圖1 網絡結構拓撲圖
在生成樹收斂過程中,以上參數的比較順序是Cost、Prio 和Nbr,數值越小成為轉發(fā)端口的優(yōu)先級越高。下面通過幾個實驗說明非根交換機的阻塞端口與它自身的優(yōu)先級無關。
所有條件均為默認相同,拓撲圖如圖1所示。圖1中連接端口均為千兆端口,所以各鏈路Cost值相同。不新建VLAN,都在VLAN 1中進行討論。
通過命令show spanning-tree vlan 1可查看到兩臺交換機的Priority值均為默認 32769(32768加上VLAN號 1)。
通過命令show version可查看到S1的MAC地址為0002.17B5.915D比較小,優(yōu)先級較高;S2的MAC地址為0050.0FC2.DD84比較大,優(yōu)先級比較低,所以S1被選舉為根交換機。
通過命令show spanning-tree vlan 1可查看到S2端口Gig0/1的Prio.Nbr的值為128.25(1-24是百兆端口), 端口Gig0/2的Prio.Nbr的值為128.26。
根據判定條件,Cost相同,端口ID相同,端口編號較大者Gig0/2應該是被阻塞的端口。
通過命令show spanning-tree interface G0/2可以查看到該端口狀態(tài)為BLK(阻塞)狀態(tài)。確實為阻塞狀態(tài),這時判定和實際是一樣的,這與各教科書的描述也一致。
然而,這只是一種巧合,事實并非如此!請繼續(xù)看下面的實驗。
圖2 網絡結構拓撲圖
同實驗一,只是把端口反接,也就是把S1的Gig0/1對 應 S2的Gig0/2,S1的Gig0/2對應S2的Gig0/1,如圖2所示。
對于交換機S2來說,各端口ID同實驗一中沒有變化,阻塞端口也應該是G0/2,然而通過命令show spanning-tree interface Gig0/2查看到的狀態(tài)為FWD,而 Gig0/1的 狀 態(tài) 為BLK。
這說明非根交換機端口優(yōu)先級比較高的反而被阻塞。
拓撲圖如圖1,手工修改S2的端口優(yōu)先級,使Gig0/1的Prio值大于 Gig0/2的Prio值,也就是讓Gig0/1的優(yōu)先級變低。命令如下:
修改端口Gig0/1的Prio值為最大值240,優(yōu)先級最低,應該被阻塞。生成樹收斂結束后,通過命令發(fā)現阻塞端口仍然是Gig0/2,并沒有發(fā)生變化。
這說明非根交換機各端口的Prio.Nbr值并不影響端口的阻塞屬性。
拓撲圖如圖1,手工修改S1的端口ID值,使Gig0/1的Prio值大于 Gig0/2的Prio值,也就是讓Gig0/1的優(yōu)先級變低,命令如下:
修改端口Gig0/1的Prio值為最大值240,生成樹收斂完成后,通過命令發(fā)現阻塞端口發(fā)生了變化,S2的Gig0/1成為了阻塞端口。
以上實驗說明,非根交換機S2的端口是否被阻塞,不是由S2自身的端口優(yōu)先級來決定,而是由對端根交換機的對應端口的優(yōu)先級來決定。