什麼是Internet路由

來源:互聯網
上載者:User

路由概述

路由的過程可以概述為一個節點找到通往每個可能目的地的路徑。路由出現在從第一層到第七層的每一層中。人們所熟悉的路由是出現在第三層(網路層)的,因此我們也只討論第三層的IP路由。

交換路由資訊的協議聯結世界上的許多路由器,儘管這些路由器並不同類,通過路由表還是可以提供它們共同的網路視圖。路由表為路由器儲存了到達網路上任一目的地所需要的一切必要的資訊。

路由協議

各種各樣的路由協議被用來填寫網路中的路由表。象BGP,OSPF,RIP和ISIS這樣的協議可以傳輸給所有的路由器一個正確和一致的網路視圖。

路由協議想要實現目標

你能夠想象如果每個路由器都儲存從它的節點所能到達的每個目標點所需的資訊,很可能該路由器會積累一張龐大的路由表。由於物理上(cpu,記憶體)的限制路由器很難有時就根本不可能處理一個龐大的路由表。因此在不影響到達每個目的地的能力的情況下,我們要使路由表最小化。例如,一個路由器通過串連到另一個路由器一個DS1鏈路串連到Internet,那麼這個路由器可以將Internet上所有節點的資訊都儲存,或者它也可以將所有DS1串列鏈路外的非本地的資訊都不儲存。也就是說路由器沒有在它的路由表中儲存任何有關資料“包”要尋找的非本網目的地的資訊,而是將這些“包”發送到串列鏈路另一端的路由器,由這個路由器來提供必要的資訊。我們常把像本例中我們所說的在串列DS1鏈路另一端的路由器稱為“Gateway of Last Resort”。這種簡單的小把戲可以替路由表節省30個數量級的條目。路由資訊沒有必要被過於頻繁地在路由器之間交換。通常路由表中的攪拌器給任何路由器所能提供的貧乏的記憶體和CPU施加了許多不必要的壓力。資訊的複製不應該影響路由器的轉寄操作。儘管沒有必要每毫秒都重新整理路由表,當然也不能每隔一個星期才重新整理一次路由表。路由的一重要的目標就是為主機提供能夠準確反映當前網路狀態的一張路由表。

路由器最重要的操作是將接收的包發送到正確的路徑。未經路由的包可能會導致資料丟失。而路由表的不一致將會導致路由環路並使某個資料包在兩個相鄰的介面之間被迴圈發送。

人們十分希望所有的路由器都能有快速的收斂性。收斂性可以被非正式地定義為計量所有路由器獲得一致的網路視圖的速度的單位。人們希望有極小的收斂時間,因為如此網路上的每個路由器即使在網路拓撲(即網路視圖)被嚴重改變的情況下也能準確地反映當前的網路拓撲。當網路拓撲被改變時,每個路由器必須傳輸資料以協助其它路由器來收斂出正確的網路視圖。但是在重新整理路由表時快速收斂也存在著它的問題。如果一個鏈路在迅速地震動(一會兒斷開,一會兒合上),它會產生大量的安裝和撤銷的請求。這個鏈路最終將會耗盡網路上每個路由器的資源,因為其它路由器被強迫快速安裝或撤消這個路由。因此,即使快速收斂是路由協議的目標,它也不是所有網路難題的萬能藥。

距離向量路由

距離向量路由協議向路由器的所有鄰居分發一張記錄形式為<目標,開銷>的列表。這些記錄為網路中的每個非本節點的其它節點賦上了開銷這個值。值得注意的是這些資訊只分發給源路由器的鄰路由器。這裡的鄰路由器常常是物理上的,但在eBGP中也有適用於邏輯上的情況。開銷的意思是從源路由器到目標節點的鏈路開銷的總和。源路由器定期地重新整理它的距離向量記錄並把記錄分發給它的鄰路由器。鄰路由器將過去接收到的記錄與現在的比較,如果過去的開銷較小路由器將沿過去接收的距離向量記錄所指的路徑發送輸出。

許多距離向量在實際使用時將會碰到無窮大的問題。例如,我們假設所有的鏈路都有一個開銷單元並且每一對相鄰節點之間的鏈路對應一個單元。如果路由器X串連到路由器Y並且路由器Y串連到路由器Z1,我們將會發現無窮大的問題。Y知道到Z要有1個單元的開銷並且X知道到Z要2個單元的開銷。假設鏈路YZ關閉,這條鏈路的開銷就成為無窮大(2)。現在Y知道到達Z的開銷是無窮大,它就將這個距離向量路由發送給X。假設X這時發送給Y一個距離向量路由聲稱它到達Z要2個單元的開銷。現在Y就會認為它能通過X到達Z,它就發送給X一個重新整理的距離向量路由聲稱它到達Z的開銷是3個單元(如 圖3)。請注意X沒有想到Y發給它的這個距離向量路由是由它發送給Y的那個距離向量路由推算來的。這就是距離向量路由的嚴重缺陷,在它們未改進的結構中不包含路由障礙的資訊。正例所示路由器將會不斷改變到Z的路徑資訊。X和Y這兩個路由器將會永遠交換這個有關Z路由器的路徑資訊或者直到開銷單元的值到達某一個事先約定的無窮大的值(例如,在RIP中是15)。

