1)Down狀態:路由器不與其他任何路由器交換任何OSPF消息;
2)Init狀態:接收方路由器已經接收到對端路由器的hello包,但是沒有從對端路由器的hello包中發現自己的router-id.。此時通信是單向的;
3)Two-Way狀態:在收到的hello包中發現自己的router-id,說明此時已經是彼此發送hello包了;
4)一旦路由器進入Two-Way狀態,他們就被認為是鄰居。此時就要進行選舉過程了,選出指定路由器(DR),備份指定路由器(BDR);
5)具有最高優先級的ospf路由器成為網段中的DR。如果優先級相同,具有最高路由器ID的路由器會成為DR;默認所有路由器的優先級都為1,優先級范圍是從(0—255);使用ip ospf priority命令在接口子配置模式下配置;選舉出DR和BDR后,其他路由器就與DR和BDR形成鄰接關系,但是其他路由器之間還是處于鄰居關系,就是說還是處于TWO—WAY狀態;
6)選舉出DR和BDR后,路由器繼續生成hello包以保持通信。這被認為是exstart狀態,該狀態下ospf路由器準備共享鏈路狀態信息。
7)Exstart狀態:DR和BDR與網段上的其他ospf路由器形成鄰接關系,隨后在每一個鄰接關系中,具有最高路由器ID的路由器成為主路由器。注意,DR不必是交換過程中的主路由器。鄰接關系中的剩下的路由器成為從路由器;
8)Exchang狀態:主路由器首先開始和從路由器共享鏈路狀態信息。就是說主路由器發送DBD包,如果說鏈路狀態數據庫比喻成一本書,那么DBD相當于這本書的目錄,通過DBD包,可以發現自己所沒有的信息。DBD包中包含鏈路狀態類型,通告路由器的ID,通告鏈路的成本以及鏈路的序列號。
9)Loading狀態:通過DBD包從路由器發現了自己所沒有的信息后,從路由器會發送鏈路狀態請求包給主路由器(LSR包),隨后主路由器會向從路由器發送帶有鏈路詳細信息的鏈路狀態更新包(LSU包,Link?State?Update)。從路由器將該信息合并到它的本地鏈路狀態數據庫中。從路由器會回應一個LSACK包給主路由器。
10)Full狀態:此時LSDB已經一致了。此時每臺ospf路由器可以獨立計算初路由表了。
11)路由表計算:根據LSDB,以自己為根,用LSDB為原材料,采用spf算法獨立計算出最有而且沒有環路的樹放入路由表中。
本文出自 “風行天下” 博客 轉自:http://haoteng.blog.51cto.com/3141849/614979