OSPF作為搞網路的小夥伴最常用的動態路由協議,在工作中經常會用到,同時面試的時候也是經常出現的考點,大臉鵬帶大家提煉梳理一下相關知識,以後遇到相關的問題就不怕啦。
源自網路的OSFP拓撲圖
一、OSPF基本概念
1、OSPF的全稱Open Shortest Path First(開放式最短路徑優先),它是一個IGP協議
2、OSPF的核心演算法是最短路徑優先,這也就意味衡量兩點之間路由走向最重要的因素就是路徑是否為最短,最短路徑由鏈路開銷,路徑上經過裝置的數目等綜合考慮得出
3、OSPF核心演算法的名稱是迪克斯加演算法
4、OPSF透過LSA(Link State Advertisement)來傳遞路由
5、OSPF的協議號是89
6、OSPF的核心是維護鏈路狀態,因此它的微觀單位並不是路由器,而是一條條的鏈路,這個也是為什麼我們啟用OSPF協議可以在埠下啟用的原因,因為我們是要將埠對應的鏈路透過OSPF釋出維護
二、OSPF的五種報文型別
1、Hello包 主要作用是:發現OSPF鄰居,建立和維護鄰接關係
2、DBD(Database Description) 檢測傳送端和接收端的鏈路狀態資料庫是否同步
3、LSR (Link state request)鏈路狀態請求
4、LSU (Link state update)鏈路狀態更新
5、LSAck (Link state ack)當收到一個LSU,路由器傳送LSAck確認(這也體現了OSPF是一個可靠協議,每一個數據包都被確認)
三、OSPF的狀態機
1、Down: OSPF初始狀態,還沒有開始交換資訊。
2、Init: 初始化交換資訊,表示自己已經收到了鄰居的Hello報文,但是報文中沒有列出本路由的Route ID(通常Router-ID是由路由器上啟用狀態的最大IP地址,一般配置的時候我們也會在路由器上做loopback地址用來當Router-ID),也就是說對方還沒有收到本路由發出的Hello報文
3、Two-Way:雙方都收到了對方傳送的Hello報文,建立了鄰居關係。在多路訪問的網路中,兩個介面狀態是DROther的路由器之間將停留在此狀態,其他情況將繼續轉入高階狀態。在此狀態下的路由器是不能同步路由資訊的,想同步路由器資訊,必須建立鄰接關係。(這裡的關鍵點就是MA網路中,存在不同的身份,下面第四部分會仔細講)
4、Exstart:準備開始交換階段,在這個階段雙方透過Hello報文決定主從關係,最高Router-ID的路由器將成為主路由,最先發起交換。主從關係確立後進入下一階段。
5、Exchange:開始交換階段,路由器將本地的路由狀態資料庫(Link state database)用資料庫描述(Database Description)報文來描述,然後發給鄰路由。如果這個階段中的路由收到不在其資料庫中的有關鏈路的資訊,那麼在下一個階段中將請求對方傳送該路由條目的完整資訊。
6、Loading:在這個階段,路由器透過傳送鏈路狀態請求(Link-state Request),來向鄰居請求一些路由條目的詳細資訊。鄰居會使用鏈路狀態更新包Link-state Update來回復請求,收到鄰居的Link-state Update後,再發送LSAck(Link-state-ack)來進行資料包的確認(這個也是OSPF協議是可靠協議的體現)。
7、FULL:完全鄰接狀態,Loading結束後,路由器之間就變成了“Full adjacency”
四、OSPF的基礎知識考點
1、問:多路廣播網路中(MA網路),路由器的幾種身份
答:三種身份,DR/BDR/DROther
2、問:DR/BDR透過什麼選舉
答:同一網段中所有的路由器根據路由器優先順序、Router ID在HELLO報文傳送階段選舉出來的,只有優先順序大於0的路由器才具有選取資格
3、問:多路廣播網路中(MA網路)的鄰接關係
答:所有DROther之間是Two-way狀態,所有DROther與BR/BDR之間是Full狀態,DR/BDR之間是Full狀態
4、問:DR/BDR通訊地址
答:MA網路中224。0。0。6是DR和BDR之間通訊的組播地址 非DR和BDR使用224。0。0。5
5、問:Router-ID(RID)怎麼選舉
答:RID是一個用來標識路由器的IP地址,可以在OSPF路由程序中手工指定(一般指定為loopback地址);如果沒有指定,路由器預設選擇迴環介面中最高的IP作為RID;如果沒有迴環地址,路由器使用所有啟用的物理介面中最高的IP作為RID。
6、問:OSPF中hello包的間隔時間
答:OSPF在MA網路中hello預設 10s dead time預設40s 在非廣播多路訪問(NBMA)中 Hello 30s
dead time 120s 都是1:4的關係
7、問:OPSF鄰居建立不起來的原因是什麼
答:①鄰接介面的MTU不一樣②都是非0區域③hello deadtime設定不一致④介面掩碼不一致
8、問:鄰居建立卡在Exchage/Exstart狀態是為什麼
答:一定是埠MTU設定出了問題
以上就是大臉鵬為大家總結的OSPF基礎知識點以及面試常見考點,喜歡的朋友歡迎點贊轉發~後續我會為大家帶來OSPF不同區域的劃分以及ASBR等知識~歡迎關注我,我將為各位提供最詳細最接地氣的實在網路知識。