OSPF(一)

NP—OSPF

OSPF--屬於IGP--屬於公有協議--屬於鏈路狀態協議
什麼叫做鏈路狀態協議?
鏈路:加入OSPF的接口以及接口的簡要信息
狀態:有哪些OSPF的鄰居
鏈路狀態協議在發送路由更新的時候發送的就是鏈路以及狀態的信息

OSPF是通過什麼方式來發送路由更新的?
先加入組播224.0.0.5中發送hello報文,數據匹配後建立鄰居關係,並且向組播地址中通告與自己相連的網段。

OSPF的組播地址:224.0.0.5和224.0.0.6
224.0.0.5--所有OSPF路由器都會加入
224.0.0.6--只有DR/BDR纔會 加入

鏈路狀態協議具有同步的概念,所以網絡中的設備都對網絡的認知都是一樣的。

OSPF路由器,都會有自己的ID

RID——Router ID——路由器ID
Router ID:是用於唯一標識網絡中每臺OSPF路由器

RID的來源
①通過手動指定,手動指定的RID是具有最高的優先級的,並且是不會隨網路拓撲的更新而發生變化。
②迴環接口,如果沒有手動指定的RID那麼就會選擇其迴環接口的IP地址作爲RID,並且也是越大越優先。
③如果沒有手動指定,也沒有迴環接口作爲RID,那麼就選擇雙UP的物理接口的IP地址作爲RID,並且也是越大越好。

OSPF的三五七
三張表:鄰居表,拓撲表,路由表
①鄰居表
加入組播地址的OSPF路由器會發送和接收Hello報文,如果鄰居建立的前提都有滿足時,雙方會建立鄰居關係,就會把對方的RID以及Hello包的接收接口關聯起來形成鄰居表。

IOU1#show ip ospf neighbor--查看鄰居表

鄰居建立的前提:
a.hello間隔要一致
b.認證類型要一致
c.區域ID要一致
d.特殊區域要一致

②拓撲表
也叫鏈路狀態數據庫,建立鄰居後,鄰居之間會相互發送LSA(鏈路狀態通告),並且OSPF路由器會將這些通告信息彙總成一張拓撲表,最後每一臺OSPF路由器的鏈路狀態數據庫會同步。

IOU1#show ip ospf database --查看拓撲表

③路由表
會根據拓撲表中的鏈路狀態信心,通過SPF算法選出最優的路徑,存入路由表中。

IOU1#show ip route ospf  --查看路由表

SPF算法:以自己爲準,構建一棵最短路徑樹,選擇最優路徑加表。
OSPF衡量一條最優路徑的方法?
從源到目的,路徑上所有出站接口的開銷總和。越小越優先
OSPF接口開銷的計算:10^8/接口帶寬

開銷的更改:手動更改
①可以通過更改帶寬來更改開銷。但一般不建議用這種方法,因爲接口的帶寬不僅僅會影響OSPF的開銷計算,也會影響eigrp 的度量值的度量值計算有關。
IOU1(config-if)#bandwidth n

②可以通過直接進入接口更改OSPF的開銷。一般會選擇這種方法。
IOU1(config-if)#ip ospf cost 20

五個報文:Hello報文,DBD報文,LSR報文,LSU報文,LSAKC報文
Hello報文:用於發現,建立和維持鄰居關係。包含:版本,RID,認證類型-密碼,hello時間10s,死亡事件40s,優先級,組播地址
DBD報文:也叫做數據庫摘要,用於發送LSA。
包括
I:Init--初始位,置爲1時代表這是該路由的第一個DBD報文。
M:More--後繼位,置爲1時,代表後續還有DBD報文,,置爲0時代表後續沒有DBD報文。
MS:Master/Slaver--主從位,置爲1時代表該路由器是一個“主”,置爲0時,代表該路由器是一個“從”。
主從的選舉是根據比較RID的大小來確定的,RID較大的成爲主。

LSR:鏈路狀態請求包--用於請求詳細的LSA信息。只有主會發送

LSU:鏈路狀態回覆包--用於迴應LSR,主和從都會發送。

LSAck:鏈路狀態確認包--ospf對於每一個發送給自己的LSU都會對其進行確認。其實ospf就是通過該報文來保證路由更新的可靠性。

七個狀態:Down,Init,2-way,Exstart, Exchange,Loding,Full
①Down:斷開狀態,檢測不到ospf的hello。有可能是因爲接口鬆動或者重置了ospf的進程。

