路由器收到報文后如何進行報文轉(zhuǎn)發(fā)?路由的查詢方式及路由表來源
一、 路由器的工作過程
馬保國馬老師的中國武術講求"接、化、發(fā)",即"接拳"、"化膿"、"發(fā)喪"。
真·接化發(fā)
而路由器生成報文轉(zhuǎn)發(fā)表的過程也是"接、化、發(fā)",但此"接、化、發(fā)"的意思為"接收路由更新信息"、"轉(zhuǎn)化為路由表項"、"發(fā)送至轉(zhuǎn)發(fā)表",當有數(shù)據(jù)報文到達路由器進行中轉(zhuǎn)時,路由器查看本地轉(zhuǎn)發(fā)表并將報文從轉(zhuǎn)發(fā)表中的匹配的網(wǎng)絡前綴表項的對應接口發(fā)出。
路由器層級“接化發(fā)”
由上圖所示,路由器分為控制層面和轉(zhuǎn)發(fā)層面,控制層面維護路由協(xié)議和路由表,轉(zhuǎn)發(fā)層面維護轉(zhuǎn)發(fā)表。用戶可以通過使用靜態(tài)路由或者動態(tài)路由協(xié)議來改變路由表表項,從而改變轉(zhuǎn)發(fā)表表項,改變報文經(jīng)過路由器時轉(zhuǎn)發(fā)的路徑。
二、路由器的作用
2.1建立維護路由表
通過靜態(tài)路由或動態(tài)路由協(xié)議建立路由表
CLI手動添加靜態(tài)路由
查看路由表中添加的靜態(tài)路由表項
2.2查閱轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)報文
轉(zhuǎn)發(fā)表通過路由表項生成,與路由表的最大不同之處在于路由表中可能存在下一跳非直連的情況,而轉(zhuǎn)發(fā)表會通過路由的迭代計算來保證報文轉(zhuǎn)發(fā)的下一跳一定是本地網(wǎng)絡接口。
當有數(shù)據(jù)報文經(jīng)過路由器進行轉(zhuǎn)發(fā)時,路由器查看本地轉(zhuǎn)發(fā)表并將報文從轉(zhuǎn)發(fā)表中的匹配的網(wǎng)絡前綴表項的對應接口發(fā)出。
路由器轉(zhuǎn)發(fā)表項
三、路由表項的來源
3.1 直連路由
路由器接口配置IP地址,接口協(xié)議與鏈路均為up后,路由器自主生成的路由條目。
路由表中的直連路由
3.2 靜態(tài)路由
通過人工配置手動為路由表添加路由條目。適用于規(guī)模較小的網(wǎng)絡環(huán)境,缺點是大型網(wǎng)絡環(huán)境下路由條目較多維護難度大、無法動態(tài)感知網(wǎng)絡發(fā)生的變化。
路由表中的靜態(tài)路由
2.3 動態(tài)路由
通過在路由器上運行動態(tài)路由協(xié)議,使路由器與路由器之間建立鄰居關系并協(xié)商路由信息。
常見的動態(tài)路由協(xié)議有RIP、OSPF、EIGRP、IS-IS、BGP等。
路由表中的動態(tài)路由(RIP及OSPF)
4、 路由表項的選擇原則
既然路由表項的來源有很多種,那如果有相同目標地址的路由表項有著不同的來源路由器將如何選擇?
路由器會根據(jù)不同的路由條目來源設定一個管理距離,管理距離越小的路由表項將會添加至路由表中,未添加至路由表的表項將作為冗余的浮動路由存在于路由器中,當被添加至路由表中的表項失效后冗余的浮動路由將頂替原路由表項添加至路由表中。
常見路由條目來源管理距離如下表所示:
不同路由信息來源的管理距離
如果路由信息來源相同,同時也有相同目標地址和掩碼的路由表項時就需要通過設置metric(度量值)來決定哪個路由表項會被添加至路由表,相同的度量值將以等價路由的方式添加至路由表,等價路由可以基于目標地址或報文順序在等價路由的多個出接口上進行負載。
當有相同目標地址及掩碼的路由表項有著不同的路由信息來源時:
RIP與OSPF均有到達192.168.24.0/24網(wǎng)絡的路由
如上圖,路由器中通過rip和ospf都學習到了192.168.24.0/24的路由,但是rip的管理距離是120,大于ospf的110,所以路由表里只加入了opsf的路由,如下圖所示:
根據(jù)管理距離值的大小,將OSPF路由條目添加進路由表中
如下圖,一旦ospf失效,作為浮動路由的RIP路由表項將頂替原ospf路由表項添加至路由表中。
OSPF路由失效后,RIP將路由條目添加進路由表
當有相同目標地址及掩碼的路由表項有著相同的路由信息來源時,通過metric決定:
例如:一臺路由器上有兩條默認靜態(tài)路由,靜態(tài)路由的管理距離為1,若兩條路由的metric相同,則這兩條路由為等價路由,均添加至路由表中。
添加兩條默認靜態(tài)路由metric值相同
路由以等價路由的方式出現(xiàn)在路由表中
若兩條路由的metric相同,則metric值較小的路由添加至路由表中,metric值較大的路由作為冗余的浮動路由存在于路由器中。
添加兩條默認靜態(tài)路由metric值不同
metric較小的路由被添加至路由表
當被添加至路由表中的表項失效后冗余的浮動路由將頂替原路由表項添加至路由表中。
當metric值較小的路由表項失效后,metric相對較大的路由被添加至路由表
五、路由的查詢方式
路由器對有路由的查詢方式分為有類查詢和無類查詢兩種方式,有類查詢下現(xiàn)已不常使用。有類和無類路由查找是路由器在收到需要轉(zhuǎn)發(fā)的數(shù)據(jù)報文后用何種方式對本地路由表查找的過程。
5.1 有類查詢方式
需要要求路由器執(zhí)行有類查詢方式在思科路由器上需要執(zhí)行"no ip classless"和"no ip cef"兩條命令。
有類路由查詢方式使用主類路由匹配原則,如果路由表中含有主類路由則匹配主類路由,若主類路由中無目標地址路由則丟棄報文,不會匹配默認路由。如果路由表中沒有主類路由則可匹配默認路由。
路由表有類查詢方式-1
路由器有類查詢方式-2
主類路由舉例,172.16.5.0/24網(wǎng)段的主類路由為172.16.0.0/16.
192.168.0.0/25網(wǎng)段的主類路由為192.168.0.0/24.
5.2 無類查詢方式
路由無類查詢方式為默認方式,無類路由查詢方式使用最長匹配原則,匹配越精確,路由越優(yōu)先。
路由表無類查詢方式
例如,一個目標地址為192.168.5.100的報文經(jīng)過一個路由器,路由器中有兩條目標地址相同但子網(wǎng)掩碼不同的路由表項(路由表表項前綴不同,屬于不同的路由,同時加入路由表及轉(zhuǎn)發(fā)表)。此時根據(jù)最長匹配原則,192.168.5.0/25明顯比192.168.5.0/24匹配長度長,所以報文從對應的2號出接口轉(zhuǎn)發(fā)。