1. 程式人生 > >深入理解動態選路協議——RIP、OSPF和BGP協議

深入理解動態選路協議——RIP、OSPF和BGP協議

靜態選路:預設方式生成(直連線口),通過route增加,通過ICMP重定向生成(預設方式出錯)。

動態選路:相鄰路由之間的通訊,以告知對方每個路由器當前所連線的網路。其改變的是選路策略,在路由表中動態的新增或刪除資訊。

自治系統內選路協議

1、內部閘道器協議IGP(Interior Gateway Protocol)。每個自治系統可以選擇該自治系統中各個路由器之間的選路協議。
(1)最常用的IGP是選路資訊協議RIP(Routing Infromation Protocol);使用UDP封裝。

RIP 協議的特點是
(1)僅和相鄰路由器交換資訊。【注】如果兩個路由器之間的通訊不需要經過另一個路由器,那麼這兩個路由器就是相鄰的。RIP協議規定,不相鄰的路由器不交換資訊。
(2)路由器交換的資訊是當前本路由器所知道的全部資訊,即自己的路由表。【注】交換的資訊是:“我到本自治制系統中所有網路的(最短)距離,以及到每個網路應該經過的下一跳路由器。”
(3)按固定的時間間隔交換路由資訊。【注】每個30秒,然後路由器根據收到的路由資訊更新路由表。當網路拓撲發生變化時,路由器也及時向相鄰路由器通告拓撲變化後的路由資訊。

RIP版本2報文格式
這裡寫圖片描述

命令:請求(1),應答(2),(3和4捨棄不用),輪詢(5)和輪詢表項(6);
請求:廣播要求其他路由器傳送完整路由表;
應答:路由器就將完整的路由表傳送給請求者;
版本:為2。
路由域:一個選路守護程式的識別符號,它指出了這個資料報的所有者。
地址類:緊跟在後面的20位元組指定地址系列(address family),I P地址(2)。
路由標記:routing tag是為了支援外部閘道器協議而存在的,它攜帶著一個EGP和BGP的自治系統號;
路由資訊:最多25個路由,20位元組*25+4位元組首部=504小於512(大部分程式限制UDP資料部分應小於512)。

守護程式Routed執行過程
(1)初始化:在啟動一個路由守護程式時,它先判斷啟動了哪些介面,並在每個介面上傳送一個請求報文,要求其他路由器傳送完整路由表;在點對點鏈路中,該請求是傳送給其他終點的;如果網路支援廣播的話,這種請求是以廣播形式傳送的。目的U D P埠號是5 2 0(這是其他路由器的路由守護程式埠號)。
這種請求報文的命令欄位為1,但地址系列欄位設定為0,而度量欄位設定為1 6;這是一種要求另一端完整路由表的特殊請求報文;
(2)接收到請求:如果這個請求是剛才提到的特殊請求,那麼路由器就將完整的路由表傳送給請求者;否則,就處理請求中的每一個表項:如果有連線到指明地址的路由,則將度量設定成我們的值,否則將度量置為16(度量為16是一種稱為“無窮大”的特殊值,它意味著沒有到達目的的路由),然後發回響應;
(3)接收到響應

:使響應生效,可能會更新路由表;可能會增加新表項,對已有的表項進行修改,或是將已有表項刪除;
定期選路更新:每過30秒,所有或部分路由器會將其完整路由表傳送給相鄰路由器;傳送路由表可以是廣播形式的(如在乙太網上),或是傳送給點對點鏈路的其他終點的;
(4)觸發更新:每當一條路由的度量發生變化時,就對它進行更新;不需要傳送完整路由表,而只需要傳送那些發生變化的表項;
每條路由都有與之相關的定時器;如果執行RIP的系統發現一條路由在3分鐘內未更新,就將該路由的度量設定成無窮大(16),並標註為刪除;這意味著已經在6個30秒更新時間裡沒收到通告該路由的路由器的更新了;再過60秒,將從本地路由表中刪除該路由,以保證該路由的失效已被傳播開;

