歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> IP基礎--4.RIP協定

IP基礎--4.RIP協定

日期:2017/2/27 14:13:57   编辑:更多Linux
  http://www.study-area.net/menu1.htm Routing Information protocol 顧名思義是給封包路由所用的它通常是用於router和router之間的資料交換。 不過在我們討論這個協定之前先讓我們重溫一下router的功用。因為IP Routing可以說是internetworking的最重要和最雜的概念了解清晰一點絕對是有利無害的。 重溫router 在前面的“網路概論”裡面我們已經接觸過bridge和router了。我們知道Bridge是工作於Data Link層級的也就是說它在決定是否轉送封包的時候是以目的地硬體位址為依據而這些硬體地址是不能改變的。只要封包前往的區段不是在相同的來源區段就會進行轉送。但router則工作於Network層級這帶給我們一個非常有用的方便就是可以通過人手來指定網路位址因為這些地址不同硬體地址是可以改變的。在一個連接1000台主機的網路裡面bridge可能要追蹤1000個節點才能做出決定但使用router只需追蹤十來個或更少的地址(或網路地址)就可以了。 而真正令到router更具擴充性的原因是bridge需要檢測網路上每一個封包以決定是否需要轉送而router只需要在意直接傳給自己的封包因為發送端在封包送出之前已經決定好封包是否需要轉送了(前面討論ARP的文章已經為你解釋了這個動作)。 由此可見router的確比bridge高效得多。而且bridge會轉送所有的廣播封包而router則有條件地和有選擇性的對廣播封包進行轉遞同時也會丟棄不明地址的封包這樣可以大大減少網路的交通流量。 路由表格 其實在每一台機器上面有著各自的一個Routing Table記錄著一些路由資訊的如果您在您的Windows98下面輸入 C:\>route PRINT Active Routes: Network Address Netmask Gateway Address Interface Metric 0.0.0.0 0.0.0.0 192.168.0.17 192.168.0.15 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 192.168.0.0 255.255.255.0 192.168.0.15 192.168.0.15 1 192.168.0.15 255.255.255.255 127.0.0.1 127.0.0.1 1 192.168.0.255 255.255.255.255 192.168.0.15 192.168.0.15 1 224.0.0.0 224.0.0.0 192.168.0.15 192.168.0.15 1 255.255.255.255 255.255.255.255 192.168.0.15 192.168.0.15 1 您就可以看到機器目前所使用的路由表格了。上面記錄了有哪些網路它們的netmask和通往該網路的router地址以及使用的網路界面還有一個Metric號碼(這個讓我們待會再說)。如果您看不懂哪些網路號碼和IP號碼在下建議你回卷到前面的IP地址章節裡面復習一下否則您會越看越糊塗。而且我也不打算重解釋這些號碼的含義了。 我們從第一行可以知道該機器的Default Gateway為192.168.0.17因為這行的網路和mask都全部為0也就概指所有網路了也就是說凡是有封包要傳給路由表格所不包括的網路其封包就會傳給Default Gateway了。另外我們在第三行看到機器所屬的網路和其gateway指向自己本身(您可以用winipcfg來查看機器本身的IP來印一下)。這裡我們使用gateway這個詞其實指的就是router如果要了解這兩者的差別前面的“網路概論”也已經說過了。 上面只是一個非常簡單的路由表格而已如果機器所連的網路越多安裝的界面越多路由表格也越雜。如果您的機器有撥接連線當您成功連上ISP之後您再跑一次 route PRINT你就會發現多了通往ISP網路的路由設定了而且Default Gateway也使用了ISP那邊的IP。原因是使用撥接連線內定是會使用Remote Default Gateway的除非您網路本身連得上internet否則您就無法和外面的世界溝通了。不過如果網路本身連得上internet還打去ISP干啥呢 建立起自己的router 讓我們先看看router是怎麽工作的 分層級IP的路由 指定一個IP地址 if 我有這個目的地的路由 從路由表中取得下一站的地址 將封包傳給下一站 else 決定目的地網路號碼 if 我有這個網路的界面 決定我的界面上這個網路的子網路遮罩 else 從這個網路的層級決定它的子網路遮罩 endif 利用遮罩套在目的地位址上取得子網路 if 我有這個子網路的界面 將封包直接送往目的地 else if 我的路由表格包含這個子網路的記錄


