OSPF(Open Shortest Path First)
---恢復內容開始---
1、概述
路由協議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分鐘。
OSPF所有路由的管理距離(Ddministrative Distance)為110,OSPF只支持等價負載均衡。
OSPF是典型的鏈路狀態路由協議,路由器之間交換的並不是路由表,而是鏈路狀態,OSPF通過獲得網絡中所有的鏈路狀態信息,從而計算出到達每個目標精確的網絡路徑。
2、OSPF術語
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,可以被所有路由器接收。
3、OSPF數據報
Hello
建立和維護OSPF鄰居。
DBD
交換LSDB的摘要信息
LSR
請求某條特定的LSA信息
LSU
發送給鄰居,鄰居所請求的LSA
LSACK
用於確定LSA的接受
4、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這兩個狀態,鄰居停留在任何狀態,都是不正常。
5、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鄰居的成功建立,並不要求雙方網絡類型一致,但雙方網絡類型不一致,將可能導致鏈路狀態數據庫中的條目無法進入路由表。
6、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後再轉發。
---恢復內容結束---
OSPF(Open Shortest Path First)