您現在的位置是:首頁 > 手機遊戲首頁手機遊戲

OSPF的工作原理 HCIE學習

簡介收到Hello報文的OSPF路由器會檢查報文中所定義的一些引數,如果雙方的引數一致,就會彼此形成鄰居關係,狀態到達2-way 即可稱為建立了鄰居關係

膝上型電腦dhcp怎麼開

路由協議系列之:OSPF的工作原理

OSPF協議是怎麼工作的?怎麼把路由計算出來的?我相信這是學習路由協議的同學經常會思考的問題。

HCIE學習中OSPF是很重要的部分,

那麼今天我們就來一起學習一下,OSPF協議的工作原理以及基本的概念。

一、OSPF概述

1、OSPF是典型的鏈路狀態路由協議,是目前業內使用非常廣泛的IGP協議之一。

2、目前針對IPv4協議使用的是OSPF Version 2(RFC2328);針對IPv6協議使用OSPF Version 3(RFC2740)。如無特殊說明本章後續所指的OSPF均為OSPF Version 2。

3、執行OSPF路由器之間互動的是LS(Link State,鏈路狀態)資訊,而不是直接互動路由。LS資訊是OSPF能夠正常進行拓撲及路由計算的關鍵資訊。

4、OSPF路由器將網路中的LS資訊收集起來,儲存在LSDB中。路由器都清楚區域內的網路拓撲結構,這有助於路由器計算無環路徑。

5、每臺OSPF路由器都採用SPF演算法計算達到目的地的最短路徑。路由器依據這些路徑形成路由載入到路由表中。

6、OSPF支援VLSM(Variable Length Subnet Mask,可變長子網掩碼),支援手工路由彙總。

7、多區域的設計使得OSPF能夠支援更大規模的網路。

二、基本概念

1、OSPF區域

①OSPF Area用於標識一個OSPF的區域。

②區域是從邏輯上將裝置劃分為不同的組,每個組用區域號(Area ID)來標識

2、Router-ID

①Router-ID(Router Identifier,路由器識別符號),用於在一個OSPF域中唯一地標識一臺路由器。

②Router-ID的設定可以透過手工配置的方式,或使用系統自動配置的方式。

③在實際專案中,通常會透過手工配置方式為裝置指定OSPF Router-ID。請注意必須保證在OSPF域中任意兩臺裝置的Router-ID都不相同。通常的做法是將Router-ID配置為與該裝置某個介面(通常為Loopback介面)IP地址一致。

3、OSPF區域

①OSPF Area用於標識一個OSPF的區域。

②區域是從邏輯上將裝置劃分為不同的組,每個組用區域號(Area ID)來標識。

③OSPF的區域ID是一個32bit的非負整數,按點分十進位制的形式(與IPv4地址的格式一樣)呈現,例如Area0。0。0。1。為了簡便起見,我們也會採用十進位制的形式來表示。

4、cost值

一條OSPF路由的Cost值可以理解為是從目的網段到本路由器沿途所有入介面的Cost值累加。

OSPF使用Cost(開銷)作為路由的度量值。每一個激活了OSPF的介面都會維護一個介面Cost值,預設時介面Cost值=。其中100 為OSPF指定的預設參考值,該參考值值是可配置的。也可以透過手工命令的方式配置介面的COST值,手工配置介面COST值由於系統自動計算的值。

5、五種型別的協議報文

OSPF的工作原理 HCIE學習

6、三大表項

OSPF有三張重要的表項,OSPF鄰居表、LSDB表和OSPF路由表。

①OSPF的鄰居表:

OSPF在傳遞鏈路狀態資訊之前,需先建立OSPF鄰居關係。

OSPF的鄰居關係透過互動Hello報文建立。

OSPF鄰居表顯示了OSPF路由器之間的鄰居狀態,使用display ospf peer檢視。

②OSPF的LSDB表:

LSDB會儲存自己產生的及從鄰居收到的LSA資訊,本例中R1的LSDB包含了三條LSA。

Type標識LSA的型別,AdvRouter標識傳送LSA的路由器。

