動態路由協議RIP介紹

RIP的基礎介紹

主要介紹的內容包括:RIPv1與RIPv2的特點、RIP報文的分析、RIP工作原理、RIP環路的產生以及RIP防環機制。

RIPv1與RIPv2的特點

RIP(Routing Information Protocal,路由信息協議)是一種簡單的動態路由協議,是一種不可靠的協議(RIP只能通過鄰居獲取路由信息,不知道全局的路由狀況,就算鄰居的路由信息有誤,協議也不會知道,直至出現網絡異常);

RIP使用UDP520端口號進行路由信息的交換;

RIPv1的特點:

  • 廣播更新;
  • 有類協議(A、B、C類),不支持不連續子網;
  • 不支持CIDR和VLSM;
  • 不支持認證,自動聚合;

RIPv2的特點:

  • 組播更新(224.0.0.9);
  • 無類協議,支持不連續協議;
  • 支持認證,支持手動彙總;
  • 支持CIDR和VLSM;

RIP協議定時器

RIP協議內包含三個定時器(僅供瞭解):

  • 更新定時器:當此定時器超時時,立即發送路由更新報文,默認爲30s(報文的發送間隔時間,每個30秒才發送一次,因此RIP協議的收斂速度慢,不適用於大型網絡);
  • 老化定時器:當老化定時器超時時,仍沒收到鄰居發送的路由更新報文,就認爲該路由不可達,如果開啓了防環機制,就會在RIP路由表中將其標記爲16跳(無窮大)並啓動垃圾收集定時器。當路由條目添加到RIP路由表裏,老化時間就開始啓動,每次收到路由更新報文就重置老化定時器,默認時間爲180s
  • 垃圾收集定時器:如果在垃圾定時器內仍沒有收到鄰居發送的路由更新報文,就會將RIP路由表中相應的路由刪除,默認爲120s
  • 抑制失效定時器:在開啓防環機制時,當路由器收到度量值爲16的路由更新時,對應的路由就會進入抑制狀態並開啓抑制定時器,默認爲180s。在該定時器超時前,不會接收對應的路由更新(就算收到度量值小於16的路由更新,也不會接收),防止出現環路;超時後恢復正常;

RIP路由更新規則

RIP的路由更新機制分爲定期更新觸發更新;定時更新是按照更新定時器發送更新路由更新報文;觸發更新是一旦路由條目發生改變,不用等到更新定時器超時就可以直接發送路由更新報文(與增量更新只發送被改變的路由條目不同,觸發更新是將整個路由表發送,重新進行路由收斂);

RIP路由更新規則(收到路由更新報文後,需要將報文攜帶的RIP路由表項的度量值增加1,才進行下列的路由更新):

  • 如果收到RIP路由表中沒有的路由條目,就直接添加進路由表裏;
  • 如果收到RIP路由表中已有的目的路由條目,且來源端口相同,直接更新當前路由項(RIP認爲該目的路由已經發生了改變);
  • 如果收到RIP路由表中已有的目的路由條目,且來源端口不同,如果度量值比路由表對應項大,就不做改變,如果比路由表項的度量值小,就更新路由表項的對應項(RIP認爲有更優的路徑出現);

RIP報文結構

RIP報文結構

報文字段 說明
Command 命令字段,表示報文類型;Request(請求,對應值1)、Reply(響應,對應值2)、Traceon(開啓追蹤報文,對應值3,RIPv2不再使用)和Traceoff(關閉追蹤標記,對應值4,RIPv2不再使用)
Version 版本字段,RIPv1版本值爲1,RIPv2版本值爲2
Unused 保留字段
Address Family Identity(AFI) 地址簇標識字段,用於攜帶多種不同協議的路由詳細,IP對應的AFI值爲2;
Route Tag 路由標籤字段,適用於RIPv2,用於區分內部路由(RIP學習到的)和外部路由(使用重分發通告的其他路由)
IP Address IP地址字段,表示指定的目的路由(標準網段或子網地址)
Subnet Mask 子網掩碼字段,適用於RIPv2,用於確定IP地址的網段
Next Hop 下一跳字段,適用於RIPv2,用於指定路由的方向
Metric 度量值字段,也就是"跳數",最大值爲15,數值爲16爲無窮大(即該RIP路由條目不可用)

