一、路由控制的定義html
<br>1.1.IP地址與路由控制 file:///var/folders/pz/cy11_lpd5rqfs66s778032580000gn/T/51.html算法
互聯網是由路由器鏈接的網絡組合而成的。爲了能讓數據包正確地到達目標主機,路由器必須在途中進行正確地轉發。這種向「正確的方法」轉發數據所進行的處理就叫作路由控制或路由 路由器根據路由控制表(Routing Table)轉發數據包。它根據所收到的數據包中目標主機的IP地址與路由控制表的比較得出下一個應該接收的路由器。所以,這個過程當中路由控制表的記錄必定要正確無誤。但凡出現錯誤,數據包就有可能沒法到達目標。
1.2.靜態路由與動態路由
是誰又是怎樣製做和管理路由控制表的呢?路由控制分靜態(Static Routing)和動態(Dynamic Routing)兩種類型。數據庫
靜態路由:事先設置好路由器和主機中並將路由信息固定的一種方法 動態路由:讓路由協議在運行過程當中自動地設置路由控制信息的一種方法。 靜態路由的設置一般是由使用者手工操做完成的。缺點:1).每增長一個新網絡,就須要將這個被追加的網絡信息設置在以前全部的路由器上。2).一旦某個路由器發生故障,基本只能由管理員手工設置之後才能恢復正常。 使用動態路由,管理員必須設置好路由協議,其設定過程的複雜程度與具體要設置路由協議的類型有直接關係。如RIP就簡單,而OSPF就複雜。動態路由能避免靜態的1,2點問題,缺點:1).路由器爲可以按期相互交換必要的路由控制信息,會與相鄰的路由器之間互發消息,這些互換的消息會給網絡帶來必定程序的負荷,特別是環路狀況下,須要特別注意。 無論是靜態路由仍是動態路由,不要只使用其中一種,能夠將它們組合起來使用。
2.路由控制範圍
隨着IP網絡的發展,想要對全部網絡統一管理是不可能的事。所以,人們根據路由控制的範圍使用IGP(Interior Gatewary Protocol:外部網關協議)和EGP(Exterior Gateway Protocol:內部網關協議)兩種類型的路由協議。
互聯網中各類組織機構沒有管理者,也沒有被管理者,每一個組織之間保持平等的關係。網絡
2.1.IGP與EGP
路由協議大體分爲兩大類,一類是外部網關協議EGP,另外一類是內部網關協議IGP.
IP地址分爲網絡部分和主機部分,EGP和IGP的關係與IP地址相似,EGP相似IP的網絡部分,能夠根據EGP在區域網絡之間(或ISP之間)進行路由選擇;IGP相似Ip的主機部分,根據IGP在區域網絡內部(或ISP內部)進行主機識別。
由此,路由協議被分爲EGP和IGP兩個層次,沒有EGP就不可能有世界上各個不一樣組織機構之間的通訊,沒有IGP機構內部也就不可能進行通訊。
IGP中還可能使用RIP,RIP2,OSPF等衆多協議 ,EGP使用的是BGP協議。ide
2.2.自治系統與路由協議
制定本身的路由策略,並以此爲準在一個或多個網絡羣體中採用的小型單位叫作自治系統(AS: Autonomous System)或路由選擇域(Routing Domain)工具
3.路由算法
路由控制有各類各樣的算法,其中最具表明性的有兩種,是距離向量算法和鏈路狀態算法
3.1.距離向量算法
距離向量算法(Distance-Vector)是指根據距離(代價:至關於所要通過的路由器的個數)和方向決定目標網絡或目標主機位置的一種方法。
路由器之間能夠互換目標網絡的方向及其距離的相關信息,並以這些信息爲基礎製做路由器由控制表。這種方法在處理上比較簡單,不過因爲只有距離和方向的信息,因此當網絡變得分外複雜時,在得到穩定的路由信息以前須要消耗必定時間(也叫路由收斂),也極易發生路由循環等問題。
3.2.鏈路狀態算法
鏈路狀態算法(Link-State)是路由器在瞭解網絡總體鏈接狀態的基礎上生成路由控制表的一種方法。該方法中,每一個路由器必須保持一樣的信息才能進行正確的路由選擇。
距離向量算法中每一個路由器掌握的信息都不相同,通往每一個網絡所耗的距離(代價)也根據路由器的不一樣而不一樣,所以,該算法的一個缺點就是不太容易判斷每一個路由器的信息是否正確。
而鏈路狀態算法中全部路由器持有相同的信息,對於任何一臺路由器,網絡拓撲都徹底同樣。所以,只要某一臺路由器與其餘路由器保持一樣的路由控制信息,就意味着該路由器上的路由信息是正確的,只要每一個路由器儘快地與其餘路由器同步路由信息,就可使路由信息達到一個穩定的狀態。所以,即便網絡結構變得複雜,每一個路由器也可以保持正確的路由信息、進行穩定的路由選擇,這也是該算法的一個優勢。
爲了實現上述機制,鏈路狀態算法付出的代價就是如何從網絡代理獲取路由信息表,這一過程至關複雜。設計
4.RIP
RIP(Routing Information Protocol)是距離向量型的一種路由協議,普遍用於LAN。
4.1.廣播路由控制信息
RIP將路由控制信息按期(30s一次)向全網廣播,因爲可能丟包,所以RIP規定等待5次,若是等了6次(180S)仍未收到路由信息,纔會真正關閉鏈接。
過程:
1).30S一次,將本身所知道的路由信息廣播出去。
2).將已知的路由信息通過一跳以後繼續廣播。
3).以此類推,逐步傳播路由信息。代理
4.2.根據距離向量肯定路由
RIP基於距離向量算法決定路徑,距離的單位爲「跳數」,跳數是指所通過的路由器的個數。RIP但願儘量少經過路由器將數據包轉了到目標IP地址。根據距離向量生成距離向量表,再抽出較小的路由生成最終的路由控制表。code
4.3.使用子網掩碼時的RIP處理
RIP雖然不交換子網掩碼信息,但能夠用於使用子網掩碼的網絡環境。採用RIP進行路由控制的範圍內必須注意兩點:
1).因IP地址的分類而產生不一樣的網絡地址時
2).構造網絡地址長度不一樣的網絡環境時orm
4.4.RIP中路由變動時的處理
RIP的基本行爲可概括爲以下兩點:
1).將本身所知道的路由信息按期進行廣播
2).一旦認爲網絡被斷開,數據將沒法流過此路由器,其餘路由器也就能夠得知網絡已經斷開。
不過,這兩點不論哪一種方式都存在一些問題。
如:在非環路的狀況下,路由器A將網絡A的鏈接信息發送給路由器B,路由器B又將本身掌握的路由信息在原來的基礎上加1跳後發送給路由器A和路由器C,假定這時路由器A與網絡A的鏈接發生了故障。路由器A雖然覺察到本身與網絡A的鏈接已經斷開,沒法將網絡A的信息發送給路由器,但它會收到路由器B曾經獲知的信息,這就使得路由器A誤認爲本身的信息還能夠經過路由器B到達網絡A。
像這樣收到本身發出去的消息,這個問題被稱爲無限計數。爲了解決這個問題能夠採起如下兩種方法:
1).最長距離不超過16.由此即便發生無限計數的問題,也能夠從時間上進行控制
"距離爲16"這個信息只會被保留120秒,一旦超過這個時間,信息將會被刪除,沒法發送,這個時間由一個叫垃圾收集計時器的工具進行管理。
2).規定路由器再也不把所收到的路由器由消息原路返還給發送端,這也被稱做水平分割(Split Horizon)
然而這咱方法對有些網絡來講是沒法解決問題的,在網絡自己就有環路的狀況下。爲了解決這個問題,人們提出了」毒性逆轉「和」轉發更新「
毒性逆轉:指當網絡中發生鏈路被斷開的時候,不是再也不發送這個消息,而是將這個沒法通訊的消息轉播出去,即發一個距離爲16的消息。
觸發更新:指當路由信息發生變化時,不等待30S而是馬上發送出去的一種方法。
有了這兩種方法,在鏈路不通時,能夠迅速傳送消息以使路由信息儘快收斂。
在一個具備衆多環路的複雜的網絡環境中,路由信息想要達到一個穩定的狀態是須要花一段時間,爲了解決這個問題,必須明確地掌握網絡結構,在瞭解究竟哪一個鏈路斷開後再進行路由控制很是重要。爲此,能夠採用OSPF.
4.5.RIP2
新的特色:
1).做用多播
2).支持子網掩碼
3).路由選擇域
4).外部路由標誌
5).身份驗證密鑰
5.OSPF
OSPF(Open Shortest Path First)是根據OSI的IS-IS協議而提出的一種鏈路狀態型路由協議。因爲採用鏈路狀態類型,因此即便網絡中有環路,也可以進行穩定的路由控制。
另外,OSPF支持子網掩碼,曾經在RIP中沒法實現的可變長度子網構造的網絡路由控制成爲現實。
爲了減小網絡流量,OSPF還引入了「區域」這一律念。區域是將一個自治網絡劃分爲若干個更小的範圍,由此,能夠減小路由協議之間沒必要要的交換。
OSPF能夠針對IP首部中的區分服務(TOS)字段,生成多個路由控制表。不過也會出現已經實現了OSPF功能的路由器沒法支持這個TOS的狀況。
5.1.OSPF是鏈路狀態型路由協議
OSPF爲鏈路狀態型路由協議。路由器之間交換鏈路狀態生成網絡拓撲信息,而後再根據這個拓撲信息生成路由控制表。
RIP的路由選擇,要求途中所通過的路由器個數越少越好。與之相比,OSPF能夠給每條鏈路賦予一個權重(也能夠叫作代價, 這個代價只用於發送端,接收凋不須要考慮),並始終選擇一個權重最小的路徑做爲最終路由。也就是說OSPF以每一個鏈路上的代價爲度量標準,始終選擇一個總的代價最小的一條路徑。
5.2.OSPF基礎知識
在OSPF中,把鏈接到同一個鏈路的路由器稱相鄰路由器(Neighboring Router)。在一個相對簡單的網絡結構中,例如每一個路由器僅跟一個路由器相互鏈接時(在專線網絡中,路由器之間採用PPP相連),相鄰路由器之間能夠交換路由信息。可是在一個比較複雜的網絡中,例如在同一個鏈路中加入以太網或FDDI等路由器時,就不須要在全部相鄰的路由器之間都進行控制信息的交換,而是肯定一個指定路由器(Designated Router),並以它爲中心交換路由信息便可。
RIP中包的類型只有一種,它利用路由控制信息,一邊確認是否鏈接了網絡,一邊傳送網絡信息。可是這種方式,有一個嚴重的缺點,那就是,網絡個數越多,每次所要交換的路由控制信息就越大,並且當網絡已經處於比較穩定的、沒有什麼變化的狀態時,仍是要按期交換相同的路由控制信息,這在必定程序浪費了網絡帶寬。
而在OSPF中,根據做用不一樣能夠分爲5種類型的包:
經過發送問候(HELLO)包確認是否鏈接,每一個路由器爲了同步路由控制信息,利用數據庫描述包相互發送路由摘要信息和版本信息
若是版本較老,則首先發出一個鏈路狀態請求包(Link State Request)請求路由控制信息,而後由鏈路狀態更新包接收路由狀態信息
而後由鏈路狀態更新包(Link State Update)接收路由狀態信息,
最後再經過鏈路狀態確認包(Link State ACK Packet)通知你們本地已經接收到路由控制信息。
有了這樣的機制後,OSPF不只能夠大大減小網絡流量,還能夠達到迅速更新路由信息的目的。
5.3.OSPF工做原理
OSPF中進行鏈接確認的協議叫作HELLO協議
LAN中每10S發送一個HELLO包,沒有HELLO包沒有到達,則進行鏈接是否斷開的判斷,具體爲:容許空等3次,直到第4次(40S後)仍無任何反饋就認爲鏈接已經斷開。以後在進行鏈接斷開或恢復鏈接操做時,因爲鏈路狀態發生了變化,路由器會發送一個鏈路狀態更新包(Link State Update)通知其餘路由器網絡狀態的變化。
鏈路狀態更新包所要傳送的消息大體分爲兩類:一是網絡LSA(Network Link State Advertisement), 另外一個是路由器LSA(Router Link State Advertisement).
網絡LSA是以網絡爲中心生成的信息,表示這個網絡都與哪些路由器相鏈接;而路由器LSA是以路由器爲中心生成的信息,表示這個路由器與哪些網絡相鏈接。
若是這兩種信息(除這兩種信息外還有網絡彙總LSA和自治系統外部信息)主要採用OSPF發送,每一個路由器就均可以生成一個能夠表示網絡結構的鏈路狀態數據庫。能夠根據這個數據庫,採用Dijkstra算法(最短路徑優先算法)生成相應的路由控制表。
相比距離向量,由上述過程生成的路由控制表更加清晰不容易混淆,還能夠有效地下降無線循環問題的發生。不過,當網絡規模逐漸變大時,最短路徑優先算法的處理時間就會變得越長,對CPU和內存的消耗也就越大。
5.4.將區域分層化進行細分管理
鏈路狀態型路由的問題在於:當網絡規模愈來愈大時,表示鏈路狀態的拓撲數據庫就變得愈來愈大,路由控制信息的計算也就越困難。OSPF爲減小計算負荷,引入了區域的概念。
區域:指將鏈接在一塊兒的網絡和主機劃分紅小組,使一個自治系統(AS)內能夠擁有多個區域。不過具備多個區域的自治系統必需要有一個主幹區域(Backbone Area),而且全部其餘區域必須都與這個主幹區域相鏈接。
區域邊界路由器:鏈接區域與主幹區域的路由器,
內部路由器:區域內部的路由器
主幹路由器:只與主幹區域內鏈接的路由器
AS邊界路由器:與外部相鏈接的路由器。
每一個區域內的路由器都持有本區域網絡拓撲的數據庫,然而,關於區域以外的路徑信息,只能從區域邊界路由器那裏獲知它們的距離。區域邊界路由器也不會將區域內的鏈路狀態信息所有原樣發送給其餘區域,只會發送本身到達這些路由器的距離信息,內部路由器所持有的網絡拓撲數據庫就會明顯變小。
換句話,就是指內部路由器只瞭解區域內部的鏈路狀態信息,並在該信息的基礎上計算出路由控制表。這種機制不只能夠有效地減小路由控制信息,還能減輕處理的負擔。
此外,做爲區域出口的區域邊界路由器若只有一個的話叫作末端區域,末端區域內不須要發送區域外的路由信息。它的區域邊界路由器將成爲默認路徑傳送路由信息便可。所以,因爲不須要了解到達其餘各個網絡的距離,因此它能夠減小必定地路由信息。
要想在OSPF中構造一個穩定的網絡,物理設計和區域設計一樣重要,若是區域設計不合理,就有可能沒法充分發揮OSPF的優點。
六、BGP
BGP(Border Gateway Protocol),邊界網關協議是鏈接不一樣組織機構(或者說鏈接不一樣自治系統)的一種協議。所以,它屬於外部網關協議(EGP),具體劃分,它主要用於ISP之間相鏈接的部分。只有BGP、RIP和OSPF共同進行路由控制,纔可以進行整個互聯網的路由控制。
6.1.BGP和AS號
在RIP和OSPF中利用IP的網絡地址部分進行着路由控制,然而BGP則須要放眼整個互聯網進行路由控制。BGP的最終路由控制表由網絡地址和下一站的路由器組來表示,不過它會根據所要通過的AS個數進行路由控制。
ISP、區域網絡等會將每一個網絡域編配成一個個自治系統(AS: Autonomous System)進行管理。它們爲每一個自治系統分配一個16比特的AS編號。BGP就是根據這個編號進行相應的路由控制。
AS之間是否要進行數據中轉由它們本身決定。若是進行中轉,就意味着網絡負荷的加劇以及成本的提高,所以,這種中轉合約一般都會涉及中轉費用。
如下咱們將假定這二者都容許中轉來介紹BGP
6.2.BGP是路徑向量協議
BGP揚聲器:根據BGP交換路由控制信息的路由器。BGP揚聲器爲了在AS之間交換BGP信息,必須與全部AS創建對等的BGP鏈接。而若是AS內部有多個BGP揚聲器,爲了使AS內部也能夠交換BGP信息,就須要創建BGP鏈接。
AS路徑信息訪問列表(AS Path List):BGP中數據包送達目標網絡時,會生成一箇中途通過全部AS的編號列表。若是針對同一個目標地址出現多條路徑時,BGP會從AS路徑信息訪問列表中選擇一個較短的路由。
在作路由選擇時使用的度量,RIP中表示爲路由器個數,OSPF表示爲每一個子網的成本,而BGP則用AS進行度量標準。RIP和OSPF本着提升轉發效率爲目的,考慮到了網絡的跳數和網絡的帶寬。BGP則基於AS之間的合約進行數據包的轉發。BGP通常選擇AS數量少的路徑,不過仍然要遵循各個AS之間簽約的細節進行更細粒度的路由選擇。
在AS路徑信息訪問列表中不只包含轉發方向和距離,還涵蓋了途徑全部AS的編號,所以它不是一個距離向量型協議。此處對網絡構造僅用一元化表示,所以也不屬於鏈路狀態型協議。像BGP這種根據所要通過的路徑信息訪問列表進行路由控制的協議屬於路徑向量型協議。做爲距離向量型的RIP協議,由於沒法檢測出環路,因此可能發生無限計數的問題。而路徑向量型因爲可以檢測出環路,避免了無線計數的問題,因此令網絡更容易進入一個穩定的狀態。同時,它還支持策略路由(指在發送數據包時,能夠選擇或指定所要經過的AS的意思)的優點。
7.MPLS
現現在,在轉發IP數據包的過程當中除了使用路由技術時,還在使用標記交換技術。路由技術基於IP地址中最長匹配原則進行轉發,而標記交換則對每一個IP包都設定一個叫作「標記」的值,而後根據這個「標記」再進行轉發。標記交換技術中最具表明性的當屬多協議標記交換技術,即MPIS(Multi Protocol Label Switching)。
MPLS的標記不像MAC地址直接對應到硬件設備,所以,MPLS不須要具有以太網或ATM等數據鏈路層協議的做用,而只須要關注它與下面一層IP層之間的功能和協議便可。
因爲基於標記的轉發一般沒法在路由器上進行,因此MPLS也就沒法被整個互聯網採用。它的轉發處理方式甚至與IP網也有所不一樣。
7.1.MPLS的網絡基本動做
標記交換路由器(LSR: Label Switching Router):MPLS網絡中實現MPLS功能的路由器。特別是與外部網絡鏈接的那部分LSR叫作標記邊緣路由器(LER: Label Edge Router)。MPLS正是在LER上對數據包進行追加標記和刪除標記的操做。
在一個數據包上附加標記是一個及其簡單的動做。若是數據鏈路原本就有一個至關於標記的信息,那麼能夠直接進行映射。若是數據鏈路中沒有攜帶任何至關於標記的信息(最典型的就是以太網),那麼就須要追加一個全新的墊片頭(Shim Header)。這個墊片頭中就包含標記信息(介於IP首部與數據鏈路首部之間)。
如圖展現了數據從以太網的Ip網開始通過MPLS網再發給其餘Ip網的整個轉發過程。數據包在進入MPLS時,在其IP首部的前面被追加了32比特的墊片頭(其中包含20比特的標記值)。MPLS網絡內,根據墊片頭中的標記進一步進行轉發。當數據離開MPLS時,墊片頭就被去除。在此咱們稱附加標記轉發的動做爲Push,替換標記轉發的動做爲Swap,去掉標記轉發的動做爲Pop
MPLS中目標地址和數據包都要經過由標記決定的同一個路徑,這個路徑叫標記交換路徑(LSP, Label Switch Path)。LSP又能夠劃分爲:
1)一對一鏈接的點對點LSP,
2)一對多綁定的合併LSP兩類。
擴展LSP有兩種方式。能夠經過各個LSP向本身鄰接的LSR分配MPLS標記,也能夠由路由協議載着標記信息進行交互。LSP屬於單方向的通路,若是須要雙向的通訊則須要兩個LSP。
7.2.MPLS的優勢MPLS的優點可概括爲兩點:1).轉發速度快。路由器轉發IP數據包時,先對目標地址和路由控制表中可變長的網絡地址進行比較,而後從中選出最長匹配的路徑才能進行轉發。MPLS則否則,它使用固定長度的標記信息,使得處理更加簡單,能夠經過高速的硬件實現轉發。此外,相比互聯網中的主幹路由器須要保存大量路由表才能進行處理的現狀,MPLS只須要設置必要的幾處信息便可,所要處理的數據量也大幅度減小。並且,除了IPv4, IPv6以外,針對其餘協議,MPLS仍然能夠實現高速轉發。2).利用標記生成虛擬的路徑,並在它的上面實現IP等數據包的通訊。基於這些特色,「盡力而爲」的IP網也能夠提供基於MPLS的通訊質量控制、帶寬保證和×××等功能。