路由器工作原理:
當(dāng)路由器的某個接口收到一個包時,路由器會讀取包中相應(yīng)的目標(biāo)的邏輯地址的網(wǎng)絡(luò)部分,然后在路由表中進(jìn)行查找.如果在路由表中找到了目標(biāo)地址的路由條目,則把包轉(zhuǎn)發(fā)到路由器的相應(yīng)接口;如果在路由表中沒有找到目標(biāo)地址的路由條目,那么,如果路由器配置了默認(rèn)路由的話,就根據(jù)默認(rèn)路由的配置轉(zhuǎn)發(fā)到路由器的相應(yīng)接口,如果路由器中沒有配置默認(rèn)路由,則將該包丟棄,并返回不可達(dá)信息.這就是數(shù)據(jù)路由的過程,可見路由是路由器根據(jù)自己的路由表進(jìn)行的,其間經(jīng)過了路由選擇和路由轉(zhuǎn)發(fā)的過程,從路由器的一個接口”路由”到另一個接口.
靜態(tài)路由:
靜態(tài)路由是由管理員在路由器中手動配置的固定路由.
當(dāng)使用靜態(tài)路由時,路由器需要通過靜態(tài)路由轉(zhuǎn)發(fā)包,因此靜態(tài)路由必須要指明下列內(nèi)容:
1. 要到達(dá)的目的網(wǎng)絡(luò)地址。
2. 到達(dá)目的網(wǎng)絡(luò)的下一個路由器地址或者本地接口。
3. 允許對路由的行為進(jìn)行精確的控制。
4. 靜態(tài)路由不占用網(wǎng)絡(luò)的流量。
5. 靜態(tài)路由是單向的。
6. 靜態(tài)路由的不足之處是缺乏靈活性。
默認(rèn)路由:
默認(rèn)路由是一種特殊的靜態(tài)路由,指的是當(dāng)路由表中與包的目的地址之間沒有匹配的表項(xiàng)時路由器能夠做出的選擇。如果沒有默認(rèn)路由,那么目的地址在路由表中沒有匹配表項(xiàng)的包將被丟棄。
在路由表中只添加少數(shù)的靜態(tài)路由,同時添加一條默認(rèn)路由。這樣當(dāng)收到的包的目的網(wǎng)絡(luò)沒有包含在路由表中時,就按照默認(rèn)路由來轉(zhuǎn)發(fā)。在路由器上只能配置一條默認(rèn)路由。
路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過程:
1. Host A向Host B發(fā)送數(shù)據(jù)。在網(wǎng)絡(luò)層封裝成數(shù)據(jù)包,IP數(shù)據(jù)包的首部包含 了源地址和目的地址。源地址即本機(jī)地址192.168.1.2,目的地址為Host B的地址即192.168.2.2。Host A會用本機(jī)配置的24位掩碼與目的地址進(jìn)行與運(yùn)算,得出目的地址與本機(jī)地址不在同一網(wǎng)段,因此發(fā)往Host B的數(shù)據(jù)包需要經(jīng)過網(wǎng)關(guān)Router A轉(zhuǎn)發(fā)。
2. Host A通過ARP請求獲得默認(rèn)網(wǎng)關(guān)Router A e0口的MAC地址00-11-12-21-22-22。在數(shù)據(jù)鏈路層Host A將IP數(shù)據(jù)包封裝成以太網(wǎng)數(shù)據(jù)幀,在以太網(wǎng)幀首部的源MAC地址為00-11-12-21-11-11,目的MAC地址為網(wǎng)關(guān)e0口的MAC地址00-11-12-21-22-22。
3. Router A從e0口接收到數(shù)據(jù)幀,把數(shù)據(jù)鏈路層的封裝去掉,Router A認(rèn)為這個IP數(shù)據(jù)包是要通過自己進(jìn)行路由轉(zhuǎn)發(fā),Router A會查找自己的路由表,錄找與目標(biāo)IP地址192.168.2.2相匹配的路由表項(xiàng),根據(jù)路由表的下一跳地址將數(shù)據(jù)包轉(zhuǎn)發(fā)到e1接口。
4. 在e1接口Router A重新封裝以太網(wǎng)幀,此時源MAC地址為Router A的e1口的MAC地址00-11-12-21-33-22,目的MAC地址為與之相連的Router B的e1口MAC地址00-11-12-21-44-44。
5. Router B從e1口接收到數(shù)據(jù)幀,同樣會把數(shù)據(jù)鏈路層的封裝去掉,并對目的IP地址進(jìn)行檢查,并與路由表進(jìn)行匹配,然后根據(jù)路由表的下一跳信息將數(shù)據(jù)包轉(zhuǎn)發(fā)到e0接口。Router B發(fā)現(xiàn)目的網(wǎng)段與自己的e0接口直接相連,通過ARP廣播,Router B獲得Host B以太口的MAC地址00-11-12-21-66-66。Router B再將IP數(shù)據(jù)包封裝成以太網(wǎng)幀,源MAC地址為Router B的e0口MAC地址00-11-12-21-55-55,目的MAC地址為Host B的MAC地址00-11-12-21-66-66。封裝完畢后,將以太網(wǎng)幀從e0接口發(fā)往Host B。
由此可見,路由只不過是一個封裝、解封裝的過程。
靜態(tài)路由配置命令:
Router(config)#ip router network [mask] {address / interface} [distance] [permanent]
參數(shù)含義如下:
network:目的網(wǎng)絡(luò)地址
mask:子網(wǎng)掩碼
address:到達(dá)目的網(wǎng)絡(luò)經(jīng)過的下一跳路由器的接口地址。
interface:到達(dá)目的網(wǎng)絡(luò)的本地接口(只能是點(diǎn)到點(diǎn)連接類型的接口,不能是廣播類型的)。
distance:管理開銷,當(dāng)需要改變默認(rèn)管理開銷時,使用該參數(shù)進(jìn)行修改
permanent:永久有效。如果配置了該項(xiàng),即使該接口被關(guān)閉,這條靜態(tài)路由也不會被刪除。
默認(rèn)路由配置命令:
Router(config)#ip router 0.0.0.0 0.0.0.0 address
參數(shù)含義如下:
“0.0.0.0 0.0.0.0”代表任何網(wǎng)絡(luò),發(fā)往任何網(wǎng)絡(luò)的包都轉(zhuǎn)發(fā)到命令指定的下一個路由器接口地址。
address:到達(dá)目的網(wǎng)段經(jīng)過的下一跳路由器的接口地址。
當(dāng)使用叫做“存根網(wǎng)絡(luò)(stub network)”的時候,靜態(tài)路由將是一個完美的選擇,這種網(wǎng)絡(luò)中只有一個與路由器的連接,所以進(jìn)出這個網(wǎng)絡(luò)都只有一條路可以走。
使用靜態(tài)路由有明顯的缺點(diǎn),那就是如果與下一個跳站點(diǎn)的連接出問題,路由器仍然將繼續(xù)通過那兒進(jìn)行路由,它不會意識到這條路徑已經(jīng)不再有效。同時,一旦你擁有較多的靜態(tài)路由信息的時候,改變和更新這些信息將成為非常耗費(fèi)時間的管理任務(wù)。
靜態(tài)路由的配置
為了能夠配置一個靜態(tài)路由,路由器必須置于全球配置模式。
IP路由配置命令格式:IP route network prefix mask {address | interface} [distance]其中network prefix(網(wǎng)絡(luò)前綴):指定目的網(wǎng)絡(luò)的網(wǎng)絡(luò)地址
mask(掩碼):目的網(wǎng)絡(luò)中的子網(wǎng)掩碼
address(地址):下一跳路由器的IP地址
interface(接口):該路由的發(fā)送接口名
distance(距離):可選,管理距離
也還有其他的參數(shù),但在這里已經(jīng)被刪除,因?yàn)樗鼈兣cCCNA考試不相關(guān)。
舉例說明:ip route 10.0.0.0 255.0.0.0 131.108.3.4 110
10.0.0.0是目標(biāo)網(wǎng)絡(luò)的網(wǎng)絡(luò)地址,255.0.0.0為目標(biāo)網(wǎng)絡(luò)的子網(wǎng)掩碼,131.108.3.4為下一跳路由器的IP地址,110為管理距離,稍后我們會講到它。
另外,我們也可以選擇指定通信數(shù)據(jù)出發(fā)時離開的接口,例如:ip route 192.168.1.0 255.255.255.0 serial 0這就告訴路由器讓數(shù)據(jù)從Serial 0接口出去,并最終達(dá)到192.168.1.0網(wǎng)絡(luò)中去。
當(dāng)你讓路由器執(zhí)行一個靜態(tài)路由的時候,讓路由器知道如何到達(dá)下一跳是至關(guān)重要的,通常情況下,下一跳站點(diǎn)都在直接相連的網(wǎng)絡(luò)里邊,路由器能夠自動識別直接相連的網(wǎng)絡(luò)。
還有一個需要緊記的事情,那就是目的網(wǎng)絡(luò)中的路由器必須知道如何返回源網(wǎng)絡(luò)中的路由器,如果它不知道如何達(dá)到源網(wǎng)絡(luò),就無法給出反饋信息,就像你沒有在一個信封上寫上回寄地址一樣。
默認(rèn)路由
一個默認(rèn)路由實(shí)際上可以看成是靜態(tài)路由的特殊情況,通常情況下,當(dāng)一個路由器需要尋找一個沒有出現(xiàn)在路由表中的網(wǎng)絡(luò)的時候,它將完全的丟棄這個數(shù)據(jù)包,請緊記路由器永遠(yuǎn)都不會默認(rèn)地將這些包廣播出去,當(dāng)然了你可以這樣設(shè)置,但是我們不建議這樣。
在下圖中,左邊的存根網(wǎng)絡(luò)只有一個路線可以讓通信數(shù)據(jù)通過去到達(dá)幾個不同的網(wǎng)絡(luò),為這幾個不同網(wǎng)絡(luò)配置多個靜態(tài)路由將是一件非常費(fèi)力的事情,但這件事情卻可以通過如下的一個命令就能完成:
路由配置命令:router(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.2
上邊這些0表示每個網(wǎng)絡(luò)以及每種子網(wǎng)掩碼,也就是說,無論來自那里的通信數(shù)據(jù)都將通過下一跳站點(diǎn)192.168.1.2傳送出去。
你也可以使用指定一個存在的接口來實(shí)現(xiàn)這個命令。如下
路由配置命令:router(config)# ip route 0.0.0.0 0.0.0.0 s0
你甚至可以配置一些靜態(tài)路由,然后在最后配置一個默認(rèn)路由,一個現(xiàn)實(shí)的使用環(huán)境就是你在一個小的辦公室工作,所以將所有未知的通信數(shù)據(jù)都傳送到總公司里邊的一個較大的路由器上,這樣就能接受總公司為你做出的路由選擇。
最后一點(diǎn),我這兒所有的網(wǎng)絡(luò)圖都僅僅是為了說明一個觀點(diǎn),所以請你不要將它們作為學(xué)習(xí)如何設(shè)計你自己網(wǎng)絡(luò)的實(shí)例來對待。