在一個典型的數(shù)據(jù)通信網(wǎng)絡(luò)中,往往存在多個不同的IP網(wǎng)段,數(shù)據(jù)在不同的IP網(wǎng)段之間交互是需要借助三層設(shè)備的,這些設(shè)備具備路由能力,能夠?qū)崿F(xiàn)數(shù)據(jù)的跨網(wǎng)段轉(zhuǎn)發(fā)。路由是數(shù)據(jù)通信網(wǎng)絡(luò)中最基本的要素。路由信息是指導(dǎo)報文轉(zhuǎn)發(fā)的路徑信息,路由過程就是報文轉(zhuǎn)發(fā)的過程。
如下圖所示,N的網(wǎng)絡(luò)怎么去往M網(wǎng)絡(luò)呢?
通過IP地址能夠?qū)ふ业揭粋€唯一的網(wǎng)絡(luò)節(jié)點,每個IP都有自己所屬的網(wǎng)段,這些網(wǎng)絡(luò)可能分布在世界各地,共同組成了全球的網(wǎng)絡(luò)。為了實現(xiàn)不同網(wǎng)段之間的相互通信,網(wǎng)絡(luò)設(shè)備需要能夠轉(zhuǎn)發(fā)來自不同網(wǎng)段的IP報文,將其送達不同的IP網(wǎng)段。
路由是指導(dǎo)報文轉(zhuǎn)發(fā)的路徑信息,通過路由可以確認轉(zhuǎn)發(fā)IP報文的路徑。路由設(shè)備是依據(jù)路由轉(zhuǎn)發(fā)報文到目的網(wǎng)段的網(wǎng)絡(luò)設(shè)備,最常見的路由設(shè)備:路由器。路由設(shè)備維護著一張路由表,保存著路由信息。
網(wǎng)關(guān)以及中間節(jié)點(路由器)根據(jù)收到的IP報文其目的地址選擇一條合適的路徑,并將報文轉(zhuǎn)發(fā)到下一個路由器。在路徑中的最后一跳路由器二層尋址將報文轉(zhuǎn)發(fā)給目的主機。這個過程被稱為路由轉(zhuǎn)發(fā)。中間節(jié)點選擇路徑所依賴的表項為稱為路由表。路由條目包含明確的出接口以及下一跳,這兩項信息指導(dǎo)IP報文轉(zhuǎn)發(fā)到相應(yīng)的下一跳設(shè)備上。
路由中包含以下信息:
目的網(wǎng)絡(luò):標(biāo)識目的網(wǎng)段
掩碼:與目的地址共同標(biāo)識一個網(wǎng)段
出接口:數(shù)據(jù)包被路由后離開本路由器的接口
下一跳:路由器轉(zhuǎn)發(fā)到達目的網(wǎng)段的數(shù)據(jù)包所使用的下一跳地址
以上這些信息標(biāo)識了目的網(wǎng)段、明確了轉(zhuǎn)發(fā)IP報文的路徑;而通過路由中包含的信息,路由設(shè)備可以轉(zhuǎn)發(fā)IP報文到相應(yīng)的路徑。目的地址、掩碼用于識別IP報文目的地址,路由設(shè)備將IP報文匹配到相應(yīng)的路由之后,根據(jù)路由的出接口、下一跳確認轉(zhuǎn)發(fā)的路徑。只有出接口并不能夠確認轉(zhuǎn)發(fā)IP報文的下一跳設(shè)備,還需要明確的下一跳設(shè)備地址。
路由器依據(jù)路由表轉(zhuǎn)發(fā)報文。路由表由一條條詳細的路由條目組成。路由表由路由條目組成,但不代表路由表中保存了所有路由,路由表中只會保存“最優(yōu)的”路由。對路由表中的路由條目的管理實際上就是路由器維護、管理路由信息的具體實現(xiàn)。
路由器依據(jù)路由表進行路由轉(zhuǎn)發(fā),為實現(xiàn)路由轉(zhuǎn)發(fā),路由器需要發(fā)現(xiàn)路由,以下為常見的路由獲取方式。
直連路由:直連接口所在網(wǎng)段的路由,由設(shè)備自動生成。
靜態(tài)路由:由網(wǎng)絡(luò)管理員手工配置的路由條目。
動態(tài)路由:路由器通過動態(tài)路由協(xié)議(如OSPF、IS-IS、BGP等)學(xué)習(xí)到的路由
display ip routing-table
Destination/Mask:表示此路由的目的網(wǎng)絡(luò)地址與網(wǎng)絡(luò)掩碼。將目的地址和子網(wǎng)掩碼“邏輯與”后可得到目的主機或路由器所在網(wǎng)段的地址。例如:目的地址為1.1.1.1,掩碼為255.255.255.0的主機或路由器所在網(wǎng)段的地址為1.1.1.0。
Proto(Protocol):該路由的協(xié)議類型,也即路由器是通過什么協(xié)議獲知該路由的。
Pre(Preference):表示此路由的路由協(xié)議優(yōu)先級。針對同一目的地,可能存在不同下一跳、出接口等多條路由,這些不同的路由可能是由不同的路由協(xié)議發(fā)現(xiàn)的,也可以是手工配置的靜態(tài)路由。優(yōu)先級最高(數(shù)值最小)者將成為當(dāng)前的最優(yōu)路由。
Cost:路由開銷。當(dāng)?shù)竭_同一目的地的多條路由具有相同的路由優(yōu)先級時,路由開銷最小的將成為當(dāng)前的最優(yōu)路由。
NextHop:表示對于本路由器而言,到達該路由指向的目的網(wǎng)絡(luò)的下一跳地址。該字段指明了數(shù)據(jù)轉(zhuǎn)發(fā)的下一個設(shè)備。
Interface:表示此路由的出接口。指明數(shù)據(jù)將從本路由器的哪個接口轉(zhuǎn)發(fā)出去。
當(dāng)路由器從多種不同的途徑獲知到達同一個目的網(wǎng)段的路由(這些路由的目的網(wǎng)絡(luò)地址及網(wǎng)絡(luò)掩碼均相同)時,路由器會比較這些路由的優(yōu)先級,優(yōu)選優(yōu)先級值最小的路由。路由來源的優(yōu)先級值(Preference)越小代表加入路由表的優(yōu)先級越高。擁有最高優(yōu)先級的路由將被添加進路由表。
RTA通過動態(tài)路由協(xié)議OSPF和手動配置的方式都發(fā)現(xiàn)了到達10.0.0.0/30的路由,此時會比較這兩條路由的優(yōu)先級,優(yōu)選優(yōu)先級值最小的路由。每一種路由協(xié)議都有相應(yīng)的優(yōu)先級。RTA通過靜態(tài)、動態(tài)路由協(xié)議學(xué)習(xí)到相同的路由條目,比較路由協(xié)議優(yōu)先級,OSPF優(yōu)先。OSPF的路由條目被加入到路由表。
在華為中,常見的路由默認值如下圖:
當(dāng)路由器通過某種路由協(xié)議發(fā)現(xiàn)了多條到達同一個目的網(wǎng)絡(luò)的路由時(擁有相同的路由優(yōu)先級),度量值將作為路由優(yōu)選的依據(jù)之一。路由度量值表示到達這條路由所指目的地址的代價。一些常用的度量值有:跳數(shù)、帶寬、時延、代價、負載、可靠性等。度量值數(shù)值越小越優(yōu)先,度量值最小路由將會被添加到路由表中。
RTA通過動態(tài)路由協(xié)議OSPF學(xué)習(xí)到了兩條目的地為10.0.0.0/30的路由,學(xué)習(xí)自同一路由協(xié)議、優(yōu)先級相同,因此需要繼續(xù)比較度量值。兩條路由擁有不同的度量值,下一跳為30.1.1.2的OSPF的路由條目擁有更小的度量值,因此被加入到路由表中。