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