②Init:初始狀態,啓用了ospf的路由器就會開始往組播地址發送hello報文,並且會接收到對方的hello報文。

③2-way:雙向通信狀態,啓用了ospf協議的路由會往組播地址發送hello包,同時也會接收到對方的hello包,此時如果符合條件,那麼路由器就會把對方的RID加入自己的hello包中並且發送出去;如果對方同樣把自己的RID加入其hello中發送出來,那麼雙方就形成了一種雙向通信的“好朋友關係”---鄰居

④Exstart:交換初始狀態,雙方擬定需要交換的信息,選舉出主,由“主”來主導此次交換過程。

⑤Exchange:交換狀態,雙方一開始不會交換完整的信息,而是會交換數據庫摘要信息。此時從會優先把自己的信息發送給主,主接收到信息以後會對照自己的數據庫信息,如果數據庫存在相應的信息,那麼就直接忽略;如果數據庫不存在相應的信息,那麼主就會向通發送LSR請求詳細的LSA信息。此時,爲了保證數據庫的同步,主也會把從沒有的信息通過LSU發送給從。

⑥Loading:加載狀態,加載LSA

⑦Full:完全鄰接狀態,到達這一步以後,雙方已經達成了鏈路狀態數據庫的同步

特殊狀態:
⑧ATTEMPT:嘗試狀態,只會出現在非廣播多路訪問環境中,想要和對方建立鄰居,但是不知道該如何發包。

OSPF的區域
爲什麼要劃分區域?
ospf是一個鏈路狀態協議,需要進行鏈路狀態數據庫的同步。所以需要管理龐大的鏈路狀態信息,並且運行復雜的SPF算法,因此會對設備的CPU造成很大的消耗,對設備的性能也是很大的損耗。所以提出了區域的概念,將一整個大的ospf路由域劃分成多個比較小的區域,每隔區域中的路由器只需要管理本區域內部的鏈路狀態信息。不同的區域之間的路由器是通過傳遞發送路由的形式來進行數據的傳遞。類似於距離矢量協議。

ospf的區域劃分:採用層級的方式進行劃分
骨幹區域:區域0
非骨幹區域:除了區域0以外的其他所有區域
ospf對於區域的要求?
1、要求非骨幹區域一定要與骨幹區域相連
2、骨幹區域與骨幹區域之間一定要直連

ospf的路由器類型
ABR:區域邊界路由器,連接兩個不同的區域,其中一個必須是區域0
ASBR:自治系統邊界路由器,連接ospf路由域和其他外部路由協議的路由器,負責將外部的路由信息注入ospf路由域,同時將ospf的路由信息傳遞給外部的路由協議。---重分發
IR:普通路由器,位於同一個區域內的路由器,該路由器上的所有接口都屬於同一個區域。

基本配置:

IOU1(config)#router ospf 1--創建一個ospf進程,進程號是1--1只在本地有意義
IOU1(config-router)#router-id 1.1.1.1--手動指定RID
IOU1(config-router)#network 192.168.12.0 0.0.0.255 area 0--後面必須跟上區域

距離矢量協議和鏈路狀態協議network的含義:
距離矢量協議的network是將一個網段通告進路由進程;鏈路狀態協議的network是規定一個網段,路由器上屬於該網段IP地址的接口就會劃分成進ospf進程的相應區域裏面。
IOU1(config-router)#int e0/0
IOU1(config-if)#ip ospf 1 area 1 --基於接口的命令比基於進程下的命令具有更高的優先級。

查看命令:

IOU1#show int e0/0
IOU3#show ip ospf interface loopback 0
IOU1# show ip ospf
IOU1#clear ip ospf process --重置路由進程
Reset ALL OSPF processes? [no]: y

既然OSPF要劃分區域,肯定要選舉DR和BDR
DR:指定路由器
BDR:備份指定路由器

DR/BDR的選舉:是在一條以太網鏈路上進行選舉--ospf的DR並不是常理上的選舉得到,應該是由BDR晉升來。網絡中首先會選舉出BDR,等到BDR晉升成爲DR以後纔會繼續選舉出新的BDR。
選舉規則:
先比較接口優先級(針對以太網鏈路來說,默認的接口優先級是1;針對串行鏈路來說默認的接口優先級是0--代表不參與DR/BDR的選舉),優先級大的成爲DR/BDR。
IOU1(config-if)# ip ospf priority n --更改ospf的接口優先級
②如果優先級一致的話,比較雙方的RID大小,同樣是大的成爲DR/BDR
注意:DR/BDR的選舉是非搶佔,網絡中經過40s的等待時間選舉出DR/BDR之後,已經處於穩定狀態,此時就算有優先級更高的路由器加入該網絡中也不會馬上搶佔原本DR的地位,除非重置ospf的進程--clear ip ospf process--y

