什么叫ospf鄰居?OSPF會在網(wǎng)絡(luò)上發(fā)送HELLO包,如果HELLO包里面有3個(gè)內(nèi)容匹配的話,就會建立鄰居關(guān)系,首先是 HELLO包的死亡和更新時(shí)間,區(qū)域ID號,還有一個(gè)認(rèn)證字段,可以這樣簡單理解,
在點(diǎn)到點(diǎn)網(wǎng)絡(luò)中,相鄰的路由器通過發(fā)送HELLO包建立鄰居,鄰居建立后,才能發(fā)送LSA,LSR LSU DBD等更新數(shù)據(jù)包
在多路訪問網(wǎng)絡(luò)中 會通過HELLO包建立DR和BDR,路由器只與DR和BDR建立鄰居關(guān)系,發(fā)送更新LSA,與其他路由器使維持發(fā)現(xiàn)的two-away狀態(tài)
應(yīng)該夠清楚了,就是鄰居就是發(fā)送更新的前提,如果沒有建立鄰居關(guān)系,是不能更新數(shù)據(jù)的,并且建立鄰居需要一定的條件
鄰居建立過程如下:
1、RTA和RTB的Router ID分別為1.1.1.1和2.2.2.2。當(dāng)RTA啟動OSPF后,RTA會發(fā)送第一個(gè)Hello報(bào)文。此報(bào)文中鄰居列表為空,此時(shí)狀態(tài)為Down,RTB收到RTA的這個(gè)Hello報(bào)文,狀態(tài)置為Init。
2、RTB發(fā)送Hello報(bào)文,此報(bào)文中鄰居列表為空,RTA收到RTB的Hello報(bào)文,狀態(tài)置為Init。
3、RTB向RTA發(fā)送鄰居列表為1.1.1.1的Hello報(bào)文,RTA在收到的Hello報(bào)文鄰居列表中發(fā)現(xiàn)自己的Router ID,狀態(tài)置為2-way。
4、RTA向RTB發(fā)送鄰居列表為2.2.2.2的Hello報(bào)文,RTB在收到的Hello報(bào)文鄰居列表中發(fā)現(xiàn)自己的Router ID,狀態(tài)置為2-way。
OSPF鄰居共有以下八種狀態(tài):
Down:鄰居會話的初始階段。表明沒有在鄰居失效時(shí)間間隔內(nèi)收到來自鄰居設(shè)備的Hello報(bào)文。除了NBMA網(wǎng)絡(luò)OSPF路由器會每隔PollInterval時(shí)間對外輪詢發(fā)送Hello報(bào)文,包括向處于Down狀態(tài)的鄰居路由器(即失效的鄰居路由器)發(fā)送之外,其他網(wǎng)絡(luò)是不會向失效的鄰居路由器發(fā)送Hello報(bào)文的。
Attempt:這種狀態(tài)適用于NBMA網(wǎng)絡(luò),鄰居路由器是手工配置的。鄰居關(guān)系處于本狀態(tài)時(shí),路由器會每隔HelloInterval時(shí)間向自己手工配置的鄰居發(fā)送Hello報(bào)文,嘗試建立鄰居關(guān)系。
Init:本狀態(tài)表示已經(jīng)收到了鄰居的Hello報(bào)文,但是對端并沒有收到本端發(fā)送的Hello報(bào)文,收到的Hello報(bào)文的鄰居列表并沒有包含本端的Router ID,雙向通信仍然沒有建立。
2-Way:互為鄰居。本狀態(tài)表示雙方互相收到了對端發(fā)送的Hello報(bào)文,報(bào)文中的鄰居列表也包含本端的Router ID,鄰居關(guān)系建立。如果不形成鄰接關(guān)系則鄰居狀態(tài)機(jī)就停留在此狀態(tài),否則進(jìn)入ExStart狀態(tài)。DR和BDR只有在鄰居狀態(tài)處于這個(gè)狀態(tài)或者更高的狀態(tài)才會被選舉出來。
ExStart:協(xié)商主從關(guān)系。建立主從關(guān)系主要是為了保證在后續(xù)的DD報(bào)文交換中能夠有序的發(fā)送。鄰居間從此時(shí)才開始正式建立鄰接關(guān)系。
Exchange:交換DD報(bào)文。本端設(shè)備將本地的LSDB用DD報(bào)文來描述,并發(fā)給鄰居設(shè)備。
Loading:正在同步LSDB。兩端設(shè)備發(fā)送LSR報(bào)文向鄰居請求對方的LSA,同步LSDB。
Full:建立鄰接。兩端設(shè)備的LSDB已同步,本端設(shè)備和鄰居設(shè)備建立了完全的鄰接關(guān)系。