四、路由
1、路由表
假如一個(gè)主機(jī)有多個(gè)網(wǎng)絡(luò)接口,當(dāng)向一個(gè)特定的ip地址發(fā)送分組時(shí),它怎樣決定使用哪個(gè)接口呢?答案就在路由表中。來看下面的例子:
目的
子網(wǎng)掩碼
網(wǎng)關(guān)
標(biāo)志
接口
201.66.37.0255.255.255.0201.66.37.74Ueth0201.66.39.0255.255.255.0201.66.39.21Ueth1主機(jī)將所有目的地為網(wǎng)絡(luò)201.66.37.0內(nèi)主機(jī)(201.66.37.1-201.66.37.254)的數(shù)據(jù)通過接口eth0(IP地址為201.66.37.74)發(fā)送,所有目的地為網(wǎng)絡(luò)201.66.39.0內(nèi)主機(jī)的數(shù)據(jù)通過接口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ò)中如何呢?假如你通過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ī)的分組通過201.66.37.254路由過去。標(biāo)志G(gateway)表示此項(xiàng)把分組導(dǎo)向外部網(wǎng)關(guān)。類似的,也可以定義通過網(wǎng)關(guān)到達(dá)特定主機(jī)的路由,增加標(biāo)志H(host):
目的
掩碼
網(wǎng)關(guān)
標(biāo)志
接口
91.32.74.21255.255.255.255201.66.37.254UGHeth0下面是路由表的基礎(chǔ),除了非凡表項(xiàng)之外:
目的
掩碼
網(wǎng)關(guān)
標(biāo)志
接口
127.0.0.1255.255.255.255127.0.0.1UHlo0default0.0.0.0201.66.37.254UGeth1第一項(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è)缺省路由,假如在路由表中沒有與目的地址相匹配的項(xiàng),該分組就被送到缺省網(wǎng)關(guān)。多數(shù)主機(jī)簡(jiǎn)單地通過一個(gè)網(wǎng)卡連接到網(wǎng)絡(luò),因此只有通過一個(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.4255.255.255.255201.66.37.253UGHeth01.2.3.0255.255.255.0201.66.37.254UGeth01.2.0.0255.255.0.0201.66.37.253UGeth1default0.0.0.0201.66.39.254UGeth1之所以說這些路由重疊是因?yàn)檫@四個(gè)路由都含有地址1.2.3.4,假如向1.2.3.4發(fā)送數(shù)據(jù),會(huì)選擇哪條路由呢?在這種情況下,會(huì)選擇第一條路由,通過網(wǎng)關(guān)201.66.37.253。原則是選擇具有最長(zhǎng)(最精確)的子網(wǎng)掩碼。類似的,發(fā)往1.2.3.5的數(shù)據(jù)選擇第二條路由。
注重:這條原則只適用于間接路由(通過網(wǎng)關(guān))。把兩個(gè)接口定義在同一子網(wǎng)在很多軟件實(shí)現(xiàn)上是非法的。例如下面的設(shè)置通常是非法的(不過有些軟件將嘗試在兩個(gè)接口進(jìn)行負(fù)載平衡):
接口
IP地址
子網(wǎng)掩碼
eth0201.66.37.1255.255.255.0eth1201.66.37.2255.255.255.0對(duì)于重疊路由的策略是十分有用的,它答應(yīng)缺省路由作為目的為0.0.0.0、子網(wǎng)掩碼為0.0.0.0的路由進(jìn)行工作,而不需要作為路由軟件的一個(gè)非凡情況來實(shí)現(xiàn)。
回頭來看看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ǎng)絡(luò)地址213.79.61.0,現(xiàn)在他是否必須從新的服務(wù)提供商處取得新的網(wǎng)絡(luò)地址呢?假如是,意味著他必須重新配置每臺(tái)主機(jī)的IP地址,改變DNS設(shè)置,等等。幸運(yùn)的是,解決辦法很簡(jiǎn)單,原來的服務(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),它將覆蓋原來的路由。
3、靜態(tài)路由
回頭看看我們已建立的路由表,已有了六個(gè)表項(xiàng):
目的
掩碼
網(wǎng)關(guān)
標(biāo)志
接口
127.0.0.1255.255.255.255127.0.0.1UHlo0201.66.37.0255.255.255.0201.66.37.74Ueth0201.66.39.0255.255.255.0201.66.39.21Ueth1default0.0.0.0201.66.39.254UGeth173.0.0.0255.0.0.0201.66.37.254UGeth091.32.74.21255.255.255.255201.66.37.254UGHeth0該網(wǎng)絡(luò)圖示如下:

這些表項(xiàng)分別是怎么得到的呢?第一個(gè)是當(dāng)路由表初始化時(shí)由路由軟件加入的,第二、三個(gè)是當(dāng)網(wǎng)卡綁定IP地址時(shí)自動(dòng)創(chuàng)建的,其余三個(gè)必須手動(dòng)加入,在UNIX系統(tǒng)中,這是通過命令route來做的,可以由用戶手工執(zhí)行,也可以通過rc腳本在啟動(dòng)時(shí)執(zhí)行。上述方法涉及的是靜態(tài)路由,通常在啟動(dòng)時(shí)創(chuàng)建,并且沒有手工干預(yù)的話將不再改變。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注