距離矢量協(xié)議為信息流建立路標(biāo)
在網(wǎng)絡(luò)組建中,如何選擇路由選擇協(xié)議并進行相關(guān)的配置,這是一項很重要的工作。路由就好像是一條條高速公路上的路標(biāo)。如果路標(biāo)標(biāo)的不準(zhǔn)確,那么數(shù)據(jù)流就可能無法達到目的地,或者說需要走冤枉路。今天筆者要給大家介紹的距離矢量路由選擇協(xié)議的配置及注意事項。這個距離矢量路由協(xié)議是現(xiàn)在比較流行的三大路由選擇協(xié)議之一。主要解決的就是這個“路標(biāo)”的問題。
一、距離矢量協(xié)議通過“跳”來進行計算
如上圖所示,現(xiàn)在客戶端甲需要發(fā)送一條消息給乙。在上面這個網(wǎng)絡(luò)架構(gòu)中,這個數(shù)據(jù)流該如何傳遞呢?從A直接傳遞到B,還是從A先傳遞到C、再傳遞到D、再傳遞到B呢?所采用的路由選擇協(xié)議不通,其采用的路徑也可能有所不同。而在距離矢量路由選擇協(xié)議算法中,則是根據(jù)“跳”來進行運算的。
簡單的說,距離矢量協(xié)議是通過判斷距離來查找到達目標(biāo)網(wǎng)絡(luò)的最佳路徑。不過需要注意的是,這里的距離跟我們平時說的距離有點不同,其單位不是米或者公里,而是“跳”。數(shù)據(jù)包每通過一臺路由器,就成為一跳。當(dāng)使用最少跳數(shù)量到達目的網(wǎng)絡(luò)的路由就被稱為似是最佳路由。根據(jù)這個原理,在采用距離矢量路由選擇協(xié)議的情況下,在上圖所示的網(wǎng)絡(luò)結(jié)構(gòu)中,路由器A-路由器B將被認(rèn)為是最佳路由。
二、路由信息的更新
如果網(wǎng)絡(luò)狀況發(fā)生變化,如上圖中,在路由器A與路由器B之間又加入了一個路由器E,此時路由器操作系統(tǒng)會如何適應(yīng)呢?一般來說,距離矢量路由選擇算法會發(fā)送完整的路由選擇表到達相鄰的路由器。然后相鄰的路由器會講被接收到的路由表項目與自己原有的路由表進行組合,以更新路由器的路由表信息。在距離矢量選擇路由協(xié)議中,RIP是其中的一個典型代表。RIP只使用跳計數(shù)來決定到達末各互聯(lián)網(wǎng)絡(luò)的最佳路徑。
當(dāng)網(wǎng)絡(luò)環(huán)境發(fā)生變化,路由器系統(tǒng)會自動更新路由表信息,然后重新計算到達目標(biāo)網(wǎng)絡(luò)的跳數(shù)。然后再根據(jù)計算的結(jié)果來確定哪條是最佳路由。
三、網(wǎng)絡(luò)維護中的注意事項
距離矢量路由選擇協(xié)議看起來比較簡單,其實其背后還隱藏著很多負責(zé)的內(nèi)容。在維護這個路由選擇協(xié)議的時候,筆者認(rèn)為網(wǎng)絡(luò)管理員需要挖掘其背后的知識。只有如此,在日后的網(wǎng)路故障中,才能夠以不變應(yīng)萬變。具體的來說,需要注意如下內(nèi)容。
一是如何實現(xiàn)負載均衡?如上圖所示,現(xiàn)在客戶端A需要發(fā)送一個大型的文件給客戶端B。如果單靠一條鏈路進行傳輸?shù)脑?,不僅會給網(wǎng)絡(luò)帶來很大的負擔(dān),而且還需要會花費比較長的時間。在這種情況下,有沒有好的方法呢?其實距離矢量路由選擇協(xié)議中,有一個比較好的特性,即可以實現(xiàn)負載均衡。我們現(xiàn)在來假設(shè)一個情況,現(xiàn)在客戶端A與客戶端B之間有兩條鏈路,而且他們的跳數(shù)又是相同的。在這種情況下,哪一條是最佳路由呢?因為在RIP只使用跳計數(shù)來決定達到某個互聯(lián)網(wǎng)絡(luò)的最佳路徑。在這種情況下,如果發(fā)現(xiàn)對于同一個遠程網(wǎng)絡(luò)存在不止一條鏈路,并且他們又都具有相同的跳記錄,此時路由器會自動執(zhí)行循環(huán)的負載均衡。也就是說,可以將數(shù)據(jù)分為兩部分,從而同時往多條鏈路上傳輸數(shù)據(jù)。這就好像是在兩個目的地之間多建了幾個車道,其流量顯然會成倍增加,從而縮短數(shù)據(jù)傳輸?shù)臅r間。通常情況下,如果采用RIP距離矢量路由選擇協(xié)議的話,其最多可以支持6個相同開銷的鏈路來實現(xiàn)負載均衡。
二是需要注意其路由表的更新機制。當(dāng)遇到網(wǎng)路故障時,了解這個更新機制對于分析故障的原因會有很大的幫助。通常情況下,當(dāng)路由器在啟動的時候會加載路由表。在剛加載的時候,會根據(jù)路由發(fā)現(xiàn)協(xié)議更新路由信息。此時路由表中只有與他們直接相連網(wǎng)絡(luò)的內(nèi)容。當(dāng)距離矢量路由選擇協(xié)議在每臺路由器上運行之后,路由表將會使用從相鄰路由器得到的所有路由信息來完成更新。不過即使如此,每臺路由器在他們的路由表中只有與其進行直接相連的網(wǎng)絡(luò)信息。每臺路由器將從路由器上的每個激活的接口發(fā)送出它的完整路由表。這個路由表中包含有網(wǎng)絡(luò)號、輸出接口和可達網(wǎng)絡(luò)的跳計數(shù)。在網(wǎng)絡(luò)故障排除與性能優(yōu)化的過程中,往往需要用到這些信息。如通過這些信息,可以分析出會聚的時間是否合理。當(dāng)會聚的時間不是很合理的情況下,那么所采用的路由可能不是最佳的路由,或者說網(wǎng)絡(luò)的部署不是很合理。
四、距離矢量協(xié)議的缺陷與限制
雖然距離矢量協(xié)議其原理比較簡單,配置維護也比較方便。但是在實際工作中,這個路由選擇協(xié)議還存在著比較大的缺陷。在這里筆者以RIP距離矢量路由選擇協(xié)議為例,談?wù)勂涞娜毕?。在網(wǎng)絡(luò)組建與維護中,如果需要使用這種距離矢量路由選擇協(xié)議的話,那么網(wǎng)絡(luò)工程師要學(xué)會繞開這個缺陷與限制。
距離矢量協(xié)議的最重要缺陷就是最短的距離往往不是最快的距離。
在我們打出租車的時候,可能需要考慮走“最短”的路還是走“最快”的路。有時候由于最短的路走的人多,路比較繁忙。此時走這條路反而不能夠最快的到達目的地。相反,如果繞一點遠路,反而可以縮短到達的時間。從這個實際生活的例子中,我們可以看出最短的距離往往不是最快的距離。其實這個原則在網(wǎng)絡(luò)中也存在。如上圖所示,路由器A與路由器B這個鏈路,對于客戶端A與客戶端B來說,其只有一跳。而從路由器A-路由器C-路由器D-路由器B這條鏈路,其有四跳。光從跳數(shù)來看,顯然前者是比較合理的鏈路。但是現(xiàn)在的問題是,這條鏈路可能比較繁忙。此時走這條道路的話,由于擁塞等原因,需要比較多時間的等待。反而走另一條路,由于一路暢通,可以在更短的時間內(nèi)到達??梢姡酚蛇x擇協(xié)議往往只適用于比較簡單的網(wǎng)絡(luò)。或者說,網(wǎng)絡(luò)管理員可以預(yù)測到網(wǎng)絡(luò)的負荷情況。否則的話,采用這個距離矢量路由選擇協(xié)議可能并不合適。
五、配置過程中主要適用的命令
在思科網(wǎng)絡(luò)環(huán)境中,可以通過router rip命令和Network命令,將RIP路由選擇協(xié)議添加到相關(guān)的配置中。在這個配置中,筆者認(rèn)為只要了解了前面的內(nèi)容之后,配置就變得簡單許多。不過在這里,還需要注意一點內(nèi)容,即network命令的使用。
Network 20.0.0.0。
這個地址與我們普通的網(wǎng)絡(luò)地址不一樣。在使用這個命令的時候,我們沒有輸入子網(wǎng)的信息,而是直接輸入了類網(wǎng)絡(luò)地址。類網(wǎng)絡(luò)地址就是所有的子網(wǎng)和主機的位都是0。也就是說,我們并不需要關(guān)注子網(wǎng)的相關(guān)信息。因為找出子網(wǎng)并將他們放入到路由表中是路由選擇協(xié)議的工作,他們會自動處理。這就方便了我們的配置與維護。從這里我們也可以看出,使用RIP距離矢量路由選擇協(xié)議的話,還有一個比較重要的限制。即網(wǎng)絡(luò)中所有設(shè)備上的所有子網(wǎng)掩碼都必須相同。通常這種情況下的路由又被叫做有類路由。