遵循協議:
1、特網rip1標準文件:rfc1058? ? 網站 : https://tools.ietf.org/html/rfc1058
2、因特網rip2標準文件:rfc1723? ? 網站 :https://tools.ietf.org/html/rfc1723
使用工具:
GNS3
使用路由器文件:
Cisco? c3745-a3jk9s-mz.123-4.T2.bin
路由協議性質:
距離向量(distance vector):RIP IGRP?
鏈路狀態(link state):OSPF IS-IS
混合型(hybrid):EIGRP
距離向量概念:
矢量(向量)算法:既有大小又有方向的量,例如速度、加速度、力等等
收斂算法:開始構建網絡拓撲到回收網絡拓撲彼此學習、同步、回收過程的算法
快速聚斂算法:所謂聚斂就是指所有路由器就最優路徑重新達成一致的過程。
當因為某種原因使路由器出現問題而無法繼續正常使用時,路由器會
發出路由更新信息傳遍整個網絡,重新計算最優路徑,并最終使所有
路由器就新路徑達成一致。聚斂速度慢的路由算法可能會導致路由回路的出現
RIPv1
RIPv1報文結構
RIP每條消息包含兩個部分,分別為Header和Route Entries。其中Header包含Command和Version。Route Entries最多包含25個路由條目,每個路由條目包含Address Family Identity、路由可達的IP地址和跳數。?
報文格式各個字段解釋如下:
-
【Command】:取值1或2,當取值為1時表示該消息為請求消息;當取值為2時表示該消息為響應消息。
-
【Version】:當取值為1時表示該消息為RIPv1消息;當取值為2時表示該消息為RIPv2消息。
-【 Address Family Identity】:對于IPv4協議,該字段取值為2。當該消息是對整張路由表的請求消息時,該字段取值為0。
-
【IP Address】:該字段表示路由的目的地址。這一項可以是網絡地址、主機地址。
-
【Metric】:該字段是指RIP中的跳數。雖然該字段取值范圍為0-2^32,但是在RIP中,該字段的取值范圍為1-16。
例如:10 01 10? 11000000 10101000 01001110 01100100? ?00000000 0000000 00000000 00000001?? 底層數據傳輸形式
RIPv1特點:
1 有類別路由協議?
2.廣播更新?
3 基于UDP,端口號為520?
4 不支持認證?
5.不攜帶掩碼信息無法做路由聚合?
6 一個RIP報文最多攜帶25條路由(RIPv1數據包最大512byte,一條路由20byte、RIP報頭4byte,即RIP最大消息=4+(25*20)=504)
RIPv1工作過程:??
路由器啟動時,路由表中只會包含直連路由。運行RIP之后,路由器會發送Request報文,用來請求鄰居路由器的RIP路由。運行RIP的鄰居路由器收到該Request報文后,會根據自己的路由表,生成Response報文進行回復。路由器在收到Response報文后,會將相應的路由添加到自己的路由表中。?
RIP網絡穩定以后,每個路由器會周期性地向鄰居路由器通告自己的整張路由表中的路由信息,默認周期為30秒。鄰居路由器根據收到的路由信息刷新自己的路由表。
工作過程分析?
?
RIP定時器
RIP主要使用三個定時器:
【更新定時器】:它定時觸發更新報文的發送,更新周期默認為30秒。?
【老化定時器】:RIP設備如果在老化時間內沒有收到鄰居發來的路由更新報文,則認為該路由不可達。老化定時器超時后,該路由條目設置為16。?
【垃圾收集定時器】:如果在垃圾收集時間內(默認為更新定時器的4倍,即120秒),不可達路由沒有收到來自同一鄰居的更新,則該路由將被從路由表中徹底刪除。
三個定時器之間的關系
1 RIP 的更新信息發布是由更新定時器控制的,默認為每30 秒發送一次。?
2 每一條路由表項對應兩個定時器:老化定時器和垃圾收集定時器。當學到一條路由并添加到路由表中時,老化定時器啟動。如果老化定時器超時,設備仍沒有收鄰居發來的更新報文,則把該路由的度量值置為16(表示路由不可達),并啟動垃圾收集定時器。如果垃圾收集定時器超時,設備仍然沒有收到更新報文,則在路由表中刪除該條目。
注意事項
(1)如果在沒有觸發更新的前提下,一個路由表項最多需要300秒才能被刪除(老化時間+垃圾收集時間)。?
(2)如果存在觸發更新,那么一個路由條目最多需要120秒才能被刪除(即為老化時間)。
RIP度量計算
RIP使用跳數作為度量值來衡量到達目的網絡的距離。在RIP中,路由器到與它直接相連網絡的跳數為0,每經過一個路由器后跳數加1。為限制收斂時間,RIP規定跳數的取值范圍為0~15之間的整數,大于15的跳數被定義為無窮大,即目的網絡或主機不可達。
RIP開銷控制
Metricin?
命令rip metricin 用于修改令所指定的度量值會與當前路由的度量值相加?
Metricout?
命令rip metricout用于路由器在通告RIP路由時修改路由的度量值。
RIPv2
RIPv2 報文結構
?
RIPv2的報文格式的基本結構和RIPv1相同。RIPv2使用了RIPv1中部分未用字段以提供擴展功能。
報文格式部分字段解釋如下:
【Route Tag】:用于標記外部路由或者路由引入到RIPv2協議中的路由。?
【 Subnet Mask】:用來標識使用IPv4地址的網絡和子網部分。?
【NextHop】:表示比通告路由器地址更好的下一跳地址。如果該字段為0.0.0.0,則說明通告路由器地址為最優下一跳地址。
RIPv2–認證
RIPv2支持對協議報文進行認證,認證方式有明文認證和MD5認證兩種。當RIPv2配置認證時,RIPv2會對報文第一條Route Entries進行修改。
- 1
- 2
具體修改如下:
- Address Family Identity字段改為0XFFFF。
- Route Tag字段改為Authentication Type字段。
- IP Address、Subnet Mask、Next Hop和Metric會變為口令字段。
RIPv2工作過程??
路由器運行RIPv2后,會首先組播發送路由更新請求,收到請求的路由器會發送自己的RIPv2路由進行響應。(默認運行RIPv2發送組播更新,可以在接口上控制以組播/廣播方式發送更新)?
網絡穩定后,路由器會周期性發送路由更新信息。
RIPv1,RIPv2區別
VLSM應用:
測試:采用 RIP Version 2? ?R1? ping R2? ? ? ? ? ? ? ? 通? ? R1 ping R3 不通? ? 結果:肯定有一方不支持VLSM導致無法ping通
? ?采用 RIP Version? 2? R3? ping R4? ? ? ? ? ? ? ? 不通?? ? ? ? ? ? ? ? 結果:Version 1不支持VLSM
? ? 開通R3與R4的Version? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 測試Ping? ? ? ?結果:完全OK
?
?
RIP默認傳輸數據
傳輸時只要開啟RIP傳輸,都會默認把當前路由器表傳輸給下一跳路由器進行算法比對
新路由器加入(這個規則簡單)
例子:圖一 如果在10.1.0.0之前加入1.1.0.0,新加IP在A表示為1跳,B的路由表并沒有1.1.0.0,當A把自己的最新路由表傳遞到路由B時發現沒有1.1.0.0就會把1.1.0.0添加進B表中,記錄時并且上一跳路由的跳數基礎上進行累加1
跳數累加及方向的確定:當B路由同時接收到A和C的路由表該如何進行計算,如果B上接了D和E路由,四個同時傳遞路由表給B那該如何處理呢?如圖二
解題思路:必要條件數據不可能同時處理,必須按隊列進行計算,一個路由多個分支的路由處理順序規則
1、如果對于B來說,假如A C D E是按照表加入時間劃分優先級,ACDE先后在B中加入路由表,A優先級為最高優先級
2、矢量方向判斷/跳數疊加算法? 假設:A把表送到B , if 所有路由器都有這個IP地址跳數表A > B && B>D 中的IP跳數,對于A路徑傳遞過來的地址方向就是FABD/FABE/FABC?
??
(圖一)
?
?(圖二)
?
可能存在的設計缺陷
一、例圖一ABC的路由表更新時間頻率不一致
二、例圖一 10.4.0.0斷開而無法及時進行全網路由通知更新
三、B和C無限重發,造成路由環回
?
?
?
RIP缺陷性設計
?
?
?
?
?
?
?
思科動態路由小實驗
3560交換機配置 創建VLAN虛擬局域網空間S3560(config-if)#int vlan 10S3560(config-if)#ip add 192.168.1.1 255.255.255.0S3560(config-if)#no shS3560(config-if)#int vlan 20S3560(config-if)#ip add 192.168.3.1 255.255.255.0S3560(config-if)#no shS3560(config-if)#exit把F0/2和F0/1放進Vlan10和Vlan2的局域網空間S3560(config)#interface f0/2S3560(config-if)#switchport access vlan 10S3560(config-if)#interface f0/1S3560(config-if)#switchport access vlan 20S3560(config-if)#exit手動添加rip協議表空間記錄S3560(config)#ip routing ##打開交換機默認關閉的rip協議S3560(config)#route rip ##啟動rip協議S3560(config-R1)#network 192.168.1.0S3560(config-R1)#network 192.168.1.3S3560(config-R1)#version 2S3560(config-R1)#endS3560(config)#do write ##寫入當前配置R1路由器設置 設置RIP及同步時鐘R1(config)#interface s2/0R1(config-if)#ip add 192.168.4.1 255.255.255.0R1(config-if)#no shR1(config-if)#clock rate 64000R1(config-if)#route rip R1(config-R1)#network 192.168.3.0R1(config-R1)#network 192.168.4.0R1(config-R1)#version 2 下游交換機接口通訊設置R1(config-R1)#interface f0/0R1(config-if)#ip add 192.168.3.2 255.255.255.0R1(config-if)#no shR1(config-if)#do write ##寫入當前配置R2路由器設置 設置RIP及同步時鐘R1(config)#interface s2/0R1(config-if)#ip add 192.168.4.2 255.255.255.0R1(config-if)#route rip R1(config-R1)#network 192.168.4.0R1(config-R1)#network 192.168.2.0R1(config-R1)#version 2 下游交換機接口通訊設置R1(config-R1)#interface f0/0R1(config-if)#ip add 192.168.2.1 255.255.255.0R1(config-if)#no shR1(config-if)#do write ##寫入當前配置
測試過程必:須先從PC1 ping路由器1 再 ping 路由器2 再ping 交換機 再ping PC2 的過程稱之為RIP路由表學習在enable下使用show ip route查看學習到的地址表信息
在沒學習到地址之前跨設備通信是不通的

