BFD,Bidirectional Forwarding Detection,雙向轉(zhuǎn)發(fā)檢測,是一種快速故障檢測機(jī)制,主要用于加快檢測發(fā)現(xiàn)網(wǎng)絡(luò)中的故障,從而可以盡快解決故障,恢復(fù)網(wǎng)絡(luò)的正常業(yè)務(wù)轉(zhuǎn)發(fā)。
那么,第一個問題?為什么需要BFD,網(wǎng)絡(luò)中就沒有其它協(xié)議可以檢測故障的嗎?
答案是否定的,某些協(xié)議是可以通過Keepalive機(jī)制來檢測網(wǎng)絡(luò)中的連接是否還正常的,比如OSPF,它就可以通過周期性的發(fā)送Hello報文來發(fā)現(xiàn)鏈路中的故障從而自動切換鏈路,但提到這里,就不得不提OSPF發(fā)現(xiàn)故障的檢測時間,首先OSPF的周期性發(fā)送是每隔10S發(fā)送一次Hello報文,然后要等到4倍HelloTime,也就是40S,一直沒有收到鄰居路由器發(fā)送的Hello報文后,才會認(rèn)為網(wǎng)絡(luò)中發(fā)生了故障,再開始切換報文轉(zhuǎn)發(fā)路徑。所以,在這40S的時間里,本路由器發(fā)送的報文永遠(yuǎn)是無法到達(dá)鄰居路由器,也就無法通信。而這個40S的時間太長了,所以我們需要一個機(jī)制來更快的發(fā)現(xiàn)故障,這個機(jī)制就是BFD,所以,BFD的主要作用不是檢測故障,而是加快檢測。
BFD檢測的大概過程就是在兩個系統(tǒng)之間建立BFD會話通道,然后周期性發(fā)送BFD檢測報文,當(dāng)某方系統(tǒng)在規(guī)定時間內(nèi)沒有收到對方的檢測報文,就認(rèn)為鏈路故障了。和OSPF的Hello檢測機(jī)制比較類似,實質(zhì)上,BFD就是一個簡單的Hello協(xié)議,不過它檢測故障的用時更短而已。
那么接下來,我們就認(rèn)識一下BFD究竟是怎么工作的?
不過在這之前,我們有一點不得不提及了,因為BFD是一個與協(xié)議無關(guān)的檢測機(jī)制,所以它是不能獨立運(yùn)行的,一般是作為輔助與其它路由協(xié)議聯(lián)動使用,比如靜態(tài)路由、OSPF、ISIS、BGP等,本章中主要講述靜態(tài)路由和OSPF。
前面提過BFD是需要建立BFD會話通道的,那么BFD建立會話主要有兩種方式:
一是靜態(tài)建立BFD會話,靜態(tài)建立就是由管理員手工配置本地標(biāo)識符和遠(yuǎn)端標(biāo)識符來建立BFD會話,適用于沒有Hello機(jī)制的協(xié)議當(dāng)中,比如靜態(tài)路由。
本地標(biāo)識符和遠(yuǎn)端標(biāo)識符就是系統(tǒng)間用來建立和區(qū)分不同的BFD會話的。本地標(biāo)識符是標(biāo)識本地路由器上某個會話的,而遠(yuǎn)端標(biāo)識符是標(biāo)識遠(yuǎn)端路由器的某個會話的,路由器之間只有在發(fā)現(xiàn)本地標(biāo)識符和遠(yuǎn)端標(biāo)識符匹配無誤之后,才可以建立起B(yǎng)FD會話。