Cisco路由技術(shù)基礎(chǔ)知識(shí)詳解之三
四、路由
1、路由表
如果一個(gè)主機(jī)有多個(gè)網(wǎng)絡(luò)接口,當(dāng)向一個(gè)特定的IP地址發(fā)送分組時(shí),它怎樣決定使用哪個(gè)接口呢?答案就在路由表中。來(lái)看下面的例子:
目的 子網(wǎng)掩碼 網(wǎng)關(guān) 標(biāo)志 接口
201.66.37.0 255.255.255.0 201.66.37.74 U eth0
201.66.39.0 255.255.255.0 201.66.39.21 U eth1
主機(jī)將所有目的地為網(wǎng)絡(luò)201.66.37.0內(nèi)主機(jī)(201.66.37.1-201.66.37.254)的數(shù)據(jù)通過(guò)接口eth0(IP地址為201.66.37.74)發(fā)送,所有目的地為網(wǎng)絡(luò)201.66.39.0內(nèi)主機(jī)的數(shù)據(jù)通過(guò)接口eth1(IP地址為201.66.39.21)發(fā)送。標(biāo)志U表示該路由狀態(tài)為“up”(即激活狀態(tài))。對(duì)于直接連接的網(wǎng)絡(luò),一些軟件并不象上例中一樣給出接口的IP地址,而只列出接口。
此例只涉及了直接連接的主機(jī),那么目的主機(jī)在遠(yuǎn)程網(wǎng)絡(luò)中如何呢?如果你通過(guò)IP地址為201.66.37.254的網(wǎng)關(guān)連接到網(wǎng)絡(luò)73.0.0.0,那么你可以在路由表中增加這樣一項(xiàng):
目的
掩碼
網(wǎng)關(guān)
標(biāo)志
接口
73.0.0.0
255.0.0.0
201.66.37.254
UG
eth0
此項(xiàng)告訴主機(jī)所有目的地為網(wǎng)絡(luò)73.0.0.0內(nèi)主機(jī)的分組通過(guò)201.66.37.254路由過(guò)去。標(biāo)志G(gateway)表示此項(xiàng)把分組導(dǎo)向外部網(wǎng)關(guān)。類似的,也可以定義通過(guò)網(wǎng)關(guān)到達(dá)特定主機(jī)的路由,增加標(biāo)志H(host):
目的 掩碼 網(wǎng)關(guān) 標(biāo)志 接口
91.32.74.21 255.255.255.255 201.66.37.254 UGH eth0
下面是路由表的基礎(chǔ),除了特殊表項(xiàng)之外:
目的 掩碼 網(wǎng)關(guān) 標(biāo)志 接口
127.0.0.1 255.255.255.255 127.0.0.1 UH lo0
default 0.0.0.0 201.66.37.254 UG eth1
第一項(xiàng)是loopback接口,用于主機(jī)給自己發(fā)送數(shù)據(jù),通常用于測(cè)試和運(yùn)行于IP之上但需要本地通信的應(yīng)用。這是到特定地址127.0.0.1的主機(jī)路由(接口lo0是IP協(xié)議棧內(nèi)部的“假”網(wǎng)卡)。第二項(xiàng)十分有意思,為了防止在主機(jī)上定義到因特網(wǎng)上每一個(gè)可能到達(dá)網(wǎng)絡(luò)的路由,可以定義一個(gè)缺省路由,如果在路由表中沒(méi)有與目的地址相匹配的項(xiàng),該分組就被送到缺省網(wǎng)關(guān)。多數(shù)主機(jī)簡(jiǎn)單地通過(guò)一個(gè)網(wǎng)卡連接到網(wǎng)絡(luò),因此只有通過(guò)一個(gè)路由器到其它網(wǎng)絡(luò),這樣在路由表中只有三項(xiàng):loopback項(xiàng)、本地子網(wǎng)項(xiàng)和缺省項(xiàng)(指向路由器)。
2、重疊路由
假設(shè)在路由表中有下列重疊項(xiàng):
目的 掩碼 網(wǎng)關(guān) 標(biāo)志 接口
1.2.3.4 255.255.255.255 201.66.37.253 UGH eth0
1.2.3.0 255.255.255.0 201.66.37.254 UG eth0
1.2.0.0 255.255.0.0 201.66.37.253 UG eth1
default 0.0.0.0 201.66.39.254 UG eth1
之所以說(shuō)這些路由重疊是因?yàn)檫@四個(gè)路由都含有地址1.2.3.4,如果向1.2.3.4發(fā)送數(shù)據(jù),會(huì)選擇哪條路由呢?在這種情況下,會(huì)選擇第一條路由,通過(guò)網(wǎng)關(guān)201.66.37.253。原則是選擇具有最長(zhǎng)(最精確)的子網(wǎng)掩碼。類似的,發(fā)往1.2.3.5的數(shù)據(jù)選擇第二條路由。
注意:這條原則只適用于間接路由(通過(guò)網(wǎng)關(guān))。把兩個(gè)接口定義在同一子網(wǎng)在很多軟件實(shí)現(xiàn)上是非法的。例如下面的設(shè)置通常是非法的(不過(guò)有些軟件將嘗試在兩個(gè)接口進(jìn)行負(fù)載平衡):
接口 IP地址 子網(wǎng)掩碼
eth0 201.66.37.1 255.255.255.0
eth1 201.66.37.2 255.255.255.0
對(duì)于重疊路由的策略是十分有用的,它允許缺省路由作為目的為0.0.0.0、子網(wǎng)掩碼為0.0.0.0的路由進(jìn)行工作,而不需要作為路由軟件的一個(gè)特殊情況來(lái)實(shí)現(xiàn)。
回頭來(lái)看看CIDR,仍使用上面的例子:一個(gè)服務(wù)提供商被賦予256個(gè)C類網(wǎng)絡(luò),從213.79.0.0到213.79.255.0。該服務(wù)提供商外部的路由表只以一個(gè)表項(xiàng)就了解了所有這些路由:213.79.0.0,子網(wǎng)掩碼為255.255.0.0。假設(shè)一個(gè)用戶移到了另一個(gè)服務(wù)提供商,他擁從新的服務(wù)提供商處取得新的網(wǎng)絡(luò)地址呢?如果是,意味著他必須重新配置每臺(tái)主機(jī)的IP地址,改變DNS設(shè)置,等等。幸運(yùn)的是,解決辦法很簡(jiǎn)單,原來(lái)的服務(wù)提供商保持路由213.79.0.0(子網(wǎng)掩碼為255.255.0.0),新的服務(wù)提供商則廣播路由213.79.61.0(子網(wǎng)掩碼為255.255.255.0),因?yàn)樾侣酚傻淖泳W(wǎng)掩碼較長(zhǎng),它將覆蓋原來(lái)的路由。
3、靜態(tài)路由
回頭看看我們已建立的路由表,已有了六個(gè)表項(xiàng):
目的 掩碼 網(wǎng)關(guān) 標(biāo)志 接口
127.0.0.1 255.255.255.255 127.0.0.1 UH lo0
201.66.37.0 255.255.255.0 201.66.37.74 U eth0
201.66.39.0 255.255.255.0 201.66.39.21 U eth1
default 0.0.0.0 201.66.39.254 UG eth1
73.0.0.0 255.0.0.0 201.66.37.254 UG eth0
91.32.74.21 255.255.255.255 201.66.37.254 UGH eth0
這些表項(xiàng)分別是怎么得到的呢?第一個(gè)是當(dāng)路由表初始化時(shí)由路由軟件加入的,第二、三個(gè)是當(dāng)網(wǎng)卡綁定IP地址時(shí)自動(dòng)創(chuàng)建的,其余三個(gè)必須手動(dòng)加入,在UNIX系統(tǒng)中,這是通過(guò)命令route來(lái)做的,可以由用戶手工執(zhí)行,也可以通過(guò)rc腳本在啟動(dòng)時(shí)執(zhí)行。上述方法涉及的是靜態(tài)路由,通常在啟動(dòng)時(shí)創(chuàng)建,并且沒(méi)有手工干預(yù)的話將不再改變。
路由器 <五>
四、路由
4、路由協(xié)議
主機(jī)和網(wǎng)關(guān)都可以使用稱作動(dòng)態(tài)路由的技術(shù),這使路由表可以動(dòng)態(tài)改變。動(dòng)態(tài)路由需要路由協(xié)議來(lái)增加和刪除路由表項(xiàng),路由表還是和靜態(tài)路由一樣地工作,只是其增添和刪除是自動(dòng)的。
有兩種路由協(xié)議:內(nèi)部的和外部的。內(nèi)部協(xié)議在自制系統(tǒng)(AS)內(nèi)部路由,而外部協(xié)議則在自制系統(tǒng)間路由。自制系統(tǒng)通常在統(tǒng)一的控制管理之下,例如大的公司或大學(xué)。小的站點(diǎn)常常是其因特網(wǎng)服務(wù)提供商自制系統(tǒng)的一部分。
這里只討論內(nèi)部協(xié)議,很少有人涉及到甚至聽(tīng)說(shuō)外部協(xié)議。最常見(jiàn)的外部協(xié)議是外部網(wǎng)關(guān)協(xié)議EGP(External Gateway Protocol)和邊緣網(wǎng)關(guān)協(xié)議BGP(Border Gateway Protocol),BGP是較新的協(xié)議,在逐漸地取代EGP。
5、ICMP重定向
ICMP通常不被看作路由協(xié)議,但是ICMP重定向卻與路由協(xié)議的工作方式很類似,所以將在這里討論一下。假設(shè)現(xiàn)在有上面所給的六個(gè)表項(xiàng)的路由表,分組被送往201.66.43.33,看看路由表,除了缺省路由外,這并不能匹配任何路由。靜態(tài)路由將其通過(guò)路由器201.66.39.254發(fā)送(trip 1),但是,該路由器知道所有發(fā)向子網(wǎng)201.66.43.0的分組應(yīng)該通過(guò)201.66.39.253,因此,它把分組轉(zhuǎn)發(fā)到適當(dāng)?shù)穆酚善?trip 2)。但是如果主機(jī)直接把分組發(fā)到201.66.39.253就會(huì)提高效率(trip 3)。
因?yàn)槁酚善靼逊纸M從同一接口發(fā)回了分組,所以它知道有更好的路由,路由器可以通過(guò)ICMP重定向指示主機(jī)使用新的路由。雖然路由器知道所有發(fā)向201.66.43.0子網(wǎng)的分組應(yīng)該通過(guò)201.66.39.253,它通常只發(fā)送特定的主機(jī)的ICMP重定向(此例中是201.66.43.33)。主機(jī)將在路由表中創(chuàng)建一個(gè)新的表項(xiàng):
目的 掩碼 網(wǎng)關(guān) 標(biāo)志 接口
201.66.43.33 255.255.255.255 201.66.39.253 UGHD eth1
注意標(biāo)志D,對(duì)所有由ICMP重定向創(chuàng)建的路由設(shè)置此標(biāo)志。將來(lái)此類分組將通過(guò)新路由發(fā)送(trip 3)。
6、RIP
RIP是一種簡(jiǎn)單的內(nèi)部路由協(xié)議,已經(jīng)存在很久,被廣泛地實(shí)現(xiàn)(UNIX的routed就使用RIP)。它使用距離向量算法,所以其路由選擇只是基于兩點(diǎn)間的“跳(hop)”數(shù),穿過(guò)一個(gè)路由器認(rèn)為是一跳。主機(jī)和網(wǎng)關(guān)都可以運(yùn)行RIP,但是主機(jī)只是接收信息,而并不發(fā)送。路由信息可以從指定網(wǎng)關(guān)請(qǐng)求,但通常是每隔30秒廣播一次以保持正確性。RIP使用UDP通過(guò)端口520在主機(jī)和網(wǎng)關(guān)間通信。網(wǎng)關(guān)間傳送的信息用于建立路由表,由RIP選定的路由總是具有距離目的跳數(shù)最少的。RIP版本1在簡(jiǎn)單、較小的網(wǎng)絡(luò)中工作得不錯(cuò),但是在較大的網(wǎng)絡(luò)中,就出現(xiàn)一些問(wèn)題,有些問(wèn)題在RIP版本2中已糾正,但有些是由于其設(shè)計(jì)產(chǎn)生的限制。在下面的討論中,適用于兩種版本時(shí)簡(jiǎn)單稱為RIP,RIP v1和RIP v2則指特定的版本。
RIP并沒(méi)有任何鏈接質(zhì)量的概念,所有的鏈路都被認(rèn)為是相同的,低速的串行鏈路被認(rèn)為與高速的光纖鏈路是同樣的。RIP以最小的跳數(shù)來(lái)選擇路由,因此當(dāng)在下面兩個(gè)路由中選擇時(shí):
100Mbps的光纖鏈路,路由器,然后是10Mbps的以太網(wǎng)
9600bps的串行鏈路
RIP將選擇后者。RIP也沒(méi)有鏈路流量等級(jí)的概念。例如對(duì)于兩條以太網(wǎng)鏈路,其中一個(gè)很繁忙,另一個(gè)根本沒(méi)有數(shù)據(jù)流,RIP可能會(huì)選擇繁忙的那條鏈路。
RIP中的最大hop數(shù)是15,大于15則認(rèn)為不可到達(dá)。因此在很大的自制系統(tǒng)中,hop數(shù)很可能超過(guò)15,使用RIP是很不現(xiàn)實(shí)的。RIP v1不支持子網(wǎng),交換的信息中不含子網(wǎng)掩碼,對(duì)給定路由確定子網(wǎng)掩碼的方法各不相同,RIP v2則彌補(bǔ)了此缺點(diǎn)。RIP每隔30秒才進(jìn)行信息更新,因此在大網(wǎng)中斷鏈信息可能要花些時(shí)間才能傳播開(kāi)來(lái),路由信息的穩(wěn)定時(shí)間可能更長(zhǎng),并且在這段時(shí)間內(nèi)可能產(chǎn)生路由環(huán)路。對(duì)此有一些解決辦法,但這里不進(jìn)行討論。
可以看出,RIP是一個(gè)簡(jiǎn)單的路由協(xié)議,有一些限制,尤其在版本1中。不過(guò),它常常是某些操作系統(tǒng)的唯一選擇。
相關(guān)文章
why is it preferable to use OSPF over RIP
why is it preferable to use OSPF over RIP...2007-09-09基礎(chǔ)網(wǎng)絡(luò)知識(shí)IP地址常識(shí)
基礎(chǔ)網(wǎng)絡(luò)知識(shí)IP地址常識(shí)...2007-09-09用無(wú)線寬帶路由器實(shí)現(xiàn)電腦上網(wǎng)互訪
用無(wú)線寬帶路由器實(shí)現(xiàn)電腦上網(wǎng)互訪...2007-09-09利用WIN2000實(shí)現(xiàn)兩個(gè)網(wǎng)段的路由
利用WIN2000實(shí)現(xiàn)兩個(gè)網(wǎng)段的路由...2007-09-09網(wǎng)管成長(zhǎng)歷程——IP地址規(guī)劃之分配篇1
網(wǎng)管成長(zhǎng)歷程——IP地址規(guī)劃之分配篇1...2007-09-09傳奇自動(dòng)刷怪腳本,節(jié)省服務(wù)器資源
傳奇自動(dòng)刷怪腳本,節(jié)省服務(wù)器資源...2007-09-09