?
16個跳數極限測試
第一個路由器顯示結果
?
?被動接口--單播測試
借上圖配置
被動接口-------在所有路由器上輸入如下代碼
do show debug ip rip ----動態顯示30秒路由更新
輸入后每個路由器會動態更新出現如下信息
RIP: sending v2 update to 224.0.0.9 via GigabitEthernet0/0 (192.168.1.2) -----發送RIP的Log
RIP: build update entries
192.168.1.128/25 via 0.0.0.0, metric 1, tag 0
RIP: received v2 update from 192.168.1.2 on GigabitEthernet0/0 -----接收RIP的Log
192.168.1.192/27 via 0.0.0.0 in 1 hops
第三個路由器輸入如下信息,其他路由依次輸入
? R3(config)#router rip //也是要在協議底下配置?
R3(config-router)#passive-interface g0/1 //被動接口后配置單播更新--禁止G0/1進行UDP接口更新RIP表
R3(config-router)#neighbor 192.168.1.190? //單播更新給?192.168.1.190? ?---此代碼沒有測試,模擬器2911缺少此功能
R3(config-router)# clear ip route * ----清空路由表
? ? ? ?
?
? 測試結果:
? ?R1? ping? ? ? ?192.168.1.2 and 192.168.1.129 通? ? ? ? ? ? ? ? ? ? ping? ? ? ? ? 192.168.1.130 and 192.168.1.193 不通
? ?
? ?
DV中解決環路的幾種辦法
水平分割
原理:水平分割是指從這個接口收到的信息不回再從這個接口傳出去
R3(config-router)#passive-interface g0/1
R3(config-router)#neighbor xxx.xxx.xxx.xxx
毒性逆轉
原理:RIP從某個接口學到路由后,從原接口發回鄰居路由器,并將該路由的開銷設置為16(即指明該路由不可達)。利用這種方式,可以清除對方路由表中的無用路由。
保持失效定時器
觸發更新
最大跳數(終極武器)
?