RIP理解

首先,要先知道,本身研究RIP沒什麼特別的意義,然而,探析了RIP,之後對於學習ospf,bgp有着極大的幫助。

概述

Routing information Protocol,路由信息協議,是第一代動態路由協議;所屬距離矢量協議,基於跳數來進行路徑選擇(最多支持15跳)RIP協議有多個版本,分爲v1/v2/ng版。也是真正意義上的第一個路由協議

The figure shows a network. The arrows highlight the path RIPselects. RIP selects the best path based on shortest hop count so it ignoresthe path with the faster T1 links.      

Be sure that you do not disparage RIP. It was developed in ahomogeneous network. If everything is connected via a single media type, thenbandwidth-based metrics reduce to hop count. In some cases RIP is moreappropriate than other protocols. It is extremely well tested. 


特徵

OSI層次:應用層協議,基於UDP端口520

算法特徵:距離矢量協議

有類無類:v1爲有類、v2爲無類

運行範圍:IGP

最佳路徑:管理距離120、度量值:跳數(路由器的個數)

部署

wKiom1gLZFzhXA7jAAER_WE0rH4992.png-wh_50

講道理是需要掩碼的,然而RIPv1的歷史太久了,在RIPv1研發出來的年代,掩碼的概念還沒有

相關排錯命令

wKioL1gLZHuQydf9AAAuh8trHg4269.png

wKiom1gLZHvD80rzAAA2Jrf6kX8747.png

wKioL1gLZHvQAxOCAAEEYQJga-w297.png

RIP路由分組

爲什麼一條network命令無論多麼遙遠,兩臺路由器都可以溝通?

Response

定義:RIP回覆分組,用於更新/發送本地路由信息