注:度量值(跳數)的數值是每經過一個RIP路由條目數值就會增加1

RIP工作原理

RIP協議是採用鄰居通告的方式更新路由條目,接收來自鄰居發送的路由表項,以便於更新和添加路由進入自己的路由表項,從而達成路由條目的學習;

RIP路由學習拓撲圖

  • A.初始狀態下,每個路由器的RIP路由表裏只有與自己直連的路由條目;
  • B.將所有的網段通告進RIP網絡中,各個路由器開始路由學習;
  • C.R1會將自己包含的10.1.1.0和1.1.1.0路由條目發送給鄰居RIP路由器R2;
  • D.R2收到鄰居發送的RIP通告報文(包含有R1的RIP路由表信息),將R1通告的路由條目的度量值(跳數)加1,並查看自己的路由條目,發現1.1.1.0是自己直連路由條目,度量值爲0,比R1發送的小,但是R2中沒有10.1.1.0的路由條目,直接添加進RIP路由表裏,然後再將自己整個路由表發送給鄰居路由器(R1和R3),包含的路由條目有10.1.1.0、1.1.1.0和2.2.2.0;
  • E.R1收到鄰居發送的路由條目,會將鄰居發送的路由條目度量值加1,然後按照路由更新機制添加路由條目;
  • F. R3收到R2發送RIP通告報文,按照路由更新規則添加路由條目,然後如同R2一樣將整個路由表發送給鄰居,R4收到報文以後,也是一樣的操作,直至所有路由器都學習到所有的路由條目;

RIP環路產生的原因

RIP環路拓撲圖

  • A) 假設路由器R1斷開了與客戶端的連接,R1會刪除該路由條目並立即向鄰居發送路由通告報文,告知鄰居R2路由器10.1.1.0路由不可達,再讓R2通告其他路由器,通往R1客戶端的路由不可達,但由於網絡延遲、CPU繁忙等原因,沒有及時發送給R2路由器
  • B) 由於R2沒有及時收到R1發送報文,R2仍舊定期通告路由條目給鄰居路由器R1和R3,此時通告的路由表中包含有10.1.1.0,跳數爲1;
  • C) R1收到R2通告的路由條目後,將R2發送路由表項中的各路由條目的度量值加1,然後按照路由更新規則添加或更新路由條目(此時路由器R1認爲有另外一條路徑能夠到到達客戶端),此時R1路由器會將10.1.1.0,跳數爲2添加進路由表中,等到更新定時器超時,R1會再次將整個路由表發送給鄰居路由器R2
  • D) R2再次受到R1發送路由條目時,將該路由表內的路由條目跳數加1比較,發現10.1.1.0路由條目的跳數雖然比自己路由表中的大,但是來源端口相同(下一跳相同),R2就認爲10.1.1.0網絡發生了改變,立即將該其更新至路由表項,然後等待更新定時器超時,R2會再次將整個路由表發送給鄰居路由器R1;
  • E) R1受到通告報文後,會將10.1.1.0,跳數爲4添加進RIP路由表裏(添加原因與R2的原因相同),如此反覆,直至達到無窮大,除非達到某種限制(設置了最大跳數防環,就是達到最大跳數16(不可達),纔會從路由表中刪除);

RIP的防環機制

  • 最大跳數:設置路由條目最大跳數爲15,16表示不可達;
  • 水平分割法:從某一端口學習到的路由條目,不會再將該路由條目從該端口發送出去(不發生回傳)
  • 毒性逆轉:在更新報文裏包括回傳路由,但是回傳路由的跳數標記爲16跳,便於通知其他路由器,回傳路由不可達(即向鄰居發送包含有標記爲16跳的失效路由器的路由更新報文);
  • 路由毒化:當拓撲發生變化時,失效的路由會被標記爲possibly down,跳數設爲16;
  • 觸發更新:拓撲發生變化時,不用等到更新定時器超時,就直接發送更新報文;
  • 保持失效定時器:收到跳數爲16的路由條目時,會開啓抑制定時器,在該期間不接收該路由條目;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章