學習筆記——動態路由——RIP(RIP工作原理/防環機制)

三、RIP工作原理/防環機制

1、工作原理

配置好RIP的路由器會每隔30s,向鄰居路由器自動發送RIP路由更新報文。報文里面攜帶了其所知道的所有路由。

通過發送數據包進行路由信息的交互,路由器啟動RIP協議,向周圍鄰居路由器傳遞request(請求)response(響應)報文,周圍路由器收到后發回復報文,回復報文內包含有周圍路由器自身的RIP路由表,路由器收到周圍路由器的恢復后修改自己的路由表。

2、RIP防環機制

對于路由環路問題,RIP中存在3種解決方案:水平分割、毒性逆轉、觸發更新。

(1)水平分割(Split Horizon)

水平分割的原理:RIP路由設備從某個接口學到的路由不會從該接口再發回給鄰居路由設備。這樣不但減少了帶寬消耗,還可以防止路由環路。

水平分割在不同網絡中實現有所區別,分為按照接口和按照鄰居進行水平分割兩種

1)在廣播型網絡、點到點網絡(P2P)和點到多點網絡(P2MP)中,從哪個接口學習到的RIP路由信息,就禁止從該接口發送出去。

廣播網、P2MP和P2P網絡中的水平分割

如(上圖示),DeviceA會向DeviceB發送到網絡10.0.0.0/8的路由信息,如果沒有配置水平分割,DeviceB會將從RouterA學習到的這條路由再發送回給RouterA。這樣,RouterA可以學習到兩條到達10.0.0.0/8網絡的路由,一條是跳數為0的直連路由,一條是下一跳指向DeviceB且跳數為2的路由。

但是在DeviceA的RIP路由表中只有直連路由才是活躍的。當DeviceA到網絡10.0.0.0的路由變成不可達,并且DeviceB還沒有收到路由不可達的信息時,DeviceB會繼續向DeviceA發送10.0.0.0/8可達的路由信息。即,DeviceA會接收到錯誤的路由信息,認為可以通過DeviceB到達10.0.0.0/8網絡;而DeviceB仍舊認為可以通過DeviceA到達10.0.0.0/8網絡,從而形成路由環路。

配置水平分割后,DeviceB將不會再把到網絡10.0.0.0/8的路由發回給DeviceA,避免了路由環路的產生。

2)在非廣播多路訪問網絡(NBMA,Non Broadcast Multiple Access)中,不允許將從某一鄰居學習到的路由信息再發送回該鄰居,是按照鄰居進行水平分割。

NBMA網絡中的水平分割

對于NBMA網絡,由于一個接口上連接多個鄰居,RIP支持在NBMA網絡中按鄰居進行水平分割處理。NBMA網絡中,路由按照單播方式發送,同一接口上收到的路由可以按鄰居進行區分。從某一接口的對端鄰居處學習到路由,不會再通過該接口發送回去。

如(上圖)示,配置水平分割后,DeviceB會將從DeviceA學習到的10.0.0.0/8路由發送給DeviceC,但是不會再發送回給DeviceA。

(2)毒性反轉(Poison Reverse)

毒性逆轉的原理配置了毒性反轉之后,可以使錯誤路由立即超時RIP從某個接口學到路由后,從原接口發回鄰居路由器,并將該路由的開銷設置為16(即指明該路由不可達),并從原接口發回鄰居路由設備。利用這種方式,可以清除對方路由表中的無用路由,也可以防止產生路由環路的發生。

如(上圖)示,DeviceA會向DeviceB發送10.0.0.0/8路由信息,如果沒有配置毒性逆轉,Device B會將從DeviceA學習到的這條路由再發送回給DeviceA。這樣,DeviceA可以學習到兩條到達10.0.0.0/8網絡的路由,一條是跳數為0的直連路由;一條是下一跳指向DeviceB且跳數為2的路由。

當DeviceA到網絡10.0.0.0/8的路由變成不可達,并且DeviceB還沒有收到路由不可達的信息時,DeviceB會繼續向Device A發送10.0.0.0/8可達的路由信息。即,DeviceA會接收到錯誤的路由信息,認為可以通過DeviceB到達10.0.0.0/8網絡;而DeviceB仍舊認為可以通過DeviceA到達10.0.0.0/8網絡,由此導致了路由環路。

配置毒性逆轉后,DeviceB在接收到從DeviceA發來的路由后,向DeviceA發送一個這條路由不可達的消息(即將該路由的開銷設置為16跳,16跳即意味著該路由不可達),這樣DeviceA就不會再從DeviceB學到這條可達路由,因此就可以避免上述環路的發生。