使用命令列display ospf lsdb檢視LSDB表。

③OSPF的路由表:

OSPF路由表和路由器路由表是兩張不同的表項。本例中OSPF路由表有三條路由。

7、DR/BDR

①為最佳化MA網路中OSPF鄰接關係,OSPF指定了三種OSPF路由器身份,DR(Designated Router,指定路由器)、BDR(Backup Designated Router,備用指定路由器)和DRother路由器。

②只允許DR、BDR與其他OSPF路由器建立鄰接關係。DRother之間建立鄰居關係,雙方停滯在2-way狀態。

③BDR會監控DR的狀態,並在當前DR發生故障時接替其角色。

④選舉規則:OSPF DR優先順序更高的介面成為該MA的DR,如果優先順序相等(預設為1),則具有更高的OSPF Router-ID的路由器(的介面)被選舉成DR,並且DR具有非搶佔性。

8、OSPF網路型別

OSPF的工作原理 HCIE學習

OSPF路由表包含Destination、cost和NextHop等指導轉發的資訊。使用命令display

9、OSPF鄰居狀態機

ospf routing

檢視OSPF

OSPF的工作原理 HCIE學習

Down:這是鄰居的初始狀態,表示沒有從鄰居收到任何資訊。在NBMA網路上,此狀態下仍然可以向靜態配置的鄰居傳送Hello報文,傳送間隔為PollInterval,通常和Router DeadInterval間隔相同。

Attempt:此狀態只在NBMA網路上存在,表示沒有收到鄰居的任何資訊,但是已經週期性的向鄰居傳送報文,傳送間隔為HelloInterval。如果Router DeadInterval間隔內未收到鄰居的Hello報文,則轉為Down狀態。

Init:在此狀態下,路由器已經從鄰居收到了Hello報文,但是自己不在所收到的Hello報文的鄰居列表中,表示尚未與鄰居建立雙向通訊關係。在此狀態下的鄰居要被包含在自己所傳送的Hello報文的鄰居列表中。

2-Way Received:此事件表示路由器發現與鄰居的雙向通訊已經開始(發現自己在鄰居傳送的Hello報文的鄰居列表中)。Init狀態下產生此事件之後,如果需要和鄰居建立鄰接關係則進入ExStart狀態,開始資料庫同步過程,如果不能與鄰居建立鄰接關係則進入2-Way。

2-Way:在此狀態下,雙向通訊已經建立,但是沒有與鄰居建立鄰接關係。這是建立鄰接關係以前的最高階狀態。

1-Way Received:此事件表示路由器發現自己沒有在鄰居傳送Hello報文的鄰居列表中,通常是由於對端鄰居重啟造成的。

ExStart:這是形成鄰接關係的第一個步驟,鄰居狀態變成此狀態以後,路由器開始向鄰居傳送DD報文。主從關係是在此狀態下形成的;初始DD序列號是在此狀態下決定的。在此狀態下發送的DD報文不包含鏈路狀態描述。

Exchange:此狀態下路由器相互發送包含鏈路狀態資訊摘要的DD報文,描述本地LSDB的內容。

Loading:相互發送LS Request報文請求LSA,傳送LS Update通告LSA。

Full:兩臺路由器的LSDB已經同步。

10、LSA

LSA是OSPF進行路由計算的關鍵依據。常見的LSA型別有:

OSPF的工作原理 HCIE學習

三、OSPF工作過程

OSPF工作過程主要分為三步:鄰居發現,建立鄰接關係、同步LSDB,優選路徑計算、OSPF路由計算。

OSPF的工作原理 HCIE學習

1、鄰居發現

OSPF路由器啟動後,便會透過OSPF介面向外傳送Hello報文用於發現鄰居。收到Hello報文的OSPF路由器會檢查報文中所定義的一些引數,如果雙方的引數一致,就會彼此形成鄰居關係,狀態到達2-way 即可稱為建立了鄰居關係。

Hello報文用來發現和維持OSPF鄰居關係。

Hello報文的作用:

鄰居發現:自動發現鄰居路由器。

鄰居建立:完成Hello報文中的引數協商,建立鄰居關係。