(2)一種新的IGP是開放最短路徑優先OSPF(Open Shortest Path First)協議,它意在取代RIP;

分層結構:OSPF支援把網路劃分為多個擁有某種程度的自主權的區域。在這種結構中,有一個骨幹區域(總是指0區域),而且許多其它的區域都必須直接附加在0區域(特殊情況除外)。一個規劃良好的分層結構設計是每一個區域的路由都可以匯聚為連續的網段。OSPF還支援匯聚另一個路由協議重新發布的路由的能力。
這裡寫圖片描述

OSPF的特點
基本特點:
(1)向本自治系統中所有路由器傳送訊息。使用IP封裝。
(2)傳送的資訊就是與本路由器相鄰的所有路由器的鏈路狀態。
(3)只有當鏈路狀態發生變化時,路由器才向所有路由器用洪泛法傳送此資訊。
其他特點:
(4)OSPF對不同的鏈路可根據IP分組的不同服務型別而設定成不同的代價。
(5)多路徑間的負載均衡。到同一個網路目的有多條相同代價的路徑,可將通訊量分配給這幾條路徑。
(6)所有在OSPF路由器之間交換的分組都具有鑑別的功能,因而保證了僅在可信賴的路由器之間交換鏈路狀態資訊。
(7)OSPF支援可變長的子網劃分和無分類的編址CIDR。
(8)OSPF讓每一個鏈路狀態都帶上一個32位的序號,序號越大狀態越新。

OSPF的報文格式
通用首部:
這裡寫圖片描述
版本:當前版本號是2.
型別:五種型別分組中的一種。問候(Hello)、資料庫描述(Database Description)、鏈路狀態請求(Link State Request)、鏈路狀態更新(Link State Update)、鏈路狀態確認(Link State Acknowledgement)。
分組長度:單位1位元組。包括OSPF首部在內的長度。
路由器識別符號:標誌傳送該分組的路由器介面的IP地址。
區域識別符號:分組屬於的區域的識別符號。
檢驗和:用來檢測分組中的差錯。
鑑別型別:0(不用)、1(口令)。
鑑別:鑑別型別為0時就填入0.鑑別型別為1則填入8個字元的口令。

(1)OSPF Hello型別格式
這裡寫圖片描述
這裡寫圖片描述
OSPF協議使用一種稱之為Hello的報文來建立和維護相鄰鄰居路由器之間的連結關係。這個報文很簡單的,容量很小,僅用來向鄰居路由器證明自己的存在,就像人與人之間的打招呼一樣。我們在第8章中已經知道,RIP鄰居路由器之間的鄰接關係建立是都是定期的路由更新報文進行的,通過定期的路由更新來同時向鄰居RIP路由器證明自己的存在。顯然OSPF的這種Hello報文更簡單,可大大減小網路中的報文傳輸流量。
Hello報文被週期性(預設為10秒)地發向鄰居路由器介面傳送,如果在設定時間(預設為40秒,通常至少是Hello包傳送時間間接4倍)內沒有收到對方OSPF路由器傳送來的Hello報文,則本地路由器會認為該對方路由器無效。報文內容包括一些定時器設定、DR、BDR以及本路由器已知的鄰居路由器。
(2)OSPF DD型別格式
這裡寫圖片描述
這裡寫圖片描述
DD報文是用來描述本地路由器的鏈路狀態資料庫(LSDB),在兩個OSPF路由器初始化連線時要交換DD報文,進行資料庫同步。
DD報文內容部分包括:DD報文序列號和LSDB中每一條LSA的頭部等。對端路由器根據所收到的DD報文中的OSPF報頭就可以判斷出是否已有這條LSA。由於資料庫的內容可能相當長,所以可能需要多個數據庫描述報文來描述整個資料庫。所以有三個專門用於標識資料庫描述報文序列的位元位,即DD報文格式中的I、M和M/S這三位。接收方對報文的重新排序使其能夠真實地複製資料庫描述報文。
DD交換過程按詢問/應答方式進行,在DD報文交換中,一臺為Master(主)角色,另一臺為Slave(從)角色。Master路由器向從路由器傳送它的路由表內容,並規定起始序列號,每傳送一個DD報文,序列號加1,Slave則使用Master的序列號進行確定應答。但是顯然,主從之間的關係會因每個DD交換的不同而不同。網路中的所有路由器會在不同時刻作用,在這個過程中既可能是主路由器又可能是從路由器。因為DD報文僅在兩臺OSPF路由器初始化連線時才進行DD交換,所以它沒有傳送週期,以後的資料庫存同步是通過LSR、LSU和LSAck報文進行同步的
(3)OSPF LSR型別格式
這裡寫圖片描述
這裡寫圖片描述
LSR報文用於請求相鄰路由器鏈路狀態資料庫中的一部分資料。當兩臺路由器互相交換完DD報文後,知道對端路由器有哪些LSA是本LSDB所沒有的,以及哪些LSA是已經失效的,則需要傳送一個LSR報文,向對方請求所需的LSA。
(4)OSPF LSU型別格式
這裡寫圖片描述
這裡寫圖片描述
LSU報文是應LSR報文的請求,用來向對端路由器傳送所需的LSA,內容是多條LSA完整內容的集合。LSU報文在支援組播和多路訪問的鏈路上是以組播方式將LSA泛洪出去的,並且對沒有收到對方確認應答(就是下面將要介紹的LSAck報文)的LSA進行重傳,但重傳時的LSA是直接送到沒有收到確認應答的鄰居路由器上,而不再是泛洪。
(5)OSPF LSAck型別格式
這裡寫圖片描述
LSAck報文是路由器在收到對端發來的LSU報文後所發出的確認應答報文,內容是需要確認的LSA頭部(LSA Headers)