(3)觸發更新

缺省情況下,一臺RIP路由器每30秒會發送一次路由表更新給鄰居路由器。

觸發更新的原理:當本地路由信息發生變化時,觸發更新功能允許路由器立即發送觸發更新報文給鄰居路由器,來通知路由信息更新,而不需要等待更新定時器超時,從而加速了網絡收斂。觸發更新可以縮短網絡收斂時間,在路由表項變化時立即向其他設備廣播該信息,而不必等待定時更新。

如(上圖)所示,網絡10.4.0.0不可達時,DeviceC最先得到這一信息。通常,更新路由信息會定時發送給相鄰Device(RIP協議每隔30秒發送一次)。

但如果在DeviceC等待更新周期到來的時候,DeviceB的更新報文傳到了DeviceC,DeviceC就會學到DeviceB的去往網絡10.4.0.0的錯誤路由。這樣DeviceB和DeviceC上去往10.4.0.0的路由都指向對方從而形成路由環路。

如果DeviceC發現網絡故障之后,不再等待更新周期到來,就立即發送路由更新信息給DeviceB,使DeviceB的路由表及時更新,則可以避免產生上述問題。

觸發更新還存在另外一種方式:當下一跳不可用之后(如因為鏈路故障)需要及時通告給其他設備,此時要把該路由的cost設置為16然后發布出去,此更新也叫做路由毒殺


整個華為數通學習筆記系列中,本人是以網絡視頻與網絡文章的方式自學的,并按自己理解的方式總結了學習筆記,某些筆記段落中可能有部分文字或圖片與網絡中有雷同,并非抄襲。完處于學習態度,覺得這段文字更通俗易懂,融入了自己的學習筆記中。如有相關文字涉及到某個人的版權利益,可以直接聯系我,我會把相關文字刪除。【VX:czlingyun ? ?暗號:CSDN】

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/diannao/35136.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35136.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35136.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

克隆網站的風險

克隆網站的風險 隨著互聯網的快速發展,克隆網站也變得越來越常見。克隆網站是指復制原始網站的外觀和功能,并偽裝成原始網站。雖然克隆網站可以提供與原始網站相似的服務和體驗,但它們也帶來了一系列風險。本文將探討克隆網站的風險&#xff…

我的故事與思考

在24年的高考帷幕落下之后,我們站在了一個新的起點,面對著即將開始的大學新生活,我們面臨著一道重要的選擇題:是選擇一個心儀的專業,還是選擇一個知名度更高的學校?這是一個困擾了眾多考生和家長的長期難題…

Docker 從入門到精通(大全)

一、概述 1.1 基本概念 Docker 是一個開源的應用容器引擎,基于 Go 語言 并遵從 Apache2.0 協議開源。 Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。…

使用QtGui顯示QImage的幾種方法

問題描述 我是一名剛學習Qt的新手,正在嘗試創建一個簡單的GUI應用程序。當點擊一個按鈕時,顯示一張圖片。我可以使用QImage對象讀取圖片,但是否有簡單的方法調用一個Qt函數,將QImage作為輸入并顯示它? 方法一:使用QLabel顯示QImage 最簡單的方式是將QImage添加到QLabe…

bigtop gradle 任務依賴關系

./gradlew deb 會編譯ubuntu的所有deb包 任務deb會依賴17個任務,它們會按字母排序執行,如下: alluxio-deb bigtop-groovy-deb bigtop-jsvc-deb bigtop-utils-deb flink-deb hadoop-deb hbase-deb hive-deb kafka-deb livy-deb phoenix-deb …

這5款國內可用的寶藏AI視頻工具,不允許有人還不知道!(建議收藏)

文章首發于公眾號:X小鹿AI副業 大家好,我是程序員X小鹿,前互聯網大廠程序員,自由職業2年,也一名 AIGC 愛好者,持續分享更多前沿的「AI 工具」和「AI副業玩法」,歡迎一起交流~ 前幾天一位粉絲說給…

【MySQL】數據庫——存儲引擎

一、存儲引擎概述 1.概念 MySQL中的數據用各種不同的技術存儲在文件中,每一種技術都使用不同的存儲機制、索引技巧、鎖定水平并最終提供不同的功能和能力,這些不同的技術以及配套的功能在MySQL中稱為存儲引擎存儲引擎是MySQL將數據存儲在文件系統中的存…

會聲會影2024永久激活碼序列號注冊機分享

大家好呀,今天我想給大家安利一款我最近超級喜歡的軟件——會聲會影2024!🌟 作為一個視頻編輯愛好者,我嘗試過很多視頻編輯軟件,但總感覺少了那么一點點“火花”。直到我遇到了會聲會影2024,它完全改變了我…