從路由表格中取得下一站的地址 將封包傳給下一站 else if 我的路由表格中有一筆預設路由 從路由表格中取得下一站的地址 將封包傳給下一站 else 宣這個目的地無效 endif endif 不分層級IP的路由 指定一個IP地址 在路由表格中尋找與此地址相符的最長遮罩預定值 從路由表格中取得下一站的地址 將封包傳給下一站 if 對比不成功 宣這個目的的無法達到 endif 看上去不分層級的路由比分層級的路由簡單得多。而事實上卻是相反的這需要您在 router 上進行更雜的設定。 如果您的機器有兩片網卡被設定為不同的網路然後它們各連接另外一台或多台機器那麽您自己也可以親身的驗一下router的工作哦很簡單只要您在那台機器上面安裝一個NT或Linux確定兩張網卡都設定好並且同時工作然後在NT上面的網路設定之TCP/IP協定內容裡將“路由”之“啟用IP轉送”打勾夠就可以了在Linux上面呢只要你確定IP ForWording被成功的編進Kernel以及被設定為啟動狀態也就可以了。 下面先讓我們看看兩個網路之間的路由設定是怎樣的 由上圖我們可以看到192.168.0.0這個網路的所有機器其gateway都指向192.168.0.254這個IP也就是router上面連接到這個網路的界面。同樣192.168.1.0這個網路其gateway則是192.168.1.254。 通常一個router可以同時連接好幾個網路只要界面設定好就沒問題了。同時許多網路也有超過一個router和其它的網路連接那麽各主機的路由表格就要一一設定好通往各網路的gateway了。如果您還記得“網路概論”裡介紹的bridge和router之間的分別的話您應該知道router還可以連接不同形態的網路呢 由上圖我們可以看到當有一個封包從網路A經過網路B送到網路C的時候其Software Address(即IP地址)永遠不變但Hardware Address(即MAC地址)卻隨著所經網路而有所不同。如果您對上一章所說的ARP協定沒忘記的話應該知道為什麽會如此。要維護這個router的路由資料相信是一個很簡單的事情。 如果這兩個網路往外也只連接不多的網路各router上面的路由資料也不會很雜這樣的情況之下我們可以使用靜態路由也就是以手動方式為每台機器設定事先計算好的路由。靜態路由的主要好處是它的可預測性而且對router或網路連線做成的負擔不多所占頻寬較少。 當我們在internet上面routing的時候所經過的router當然會多很多啦下面讓我們看看一個簡化了的internet路由圖示 正如您可能想像的在internet的環境中要保存一份完整的路由表格殊非輕易而且您也不可能盡知道所有網路的路由路徑。那麽我們把這些路由資料的更新交給了router本身去管理了這樣router和router之間就需要一些協定來交換信息了。 事實上供router使用的協定也有很多種且也分為Exterior Gateway Protocol 和 Interior Gateway Protocol兩大類。在Internet上面負責大型網路之間的路由使用的是Exterior協定最常使用的是BGP(Border Gateway Protocol)協定。相對的在比較少的網路之間使用的會是Interior協定其中最普遍的是RIP協定。 路由資料交換 在眾多的路由協定中RIP可以說是最簡單和最原始的協定了它是一種所謂的距離向量(distance-vector)協定。使用RIP的路由器凡是它知道如何路由的目的地都會被羅列出來同時也列出到達各目的地的距離。至於距離的遠近則使用一個metric數值來表示數值越高距離越遠。這個metric值通常是以hop數的多寡來定但其它協定或許還會參考一些雜的網路成本計算諸如網路負載頻寬延遲等等其它相關因素。當路由器發現有多條路徑可以到達目的地的時候就會參考這個metric值了其中最低數字的往往被當成是最佳路徑。 正如我們知道路由協定是供路由器和路由器之間交換路由資料用的。當路由器上面的路由資訊改變的時候就會向其相鄰的路由器送出更新信息。用RIP協定的路由器通常會每隔30秒就會更新一次其路由表格如果其路由資訊是從別的路由器“學”來的話就會自動的將metric增加一個數值當這個數值達到“無窮”值的時候(通常會被設定為16)就表示這條路徑為“unreachable”同時也會將之從路由表中刪除。 下面讓我們以一個小型路由網路的例子來更好的看看RIP是怎樣進行路由表格更新的(我強烈建議您將這圖畫出來以備後面討論時參考所需) 當路由器剛設定好並連接上網路的時候各自都有一個“初始路由表”裡面只包含與其直接相連的網路的路由信息 Router 1   Router 2   Router 3   Router 4   Router 5   Router 6 Net ID M,G Net ID M,G Net ID M,G Net ID M,G Net ID M,G Net ID M,G 1 3 1,1 1,1 1 2 4 1,2 1,2

1,2 2 5 6 1,3 1,3 1,3 3 7 1,4 1,4 4 5 7 8 1,5 1,5 1,5 1,5 6 8 1,6 1,6 上表



Copyright © Linux教程網 All Rights Reserved