HC120115000 OSPF協議基礎2_(OSPF基本工作原理)
1、鄰居建立過程
1、Route-id的標識
- 裝置在網路中執行了ospf,需要有一個標識來唯一的確定他的存在,相當於給裝置起一個名字,這個名字就叫做Router-id,名字不能相同,Router-id在同一個網路環境中也不能相同,Router-id會在進行鄰居建立以及路由更新時唯一的標識路由器的存在。
- Router-id的選舉:(1)以手工配置的為最優。(2)以雙UP狀態的邏輯介面次之。(3)最後選擇雙UP狀態的物理介面。
- 實際在ensp當中,關於router-id的選擇,會首先選擇最開始配置的路由器介面IP。
- ospf中在進行了router-id的更改後,為了保證路由結構的穩定性,只會在重啟ospf程式後或者重啟裝置後才會生效。
- 重啟ospf程式命令為:
<Huawei>reset ospf process
2、Hellow報文的作用
- 鄰居發現:ospf採用組播方式來自動發現鄰居路由器的存在,組播地址為224.0.0.5和224.0.0.6。
- 鄰居建立:進行引數協商,協商成功後即可建立鄰居關係,關鍵在於hellow報文中的欄位匹配程度,可滿足鄰居建立條件則可成功建立鄰居關係。
- 鄰居保持:通過Keepalive機制,檢測鄰居執行狀態,通過頻繁進行hello包的傳送進行鄰居保活。
OSPF公共頭部
version2:版本資訊。(需一致)
Message Type:訊息型別。( 都為hellow且互相傳送才可建立鄰居關係)
Packet Length:包長度,包含包頭及內容。(視包大小而不同)
Source OSPF Router:自身的Router-id。(不可相同)
Area ID:區域號。(需相同,不通區域則無法建立鄰居關係)
Checksum:檢驗欄位。
Auth Type:認證型別。
Auth Data:認證資料即認證密碼。
OSPF Hello Packet頭部資訊
Network Mask:網路掩碼。(需一致)
Hello Interval:hello包傳送間隔時間。(需一致)
Options:可選項欄位
- DN位:用於基於MPLS的三層VPN技術。直接看應用場景。
- O位:用來說明路由器是 否有能力傳送和接收opaque LSA即型別9,型別10和型別11
- DC位:當始發路由器支援按需鏈路上的OSPF能力時,設定此位
- L位:指示OSPF資料包是否包含鏈路本地信令(LLS)資料塊(該資訊在報文後面)。此位僅在Hello和DD資料包中設定
- N/P位:N位:設定N-bit=1,表明該LSA支援NSSA外部路由,即為LSA 7,N-bit=0則不支援。需要注意的是如果N-bit=1,那麼E-bit必須為0;P位:位和N位在同一欄位內,如果該欄位選擇設定P-bit,可以告訴一個NSSA中的ABR將LSA 7 轉換為 LSA 5,即將P-bit位從1設定為0。
- MC位:該位描述是否組播擴充套件OSPF,也就是MOSPF。
- E位:當始發路由器具有接受AS外部LSA的能力時,該位將被設定。
- MT:設定了該位表示始發路由器支援多拓撲OSPF(MT-OSPF)。
Router Priority:路由器優先順序。
Router Dead Interval:失效時間即死亡時間。(需一致)
Designated Router:DR路由器ID號。
Backup Designated Router:BDR路由器ID號。
Active neighbor:鄰居路由器ID號。
2、OSPF鄰居建立過程
狀態含義:
Down:這是鄰居的初始狀態,表示沒有從鄰居收到任何資訊。
Init:在此狀態下,路由器已經從鄰居收到了Hello報文,但是自己的Router ID不在所收到的Hello報文的鄰居列表中,表示尚未與鄰居建立雙向通訊關係。
2-Way:在此狀態下,路由器發現自己的Router ID存在於收到的Hello報文的鄰居列表中,已確認可以雙向通訊。
鄰居建立過程如下:
RTA和RTB的Router ID分別為1.1.1.1和2.2.2.2。當RTA啟動OSPF後,RTA會傳送第一個Hello報文。此報文中鄰居列表為空,此時狀態為Down,RTB收到R他的這個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)。對於不支援組播的網路,OSPF路由器可以採取手工單播形式進行建立,通過peer指定。
2、OSPF鏈路狀態資訊
鏈路資訊主要包括:
- 鏈路型別:P2P、BMA、NBMA、P2MP。
- 介面IP地址以及掩碼。
- 鏈路上連線的鄰居路由器。
- 鏈路的頻寬(開銷)。P2P:對應串列埠現路,hello時間30s。
BMA:對應乙太網鏈路,hello時間10s。
NBMA:對應FR、ATM鏈路,hello時間30s。
P2MP:根據使用場景進行確定,hello時間30s。
2、OSPF的度量方式
OSPF在計算介面的cost時,cost=參考頻寬/實際頻寬,預設參考頻寬為100M。當計算結果有小數位時,只取整數位;結果小於1時,cost取1。
若需要調整介面cost值有兩種方式:
- 直接在介面下配置,需要注意的是,配置的cost是此介面最終的cost值,作用範圍僅限於本介面。
[Huawei-GigabitEthernet0/0/0]ospf cost 10
- 修改OSPF的預設參考頻寬值,作用範圍是本路由器使能OSPF的介面。建議參考整個網路的頻寬情況建立參考基線,所有路由器修改相同的參考頻寬值,從而確保選路的一致性。
[Huawei-ospf-10]bandwidth-reference 1000
- OSPF以“累計cost”為開銷值,也就是流量從源網路到目的網路所經過所有路由器的出介面的cost總和,以RTA訪問RTC Loopback 1介面192.168.3.3為例,其cost=G1’s cost+G3’s cost。
相比於RIP,OSPF的度量方式不僅考慮“跳數”,而且還考慮了“頻寬”,比RIP更可靠的選擇最優的轉發路徑。
2、OSPF報文型別及作用
RIP路由器之間是基於UDP 520的報文進行通訊,OSPF也有其規定的通訊標準。OSPF使用IP承載其報文,協議號為89。
在OSPF Packet部分,所有的OSPF報文均使用相同的OSPF報文頭部:
Version :對於當前所使用的OSPFv2,該欄位的值為2。
Type:OSPF報文型別。
Packet length:表示整個OSPF報文的長度,單位是位元組。
Router ID:表示生成此報文的路由器的Router ID。
Area ID:表示此報文需要被通告到的區域。
Checksum:校驗欄位,其校驗的範圍是整個OSPF報文,包括OSPF報文頭部。
Auth Type:為0時表示不認證;為1時表示簡單的明文密碼認證;為2時表示加密(MD5)認證。
Authentication:認證所需的資訊。該欄位的內容隨AuType的值不同而不同。
Type=1為Hello報文,用來建立和維護鄰居關係,鄰居關係建立之前,路由器之間需要進行引數協商。
Type=2為資料庫描述報文(DD),用來向鄰居路由器描述本地鏈路狀態資料庫,使得鄰居路由器識別出資料庫中的LSA是否完整。
Type=3為鏈路狀態請求報文(LSR),路由器根據鄰居的DD報文,判斷本地資料庫是否完整,如不完整,路由器把這些LSA記錄進鏈路狀態請求列表中,然後傳送一個LSR給鄰居路由器。
Type=4為鏈路狀態更新報文(LSU),用於響應鄰居路由器發來的LSR,根據LSR中的請求列表,傳送對應LSA給鄰居路由器,真正實現LSA的泛洪與同步。
Type=5為鏈路狀態確認報文(LSAck),用來對收到的LSA進行確認,保證同步過程的可靠性。
DD、LSR、LSU、LSAck與LSA的關係:
DD報文中包含LSA頭部資訊,包括LS Type、LS ID、Advertising Router 、LS Sequence Number、LS Checksum。
LSR中包含LS Type 、LS ID和Advertising Router 。
LSU中包含完整的LSA資訊。
LSAck中包含LSA頭部資訊,包括LS Type、LS ID、Advertising Router、LS Sequence Number、LS Checksum。
OOBResync:帶外資料重新傳送。
Init:表示傳送的第一個DD包。
More:表示後面還有資料。
Master:主備路由器。
報文的功能作用:
2、OSPF中LSDB同步過程
狀態含義:
ExStart:鄰居狀態變成此狀態以後,路由器開始向鄰居傳送DD報文。Master/Slave關係是在此狀態下形成的,初始DD序列號也是在此狀態下確定的。在此狀態下傳送的DD報文不包含鏈路狀態描述。
Exchange:在此狀態下,路由器與鄰居之間相互傳送包含鏈路狀態資訊摘要的DD報文。
Loading:在此狀態下,路由器與鄰居之間相互傳送LSR報文、LSU報文、LSAck報文。
Full:LSDB同步過程完成,路由器與鄰居之間形成了完全的鄰接關係。
LSDB同步過程如下:
RTA和RTB的Router ID分別為1.1.1.1和2.2.2.2並且二者已建立了鄰居關係。當R他的鄰居狀態變為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開始向RTB傳送LSR報文,請求那些在Exchange狀態下通過DD報文發現的、並且在本地LSDB中沒有的鏈路狀態資訊。
RTB向RTA傳送LSU報文,LSU報文中包含了那些被請求的鏈路狀態的詳細資訊。RTA在完成LSU報文的接收之後,會將鄰居狀態從Loading變為Full。
RTA向RTB傳送LSAck報文,作為對LSU報文的確認。RTB收到LSAck報文後,雙方便建立起了完全的鄰接關係。
這是形成鄰居關係的過程和相關鄰居狀態的變換過程。
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報文不包含鏈路狀態描述。
LSA(Link State Advertisement)是路由器之間鏈路狀態資訊的載體。LSA是LSDB的最小組成單位,也就是說LSDB由一條條LSA構成的。
所有的LSA都擁有相同的頭部,關鍵欄位的含義如下:
LS age:此欄位表示LSA已經生存的時間,單位是秒。
LS type:此欄位標識了LSA的格式和功能。常用的LSA型別有五種。
Link State ID:此欄位是該LSA所描述的那部分鏈路的標識,例如Router ID等。
Advertising Router:此欄位是產生此LSA的路由器的Router ID。
LS sequence number:此欄位用於檢測舊的和重複的LSA。
LS type,Link State ID和Advertising Router的組合共同標識一條LSA。
LSDB中除了自己生成的LSA,另一部分是從鄰居路由器接收的。鄰居路由器之間相互更新LSA必然需要一個“通道”。
2、OSPF中DR與BDR的選舉及作用
鄰居(Neighbor)關係與鄰接(Adjacency)關係是兩個不同的概念。OSPF路由器之間建立鄰居關係後,進行LSDB同步,最終形成鄰接關係。
在P2P網路及P2MP網路上,具有鄰居關係的路由器之間會進一步建立鄰接關係。
在廣播型網路及NBMA網路上,非DR/BDR路由器之間只能建立鄰居關係,不能建立鄰接關係,非DR/BDR路由器與DR/BDR路由器之間會建立鄰接關係,DR與BDR之間也會建立鄰接關係。
鄰接關係建立完成,意味著LSDB已經完成同步,接下來OSPF路由器將基於LSDB使用SPF演算法計算路由。
- 選舉規則:(1)首先根據優先順序選舉,0-255,
[Huawei-GigabitEthernet0/0/0]ospf dr-priority 255
。(2)再選擇Router-id,越大越優先。
--------------------------------------武漢艾迪時代IT教育----------------------------------------------------
相關文章
- OSPF的基本工作原理
- 指南:動態路由協議OSPF基礎,OSPF報文,LSA路由協議
- OSPF協議協議
- 帶你瞭解動態路由協議OSPF基礎路由協議
- 深入理解OSPF協議協議
- HCNA Routing&Switching之動態路由協議OSPF基礎(二)路由協議
- OSPF 路由協議詳解(一)路由協議
- 實驗六——————OSPF協議配置協議
- OSPF介紹及基礎配置
- OSPF多區域基本配置
- OSPF開放式最短路徑優先協議協議
- 實驗十六——————動態路由OSPF基礎路由
- OSPF協議的多區域配置,圖文講解協議
- OSPF的基本配置實驗(四)
- OSPF NSSA
- HCNA Routing&Switching之動態路由協議OSPF DR和BDR路由協議
- ospf--vlink
- ospf實驗
- OSPF 安全認證
- ospf小實驗
- HCNA Routing&Switching之動態路由協議OSPF建立鄰居的條件路由協議
- eNSP華為路由器OSPF配置----OSPF和RIP互相通訊路由器
- HCNA Routing&Switching之OSPF度量值和基礎配置命令總結
- HTTP協議基本原理HTTP協議
- H3C-OSPF
- OSPF綜合實驗
- OSPF 綜合實驗
- ospf的虛連線
- 使用ensp搭建路由拓撲,並使用ospf協議實現網路互通實操路由協議
- 配置OSPF與BFD聯動
- 配置OSPF負載分擔負載
- HTTP協議基礎HTTP協議
- ENSP Demo2 RIP & static & OSPF
- 協議類基礎——SPI協議
- MPLS基礎與工作原理
- 實驗5.OSPF配置實驗
- 怎麼通俗易懂的理解OSPF?
- OSPF單區域和多區域