1.
hello報文的作用
鄰居發現:自動發現鄰居路由器。
鄰居建立:完成Hello報文中的參數協商,建立鄰居關系。
鄰居保持:通過Keepalive機制,檢測鄰居運行狀態。
hello報文的發送時間,根據鏈路的不同為10s和30s,用於周期性更新
hello報文還有一個deadtime為老化時間,這個時間必須是hello時間的4倍,如果不是則不能建立鄰居關系。
可以看到圖中的RTA對RTB發送hello報文,此時報文內的neighbor為null,用於發現鄰居,當RTB收到這條報文時,RTB的狀態為init。
RTB與RTA發送neighbor為null的用於發現鄰居的hello時是同步的,當RTB收到hello后,會根據數據包中的源地址了解到RTA是自己的鄰居,於是發送新的hello報文用於建立鄰居關系,此時報文的neighbor為RTA的RouterID,當RTA收到這條報文時從init進入2way狀態,同時RTA也會發送neighbor為RTB的RouterID的hello報文,當RTB收到時從init進入到2way狀態。
那么OSPF是怎么發現鄰居的呢,因為不知道對方的IP地址所以肯定不可以采用單播的形式,它使用的是組播的形式發送hello報文,目的地址發送的224.0.0.5,對於NBMA網絡,也就是不支持組播的網絡ospf需要手動指定鄰居的ip地址。