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