環境科學SCI期刊,IF=3+,易錄用,幾乎不退稿

一、期刊名稱 International Journal of Environmental Science and Technology 二、期刊簡介概況 期刊類型:SCI 學科領域:環境科學 影響因子:3.1 中科院分區:4區 三、期刊簡介 International Journal of Environmental Sci…

C++_STL---string類

前言 說起string類,首先需要了解的是 - string類是什么? std::string是類模板std::basic_string的一個元素類型為char的實例化,而basic_string則是對元素指針的封裝。由于basic_string的實現對字符串操作進行了優化,所以它不能用…

深入理解計算機系統 CSAPP 家庭作業6.45

CS:APP3e, Bryant and OHallaron 可以參考這里 void bijk(array A, array B, array C, int n, int bsize) {int i, j, k, kk, jj;double sum;int en bsize*(n/bsize);for (i 0; i < n; i)for (j 0; j < n; j)C[i][j] 0.0;for (kk 0; kk < en; kk bsize) {for (j…

QT拖放事件之八:通過全局剪切板中的接口QClipboard::mimeData()來獲取MIME類型數據

1、演示效果 首先向剪切板寫入數據,然后點擊paste按鈕進行從全局剪切板中 獲取 MIME數據。。。 2、核心代碼 void Widget::on_pasteBtn_clicked() {const QClipboard* clipBoard = QGuiApplication::clipboard()

前端路由中的meta、matched是什么?有哪些作用?

在前端路由中&#xff0c;尤其是在 Vue.js 這樣的框架中&#xff0c;meta 和 matched 是兩個常見的概念&#xff0c;它們提供了關于路由的額外信息和上下文 1. meta 一個可以附加到 Vue Router 路由定義上的自定義字段 它通常用于存儲一些與路由相關的元數據或信息&#xff0…

算法07 深度優先搜索及相關問題詳解

深搜與廣搜是搜索算法中最常用的兩種算法&#xff0c;通過深度優先搜索解決問題還會用到回溯和剪枝&#xff0c;讓我們一起進入本章&#xff0c;了解深搜的基本概念和模板&#xff0c;并學會解決一些常見問題。 目錄 問題導入 走迷宮問題 如何走&#xff1f; 問題建模 如何…

python ----- xml 命名空間與xpath詳解

一、簡介 本文章以如下xml 樣例進行講解命名空間和xpath xml_text"""<?xml version"1.0"?><actors xmlns:fictional"http://characters.example.com"xmlns"http://people.example.com"><actor><name>…

SpringBean的管理

一、bean的名字與標識符 <bean id"" class""></bean> bean的名字作用: 獲取這個bean通過bean名字獲取 bean名字配置方式: id: 唯一標志符, 命名規范與變量命名規范一樣, 包含特殊符號name: 配置名字: 可以包含特殊符號,沒有要求, 比如. 一…

基于支持向量機的垃圾郵件分類,使用SVM+flask+vue

sms-classify 基于支持向量機的垃圾郵件分類&#xff0c;使用SVMflaskvue 數據集和源碼地址 數據集 SMS Spam Collection Data Set 來源于 UCI。樣例被分為非垃圾郵件&#xff08;86.6%&#xff09;和垃圾郵件&#xff08;13.4%&#xff09;&#xff0c;數據格式如下&#xff…

網絡爬蟲中Xpath的使用方法

正則表達式雖然可以處理包含了諸如 HTML 或 XML 內容的字符串&#xff0c;但只能根據文本的 特征匹配字符串&#xff0c;而忽略字符串所包含的內容的真實格式。為了解決這個問題&#xff0c;Python 引入 XPath 以及支持 XPath 的第三方庫 lxml&#xff0c;專門對 XML 或 HTML 格…

git 合并master到分支

master分支的代碼領先自己的分支,git 如何把master分支代碼合并到自己的分支 1.首先切換到主分支 git checkout master 2.使用git pull 把領先的主分支代碼pull下來 git pull 3.切換到自己的分支 git checkout xxx(自己的分支) 4.把主分支的代碼merge到自己的分支 git merge ma…

minio+tusd+uppy搭建文件上傳服務

1、docker部署minio、tusd服務 1.1 新建docker-compose.yml minio API: http://ip:9100 minio控制臺: http://ip:9101 tus API: http://ip:9102/files/ tus webhooh: http:172.0.0.1:3000/files/webhooh(用戶鑒權API) version: 3.7services:minio:image: minio/minio:RELEAS…