新的RFC [Almquist 1993]規定,實現任何動態選路協議的路由器必須同時支援OSPF和RIP;

自治系統間選路協議

2、外部閘道器協議EGP(Exterier Gateway Protocol)。用於不同自治系統之間的路由器;
(1)當前使用的是邊界閘道器協議BGP(Border Gateway Protocol)。使用TCP封裝。
BGP的報文格式
通用首部:
這裡寫圖片描述
標記Maker(16位元組)——-全為1,否者,標記的值要使用認證機制來計算(認證機制是通過認證資訊的一部分來指定的)。標記可以用來探測BGP對端的同步丟失,認證進入的BGP訊息。

長度Length(2位元組)——-BGP包全長,長度的值必須最少19位元組最大4096位元組。

型別Type(1位元組)— 1 - OPEN;2 - UPDATE;3 - NOTIFICATION;4 – KEEPALIVE

(1)OPEN型別格式:
這裡寫圖片描述
Ø Version(1位元組)—–當前的BGP版本號為4

Ø My Autonomous System(2位元組)—-傳送者自制系統號

Ø Hold Time(2位元組)—-BGP hold time 為180秒。

Ø BGP Identifier(4)—-傳送者的BGP router-ID.

Ø Optional Parameters Length(可選引數長度)(1位元組):如果這個域是0,說明沒有可選引數。

Ø Optional Parameters(可選引數):
(2)UPDATE型別格式:
這裡寫圖片描述
Ø Unfeasible Routes Length(不可用路由長度)—-2位元組,指示了撤銷路由的位元組總長度。0說明沒有撤銷路由, UPDATE訊息內部沒有撤銷路由。

Ø Withdrawn Routes (撤銷路由)—-如果沒有撤銷路由則無此欄位,如果有撤銷路由,此欄位列出所撤銷的路由條目。

Ø Total Path Attribute Length(總的路徑屬性長度)—-2位元組,0代表在UPDATE訊息中沒有網路層可達資訊域。

Ø Path Attributes(路徑屬性):在每一個UPDATE訊息中有可能有多個路徑屬性對。每一個路徑屬性對包括Attribute Flags 、Attribute type code 、Attribute Data Length三個欄位。Attribute Flags 、Attribute type code各佔位1個位元組。
Ø Network Layer Reachability Information(網路層可達資訊):
(3)keepalive型別只包含BGP包頭19位元組。