鄰居保持:透過Keepalive機制,檢測鄰居執行狀態。

OSPF的工作原理 HCIE學習

鄰居建立過程如下:

①RTA和RTB的Router ID分別為1。1。1。1和2。2。2。2。當RTA啟動OSPF後,RTA會發送第一個Hello報文。此報文中鄰居列表為空,此時狀態為Down,RTB收到RTA的這個Hello報文,狀態置為Init。

②RTB傳送Hello報文,此報文中鄰居列表為空,RTA收到RTB的Hello報文,狀態置為Init。

③RTB向RTA傳送鄰居列表為1。1。1。1的Hello報文,RTA在收到的Hello報文鄰居列表中發現自己的Router ID,狀態置為2-way。

④RTA向RTB傳送鄰居列表為2。2。2。2的Hello報文,RTB在收到的Hello報文鄰居列表中發現自己的Router ID,狀態置為2-way。

因為鄰居都是未知的,所以Hello報文的目的IP地址不是某個特定的單播地址。鄰居從無到有,OSPF採用組播的形式傳送Hello報文(目的地址224。0。0。5)。

對於不支援組播的網路可以透過手動配置實現鄰居的發現與維護。

2、建立鄰接關係、同步LSDB

形成鄰居關係的雙方不一定都能形成鄰接關係,這要根據網路型別而定。

如果兩臺鄰居路由器之間的網路型別是P2P網路或P2MP網路,則這兩臺鄰居路由器直接進入LSDB同步的過程;如果兩臺鄰居路由器之間的網路型別是broadcast網路或NBMA網路,則選舉DR與BDR,然後DR與BDR之間、DRothers與DR之間、DRothers與BDR之間的LSDB同步的過程。

當雙方成功交換DD報文,並同步LSDB後,才形成真正意義上的鄰接關係。

OSPF的工作原理 HCIE學習

OSPF的工作原理 HCIE學習

LSDB同步過程如下:

①RTA和RTB的Router ID分別為1。1。1。1和2。2。2。2並且二者已建立了鄰居關係。當RTA的鄰居狀態變為ExStart後,RTA會發送第一個DD報文。此報文中,DD序列號被隨機設定為X,I-bit設定為1,表示這是第一個DD報文,M-bit設定為1,表示後續還有DD報文要傳送,MS-bit設定為1,表示RTA宣告自己為Master。

②當RTB的鄰居狀態變為ExStart後,RTB會發送第一個DD報文。此報文中,DD序列號被隨機設定為Y(I-bit=1,M-bit=1,MS-bit=1,含義同上)。由於RTB的Router ID較大,所以RTB將成為真正的Master。收到此報文後,RTA會產生一個Negotiation-Done事件,並將鄰居狀態從ExStart變為Exchange。

③當RTA的鄰居狀態變為Exchange後,RTA會發送一個新的DD報文,此報文中包含了LSDB的摘要資訊,序列號設定為RTB在步驟2中使用的序列號Y,I-bit=0,表示這不是第一個DD報文,M-bit=0,表示這是最後一個包含LSDB摘要資訊的DD報文,MS-bit=0,表示RTA宣告自己為Slave。收到此報文後,RTB會產生一個Negotiation-Done事件,並將鄰居狀態從ExStart變為Exchange。

④當RTB的鄰居狀態變為Exchange後,RTB會發送一個新的DD報文,此報文包含了LSDB的摘要資訊,DD序列號設定為Y+1, MS-bit=1,表示RTB宣告自己為Master。

⑤雖然RTA不需要傳送新的包含LSDB摘要資訊的DD報文,但是作為Slave,RTA需要對Master傳送的每一個DD報文進行確認。所以,RTA向RTB傳送一個新的DD報文,序列號為Y+1,該報文內容為空。傳送完此報文後,RTA產生一個Exchange-Done事件,將鄰居狀態變為Loading。RTB收到此報文後,會將鄰居狀態變為Full(假設RTB的LSDB是最新最全的,不需要向RTA請求更新)。

