什么是靜態(tài)路由?要想實(shí)現(xiàn)全網(wǎng)通信,也就是網(wǎng)絡(luò)中的任意兩個(gè)節(jié)點(diǎn)都能通信,就要求網(wǎng)絡(luò)中所有路由器的路由表中必須有到所有網(wǎng)段的路由。對(duì)于路由器來說,它只知道自己直連的網(wǎng)段,對(duì)于沒有直連的網(wǎng)段,需要管理員人工添加到這些網(wǎng)段的路由。
如圖1所示,網(wǎng)絡(luò)中有A、B、C、D共4個(gè)網(wǎng)段,計(jì)算機(jī)和路由器接口的IP地址已在圖中標(biāo)出,網(wǎng)絡(luò)中的3個(gè)路由器AR1、AR2和AR3如何添加路由才能使得全網(wǎng)暢通呢?
圖1 添加靜態(tài)路由的命令
AR1路由器直連A、B兩個(gè)網(wǎng)段,C、D網(wǎng)段沒有直連,需要添加到C、D網(wǎng)段的路由。
AR2路由器直連B、C兩個(gè)網(wǎng)段,A、D網(wǎng)段沒有直連,需要添加到A、D網(wǎng)段的路由。
AR3路由器直連C、D兩個(gè)網(wǎng)段,A、B網(wǎng)段沒有直連,需要添加到A、B網(wǎng)段的路由。
如圖1所示,以華為路由器為例添加路由,需要先進(jìn)入系統(tǒng)視圖[AR1],輸入“iproute-static”添加靜態(tài)路由,后面是目標(biāo)網(wǎng)段、子網(wǎng)掩碼、下一跳的IP地址。
這里一定要正確理解“下一跳”,在AR1路由器上添加到192.168.1.0 24A網(wǎng)段的路由,下一跳寫的是AR2路由器的Serial 2/0/1接口的地址,而不是AR3路由器的Serial 2/0/1接口的地址。如果轉(zhuǎn)發(fā)到目標(biāo)網(wǎng)絡(luò)要經(jīng)過一條點(diǎn)到點(diǎn)鏈路,添加靜態(tài)路由還有另外一種格式,下一跳地址可以寫成到目標(biāo)網(wǎng)絡(luò)的出口。比如可以按圖2所示在AR2路由器上添加到192.168.1.0/24網(wǎng)段的路由。請(qǐng)看仔細(xì)了,后面的Serial 2/0/0是路由器AR2的接口,這就是告訴路由器AR2,到192.168.1.0 24網(wǎng)段的數(shù)據(jù)包由Serial 2/0/0接口發(fā)送出去。
圖2 點(diǎn)到點(diǎn)鏈路的路由下一跳可以寫成出口
如圖3所示,如果路由器之間是以太網(wǎng)連接,在這種情況下添加路由,只能寫下一跳地址,而不能寫路由器的出口了,請(qǐng)想想為什么?
圖3 以太網(wǎng)接口只能填寫下一跳地址
以太網(wǎng)中可以連接多臺(tái)計(jì)算機(jī)或路由器,如果添加路由時(shí)下一跳不寫地址,就無法判斷下一跳應(yīng)該由哪臺(tái)設(shè)備接收。點(diǎn)到點(diǎn)鏈路就不存在這個(gè)問題,一端發(fā)送另一端接收,根本用不上數(shù)據(jù)鏈路層地址。請(qǐng)想想PPP協(xié)議幀格式,數(shù)據(jù)鏈路層地址字段為0xFF,根本沒有目標(biāo)地址和源地址。
路由器只關(guān)心到某個(gè)網(wǎng)段如何轉(zhuǎn)發(fā)數(shù)據(jù)包,因此在路由器上添加路由時(shí),必須是到某個(gè)網(wǎng)段(子網(wǎng))的路由,而不能是到特定地址的路由。添加到某個(gè)網(wǎng)段的路由時(shí),一定要確保IP地址的主機(jī)位全是0。
比如下面添加路由時(shí)報(bào)錯(cuò)了,是因?yàn)?72.16.1.2 24不是網(wǎng)絡(luò),而是172.16.1.0 24網(wǎng)絡(luò)中的IP地址。
如果想添加到具體IP地址的路由,子網(wǎng)掩碼要寫成4個(gè)255,這就意味著IP地址的32位全部是網(wǎng)絡(luò)位。