TCP/IP詳解讀書筆記(第10章動(dòng)態(tài)選路協(xié)議)
在前面各章中,討論了靜態(tài)選路。在配置接口時(shí),以默認(rèn)方式生成路由表項(xiàng)(對于直接連接的接口),并通過route命令增加表項(xiàng)(通常從系統(tǒng)自引導(dǎo)程序文件),或是通過I MP重定向生成表項(xiàng)(通常是在默認(rèn)方式出錯(cuò)的情況下)。
在網(wǎng)絡(luò)很小,且與其他網(wǎng)絡(luò)只有單個(gè)連接點(diǎn)且沒有多余路由時(shí)(若主路由失敗,可以使用備用路由),采用這種方法是可行的。如果上述三種情況不能全部滿足,通常使用動(dòng)態(tài)選路。
本章討論動(dòng)態(tài)選路協(xié)議,它用于路由器間的通信。我們主要討論RIP,即選路信息協(xié)議(Routing Information Protocol),大多數(shù)TCP/IP實(shí)現(xiàn)都提供這個(gè)應(yīng)用廣泛的協(xié)議。然后討論兩種新的選路協(xié)議,OSPF和BGP。
動(dòng)態(tài)選路
當(dāng)相鄰路由器之間進(jìn)行通信,以告知對方每個(gè)路由器當(dāng)前所連接的網(wǎng)絡(luò),這時(shí)就出現(xiàn)了動(dòng)態(tài)選路。路由器之間必須采用選路協(xié)議進(jìn)行通信,這樣的選路協(xié)議有很多種。路由器上有一個(gè)進(jìn)程稱為路由守護(hù)程序(routing daemon),它運(yùn)行選路協(xié)議,并與其相鄰的一些路由器進(jìn)行通信。路由守護(hù)程序根據(jù)它從相鄰路由器接收到的信息,更新內(nèi)核中的路由表。
注:動(dòng)態(tài)選路并不改變我們在上章中所描述的內(nèi)核在IP層的選路方式。這種選路方式稱為選路機(jī)制(routing mechanism)。內(nèi)核搜索路由表,查找主機(jī)路由、網(wǎng)絡(luò)路由以及默認(rèn)路由的方式并沒有改變。僅僅是放置到路由表中的信息改變了—當(dāng)路由隨時(shí)間變化時(shí),路由是由路由守護(hù)程序動(dòng)態(tài)地增加或刪除,而不是來自于自引導(dǎo)程序文件中的route命令。
路由守護(hù)程序?qū)⑦x路策略(routing policy)加入到系統(tǒng)中,選擇路由并加入到內(nèi)核的路由表中。如果守護(hù)程序發(fā)現(xiàn)前往同一信宿存在多條路由,那么它(以某種方法)將選擇最佳路由并加入內(nèi)核路由表中。如果路由守護(hù)程序發(fā)現(xiàn)一條鏈路已經(jīng)斷開(可能是路由器崩潰或電話線路不好),它可以刪除受影響的路由或增加另一條路由以繞過該問題。
RIP:選路信息協(xié)議
報(bào)文格式
RIP報(bào)文包含中在UDP數(shù)據(jù)報(bào)中,如圖1所示:

圖1:封裝在UDP數(shù)據(jù)包中的RIP報(bào)文
詳細(xì)的RIP報(bào)文格式如圖2所示:

圖2:RIP報(bào)文格式
命令字段為1表示請求,2表示應(yīng)答。還有兩個(gè)舍棄不用的命令(3和4),兩個(gè)非正式的命令:輪詢(5)和輪詢表項(xiàng)(6)。請求表示要求其他系統(tǒng)發(fā)送其全部或部分路由表。應(yīng)答則包含發(fā)送者全部或部分路由表。
版本字段通常為1,而第2版RIP將此字段設(shè)置為2。緊跟在后面的20字節(jié)指定地址系列(address family)(對于IP地址來說,其值是2)、IP地址以及相應(yīng)的度量。RIP的度量是以跳計(jì)數(shù)的。采用這種20字節(jié)格式的RIP報(bào)文可以通告多達(dá)25條路由。上限25是用來保證RIP報(bào)文的總長度為20×25 + 4 = 504,小于512字節(jié)。由于每個(gè)報(bào)文最多攜帶25個(gè)路由,因此為了發(fā)送整個(gè)路由表,經(jīng)常需要多個(gè)報(bào)文。
度量
RIP所使用的度量是以跳( hop )計(jì)算的。所有直接連接接口的跳數(shù)為1。考慮圖3所示的
路由器和網(wǎng)絡(luò)。畫出的4條虛線是廣播RIP報(bào)文。(R-理由器,N-網(wǎng)絡(luò))

圖3:路由器和網(wǎng)絡(luò)示例
路由器R1通過發(fā)送廣播到N1通告它與N2之間的跳數(shù)是1(發(fā)送給N1的廣播中通告它與N1之間的路由是無用的)。同時(shí)也通過發(fā)送廣播給N2通告它與N1之間的跳數(shù)為1。同樣,R2通告它與N2的度量為1,與N3的度量為1。
如果相鄰路由器通告它與其他網(wǎng)絡(luò)路由的跳數(shù)為1,那么我們與那個(gè)網(wǎng)絡(luò)的度量就是2,這是因?yàn)闉榱税l(fā)送報(bào)文到該網(wǎng)絡(luò),我們必須經(jīng)過那個(gè)路由器。在我們的例子中, R2到N1的度量是2,與R1到N3的度量一樣。
跳數(shù)的最大值是15,這意味著RIP只能用在主機(jī)間最大跳數(shù)值為15的AS內(nèi)。度量為16表示到無路由到達(dá)該I P地址。
OSPF:開放最短路徑優(yōu)先
O S P F是除R I P外的另一個(gè)內(nèi)部網(wǎng)關(guān)協(xié)議。它克服了R I P的所有限制。
與采用距離向量的R I P協(xié)議不同的是, O S P F是一個(gè)鏈路狀態(tài)協(xié)議。距離向量的意思是,R P發(fā)送的報(bào)文包含一個(gè)距離向量(跳數(shù))。每個(gè)路由器都根據(jù)它所接收到鄰站的這些距離向量來更新自己的路由表。
在一個(gè)鏈路狀態(tài)協(xié)議中,路由器并不與其鄰站交換距離信息。它采用的是每個(gè)路由器主
動(dòng)地測試與其鄰站相連鏈路的狀態(tài),將這些信息發(fā)送給它的其他鄰站,而鄰站將這些信息在
自治系統(tǒng)中傳播出去。每個(gè)路由器接收這些鏈路狀態(tài)信息,并建立起完整的路由表。
BGP:邊界網(wǎng)關(guān)協(xié)議
BGP是一種不同自治系統(tǒng)的路由器之間進(jìn)行通信的外部網(wǎng)關(guān)協(xié)議。
BGP系統(tǒng)與其他BGP系統(tǒng)之間交換網(wǎng)絡(luò)可到達(dá)信息。這些信息包括數(shù)據(jù)到達(dá)這些網(wǎng)絡(luò)所必須經(jīng)過的自治系統(tǒng)AS中的所有路徑。這些信息足以構(gòu)造一幅自治系統(tǒng)連接圖。然后,可以根據(jù)連接圖刪除選路環(huán),制訂選路策略。
posted on 2008-08-21 16:16
水 閱讀(1878)
評論(4) 編輯 收藏 引用 所屬分類:
tcp/ip