本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種地址解析協(xié)議ARP表更新方法、板卡及分布式設(shè)備。
背景技術(shù):
分布式設(shè)備包括主控板卡和若干個(gè)業(yè)務(wù)板卡,各板卡上均需存儲(chǔ)ARP(Address Resolution Protocol,地址解析協(xié)議)表,并且,各板卡上存儲(chǔ)的ARP表應(yīng)當(dāng)是一致的。一般而言,當(dāng)任一業(yè)務(wù)板卡學(xué)習(xí)到新的表項(xiàng)后,其會(huì)將該表項(xiàng)發(fā)送至主控板卡,以便于主控板卡根據(jù)接收到的該表項(xiàng)對(duì)自身的ARP表進(jìn)行更新,并將該表項(xiàng)發(fā)送至其余業(yè)務(wù)板卡。這樣,其余業(yè)務(wù)板卡也能根據(jù)接收到的、來自主控板卡的該表項(xiàng),對(duì)各自的ARP表進(jìn)行更新,最終,各板卡上的ARP表能夠達(dá)到一致,報(bào)文在各板卡間轉(zhuǎn)發(fā)的正確性能夠得到保證。
一旦任一業(yè)務(wù)板卡受到了報(bào)文攻擊,該業(yè)務(wù)板卡上會(huì)在短時(shí)間內(nèi)涌入大量報(bào)文,該業(yè)務(wù)板卡將會(huì)非常繁忙,并出現(xiàn)消息溢出等情況,這樣,該業(yè)務(wù)板卡無法將學(xué)習(xí)到的表項(xiàng)發(fā)送給主控板卡,或者,該業(yè)務(wù)板卡無法根據(jù)接收到的來自主控板卡的表項(xiàng)對(duì)自身的ARP表進(jìn)行更新,最終,各板卡上的ARP表無法保持一致。另外,如果該業(yè)務(wù)板卡將大量涌入的報(bào)文上送至了主控板卡處,這樣實(shí)際上將報(bào)文攻擊導(dǎo)向了主控板卡,進(jìn)而加重了主控板卡上的CPU(Central Processing Unit,中央處理器)的負(fù)擔(dān),相應(yīng)地,主控板卡和整個(gè)分布式設(shè)備的正常運(yùn)行都會(huì)受到影響。
一旦主控板卡受到了報(bào)文攻擊,那么,主控板卡會(huì)非常繁忙,并出現(xiàn)消息溢出等情況。這樣,即使主控板卡從任一業(yè)務(wù)板卡處接收到了表項(xiàng),主控板卡也無法根據(jù)該表項(xiàng)對(duì)自身的ARP表進(jìn)行更新或者將該表項(xiàng)同步給其余業(yè)務(wù)板卡,最終,各板卡上的ARP表無法保持一致??梢?,這種情況下,主控板卡和整個(gè)分布式設(shè)備的正常運(yùn)行也會(huì)受到影響。
因此,在分布式設(shè)備中的任一板卡受到報(bào)文攻擊的情況下,如何保證該分布式設(shè)備中的各板卡上的ARP表的一致性,并保證主控板卡和分布式設(shè)備的正常運(yùn)行對(duì)于本領(lǐng)域技術(shù)人員而言是一個(gè)亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種ARP表更新方法、板卡及分布式設(shè)備,以在分布式設(shè)備中的任一板卡受到報(bào)文攻擊的情況下,保證該分布式設(shè)備中的各板卡上的ARP表的一致性,并保證主控板卡和分布式設(shè)備的正常運(yùn)行。
本發(fā)明實(shí)施例提供了一種地址解析協(xié)議ARP表更新方法,應(yīng)用于分布式設(shè)備中的任一板卡,所述方法包括:
檢測(cè)本板卡是否處于ARP異常狀態(tài);
若為是,停止執(zhí)行第一類業(yè)務(wù)操作,其中,所述第一類業(yè)務(wù)操作包括:ARP同步信息處理操作、ARP同步信息發(fā)送操作及ARP老化探測(cè)操作;
在檢測(cè)到本板卡退出所述ARP異常狀態(tài)后,恢復(fù)執(zhí)行所述第一類業(yè)務(wù)操作;
在恢復(fù)執(zhí)行所述第一類業(yè)務(wù)操作后,執(zhí)行與本板卡的類型對(duì)應(yīng)的ARP表項(xiàng)同步操作。
本發(fā)明實(shí)施例還提供了一種板卡,應(yīng)用于分布式設(shè)備,所述板卡包括:
異常檢測(cè)模塊,用于檢測(cè)本板卡是否處于地址解析協(xié)議ARP異常狀態(tài);
異常處理模塊,用于在檢測(cè)到本板卡處于所述ARP異常狀態(tài)的情況下,停止執(zhí)行第一類業(yè)務(wù)操作;在檢測(cè)到本板卡退出所述ARP異常狀態(tài)后,恢復(fù)執(zhí)行所述第一類業(yè)務(wù)操作,并在恢復(fù)執(zhí)行所述第一類業(yè)務(wù)操作后,觸發(fā)同步模塊,其中,所述第一類業(yè)務(wù)操作包括:ARP同步信息處理操作、ARP同步信息發(fā)送操作及ARP老化探測(cè)操作;
同步模塊,用于執(zhí)行與本板卡的類型對(duì)應(yīng)的ARP表項(xiàng)同步操作。
本發(fā)明實(shí)施例還提供了一種分布式設(shè)備,包括上述板卡。
本方案中,在處于ARP異常狀態(tài)的情況下,本板卡僅會(huì)執(zhí)行維持分布式設(shè)備ARP正常運(yùn)行的基本操作,而不會(huì)執(zhí)行第一類業(yè)務(wù)操作,這樣可以減少本板卡上的CPU損耗,以使得本板卡盡快從ARP異常狀態(tài)退出。當(dāng)本板卡為業(yè)務(wù)板卡時(shí),由于本板卡停止執(zhí)行了第一類業(yè)務(wù)操作,因此,本板卡上的報(bào)文攻擊不會(huì)導(dǎo)向主控板,相應(yīng)地,主控板和整個(gè)分布式設(shè)備的正常工作將不會(huì)受到影響。另外,當(dāng)本板卡從ARP異常狀態(tài)退出并恢復(fù)執(zhí)行第一類業(yè)務(wù)操作后,本板卡會(huì)執(zhí)行相應(yīng)的ARP表項(xiàng)同步操作,以使得分布式設(shè)備中的各板卡上的ARP表均保持一致。
容易看出,在分布式設(shè)備中的任一板卡受到報(bào)文攻擊的情況下,本方案能夠保證該分布式設(shè)備中的各板卡上的ARP表的一致性,并保證主控板卡和分布式設(shè)備的正常運(yùn)行。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例所提供的一種ARP表更新方法的流程圖;
圖2為圖1中S101的具體流程圖;
圖3為本發(fā)明實(shí)施例所提供的一種分布式設(shè)備的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例所提供的一種板卡的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
為了解決現(xiàn)有技術(shù)存在的問題,本發(fā)明實(shí)施例提供了一種ARP表更新方法、板卡及分布式設(shè)備。
可以理解的是,ARP是將IP地址解析為以太網(wǎng)MAC地址的協(xié)議。分布式設(shè)備可以為路由器或者交換機(jī),當(dāng)然,分布式設(shè)備的類型并不局限于此,具體可以根據(jù)實(shí)際情況來確定,在此不再一一贅述。
下面首先對(duì)本發(fā)明實(shí)施例所提供的一種ARP表更新方法進(jìn)行說明。
需要說明的是,本發(fā)明實(shí)施例所提供的一種ARP表更新方法應(yīng)用于分布式設(shè)備中的任一板卡。具體地,該板卡的類型可以有兩種,分別是主控板卡和業(yè)務(wù)板卡。
參見圖1,圖中示出了本發(fā)明實(shí)施例所提供的一種ARP表更新方法的流程圖。如圖1所示,該方法可以包括如下步驟:
S101,檢測(cè)本板卡是否處于ARP異常狀態(tài);若為是,執(zhí)行S102。
需要說明的是,本板卡確定自身是否處于ARP異常狀態(tài)的具體實(shí)現(xiàn)形式多樣,下面進(jìn)行舉例介紹。
如圖2所示,在本發(fā)明實(shí)施例的一種具體實(shí)施方式中,S101,即檢測(cè)本板卡是否處于ARP異常狀態(tài),可以包括:
S1011,檢測(cè)本板卡未處理ARP消息隊(duì)列長度與預(yù)設(shè)的隊(duì)列長度門限的比值是否大于預(yù)設(shè)比例,本板卡的可用內(nèi)存是否小于預(yù)設(shè)的內(nèi)存門限,以及本板卡的中央處理器CPU使用率是否大于預(yù)設(shè)的使用率門限;
S1012,若上述三個(gè)判斷結(jié)果中的任意一個(gè)為是,確定本板卡處于ARP異常狀態(tài);
S1013,若上述三個(gè)判斷結(jié)果均為否,確定本板卡未處于ARP異常狀態(tài)。
其中,預(yù)設(shè)比值可以為3/4或者4/5,當(dāng)然,預(yù)設(shè)比值的取值并不局限于此,具體可以根據(jù)實(shí)際情況來確定,本實(shí)施例對(duì)此不做任何限定。
對(duì)于任一板卡而言,其內(nèi)部可以預(yù)先存儲(chǔ)有隊(duì)列長度門限、預(yù)設(shè)比值,內(nèi)存門限和使用率門限。這樣,本板卡可以周期性地將自身未處理ARP消息隊(duì)列長度與預(yù)存的隊(duì)列長度門限進(jìn)行比較,將本板卡的可用內(nèi)存與預(yù)存的內(nèi)存門限進(jìn)行比較,并將本板卡的CPU使用率與預(yù)存的使用率門限進(jìn)行比較。
可以理解的是,當(dāng)出現(xiàn)本板卡未處理消息隊(duì)列長度與預(yù)存的隊(duì)列長度門限的比值大于預(yù)設(shè)比值的情況時(shí),這有可能是本板卡受到ARP類型的報(bào)文攻擊導(dǎo)致涌入大量ARP消息而無法及時(shí)處理ARP消息造成的,此時(shí),本板卡就可以確定自身進(jìn)入了ARP異常狀態(tài)。
當(dāng)出現(xiàn)本板卡的可用內(nèi)存小于預(yù)存的內(nèi)存門限的情況時(shí),這有可能是本板卡受到非ARP類型的報(bào)文攻擊時(shí),內(nèi)存被大量涌入的報(bào)文占用造成的,此時(shí),本板卡也可以確定自身進(jìn)入了ARP異常狀態(tài)。
當(dāng)出現(xiàn)本板卡的CPU使用率大于預(yù)存的使用率門限時(shí),這有可能是本板卡在受到非ARP類型的報(bào)文攻擊時(shí),在處理大量涌入的非ARP類型的報(bào)文時(shí)造成了較大的CPU損耗造成的,此時(shí),本板卡可能無法及時(shí)處理ARP消息,因此,本板卡也可以確定自身進(jìn)入了ARP異常狀態(tài)。
當(dāng)本板卡確定出自身進(jìn)入了ARP異常狀態(tài)后,本板卡就會(huì)執(zhí)行后續(xù)的S102。
相反,如果經(jīng)過比較,本板卡發(fā)現(xiàn)自身未處理ARP消息隊(duì)列長度與隊(duì)列長度門限的比值小于等于預(yù)設(shè)比值,本板卡的可用內(nèi)存大于等于內(nèi)存門限,并且,本板卡的CPU使用率小于等于使用率門限的情況下,那么,本板卡就可以確定自身當(dāng)前并未處于ARP異常狀態(tài),這時(shí),本板卡無需執(zhí)行后續(xù)步驟。
S102,停止執(zhí)行第一類業(yè)務(wù)操作,其中,第一類業(yè)務(wù)操作包括:ARP同步信息處理操作、ARP同步信息發(fā)送操作及ARP老化探測(cè)操作。
S103,在檢測(cè)到本板卡退出ARP異常狀態(tài)后,恢復(fù)執(zhí)行第一類業(yè)務(wù)操作。
其中,ARP同步信息處理操作是指:如果本板卡是業(yè)務(wù)板卡,對(duì)于接收到的來自主控板卡的ARP表項(xiàng),根據(jù)接收到的表項(xiàng),對(duì)自身的ARP表進(jìn)行更新;如果本業(yè)務(wù)板是主控板卡,對(duì)于接收到的來自任一業(yè)務(wù)板卡的ARP表項(xiàng),根據(jù)接收到的表項(xiàng),對(duì)自身的ARP表進(jìn)行更新,并且,將接收到的表項(xiàng)發(fā)送至其余業(yè)務(wù)板卡,以使得其余業(yè)務(wù)板卡根據(jù)接收到的表項(xiàng)對(duì)各自的ARP表進(jìn)行更新。
ARP同步信息發(fā)送操作是指:如果本板卡是業(yè)務(wù)板卡,當(dāng)學(xué)習(xí)到新的ARP表項(xiàng)時(shí),將該ARP表項(xiàng)發(fā)送至主控板;如果本板卡是主控板卡,當(dāng)學(xué)習(xí)到新的ARP表項(xiàng)時(shí),將該ARP表項(xiàng)發(fā)送至各業(yè)務(wù)板卡。
ARP表項(xiàng)老化探測(cè)操作是指:本板卡廣播ARP老化探測(cè)報(bào)文,以確定自身的ARP表中的MAC地址和IP地址的對(duì)應(yīng)關(guān)系是否正確,并根據(jù)探測(cè)結(jié)果對(duì)自身的ARP表進(jìn)行相應(yīng)處理。
需要指出的是,在檢測(cè)到自身處于ARP異常狀態(tài)的情況下,在停止執(zhí)行第一類業(yè)務(wù)操作的同時(shí),本板卡會(huì)繼續(xù)執(zhí)行維持分布式設(shè)備ARP正常運(yùn)行的基本操作。
具體地,維持分布式設(shè)備ARP正常運(yùn)行的基本操作可以包括:ARP表項(xiàng)學(xué)習(xí)操作、ARP請(qǐng)求報(bào)文響應(yīng)操作及異常響應(yīng)操作;
其中,ARP表項(xiàng)學(xué)習(xí)操作是指:當(dāng)本板卡接收到攜帶有源IP地址、源MAC地址和目的IP地址為自身的IP地址的ARP請(qǐng)求報(bào)文時(shí),將該ARP請(qǐng)求報(bào)文中的源IP地址和源MAC地址的對(duì)應(yīng)關(guān)系存儲(chǔ)至本板卡的ARP表中。
ARP請(qǐng)求報(bào)文響應(yīng)操作是指:當(dāng)本板卡接收到攜帶有源IP地址、源MAC地址和目的IP地址為自身的IP地址的ARP請(qǐng)求報(bào)文時(shí),向發(fā)出該ARP請(qǐng)求報(bào)文的的設(shè)備回復(fù)攜帶本板卡的MAC地址的響應(yīng)報(bào)文,以使得接收到響應(yīng)報(bào)文的設(shè)備存儲(chǔ)本板卡的IP地址和本板卡的MAC地址至自身的ARP表中。
異常響應(yīng)操作是指:當(dāng)本板卡進(jìn)入ARP異常狀態(tài)時(shí),其控制報(bào)文的涌入速度,清除ARP消息隊(duì)列以釋放內(nèi)存等。
對(duì)于本板卡而言,在自身處于ARP異常狀態(tài)的情況下,其會(huì)執(zhí)行維持分布式設(shè)備ARP正常運(yùn)行的基本操作,而不會(huì)執(zhí)行第一類業(yè)務(wù)操作,這樣可以有效地避免本板卡上無意義的CPU損耗。隨著執(zhí)行異常響應(yīng)操作的時(shí)長的增加,本板卡未處理消息隊(duì)列長度與預(yù)存的隊(duì)列長度門限的比值會(huì)逐漸減小,本板卡的可用內(nèi)存也會(huì)逐漸增加,本板卡的CPU使用率也會(huì)逐漸減少。當(dāng)執(zhí)行異常響應(yīng)操作的時(shí)長足夠長時(shí),之前受到的報(bào)文攻擊對(duì)本板卡的影響變得非常小,本板卡會(huì)從ARP異常狀態(tài)退出,這時(shí),本板卡可以恢復(fù)執(zhí)行第一類業(yè)務(wù)操作,相應(yīng)地,本板卡及整個(gè)分布式設(shè)備均能正常運(yùn)行。
需要指出的是,當(dāng)本板卡為業(yè)務(wù)板卡時(shí),在自身處于ARP異常狀態(tài)的情況下,本板卡不會(huì)執(zhí)行第一類業(yè)務(wù)操作,那么,本板卡不會(huì)將大量涌入的報(bào)文上送至主控板卡,這樣可以有效地避免將業(yè)務(wù)板卡上受到的報(bào)文攻擊導(dǎo)向主控板卡,從而有效地保證業(yè)務(wù)板卡和整個(gè)分布式設(shè)備的正常運(yùn)行。
S104,在恢復(fù)執(zhí)行所述第一類業(yè)務(wù)操作后,執(zhí)行與本板卡的類型對(duì)應(yīng)的ARP表項(xiàng)同步操作。
需要說明的是,根據(jù)本板卡的類型的不同,本板卡執(zhí)行的ARP表項(xiàng)同步操作存在著一定的區(qū)別。
第一種情況下,本板卡為業(yè)務(wù)板卡,此時(shí),執(zhí)行與本板卡的類型對(duì)應(yīng)的ARP表項(xiàng)同步操作,可以包括:
向分布式設(shè)備中的主控板卡發(fā)送ARP表項(xiàng)獲取請(qǐng)求報(bào)文,以使得主控板卡在接收到該請(qǐng)求報(bào)文后,將自身的ARP表中當(dāng)前存儲(chǔ)的各表項(xiàng)發(fā)送至本板卡;
接收來自主控板卡的各表項(xiàng),并根據(jù)所接收到的表項(xiàng),對(duì)本板卡的ARP表進(jìn)行更新。
需要說明的是,根據(jù)所接收到的表項(xiàng),對(duì)本板卡的ARP表進(jìn)行更新的具體實(shí)現(xiàn)形式多樣,為了布局清楚,后續(xù)進(jìn)行舉例介紹。
在恢復(fù)執(zhí)行第一類業(yè)務(wù)操作之后,本板卡可以向主控板卡發(fā)送ARP表項(xiàng)獲取請(qǐng)求報(bào)文。這樣,當(dāng)主控板卡接收到該請(qǐng)求報(bào)文后,主控板卡會(huì)將自身的ARP表中當(dāng)前存儲(chǔ)的所有表項(xiàng)(每個(gè)表項(xiàng)中存儲(chǔ)有一IP地址與一MAC地址的對(duì)應(yīng)關(guān)系)均發(fā)送至本板卡。之后,本板卡能夠根據(jù)接收到的來自主控板卡的各表項(xiàng),對(duì)本板卡的ARP表進(jìn)行更新,以使得本板卡和主控板卡中的ARP表保持一致,進(jìn)而使得分布式設(shè)備中的各板卡上的ARP表均保持一致。
第二種情況下,本板卡為主控板卡,此時(shí),執(zhí)行與本板卡的類型對(duì)應(yīng)的ARP表項(xiàng)同步操作,可以包括:
向分布式設(shè)備中的各業(yè)務(wù)板卡發(fā)送ARP表項(xiàng)獲取請(qǐng)求報(bào)文,以使得各業(yè)務(wù)板卡在接收到該請(qǐng)求報(bào)文后,將自身的ARP表中當(dāng)前存儲(chǔ)的各表項(xiàng)發(fā)送至本板卡;
在接收到來自任一業(yè)務(wù)板卡的任一表項(xiàng)時(shí),根據(jù)所接收到的表項(xiàng),對(duì)本板卡的ARP表進(jìn)行更新,并將所接收到的表項(xiàng)發(fā)送至分布式設(shè)備中的其余業(yè)務(wù)板,以使得其余業(yè)務(wù)板根據(jù)所接收到的表項(xiàng),對(duì)各自的ARP表進(jìn)行更新。
在恢復(fù)執(zhí)行第一類業(yè)務(wù)操作之后,本板卡可以向每個(gè)業(yè)務(wù)板卡均發(fā)送ARP表項(xiàng)獲取請(qǐng)求報(bào)文。這樣,在接收到該請(qǐng)求報(bào)文后,各業(yè)務(wù)板卡均會(huì)將自身的ARP表中當(dāng)前存儲(chǔ)的所有表項(xiàng)(每個(gè)表項(xiàng)中存儲(chǔ)有一IP地址與一MAC地址的對(duì)應(yīng)關(guān)系)均發(fā)送至本板卡。本板卡接收到來自任一業(yè)務(wù)板卡的任一表項(xiàng)時(shí),其不僅會(huì)根據(jù)該表項(xiàng)更新自身的ARP表,還會(huì)將該表項(xiàng)同步給其余業(yè)務(wù)板卡,以使得其余業(yè)務(wù)板卡內(nèi)的ARP表均得到更新,最終,主控板卡和各業(yè)務(wù)板卡內(nèi)的ARP表均會(huì)保持一致,即分布式設(shè)備中的各板卡上的ARP表均保持一致了。
本方案中,在處于ARP異常狀態(tài)的情況下,本板卡僅會(huì)執(zhí)行維持分布式設(shè)備ARP正常運(yùn)行的基本操作,而不會(huì)執(zhí)行第一類業(yè)務(wù)操作,這樣可以減少本板卡上的CPU損耗,以使得本板卡盡快從ARP異常狀態(tài)退出。當(dāng)本板卡為業(yè)務(wù)板卡時(shí),由于本板卡停止執(zhí)行了第一類業(yè)務(wù)操作,因此,本板卡上的報(bào)文攻擊不會(huì)導(dǎo)向主控板,相應(yīng)地,主控板和整個(gè)分布式設(shè)備的正常工作將不會(huì)受到影響。另外,當(dāng)本板卡從ARP異常狀態(tài)退出并恢復(fù)執(zhí)行第一類業(yè)務(wù)操作后,本板卡會(huì)執(zhí)行相應(yīng)的ARP表項(xiàng)同步操作,以使得分布式設(shè)備中的各板卡上的ARP表均保持一致。
容易看出,在分布式設(shè)備中的任一板卡受到報(bào)文攻擊的情況下,本方案能夠保證該分布式設(shè)備中的各板卡上的ARP表的一致性,并保證主控板卡和分布式設(shè)備的正常運(yùn)行。
需要說明的是,當(dāng)本板卡為業(yè)務(wù)板卡時(shí),本板卡接收來自主控板卡的各表項(xiàng),并根據(jù)所接收到的表項(xiàng),對(duì)本板卡的ARP表進(jìn)行更新的具體實(shí)現(xiàn)形式多樣,下面進(jìn)行舉例介紹。
在本發(fā)明實(shí)施例的一種具體實(shí)施方式中,接收來自主控板卡的各表項(xiàng),并根據(jù)所接收到的表項(xiàng),對(duì)本板卡的ARP表進(jìn)行更新,可以包括:
在每次接收到來自主控板卡的表項(xiàng)時(shí),確定本板卡的ARP表中是否已存在該表項(xiàng);
若為否,記錄當(dāng)前的時(shí)間信息,存儲(chǔ)該表項(xiàng)與所記錄的時(shí)間信息的對(duì)應(yīng)關(guān)系至本板卡的ARP表中,并且,在該表項(xiàng)是本板卡發(fā)出該請(qǐng)求報(bào)文后首次接收到的來自主控板卡的表項(xiàng)時(shí),為該表項(xiàng)添加表項(xiàng)更新開始標(biāo)記;
若為是,記錄當(dāng)前的時(shí)間信息,利用所記錄的時(shí)間信息替換本板卡的ARP表中已存在的該表項(xiàng)所對(duì)應(yīng)的時(shí)間信息,并且,在該表項(xiàng)是本板卡發(fā)出該請(qǐng)求報(bào)文后首次接收到的來自主控板卡的表項(xiàng)時(shí),為本板卡的ARP表中已存在的該表項(xiàng)添加表項(xiàng)更新開始標(biāo)記;
在接收到來自主控板卡的、用于表征ARP表項(xiàng)發(fā)送完畢的結(jié)束報(bào)文時(shí),刪除本板卡的ARP表中所對(duì)應(yīng)時(shí)間信息早于目標(biāo)時(shí)間信息的表項(xiàng),其中,目標(biāo)時(shí)間信息為具有表項(xiàng)更新開始標(biāo)記的表項(xiàng)所對(duì)應(yīng)的時(shí)間信息;
刪除具有表項(xiàng)更新開始標(biāo)記的表項(xiàng)上的表項(xiàng)更新開始標(biāo)記。
下面結(jié)合圖3,以一個(gè)具體的例子對(duì)本實(shí)施例的具體實(shí)施過程進(jìn)行說明。
如圖3所示,分布式設(shè)備中可以具有主控板卡A、業(yè)務(wù)板卡B、業(yè)務(wù)板卡C和業(yè)務(wù)板卡D。
假設(shè)業(yè)務(wù)板卡B當(dāng)前受到了報(bào)文攻擊,這時(shí),業(yè)務(wù)板卡B將進(jìn)入ARP異常狀態(tài)。在ARP異常狀態(tài)下,業(yè)務(wù)板卡B將停止執(zhí)行第一類業(yè)務(wù)操作;直至退出ARP異常狀態(tài),業(yè)務(wù)板卡B才會(huì)恢復(fù)執(zhí)行第一類業(yè)務(wù)操作。
在恢復(fù)執(zhí)行第一類業(yè)務(wù)操作后,業(yè)務(wù)板卡B會(huì)向主控板卡A發(fā)送ARP表項(xiàng)獲取請(qǐng)求報(bào)文。假設(shè)接收到該請(qǐng)求報(bào)文時(shí),主控板卡A的ARP表中存儲(chǔ)有五個(gè)表項(xiàng),分別是X1、X2、X3、X4和X5。這時(shí),主控板卡A會(huì)將這五個(gè)表項(xiàng)發(fā)送至業(yè)務(wù)板卡B,并在這五個(gè)表項(xiàng)均發(fā)出之后,向業(yè)務(wù)板卡B發(fā)送用于表征ARP表項(xiàng)發(fā)送完畢的結(jié)束報(bào)文。
對(duì)于業(yè)務(wù)板卡B而言,其的ARP表中可以存儲(chǔ)有表項(xiàng)與時(shí)間信息的對(duì)應(yīng)關(guān)系,每個(gè)表項(xiàng)對(duì)應(yīng)的時(shí)間信息用于表示業(yè)務(wù)板卡B存儲(chǔ)該表項(xiàng)至自身的ARP表的時(shí)間信息。當(dāng)業(yè)務(wù)板卡B接收到表項(xiàng)X1時(shí),其會(huì)在自身的ARP中遍歷查找X1。
如果業(yè)務(wù)板卡B在自身的ARP表中未查找到X1,業(yè)務(wù)板卡B就會(huì)記錄當(dāng)前的時(shí)間信息T1,并存儲(chǔ)X1和T1的對(duì)應(yīng)關(guān)系至自身的ARP表中;并且,在X1是業(yè)務(wù)板卡B發(fā)出請(qǐng)求報(bào)文后首次接收到的來自主控板卡A的表項(xiàng)時(shí),業(yè)務(wù)板卡B還會(huì)為X1添加一表項(xiàng)更新開始標(biāo)記。
如果業(yè)務(wù)板卡B在自身的ARP表中查找到了X1,業(yè)務(wù)板卡B也會(huì)記錄當(dāng)前的時(shí)間信息T1,并利用T1替換自身的ARP表中已存在的X1對(duì)應(yīng)的時(shí)間信息;并且,在X1是業(yè)務(wù)板卡B發(fā)出請(qǐng)求報(bào)文后首次接收到的來自主控板卡A的表項(xiàng)時(shí),業(yè)務(wù)板卡B還會(huì)為X1添加一表項(xiàng)更新開始標(biāo)記。
業(yè)務(wù)板卡B在接收到X2至X5時(shí)的處理方式與接收到X1時(shí)的處理方式類似,在此不再贅述。
之后,當(dāng)業(yè)務(wù)板卡B接收到來自主控板卡A的結(jié)束報(bào)文時(shí),業(yè)務(wù)板卡B可以在自身的ARP表中查找具有表項(xiàng)更新開始標(biāo)記的表項(xiàng),假設(shè)該表項(xiàng)為X1。由于X1當(dāng)前對(duì)應(yīng)的時(shí)間信息為T1,這時(shí),業(yè)務(wù)板卡B會(huì)刪除自身的ARP表中所對(duì)應(yīng)時(shí)間信息早于T1的表項(xiàng)。最終,業(yè)務(wù)板卡B的ARP表中僅會(huì)剩下X1、X2、X3、X4和X5這5個(gè)表項(xiàng),這樣,業(yè)務(wù)板卡B與主控板卡A的ARP表就保持一致了。
容易看出,本實(shí)施例能夠?qū)崿F(xiàn)本板卡與主控板卡的ARP表的一致性,進(jìn)而使得分布式設(shè)備中的各板卡上的ARP表保持一致。
綜上,在分布式設(shè)備中的任一板卡受到報(bào)文攻擊的情況下,本實(shí)施例能夠保證該分布式設(shè)備中的各板卡上的ARP表的一致性,并保證主控板卡和分布式設(shè)備的正常運(yùn)行。
下面對(duì)本發(fā)明實(shí)施例所提供的一種板卡進(jìn)行說明。
參見圖4,圖中示出了本發(fā)明實(shí)施例所提供的一種板卡的結(jié)構(gòu)示意圖。如圖4所示,該板卡應(yīng)用于分布式設(shè)備,該板卡可以包括:
異常檢測(cè)模塊41,用于檢測(cè)本板卡是否處于地址解析協(xié)議ARP異常狀態(tài);
異常處理模塊42,用于在檢測(cè)到本板卡處于ARP異常狀態(tài)的情況下,停止執(zhí)行第一類業(yè)務(wù)操作;在檢測(cè)到本板卡退出ARP異常狀態(tài)后,恢復(fù)執(zhí)行第一類業(yè)務(wù)操作,并在恢復(fù)執(zhí)行第一類業(yè)務(wù)操作后,觸發(fā)同步模塊43,其中,第一類業(yè)務(wù)操作包括:ARP同步信息處理操作、ARP同步信息發(fā)送操作及ARP老化探測(cè)操作;
同步模塊43,用于執(zhí)行與本板卡的類型對(duì)應(yīng)的ARP表項(xiàng)同步操作。
本方案中,在處于ARP異常狀態(tài)的情況下,本板卡僅會(huì)執(zhí)行維持分布式設(shè)備ARP正常運(yùn)行的基本操作,而不會(huì)執(zhí)行第一類業(yè)務(wù)操作,這樣可以減少本板卡上的CPU損耗,以使得本板卡盡快從ARP異常狀態(tài)退出。當(dāng)本板卡為業(yè)務(wù)板卡時(shí),由于本板卡停止執(zhí)行了第一類業(yè)務(wù)操作,因此,本板卡上的報(bào)文攻擊不會(huì)導(dǎo)向主控板,相應(yīng)地,主控板和整個(gè)分布式設(shè)備的正常工作將不會(huì)受到影響。另外,當(dāng)本板卡從ARP異常狀態(tài)退出并恢復(fù)執(zhí)行第一類業(yè)務(wù)操作后,本板卡會(huì)執(zhí)行相應(yīng)的ARP表項(xiàng)同步操作,以使得分布式設(shè)備中的各板卡上的ARP表均保持一致。
容易看出,在分布式設(shè)備中的任一板卡受到報(bào)文攻擊的情況下,本方案能夠保證該分布式設(shè)備中的各板卡上的ARP表的一致性,并保證主控板卡和分布式設(shè)備的正常運(yùn)行。
在本發(fā)明實(shí)施例的一種具體實(shí)施方式中,異常檢測(cè)模塊,可以包括:
檢測(cè)子模塊,用于檢測(cè)本板卡未處理ARP消息隊(duì)列長度與預(yù)設(shè)的隊(duì)列長度門限的比值是否大于預(yù)設(shè)比例,本板卡的可用內(nèi)存是否小于預(yù)設(shè)的內(nèi)存門限,以及本板卡的中央處理器CPU使用率是否大于預(yù)設(shè)的使用率門限;
第一確定子模塊,用于在檢測(cè)子模塊中的三個(gè)判斷結(jié)果中的任意一個(gè)為是時(shí),確定本板卡處于ARP異常狀態(tài);
第二確定子模塊,用于在檢測(cè)子模塊中的三個(gè)判斷結(jié)果均為否時(shí),確定本板卡未處于ARP異常狀態(tài)。
在本發(fā)明實(shí)施例的一種具體實(shí)施方式中,當(dāng)本板卡為業(yè)務(wù)板卡時(shí),同步模塊,包括:
第一報(bào)文發(fā)送子模塊,用于向分布式設(shè)備中的主控板卡發(fā)送ARP表項(xiàng)獲取請(qǐng)求報(bào)文,以使得主控板卡在接收到該請(qǐng)求報(bào)文后,將自身的ARP表中當(dāng)前存儲(chǔ)的各表項(xiàng)發(fā)送至本板卡;
ARP表更新子模塊,用于接收來自主控板卡的各表項(xiàng),并根據(jù)所接收到的表項(xiàng),對(duì)本板卡的ARP表進(jìn)行更新。
在本發(fā)明實(shí)施例的一種具體實(shí)施方式中,ARP表更新子模塊,包括:
確定單元,用于在每次接收到來自主控板卡的表項(xiàng)時(shí),確定本板卡的ARP表中是否已存在該表項(xiàng);
處理單元,用于在確定單元的確定結(jié)果為否的情況下,記錄當(dāng)前的時(shí)間信息,存儲(chǔ)該表項(xiàng)與所記錄的時(shí)間信息的對(duì)應(yīng)關(guān)系至本板卡的ARP表中,并且,在該表項(xiàng)是本板卡發(fā)出該請(qǐng)求報(bào)文后首次接收到的來自主控板卡的表項(xiàng)時(shí),為該表項(xiàng)添加表項(xiàng)更新開始標(biāo)記;并在確定單元的確定結(jié)果為是的情況下,記錄當(dāng)前的時(shí)間信息,存儲(chǔ)該表項(xiàng)與所記錄的時(shí)間信息的對(duì)應(yīng)關(guān)系至本板卡的ARP表中,并且,在該表項(xiàng)是本板卡發(fā)出該請(qǐng)求報(bào)文后首次接收到的來自主控板卡的表項(xiàng)時(shí),為該表項(xiàng)添加表項(xiàng)更新開始標(biāo)記;
第一刪除單元,用于在接收到來自主控板卡的、用于表征ARP表項(xiàng)發(fā)送完畢的結(jié)束報(bào)文時(shí),刪除本板卡的ARP表中所對(duì)應(yīng)時(shí)間信息早于目標(biāo)時(shí)間信息的表項(xiàng),其中,目標(biāo)時(shí)間信息為具有表項(xiàng)更新開始標(biāo)記的表項(xiàng)所對(duì)應(yīng)的時(shí)間信息;
第二刪除單元,用于刪除具有表項(xiàng)更新開始標(biāo)記的表項(xiàng)上的表項(xiàng)更新開始標(biāo)記。
在本發(fā)明實(shí)施例的一種具體實(shí)施方式中,當(dāng)本板卡為主控板卡時(shí),同步模塊,可以包括:
第二報(bào)文發(fā)送子模塊,用于向分布式設(shè)備中的各業(yè)務(wù)板卡發(fā)送ARP表項(xiàng)獲取請(qǐng)求報(bào)文,以使得各業(yè)務(wù)板卡在接收到該請(qǐng)求報(bào)文后,將自身的ARP表中當(dāng)前存儲(chǔ)的各表項(xiàng)發(fā)送至本板卡;
處理子模塊,用于在接收到來自任一業(yè)務(wù)板卡的任一表項(xiàng)時(shí),根據(jù)所接收到的表項(xiàng),對(duì)本板卡的ARP表進(jìn)行更新,并將所接收到的表項(xiàng)發(fā)送至分布式設(shè)備中的其余業(yè)務(wù)板,以使得其余業(yè)務(wù)板根據(jù)所接收到的表項(xiàng),對(duì)各自的ARP表進(jìn)行更新。
綜上,在分布式設(shè)備中的任一板卡受到報(bào)文攻擊的情況下,本實(shí)施例能夠保證該分布式設(shè)備中的各板卡上的ARP表的一致性,并保證主控板卡和分布式設(shè)備的正常運(yùn)行。
下面對(duì)本發(fā)明實(shí)施例所提供的一種分布式設(shè)備進(jìn)行說明。
本發(fā)明實(shí)施例還提供了一種分布式設(shè)備,該分布式設(shè)備包括上述板卡。其中,板卡的具體實(shí)施方式參照上述說明即可,本實(shí)施例對(duì)此不做任何限定。
由于板卡具有上述技術(shù)效果,故具有該板卡的分布式設(shè)備也具有相應(yīng)的技術(shù)效果,在此不再贅述。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。