(4)NOTIFICATION型別格式:
這裡寫圖片描述
Ø Error(錯誤碼):1-訊息頭錯誤;2-OPEN訊息錯誤;3-UPDATE訊息錯誤;4-Hold計時器溢位;5-FSM錯誤;6-終止。
Ø Error subcode(錯誤子碼):
這裡寫圖片描述
Ø Data(資料):

相關推薦

深入理解動態協議——RIPOSPFBGP協議

靜態選路:預設方式生成(直連線口),通過route增加,通過ICMP重定向生成(預設方式出錯)。 動態選路:相鄰路由之間的通訊,以告知對方每個路由器當前所連線的網路。其改變的是選路策略,在路由表中動態的新增或刪除資訊。 自治系統內選路協議 1、內部

常見的動態路由協議(RIPOSPFISISBGP

       常見的動態路由協議包括RIP、OSPF、IS-IS、IGRP、EIGRP、BGP等。RIP、OSPF、IS-IS、IGRP、EIGRP是內部閘道器協議(IGP),適用於單個ISP的統一路由協議的執行,一般由一個ISP運營的網路位於一個AS(自治系統)內,有統一的AS number(自治系統號

Internet的路由選擇協議(RIPOSPF)

有關路由選擇協議的幾個概念 1、理想的路由演算法 路由選擇協議的核心就是路由演算法,即路由器通過演算法來獲得路由。 一個理想的路由演算法應該具有以下的特點 演算法必須是正確和完整的 演算法在計算上應簡單 演算法應能適應通訊量和網路拓撲的變化 演算

[轉]常見的路由協議(RIPOSPFISISBGP

路由器要轉發資料必須先配置路由資料,通常根據網路規模的大小可設定靜態路由或設定動態路由。靜態路由配置方便,對系統要求低,適用於拓撲結構簡單並且穩定的小型網路。缺點是不能自動適應網路拓撲的變化,需要人工干預。動態路由協議有自己的路由演算法,能夠自動適應網路拓撲的變化,適用於具

TCP/IP協議族——單播路由選擇協議RIPOSPFBGP

每個自治系統內部可以選擇一個或多個域內路由選擇協議來處理本自治系統內部的路由選擇,但是,處理自治系統之間的路由選擇只能使用一種域間路由選擇協議。 一 距離向量路由選擇協議 該方法視AS及其所有路由器和網路如同一張由結點連線結點的邊的集合構成的圖。 1.1 Bellman-

動態協議RIP

在前面各章中,我們討論了靜態選路。在配置介面時,以預設方式生成路由表項(對於直接連線的介面),並通過r o u t e命令增加表項(通常從系統自載入程式檔案),或是通過I C M P重定向生成表項(通常是在預設方式出錯的情況下)。在網路很小,且與其他網路只有單個連線點且沒有

動態協議

 動態選路,就是動態更新路由表。每個路由器都有個路由守護程式,它執行選路協議,與相鄰的路由器進行通訊,根據從相鄰路由器接收到的資訊更新核心中的路由表。 Internet是以一組自治系統的方式組織的,每個自治系統通常由單個管理。 自治系統可以選擇系統中各個路由器間的選路

ip路由 動態協議

在網路較小,且與其他網路只有單個連線點,且沒有多餘路由(若主路由失敗,可以使用備用路由)的情況下,使用靜態路由 如果不能全部滿足上述條件,一般使用動態路由,動態路由用於路由器間的通訊 1.靜態選路協議 1.配置介面時,以預設方式生成的表項(直接連線的介面) 2.以route命

TCP/IP讀書筆記之動態協議

使用靜態選路,用預設方式生成路由表項或者通過ICMP重定向生成表項需要同時滿足三種情況。1.網路很小;2與其他網路只有單個連線點;3沒有多餘路由。如果這三個條件不能完全滿足,則通常使用動態選路。          動態選路是路由器之間採用選路協議進行通訊,從相鄰路由器接受

TCP/IP詳解 (10) 動態協議

10 動態選路協議 10.1 引言在前面各章中,我們討論了靜態選路。在配置介面時,以預設方式生成路由表項(對於直接連線的介面),並通過route命令增加表項(通常從系統自載入程式檔案),或是通過ICMP改變路由生成表項(通常是在預設方式出錯的情況下)。在網路很小時,與其它網路

TCP/IP詳解卷1:協議(第十章:動態協議

BGP是一種不同自治系統的路由器之間進行通訊的外部閘道器協議,BGP是ARPANET所使用的老EGP的取代品;RFC1267 [Lougheed and Rekhter 1991] 對第3版的BGP進行了描述;RFC 1268 [Rekhter and Gross 1991] 描述瞭如何在Internet中使

《TCP/IP詳解-協議》(10)動態

動態選路:相鄰的路由器之間通訊,告知對方各自所連線網路的資訊; 每個路由器中都有一個路由守護程式,它從相鄰路由器接收資訊並更新核心中的路由表; 每個自治系統通常由單個實體管理(比如一個公司或大學為一個自治系統); 每個自治系統可選擇該系統中路由間的選路協議——內部閘道器協議

IP動態協議(六)

(參考文獻)TCP/IP詳解,卷1:協議 選路是IP最重要的功能之一。需要進行選路的資料報可以有本地主機產生,也可以由其他主機產生。在有一種情況下,主機必須配置成一個路由器,否則通過網路介面搜到的資料報,如果目的地址不是本機就要丟棄。 在以上圖中有一個路由守護程式(d

OSPFripospf靜態重分發及動態重分發配置

outer router 關閉 ffffff images img 版本 ets 路由匯總 動態路由OSPF的rip、ospf、靜態重分發及動態重分發實驗 實驗拓撲如下: R1 ip route 0.0.0.0 0.0.0.0 192.168.20.2 R2 ip r

深入理解JS的事件繫結事件流模型

https://www.jb51.net/article/139997.htm 一、JS事件 (一)JS事件分類 1.滑鼠事件: click/dbclick/mouseover/mouseout 2.HTML事件:  onload/onunload/onsubmit/onresize/o

深入理解計算機系統 第二章資訊的表示儲存

引言: 這一章我們研究在計算機上如何表示資料和其他型別資料的基本屬性,以及計算機對這些資料執行操作的屬性。在整數運算中,重點描述無符號數和數的補碼所表示的特性;而對於IEEE標準的浮點型資料,一是它是如何表示資料的,二是浮點運算的數學形式。 三種常見的資料型別:整數分為無符號數和有符號數。無

深入理解Java虛擬機器(四)EdenSurvivor老年代GC日誌

1. 年輕代 1.1 Eden區和Survivor區 新生代GC(Minor GC):指發生在新生代的垃圾收集動作,Minor GC非常頻繁,新生代採用複製演算法,一般回收速度也比較快。因為採用複製演算法,所以年輕代分為三部分:1個Eden區和2個Survivor區(分別叫Fro

深入理解Spring Redis的使用 (一)Spring Redis基本使用

關於spring redis框架的使用,網上的例子很多很多。但是在自己最近一段時間的使用中,發現這些教程都是入門教程,包括很多的使用方法,與spring redis豐富的api大相徑庭,真是浪費了這麼優秀的一個框架。這裡,我們就對比之前對spring orm中對hiberna

RIPOSPFBGP三種協議

RIP( Routing Information Protocol )路由資訊協議 是在一個AS系統中使用地內部路由選擇協議,是個非常簡單的基於距離向量路由選擇的協議。 它路由器生產商之間使用的第一個開放標準,是最廣泛的路由協議,在所有IP路由平臺上都可以得到

深入理解面向切面的程式設計AOPAspectJSpring

Spring:是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架。Spring提供的AOP功能,方便進行面向切面的程式設計,許多不容易用傳統OOP實現的功能可以通過AOP輕鬆應付。 AspectJ:是一個面向切面的框架,它擴充套件了Java語言