一種bfd檢測裝置和方法
【專利摘要】本發(fā)明提供一種BFD檢測裝置和方法,應(yīng)用在網(wǎng)絡(luò)設(shè)備上。所述方法包括:與鄰居設(shè)備建立BFD會話;為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文;通過所述BFD會話所在BFD鏈路的接口發(fā)送第一組播BFD心跳報文,所述第一組播BFD心跳報文的目的地址是所述組播地址;接收鄰居設(shè)備發(fā)送的第二組播BFD心跳報文,如果在預(yù)設(shè)的檢測時間內(nèi)沒有接收到所述第二組播BFD心跳報文,則確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在的BFD鏈路故障。通過本發(fā)明的技術(shù)方案大大降低了設(shè)備CPU以及網(wǎng)絡(luò)帶寬的消耗。
【專利說明】一種BFD檢測裝置和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種BFD檢測裝置和方法。
【背景技術(shù)】
[0002]BFD (Bidirectional Forwarding Detection,雙向轉(zhuǎn)發(fā)檢測機制)是一個通用的、標(biāo)準(zhǔn)化的、介質(zhì)無關(guān)和協(xié)議無關(guān)的快速故障檢測機制,用于檢測網(wǎng)絡(luò)中鏈路的連通狀況,保證設(shè)備之間能夠快速檢測到通信故障,以便能夠及時采取措施,保證業(yè)務(wù)持續(xù)運行。
[0003]BFD可以為各種上層協(xié)議(比如:路由協(xié)議等)快速檢測兩臺設(shè)備間雙向轉(zhuǎn)發(fā)路徑的故障。上層協(xié)議通常采用Hello報文機制檢測故障,所需時間為秒級,而BFD可以提供毫秒級檢測,從而能夠加快網(wǎng)絡(luò)收斂速度,減少應(yīng)用中斷時間,提高網(wǎng)絡(luò)的可靠性。
[0004]BFD本身沒有發(fā)現(xiàn)機制,而是依靠被服務(wù)的上層協(xié)議通知來建立會話。上層協(xié)議通過自己的Hello機制發(fā)現(xiàn)鄰居并建立連接,然后將鄰居信息(比如:目的地址和源地址等)通告給BFD,BFD根據(jù)收到的鄰居信息通過交互BFD控制報文來建立BFD會話。在BFD會話建立后,兩端設(shè)備周期性地發(fā)送BFD心跳報文給鄰居設(shè)備,如果在預(yù)設(shè)的檢測時間內(nèi)沒有接收到鄰居發(fā)送的BFD心跳報文,則認(rèn)為是BFD會話所在的鏈路故障,進而上報上層協(xié)議,以便上層協(xié)議及時終止和鄰居設(shè)備的鄰居關(guān)系。
[0005]然而,在很多應(yīng)用場景中,上層協(xié)議需要關(guān)注組網(wǎng)中其他全部或者其他一組鄰居的鏈路狀態(tài)。以組網(wǎng)中存在N臺設(shè)備為例,每一臺設(shè)備的鄰居數(shù)為N-1,那么每一臺設(shè)備建立的BFD會話數(shù)量也是N-1,整個網(wǎng)絡(luò)BFD會話的總數(shù)就是N*(N_1)。隨著設(shè)備的增加,BFD會話的數(shù)量會迅速的非線性增加,極大地消耗設(shè)備CPU以及網(wǎng)絡(luò)帶寬。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明提供一種BFD檢測裝置和方法,可以減少設(shè)備CPU以及網(wǎng)絡(luò)帶寬的消耗。
[0007]具體地,本發(fā)明是通過如下技術(shù)方案實現(xiàn)的:
[0008]一種BFD檢測裝置,應(yīng)用在網(wǎng)絡(luò)設(shè)備上,所述裝置包括:
[0009]會話建立單元,用于與鄰居設(shè)備建立BFD會話;
[0010]分組管理單元,用于為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文;
[0011]報文發(fā)送單元,用于通過所述BFD會話所在BFD鏈路的接口發(fā)送第一組播BFD心跳報文,所述第一組播BFD心跳報文的目的地址是所述組播地址;
[0012]故障檢測單元,用于接收鄰居設(shè)備發(fā)送的第二組播BFD心跳報文,如果在預(yù)設(shè)的檢測時間內(nèi)沒有接收到所述第二組播BFD心跳報文,則確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在的BFD鏈路故障。
[0013]進一步地,所述會話建立單元使用單播BFD控制報文與鄰居設(shè)備建立BFD會話;
[0014]所述分組管理單元,進一步用于在所述BFD會話建立完成后,為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文。
[0015]進一步地,所述分組管理單元,進一步用于在確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在BFD鏈路故障時,在故障的BFD鏈路上退出所述組播組。
[0016]進一步地,所述第一 BFD心跳報文的Your Discriminator字段為所述組播組對應(yīng)的唯一標(biāo)識。
[0017]進一步地,所述會話建立單元與鄰居設(shè)備建立BFD會話的過程包括:在所述分組管理單元為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文后,使用組播BFD控制報文和鄰居設(shè)備建立BFD會話。
[0018]進一步地,所述會話建立單元發(fā)送的組播BFD控制報文和鄰居建立BFD會話的過程包括:在接收到鄰居設(shè)備發(fā)送的組播BFD控制報文后,判斷所述接收到的組播BFD控制報文中是否攜帶有本機的IP地址,如果是,則確認(rèn)鄰居設(shè)備已經(jīng)接收到本機發(fā)送的組播BFD控制報文,并將所述鄰居設(shè)備的IP地址添加到本機發(fā)送的組播BFD控制報文中。
[0019]一種BFD檢測方法,應(yīng)用在網(wǎng)絡(luò)設(shè)備上,所述方法包括:
[0020]與鄰居設(shè)備建立BFD會話;
[0021]為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文;
[0022]通過所述BFD會話所在BFD鏈路的接口發(fā)送第一組播BFD心跳報文,所述第一組播BFD心跳報文的目的地址是所述組播地址;
[0023]接收鄰居設(shè)備發(fā)送的第二組播BFD心跳報文,如果在預(yù)設(shè)的檢測時間內(nèi)沒有接收到所述第二組播BFD心跳報文,則確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在的BFD鏈路故障。
[0024]進一步地,所述與鄰居設(shè)備建立BFD會話的過程包括:使用單播BFD控制報文與鄰居設(shè)備建立BFD會話;
[0025]在所述BFD會話建立完成后,為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文。
[0026]進一步地,所述方法還包括:
[0027]在確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在BFD鏈路故障時,在故障的BFD鏈路上退出所述組播組。
[0028]進一步地,所述第一 BFD心跳報文的Your Discriminator字段為所述組播組對應(yīng)的唯一標(biāo)識。
[0029]進一步地,所述與鄰居設(shè)備建立BFD會話的過程包括:在為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文后,使用組播BFD控制報文和鄰居設(shè)備建立BFD會話。
[0030]進一步地,所述發(fā)送的組播BFD控制報文和鄰居建立BFD會話的過程包括:在接收到鄰居設(shè)備發(fā)送的組播BFD控制報文后,判斷所述接收到的組播BFD控制報文中是否攜帶有本機的IP地址,如果是,則確認(rèn)鄰居設(shè)備已經(jīng)接收到本機發(fā)送的組播BFD控制報文,并將所述鄰居設(shè)備的IP地址添加到本機發(fā)送的組播BFD控制報文中。
[0031]由以上描述可以看出,本發(fā)明設(shè)計通過發(fā)送組播BFD心跳報文來實現(xiàn)BFD對鏈路故障的檢測,大大減少了組網(wǎng)中單播BFD心跳報文的數(shù)量,進而降低設(shè)備CPU以及網(wǎng)絡(luò)帶寬 的消耗。
【專利附圖】
【附圖說明】
[0032]圖1是本發(fā)明一種實施方式中BFD檢測裝置的邏輯結(jié)構(gòu)示意圖;
[0033]圖2是本發(fā)明一種實施方式中BFD檢測方法的流程示意圖;
[0034]圖3是BFD會話建立過程示意圖;
[0035]圖4是BFD心跳報文格式圖;
[0036]圖5是本發(fā)明一種實施方式中退出組播組的示意圖;
[0037]圖6是本發(fā)明另一種實施方式中BFD檢測方法的流程示意圖;
[0038]圖7是本發(fā)明一種實施方式中擴展的組播BFD控制報文格式圖。
【具體實施方式】
[0039]針對目前組網(wǎng)中BFD會話數(shù)量多,消耗設(shè)備CPU和網(wǎng)絡(luò)帶寬巨大的問題。本發(fā)明設(shè)計使用組播BFD心跳報文來代替單播BFD心跳報文,以此來減少組網(wǎng)中BFD心跳報文的數(shù)量,進而減少設(shè)備CPU和網(wǎng)絡(luò)帶寬的消耗。
[0040]下面以軟件實現(xiàn)為例,詳細描述本發(fā)明具體實現(xiàn)。本發(fā)明提供的BFD檢測裝置,運行在網(wǎng)絡(luò)設(shè)備上,所述網(wǎng)絡(luò)設(shè)備包括但不限于交換機、路由器。作為本發(fā)明裝置的運行載體,所述網(wǎng)絡(luò)設(shè)備通常至少包括有:CPU、內(nèi)存以及非易失性存儲器,當(dāng)然還可能包括有各種轉(zhuǎn)發(fā)芯片和I/o接口等硬件。請參考圖1,所述裝置包括有:會話建立單元、分組管理單元、報文發(fā)送單元以及故障檢測單元。在一個示例性的實施方案中,該裝置在運行過程中執(zhí)行如下處理步驟:
[0041]步驟101,會話建立單元與鄰居設(shè)備建立BFD會話。
[0042]步驟102,分組管理單元為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文。
[0043]步驟103,報文發(fā)送單元通過所述BFD會話所在BFD鏈路的接口發(fā)送第一組播BFD心跳報文,所述第一組播BFD心跳報文的目的地址是所述組播地址。
[0044]步驟104,故障檢測單元接收鄰居設(shè)備發(fā)送的第二組播BFD心跳報文,如果在預(yù)設(shè)的檢測時間內(nèi)沒有接收到所述第二組播BFD心跳報文,則確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在的BFD鏈路故障。
[0045]由【背景技術(shù)】可知,通過BFD心跳報文來檢測BFD鏈路故障的前提是建立BFD會話。而要發(fā)送并接收組播BFD心跳報文的前提是加入組播組。需要說明的是,本發(fā)明并不限制上述步驟101和步驟102的先后次序,只要這兩個步驟完成之后,所述報文發(fā)送單元就可以通過BFD會話所在的鏈路的接口發(fā)送第一組播BFD心跳報文,并由故障檢測單元負(fù)責(zé)接收其他設(shè)備發(fā)送的第二組播BFD心跳報文、進行BFD鏈路故障檢測。
[0046]下面結(jié)合具體實施例進行說明:
[0047]請參考圖2,本實施例提供的BFD檢測方法包括如下步驟:
[0048]步驟201,會話建立單元使用單播BFD控制報文與鄰居設(shè)備建立BFD會話。
[0049]步驟202,分組管理單元在所述BFD會話建立完成后,為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文。[0050]步驟203,報文發(fā)送單元通過所述BFD會話所在鏈路接口發(fā)送第一組播BFD心跳報文,所述第一組播BFD心跳報文的目的地址是所述組播地址。
[0051]步驟204,故障檢測單元接收鄰居設(shè)備發(fā)送的第二組播BFD心跳報文,如果在預(yù)設(shè)的檢測時間內(nèi)沒有接收到所述第二組播BFD心跳報文,則確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在的BFD鏈路故障。
[0052]由上述步驟可以看出,在本實施例提供的BFD檢測方案中,先使用現(xiàn)有的單播BFD控制報文建立BFD會話,在BFD會話成功建立后,將本機加入組播組,然后開始發(fā)送并接收組播BFD心跳報文。
[0053]具體地,請參考圖3,目前使用單播BFD控制報文建立會話的過程。BFD使用三路握手的機制來建立會話,發(fā)送方在發(fā)送BFD控制報文時會在Sta字段填入本地當(dāng)前的會話狀態(tài),接收方根據(jù)收到的BFD控制報文的Sta字段以及本地當(dāng)前會話狀態(tài)來進行狀態(tài)機的遷移,建立會話。主要包括以下流程:
[0054]I)路由器A和路由器B的BFD接收到上層協(xié)議的通知后,相互發(fā)送狀態(tài)為Down的單播BFD控制報文。
[0055]2)路由器B接收到路由器A發(fā)送的狀態(tài)為Down的單播BFD控制報文之后,將本地會話狀態(tài)由Down遷移到Init,隨后發(fā)送狀態(tài)為Init的單播BFD控制報文給路由器A,路由器A的BFD狀態(tài)變化和路由器B相同。
[0056]3)路由器A接收到路由器B發(fā)送的狀態(tài)為Init的單播BFD控制報文之后,將本地會話狀態(tài)由Init遷移到Up,隨后發(fā)送狀態(tài)為Up的單播BFD控制報文給路由器B,路由器B的BFD狀態(tài)變化和路由器A相同。
[0057]4)路由器A和路由器B的狀態(tài)都為Up時,BFD會話成功建立,雙方可以開始發(fā)送BFD心跳報文進行鏈路狀態(tài)的檢測。
[0058]分組管理單元在BFD會話建立完成后,為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文。具體地,為實現(xiàn)本發(fā)明目的,通常需要網(wǎng)絡(luò)管理人員事先為組網(wǎng)內(nèi)的網(wǎng)絡(luò)設(shè)備劃分分組,并為每一個分組分配一個對應(yīng)的組播組,所述分組的劃分方案可以依據(jù)實際的組網(wǎng)情況以及業(yè)務(wù)需求進行劃分。比如,如果需要關(guān)注全部鄰居的狀態(tài),則可以將所有網(wǎng)絡(luò)設(shè)備劃分到一個分組中。如果需要關(guān)注一部分鄰居的狀態(tài),則可以將這一部分網(wǎng)絡(luò)設(shè)備劃分到一個分組中。在實際操作中,可以在連接各個鄰居設(shè)備的組網(wǎng)中,啟動標(biāo)準(zhǔn)組播路由協(xié)議,比如:雙向PIM (Protocol IndependentMulticast,協(xié)議無關(guān)組播)協(xié)議,使得組播BFD心跳報文在網(wǎng)絡(luò)中通過組播轉(zhuǎn)發(fā)樹傳輸。然后將分配在同一個組播組內(nèi)的鄰居設(shè)備的IP地址保存在本機上,當(dāng)本機和一個鄰居設(shè)備建立BFD會話之后,根據(jù)所述鄰居設(shè)備的IP地址,查看本機和所述鄰居設(shè)備所屬的組播組,并為本機分配對應(yīng)的組播組地址,發(fā)送組播組加入請求,請求加入該組播組,以供后續(xù)組播BFD心跳報文的發(fā)送。
[0059]所述報文發(fā)送單元通過所述BFD會話所在鏈路接口發(fā)送第一組播BFD心跳報文,所述第一組播BFD心跳報文的目的地址是所述組播組的組播地址。這樣,所述報文發(fā)送單元只需要發(fā)送一個組播BFD心跳報文就可以到達組播組內(nèi)的所有網(wǎng)絡(luò)設(shè)備,大大減少了組網(wǎng)內(nèi)BFD心跳報文的數(shù)量。具體地,請參考圖4所示的BFD心跳報文格式。其中,單播BFD心跳報文中的My Discriminator字段是發(fā)送設(shè)備的唯一標(biāo)識,Your Discriminator字段是接收設(shè)備收到的鑒別值“My Discriminator”,如果沒有收到這個值就返回O。為了區(qū)別單播,本發(fā)明所述報文發(fā)送單元發(fā)送的組播BFD心跳報文中的My Discriminator字段不變,仍然是發(fā)送設(shè)備的唯一標(biāo)識,Your Discriminator字段填成預(yù)設(shè)的所述組播組對應(yīng)的唯一標(biāo)識Group Discriminator,也就是在同一個組播組中,各個網(wǎng)絡(luò)設(shè)備發(fā)送的組播BFD心跳報文的Your Discriminator字段都相同,網(wǎng)絡(luò)設(shè)備可以根據(jù)其接收到的組播BFD心跳報文中的Group Discriminator字段來識別這是來自于哪一個組播組的組播BFD心跳報文。具體地,可以使用Your Discriminator字段中預(yù)設(shè)的比特位來攜帶Group Discriminator,比如:高位24位。
[0060]所述故障檢測單元接收鄰居設(shè)備發(fā)送的第二組播BFD心跳報文,如果在預(yù)設(shè)的檢測時間內(nèi)沒有接收到所述第二組播BFD心跳報文,則確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在的BFD鏈路故障。具體地,所述故障檢測單元接收到第一組播BFD心跳報文后,根據(jù)報文中My Discriminator字段攜帶的發(fā)送設(shè)備唯一標(biāo)識來確認(rèn)是哪個鄰居設(shè)備發(fā)出的所述第二組播BFD心跳報文,并保持與該鄰居設(shè)備的BFD會話狀態(tài)Up。如果在預(yù)設(shè)的檢測時間內(nèi)沒有接收到某一個鄰居設(shè)備發(fā)送的第二組播BFD心跳報文,則確認(rèn)與該鄰居設(shè)備之間的鏈路故障,將本機與該鄰居設(shè)備之間的BFD會話遷移到Down的狀態(tài)。同時所述分組管理單元在故障的BFD鏈路上退出所述組播組。具體地,請參考圖5,假設(shè)路由器A、路由器B、路由器C和路由器D在同一個組播組內(nèi),路由器A分別通過鏈路1、鏈路2以及鏈路3和路由器B、C和D相連。在正常情況下,路由器A分別通過鏈路1、2和3發(fā)送組播BFD心跳報文給路由器B、C和D。如果經(jīng)判斷鏈路I故障,那么路由器A從鏈路I上退出該組播組,鏈路2和鏈路3上的組播組不變,也就是路由器A仍然會通過鏈路2和鏈路3向路由器C和路由器D發(fā)送組播BFD心跳報文。需要說明的是,如果一條鏈路上連接有多個鄰居設(shè)備,那么只有當(dāng)接收不到所有鄰居設(shè)備發(fā)送的第二組播BFD心跳報文后,也就是說本機和所有鄰居設(shè)備的BFD會話Down之后,才會從這條鏈路上退出組播組。
[0061]在本發(fā)明另一實施例中,請參考圖6,本實施例提供的BFD檢測方法包括如下步驟:
[0062]步驟601,分組管理單元為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文。
[0063]步驟602,會話建立單元使用組播BFD控制報文和鄰居設(shè)備建立BFD會話。
[0064]步驟603,報文發(fā)送單元通過所述BFD會話所在鏈路接口發(fā)送第一組播BFD心跳報文,所述第一組播BFD心跳報文的目的地址是所述組播地址。
[0065]步驟604,故障檢測單元接收鄰居設(shè)備發(fā)送的第二組播BFD心跳報文,如果在預(yù)設(shè)的檢測時間內(nèi)沒有接收到所述第二組播BFD心跳報文,則確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在的BFD鏈路故障。
[0066]由上述步驟可以看出,在本實施例提供的BFD檢測方案中,先將本機加入組播組,然后使用組播BFD控制報文和鄰居設(shè)備建立BFD會話。這樣,在BFD會話建立完成后,就可以直接使用組播BFD心跳報文來進行鏈路檢測。
[0067]具體地,本實施例中組播組的劃分方案可以參考前述實施例,在此不再贅述。所述分組管理單元在上層通告創(chuàng)建BFD會話時,就會根據(jù)本機和鄰居設(shè)備所在的分組為本機分配對應(yīng)的組播組,以及所述組播組對應(yīng)的組播地址、組播組標(biāo)識Group Discriminator,并發(fā)送組播加入請求報文。
[0068]所述會話建立單元使用組播BFD控制報文和本組內(nèi)的其他鄰居設(shè)備建立BFD會話。所述組播BFD控制報文的My Discriminator字段仍然為本設(shè)備的唯一標(biāo)識,YourDiscriminator字段填成Group Discriminator。目前使用的單播BFD控制報文建立BFD會話的過程中,通過接收到的單播BFD控制報文中的Your Discriminator字段來判斷鄰居設(shè)備是否已經(jīng)收到了本機之前發(fā)送的單播BFD控制報文。具體地,Your Discriminator字段中攜帶的如果是本機的My Discriminator,則說明鄰居設(shè)備接收到了本機之前發(fā)送的單播BFD控制報文,Your Discriminator字段中攜帶的如果是O,則說明鄰居設(shè)備沒有接收到本機之前發(fā)送的單播BFD控制報文。而在組播BFD控制報文中,Your Discriminator字段被統(tǒng)一填成Group Discriminator,所以將無法判斷鄰居設(shè)備是否已經(jīng)接收到本機之前發(fā)送的組播BFD控制報文。
[0069]為解決這一問題,本發(fā)明設(shè)計擴展BFD控制報文中認(rèn)證類型Auth Type字段,用于攜帶BFD會話建立過程中鄰居設(shè)備的IP地址,用以標(biāo)識本機是否接收到了鄰居設(shè)備發(fā)送的組播BFD控制報文。具體地,請參考圖7,以預(yù)留Auth Type字段為255為例,其中各個字段的含義為:
[0070]Len:選項總長度;
[0071]Number:攜帶IP地址個數(shù);
[0072]IP Version:1P 地址類型,其中,I 表示 IPv4,2 表示 IPv6。
[0073]請進一步參考圖3所示的BFD會話建立過程,在使用組播BFD控制報文時,路由器A和路由器B建立BFD會話的過程如下:
[0074]I)路由器A和路由器B的BFD接收到上層協(xié)議的通知后,相互發(fā)送狀態(tài)為Down的組播BFD控制報文。由于此時路由器A和路由器B都還沒有接收到鄰居發(fā)送的組播BFD控制報文,所以,在狀態(tài)為Down的組播BFD控制報文中,擴展字段攜帶的IP地址為空。
[0075]2)路由器B接收到路由器A發(fā)送的狀態(tài)為Down的組播BFD控制報文之后,將本地會話狀態(tài)由Down遷移到Init,隨后發(fā)送狀態(tài)為Init的組播BFD控制報文給路由器A,所述狀態(tài)為Init的組播BFD控制報文中的擴展字段攜帶有路由器A的IP地址。路由器A的BFD狀態(tài)變化和路由器B相同,路由器A發(fā)送的狀態(tài)為Init的組播BFD控制報文中的擴展字段攜帶有路由器B的IP地址。
[0076]3)路由器A接收到路由器B發(fā)送的狀態(tài)為Init的組播BFD控制報文之后,從擴展字段中獲取到本機的IP地址,說明路由器B之前已經(jīng)接收到了本機發(fā)送的狀態(tài)為Down的組播BFD控制報文,所以將本地會話狀態(tài)由Init遷移到Up,隨后發(fā)送狀態(tài)為Up的組播BFD控制報文給路由器B,所述狀態(tài)為Up的組播BFD控制報文中的擴展字段攜帶有路由器B的IP地址。路由器B的BFD狀態(tài)變化和路由器A相同,路由器B發(fā)送的狀態(tài)為Up的組播BFD控制報文中的擴展字段攜帶有路由器A的IP地址。
[0077]4)路由器A和路由器B的狀態(tài)都為Up時,BFD會話成功建立,雙方可以開始發(fā)送組播BFD心跳報文進行鏈路狀態(tài)的檢測。
[0078]在BFD會話建立完成后,所述報文發(fā)送單元開始發(fā)送第一組播BFD心跳報文,所述故障檢測單元開始接收第二組播BFD心跳報文,并進行鏈路故障檢測。其具體過程可以參考前述實施例,在此不再贅述。[0079]由以上描述可以看出,本發(fā)明設(shè)計通過發(fā)送組播BFD心跳報文來實現(xiàn)BFD對鏈路故障的檢測,大大減少了組網(wǎng)中單播BFD心跳報文的數(shù)量,進而降低設(shè)備CPU以及網(wǎng)絡(luò)帶寬的消耗。
[0080]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
【權(quán)利要求】
1.一種BFD檢測裝置,應(yīng)用在網(wǎng)絡(luò)設(shè)備上,其特征在于,所述裝置包括: 會話建立單元,用于與鄰居設(shè)備建立BFD會話; 分組管理單元,用于為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文; 報文發(fā)送單元,用于通過所述BFD會話所在BFD鏈路的接口發(fā)送第一組播BFD心跳報文,所述第一組播BFD心跳報文的目的地址是所述組播地址; 故障檢測單元,用于接收鄰居設(shè)備發(fā)送的第二組播BFD心跳報文,如果在預(yù)設(shè)的檢測時間內(nèi)沒有接收到所述第二組播BFD心跳報文,則確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在的BFD鏈路故障。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于, 所述會話建立單元使用單播BFD控制報文與鄰居設(shè)備建立BFD會話; 所述分組管理單元,進一步用于在所述BFD會話建立完成后,為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文。
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于, 所述分組管理單元,進一步用于在確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在BFD鏈路故障時,在故障的BFD鏈路上退出所述組播組。
4.根據(jù)權(quán)利要求1所述的裝置,其特征在于, 所述第一 BFD心跳報文的Your Discriminator字段為所述組播組對應(yīng)的唯一標(biāo)識。
5.根據(jù)權(quán)利要求1至4任一項所述的裝置,其特征在于, 所述會話建立單元與鄰居設(shè)備建立BFD會話的過程包括:在所述分組管理單元為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文后,使用組播BFD控制報文和鄰居設(shè)備建立BFD會話。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于, 所述會話建立單元發(fā)送的組播BFD控制報文和鄰居建立BFD會話的過程包括:在接收到鄰居設(shè)備發(fā)送的組播BFD控制報文后,判斷所述接收到的組播BFD控制報文中是否攜帶有本機的IP地址,如果是,則確認(rèn)鄰居設(shè)備已經(jīng)接收到本機發(fā)送的組播BFD控制報文,并將所述鄰居設(shè)備的IP地址添加到本機發(fā)送的組播BFD控制報文中。
7.—種BFD檢測方法,應(yīng)用在網(wǎng)絡(luò)設(shè)備上,其特征在于,所述方法包括: 與鄰居設(shè)備建立BFD會話; 為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文; 通過所述BFD會話所在BFD鏈路的接口發(fā)送第一組播BFD心跳報文,所述第一組播BFD心跳報文的目的地址是所述組播地址; 接收鄰居設(shè)備發(fā)送的第二組播BFD心跳報文,如果在預(yù)設(shè)的檢測時間內(nèi)沒有接收到所述第二組播BFD心跳報文,則確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在的BFD鏈路故障。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于, 所述與鄰居設(shè)備建立BFD會話的過程包括:使用單播BFD控制報文與鄰居設(shè)備建立BFD會話;在所述BFD會話建立完成后,為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述方法還包括: 在確認(rèn)所述第二組播BFD心跳報文所屬的BFD會話所在BFD鏈路故障時,在故障的BFD鏈路上退出所述組播組。
10.根據(jù)權(quán)利要求7所述的方法,其特征在于, 所述第一 BFD心跳報文的Your Discriminator字段為所述組播組對應(yīng)的唯一標(biāo)識。
11.根據(jù)權(quán)利要求7至10任一項所述的方法,其特征在于, 所述與鄰居設(shè)備建立BFD會話的過程包括:在為本機分配本機和鄰居設(shè)備所在的分組對應(yīng)的組播組的組播地址,并發(fā)送組播加入請求報文后,使用組播BFD控制報文和鄰居設(shè)備建立BFD會話。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于, 所述發(fā)送的組播BFD控制報文和鄰居建立BFD會話的過程包括:在接收到鄰居設(shè)備發(fā)送的組播BFD控制報文后,判斷所述接收到的組播BFD控制報文中是否攜帶有本機的IP地址,如果是,則確認(rèn)鄰居設(shè)備已經(jīng)接收到本機發(fā)送的組播BFD控制報文,并將所述鄰居設(shè)備的IP地址添加到本機發(fā)送 的組播BFD控制報文中。
【文檔編號】H04L29/06GK103916275SQ201410127380
【公開日】2014年7月9日 申請日期:2014年3月31日 優(yōu)先權(quán)日:2014年3月31日
【發(fā)明者】郝濱 申請人:杭州華三通信技術(shù)有限公司