今天海翎光電的小編和大家聊一聊 OSPF 協(xié)議。
OSPF 是一種基于 SPF 算法的鏈路狀態(tài)路由協(xié)議。

上圖是在一個 OSPF 區(qū)域里面添入一臺新的路由器的時候,OSPF 協(xié)議的工作過程,如果你能非常詳細的敘述出這張圖的話,基本上 OSPF 協(xié)議的工作過程你就掌握了。 首先大家要清楚,一臺運行了 OSPF 協(xié)議的路由器,最終都會存儲三張表:鄰居表、拓撲表、路由表。下面以這三張表的產(chǎn)生過程為線索,來分析在這個過程中,路由器發(fā)生了那些變化,從而說明 OSPF 協(xié)議的工作過程。 一臺新加入 OSPF 區(qū)域的路由器首先要跟鄰居路由器建立鄰接關(guān)系,過程如下:

新路由器發(fā)出第一個 hello 分組以后等待應(yīng)答,等待的時間間隔為 hello 分組的四倍等待期間的狀態(tài)稱為路由器的初始狀態(tài),等待期間,新路由器從另外一臺路由器那里收到 hello 分組,并獲知 DE 和 BDR,如果沒有,則開始選擇。網(wǎng)絡(luò)上的其他路由器收到新路由器發(fā)的 hello0 分組以后將該路由器的 router Tn 加入到拓撲數(shù)據(jù)庫中,并發(fā)一回應(yīng) hello 分組,其中包含自己的 router ID 所有鄰居組成的列表。

新路由器看到自己的 ID 出現(xiàn)在其他路由器應(yīng)答的鄰居列表中建立了鄰接關(guān)系,新路由器將其狀態(tài)改為雙向。通過上面 3 步,新加入的路由器和其鄰居路由器已經(jīng)建立了鄰接關(guān)系。 在建立拓撲表的時候,新加入的路由器要經(jīng)歷預(yù)啟動狀態(tài)、交換狀態(tài)、加載狀態(tài)、完全鄰接狀態(tài)。下面就將此過程,以圖的形式展示給大家:


(2)交換狀態(tài):兩臺路由器都發(fā)送 DBD,DR 發(fā)送一系列的 DBD,其中包括含了存儲在其 database 中的網(wǎng)絡(luò)。DBD 中沒有包含詳細的必要信息,只是為了從其他鄰居路由器接收到 DBD 消息報文之后,與自己的數(shù)據(jù)庫進行比較。

(3)加載狀態(tài):新路由器需要更詳細的信息,將使用 LSR(鏈路狀態(tài)請求包)進行特定某 LSA 的詳細信息的請求,而被請求端則會響應(yīng),并且會發(fā)送 LSU(鏈路狀態(tài)更新包),此包包含了信息的 LSA 信息。
經(jīng)過以上四步,此 OSPF 區(qū)域的所有路由器的數(shù)據(jù)拓撲圖都達到了同步。(三) 然后每個路由器按照產(chǎn)生的全區(qū)域數(shù)據(jù)拓撲圖,在運行 SPF 算法,產(chǎn)生到達目標網(wǎng)絡(luò)的路由條目。經(jīng)過以上三大步,OSPF 協(xié)議的運行過程基本結(jié)束。 海翎光電的小編在此提醒一下, 在上面的過程當(dāng)中有幾個很重要的問題需要注意: 1》此協(xié)議的管理距離是 110、OSPF 路由進程 ID 的范圍必須在 1-65535 之間,而且只具有本地含義,不同路由器的路由進程 ID 可以不同、區(qū)域 ID 在 0 至4294967295,當(dāng)區(qū)域值取 0 時本區(qū)域稱為主干區(qū)域;
- 用 router ID 命令指定的路由器 ID 的優(yōu)先級最高
- 如果沒有指定,那么選 IP 地址最大的環(huán)回接口的 IP 地址為 route ID
- 如果沒有換回接口,就選擇 UP 端口中 IP 值最大的為 router ID
如果同時啟動,或者重新選舉,則看接口優(yōu)先級(0-255),優(yōu)先級最高的被選舉成 DR,在默認情況下,多路訪問網(wǎng)絡(luò)的接口優(yōu)先級為 1,點到點網(wǎng)絡(luò)的接口優(yōu)先級為 0,修改接口優(yōu)先級的命令是“ip ospf priority”,如果接口的優(yōu)先級被設(shè)置為 0,那么該接口不參與 DR 選舉。 如果前兩者相同,最后看路由器 ID,路由器 ID 最高的被選舉成 DR。DR 選舉時非搶占的,除非人為地重新選舉。重新選舉 DR 的方法有兩種,一是路由器重新啟動;二是執(zhí)行“clear ip ospf process"命令。