特徵:週期更新(25.5-30s)、廣播更新(255.255.255.255)、不可靠更新(UDP

原理:

wKioL1gLZPeB9PF4AAA6HzoWJVA542.png-wh_50

抓包分析

wKiom1gLZPfh2QbKAABhnWzyTe4209.png-wh_50

回覆包裏面有着大量的路由信息,他們之間互相通告,使鏈路信息週期性更新

wKiom1gLZTCSbDChAAC2ST5_fj4240.png

觀察發送的回覆包,都是廣播包,週期性發送(25s~30s),理論上是30s,然而實際上這麼做就是爲了避免在30s這個時間段出現峯值,導致網絡癱瘓。這麼做可以減少網絡壓力

Request

定義:RIP請求分組,用於初始化時向路由器鄰居請求路由條目(即在初始化階段纔會出現)

wKioL1gLZqmgKxfyAAAj65gRxM0652.png

很特殊的一個單播包,當一個設備啓動了這個協議,就把自己的信息發送出來,不用等待30s,就可以在局域網中發佈自己的信息。可以更快的同步路由信息,使鏈路收斂

wKiom1gLZtLSNISjAABMRlkKcho772.png-wh_50

計時器

更新計時器

30s

用於實現對路由條目的週期交互

失效計時器

180s

若路由條目180s內沒有收到更新,則失效

抑制計時器

180s

用於防環(這個是理論值比較難驗證)

刷新計時器

240s

直接從路由表移除,“死透”

                   設備出故障的時候需要4min左右才能被知情,這個有些滯後,因此才說,壞消息傳播的慢

wKiom1gLZx6gl6HcAABqs73cbv0475.png-wh_50

通過路由器的debug命令查看計時器的工作狀態

wKioL1gLZx-hv4U8AAH1nAJSSYE460.png-wh_50

(這個時候我暫停R3的運行,再觀察R1的反饋)

         首先,我們看到的信息都是RIP更新包,30s一個週期,這個是更新計時器在工作的結果,之後要觀察紫色圈圈裏面關於R3路由信息的更新時間(由於失效的時候沒有信息返回,我們可以通過shou ip route rip來驗證)

wKioL1gLZ0aDszglAAA66tS7Nbg171.png

240s的時候死透所以顯示不可達

wKioL1gLaCOCgXpLAAIHaa_9BGY976.png-wh_50

比較一個現象,剛纔的實驗是用了4min才能知情R3出故障,那麼這種情況呢?在將lookback接口關閉

wKiom1gLaCPTD4EPAAFXAejsO4c578.png-wh_50

這裏是立即響應的,到底有什麼區別呢?

答案:這裏就是涉及觸發更新/中毒路由的概念

當路由協議檢測到網絡拓撲發生變動時,不再需要基於計時器進行路由處理,直接發送故障/變動信息進行表項處理,此過程稱爲觸發更新。

         中毒路由:

R3lookback口關閉

wKiom1gLaCTxI2UiAAD2d7K820s044.png-wh_50

會發現

wKioL1gLaCTRRRAOAADbvoxL2hM516.png-wh_50

很快的就能收到中毒信息,這個於RIP所說的等待8min不符,我這裏我認爲是由於這是IOS所具有的解決方案所致

RIP路由算法

路由分組是路由器的血液,路由算法則是路由器的靈魂,路由算法可以根據路徑參數(度量值)生成路由條目。

內容:

Bellman算法(貝爾曼):

  如果收到鄰居給的路由,若本地沒有,則接收;

  如果收到鄰居給的路由,若本地有,根據度量值對比,若優則錄入,若劣質則丟棄;

  如果收到鄰居給的路由,若劣質,但是還是從原有的鄰居學到的,也錄入。

RIP路由防環

協議在網絡穩定的時候,啥事都沒有。網絡動盪的時候,問題就來了,由於RIPv1本身算法的問題,會出現環路。之後開發的路由協議是絕對無環的。

環路的最大特徵就是路由互指(兩臺路由器互相踢皮球)

環路形成

wKioL1gLaCTjB6pOAACQJA_mpHI876.png-wh_50

一共5步形成環路:這個過程中R1R3正常運行RIP協議,每30s發送一次更新包

  1. R3C2的信息發送給R1(即發送R2路由表中的所有信息“A=1”)

  2. R1記錄了A的位置(即AR3的下一跳,“R3 A=1”)

  3. 重點此時網絡動盪(即R3的接口showdown

  4. R1仍然發送的更新包,然而R3沒有回覆,R1認爲R3不在下一跳信息內,記錄爲R3A=2

  5. R1重複發送更新包,一直到度量值爲16(這個過程爲7.5min,即15*30s)

防環機制
水平分割

定義:從本接口收到的路由條目,不能再從本接口發送出去

wKiom1gLaCSyAizvAAAmdszQIas939.png-wh_50

The splithorizon technique attempts to eliminate routing loops and speed up convergence.The rule of split horizon is that it is never useful to send information abouta route back in the direction from which the original packet came. In theexample:

Router C originally announced a route to network 10.4.0.0 to routerB. It makes no sense for router B to announce to router C that router B hasaccess to network 10.4.0.0 through router C.

Given that router B passed the announcement of its route to network10.4.0.0 to router A, it makes no sense for router A to announce its distancefrom network 10.4.0.0 to router B.

Because router B has no alternative path to network 10.4.0.0, routerB concludes that network 10.4.0.0 is inaccessible.

In its basicform, the split horizon technique simply omits from the message any informationabout destinations routed on the link. This strategy relies either on routesnever being announced or on old announcements fading away through a timeoutmechanism.

Split horizonalso improves performance by eliminating unnecessary routing updates. Undernormal circumstances, sending routing information back to the source of theinformation is unnecessary.     

最大16

定義:若RIP的路由條目跳數達到16跳,則此路由失效並且被丟棄。

原理:(RIP只能支持直徑爲16跳的網絡,最大有效爲15跳)

路由中毒(毒化)

路由器將路由信息的跳數標記爲無限大

定義:若RIP的路由條目發生故障時,會將此路由標記爲16跳,併發送給鄰居,告知鄰居此路由有問題,儘快刪除。

Route poisoningcloses the potential for longer routing loops. Fast convergence minimizes thechance for a routing loop to occur, but even the smallest interval leaves thepossibility open. With a poison route in place, router B can maintain asteadfast entry that network 10.4.0.0 is indeed down.

毒性逆轉

定義:若RIP的路由條目發送故障時,會將此路由標記爲16跳,併發送給鄰居,鄰居會返回16跳的中毒路由,實現確認。

Poison reverseoverrides the split horizon solution.

抑制計時器(180s

定義:當收到故障路由之後,默認會直接刪除本故障路由;若此時從遠方又收到此路由,則有可能造成再一次的環路;爲了解決這個問題,設置抑制計時器,當收到故障路由之後,保持180s之後再刪除路由條目。

RIPv2 VS RIPv1

v2是組播更新,支持無類子網,帶掩碼,是組播更新(224.0.0.9),v1是廣播更新(255.255.255.255


wKiom1gLahKDYvmkAABVJ5qATFs448.png

關於自動彙總,這個是歷史的遺留功能,雖然不再使用了,但是仍然沒有去除,只能自己手工關閉

RIPv2實驗——路由彙總

wKioL1gLahKgXBirAABtiZLEnuc622.png

wKiom1gLahLit_EPAADR6lkFXz8024.png

注意這種寫法,跟創建lookback3lookback4lookback5之後給予地址172.16.1.1172.16.2.1172.16.3.1是一個意思,只是簡潔了一些

wKioL1gLahKSZ3bFAABiJZBcZ3E050.png

wKiom1gLahLDf1u6AAB-a3UWvp4455.png

相當於只保留一個主類網絡。之後檢查在R2R3有沒有收到路由更新

wKioL1gLahOBHRLZAAEpV_mj7kE463.png

wKiom1gLahOBU0q3AAEZSEwYsHw079.png

這裏發現我們僅僅是在R1寫了四條新路由,通告之後,在R2R3則相應的出現了8條路由信息(2接口*4網絡地址)。可以想象當路由信息過多,接口數量增加的時候,路由表會相應的指數型增長。

爲了給路由表減壓,我們需要理解一個概念——路由彙總(這個是對路徑調優)

wKioL1gLahOxciACAACOKQWuKj0284.png

效果

wKiom1gLahODqIcKAAHDleAN8Xc334.png

注意:

         這裏要注意到兩條命令no auto-summaryip summary-address一個是在部署ripv2時寫的。因爲auto-summary會自動彙總主網絡號路由,很容易出現環路,所以需要關閉。而ip summary-address這個是手動彙總,是在項目開始之前,就已經規劃好的,我們手寫進去的(當然咯,之後編程能力強的話,直接用腳本也行,但本質上仍然是手寫進去的)。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章