OSPF的網絡類型--ospf可以根據鏈路類型來區分網絡類型
①串行鏈路:網絡類型是點對點(P2P),點對點鏈路是不需要進行DR/BDR的選舉,會發送組播的hello報文,hello時間是10s。

②以太網鏈路:網絡類型是廣播多路訪問環境(MA),MA的網絡環境需要進行DR/BDR的選舉,會發送組播的hello報文,hello時間是10s。

③迴環接口:網絡類型是loopback,迴環接口被認爲是一種主機接口,所以鄰居學習到的迴環接口的路由信息默認都是/32位。
Loopback interface is treated as a stub Host--迴環接口被認爲是一種末節的主機。

影響:在網路中有可能因爲掩碼的不一致而導致通信障礙。
解決方案:
1、將回環接口的地址配置成32,這樣雙方的信息一致。
2、更改接口的網絡類型
IOU1(config-if)#ip ospf network point-to-point

④非廣播多路訪問環境:早期的一些技術,幀中繼、ATM,需要進行DR/BDR的選舉,但是不會發送組播的hello報文。但是可以通過單播指定。
IOU2(config-router)#neighbor 192.168.12.1--單播指定鄰居

注意:
ospf的網絡類型和鄰居的建立沒有必然的聯繫,只要滿足鄰居建立的四個條件就可以建立鄰居;
ospf的路由學習與網絡類型有必然的聯繫,不一致的網絡類型無法相互學習路由。

OSPF的LSA---鏈路狀態通告有以下五種類型。

LSA1:IOU1#show ip ospf database router
名稱:Router Link States ---路由器的LSA
內容:本區域內部的鏈路以及狀態的信息
作用:構建本區域內的鏈路狀態數據庫,通過鏈路狀態數據庫來得到路由信息。
通告者:本區域內的所有路由器
傳播範圍:僅限於本區域內部

LSA2:IOU1#show ip ospf database network
名稱: Net Link States--網絡的LSA
內容:多路訪問環境的網段和子網掩碼,以及加入多路訪問的鄰居路由器
作用:結合1類LSA,共同描述本區域內部的鏈路狀態信息
通告者:多路訪問環境的DR
傳播範圍:僅限於本區域內

LSA3:IOU1#show ip ospf database summary
名稱: Summary Net Link States--彙總的LSA
內容:本區域外的路由信息
作用:通告本區域內的路由信息以LSA3的形式,實現其他區域能夠學習到本區域內部的路由信息,同時本區域也可以學習到其他區域的路由信息。
通告者:ABR
傳播範圍:整個ospf路由域

LSA4:IOU1# show ip ospf database asbr-summary
名稱:Summary ASB Link States--彙總的ASBR LSA
內容:ABR到ASBR的開銷
作用:告訴內部的路由器該如何到達ASBR
通告者:ABR
傳播範圍:除了起源區域以外的其他ospf區域。起源區域--ASBR所在的區域

LSA5:IOU1# show ip ospf database external
名稱:Type-5 AS External Link States--外部的LSA
內容:ospf路由域外的路由信息
作用:實現ospf路由域外部的路由信息注入ospf路由域,同時也可以讓其他的路由協議學習到ospf的路由信息。
通告者:ASBR
傳播範圍:整個ospf路由域

ospf的路由類型:
O:同一個區域內學習到的路由條目
O IA:不同區域間學習到的路由條目
O E2/E1:ospf外部學習到的路由條目
O E2/E1的區別:O E2是從外部學習到路由信息的時候,開銷是保持不變的,默認都是20;O E1是從外部學習到路由信息的時候,開銷是累加的。--默認的開銷類型是O E2。

①IOU3(config-router)# redistribute rip subnets metric-type 1--將rip重分發進ospf的時候更改默認的開銷類型是0 E1。
②IOU3(config-router)#redistribute rip subnets metric 40--將rip重分發進ospf的時候更改默認的開銷是40

OSPF(一)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章