OSPF(開放式最短路徑優先協議)
- rip存在的問題:
- 適用範圍比較小
- 收斂速度慢,被動計時器。
- 次優路徑,對於選路的衡量方式很單一。
- 路由協議的由來:節省配置量,動態維護路由表。
- 路由協議分爲:1、距離適量:不知道整張網絡的top 2、鏈路狀態:知道整張網絡的top,SPF算法使用累積式來計算路由條目開銷。
- OSPF的五個步驟:
- 建立鄰居,hello
- 傳遞LSA(鏈路狀態通告)
- LSDB同步
- SPF算法計算最短路徑
- 將計算出的內容加表(OSPF表、ip表)
- OSPF的cost值的計算:
公式:參考帶寬/實際帶寬
參考: 10^8bit = 100M
實際:100M(1)、1000M(1)當實際帶寬的值超過參考帶寬後cost值都爲1,所以實際帶寬大時可以手動修改cost。
- OSPF報文
- 封裝在ip之上,協議號89
- 報文類型:
(1)hello:建立和維護鄰居關係。DR/BDR的選舉
(2)DD:數據庫描述,描述當前數據庫裏的LSA簡要信息。
(3)LSR:鏈路狀態請求,請求LSA
(4)LSU:鏈路狀態更新,真正包含LSA的報文
(5)LSACK:確認LSA收到。
- OSPF涉及到的網絡類型:(鏈路類型默認情況下由二層鏈路協議類型決定)
(1)MA:多路訪問
帶廣播MA-----BMA
不帶廣播MA---NBMA
(2)P2P:點到點
P2P:點到點
P2MP:點到多點
二層協議類型 |
網絡類型 |
Eth_|| |
BMA |
PPP、HDLC |
P2P |
FR 、ATM |
NBMA |
null |
P2MP(必須手動配置,修改二層協議爲空) |
- DR/BDR的選舉:使用hello報文參數
參數:
- 優先級: 範圍0-255
默認優先級:1 數值越大優先級越高
0 該路由器不參與該MA鏈路的選舉
2. RID :RID越大越優
注意:DR/BDR不搶佔,就算有更優的也不取代DR/BDR
- BDR如何感知到DR失效:根據hello時間
hello類型 |
鏈路類型 |
時間 |
Hello interval |
BMA/P2P NBMA/P2MP |
10s 30s |
Dead time |
BMA/P2P NBMA/P2MP |
4*hello=40s 4*hello=120s |
注:當鄰居達到死亡時間任沒有收到hello消息,則認爲鄰居關係失敗。
- DD報文:
DD報文中存在的比特位:
(1)I :init初始化 置1表示爲第一個DD報文
(2)M :more更多位 置1表示還有LSA的描述信息需要發送
(3)M/S :Master Slave 主從位 置1表示宣稱自己爲主
- OSPF不同的角色可以監聽不同的地址:
所有OSPF路由器都可以監聽224.0.0.5
DR/BDR單獨監聽224.0.0.6,用於DR與BDR之間的同步。
- 選舉DR等待時間 wait time = 4 * hello
- 所有的路由器中,只和DR/BDR建立連接。其他路由器(DR other)之間建立鄰居關係。(MA鏈路)
P2P類型中,所有的路由器之間都是鄰接關係。
- OSPF狀態:
- down:未收到任何hello消息
- Init :收到了hello消息但是hello消息裏沒有自己的RID
- 2way:在hello消息中看到了自己的RID(選舉DR)--鄰居
- exstart:進入主從選舉
- exchange:通過DD報文來獲取LSR的請求列表
- loading:加載狀態,可以通過LSR報文來獲取真正的LSA詳細信息。
- full:數據庫已經同步,完全建立了鄰接關係。
特殊狀態:attempt(嘗試狀態),NBMA中存在。
================================================================================================
- OSPF的域內路由:
LSA類型:LSA1;LSA2;LSA3;LSA4;LSA5;LSA7;
- OSPF中所有LSA中,都有共同的LSA頭部。
LSA type : 當前的LSA類型 router---1 ,network---2
LSA ID :不同的LSA表達的意義不同。
Advertise Router:該LSA產生者的RID。
LSA1 :LSA-ID---該LSA產生者的RID
LSA2 :LSA-ID---DR接口ip地址
- 只在單區域內傳遞的LSA:LSA1、LSA2
LSA1 :Router-LSA,由每一臺路由器產生,每臺路由器都會產生一份表達的是當前這臺路由器所連接的鏈路(link)。
Link type |
Link id |
Link data |
Metric |
P2P link |
接口對端路由器RID |
本接口ip地址 |
接口metric |
Transnet link |
MA中DR接口ip |
本接口ip地址 |
接口metric |
Subnet link |
接口ip子網 |
子網mask |
接口metric |
Virtual link |
接口對端路由器RID |
本接口ip地址 |
累積metric |
P2P link :P2P接口網絡類型
Transnet link :接口網絡類型MA
Subnet link :接口P2P,或者鏈接的是一個末梢網絡。
Virtual link:當使用OSPF虛鏈接時。
LSA2 :Network-LSA ,由DR產生,每個DR在一條MA鏈路上產生一份。
- MA鏈路的MASk。
- Attached router:MA鏈路中有多少臺路由器。每一臺路由器用RID表示。
- OSPF多區域,OSPF域間路由
好處:可以節省OSPF路由器在計算OSPF-TOP圖以及路由器的性能消耗。
LSA3:傳遞的是一個路由信息,由ABR產生,在區域內傳遞。
LSA type:network-summary
LS-ID:目的網段地址(網絡號)
ADV-router: ABR-RID
Mask:目的網段的子網掩碼
Metric:ABR路由表的開銷值(到達目的網段的開銷值)
注:當一臺路由器收到LSA3後,在計算路由時,使用LSA3開銷+該路由器去往該區域ABR的開銷只和爲路由的開銷。
- 區域邊界路由器作爲區域之間通信的連接者,同時維護所連接的多個區域的鏈路狀態數據庫。
- ABR將一個區域內的鏈路狀態信息轉化成路由信息,然後發佈到鄰居區域。
- 鏈路狀態信息轉換成路由信息其實就是將一類和二類LSA轉化成三類LSA的過程。注:域間路由信息在ABR上是雙向傳遞的。
- OSPF劃分的區域區域分割在路由器做分割。
- Area0區域分割的情況:使用Vlink
OSPF-vlink配置:
(1)在把area0分割的區域上配置(在骨幹區域分割場景)。
(2)需要在兩個端點路由器上配置。
(3)area x
(4)vlink-peer 4.4.4.4 #指定對方的router-id
- OSPF外部路由:AS外的
應用場景:收購了一家公司,需要把該公司的網絡接入進來。
LSA5:ASBR產生描述如何從ASBR到達外部目的地,描述的外部路由信息(子網號,子網掩碼,metric),metric-type 、FA、tag
LSA-type:AS-External-LSA
LS-id:目的網段地址(網絡號)
adv-router:產生LSA的ASBR的router-id
mask:網絡掩碼
metric:開銷值 默認值爲1(可以修改)
metric-type:type1、type2(默認)
type2:不累計OSPF內部開銷
type1:累積OSPF內部開銷
LSA4:由ABR產生,描述ASBR的RID 告知相同區域內其他路由器到ASBR怎麼走。只會在本區域內傳遞。
LSA-type:ASBR-summary-LSA
LS-id:ASBR的route-id
Adv-router:產生四類LSA的ABR的router-id
Metric:從該ABR到達ASBR的OSPF開銷值。
注:當接入外部網絡時,自治系統邊界路由器(ASBR)會產生一條描述外部目的地址的LSA5,然後ASBR向各個區域泛洪LSA5,各區域的ABR收到LSA5後會同時生成一條LSA4在本區域內泛洪,用來描述怎麼到達ASBR。
================================================================================================