动态选路协议
動(dòng)態(tài)選路,就是動(dòng)態(tài)更新路由表。每個(gè)路由器都有個(gè)路由守護(hù)程序,它運(yùn)行選路協(xié)議,與相鄰的路由器進(jìn)行通信,根據(jù)從相鄰路由器接收到的信息更新內(nèi)核中的路由表。
Internet是以一組自治系統(tǒng)的方式組織的,每個(gè)自治系統(tǒng)通常由單個(gè)管理。
自治系統(tǒng)可以選擇系統(tǒng)中各個(gè)路由器間的選路協(xié)議,這種協(xié)議我們稱之為域內(nèi)選路協(xié)議(IGP)。常用的IGP是選路信息協(xié)議RIP。最新的一種意在取代RIP的IGP是開(kāi)放最短路徑優(yōu)先協(xié)議(OSPF)。
用于自治系統(tǒng)之間的路由器的協(xié)議,我們稱之為外部網(wǎng)關(guān)協(xié)議(EGP)。新的EGP是當(dāng)前在NSFNET骨干網(wǎng)和一些連接到骨干網(wǎng)的區(qū)域性網(wǎng)絡(luò)使用的是邊界網(wǎng)關(guān)協(xié)議(BGP)。
下面描述一下這幾種協(xié)議:
RIP協(xié)議:
??????? (1)RIP報(bào)文包含在UDP數(shù)據(jù)報(bào)中,報(bào)文格式如下圖:
??????????????? 命令字段為1表示請(qǐng)求,2表示應(yīng)答。請(qǐng)求表示要求其他系統(tǒng)發(fā)送全部或部分路由表,應(yīng)答表示包含發(fā)送者全部或部分路由表。
????????????? ? 版本字段為1表示版本1,即RIP-1。版本字段為2表示版本2,即RIP-2。
??????????????? 地址系列字段表示緊跟在后面的20字節(jié)指定的地址系列,對(duì)于IP地址來(lái)說(shuō),其值為2。
??????????????? 采用這種20字節(jié)格式的RIP報(bào)文最多可以通告25條路由,這是因?yàn)闉榱薘IP報(bào)文長(zhǎng)度小于512字節(jié)。
?????????????? ?度量字段,所謂度量就是以跳計(jì)算路由器之間的鏈路數(shù)。
??????? (2)采用RIP協(xié)議的routed程序的運(yùn)行過(guò)程如下:
??????????????? 1.守護(hù)進(jìn)程啟動(dòng)后,首先判斷啟動(dòng)了哪些接口,并在每個(gè)接口上廣播一個(gè)520端口的特殊請(qǐng)求報(bào)文(地址系列0,度量字段16),要求其他路由器發(fā)送完整路由表。
??????????????? 2.運(yùn)行過(guò)程中,如果收到的是特殊請(qǐng)求報(bào)文,就將完整的路由表發(fā)送給請(qǐng)求者。否則,就處理請(qǐng)求的表項(xiàng),路由表中存在就將度量值填進(jìn)去,不存在就填16。
??????????????? 3.接收到響應(yīng)就更新路由表。
??????????????? 4.定期選路更新。每30秒主動(dòng)以廣播的形式發(fā)送路由表。
??????????????? 5.觸發(fā)更新。當(dāng)某條路由的度量發(fā)生變化時(shí),就要把變化的表項(xiàng)發(fā)送出去。
??????????????? 6.如果守護(hù)進(jìn)程發(fā)現(xiàn)有一條表項(xiàng)在3分鐘內(nèi)未更新,就將該路由的度量值設(shè)置成無(wú)窮大(16),并標(biāo)注為刪除。這樣再過(guò)60秒將從本地路由表中刪除該表項(xiàng)。
??????? (3)缺陷
????????????????1.RIP沒(méi)有子網(wǎng)的概念,如果出現(xiàn)B類地址,主機(jī)號(hào)不為0,沒(méi)法區(qū)分這是子網(wǎng)號(hào)還是主機(jī)地址。
??????????????? 2.鏈路故障后很長(zhǎng)時(shí)間才能穩(wěn)定下來(lái)。
??????????????? 3.可能發(fā)生路由環(huán)回。
??????????????? 4.度量值最大15,限制了使用RIP的網(wǎng)絡(luò)大小。
RIP-2協(xié)議:
??????? (1)RIP-2報(bào)文格式如下圖:
??????????????? 路由域是守護(hù)程序的進(jìn)程號(hào),該域允許管理者在單個(gè)路由器上運(yùn)行多個(gè)RIP實(shí)例。
??????????????? 路由標(biāo)記是自治系統(tǒng)號(hào),為了支持外部網(wǎng)關(guān)協(xié)議而存在。
??????????????? 子網(wǎng)掩碼應(yīng)用于相應(yīng)的IP上,這就解決了RIP-1不能區(qū)分子網(wǎng)的缺陷。
??????????????? 下一站IP地址指明了發(fā)往目的IP地址的報(bào)文經(jīng)過(guò)的第一個(gè)路由器是誰(shuí)。該字段為0表示發(fā)給發(fā)送RIP報(bào)文系統(tǒng)。
????????????????RIP-2提供了一種簡(jiǎn)單的鑒別機(jī)制。可以指定前20字節(jié)表項(xiàng)地址系列為0xffff,路由標(biāo)記為2。其余16字節(jié)為明文口令。
??????????????? RIP-2還支持多播,這可以減少不收聽(tīng)RIP-2報(bào)文主機(jī)的負(fù)載。
OSPF協(xié)議:
??????? OSPF將鏈路狀態(tài)(包括接口上的IP地址,子網(wǎng)掩碼,網(wǎng)絡(luò)類型,Cost值等等)組播給其他路由器,所有路由器都維護(hù)一個(gè)相同結(jié)構(gòu)的數(shù)據(jù)庫(kù),然后通過(guò)迪克斯加算法(Dijkstra)生成最短路徑樹,并通過(guò)最短路徑構(gòu)造路由表。
BGP協(xié)議:
??????? 每個(gè)AS都會(huì)有個(gè)編號(hào)。所謂的AS路徑就是前往目標(biāo)網(wǎng)絡(luò)通過(guò)的AS列表(列出了前往目標(biāo)網(wǎng)絡(luò)必須經(jīng)過(guò)的路徑)。
??????? BGP使用TCP作為傳輸協(xié)議,端口號(hào)179。
??????? BGP是一種距離矢量協(xié)議,實(shí)際上應(yīng)該叫路徑矢量協(xié)議。路徑矢量信息包括一個(gè)自治系統(tǒng)(AS)號(hào)列表,下一個(gè)AS的路由器IP地址,以及源頭編碼屬性。
??????? 運(yùn)行過(guò)程如下:
??????????????? 1.BGP啟動(dòng)時(shí),發(fā)送整個(gè)BGP路由表交換路由信息給相鄰體,之后只交換更新信息。
??????????????? 2.多條路徑時(shí),BGP只選擇最優(yōu)的給自己使用,并且只通告最優(yōu)路線給相鄰體。
??????????????? 3.一般不把BGP路由表注入IGP路由器中,因?yàn)锽GP路由表太大,會(huì)導(dǎo)致IGP網(wǎng)絡(luò)崩潰。
??????????????? 4.BGP不接受在AS路徑屬性中包含本自治系統(tǒng)的編號(hào)的路由選擇更新,以防止環(huán)路。
總結(jié)