X--------------------Y--------------------Z

Y:1 X:1 X:2
Z:2 Z:1 Y:1

[ 圖一 ]

X--------------------Y--------* *---------Z

Y:1 <------------- Z:無窮大
Z:2 -------------> X:1

[ 圖二 ]

X--------------------Y--------* *---------Z

Z:無窮大(從 Y) -> X:1
Y:1 <------------- Z:3

[ 圖三 ]

使用路徑向量路由就可以解決無窮大的問題。每個距離向量也包括他所通過的路徑(4)。路由器如果接收到一個路徑向量中包含自己的重新整理記錄,路由器將不會重新整理該記錄(5)。邊界網關協議(The Border Gateway Protocol)就使用了上述的方法以解決無窮大的問題。很明顯如果你想使路由表包含路由器所傳輸的AS(Autonomous Systems on the internet)路徑資訊,你將必須要向路由表中添入更多的資訊。因此BGP的設計者決定犧牲一點路由器能夠承受的起的儲存空間和處理能力。

X--------------------Y--------------------Z

Y:1 (Y) X:1 (X) X:2 (YX)
Z:2 (YZ) Z:1 (Z) Y:1 (Y)

[ 圖四 ]

X--------------------Y--------* *---------Z

Y:1 (Y) X:1 (X)
Z:2 (Y Z) Z:infinity

[ 圖五 ]

另一個無窮大問題的解決之道是分離範圍。主要思想是,如果鄰路由器處在通往目的地的路徑上的第二個節點,路由器就不向該鄰路由器廣播該路徑。這個解決的辦法可以用剛才的例子來說明。因為到Z的路徑是從X通過Y再到Z,又因為Y是X的鄰路由器,所以該路徑從X廣播時Y不被廣播。

鏈路狀態路由

一個路由器在使用鏈路狀態路由時,它將會向網路上所有其它的路由器分發它到它鄰路由器的距離。這就使每個路由器不用知道從某一源節點到目的節點的開銷,該路由器就可以產生一張路由表。環路的問題不會出現,因為每個路由器都擁有整個網路的拓撲。主要思想是一個路由器產生有3個部分的記錄包含源路由器(它自己)、鄰路由器和到鄰路由器的開銷。因此,如果路由器A通過一條開銷為3的鏈路串連到路由器B,並且路由器A通過一條開銷為5的鏈路串連到路由器C,那麼路由器將會向網路上所有的路由器廣播鏈路狀態包(LSPs)和。每個路由器將可以從接收到的LSPs中推算出一條通向目的節點的最短路徑。

很顯然,LSP是收斂過程中的一個組成部分。如果向網路中加入了錯誤的LSP。將會導致錯誤的路由資訊(會使包沿比原來更長的路徑傳輸)甚至產生路由黑洞。如果路由器C向其它路由器廣播一條到他的鄰路由器的路徑資訊,但當該鏈路斷開時路由器C撤回了剛才的廣播。不幸的是第二個LSP先到而第一個LSP先到,這時其它路由器的路由表就不能正確地反映網路的拓撲,而只能等到另一個正確的LSP來到。

為瞭解決這個問題,LSP引進了序列碼。因此網路上所有的路由器都會以一些值作為起始值來初始化他們的序列碼,然後在廣播他們的LSP。這就解決了剛才的問題。

當使用序列碼時會碰到序列碼空間是有限這一問題。LSPs可以用的序列碼都被設定成有限值。因此,當序列碼到達最大值後,有要從最小值重新開始。這就給路由器在比較鏈路狀態的目前記錄和重新整理記錄時帶來困難,因為序列碼大的有優先權。為瞭解決這個問題,可以為LSP定義一個最大老化時間。也就是說,如果路由器在X段時間內沒有收到重新整理記錄,它就將現有的記錄丟棄而去等待更新的記錄。要注意必須使到目的地的路徑資訊無效。例如,當路由器Y連向某一局網的鏈路斷開時,路由器Y向路由器Z廣播了這條鏈路的資訊,這時局網中的路由器們此時還在認為它們仍可以到達Z。如果它們在最大老化時間內接收不到重新整理記錄,它們就會假設到Y的鏈路已經不可達。這樣所有的路由器的路由表才會一致,路由器Y和Z也可以使用有限的序列碼。

序列碼的初始化也是這個問題中另一個重要的方面。假設路由器Y重起了,而此時網路又開始重新計算路徑。當該路由器的鏈路狀態協議開始工作,它必須知道重新初始化它的序列碼為何值以使它和其它路由器保持一致。因此,它就廣播一個帶有特別的初始化集合的路徑資訊。這條記錄會告訴其它路由器它需要那個序列碼,並且其它路由器會告訴它。

[1]

文章錄入:csh 責任編輯:csh

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.