引言
在一個(gè)橋接的局域網(wǎng)里,為了增強(qiáng)可靠性,,必然要建立一個(gè)冗余的路徑,,網(wǎng)段會(huì)用冗余的網(wǎng)橋連接,。但是,在一個(gè)透明橋橋接的網(wǎng)絡(luò)里,,存在冗余的路徑就能建立一個(gè)橋回路,,橋回路對(duì)于一個(gè)局域網(wǎng)是致命的。它會(huì)帶來(lái)如下問(wèn)題:
A.廣播風(fēng)暴
B.同一幀的多份拷貝
C.不穩(wěn)定的MAC地址表
因此,,在交換網(wǎng)絡(luò)中必須有一個(gè)機(jī)制來(lái)阻止回路,。
1 生成樹(shù)協(xié)議
生成樹(shù)協(xié)議就是IT界中常用的機(jī)制。生成樹(shù)協(xié)議是一種橋嵌套協(xié)議,,在IEEE802.1d規(guī)范里定義,,可以用來(lái)消除橋回路。它的工作原理是這樣的:生成樹(shù)協(xié)議定義了一個(gè)數(shù)據(jù)包,,叫做橋協(xié)議數(shù)據(jù)單元BPDU(Bridge Protocol Data Unit),。網(wǎng)橋用BPDU來(lái)相互通信,并用BPDU的相關(guān)機(jī)能來(lái)動(dòng)態(tài)選擇根橋和備份橋,。但是因?yàn)閺闹行臉虻饺魏尉W(wǎng)段只有一個(gè)路徑存在,,所以橋回路被消除。 在一個(gè)生成樹(shù)環(huán)境里,,橋不會(huì)立即開(kāi)始轉(zhuǎn)發(fā)功能,,它們必須首先選擇一個(gè)橋?yàn)楦鶚颍缓蠼⒁粋€(gè)指定路徑,。在一個(gè)網(wǎng)絡(luò)里邊擁有最低橋ID的將變成一個(gè)根橋,,全部的生成樹(shù)網(wǎng)絡(luò)里面只有一個(gè)根橋。根橋的主要職責(zé)是定期發(fā)送配置信息,,然后這種配置信息將會(huì)被所有的指定橋發(fā)送,。這在生成樹(shù)網(wǎng)絡(luò)里面是一種機(jī)制,一旦網(wǎng)絡(luò)結(jié)構(gòu)發(fā)生變化,網(wǎng)絡(luò)狀態(tài)將會(huì)重新配置,。
當(dāng)選定根橋之后,,在轉(zhuǎn)發(fā)數(shù)據(jù)包之前,它們必須決定每一個(gè)網(wǎng)段的指定橋,,運(yùn)用生成樹(shù)的這種算法,,根橋每隔2秒鐘從它所有的端口發(fā)送BPDU包,BPDU包被所有的橋從它們的根端口復(fù)制過(guò)來(lái),,根端口是接根橋的那些橋端口,。BPDU包括的信息叫做端口的COST,網(wǎng)絡(luò)管理員分配端口的COST到所有的橋端口,,當(dāng)根橋發(fā)送BPDU的時(shí)候,,根橋設(shè)置它的端口值為零。然后沿著這條路徑,,下一個(gè)橋增加它的配置端口COST為一個(gè)值,,這個(gè)值是它接收和轉(zhuǎn)發(fā)數(shù)據(jù)包到下一個(gè)網(wǎng)段的值。這樣每一個(gè)橋都增加它的端口的COST值為它所接收的BPDU的包的COST值,,所有的橋都檢測(cè)它們的端口的COST值,,擁有最低端口的COST值的橋就變?yōu)榱酥付ǖ臉颉碛斜容^高端口COST值的橋置它的端口進(jìn)入阻塞狀態(tài),,變?yōu)榱藗浞輼?。在阻塞狀態(tài),一個(gè)橋停止了轉(zhuǎn)發(fā),,但是它會(huì)繼續(xù)接收和處理BPDU數(shù)據(jù)包,。
IEEE 802.1D規(guī)范包括了生成樹(shù)算法(Spanning Tree Algorithm,STA),,這是一種確保轉(zhuǎn)發(fā)循環(huán)永遠(yuǎn)不會(huì)發(fā)生的機(jī)制,。 STA使用網(wǎng)橋協(xié)議數(shù)據(jù)單元(Bridge Protocol Data Units,BPDU),,自動(dòng)配置網(wǎng)橋上處于轉(zhuǎn)發(fā)或阻塞狀態(tài)的獨(dú)立端口,。BPDU是網(wǎng)橋發(fā)送到一個(gè)已保存的多播MAC地址(對(duì)于以太網(wǎng),這個(gè)地址是01-80-C2-00-00-00)的消息,,所有透明網(wǎng)橋都會(huì)偵聽(tīng)該地址,。在阻塞狀態(tài)下,端口不會(huì)獲悉或轉(zhuǎn)發(fā)已接收到的幀,。STA的最終結(jié)果是一個(gè)無(wú)循環(huán)的橋接環(huán)境,,不管局域網(wǎng)網(wǎng)段拓?fù)浣Y(jié)構(gòu)是否改變,這個(gè)環(huán)境總是一直存在,。生成樹(shù)算法,,決定了網(wǎng)絡(luò)鏈路故障恢復(fù)時(shí)間,,最少不低于15秒。
生成樹(shù)的狀態(tài):
運(yùn)行生成樹(shù)協(xié)議的交換機(jī)上的端口,,總是處于下面五個(gè)狀態(tài)中的一個(gè):
阻塞:所有端口以阻塞狀態(tài)啟動(dòng)以防止回路,,由生成樹(shù)確定哪個(gè)端口切換為轉(zhuǎn)發(fā)狀態(tài),處于阻塞狀態(tài)的端口不轉(zhuǎn)發(fā)數(shù)據(jù)幀但可接受BPDU,。
監(jiān)聽(tīng):不轉(zhuǎn)發(fā)數(shù)據(jù)幀,,但檢測(cè)BPDU(臨時(shí)狀態(tài))。
學(xué)習(xí):不轉(zhuǎn)發(fā)數(shù)據(jù)幀,,但學(xué)習(xí)MAC地址表(臨時(shí)狀態(tài)),。
轉(zhuǎn)發(fā):可以傳送和接受數(shù)據(jù)數(shù)據(jù)幀。
禁用:通常由于端口故障或交換機(jī)配置錯(cuò)誤引起,。
Supreme-Ring協(xié)議是在工業(yè)以太網(wǎng)使用的冗余機(jī)制,。Supreme-Ring協(xié)議和生成樹(shù)協(xié)議有點(diǎn)相似,Supreme-Ring協(xié)議也定義了一種數(shù)據(jù)包,,稱為HELLO包,又稱為WD包(Watch Dog Packets),。交換機(jī)之間用HELLO包通信,,在主交換機(jī)上動(dòng)態(tài)選擇主鏈路和備份鏈路。但是因?yàn)閺闹行臉虻饺魏尉W(wǎng)段只有一個(gè)路徑存在控制工程網(wǎng)版權(quán)所有,,所以橋回路被消除,。
在工業(yè)冗余環(huán)網(wǎng)網(wǎng)絡(luò)環(huán)境里,交換機(jī)不會(huì)立即開(kāi)始轉(zhuǎn)發(fā)功能,,主交換機(jī)(Local)由手動(dòng)指定,,選擇主鏈路和備份鏈路建立一個(gè)指定路徑,由Supreme-Ring協(xié)議自動(dòng)指定,。一個(gè)工業(yè)冗余環(huán)網(wǎng)網(wǎng)絡(luò)里面只能有一個(gè)主交換機(jī)(Local),。主交換機(jī)(Local)會(huì)定期發(fā)送配置信息,這種配置信息將會(huì)被所有的從交換機(jī)(Remote)發(fā)送,。一旦網(wǎng)絡(luò)結(jié)構(gòu)發(fā)生變化,,網(wǎng)絡(luò)狀態(tài)將會(huì)重新配置。
當(dāng)指定主交換機(jī)(Local)之后,,在轉(zhuǎn)發(fā)數(shù)據(jù)包之前,,所有端口都以阻塞方式啟動(dòng)。運(yùn)用Supreme-Ring算法,,主交換機(jī)(Local)選擇最低COST值的端口作為主鏈路,,另一條COST值高的端口作為備份鏈路。備份鏈路不轉(zhuǎn)發(fā)數(shù)據(jù),,只接收和處理HELLO包,,處于熱備(Hot Standby)狀態(tài),。從交換機(jī)(Remote)沒(méi)有主鏈路和備份鏈路的區(qū)別。Supreme-Ring協(xié)議是一種簡(jiǎn)潔高效的冗余協(xié)議,,能夠保證環(huán)網(wǎng)在鏈路故障時(shí),,在300ms之內(nèi)恢復(fù)網(wǎng)絡(luò)通信。
Supreme-Ring的狀態(tài):
運(yùn)行Supreme-Ring協(xié)議的交換機(jī)上的端口,,總是處于下面四個(gè)狀態(tài)中的一個(gè):
阻塞:所有端口以阻塞狀態(tài)啟動(dòng)以防止回路,,處于阻塞狀態(tài)的端口不轉(zhuǎn)發(fā)數(shù)據(jù)幀但可接受HELLO包。
熱備:不轉(zhuǎn)發(fā)數(shù)據(jù)幀,,但學(xué)習(xí)MAC地址表,,在主鏈路故障時(shí),在300ms之內(nèi),,立刻進(jìn)入轉(zhuǎn)發(fā)狀態(tài),。
轉(zhuǎn)發(fā):可以傳送和接受數(shù)據(jù)數(shù)據(jù)幀。
禁用:通常由于端口故障或交換機(jī)配置錯(cuò)誤引起,。
結(jié)束語(yǔ)
工業(yè)網(wǎng)絡(luò)環(huán)境需要快速反應(yīng)冗余機(jī)制,,生成樹(shù)協(xié)議的15秒恢復(fù)時(shí)間,不能滿足工業(yè)環(huán)境要求,。只有采用Supreme-Ring協(xié)議才是工業(yè)網(wǎng)絡(luò)環(huán)境的最佳冗余機(jī)制,。