專利名稱:一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域,具體涉及一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法。
背景技術(shù):
目前,在路由設(shè)備中是根據(jù)路由表確定其接收到的報(bào)文的轉(zhuǎn)發(fā)路由,并將其接收到的報(bào)文根據(jù)該轉(zhuǎn)發(fā)路由進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
路由設(shè)備中的路由表如表1所示表1
現(xiàn)有技術(shù)中路由設(shè)備根據(jù)路由表對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā)的方法為路由設(shè)備根據(jù)接收到的報(bào)文的目的地址在路由表中采用最長(zhǎng)前綴匹配的算法,進(jìn)行最長(zhǎng)前綴匹配,如果匹配到相應(yīng)的記錄,則根據(jù)記錄中對(duì)應(yīng)的下一跳表項(xiàng)、出接口表項(xiàng)為其建立轉(zhuǎn)發(fā)路徑,將報(bào)文轉(zhuǎn)發(fā);如果不能匹配到相應(yīng)的記錄,則采取將報(bào)文丟棄等方法,不為其建立轉(zhuǎn)發(fā)路徑。
路由表中采用最長(zhǎng)前綴匹配的算法可以在路由表中命中目的地址網(wǎng)段范圍最小的路由。如在表1中編號(hào)為A的路由,我們稱之為路由A,其他編號(hào)的路由稱之為路由B、路由C、路由D。路由B對(duì)應(yīng)的目的地址網(wǎng)段范圍包含路由A對(duì)應(yīng)的目的地址網(wǎng)段范圍。如果路由設(shè)備需要將目的地址為10.1.1.1的報(bào)文轉(zhuǎn)發(fā),則采用最長(zhǎng)前綴匹配的算法在與路由表的目的地址進(jìn)行匹配時(shí),與其匹配的路由是路由A,而不是路由B。
由于路由協(xié)議的種類很多,如RIP(路由信息協(xié)議),BGP(邊界路由協(xié)議),OSPF(開(kāi)放式最短路徑優(yōu)先協(xié)議),IS-IS(中間系統(tǒng)到中間系統(tǒng)協(xié)議)等。路由設(shè)備可同時(shí)支持多種路由協(xié)議,基于不同路由協(xié)議的報(bào)文到達(dá)路由設(shè)備時(shí),可能得到目的地址網(wǎng)段范圍相同的路由,路由管理選擇優(yōu)先級(jí)高的路由將報(bào)文轉(zhuǎn)發(fā);基于同一種路由協(xié)議的報(bào)文達(dá)到路由設(shè)備時(shí),也可能得到目的地址網(wǎng)段范圍相同的路由即等價(jià)路由,如在表1中,路由C和路由D因其對(duì)應(yīng)的目的地址網(wǎng)段范圍相同,所以路由C和路由D為等價(jià)路由。通常情況下這種等價(jià)路由對(duì)于不同數(shù)據(jù)流選用不同的路由,這樣可以對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)流量進(jìn)行負(fù)荷分擔(dān),對(duì)于相同的數(shù)據(jù)流一般只會(huì)選擇其中一條路由進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
現(xiàn)有技術(shù)能夠?qū)崿F(xiàn)報(bào)文轉(zhuǎn)發(fā)的一般要求,如動(dòng)態(tài)路由協(xié)議都有相應(yīng)的老化功能,如果網(wǎng)絡(luò)中由于出現(xiàn)鏈路故障而導(dǎo)致報(bào)文轉(zhuǎn)發(fā)的下一跳不再直連,路由協(xié)議就收不到相應(yīng)的連接回應(yīng)報(bào)文,如hello報(bào)文或刷新報(bào)文等,所學(xué)的路由會(huì)通過(guò)協(xié)議的老化機(jī)制自動(dòng)老化,從而該路由在轉(zhuǎn)發(fā)表中被刪除,不會(huì)影響報(bào)文的正常轉(zhuǎn)發(fā)。但是在某些情況下,特別是在靜態(tài)配置路由的情況下容易出現(xiàn)一些問(wèn)題。
靜態(tài)配置的路由,由于本身沒(méi)有老化機(jī)制,會(huì)因此而導(dǎo)致所命中的路由不能進(jìn)行實(shí)際的報(bào)文轉(zhuǎn)發(fā)。
附圖1為一種簡(jiǎn)單而常見(jiàn)的組網(wǎng)形式。
在圖1中,通常情況下會(huì)配置兩條靜態(tài)路由,在路由設(shè)備1中,為一部分網(wǎng)絡(luò)終端發(fā)送的報(bào)文建立的路由為路由A,即報(bào)文經(jīng)Ethernet1/0/0端口和地址為20.1.1.1的網(wǎng)絡(luò)設(shè)備2到達(dá)目的地址10.1.1.1;為其余網(wǎng)絡(luò)終端發(fā)送的報(bào)文建立的路由為路由B,即報(bào)文經(jīng)Ethernet1/0/1端口和地址為30.1.1.1的網(wǎng)絡(luò)設(shè)備3到達(dá)目的地址10.1.2.1。
設(shè)定路由A中的網(wǎng)絡(luò)設(shè)備2因故障而癱瘓,或者是從路由設(shè)備1到網(wǎng)絡(luò)設(shè)備2中間的二層設(shè)備或鏈路出現(xiàn)故障,但是路由設(shè)備1中的端口Ethernet1/0/1還是連接狀態(tài)的,那么在路由設(shè)備1上表現(xiàn)出來(lái)的結(jié)果則為一切正常。但是在實(shí)際報(bào)文轉(zhuǎn)發(fā)的時(shí)候,如果路由設(shè)備1需要將目的地址為10.1.1.1的報(bào)文轉(zhuǎn)發(fā),則采用最長(zhǎng)前綴匹配的算法在與表1的目的地址進(jìn)行匹配時(shí),匹配到的路由是路由A,即需要將報(bào)文經(jīng)端口Ethernet1/0/0發(fā)送至網(wǎng)絡(luò)設(shè)備2,由于網(wǎng)絡(luò)設(shè)備2癱瘓,或者是從路由設(shè)備1到網(wǎng)絡(luò)設(shè)備2中間的二層設(shè)備或鏈路出現(xiàn)故障,從而導(dǎo)致所有網(wǎng)絡(luò)終端用戶都無(wú)法訪問(wèn)10.1.1.1;其實(shí),實(shí)際上報(bào)文從路由B是可以進(jìn)行報(bào)文轉(zhuǎn)發(fā)的。但是采用最長(zhǎng)前綴匹配的算法在與表1的目的地址進(jìn)行匹配時(shí),由于路由B匹配不上,所以報(bào)文不能從路由B進(jìn)行轉(zhuǎn)發(fā)。
在一般組網(wǎng)中要求負(fù)荷分擔(dān)而配置等價(jià)路由C、D情況下,如果路由設(shè)備1需要將目的地址為10.1.2.1的報(bào)文轉(zhuǎn)發(fā),則采用最長(zhǎng)前綴匹配的算法在與表1的目的地址進(jìn)行匹配時(shí),設(shè)定匹配到的路由是路由C,即需要將報(bào)文經(jīng)端口Ethernet1/0/0及地址為20.1.1.1的網(wǎng)絡(luò)設(shè)備發(fā)送,由于網(wǎng)絡(luò)設(shè)備2癱瘓,或者是從路由設(shè)備1到網(wǎng)絡(luò)設(shè)備2中間的二層設(shè)備或鏈路出現(xiàn)故障,出現(xiàn)和上述類似的情況,報(bào)文轉(zhuǎn)發(fā)不通。由于一般路由器的報(bào)文轉(zhuǎn)發(fā)實(shí)現(xiàn)的方法中規(guī)定,對(duì)相同數(shù)據(jù)流命中的是同一條路由,因此,某些網(wǎng)絡(luò)終端用戶可能就無(wú)法訪問(wèn)10.1.2.1。
另外,動(dòng)態(tài)路由協(xié)議可能會(huì)受到惡意攻擊,而致使正常的數(shù)據(jù)不能正常轉(zhuǎn)發(fā)。例如RIP(路由信息協(xié)議),網(wǎng)絡(luò)終端用戶可能惡意構(gòu)造下一跳不存在路由協(xié)議的報(bào)文,那么在路由表匹配的命中后,會(huì)導(dǎo)致正常數(shù)據(jù)不能正常轉(zhuǎn)發(fā),從而影響了網(wǎng)絡(luò)終端用戶的業(yè)務(wù)。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法,利用優(yōu)化的路由表對(duì)路由設(shè)備中需要轉(zhuǎn)發(fā)的報(bào)文進(jìn)行報(bào)文轉(zhuǎn)發(fā)控制,以實(shí)現(xiàn)提高網(wǎng)絡(luò)安全性和可靠性的目的。
為達(dá)到上述目的,本發(fā)明提供的一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法包括a、向路由設(shè)備的路由表中所有路由的下一跳分別發(fā)送需要回應(yīng)的報(bào)文,并確定收到回應(yīng)報(bào)文的路由;b、當(dāng)路由設(shè)備需要轉(zhuǎn)發(fā)報(bào)文時(shí),根據(jù)其路由表中相應(yīng)的收到回應(yīng)報(bào)文的路由進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
所述的路由包括動(dòng)態(tài)路由協(xié)議建立的路由、靜態(tài)配置的路由。
所述的動(dòng)態(tài)路由協(xié)議包括路由信息協(xié)議、邊界路由協(xié)議、開(kāi)放式最短路徑優(yōu)先協(xié)議、中間系統(tǒng)到中間系統(tǒng)協(xié)議。
所述需要回應(yīng)的報(bào)文包括地址解析協(xié)議請(qǐng)求報(bào)文。
所述的步驟a包括a1、為路由設(shè)備的路由表中所有各不相同的下一跳構(gòu)造地址解析協(xié)議請(qǐng)求報(bào)文并將其發(fā)送;a2、判斷在預(yù)定時(shí)間內(nèi)路由設(shè)備是否收到各不相同的下一跳的回應(yīng)報(bào)文;對(duì)路由設(shè)備收到回應(yīng)報(bào)文的下一跳在路由表中對(duì)應(yīng)的路由設(shè)置有效標(biāo)記,并記錄收到回應(yīng)報(bào)文的相關(guān)信息;對(duì)路由設(shè)備未收到回應(yīng)報(bào)文的下一跳在路由表中對(duì)應(yīng)的路由設(shè)置無(wú)效標(biāo)記。
所述的步驟a1包括為路由設(shè)備路由表中所有下一跳建立哈希表;根據(jù)各下一跳的哈希運(yùn)算,將下一跳相同的路由放在一個(gè)鏈表中;對(duì)各鏈表中的下一跳構(gòu)造地址解析協(xié)議請(qǐng)求報(bào)文并將其發(fā)送。
當(dāng)所述收到回應(yīng)報(bào)文的相關(guān)信息以表的形式記錄時(shí),所述的步驟a還包括
當(dāng)向路由表中添加新路由時(shí),根據(jù)所述新路由下一跳的哈西運(yùn)算,將所述新路由添加至哈希表中相應(yīng)的鏈表中,同時(shí)將所述新路由的下一跳與收到回應(yīng)報(bào)文表中的表項(xiàng)進(jìn)行匹配;對(duì)路由表中與收到回應(yīng)報(bào)文表匹配的所述新路由設(shè)置有效標(biāo)記;對(duì)路由表中與收到回應(yīng)報(bào)文表不匹配的所述新路由設(shè)置無(wú)效標(biāo)記。
所述的步驟a還包括當(dāng)所述收到回應(yīng)報(bào)文表中的記錄刪除時(shí),對(duì)所述路由表中對(duì)應(yīng)的路由設(shè)置無(wú)效標(biāo)記。
所述收到回應(yīng)報(bào)文表中的記錄可根據(jù)預(yù)定老化機(jī)制而刪除;所述的預(yù)定老化機(jī)制包括設(shè)置預(yù)定次數(shù);根據(jù)預(yù)定間隔遍歷HASH表,對(duì)各鏈表的下一跳構(gòu)造地址解析協(xié)議請(qǐng)求報(bào)文并將其發(fā)送,同時(shí)各鏈表的計(jì)次值遞增;分別判斷各鏈表的計(jì)次值是否達(dá)到預(yù)定次數(shù);如果未達(dá)到所述預(yù)定次數(shù),判斷路由設(shè)備在預(yù)定時(shí)間內(nèi)是否收到回應(yīng)報(bào)文;如果收到回應(yīng)報(bào)文,將預(yù)定次數(shù)的計(jì)次值清零;如果未收到回應(yīng)報(bào)文,返回所述根據(jù)預(yù)定間隔遍歷哈希表,對(duì)各鏈表的下一跳構(gòu)造地址解析協(xié)議請(qǐng)求報(bào)文并將其發(fā)送,同時(shí)各鏈表的計(jì)次值遞增的步驟;如果達(dá)到所述預(yù)定次數(shù),將收到回應(yīng)報(bào)文表中的相應(yīng)記錄刪除。
所述的步驟b包括當(dāng)路由設(shè)備需要轉(zhuǎn)發(fā)的報(bào)文時(shí),根據(jù)其路由表中相應(yīng)的有效標(biāo)記的路由進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
利用本發(fā)明,將可收到回應(yīng)報(bào)文的下一跳網(wǎng)絡(luò)設(shè)備確定為有效的網(wǎng)絡(luò)設(shè)備,將有效的下一跳網(wǎng)絡(luò)設(shè)備對(duì)應(yīng)的路由表中的路由設(shè)置有效標(biāo)記,使路由表得到了優(yōu)化,當(dāng)路由設(shè)備進(jìn)行報(bào)文轉(zhuǎn)發(fā)時(shí),使每一條匹配到的路由都是有效、可靠的路由,從而避免了因網(wǎng)絡(luò)設(shè)備故障或鏈路故障或網(wǎng)絡(luò)終端用戶惡意攻擊使某路由無(wú)效,致使網(wǎng)絡(luò)終端用戶不能夠正常傳輸報(bào)文的現(xiàn)象,確保了路由設(shè)備可靠、安全的將報(bào)文轉(zhuǎn)發(fā)至目的地址;實(shí)現(xiàn)了提高網(wǎng)絡(luò)安全性、可靠性的目的。
圖1是通訊網(wǎng)絡(luò)示意圖。
具體實(shí)施例方式
本發(fā)明的核心思想為通過(guò)向路由設(shè)備的路由表中所有路由的下一跳分別發(fā)送需要回應(yīng)的報(bào)文,判斷路由表中的下一跳是否有效,如果收到回應(yīng)報(bào)文,則認(rèn)為該路由的下一跳有效,該路由有效;否則,認(rèn)為該路由的下一跳無(wú)效,該路由無(wú)效;當(dāng)路由設(shè)備需要轉(zhuǎn)發(fā)報(bào)文時(shí),根據(jù)其路由表中相應(yīng)的收到回應(yīng)報(bào)文的路由進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
本發(fā)明的核心思想可通過(guò)下述方法來(lái)實(shí)現(xiàn)確定路由設(shè)備的路由表中所有路由的下一跳網(wǎng)絡(luò)設(shè)備是否有效,因?yàn)橹挥邢乱惶行У木W(wǎng)絡(luò)設(shè)備才能夠進(jìn)行正常的報(bào)文轉(zhuǎn)發(fā),通過(guò)檢測(cè)路由設(shè)備的路由表中所有路由的下一跳網(wǎng)絡(luò)設(shè)備是否有效來(lái)優(yōu)化路由設(shè)備中的路由表,然后根據(jù)優(yōu)化的路由表進(jìn)行報(bào)文的轉(zhuǎn)發(fā)控制。
本實(shí)施例中的下一跳網(wǎng)絡(luò)設(shè)備有效包括下一跳網(wǎng)絡(luò)設(shè)備無(wú)故障,且路由設(shè)備和該下一跳網(wǎng)絡(luò)設(shè)備之間的二層設(shè)備或鏈路無(wú)故障等,即路由設(shè)備與該下一跳網(wǎng)絡(luò)設(shè)備能夠進(jìn)行正常的數(shù)據(jù)傳輸。
本發(fā)明檢驗(yàn)下一跳網(wǎng)絡(luò)設(shè)備是否有效的方法為通過(guò)向下一跳網(wǎng)絡(luò)設(shè)備周期性發(fā)送需要回應(yīng)的報(bào)文來(lái)請(qǐng)求下一跳網(wǎng)絡(luò)設(shè)備應(yīng)答,如果下一跳網(wǎng)絡(luò)設(shè)備應(yīng)答,則證明該網(wǎng)絡(luò)設(shè)備是有效的,從而該路由有效,可以根據(jù)該路由進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
在以太網(wǎng)中,我們可以通過(guò)發(fā)送ARP(地址解析協(xié)議)請(qǐng)求報(bào)文請(qǐng)求下一跳網(wǎng)絡(luò)設(shè)備應(yīng)答來(lái)實(shí)現(xiàn)路由表的優(yōu)化,下面以以太網(wǎng)為例說(shuō)明本發(fā)明的方法。
由于本發(fā)明是針對(duì)路由設(shè)備的路由表中所有路由的下一跳網(wǎng)絡(luò)設(shè)備進(jìn)行檢測(cè),所以,可以首先對(duì)路由表的下一跳網(wǎng)絡(luò)設(shè)備建一張Hash(哈希)表,根據(jù)路由表中所有路由的下一跳網(wǎng)絡(luò)設(shè)備的IP地址進(jìn)行Hash運(yùn)算,將下一跳網(wǎng)絡(luò)設(shè)備的IP地址相同的路由放到一個(gè)鏈表中。
對(duì)各鏈表中的下一跳網(wǎng)絡(luò)設(shè)備構(gòu)造ARP請(qǐng)求報(bào)文并發(fā)送。建一張收到ARP回應(yīng)報(bào)文表。該表保存收到ARP回應(yīng)報(bào)文的路由的相關(guān)信息。該表可包括下一跳網(wǎng)絡(luò)設(shè)備的IP地址字段、下一跳網(wǎng)絡(luò)設(shè)備的MAC地址字段、本路由設(shè)備將報(bào)文傳輸至下一跳網(wǎng)絡(luò)設(shè)備的出接口字段。對(duì)在預(yù)定時(shí)間內(nèi)所有收到ARP回應(yīng)報(bào)文的路由添加至收到ARP回應(yīng)報(bào)文表中;同時(shí)根據(jù)收到ARP回應(yīng)報(bào)文表中的記錄設(shè)置路由設(shè)備路由表中對(duì)應(yīng)路由的有效標(biāo)記,即將路由表中與收到ARP回應(yīng)報(bào)文表中的記錄對(duì)應(yīng)的路由設(shè)置有效標(biāo)記,路由表中與收到ARP回應(yīng)報(bào)文表中的記錄無(wú)對(duì)應(yīng)的路由設(shè)置無(wú)效標(biāo)記。
當(dāng)路由設(shè)備需要發(fā)送報(bào)文時(shí),采用最長(zhǎng)前綴匹配的算法,將報(bào)文的目的地址在路由表中匹配,無(wú)效標(biāo)記的路由不參與路由匹配,從而可確保匹配到的路由一定能夠可靠、安全地將報(bào)文轉(zhuǎn)發(fā)至下一跳網(wǎng)絡(luò)設(shè)備。
在動(dòng)態(tài)路由協(xié)議學(xué)習(xí)到新的動(dòng)態(tài)路由或配置新的靜態(tài)路由之后,將上述新路由加入到路由表中時(shí),首先需要將新路由與收到ARP回應(yīng)報(bào)文表匹配,如果該表中的表項(xiàng)與新路由匹配,則將該新路由設(shè)置有效標(biāo)記,添加至路由表中;如果該表中的表項(xiàng)與新路由不匹配,則將新路由設(shè)置無(wú)效標(biāo)記,添加至路由表中。在新路由添加至路由表后,還需要將該新路由根據(jù)其下一跳網(wǎng)絡(luò)設(shè)備的IP地址進(jìn)行相應(yīng)的HASH運(yùn)算,比較該新路由的下一跳IP地址與HASH表的各鏈表中的下一跳IP地址是否相同,如果和某鏈表中的下一跳IP地址相同,則將新路由加入至該鏈表中;如果和各鏈表中的下一跳IP地址均不相同,則為新路由建立新鏈表并將新路由添加至新鏈表中。
本發(fā)明還設(shè)定了收到ARP回應(yīng)報(bào)文表的老化機(jī)制。
收到ARP回應(yīng)報(bào)文表的老化機(jī)制為設(shè)置預(yù)定間隔,每隔預(yù)定間隔時(shí)間,遍歷下一跳Hash表,預(yù)定間隔的計(jì)時(shí)可通過(guò)定時(shí)器來(lái)實(shí)現(xiàn)。如將定時(shí)器設(shè)置為2分鐘,則每隔2分鐘,遍歷下一跳Hash表,針對(duì)下一跳Hash表中各個(gè)鏈表中的下一跳網(wǎng)絡(luò)設(shè)備,構(gòu)造ARP請(qǐng)求報(bào)文。
設(shè)置預(yù)定次數(shù),對(duì)預(yù)定次數(shù)的計(jì)數(shù)可通過(guò)計(jì)數(shù)器來(lái)實(shí)現(xiàn),分別設(shè)置各鏈表的計(jì)數(shù)器,為各鏈表的下一跳網(wǎng)絡(luò)設(shè)備構(gòu)造ARP報(bào)文并分別發(fā)送時(shí),各鏈表的計(jì)數(shù)器分別加一;如果在預(yù)定時(shí)間內(nèi)路由設(shè)備收到下一跳網(wǎng)絡(luò)設(shè)備的ARP回應(yīng)報(bào)文,則證明該路由設(shè)備與該下一跳網(wǎng)絡(luò)設(shè)備在報(bào)文轉(zhuǎn)發(fā)的鏈路上是通暢的,并且該下一跳網(wǎng)絡(luò)設(shè)備能夠正常收發(fā)報(bào)文,所以確定該下一跳網(wǎng)絡(luò)設(shè)備運(yùn)行正常、有效,從而確定該鏈表對(duì)應(yīng)的該路由設(shè)備路由表中的路由是有效的,將該鏈表對(duì)應(yīng)的路由設(shè)備路由表中的路由設(shè)置有效標(biāo)記,該鏈表的計(jì)數(shù)器清零。如果在預(yù)定時(shí)間內(nèi)未收到下一跳網(wǎng)絡(luò)設(shè)備的ARP回應(yīng)報(bào)文,則證明下一跳網(wǎng)絡(luò)設(shè)備在報(bào)文轉(zhuǎn)發(fā)的鏈路上或下一跳網(wǎng)絡(luò)設(shè)備運(yùn)行上可能有問(wèn)題,該鏈表的計(jì)數(shù)器不清零。
為確保對(duì)下一跳網(wǎng)絡(luò)設(shè)備的檢測(cè)結(jié)果的可靠性,可根據(jù)實(shí)際需要設(shè)置預(yù)定次數(shù)的數(shù)值,如預(yù)定次數(shù)設(shè)置為3次,那么,在等待預(yù)定間隔滿后,再次遍歷HASH表,重復(fù)上述構(gòu)造ARP請(qǐng)求報(bào)文并發(fā)送的步驟;如果某鏈表的計(jì)數(shù)器達(dá)到3次,在預(yù)定時(shí)間內(nèi)仍未收到ARP回應(yīng)報(bào)文,則確認(rèn)該路由設(shè)備與下一跳網(wǎng)絡(luò)設(shè)備之間的鏈路或者是下一跳網(wǎng)絡(luò)設(shè)備有故障,或者是下一跳網(wǎng)絡(luò)設(shè)備根本不存在等原因,使下一跳網(wǎng)絡(luò)設(shè)備不能夠進(jìn)行正常的報(bào)文轉(zhuǎn)發(fā)。需要根據(jù)該鏈表中的路由將收到ARP回應(yīng)報(bào)文表中對(duì)應(yīng)的記錄刪除,該刪除的記錄對(duì)應(yīng)的路由表中所有與該下一跳網(wǎng)絡(luò)設(shè)備相關(guān)的路由都要設(shè)置無(wú)效標(biāo)記。
上述預(yù)定時(shí)間、預(yù)定間隔、預(yù)定次數(shù)都可根據(jù)實(shí)際應(yīng)用靈活配置,合理設(shè)置上述各數(shù)據(jù),可在節(jié)約網(wǎng)絡(luò)資源的前提下有效的控制報(bào)文轉(zhuǎn)發(fā)。確保路由設(shè)備可靠、安全的將報(bào)文轉(zhuǎn)發(fā)至目的地址。
利用本發(fā)明進(jìn)行報(bào)文轉(zhuǎn)發(fā)控制的具體應(yīng)用仍根據(jù)圖1進(jìn)行說(shuō)明。
在圖1中,路由設(shè)備1中的路由表如表1所示,根據(jù)表1建立HASH表,進(jìn)行HASH運(yùn)算后,路由A和路由C放入一個(gè)鏈表中,路由B和路由D放入一個(gè)鏈表中。設(shè)定收到ARP回應(yīng)報(bào)文表中有路由A、路由B、路由C、路由D對(duì)應(yīng)的記錄,設(shè)定預(yù)定次數(shù)為3,預(yù)定時(shí)間間隔為120秒,預(yù)定時(shí)間為10秒。遍歷HASH表,為網(wǎng)絡(luò)設(shè)備2和網(wǎng)絡(luò)設(shè)備3構(gòu)造ARP報(bào)文,為每個(gè)鏈表設(shè)置計(jì)數(shù)器,各計(jì)數(shù)器開(kāi)始計(jì)數(shù)。
為網(wǎng)絡(luò)設(shè)備2構(gòu)造的ARP報(bào)文經(jīng)Ethernet1/0/0端口發(fā)送至網(wǎng)絡(luò)設(shè)備2,由于網(wǎng)絡(luò)設(shè)備2癱瘓,或者是從路由設(shè)備1到網(wǎng)絡(luò)設(shè)備2中間的二層設(shè)備或鏈路出現(xiàn)故障,從而導(dǎo)致網(wǎng)絡(luò)設(shè)備2接收不到ARP報(bào)文,或不能夠回應(yīng)ARP報(bào)文;路由設(shè)備1在10秒內(nèi)接收不到網(wǎng)絡(luò)設(shè)備2的ARP回應(yīng)報(bào)文,該鏈表的計(jì)數(shù)器的值為1,不清零。
為網(wǎng)絡(luò)設(shè)備3構(gòu)造的ARP報(bào)文經(jīng)Ethernet1/0/1端口發(fā)送至網(wǎng)絡(luò)設(shè)備3,由于網(wǎng)絡(luò)設(shè)備正常且從路由設(shè)備1到網(wǎng)絡(luò)設(shè)備3中間的二層設(shè)備或鏈路正常,網(wǎng)絡(luò)設(shè)備3在接收到ARP報(bào)文后回應(yīng)ARP報(bào)文;路由設(shè)備1在10秒內(nèi)接收到網(wǎng)絡(luò)設(shè)備2的ARP回應(yīng)報(bào)文,該鏈表的計(jì)數(shù)器清零。將該鏈表對(duì)應(yīng)的路由表中的路由B和路由D設(shè)置有效標(biāo)記。
隔120秒后,再次遍歷HASH表,向網(wǎng)絡(luò)設(shè)備2和網(wǎng)絡(luò)設(shè)備3發(fā)送ARP報(bào)文等的過(guò)程和上述過(guò)程相同,如果路由設(shè)備1在10秒內(nèi)仍接收不到網(wǎng)絡(luò)設(shè)備2的ARP回應(yīng)報(bào)文,該鏈表的計(jì)數(shù)器的值為2。當(dāng)該鏈表的計(jì)數(shù)器的值為3時(shí),仍接收不到網(wǎng)絡(luò)設(shè)備2的ARP回應(yīng)報(bào)文,刪除ARP表中路由A和路由C對(duì)應(yīng)的記錄,并將該鏈表對(duì)應(yīng)的路由表中的路由A和路由C設(shè)置無(wú)效標(biāo)記。
在路由設(shè)備1需要進(jìn)行報(bào)文轉(zhuǎn)發(fā)時(shí),如果路由設(shè)備1需要將目的地址為10.1.1.1的報(bào)文轉(zhuǎn)發(fā),則采用最長(zhǎng)前綴匹配的算法在與表1的目的地址進(jìn)行匹配時(shí),由于路由A為無(wú)效標(biāo)記的路由,所以匹配到的路由為路由B,路由設(shè)備1將報(bào)文從路由B進(jìn)行轉(zhuǎn)發(fā)。從而不會(huì)引起因網(wǎng)絡(luò)由設(shè)備2癱瘓,或者是從路由設(shè)備1到網(wǎng)絡(luò)設(shè)備2中間的二層設(shè)備或鏈路出現(xiàn)故障,出現(xiàn)所有網(wǎng)絡(luò)終端用戶無(wú)法訪問(wèn)10.1.1.1的情況。
在一般組網(wǎng)中要求負(fù)荷分擔(dān)而配置等價(jià)路由C、D情況下,如果路由設(shè)備1需要將目的地址為10.1.2.1的報(bào)文轉(zhuǎn)發(fā),則采用最長(zhǎng)前綴匹配的算法在與表1的目的地址進(jìn)行匹配時(shí),由于路由C為無(wú)效標(biāo)記的路由,所以匹配到的路由是路由D,路由設(shè)備1將報(bào)文從路由B進(jìn)行轉(zhuǎn)發(fā)。從而不會(huì)引起因網(wǎng)絡(luò)由設(shè)備2癱瘓,或者是從路由設(shè)備1到網(wǎng)絡(luò)設(shè)備2中間的二層設(shè)備或鏈路出現(xiàn)故障,出現(xiàn)某些網(wǎng)絡(luò)終端用戶無(wú)法訪問(wèn)10.1.2.1的情況。
如果動(dòng)態(tài)路由協(xié)議受到惡意攻擊,例如RIP(路由信息協(xié)議),網(wǎng)絡(luò)終端用戶惡意構(gòu)造下一跳不存在路由協(xié)議的報(bào)文,由于收到ARP回應(yīng)報(bào)文表中無(wú)對(duì)應(yīng)的記錄,所以路由表中該路由為無(wú)效標(biāo)記的路由,而且遍歷HASH表后,向該下一跳網(wǎng)絡(luò)設(shè)備發(fā)送ARP報(bào)文,在預(yù)定時(shí)間和預(yù)定次數(shù)內(nèi)都不能夠收到相應(yīng)的回應(yīng)報(bào)文,那么路由表中該路由仍為無(wú)效標(biāo)記的路由,從而不會(huì)影響網(wǎng)絡(luò)終端用戶正常數(shù)據(jù)的正常轉(zhuǎn)發(fā)。
雖然通過(guò)實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權(quán)利要求包括這些變形和變化。
權(quán)利要求
1.一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法,其特征在于包括a、向路由設(shè)備的路由表中所有路由的下一跳分別發(fā)送需要回應(yīng)的報(bào)文,并確定收到回應(yīng)報(bào)文的路由;b、當(dāng)路由設(shè)備需要轉(zhuǎn)發(fā)報(bào)文時(shí),根據(jù)其路由表中相應(yīng)的收到回應(yīng)報(bào)文的路由進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
2.如權(quán)利要求1所述的一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法,其特征在于所述的路由包括動(dòng)態(tài)路由協(xié)議建立的路由、靜態(tài)配置的路由。
3.如權(quán)利要求2所述的一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法,其特征在于所述的動(dòng)態(tài)路由協(xié)議包括路由信息協(xié)議、邊界路由協(xié)議、開(kāi)放式最短路徑優(yōu)先協(xié)議、中間系統(tǒng)到中間系統(tǒng)協(xié)議。
4.如權(quán)利要求1或2或3所述的一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法,其特征在于所述需要回應(yīng)的報(bào)文包括地址解析協(xié)議請(qǐng)求報(bào)文。
5.如權(quán)利要求4所述的一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法,其特征在于所述的步驟a包括a1、為路由設(shè)備的路由表中所有各不相同的下一跳構(gòu)造地址解析協(xié)議請(qǐng)求報(bào)文并將其發(fā)送;a2、判斷在預(yù)定時(shí)間內(nèi)路由設(shè)備是否收到各不相同的下一跳的回應(yīng)報(bào)文;對(duì)路由設(shè)備收到回應(yīng)報(bào)文的下一跳在路由表中對(duì)應(yīng)的路由設(shè)置有效標(biāo)記,并記錄收到回應(yīng)報(bào)文的相關(guān)信息;對(duì)路由設(shè)備未收到回應(yīng)報(bào)文的下一跳在路由表中對(duì)應(yīng)的路由設(shè)置無(wú)效標(biāo)記。
6.如權(quán)利要求5所述的一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法,其特征在于所述的步驟a1包括為路由設(shè)備路由表中所有下一跳建立哈希表;根據(jù)各下一跳的哈希運(yùn)算,將下一跳相同的路由放在一個(gè)鏈表中;對(duì)各鏈表中的下一跳構(gòu)造地址解析協(xié)議請(qǐng)求報(bào)文并將其發(fā)送。
7.如權(quán)利要求5所述的一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法,其特征在于當(dāng)所述收到回應(yīng)報(bào)文的相關(guān)信息以表的形式記錄時(shí),所述的步驟a還包括當(dāng)向路由表中添加新路由時(shí),根據(jù)所述新路由下一跳的哈西運(yùn)算,將所述新路由添加至哈希表中相應(yīng)的鏈表中,同時(shí)將所述新路由的下一跳與收到回應(yīng)報(bào)文表中的表項(xiàng)進(jìn)行匹配;對(duì)路由表中與收到回應(yīng)報(bào)文表匹配的所述新路由設(shè)置有效標(biāo)記;對(duì)路由表中與收到回應(yīng)報(bào)文表不匹配的所述新路由設(shè)置無(wú)效標(biāo)記。
8.如權(quán)利要求7所述的一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法,其特征在于所述的步驟a還包括當(dāng)所述收到回應(yīng)報(bào)文表中的記錄刪除時(shí),對(duì)所述路由表中對(duì)應(yīng)的路由設(shè)置無(wú)效標(biāo)記。
9.如權(quán)利要求8所述的一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法,其特征在于所述收到回應(yīng)報(bào)文表中的記錄可根據(jù)預(yù)定老化機(jī)制而刪除;所述的預(yù)定老化機(jī)制包括設(shè)置預(yù)定次數(shù);根據(jù)預(yù)定間隔遍歷HASH表,對(duì)各鏈表的下一跳構(gòu)造地址解析協(xié)議請(qǐng)求報(bào)文并將其發(fā)送,同時(shí)各鏈表的計(jì)次值遞增;分別判斷各鏈表的計(jì)次值是否達(dá)到預(yù)定次數(shù);如果未達(dá)到所述預(yù)定次數(shù),判斷路由設(shè)備在預(yù)定時(shí)間內(nèi)是否收到回應(yīng)報(bào)文;如果收到回應(yīng)報(bào)文,將預(yù)定次數(shù)的計(jì)次值清零;如果未收到回應(yīng)報(bào)文,返回所述根據(jù)預(yù)定間隔遍歷哈希表,對(duì)各鏈表的下一跳構(gòu)造地址解析協(xié)議請(qǐng)求報(bào)文并將其發(fā)送,同時(shí)各鏈表的計(jì)次值遞增的步驟;如果達(dá)到所述預(yù)定次數(shù),將收到回應(yīng)報(bào)文表中的相應(yīng)記錄刪除。
10.如權(quán)利要求5或6或7或8或9所述的一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法,其特征在于所述的步驟b包括當(dāng)路由設(shè)備需要轉(zhuǎn)發(fā)的報(bào)文時(shí),根據(jù)其路由表中相應(yīng)的有效標(biāo)記的路由進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
全文摘要
本發(fā)明提供一種在路由設(shè)備中實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā)的方法,包括向路由設(shè)備的路由表中所有路由的下一跳分別發(fā)送需要回應(yīng)的報(bào)文,并確定收到回應(yīng)報(bào)文的路由;當(dāng)路由設(shè)備需要轉(zhuǎn)發(fā)報(bào)文時(shí),根據(jù)其路由表中相應(yīng)的收到回應(yīng)報(bào)文的路由進(jìn)行報(bào)文轉(zhuǎn)發(fā)。利用本發(fā)明,根據(jù)網(wǎng)絡(luò)中下一跳網(wǎng)絡(luò)設(shè)備的有效性對(duì)路由表進(jìn)行優(yōu)化,確保報(bào)文轉(zhuǎn)發(fā)的路由可靠有效,從而實(shí)現(xiàn)了提高網(wǎng)絡(luò)安全性、可靠性的目的。
文檔編號(hào)H04L12/24GK1585377SQ0315540
公開(kāi)日2005年2月23日 申請(qǐng)日期2003年8月22日 優(yōu)先權(quán)日2003年8月22日
發(fā)明者賈海波 申請(qǐng)人:華為技術(shù)有限公司