專利名稱:改進(jìn)的用于路由器的訪問控制列表機(jī)制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信系統(tǒng)中的路由器接口,尤其涉及與這種接口相關(guān)的訪問控制列表。
背景技術(shù):
通信系統(tǒng)中的網(wǎng)際路由器在線路卡上的接口接收網(wǎng)際協(xié)議(IP)分組。一個路由器包括許多線路卡,每一個線路卡可以有多個接口。典型地,每一個接口都有一個存儲在三態(tài)內(nèi)容尋址存儲器(TCAM)內(nèi)的線路卡上的相關(guān)訪問控制列表(ACL)。ACL是一組應(yīng)用于IP分組的規(guī)則,以便過濾不想要的分組,或者執(zhí)行其他有關(guān)分組的操作,諸如計數(shù)或者復(fù)制。每個規(guī)則包括一個密鑰和一個操作。當(dāng)一個IP分組經(jīng)由一個接口到達(dá)時,路由器從該分組中提取特定字段,以形成一個密鑰,并且查找與接口相關(guān)的ACL以獲得具有匹配密鑰的規(guī)則。如果找到規(guī)則,則濾波器將與該規(guī)則相關(guān)的操作應(yīng)用到該分組。
接口可以有相同的規(guī)則組。一些路由器利用這一點來簡化配置和故障診斷,并且提高穩(wěn)定性。規(guī)則組可在ACL之間復(fù)制。然而,一旦ACL被裝載入TCAM,每個接口的每個ACL的每個規(guī)則就分別被存儲和訪問。因此,沒有節(jié)省TCAM存儲空間。其他的路由器有一定改進(jìn),是在兩個或者多個接口之間共享一個單獨的ACL。雖然這有些減少所需TCAM存儲空間量,但這也只在接口共有所有規(guī)則的情況下才是可能的。
TCAM存儲容量的提高沒有訪問速率的提高發(fā)展得快。由于與TCAM相關(guān)的空間和功率限制以及TCAM的成本,因此將每個線路卡上的TCAM的數(shù)量和尺寸保持在最小值是更好的。在一些情況下,這可能是困難的,因為路由器通常支持?jǐn)?shù)百個接口以及數(shù)百個ACL,需要大的TCAM存儲空間。最小化存儲的規(guī)則總數(shù)的線路接口卡允許使用更少或者更小的TCAM,從而節(jié)省了空間和功率??蛇x擇地,對于相同的空間和功率使用,這種卡能夠支持更多的規(guī)則。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個方面,提供了一種方法,用于確定在數(shù)據(jù)分組路由器的第一接口到達(dá)的數(shù)據(jù)分組上應(yīng)用的規(guī)則。至少兩組規(guī)則與所述第一接口相關(guān),其中至少一組規(guī)則是還與第二接口相關(guān)的共享規(guī)則組。確定所述數(shù)據(jù)分組的密鑰。查找所述至少兩組規(guī)則,以獲得至少一個匹配所述密鑰的規(guī)則。
根據(jù)本發(fā)明的另一個方面,提供了一種方法,用于在數(shù)據(jù)分組路由器中提供安全,其中在所述數(shù)據(jù)分組路由器,數(shù)據(jù)分組到達(dá)第一接口。至少兩組規(guī)則與所述第一接口相關(guān),其中至少一組規(guī)則是還與第二接口相關(guān)的共享規(guī)則組,所述至少兩組規(guī)則中的每一個規(guī)則都有一個相關(guān)的操作。確定所述數(shù)據(jù)分組的密鑰。查找所述至少兩組規(guī)則,以獲得至少一個匹配所述密鑰的規(guī)則。如果找到至少一個匹配所述密鑰的規(guī)則,則將與所述至少一個規(guī)則的每一個規(guī)則相關(guān)的操作應(yīng)用到所述數(shù)據(jù)分組。
提供一種用于實現(xiàn)本發(fā)明方法的線路卡。本發(fā)明的方法還可以作為指令存儲在計算機(jī)可讀介質(zhì)中。
本發(fā)明的方法和線路接口卡允許在接口之間共享規(guī)則,同時還允許使用單個接口卡的特定規(guī)則。通過在接口之間共享規(guī)則而不僅是復(fù)制規(guī)則,節(jié)省了存儲器的存儲空間(如TCAM),從而減少了線路卡的成本和功率消耗。
通過以下結(jié)合附圖的優(yōu)選實施例的詳細(xì)描述,本發(fā)明的特征和優(yōu)點將變得更加清楚,其中圖1是根據(jù)本發(fā)明的一個實施例的路由器的框圖;圖2是圖1中接口卡和ACL之間的關(guān)系舉例的框圖;圖3是根據(jù)本發(fā)明的一個實施例的方法流程圖,其中圖1的濾波器采用該方法訪問ACL內(nèi)的規(guī)則。
應(yīng)當(dāng)注意到,在附圖中,同樣的特征具省相同的標(biāo)記。
具體實施例方式
參考圖1,圖中示出了根據(jù)本發(fā)明的優(yōu)選實施例的路由器10。路由器10包括線路卡12。線路卡12包括四個網(wǎng)際協(xié)議(IP)分組可到達(dá)的接口14,16,18和20。線路卡12還包括三態(tài)內(nèi)容尋址存儲器(TCAM)24。該TCAM存儲多個訪問控制列表(ACL)。至少一個ACL是特定ACL 26,至少一個ACL是共享ACL 28。每個接口與至少一個ACL相關(guān),如下所述。
線路卡12還包括濾波器34。對于每個IP分組,濾波器34從IP分組包頭中提取特定字段以構(gòu)造密鑰,在與IP分組到達(dá)的接口相關(guān)的ACL中查找與從IP分組中獲得的密鑰相對應(yīng)的規(guī)則,并執(zhí)行與任何找到的規(guī)則相關(guān)的操作。濾波器34包括用于定位和應(yīng)用與收到的IP分組對應(yīng)的規(guī)則的指令,并且優(yōu)選地,指令采用在處理器上運行的軟件的形式。更一般地,濾波器可以包括采用處理器內(nèi)的軟件或者硬件的任意組合形式的指令,該處理器包括集成電路內(nèi)的硬件。處理器不需要是單個設(shè)備,但是指令最好位于多于一個的設(shè)備上。如果采用軟件的形式,指令可以存儲在計算機(jī)可讀介質(zhì)上。
每個特定ACL 26與單獨一個接口相關(guān),并且每個接口可以與對應(yīng)的特定ACL相關(guān)。每個特定ACL包括其對應(yīng)的接口特有的規(guī)則。這些規(guī)則可以包括相關(guān)的操作,諸如分組拒絕,分組接受,分組計數(shù)和分組復(fù)制。每個共享ACL 28與至少兩個接口相關(guān),并且每個接口與至少一個共享ACL相關(guān)。每個共享ACL 28包括一些或者所有接口共有的規(guī)則。參考圖2,示出了接口和ACL之間的關(guān)系舉例。每個接口具有一個相關(guān)的特定ACL 26。兩個接口14和16與一個共享ACL 28a相關(guān),并且所有四個接口與一個共享ACL 28b相關(guān)。每個特定ACL 26包括可以應(yīng)用于在對應(yīng)接口到達(dá)的IP分組的規(guī)則。共享ACL 28a包括可以應(yīng)用于在相關(guān)的兩個接口14和16中的任意一個到達(dá)的IP分組的規(guī)則。共享ACL 28b包括可以應(yīng)用于在任意一個接口到達(dá)的IP分組的規(guī)則。
典型地,由于多數(shù)接口具有的與至少一個其他接口共有的規(guī)則比特定用于該接口的規(guī)則多,因此可以實現(xiàn)TCAM存儲量的有效節(jié)省,也能實現(xiàn)擴(kuò)大縮放(scaling)效益。例如,考慮每個接口75個和其他接口共有的規(guī)則,并有25個特定用于該接口的規(guī)則的情況,并且假定有100個接口。如果每個接口有自己唯一的ACL,則必須提供可存儲100個具有100個規(guī)則的表,或者10000個規(guī)則的TCAM存儲量。通過利用共享ACL,并且通過允許用于一個接口的規(guī)則可以存儲在超過一個的ACL中,TCAM存儲量可以為只有一個具有75個規(guī)則的表和100個具有25個規(guī)則的表,或者全部2575個規(guī)則。
返回圖1,路由器10還包括多個其他的線路卡36,其細(xì)節(jié)在圖1中未示出。每一個線路卡36都類似于線路卡12,包括多個接口,濾波器,TCAM和多個ACL,盡管線路卡之間的ACL的數(shù)量可以不同。
參考圖3,圖中示出了根據(jù)本發(fā)明的一個實施例的恢復(fù)和應(yīng)用用于IP分組的規(guī)則的方法。在步驟50,一個IP分組到達(dá)接口14,16,18和20中的一個。該IP分組具有IP包頭和傳輸控制協(xié)議(TCP)報頭。在步驟52,濾波器34從IP分組的IP包頭和TCP報頭內(nèi)的信息中確定用于該分組的密鑰。密鑰可以從諸如IP源地址,IP目的地址,ICMP類型/代碼,協(xié)議數(shù)量,TCP/UDP源端口以及TCP/UDP目的端口這樣的信息中確定。
濾波器34包括接口查詢表,用于確定哪個ACL或者哪些ACL將被查找。在步驟54,濾波器34在與接口相關(guān)的ACL內(nèi)查找匹配該密鑰的規(guī)則。如果在步驟56找到一個規(guī)則,則在步驟58,濾波器將與該規(guī)則相關(guān)的操作應(yīng)用到該IP分組。這樣的操作例子包括分組拒絕,接受分組,計數(shù)分組和復(fù)制分組。典型地,有至少兩個與該接口相關(guān)的ACL,盡管在線路卡上可以有多個只與一個ACL相關(guān)的接口。如果在步驟56沒有找到一個規(guī)則,或者如果找到規(guī)則,而一旦與該規(guī)則相關(guān)的操作已經(jīng)在步驟58被應(yīng)用了,那么在步驟60,濾波器34確定是否存在另一個與該接口相關(guān)的ACL。如果在步驟60,濾波器34確定另一個與該接口相關(guān)的ACL存在,則返回步驟54,濾波器34在該ACL內(nèi)查找匹配該密鑰的規(guī)則。如果在步驟60,濾波器34確定另一個與該接口相關(guān)的ACL不存在,則濾波器已經(jīng)完成了查找與接口相關(guān)的規(guī)則的工作。
濾波器34可以以任意順序查找與一個接口相關(guān)的ACL。然而,在優(yōu)選實施例中,濾波器保持每個接口的優(yōu)先順序不變。該優(yōu)先順序可以由用戶來配置。
不是每一個共享規(guī)則都需要存儲在共享ACL中,可以在不同的特定ACL上有規(guī)則的副本。然而,這將增加使用的TCAM存儲量。為了最小化所需的TCAM存儲量,每個共享規(guī)則應(yīng)當(dāng)存儲在共享ACL中。
線路卡12可以具有多個TCAM,每個TCAM都包括至少一個ACL。
本發(fā)明已經(jīng)就具有四個接口,一個TCAM,兩個特定ACL和四個共享ACL的線路卡進(jìn)行了描述。更一般地,線路卡具有多個接口和至少兩個ACL,其中至少一個ACL是共享ACL。共享ACL或者包括在所有接口之間共享的規(guī)則,或者包括僅在接口的一個子集之間共享的規(guī)則。接口可以與任何數(shù)量的共享ACL相關(guān),并且可以與或者不與一個特定ACL相關(guān)。然而,至少一個接口與至少兩個ACL相關(guān),其中至少一個ACL是共享ACL。這樣,就節(jié)省了TCAM存儲空間。
對與每個接口相關(guān)的ACL的數(shù)量的實際限制是ACL訪問時間。訪問ACL所花費的時間必須少于處理一個分組可用的時間。例如,OC-48線路速率需要大約6.1Mpps(每秒百萬個分組)的分組處理速率。當(dāng)前TCAM訪問速率在每秒60到100百萬次查詢的水平,因此,與每個接口相關(guān)的ACL的數(shù)量限制在8左右。
本發(fā)明已經(jīng)就IP分組,路由器和ACL進(jìn)行了描述。更一般地,本發(fā)明可以應(yīng)用于任何分組交換機(jī)(諸如以太網(wǎng)交換機(jī),ATM交換機(jī)或者Ipv6交換機(jī)),其包括接口特定規(guī)則組,該規(guī)則組包含在進(jìn)入的分組上應(yīng)用的規(guī)則。例如,本發(fā)明可以應(yīng)用于更普通的基于規(guī)則的安全功能,諸如速率限制(rate-limiting)和速率管制(rate-policing),基于策略的轉(zhuǎn)送,優(yōu)先權(quán)分配和分類。用于收到的分組的密鑰可以通過濾波器利用分組包頭信息的任意變化來確定。
此處所介紹的實施例僅是示范性的,本領(lǐng)域的技術(shù)人員會理解可以不脫離本發(fā)明的精神,對上述實施例進(jìn)行變化。本發(fā)明的范圍完全由所附的權(quán)利要求來限定。
權(quán)利要求
1.一種用于確定在數(shù)據(jù)分組路由器的第一接口到達(dá)的數(shù)據(jù)分組上應(yīng)用的規(guī)則的方法,包括以下步驟a.將至少兩組規(guī)則與所述第一接口相關(guān),其中至少一組規(guī)則是還與第二接口相關(guān)的共享規(guī)則組;b.確定所述數(shù)據(jù)分組的密鑰;以及c.查找所述至少兩組規(guī)則,以獲得至少一個匹配所述密鑰的規(guī)則。
2.根據(jù)權(quán)利要求1所述的方法,其中所述將至少兩組規(guī)則與所述第一接口相關(guān)的步驟包括將至少一組規(guī)則單獨與所述第一接口相關(guān)。
3.根據(jù)權(quán)利要求1所述的方法,其中所述數(shù)據(jù)分組是網(wǎng)際協(xié)議(IP)分組,所述接口位于路由器內(nèi),所述將至少兩組規(guī)則與所述第一接口相關(guān)的步驟包括將至少兩個訪問控制列表(ACL)與所述第一接口相關(guān)。
4.根據(jù)權(quán)利要求3所述的方法,其中每一個規(guī)則有一個相關(guān)的操作,每一個相關(guān)的操作是分組拒絕,分組允許,分組計數(shù)和分組復(fù)制中的一個。
5.根據(jù)權(quán)利要求3所述的方法,其中所述密鑰從包含在所述IP分組包頭內(nèi)的信息中確定。
6.根據(jù)權(quán)利要求5所述的方法,其中確定所述密鑰的信息包括IP源地址,IP目的地址,協(xié)議數(shù)量,傳輸控制協(xié)議/用戶數(shù)據(jù)報文協(xié)議(TCP/UDP)源端口,TCP/UDP目的端口和網(wǎng)間控制報文協(xié)議代碼中的至少一個。
7.根據(jù)權(quán)利要求1所述的方法,其中所述查找所述至少兩組規(guī)則的步驟包括以下步驟a.確定所述至少兩組規(guī)則的優(yōu)先順序;以及b.按照與所述優(yōu)先順序一致的順序,在所述至少兩組規(guī)則中查找匹配所述密鑰的規(guī)則。
8.一種在數(shù)據(jù)分組路由器中提供安全的方法,其中數(shù)據(jù)分組到達(dá)所述數(shù)據(jù)分組路由器的第一接口,所述方法包括以下步驟a.將至少兩組規(guī)則與所述第一接口相關(guān),其中至少一組規(guī)則是還與第二接口相關(guān)的共享規(guī)則組,所述至少兩組規(guī)則中的每一個規(guī)則都有一個相關(guān)的操作;b.確定所述數(shù)據(jù)分組的密鑰;c.查找所述至少兩組規(guī)則,以獲得至少一個匹配所述密鑰的規(guī)則;以及d.如果找到至少一個匹配所述密鑰的規(guī)則,則將與所述至少一個規(guī)則的每一個規(guī)則相關(guān)的操作應(yīng)用到所述數(shù)據(jù)分組。
9.根據(jù)權(quán)利要求8所述的方法,其中所述將至少兩組規(guī)則與所述第一接口相關(guān)的步驟包括將至少一組規(guī)則單獨與所述第一接口相關(guān)。
10.根據(jù)權(quán)利要求8所述的方法,其中所述數(shù)據(jù)分組是網(wǎng)際協(xié)議(IP)分組,所述接口位于路由器內(nèi),所述將至少兩組規(guī)則與所述第一接口相關(guān)的步驟包括將至少兩個訪問控制列表(ACL)與所述第一接口相關(guān)。
11.根據(jù)權(quán)利要求10所述的方法,其中每一個相關(guān)的操作是分組拒絕,分組允許,分組計數(shù)和分組復(fù)制中的一個。
12.根據(jù)權(quán)利要求10所述的方法,其中所述密鑰從包含在IP分組包頭內(nèi)的信息中確定。
13.根據(jù)權(quán)利要求12所述的方法,其中確定所述密鑰的信息包括IP源地址,IP目的地址,協(xié)議數(shù)量,傳輸控制協(xié)議/用戶數(shù)據(jù)報文協(xié)議(TCP/UDP)源端口,TCP/UDP目的端口和網(wǎng)間控制報文協(xié)議代碼中的至少一個。
14.根據(jù)權(quán)利要求8所述的方法,其中所述查找所述至少兩組規(guī)則的步驟包括以下步驟a.確定所述至少兩組規(guī)則的優(yōu)先順序;以及b.按照與所述優(yōu)選順序一致的順序,在所述至少兩組規(guī)則中查找匹配所述密鑰的規(guī)則。
15.一種線路卡,包括a.第一接口;b.第二接口;c.至少與所述第一接口相關(guān)的第一組規(guī)則;d.與所述第一接口和所述第二接口相關(guān)的第二組規(guī)則;e.用于查找所述第一組規(guī)則和所述第二組規(guī)則,以獲得至少一個特定用于到達(dá)所述第一接口的單個數(shù)據(jù)分組的規(guī)則的裝置。
16.根據(jù)權(quán)利要求15所述的線路卡,其中所述第一組規(guī)則和所述第二組規(guī)則是訪問控制列表(ACL)。
17.根據(jù)權(quán)利要求15所述的線路卡,其中所述第一組規(guī)則僅與所述第一接口相關(guān)。
18.根據(jù)權(quán)利要求17所述的線路卡,進(jìn)一步包括a.第三接口;以及b.與所述第一接口和所述第二接口相關(guān)的第三組規(guī)則;其中,用于查找至少一個特定用于到達(dá)所述第一接口的單個數(shù)據(jù)分組的規(guī)則的裝置進(jìn)一步包括查找所述第三組規(guī)則,以獲得這樣一個規(guī)則。
19.根據(jù)權(quán)利要求15所述的線路卡,進(jìn)一步包括用于根據(jù)優(yōu)先順序?qū)⑺龅谝唤M規(guī)則和所述第二組規(guī)則與所述第一接口相關(guān)的裝置,其中用于查找規(guī)則的裝置包括按照優(yōu)先順序規(guī)定的順序查找所述第一組規(guī)則和所述第二組規(guī)則。
20.一種分組交換機(jī),包括權(quán)利要求15所述的線路卡。
21.一種包括用于在數(shù)據(jù)分組路由器中提供安全的指令的計算機(jī)可讀介質(zhì),其中數(shù)據(jù)分組到達(dá)所述數(shù)據(jù)分組路由器的第一接口,該方法包括a.用于將至少兩組規(guī)則與所述第一接口相關(guān)的指令,其中至少一組規(guī)則是還與第二接口相關(guān)的共享規(guī)則組,所述至少兩組規(guī)則的每一個規(guī)則都有一個相關(guān)的操作;b.用于確定所述數(shù)據(jù)分組的密鑰的指令;c.用于查找所述至少兩組規(guī)則,以獲得至少一個匹配所述密鑰的規(guī)則的指令;以及d.用于在找到至少一個匹配所述密鑰的規(guī)則時,將與所述至少一個規(guī)則的每一個規(guī)則相關(guān)的操作應(yīng)用到所述數(shù)據(jù)分組的指令。
全文摘要
提供了一種用于維護(hù)數(shù)據(jù)分組路由器中線路卡上TCAM內(nèi)的訪問控制列表(ACL)的方法和設(shè)備,將規(guī)則應(yīng)用于進(jìn)入的數(shù)據(jù)分組。每個接口可以與多個ACL相關(guān),多個接口可以與單個共享ACL相關(guān)。共享ACL包括可應(yīng)用于超過一個接口的規(guī)則。其他ACL是特定用于特定接口的。當(dāng)查找規(guī)則以應(yīng)用于進(jìn)入的數(shù)據(jù)分組時,濾波器查找與數(shù)據(jù)分組到達(dá)的接口相關(guān)的特定ACL和共享ACL。利用共享ACL,減少了共有規(guī)則的復(fù)制,從而減少存儲在線路卡上的規(guī)則的總數(shù),并節(jié)省了存儲器存儲空間。本發(fā)明還適用于除了ACL的規(guī)則組。
文檔編號H04L29/06GK1606294SQ200410095909
公開日2005年4月13日 申請日期2004年10月8日 優(yōu)先權(quán)日2003年10月7日
發(fā)明者J·施特內(nèi) 申請人:阿爾卡特公司