網(wǎng)絡(luò)拓撲如圖1所示。在該網(wǎng)絡(luò)中,誰將被選舉為VLAN1對應(yīng)生成樹的根網(wǎng)橋呢?由拓撲圖中標注的數(shù)據(jù)可知,Switch1和Switch3的優(yōu)先級相同,都是默認值32768,Switch2的優(yōu)先級48452大于32768。而Switch3的MAC地址比Switch1的MAC地址小,所以根橋應(yīng)該是Switch3。下面我們通過對網(wǎng)橋優(yōu)先級的進一步理解,說明事實并非如此!
圖1 網(wǎng)絡(luò)拓撲圖
表1 BID的構(gòu)成
根橋的選舉就是在運行STP協(xié)議的交換機中相對某個VLAN選舉出一個唯一的根橋。根橋的選舉依據(jù)是網(wǎng)橋協(xié)議數(shù)據(jù)單元報文中BID(Bridge ID)字段值。BID字段有8個字節(jié)共64位,如表1所示。
系統(tǒng)ID擴展即VLAN ID,用以區(qū)別不同VLAN的生成樹。橋優(yōu)先級和系統(tǒng)ID擴展是一起計算的,橋ID為高4位,系統(tǒng)ID擴展為低12位,組合成一個16位2字節(jié)的數(shù)據(jù)。為不引起混淆而有所區(qū)分,本文對其命名為“組合優(yōu)先級”,用大寫字母P表示,橋優(yōu)先級用小寫字母p表示。
由于同一顆生成樹對應(yīng)同一個VLAN,所以在一顆生成樹中選舉根網(wǎng)橋時不用考慮VLAN ID,可只比較橋優(yōu)先級p和MAC。在進行BID比較時,從左到右按橋優(yōu)先級p(或組合優(yōu)先級P)和MAC地址逐級比較,數(shù)值越小,被選舉為根橋的優(yōu)先級越高。
表2 BID中各數(shù)值的取值范圍
對于VLAN 1的生成樹,VLAN ID都是1,即0000 0000 0001B。橋優(yōu)先級p為16位二進制數(shù)(不是4位),低12位為全0,高4位從0000B到 1111B,其 范 圍 為0000 0000 0000 0000B到1111 0000 0000 0000B,即 0到61440。BID中各數(shù)值的取值范圍如表2所示。
由表2看出,組合優(yōu)先級最小值是0000 0000 0000 0001B=1D,最 大 值 是1111 0000 0000 0001B=61441D,形成等差數(shù)列,其公差為4096。從組合優(yōu)先級P中減去VLAN ID,其數(shù)值為0,4096,……,61440,也形成等差數(shù)列,公差為4096,即都是4096的倍數(shù)。由表2得:
組合優(yōu)先級P=橋優(yōu) 先 級(xxxx 0000 0000 0000B)+VLAN ID(0000 0000 0001B),即 :P=p+v=k*4096+v,其 中0≤k≤15且k∈N,v為VLAN ID。
對于不同顆的生成樹,VLAN ID從 0000 0000 0001B到 1111 1111 1110B,即從 1到 4094 (VLAN 0和VLAN 4095用作協(xié)議保留),最多支持4094顆生成樹。組合優(yōu)先級P的范圍從0000 0000 0000 0001B到1111 1111 1111 1110B,即從 1到65534。
為什么橋優(yōu)先級的默認值取為32768而不是別的數(shù)據(jù)呢?因為32768對應(yīng)的1000B剛好是在0000B到1111B最中間的2個數(shù)0111B和1000B中的1000B。
如果圖1中標注的“網(wǎng)橋優(yōu)先級”是指純橋優(yōu)先級p,則 Switch2的 48452不是4096的倍數(shù),不能做為橋優(yōu)先級。如果圖1中標注的“網(wǎng)橋優(yōu)先級”是指16位的組合優(yōu)先級P,則根據(jù)P=k*4096+v知:
48452=k*4096+v,0≤ k≤ 15且 k∈ N,即48452=11*4096+3396
說明橋優(yōu)先級p=11*4096=45056,VLAN ID=3396,這是 針對VLAN 3396的一顆生成樹。這時,對于Switch1和Switch3的32768來說,方程:32768=k*4096+3396
應(yīng)該有在區(qū)間[0,15]上的整數(shù)解,然而它沒有。所以無論把32768和48452理解成橋優(yōu)先級p或者組合優(yōu)先級P,都是矛盾的。
對于VLAN 1的生成樹,配置Switch2的優(yōu)先級為48452的命令為:Switch2(config)#spanning-tree vlan 1 priority 48452
回車后出現(xiàn)如下提示:%Bridge Priority must be in increments of 4096.
% Allowed values are:0 4096 …… 61440
提示中說,橋優(yōu)先級必須設(shè)置成4096的倍數(shù),比如0,4096,……,61440。 雖 然 手工設(shè)置了priority 48452,但該命令的操作并沒有成功,Switch2的優(yōu)先級仍然還是默認的32768,并沒有因為該命令的執(zhí)行而將其優(yōu)先級更改為48452!
通過命令:
Switch 2#show spanning-tree vlan 1
得到的結(jié)果是:
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0010.0000.0000
這進一步說明其組合優(yōu)先級P是32769,橋優(yōu)先級p還是32768。
結(jié)果是,三臺交換機的優(yōu)先級還是一樣的,都是默認的32768。根橋是誰就只能由MAC地址值來判斷了,經(jīng)過比較,根橋是MAC地址最小的Switch2。
所以說,網(wǎng)橋優(yōu)先級必須是4096的倍數(shù),Switch2標注的48452不是4096的倍數(shù),所以不能設(shè)置其為網(wǎng)橋的優(yōu)先級。