RIP V1&RIP V2比較
V1 | V2 |
有類(傳遞路由沒有掩碼) | 無類 |
廣播更新 | 組播更新 |
FLSM(定長子網掩碼) | VLSM(變長) |
v1收到路由的路由器以ip報文裏的源IP作爲下一跳 | 攜帶tag,subnet,next-hop |
| 支持路由聚合,CIDR,認證 |
UDP 520 | UDP 520 |
RIPv1報文結構
l 基於UDP,端口號爲520(UDP,不可靠傳輸。ipv6使用521,RIPNG)
RIPv1報文結構
l RIP每條消息包含兩個部分,分別爲Header和Route Entries。其中Header包含Command和Version。Route Entries最多包含25個路由條目,每個路由條目包含Address Family Identity、路由可達的IP地址和跳數(metirc)。
n Command:取值1或2,當取值爲1時表示該消息爲請求消息;當取值爲2時表示該消息爲響應消息。
n Version:當取值爲1時表示該消息爲RIPv1消息;當取值爲2時表示該消息爲RIPv2消息。
n Address Family Identity:對於IPv4協議,該字段取值爲2。當該消息是對整張路由表的請求消息時,該字段取值爲0。
n IP Address:該字段表示路由的目的地址。這一項可以是網絡地址、主機地址
n Metric:該字段是指RIP中的跳數。雖然該字段取值範圍爲0-2^32,但是在RIP中,該字的取值範圍爲1-16。
v1的request報文
v1的response報文
RIPv1特點
RIP是一個基於UDP的路由協議,並且RIPv1的數據包不能超過512字節(RIP報文頭部佔用4個字節,而每個路由條目佔用20個八位組字節。因此,RIP消息最大爲4+(25*20)=504個字節(即最大25條路由,如果啓用認證爲24條路由),再加上8個字節的UDP頭部,所以RIP數據報的大小(不含IP包的頭部)最大可達512個字節。)。RIPv1的協議報文中沒有攜帶掩碼信息,所以RIPv1在處理數據包時會根據主類網段掩碼或者接口地址掩碼處理數據包。因此RIPv1無法支持路由聚合,也不支持不連續子網。RIPv1的協議報文中沒有驗證字段,所以RIPv1也不支持驗證。
爲什麼最大可達512個字節:RIPv1開發出來主要的目的是作爲ARPA net的路由協議,而在那個時候SLIP、串行鏈路、撥號鏈路、T1鏈路等低速鏈路是最爲普遍的,這些鏈路的MTU也就是500 - 600 Byte不等,所以不能用以太網的MTU來衡量了。
RIPv2報文結構
l 支持外部路由Tag; 支持路由聚合和CIDR;支持指定下一跳;支持認證
RIPv2報文結構
l lRIPv2的報文格式的基本結構和RIPv1相同。RIPv2使用了RIPv1中部分未用字段以提供擴展功能。
n Route Tag:用於標記外部路由或者路由引入到RIPv2協議中的路由。
n Subnet Mask:用來標識使用IPv4地址的網絡和子網部分。
n Next Hop:表示比通告路由器地址更好的下一跳地址。如果該字段爲0.0.0.0,則說明通告路由器地址爲最優下一跳地址。
n 當RIPv2配置認證時,RIPv2會對報文第一條Route Entries進行修改。具體修改如下
u Address Family Identity字段改爲0XFFFF。
u Route Tag字段改爲Authentication Type字段。
u IP Address、Subnet Mask、Next Hop和Metric會變爲口令字段。
RIPv2相較RIPv1的改進包括如下幾點:
l 支持外部路由標記(Route Tag),可以在路由策略中根據Tag對路由進行靈活的控制。
l 支持以組播方式發送更新報文,只有運行RIPv2的設備才能收到協議報文,減少資源消耗。
在多於兩臺設備組建的廣播網絡環境中,Next Hop字段會發生變化,從而使路徑最優。
MD5認證實際上是把路由表項和共享密鑰進行與運算,然後路由器將運行運算結果和路由條目發送給對端鄰居。
v2的request報文
v2的response報文
RIP主要使用三個定時器
l 更新定時器:它定時觸發更新報文的發送,更新週期默認爲30秒。(實際25.5-30之間)
l 老化定時器:RIP設備如果在老化時間內沒有收到鄰居發來的路由更新報文,則認爲該路由不可達。老化定時器超時後,該路由條目設置爲16。180秒
l 垃圾收集定時器:如果在垃圾收集時間內(默認爲更新定時器的4倍,即120秒),不可達路由沒有收到來自同一鄰居的更新,則該路由將被從路由表中徹底刪除。
三個定時器之間的關係
l RIP 的更新信息發佈是由更新定時器控制的,默認爲每30 秒發送一次。
l 每一條路由表項對應兩個定時器:老化定時器和垃圾收集定時器。當學到一條路由並添加到路由表中時,老化定時器啓動。如果老化定時器超時,設備仍沒有收鄰居發來的更新報文,則把該路由的度量值置爲16(表示路由不可達),並啓動垃圾收集定時器。如果垃圾收集定時器超時,設備仍然沒有收到更新報文,則在路由表中刪除該條目。
l 如果在沒有觸發更新的前提下,一個路由表項最多需要300秒才能被刪除(老化時間180+垃圾收集時間120)。
l 如果存在觸發更新,那麼一個路由條目最多需要120秒才能被刪除(即爲老化時間)。
水平分割
水平分割指的是RIP從某個接口學到的路由,不會從該接口再發回給鄰居設備。
特殊情況:在幀中繼和X.25等NBMA網絡中,水平分割功能缺省爲禁止狀態。
作用:RIP採用水平分割不但減少了帶寬消耗,還可以防止路由環路。
毒性逆轉
毒性逆轉指的是RIP從某個接口學到路由後,將該路由的開銷設置爲16(即指明該路由不可達),並從原接口發回鄰居設備。
現實情況:缺省情況下不使能毒性逆轉。一般情況下,在華爲設備中均使能水平分割(除NBMA網絡外)而禁用毒性逆轉。
水平分割和毒性逆轉的差別:水平分割和毒性逆轉都是爲了防止RIP中的路由環路而設計的,但是水平分割是不將收到路由條目再按“原路返回”來避免環路,而毒性逆轉遵循“壞消息比沒消息好”的原則,即將路由條目按“原路返回”,但是該路由條目被標記爲不可達(度量值爲16)。
觸發更新
觸發更新是指路由信息發生變化時,立即向鄰居設備發送觸發更新報文,通知變化的路由信息。
l觸發更新縮短了收斂時間,觸發更新可以縮短網絡收斂時間,在路由表項變化時立即向其他設備廣播該信息,而不必等待定時更新。如果沒有觸發更新,缺省情況下,失效的路由條目會在路由錶停留最多300秒(老化定時器+垃圾收集定時器)
路由聚合
l RIPv2支持路由聚合(僅RIPv2支持路由聚合),因爲RIPv2報文攜帶掩碼位,所以支持子網劃分。在RIPv2中進行路由聚合可提高大型網絡的可擴展性和效率,縮減路由表。
l 如果被聚合路由攜帶了Tag,那麼路由聚合發生之後,Tag信息將被清除。
l rip summary-address ip-address mask [ avoid-feedback ] ,增加avoid-feedback是爲了聚合後從接口發送給對端後,接口不在收相同的聚合路由(防止路由環路),其他友商可能會在聚合後生產一條null0的黑洞路由有相同效果。
工作過程分析
l 初始狀態:路由器開啓RIP進程,宣告相應接口,則設備就會從相關接口發送和接收RIP報文。進程初始啓動發送request(可以單播、組播、廣播,v1默認單播,v2默認組播),後面都是response報文(可以單播,組播,廣播,v1默認廣播,v2默認組播,可以手動設置爲單播)
l 構建路由表:路由器依據收到的RIP報文構建自己的路由表項。
l 維護路由表:路由器每個30秒發送更新報文以維護自己的路由表項。
l 老化路由表項:路由器爲將自己構建的路由表項啓動180秒的定時器。180秒內,如果路由器收到更新報文,則重置自己的更新定時器和老化定時器。
l 垃圾收集表項:如果180秒過後,路由器沒有收到相應路由表項的更新,則啓動時長爲120秒的垃圾收集定時器,同時將該路由表象的度量置位16。
l 刪除路由表項:如果120秒之後,路由器仍然沒有收到相應路由表象的更新,則路由器將該表相刪除。
RIP v1發送規則
1. 如果不在同一主網,此爲主網邊界,將前綴自動彙總爲有類網絡號,發送前綴到出接口;
RIP v1接受規則
3. 如果發現是主網絡號,直接放入路由表,掩碼是8/16/24;
a) 如果不在,生成有類路由,掩碼按有類路由計算,放入路由表;
b) 如果在同一主網,用接口掩碼去掩,然後檢查該前綴是否是網段地址還是主機地址:
i. 如果是網段地址,生成路由,掩碼等於自己的接口掩碼,放入路由表;
ii. 如果掩出來發現不是網段地址,就默認是主機,生產32位主機路由,放入路由表。
8. 192.168.1.0:不同主網,自動彙總爲有類網絡號
10. 10.2.2.2/32:前綴不是主網絡號---是同一主網---掩出後不是網段地址---默認主機路由
11. 10.3.3.0/24:前綴不是主網絡號---是同一主網---等於接口掩碼
silent-interface :RIP開啓後只接受不發送,OSPF是收發都禁止。
silent-interface+指定peer實現單播更新,
如果只配置指定peer,那麼v1既發單播又發廣播,v2既發單播又發組播
17. 檢查在RIP中是否配置了策略,過濾掉收到的RIP路由:
19. 檢查接口是否配置了undo rip input/output或者rip metricin設置度量值多大