OSPF協議總結
OSPF:開放式最短路徑優先協議(Open Shortest Path First)
OSPF概述
版本:V1/V2/V3(V3使用的是IPv6)
屬于無類別鏈路狀態路由協議–基于拓撲資訊進行收斂
組波更新:224.0.0.5
觸發更新 僅對變化量進行更新
周期更新 基于時間周期進行更新—更新量大
若一個協議希望實作增量更新— 僅觸發無周期;hello機制(周期保活) ACK確認機制
1.OSPF資料包型別


- OPSF Version:是指OSPF的版本號,v2表示IPv4;v3表示IPv6
- Message Type:指出跟在頭部后面的資料包型別

- Packet Length:OSPF資料包的長度,包括資料包頭部的長度,以八位組位元組計,
- Source OSPF Router:始發路由器的ID
- Area ID:始發資料包的路由所在區域,如果資料包是在一個虛鏈路上發送的,那么區域ID為0.0.0.0,也就是骨干區域ID,因為虛鏈路被認為是骨干的一部分,
- Packet Checksum:一個對整個資料包的標準IP校驗和,
- Auth Type:正在使用的認證模式

- Auth Data:未完!!!!!!!!!!

ospf跨層封裝在IPv4報頭,協議號為89;
存在5種不同型別的資料包

| 型別 | 作用 | |
|---|---|---|
| Hello包 | 鄰居、鄰接的發現、建立、周期保活;hello time10s或30s;dead time為hello time 四倍 | 鄰居、鄰接的發現、建立、周期保活;hello time10s或30s;dead time為hello time 四倍 |
| DBD包 | 資料庫描述包 (資料庫目錄) | LSA更新時的主從選舉;LSA互動 |
| LSR包 | 鏈路狀態請求 | 請求自身缺少的LSA資訊 |
| LSU包 | 鏈路狀態更新(攜帶具體的LSA資訊) | LSA更新資訊(回應對方的LSR的請求) |
| LSack包 | 鏈路狀態確認包 | LSA更新的確認回復 |
LSA(鏈路狀態通告):路由或者拓撲資訊(在不同條件下產生不同型別的拓撲或路由資訊)
hello包

- **網路掩碼(Network Mask):**指發送資料包的介面的網路掩碼,如果這個掩碼和接收該資料包的介面網路掩碼不匹配,那么該資料包將被丟棄,(可以確保路由器之間只有他們共享網路的地址精確匹配時才能互相成為鄰居),
- **Hello時間間隔(Hello Interval ):**介面上Hello資料包傳送之間的時間間隔,也是一個周期性的時間段,如果接收和發送路由器沒有相同的值,就不能建立鄰接關系,
- 可選項(Option):未完待續!!!!!!!!!!!
- **路由優先級(Router Priority):**用來做DR和BDR路由器選舉,如果該欄位為0,則始發路由器沒有資格被選成DR和BDR路由器,
- **路由器死亡時間(Router Dead Interval):**始發路由器在宣告鄰接路由器無效之前,將要等待從鄰接路由器發出的Hello資料包的時長,
- 指定路由器(Designated Router):網路上指定路由器介面的IP地址,注:不是指定路由器的路由器ID,如果沒有DR(DR還沒有選出或者網路型別不需要DR),那么這個欄位設定為0.0.0.0
- **備份路由器(Backup Desinated Router):**網路上備份指定路由器介面的IP地址,沒有選出設定為0.0.0.0
- **鄰居(Active Neighbor):**是一個遞回欄位,如果始發路由器在過去的一個Router DeadInterval時間內,從網路上已經收到來自他的某些鄰居的有效Hello包,那么將會在這個欄位中列出所有這些鄰居的RID,
DBD包
(Database Description)資料庫描述包

