最基礎的路由協議之RIP協議
路由信息協議,RIP協議,是路由協議中最早也是最基本最簡單的協議之一。那么雖然它現在的使用已經漸漸不能適應我們的網絡構建需要了,但是作為學習的基礎,我們還是要全面掌握這個協議。同所有的協議一樣,RIP協議是用來散發與路由器相關的網絡信息的。在最基本的層面上,路由器需要知道能夠達到什么網絡以及到這些網絡的距離有多遠。RIP協議就做這件事情。RIP協議仍是目前被廣泛應用的協議。
許多人咒罵RIP協議,說它匯聚的速度太慢,沒有可伸縮性和不安全,因為RIP協議的身份識別只有明文的方式,而且這個協議還受到了Split-horizon的影響。這些情況都是真實的。但是,這個協議仍然是非常有用的。我們希望這篇文章能說明這些問題,幫助你理解這個應用最廣泛的內部網關協議之一。
RIP協議有兩種版本:第一版(RIPv1)和第二版(RIPv2)。RIPv1的功能非常有限,因為它不支持CIDR(無類域間路由選擇)地址解析。這就意味著這個協議只是一個有類域協議,你不能把24掩碼網絡分成更小的單位。另外,RIPv1還使用廣播發送信息。這就意味著主機不能忽略RIP廣播。請記住,每次發出廣播時,廣播域中的每一臺主機都將收到一個中斷,并且必須要要處理這個數據包以便確定這個數據包是不是它關心的東西。RIPv2使用多播技術。這個技術在以后的講座中再介紹。現在,你們僅需要知道主機在無需處理這個數據包的情況下就可以知道是否可以忽略這個多播包。
請記住,我們曾經說過RIP是一種距離向量協議。這里提到的距離指的是RIP協議中的跳數,而向量指的是目的地。其它距離向量協議也許使用其它規則來對各向量進行度量,如BGP協議中的AS-PATH。這兩種版本的RIP協議都是每隔30秒鐘向UDP端口520發送一次信息。但是,它們發送什么信息呢?如果你推測是“它們的路由信息",你就猜對了。RIP能夠發送有關它可以到達的網絡的具體信息,并且把自己作為一個默認的網關播出(目的地為0.0.0.0,度量值/metric 為1)。
RIPv2數據包有自己的報頭,同許多其它協議一樣。請注意,RIP協議是在UDP協議之上的,因此,它實際上是一個應用層協議。每一個RIP數據包都包含一個指令、一個版本編號和一個路由域。然后后面是最多25條路由信息(一個數據包內)。
RIP數據包的指令
一個RIP指令可以是一個請求或者是一個應答。當主機(無論是一臺Unix服務器還是一臺路由器)第一次啟動時,主機都需要獲得一些路由信息。這時會發出“請求"指令。向網絡廣播包含請求指令的數據包。“應答"是另一種常見的RIP指令。它用于回答一個請求,或者僅是簡單的每隔30秒發布一次的廣播。
版本號:版本號為一或二,指令此數據包的RIP協議版本。
路由域:RIP協議中的一個路由域是一種用于具體說明路由實例的識別符。同一個網絡中可以存在一套以上的RIP實例,可以具體指定一個信息僅僅是發送給一個具體域中的人員的。
RIP數據包的其它部分
在路由域之后,真正的RIP路由信息就開始了。一個數據包最多可以包含25個路由條目。每個路由條目需要包含如下信息:
◆網絡地址:識別目標子網地址的開始點。
◆子網掩碼:說明