一、概述數據庫
路由協議OSPF全稱爲Open Shortest Path First,也就開放的最短路徑優先協議,由於OSPF是由IETF開發的,因此全部廠商均可以用。緩存
OSPF的流量使用IP協議號89。網絡
OSPF對網絡沒有跳數限制,支持 Classless Interdomain Routing (CIDR)和Variable-Length Subnet Masks (VLSMs),沒有自動彙總功能,能夠手動彙總。負載均衡
OSPF並不會週期性更新路由表,而採用增量更新,即只在路由有變化時,纔會發送更新,而且只發送有變化的路由信息;事實上,OSPF是間接設置了週期性更新路由的規則,由於全部路由都是有刷新時間的,當達到刷新時間閥值時,該路由就會產生一次更新,默認時間爲1800秒,即30分鐘,因此OSPF路由的按期更新週期默認爲30分鐘。less
OSPF全部路由的管理距離(Ddministrative Distance)爲110,OSPF只支持等價負載均衡。dom
OSPF是典型的鏈路狀態路由協議,路由器之間交換的並非路由表,而是鏈路狀態,OSPF經過得到網絡中全部的鏈路狀態信息,從而計算出到達每一個目標精確的網絡路徑。spa
二、OSPF術語orm
Router-ID接口
RID是路由器在ospf中的惟一標識,選舉原則,思科會自動在全部環回口中選擇最大的IP,作RID,若是沒有環回口,則選擇活動的物理口IP最大的一個。同時也能夠手動指定。進程
RID絕對不能夠重名,不然路由器收到的鏈路狀態,就沒法確認發起者的身份。
注:若是一臺路由器收到一條鏈路狀態,沒法到達該Router-ID的位置,就沒法到達鏈路狀態中的目標網絡,Router-ID只在OSPF啓動時計算,或者重置OSPF進程後計算。
COST
OSPF會自動計算接口上的Cost值,但也能夠經過手工指定該接口的Cost值,手工指定的優先於自動計算的值。
OSPF計算的Cost,一樣是和接口帶寬成反比,帶寬越高,Cost值越小。到達目標相同Cost值的路徑,能夠執行負載均衡,最多6條鏈路同時執行負載均衡。
鏈路狀態LSA
鏈路狀態(LSA)就是OSPF接口上的描述信息,例如接口上的IP地址,子網掩碼,網絡類型,Cost值等等,由於ospf路由器之間交換的並非路由表,而是鏈路狀態信息。
OSPF區域
由於OSPF路由器之間會將全部的鏈路狀態(LSA)相互交換,絕不保留,當網絡規模達到必定程度時,LSA將造成一個龐大的數據庫,勢必會給OSPF計算帶來巨大的壓力;爲了可以下降OSPF計算的複雜程度,緩存計算壓力,OSPF採用分區域計算,將網絡中所
有OSPF路由器劃分紅不一樣的區域,每一個區域負責各自區域精確的LSA傳遞與路由計算,而後再將一個區域的LSA簡化和彙總以後轉發到另一個區域,這樣一來,在區域內部,擁有網絡精確的LSA,而在不一樣區域,則傳遞簡化的LSA。
OSPF的區域0就是全部區域的核心,稱爲BackBone 區域(骨幹區域),而其它區域稱爲Normal 區域(常規區域),在理論上,全部的常規區域應該直接和骨幹區域相連,常規區域只能和骨幹區域交換LSA,常規區域與常規區域之間即便直連也沒法互換LSA。
Internal Router(IR)
路由器全部接口都屬於同一個區域。
Area Border Router (ABR)
一臺OSPF路由器屬於多個區域,即該路由器的接口不都屬於一個區域。
Autonomous System Boundary Router (ASBR)
一臺OSPF路由器將外部路由協議重分佈進OSPF
注:
★一臺路由器能夠運行多個OSPF進程,不一樣進程的OSPF,可視爲沒有任何關係,如須要得到相互的路由信息,須要重分佈。
★每一個OSPF進程能夠有多個區域,而路由器的鏈路狀態數據庫是分進程和分區域存放的。
DR/BDR
當多臺OSPF路由器連到同一個多路訪問網段時, 經過在多路訪問網段中選擇出一個核心路由器,稱爲DR(Designated Router),網段中全部的OSPF路由器都和DR互換LSA,這樣一來,DR就會擁有全部的LSA,而且將全部的LSA轉發給每一臺路由器;DR就像
是該網段的LSA中轉站,全部的路由器都與該中轉站互換LSA,若是DR失效後,那麼就會形成LSA的丟失與不完整,因此在多路訪問網絡中除了選舉出DR以外,還會選舉出一臺路由器做爲DR的備份,稱爲BDR(Backup Designated Router),BDR在DR不可用時,代替
DR的工做,而既不是DR,也不是BDR的路由器稱爲Drother,事實上,Dother除了和DR互換LSA以外,同時還會和BDR互換LSA。
選舉原則:
首先比較優先,選舉優先級最高的成爲DR,優先級數字越大,表示優先級越高,被選爲DR的概率就越大,次優先級的爲BDR,優先級範圍是0-255,默認爲1,優先級爲0表示沒有資格選舉DR和BDR。
其次比較RID,若是在優先級都相同的狀況下,Route-Id 最大的成爲DR,其次是BDR,數字越大,被選爲DR的概率就越大。
注:★ Drother路由器將數據包發向目標地址224.0.0.6,只能被DR和BDR接收,其它Drother不能接收;而DR和BDR將數據包發向目標地址224.0.0.5,能夠被全部路由器接收。
三、OSPF數據報
Hello
創建和維護OSPF鄰居。
DBD
交換LSDB的摘要信息
LSR
請求某條特定的LSA信息
LSU
發送給鄰居,鄰居所請求的LSA
LSACK
用於肯定LSA的接受
四、OSPF啓動狀態
Down → 路由器剛剛啓用OSPF進程,Hello包還沒收到,在此進程,能夠向外發送Hello包,以試圖發現鄰居。
Attempt →非廣播多路訪問中,有這個狀態,須要手動指定鄰居
Init →只是OSPF路由器一方收到了另外一方的Hello,但並無雙方都交換Hello,也就是對方的Hello中尚未將本身列爲鄰居。
Two-way →雙方都已經交換了Hello信息,而且從Hello中看到對方已經將本身列爲鄰居,而且若是是須要選舉DR和BDR的話,也已經選舉出來,但OSPF鄰居之間並不必定就會交換LSA,若是不須要交換LSA,則永遠停留在此狀態,若是須要造成鄰接並互相交換LSA,則狀態繼續往下進行,(好比Drother與Drother之間將永遠停留在Two-way狀態,由於Drother與Drother之間不須要交換LSA。)
Exstart →在鄰居之間交換完整的LSA以前,會先發送DBD,LSR,誰先發,誰後發,須要肯定順序,在此階段,就是肯定鄰居的主從關係(Master---slave),由主路由器向從路由器發送信息。
注:在任何網絡環境下,OSPF在交換LSA以前,都須要肯定主從關係。
Exchange → 交換DBD的過程,發送LSR。
Loading →鄰居收到LSR,回覆LSU。
Full→表示數據庫已經同步,數據庫狀態變成了收斂,但路由表卻還在計算當中。
注:除了Two-way和Full這兩個狀態,鄰居停留在任何狀態,都是不正常。
五、OSPF網絡類型
OSPF在運行時,必須考慮鏈路層的類型,稱爲OSPF網絡類型,網絡類型可分爲以下幾種:
點到點
點到多點
廣播
非廣播多路訪問
因爲不一樣的網絡類型,將會影響到OSPF的Hello時間與Dead時間,關係到DR與BDR的選舉與否,影響到OSPF鄰居是自動創建仍是手工創建,總結以下表:
網絡類型 |
Hello時間 |
選舉DR/BDR |
鄰居創建方式 |
點到點 (Point-To-Point) |
10秒 |
否 |
自動 |
點到多點 (Point-To-Multipoint) |
30秒 |
否 |
自動 |
廣播 (Broadcast ) |
10秒 |
是 |
自動 |
非廣播 (Non-Broadcast ) |
30秒 |
是 |
手工 |
點到多點非廣播 (Point-To-Multipoint Non-Broadcast) |
30秒 |
否 |
手工
|
注★OSPF鄰居的成功創建,並不要求雙方網絡類型一致,但雙方網絡類型不一致,將可能致使鏈路狀態數據庫中的條目沒法進入路由表。
六、OSPF LSA類型
類型 1 (Router Link)
任何一臺路由器都會產生,每臺路由器的每一個接口,都由本身的鏈路狀態,即便有多個OSPF接口,也只有一條1類LSA,由於全部接口的鏈路狀態會打包成一條1類LSA。
類型 2 (Network Link)
只有在選舉DR/BDR的網絡類型中才會產生,並卻只有DR產生。
類型 3 (Summary Link)
類型3的LSA就是將一個區域的LSA發向另外一個區域時的彙總和簡化,ABR其實就是將LSA 1彙總和簡化,變成LSA 3後再發到另外一個區域的。
類型 4 (ASBR Summary Link)
ABR產生,主要告訴其它區域如何前往ASBR,泛洪範圍ABR鏈接的其餘區域
類型 5 (External Link)
ASBR產生,用於通告前往自治域系統外部的路由,並傳遍整個ospf自主系統,泛洪範圍整個自治域
類型 7 (NSSA Link)
NSSA將外部路由重分佈進OSPF時,路由信息使用類型7來表示,LSA 7由NSSA區域的ASBR產生,LSA 7也只能在NSSA區域內傳遞,若是要傳遞到NSSA以外的其它區域,須要同時鏈接NSSA與其它區域的ABR將LSA 7 轉變成LSA 5後再轉發。