⑥RTA開始向RTB傳送LSR報文,請求那些在Exchange狀態下透過DD報文發現的、並且在本地LSDB中沒有的鏈路狀態資訊。

⑦RTB向RTA傳送LSU報文,LSU報文中包含了那些被請求的鏈路狀態的詳細資訊。RTA在完成LSU報文的接收之後,會將鄰居狀態從Loading變為Full。

⑧RTA向RTB傳送LSAck報文,作為對LSU報文的確認。RTB收到LSAck報文後,雙方便建立起了完全的鄰接關係。

3、優選路徑計算與OSPF路由計算

同一區域內的OSPF路由器擁有完全一致的LSDB,在區域內部,OSPF採用SPF演算法完成路由計算。

OSPF路由計算包括區域內部路由、區域間路由及外部路由的計算過程。

①區域內OSPF路由計算

同一區域的OSPF路由器擁有完全一致的LSDB。在只有一個區域的情況下,區域內部主要存在兩種型別的LSA,即Router-LSA和Network-LSA。

每臺路由器都會產生Router-LSA,描述了路由器的直連線口資訊。

OSPF的工作原理 HCIE學習

OSPF的工作原理 HCIE學習

②區域間OSPF路由計算

OSPF區域間路由資訊傳遞是透過ABR產生的Network Summary LSA(3類LSA)實現的。

以192。168。1。0/24路由資訊為例:

R2依據Area 1內所泛洪的Router LSA及Network LSA計算得出192。168。1。0/24路由(區域內路由),並將該路由透過Network Summary LSA通告到Area 0。R3根據該LSA可計算出到達192。168。1。0/24的區域間路由。

R3重新生成一份Network Summary LSA通告到Area 2中,至此所有OSPF區域都能學習到去往192。168。1。0/24的路由。

OSPF的工作原理 HCIE學習

OSPF使用3類LSA來描述區域間的路由資訊。

為了避免出現區域間路由環路,OSPF設計了多個規則。

OSPF Virtual Link是一種虛擬的、邏輯的鏈路,被部署在兩臺OSPF路由器之間,它穿越某個非骨幹區域,用於實現另一個非骨幹區域與Area0的連線。Virtual Link應該始終作為一種臨時的技術手段來解決非骨幹區域沒有與Area0直接相連的情況。

③外部路由的計算

在一個大規模網路中,可能存在多種不同的路由協議,OSPF支援將AS外部路由引入本AS,使得AS內的路由器能夠獲知到達AS外部的路由。

ASBR將外部路由引入OSPF後,使用5類LSA描述它們,與ASBR同屬一個區域的路由器能夠根據5類LSA以及區域內的1類、2類LSA完成外部路由計算;與ASBR不在同一個區域的路由器還需藉助4類LSA才能完成外部路由計算。

OSPF將外部路由引入OSPF後,可以設定路由的度量值型別:Metric-Type-1或Metric-Type-2,不同度量值型別的外部路由,其開銷的計算方式不同,其路由的優先順序也不相同,Metric-Type-1路由的優先順序高於Metric-Type-2路由。

OSPF的工作原理 HCIE學習

AS-external LSA(5類LSA):由ASBR產生,描述到達AS外部的路由,該LSA會被通告到所有的區域(除了Stub區域和NSSA區域)。

ASBR-Summary LSA(4類LSA):由ABR產生,描述到ASBR的路由,通告給除ASBR所在區域的其他相關區域。

OSPF外部路由的2種度量值型別:

OSPF的工作原理 HCIE學習

本文給大家介紹了關於OSPF的一些基本概念以及工作原理,從中我們可以瞭解到OSPF協議的設計理念、掌握其路由計算過程。這些知識可以為以後深入學習OSPF知識打下良好的基礎。

OSPF協議應用廣泛,也是從業者經常遇到的“老朋友”,在不斷的學習進取中,我們對OSPF的認知會越來越深。對HCIE課程學習有疑問的 都可以聯絡作者

在MA網路中,DR會產生Network-LSA來描述接入該MA網路的所有路由器的Router-ID(其中包括DR自身),以及這個網路的掩碼。

Top