ospf的操作:
第一步.起了ospf的路由器由它起了ospf的接口向外發hello包。假如兩個路由器共享同一數據鏈路,并且hello包中指定參數達成一致,他們就會形成鄰居。
第二步.鄰接關系,可以穿越虛擬的點對點鏈路形成鄰居。ospf定義了幾種網絡類型和路由器類型。鄰居關系的建立取決于hello包在什么類型的路由器之間交換和hello包在什么網絡類型里交換。
第三步.每個路由器向所有的鄰居發LSA(鏈路狀態通告)。LSA描述所有的路由器的鏈路或者接口和鏈路的狀態。這些鏈路可以是末節網絡(
沒有和其他路由器相連的網絡),其他的ospf路由器,其他區域中的網絡,或者對外部網絡(從其他路由進程中學到的網絡)。因為有不同種類的的鏈路狀態信息,OSPF定義了多種LSA類型。
第四步.每個路由器收到從一個鄰居發來的LSA的記錄,保存到自己的LSDB(鏈路狀態數據庫),并把LSA的一份復制發給他其他的鄰居。
第五步.通過在一個區域中泛洪LSA,所有路由器講建立同樣的LSDB。
第六步.數據庫同步之后,每個路由器都是用spf算法計算出以自己為根的無環的到每個已知的目的地的最短路徑的表格。這個表格也叫最短路徑優先樹。
第七步.每個路由器通過SPF樹建立自己的路由表。
$Hello協議
hello協議的幾個目的:
+發現鄰居。
+在兩臺路由器形成鄰居之前公告出幾個參數。
+hello包可以保持鄰居之間的鄰接關系(keepalive)。
+它保證鄰居之間的雙向通訊。
+它在廣播和NBMA網絡中選舉DR和BDR。
起了ospf的路由器周期性地通過起了ospf的接口外發送hello包。這個發送周期叫做HelloInterval,cisco使用的默認hello間隔是10秒,在nbma網絡中是30秒,這個值可以在接口下的ip ospf hello-intervall來更改.路由器在一定的時間內收不到hello包就認為鄰居丟失了,這個時間間隔叫做RouterDeadInterval.
 
每個hello包中都包含以下的信息:
+發hello包的路由器的router-id。
+發hello包的路由器的area-id。
+發hello包的接口的地址和掩碼。
+發hello包的接口的認證類型和認證信息。
+發hello包的接口的hello間隔。
+發hello包的接口的dead間隔。
+路由器的優先級。
+DR和BDR。
+5個flag位的標記選項。
+發hello包的路由器的鄰居的router-id。這個列表僅包括還在死亡間隔之內的路由器。
網絡類型
OSPF defines five network types:
Point-to-point networks,所有ospf包都是單播的。
Broadcast networks,使用組播224.0.0.5-allspfroute/224.0.0.6alldrrouter
Non-broadcast Multi-access (NBMA) networks,所有ospf包都是單播的。
Point-to-multipoint networks,使用組播224.0.0.5-allspfroute/224.0.0.6alldrrouter。
Virtual links,所有ospf包都是單播的
新聞熱點
疑難解答