OSPF的時間間隔不匹配建立不起鄰接關係,為什麼EIGRP的時間間隔不匹配卻能建立鄰接關係?


無論是OSPF還是EIGRP,其Hello主要有兩個功能:

Discovery

Keepalive

Discovery

用於發現鄰居,大家在相同的組播地址里發言,既是組播的發送者,又是組播的接受者,所以能接收到鄰居的hello報文。

OSPF:224.0.0.5/6

EIGRP:224.0.0.10

Keepalive

在鄰居成功建立之後,hello報文用於保活,用於告訴自己的鄰居自己還活著,鄰居接收到,會刷新Dead Timer 為40秒(OSPF默認)。

鄰居如何建立?

OSPF Peer 交換各自的建立鄰居的參數:

IP

Mask

Area Type

Network Type

Authentication

MD5 Hash/Key

Hello Time

以上任何參數雙方不一致,鄰居關係都無法成功建立,嚴格匹配,所以如果雙方的hello 不一致,會報錯。

EIGRP與OSPF很類似,只是Hello那個參數換成了Hold Time,只有hold是一致的,就可以建立。

無論是hello還是hold timer,保持雙方一致,是為了使雙方對網路的認知處於同步狀態。

MTU

只要雙方直連介面MTU不一致,鄰居關係就無法建立,大家可以做一個實驗試試。


此答案為題主自問自答,如有錯誤請不吝指出。

無論是OSPF還是EIGRP,他們發送hello包的目的都是為了與鄰居建立起鄰接關係。(在乙太網鏈路下)OSPF規定每10s發送一次hello報文,EIGRP規定的是每5s發送一次。

OSPF只有hello interval和dead interval,而EIGRP卻有一個hold time。EIGRP就是靠這個hold time來實現即使hello間隔不同也可建立鄰接關係。

如果OSPF鄰居間的hello interval不匹配,運行OSPF的路由器就不能保證是否對端的鄰居到底是不是可用的,簡單來說,如果10s內沒收到hello報文,OSPF路由器就會認為鄰居不可用,可是如果對端的hello interval是15s的,可能還要5s後才發送hello報文,可是另一邊的OSPF路由器已經認定他不可用了。

現在來看EIGRP如何解決hello interval不匹配卻能成功建立鄰接關係的問題,EIGRP的hold time作用就是給hello報文加了個緩衝的時間,如果在hold time時間內一直沒收到hello報文,EIGRP才會採取其他的行動,不像OSPF數著自己的hello間隔。


ospf Dead:宣告鄰居路由器無效之前,鄰居路由器發送的最後一個hello包後需要等待的時間,默認值是hello值的4倍


推薦閱讀:

能用二進位做那些有趣或有用的事?
網線中傳輸的是電流還是還是電磁波呢?
HTTP 頭裡的 user-agent 可以隨便填嗎?
Trill、SPB與堆疊+埠聚合哪種方案更適合數據中心橫向流量呢?

TAG:計算機網路 | CCNA | 網路工程 |