- 介面MTU(Interface MTU):在資料包不分段的情況下,始發路由器介面可以發送的最大IP資料包大小,(華為設備默認不檢測MTU值,Cisco默認檢測)
- 可選項(option):
- **I位(初始位(initial bit)):**當發送的是一系列資料庫描述資料包中的最初的一個資料包,該位設定為1.后續的資料庫描述資料包將該位設定為0.
- **M位(后繼位(More bit)):**當發送的資料包不是一系列資料庫描述資料包的最后一個時,該位設定為1
- MS位(主/從位(Master/Slave bit)):在資料庫同步程序中,該位設定為1,用來指明始發資料庫描述資料包的路由器是“主”路由器,
- **資料庫描述序列號(DD Sequence):**在資料庫同步程序中,用來確保路由器能夠收到完整的資料庫描述資料包序列,這個序列號將由“主”路由器在最初發送的資料庫描述資料包中設定一些唯一的數值,后續資料包的序列號將依次增加,
- **LSA頭部(LSA Header):**列出了始發路由器的鏈路狀態資料庫中部分或全部LSA頭部,注:在進行DR/BDR選舉的時候不會出現LSA Header
關于DBD的一些問題:
1、 介面MTU,在cisco體系中,鄰居間介面的MTU值默認被檢測,華為默認不檢測;
OSPF協議要求直連介面上鄰居間的MTU值必須完成一致;
[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf mtu-enable 開啟華為MTU檢測
2、 關于DBD的標記位
I 為1標識本地發出的第一個DBD包 M 為1標識不是本地的最后一個DBD包
MS 為1代表主 為0 代表從
3、 使用序列號進行隱性確認 DBD的隱性確認,基于序號進行的,從使用主的序號來對主進行確認
鄰接關系建立后,鄰居間使用真正DBD來獲取對端鄰接的LSDB目錄,之后使用LSR/LSU/LSack來獲取本地未知的LSA資訊;生成LSDB—資料庫表;
LSR包
鏈路狀態請求資料包

- 鏈路狀態通告型別(Link-state Advertisement Type):LSA型別
- 鏈路狀態ID(link state ID):始發路由器ID
- 通告路由器(advertising router):始發LSA通告的路由器路由器ID
LSU包
鏈路狀態更新資料包

- LSA數量(number of LSAs):這個資料包中包含的LSA數量,
- 鏈路狀態通告(LSA):在OSPF協議的LSA資料包格式中描述的全部LSA,每個更新資料包都可以攜帶多個LSA,
LSAck包
鏈路狀態確認資料包

被確認的LSA是根據在LSAck包中是否包含包含他的頭部蘭確認的,所以一個LSAck的組成只有OSPF包頭和LSA頭部,
2.OSPF狀態機
(標準7個,還存在第八個)
-
Down:一旦本地發出Hello包,進入下一狀態機
-
Init初始化:接收到的Hello包中若存在本地RID,那么進入下一狀態
-
2way雙向通訊:鄰居關系建立的標志
? 條件:
? 1、點到點網路型別直接進入下一狀態
? 2、MA網路,將進行DR/BDR選舉(40s),非DR/BDR間不得進入下一狀態
-
**Exstart預啟動:**使用未攜帶目錄資訊的DBD包,進行主從關系選舉,RID數值大為主,優先進入下一狀態,
-
Exchange準交換:使用真正的DBD包進行資料庫目錄的互動,需要ack進行確認,
-
**Loading加載:**通過對端的資料庫目錄比對本地,就本地未知的LSA資訊,使用LSR來進行請求,對端使用LSU進行應答,最終需要ack進行確認,
-
**FUll轉發:**鄰接關系建立的標志,
3.OSPF作業程序
啟動OSPF協議后,本地基于所有激活介面使用組播224.0.0.5進行周期的hello收發;接收到的hello包若存在本地的RID,那么建立鄰居,生成鄰居表,
表中所有鄰居存在條件,條件匹配失敗將停留在鄰居關系,僅hello周期保活即可,;條件匹配成功后,需要進一步建立為鄰接關系鄰接關系間,需要使用DBD包來進行資料庫目錄共享,使用LSR/LSU/LSACK來獲取本地未知的LSA資訊,補全本地的LSDB(鏈路狀態資料庫—所有LSA的集合)–生成資料表;
資料庫同步完成后,本地其余SFP演算法,基于資料庫生成有向圖,合成最短路徑樹,最終將所有未知網段的路由加載于本地的路由表中;–收斂完成,hello包周期保活,每30min再周期比對一次資料庫目錄;
網路結構突變:
1、 新增網段 – 直連新增網段的設備,使用更新包告知本地所有鄰接,之后擴散到全網,需要ACK確認;
2、 斷開網段-直連斷開網段的設備,使用更新包告知本地所有鄰接,之后擴散到全網,需要ACK確認;
3、 無法溝通 — dead time到時間時,斷開鄰居,洗掉鄰居;且通過該鄰接獲取的LSA將不再被使用;
4.OSPF介面網路型別
OSPF協議在不同網路型別的介面作業方式不同,
| 網路型別 | OSPF作業方式 |
|---|---|
| loopback | 華為雖然標記為點到點,實際為環回的特殊作業,無hello包收發,直接學習32位主機路由 |
| 點到點 | 10s hello time;直接鄰接關系,不進行DR選舉;(串線上的PPP/HDLC;普通GRE) |
| BMA(以太網) | broadcast;10s hello time;進行DR/BDR選舉,最終建立鄰接關系 |
| NBMA(MGRE) | 默認為點到點的作業方式,該方式只能建立一個鄰居;故在NMBA環境下將無法和所有節點建立關系; |
NBMA拓撲結構:
1、 星型—中心到站點
2、 部分網狀結構,除去星型
3、 全連網狀結構
NBMA不能和所有節點建立鄰接關系解決方法:修改介面型別為broadcast
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ospf network-type broadcast 該網段所有介面修改為broadcast;
注:
1.若一端為點到點,另一端為broadcast,由于hello time均為10s,將建立鄰居關系,但無法正常作業;因此一旦修改任何一個的ospf型別,就必須保障該網段所有節點型別一致;
2.在星型和部分網狀結構中,若使用broadcast作業方式,必須考慮dr的位置;建議直接固定放置于中心站點; 若為全連網狀結構,可以不用dr位置;
5.OSPF的DR選舉
鄰居關系成為鄰接關系的條件:
? 在MA網路中,由于節點數量不限制,故倆倆間均為鄰居,若不加管制將出現大量的重復更新;距離矢量協議(RIP/EIGRP)均存在水平分割機制來解決;但OSPF協議無法使用介面水平分割(從此口進不從此口出),因此ospf選擇了DR/BDR選舉方式來解決,在MA網段中存在一個DR和一個DBR,其他設備非DR/BDR,非DR/BDR之間不建立鄰接關系,僅維持鄰居關系,避免重復更新,
選舉規則:
1、 比較介面優先級,0-255默認為1;數值大優 為0標識不參選
2、 若介面優先級一致,比較參選設備的RID,數值大優;
[r1]interface GigabitEthernet 0/0/0
[r1-GigabitEthernet0/0/0]ospf dr-priority ?
INTEGER<0-255> Router priority value
6.OSPF基礎配置
[r1]ospf 1 router-id 1.1.1.1
1.啟動時需要定義行程號,僅具有本地意義;
2.同時建議配置RID,ipv4地址撰寫規則;必須全網唯一;
3.手工---》環回最大數值-》物理介面最大數值
[r1-ospf-1]
宣告:
1、激活—被選中介面可以收發ospf 的資料包
2、傳遞介面資訊—被選中介面的資訊將被共享給本地的其他鄰接 3、區域劃分
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.255
區域劃分規則:
1、 星型結構拓撲 – 區域0 為骨干,大于0為非骨干;非骨干必須連接骨干區域;
2、 區域間必須存在ARB—區域邊界路由器
啟動配置完成后,鄰居間收發hello包建立鄰居關系,生成鄰居表:
Hello包中的內容
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-sAWzwWax-1601902102827)(file:///C:/Users/Lenovo/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png)]
鄰居間hello包中必須完全一致的引數;否則無法建立鄰居關系;
1、hello、dead time 2、區域ID (ABR) 3、認證 4、末梢區域標記(特殊區域)
5、在華為設備的hello包中,還存在本地介面ip地址的的子網掩碼,鄰居間介面掩碼不一致將無法建立鄰居關系
[r2]display ospf peer 查看鄰居關系
[r2]display ospf peer brief 摘要表格
鄰居關系建立后,鄰居間基于條件決定是否建立鄰接關系;鄰接關系間將使用DBD包來溝通;
優先級為10;cost的參考帶寬為100M; COST=參考帶寬/介面帶寬
Ospf選擇cost值之和最小的路徑為最短路徑;若介面帶寬大于參考帶寬,cost值為1,將可能導致選路不佳,建議修改參考帶寬,修改時全網設備必須修改為一致;
[r1]ospf 1
[r1-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000
7.OSPF不規則區域
1.遠離骨干的非骨干區域
2.不連續骨干區域
注:一臺ABR設備若未連接到骨干區域,將被定義為非法ABR,不得進行區域間資訊共享;
解決方案:
1、 Tunnel 在非法ABR與合法ABR間建立一條隧道,之后將該隧道鏈路宣告于OSPF協議中;
在OSPF協議,若接收到去往相同目標的多條路由;先優選從骨干區域傳遞過來的路由;
若所有路由器均基于骨干區域,或均基于非骨干區域傳遞,進行cost值對比;
缺點:
-
選路不佳
-
周期性的資訊對中間穿越的區域存在資源占用
2、 OSPF的虛鏈路
合法的ABR對非法ABR進行授權,使得非法ABR可以進行區域間路由資訊共享;
優點:由于沒有新增鏈路,故不存在選路的問題;正常選路
缺點:
cisco為了避免周期資訊對中間區域的影響,在虛鏈路上關閉了周期行為—失去可靠性
華為選擇保持周期行為 —繼續對中間區域資源占用
[r2]ospf 1
[r2-ospf-1]area 1 兩臺ABR共同存在的區域
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 對端ABR設備的RID;
[r2-ospf-1]display ospf vlink
3、 多行程雙向重發布(推薦)
一臺設備運行所有路由協議行程,不同行程存在獨立的資料庫,相互間不進行共享;
僅將計算所得路由加載于同一張路由表中;
將不規則部分的區域宣告到其他的ospf行程中,之后使用重發布機制進行路由共享;
避免了周期資訊和選路問題;
[r2]ospf 1
[r2-ospf-1]import-route ospf 2
[r2-ospf-1]q
[r2]ospf 2
[r2-ospf-2]import-route ospf 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/160859.html
標籤:其他
