導讀:路由器是連接兩個或多個網(wǎng)絡的硬件設備,工作在TCP/IP協(xié)議的網(wǎng)絡層,在網(wǎng)絡間扮演網(wǎng)關的角色。路由器的一個作用是連通Internet中各局域網(wǎng)、廣域網(wǎng),另一個作用是選擇數(shù)據(jù)包的最佳傳送線路。
一年一度的雙11網(wǎng)購盛典就要到了,不少商家推出了保價雙11的活動。作為剁手黨的我立刻開啟了買買買模式,一小波包裹已在途中。我每天都懷著迫切的心情刷幾遍物流信息,盼望著各快遞站點加速收發(fā),盡早將包裹送到我手中。其實,在支撐我們網(wǎng)購的Internet網(wǎng)絡中,也有收發(fā)數(shù)據(jù)包的快遞站點——路由器。
什么是路由器
路由器是連接兩個或多個網(wǎng)絡的硬件設備,工作在TCP/IP協(xié)議的網(wǎng)絡層,在網(wǎng)絡間扮演網(wǎng)關的角色。路由器的一個作用是連通Internet中各局域網(wǎng)、廣域網(wǎng),另一個作用是選擇數(shù)據(jù)包的最佳傳送線路。
想要深入了解路由器,要從路由器的內(nèi)部結構講起了。
路由器由輸入接口、輸出接口、交換結構、路由選擇處理器四個部分組成。執(zhí)行兩個最重要的基本功能:路由功能和交換(轉發(fā))功能。相應的路由器內(nèi)部整體也分為路由選擇和分組轉發(fā)兩個部分。
路由選擇部分工作在控制層面,主要由軟件實現(xiàn)。核心組件是路由選擇處理器,通過運行路由協(xié)議維護路由表以及連接的鏈路狀態(tài)信息,并生成轉發(fā)表。
分組轉發(fā)部分工作在數(shù)據(jù)層面,主要由硬件實現(xiàn)。核心組件是處理芯片和交換結構,交換結構是一個路由器中的網(wǎng)絡,將路由器的輸入接口和輸出接口相連接。依據(jù)轉發(fā)表來轉發(fā)分組數(shù)據(jù)包,將輸入接口的數(shù)據(jù)包移送至適當?shù)妮敵鼋涌?在路由器內(nèi)部進行)。
路由表:可以是管理員手工配置的,也可以通過動態(tài)路由協(xié)議自動學習形成,通常由路由協(xié)議和路由管理模塊維護,包括IP地址/IP子網(wǎng)、下一跳、路由優(yōu)先級、度量值等信息。
轉發(fā)表:是基于路由表生成的,路由?實際轉發(fā)時使用轉發(fā)表,包括IP地址/IP子網(wǎng)和下一跳/出接口信息。
路由器根據(jù)IP數(shù)據(jù)包的目的網(wǎng)段地址查找路由表決定轉發(fā)路徑,路由表記載著路由器所知的所有網(wǎng)段的路由信息。路由信息中包含要到達此目的網(wǎng)段需要將IP數(shù)據(jù)包轉發(fā)至哪一個下一跳相鄰設備地址。而轉發(fā)表記載著由哪個接口發(fā)出。
轉發(fā)表中每條轉發(fā)項都指明分組到某個網(wǎng)段或者某個主機應該通過路由器的哪個物理接口發(fā)送,然后就可以到達該路徑的下一個路由器,或者不再經(jīng)過別的路由器而傳送到直接相連的網(wǎng)絡中的目的主機。
有了路由表和轉發(fā)表,就好比快遞站點根據(jù)包裹目的地查到了下一步要將包裹送到哪一個站點,由誰來負責發(fā)出。這樣本站點的工作就可以順利完成了。
值得一提的是,路由表被存放在路由器的RAM上,這就意味著路由器如果要維護的路由信息較多時,必須有足夠的RAM,并且路由器重新啟動后原來的路由信息都會消失。
路由器如何傳送數(shù)據(jù)呢
數(shù)據(jù)包在網(wǎng)絡上的傳送就好像是快遞公司運送包裹一樣,通過多個快遞站點的收發(fā)最終將包裹送到客戶手中。類似的,每一個路由器只負責本站數(shù)據(jù)包通過最佳路徑轉發(fā),通過多個路由器一站一站的收發(fā)將數(shù)據(jù)包通過最佳路徑轉發(fā)到目的地。
(如果實施路由策略,數(shù)據(jù)包不一定選擇最佳路徑)
每個路由器都有多個輸入接口和多個輸出接口,它的輸入接口收到數(shù)據(jù)包后去除數(shù)據(jù)鏈路層封裝,交給網(wǎng)絡層處理。網(wǎng)絡層首先檢查報文是否是送給本機的,如果是,去掉網(wǎng)絡層封裝,送給上層協(xié)議處理。如果不是,則根據(jù)報文的目的地址將報文交給相應輸出接口的數(shù)據(jù)鏈路層,封裝接口對應的鏈路層協(xié)議后,將報文發(fā)送給下一個路由器。下一個路由器也重復此動作,直至傳給路徑上最后的路由器,再由其將數(shù)據(jù)包送交目的主機。
怎樣實現(xiàn)數(shù)據(jù)包的最佳傳送呢
講到這里我們發(fā)現(xiàn),怎樣實現(xiàn)“最佳路徑”是個關鍵,別急,路由器是有自己的選路原則的。快來一起了解下吧。
我們先從了解IP數(shù)據(jù)包開始。IP數(shù)據(jù)包結構如下:
IP數(shù)據(jù)包中的目的IP地址是IP數(shù)據(jù)包的重要字段,路由器會根據(jù)數(shù)據(jù)包中的目的IP地址查找路由表,決定數(shù)據(jù)包的轉發(fā)方向。
路由器在決定數(shù)據(jù)包轉發(fā)路徑的時候會依次按照三大規(guī)則來選擇路由,以確保實現(xiàn)“最佳路徑”。
01
最長匹配原則
最長匹配原則就是在路由查找時,使用路由表中到達同一目的地的子網(wǎng)掩碼最長的路由。如下所示,去往20.1.1.1的數(shù)據(jù)包在路由表中同時有3條路由可以為此數(shù)據(jù)包進行轉發(fā),分別是20.0.0.0、20.1.0.0和20.1.1.0。由于它們依次匹配到了網(wǎng)段的前8位、16位、24位,根據(jù)最長匹配原則,去往20.1.1.1的數(shù)據(jù)包會用20.1.1.0的路由條目進行轉發(fā),也就是從接口gei_0/1/0/3進行轉發(fā)。
02
路由優(yōu)先級
一臺路由器上可以同時運行多個路由協(xié)議。不同的路由協(xié)議都根據(jù)自己的標準來選擇路由,有的采用下一跳次數(shù)、有的采用帶寬,并且每個路由協(xié)議都把自己認為是最好的路由送到路由表中。
這樣到達一個同樣的目的地址,可能由多條分別由不同路由協(xié)議學習來的路由,路由器必須選擇其中的一條路由加入到路由表中。由于這些路由的子網(wǎng)掩碼相同,最長匹配原則已無法用來挑選路由,路由器應該如何做呢?這時該路由優(yōu)先級上場了。
路由器上的不同的路由協(xié)議默認有自己的路由優(yōu)先級,數(shù)值小的優(yōu)先級高。當我們有到達同一個目的地址的多條路由時,可以根據(jù)優(yōu)先級的大小,選擇優(yōu)先級數(shù)值最小的作為最優(yōu)路由,同時將這條路由寫進路由表中。
在上圖中,一臺路由器上同時運行兩個路由協(xié)議:RIP(優(yōu)先級120)和OSPF(優(yōu)先級110)。RIP與OSPF協(xié)議都發(fā)現(xiàn)并計算出了到達同一條網(wǎng)絡20.0.0.0/16的最佳路徑,但由于選路算法不同選擇了不同的路徑。由于OSPF具有比RIP高的路由優(yōu)先級(數(shù)值較小),所以路由器將OSPF學到的這條路由加入到路由表中。
03
Metric值
在路由器中,路由協(xié)議會學習到所有可能的路由,當同一個路由協(xié)議學習到的路由不止一條時,路由優(yōu)先級就不管用了,路由器該如何處理呢?這時輪到Metric值出場了。路由協(xié)議根據(jù)選路算法賦予每一跳一個metric值,每條路由的metric值等于路徑上每一跳metric值的和。比較各條路由的metric值,選擇metric值最小的路由為最佳路由。
例如,R1到R4有三條路由:R1-R2-R4、R1-R4和R1-R3-R4,R1-R2-R4路由的metric值為20(10+10),其他兩條路由的metric值為30,路由器會優(yōu)先選擇R1-R2-R4作為最佳路由。
講完路由,我們再來談談轉發(fā)。傳統(tǒng)的IP轉發(fā)表已不能滿足電信骨干網(wǎng)的高速轉發(fā)需求,為了提升轉發(fā)效率,路由器采用MPLS技術,在路由表的基礎上生成MPLS標簽轉發(fā)表,MPLS為每個IP數(shù)據(jù)包提供一個標簽,與IP數(shù)據(jù)包一起封裝到新的MPLS數(shù)據(jù)包,標簽決定IP數(shù)據(jù)包的傳輸路徑以及優(yōu)先順序。通過MPLS標簽轉發(fā)數(shù)據(jù),路由器只需讀取數(shù)據(jù)包中的MPLS標簽,無需讀取每個IP數(shù)據(jù)包中的IP地址信息,因此數(shù)據(jù)包的轉發(fā)速度大大提升。
5G網(wǎng)絡正在如火如荼地建設,網(wǎng)絡中的數(shù)據(jù)量也會越來越大。路由器將會與SR、SDN等技術結合,提供更為簡捷、高效的數(shù)據(jù)傳送。