應用 RIP 於上下游單位路由交換之問題及解決之道
趙志宏* 洪宗貝
國立高雄大學圖書資訊館
高雄市楠梓區德中路 280 巷 251 號
Email: {wilson, tphong}
@nuk.edu.tw
摘要
雖然 RIP 動態路由協定比起 OSPF 的
動態路由協定有很多的限制與缺點,不過 RIP Version 2已經改進了原先 RIP 的一些 缺點,使得它非常適合應用於區網中心及 縣市網中心與下游連線單位作路由表交 換。本篇論文藉由闡述動態路由協定及 RIP 的特性,提出應用 RIP 到縣市網中心 與下游連線單位的路由交換時所可能遇 到的問題及其解決之道。希望善用 RIP 此 動態路由協定將使得區域中心或縣市網 中心與下游連線單位的網路規劃更具有 彈性。
關鍵詞:RIP 協定、RIP Version 2協定、 自治系統、路由器、路由表 一、緒論 近年來由於 Internet 的大放異彩,使 得原先規劃的 IP 使用,面臨嚴重不足的窘 境。各區域的網管人員,對於 IP 規劃與配 置必須更要能掌握得當,以避免 IP 的浪 費。為了達此目的,對原來所分配的主網 段,必須再往下細切子網段,以作為更有 效率的利用。網路管理者使用動態路由協 定作為路由設備介接的協定時,若沒有仔 細考量 IP 規劃的連續性以及動態路由協 定的特性,將對網路路由器間的路由表交 換產生錯誤的結果。因此本篇論文藉由闡 述動態路由協定的特性,到實際網路的 IP 規劃,讓各區域及其下游單位的網管人員 更能得心應手的著手應用動態路由協定 於網路的規劃與建置。 二、動態路由協定的簡介 動態路由的設計其優點是適合於大 型網路(包含 ISP),路由器可以自動地去交 換彼此路由表;而其缺點是網路管理者必 須有足夠的技術與知識能力,去設定路由 器以正確地交換它們彼此的路由表,使得 網路的效能達到最佳。為了得到動態路 由,在路由器上必須執行一些相關的路由 協定。Internet 的路由協定主要分成二類:
﹝1﹞Exterior Gateway Protocol,簡稱 EGP,
﹝2﹞Interior Gateway Protocol,簡稱 IGP。
EGP 的 路 由 協 定 中 的 主 要 代 表 為 Border Gateway Protocol (簡稱 BGP),此路 由 協 定 主 要 應 用 於 分 屬 不 同 自 治 系 統 (Autonomous System, 簡稱 AS)的 路 由 器,交換它們之間的路由表。自治系統是 由一個技術管理單位負責運作,並有相同 路由政策的網路路由系統。AS 可以說是 一些 IGP 的集合,它們共同運作以提供內 部 Routing 功能。對外界來說,整個 AS 可以被視為單一的個體,例如 ISP、企業
2 單位或是政府組織等。每個 AS 都有一個 由 Internet 註冊單位指定的識別編號,稱 之為 AS Number。 然而 IGP 的路由協定主要應用於自治系統 內部的路由器,交換它們彼此之間路由表 的路由協定。IGP 路由協定又分成二種不 同的方式 ,一 種 稱 之 為 距 離 向 量 協 定 (Distance Vector Protocol) , 以 Routin g Information Protocol(簡稱 RIP)為代表, 本文在後面的章節會詳細的介紹,使用 RIP 動態路由協定設計區網中心或縣市網 中心與下游連線單位連接時所需掌握的 技巧。另一種路由協定稱之為連結狀態協 定 (Link State Protocol) , 以 Open Shortest Path First (簡稱 OSPF) 協定為 代表,是比較先進的路由協定。OSPF 協 定並不像 RIP 協定一樣會週期性的交換完 整的路由表,而浪費網路頻寬。相反地, 執行 OSPF 的路由器,只會在網路的連接 發生狀態改變時,例如網路的狀態從 up 改變至 down 的狀態,才會送出僅有變化 的路由表。其次 OSPF 並沒有節點的限制 並具有階層化架構的觀念,因此 OSPF 非 常適合應用於大型網路骨幹路由器的路 由表交換。 儘管 OSPF 具有如此多的優點,然而 RIP 仍有它存在的價值。此乃因為在現實 的環境中,由於 OSPF 是一種相當複雜的 路由協定,並不見得一般的路由器皆有支 援,而且也不見得各個網管人員均了解如 何 設 定 OSPF。 此 外 新 版 的 RIP (RIP version 2) , 也 仿 效 OSPF 加 入 了 支 援 Variable Length Subnet Mask (VLSM)與路 由的認證機制,二方面由於在縣市網中心 或區網中心的下游連線單位的路由表都 不算太大,因此使用 RIP 作為交換彼此路 由表的協定就已經相當有彈性了,只是區 網中心或縣市網中心為了不浪費對下游 連線單位的廣域網路頻寬,必須對 RIP 作 一些參數的調校。 三、RIP 動態路由協定之簡介 在 RFC 1058 文件中規範了 RIP 路由 協定的技術標準。RIP 是一種距離向量的 路由協定,使用從發送端到接收端間封包 所要經過的節點數目(hop counts)當作是 決定最佳路徑的準則。這裏所謂的節點數 目泛指路徑上所經過的路由器數目。以圖 三為例,若從 A 端到 B 端有二個路徑可以 抵達,此時由靠近 host A 的路由器所計算 出來的路徑二條都是最佳路徑,因為它們 所經過的節點數目是相同的。然而事實 上,由於上方的路徑是 T1 的傳輸速率, 從 host A 到 host B 的封包訊息從上方傳 遞,會比下方 56K 的傳送路徑更快的抵達 host B,所以上方的路徑真實上會是一條 最佳路徑,這是 RIP 設計的一些缺點,無 法將網路傳輸的頻寬當作是決定路由的 準則。 Host A Host B T 1 T 1 T 1 56K 56K 56K
Path 1: Hop Count=3
Path 2: Hop Count=3 圖三:RIP 路由協定使用所經過之節點數 目當作是最佳路由的選擇 RIP 使用一種簡單的演算法來建構路 由器中的路由表 ,當路由器剛啟動 RIP 此種路由協定時,它只知道目前本身的網
路介面有哪些網段可供傳輸。一個由 RIP 所建構而成的路由表,大致包含目的端的 網路位址、節點的數目及抵達目的端須經 過路由器的哪一個網路介面。然後每隔固 定週期,網路上執行 RIP 的路由器,將以 廣播的方式交換彼此的路由表,且路由器 在廣播自己的路由表之前,會先將路由表 中所有路由的 Hop Count 數加一,表示收 到路由表的路由器,若要傳送資料封包到 達目的端時,需再多經過一個路由器。當 一個路由器收到從其它路由器所送過來 的路由表時,將會依據下列的判斷方式, 決定是否將對方路由表的路由加到自己 本身的路由表。 RIP 路由交換方式: 若收到的路由,不存在於自己本身的路由 表中,則立刻將此路由加到本身的路由 表。 (1) 若收到的路由已經存在於本身的 路由表,且其 Hop count 的數目 小於目前路由表中的路由,則將 此新路由加入路由表之中,並取 代現有的路由。 (2) 否則,路由器將忽略收到的路由 表。 經過一段時間網路上的路由器交換 彼此的路由表後,每個網路上的路由器根 據上述的判斷公式,建構出完整的路由
4 四、RIP version 2 的簡介 每一個 RIP 路由協定所送出的路 由訊息,最高可以包含 25 個的 Network Number , 其 格 式 如 圖 五 所 示 。 其 中 Command 的欄位等於 1,表示此 RIP 訊 息是一個要求(Request)的訊息;Command 欄位等於二,表示此訊息是一個回應要求 (Response to request) 的 訊 息 。 Address Family ID 的欄位等於二,表示目前 RIP 所攜帶的訊息是屬於 IP 的訊息格式。而 IP Address 的欄位,表示路由表中的網路 位址。
Command Version = 1 Zero Address Family ID ﹝IP = 2﹞ Zero IP Address 1
Zero Zero
Metric ( Hop Count ) 1 ~ 16
Address Family ID ﹝IP = 2﹞ Zero IP Address 25
Zero Zero
Metric ( Hop Count ) 1 ~ 16
圖五:RIP 的訊息格式 從 RIP 的訊息格式,我們可以清楚地 看出,RIP 的並沒有辦法送出子網路遮罩 的訊息 ,這在目前 Internet 的世界中是一 個非常大的致命傷。由於 IP 的不足,網路 管理者為了充份利用 IP,往往會針對目前 的主網段位址再細切出很多的子網段 , 在此一情況下,若使用原始 RIP Version 1 當作動態路由的協定,將產生一些意想不 到的的後果。我們舉圖六的架構為例來解 釋此結果。 172.16.16.0/20 172.16.32.0/20 172.16.1.0/24 172.16.2.0/24 Advertise Network 1 and 2 Advertise Network 1 and 2 Advertise Network 16 and 32 Advertise Network 16 and 32 1 4 3 2 圖六:一個具有四個網路介面的路由器 圖六代表一個路由器具有 4個網路介 面,每一個網路介面定義了不同的 IP 位 址與子網路遮罩。若使用 RIP Version 1 來 與其它的路由器交換路由表,由於 RIP Version 1 無法送出子網路遮罩的訊息,導 致路由器欲從某一個網路介面送出路由 時,路由器只會選擇與此網路介面具有相 同子網路遮罩的路由傳送,無法送出完整
的路由表。以圖六為例,網路介面 1 和 2 只能送出 Network 16 和 Network 32 ,並 無法送出 Network 1與 Network 2 ;網路 介面 3和 4只能送出 Network 1和 Network 2,並無法送出 Network 16 and Network 32。
為了改善 RIP Version 1 的缺點,RFC 1723 定義 RIP Version 2 的相關技術。RIP Version 2 的訊息格式如圖七所示。比較圖 五和圖七之訊息格式,我們可以看出與 RIP Version 1 訊息格式最大的不同點是 加 入 了 子 網 路 遮 罩 的 欄 位 , 使 得 RIP Version 2 支援了可變長度子網路遮罩 (Variable Length Subnet Mask, 簡 稱 為 VLSM)。
Command Version = 2 Zero
Address Family ID ﹝IP = 2﹞ Route Tag
IP Address 1
Subnet Mask
Next Hop
Metric ( Hop Count ) 1 ~ 16
Address Family ID ﹝IP = 2﹞ Zero
IP Address 25
Subnet Mask
Next Hop
Metric ( Hop Count ) 1 ~ 16
圖七:RIP Version 2 的訊息格式 RIP Version 2 除了上述支援 VLSM 的功能外,與 RIP Version 1 的其它差異尚 包括 RIP Version 2為了路由的安全機制而 加入了路由認證,並且將路由的交換傳遞 方式由以往的廣播傳遞,改為先進的多點 傳播方式。 五、應用 RIP 到縣市網中心與下游連線單 位的路由交換 接下來我們將介紹如何將 RIP 的路由 協定,應用到縣市網中心甚至於區網中心 與下游連線單位的網路介接。圖八是一個 與縣市網中心連線的簡化網路架構圖。 縣市網中心 Router 下游連線單位 Router 1 下游連線單位 Router 2 172.16.2.0/24 172.16.1.0/24 172.16.3.0/24 172.16.4.0/24 1 2 1 1 2 2 WAN WAN LAN LAN 圖八:與縣市網中心連線的簡化網路架構 圖 在早期連線單位不多,及IP 足夠 使用的情況下,使用RIP當作是動態路由 協定時,我們必須考慮IP規劃的連續性。 也就是說,縣市網中心的廣域網路介面與 下游連線單位的網路位址必須屬於同一 個主網段。假設我們使用一段屬於class B
6 的主網路位址,若往下細切子網路時,每 一個子網路必須有相同的子網路遮罩,此 時所有的子網段,必須分配於與縣市網中 心連線的下游單位,使用RIP動態路由協 定交換路由表時,縣市網中心的路由器與 下游的連線單位才能夠正確的交換路由 表。然而近年來由於 Internet 的大放異 彩,使得原先的IP使用面臨嚴重不足的窘 境,對於IP規劃,必須能夠盡量節省IP的 消耗,我們舉圖八為例來說明。 如圖八所示,下游連線單位與縣市網 中心的連接是單獨的使用 172.16.1.0/24 的網段,我們可以看出這是相當浪費 IP 的作法。因為這段網段,只使用了二個 IP,其它的 IP 都浪費掉了,因此對網路的 規劃者,必須做出更詳細的規劃,使得 IP 更能充分的利用。 一般而言,規劃者為了更充份的利用 IP,往往會在一段子網段位址中,將其子 網路遮罩切得更細,以上例而言,為了符 合校園網路與縣市網中心透過專線介接 時,只須使用到二組 IP 的特性,更改後的 網路架構,如圖九所示。 在圖九之架構下,下游連線單位路由器的 廣域網路介面的位址與校內網路介面的 位址,出現了不同的子網路遮罩,由於 RIP Version 1 無法送出子網路遮罩的限 制,因此為了讓下游連線單位的路由器送 出正確的路由表給縣市網中心,必須讓路 由器執行 RIP Version 2 的協定。 縣市網中心 Router 下游連線單位 Router 1 下游連線單位 Router 2 172.16.4.0/30 172.16.1.0/30 172.16.3.0/24 172.16.4.0/24 1 2 1 1 2 2 WAN WAN LAN LAN 圖九:使用 RIP Version 2 的網路架構 然而縣市網中心的網管人員必 須注意的是下游連線單位的路由器並不 需要知道縣市網中心完整的路由表,它們 只要有一個預設路由(Default Route)指到 區網中心即可。因此區網中心的路由器與 下游連線單位介接的網路介面,必須在 RIP 的路由協定中,規範這些介面只能夠 接收來自於下游單位的路由表,而不傳送 區網中心的路由表給下游連線學校。若區 網中心的路由器不慎傳送路由表給下游 連線學校時,將造成下游連線單位的廣域 網路頻寬的浪費,嚴重時,將造成下游連 線單位路由器的當機。 接著我們再考慮另一種可能造成問 題的架構如圖十所示,使用不連續的子網 段位址來規劃縣市網中心與下游連線單 位的介接。換句話說,當縣市網中心使用 另一個主網段位址,來當作廣域網路連接 的位址,與下游連線學校的校內網路位 址,屬於不同的主網段時,此時路由器只 單純的執行 RIP Version 2,則在區網中心 的路由器並無法收到正確的路由表。
縣市網中心 Router 下游連線單位 Router 1 下游連線單位 Router 2 172.16.2.0/24 172.16.1.0/24 172.16.3.0/24 172.16.4.0/24 1 2 1 1 2 2 WAN WAN LAN LAN 圖十:IP 不連續的網路架構 在此種架構下,若不對 RIP 路由協定 的參數作一些調校,將造成某個下游連線 單位的網路不通。原因在於 RIP 的路由協 定經由網路介面送出路由表時,會判斷網 路介面是否屬於同一個主網段。以圖十為 例,當 Router 1 經由網路介面 1 送路由表 經由網路介面 1 到區網中心時,判斷出網 路介面 1 與介面 2 屬於不同的主網段,此 時,路由器就會自動的將網路介面 2 的網 段收歛成 172.16.0.0/16 的主網段。Router 2 也 會 作 出 相 同 的 動 作 。 此 時 誰 的 172.16.0.0/16 的路由先送至縣市網中心, 縣市網中心的路由器便會先將此路由加 入到其路由表,而後送的 172.16.0.0/16 網 段,由於路由器根據前述的路由表更新演 算法會忽略此一網段路由,因此造成此下 游連線單位的網路不通。 為 了 克 服 此 一 問 題 , 我 們 必 須 在 Router 1與 Router 2調校 RIP Version 2 的 參數,讓 RIP Version 2 不會自動的收歛網 段位址,以讓 Router 1 與 Router 2 能各別 送出正確的網段位址, 172.16.3.0/24 與 172.16.4.0/24。下列表示調校過後縣市網 中心的路由器,所收到的正確路由表。
C 192.168.1.0/30 is directly connected, Serial 1 C 192.168.1.4/30 is directly connected, Serial 2 R 172.16.3.0/24 [120/1] via 192.168.1.2, 00:00:19, R 172.16.4.0/24 [120/1] via 192.168.1.6, 00:00:19, Serial 2 六、總結 雖然 RIP 動態路由協定比起 OSPF 的 動態路由協定有很多的限制與缺點,不過 RFC 1723 文件中,所規範的 RIP Version 2 已經改進了原先 RIP 的一些缺點,使得它 非常適合應用於區網中心及縣市網中心 與下游連線單位作路由表交換。只是在規 劃時必須特別注意在 IP 分配的連續性與 RIP 會自動收歛的特性。而善用 RIP 此動 態路由協定將使得區域中心或縣市網中 心與下游連線單位的網路規劃更具有彈 性。 References
[1] Hedrick, C., "Routing Information Protocol", STD 34, RFC1058, Rutgers University, June 1988.
[2] Malkin, G., "RIP Version 2 - Carrying Additional Information", RFC 1388, Xylogics, Inc., January 1993.
[3] Malkin, G., and F. Baker, "RIP Version 2 MIB Extension", RFC 1724, Xylogics, Inc., Cisco Systems, November 1994. [4] Malkin, G., "RIP Version 2 Protocol
Analysis", RFC 1721, Xylogics, Inc., November 1994.
[5] Malkin, G., "RIP Version 2 Protocol Applicability Statement", RFC 1722, Xylogics, Inc., November 1994.
[6] Malkin, G., "RIP Version 2 Carrying Additional Information", RFC 1723, Xylogics, Inc., November 1994.
[7] WILLIAM R., G., "Cisco Router OSPF Design and Implementation Guide"