專利名稱:用于層間綁定檢驗的方法和裝置的制作方法
技術領域:
本發(fā)明涉及信息網(wǎng)絡領域,更具體地涉及用于對由層間綁定協(xié)議(inter-layer binding protocol)的分組所創(chuàng)建的綁定進行檢驗的方法和裝置。
背景技術:
可用于保護和穿透聯(lián)網(wǎng)環(huán)境的工具庫在數(shù)量和能力兩方面都非常出色。這些工具中的一些是非常專門化的,而另一些是多目的的,并且作為用于更大的工具包的構建模塊。這種工具中的一種是網(wǎng)絡“嗅探器”(sniffer)。最一般形式的網(wǎng)絡“嗅探”包括從網(wǎng)絡攔截通信(例如幀或分組)和查看其內容。此能力的普及已經(jīng)有一段時間,并且已被網(wǎng)絡管理員(例如故障檢修問題)、所謂的“破解者”(cracker,攔截密碼和文件的人)等所采用。應當注意到,相對而言,網(wǎng)絡嗅探近來才在交換網(wǎng)絡上成為可能。正如人們可能希望的那樣,如今出現(xiàn)了允許在交換網(wǎng)絡上進行網(wǎng)絡嗅探的工具。以下簡要說明非交換網(wǎng)絡的工作方式和如何對這種網(wǎng)絡進行嗅探,以及交換網(wǎng)絡的工作方式和如何對這些網(wǎng)絡進行嗅探。
圖1A是一般地示出非交換網(wǎng)絡環(huán)境的體系結構的框圖,所述體系結構在圖1A中示出為網(wǎng)絡100。網(wǎng)絡100包括多個節(jié)點(節(jié)點102(1)-(N)),這些節(jié)點由集線器106耦合到路由器104。節(jié)點102(1)-(N)中的每個節(jié)點都耦合到集線器106的一個單獨的端口(未示出)。在圖1A所示的非交換網(wǎng)絡環(huán)境中,存在網(wǎng)段的概念。段(segment)是一種存在于路由器、橋接器、集線器或交換機背后的網(wǎng)絡體系結構,其中每個節(jié)點是從每個其他節(jié)點直接可尋址的。在某些網(wǎng)絡中這也稱為子網(wǎng)。于是,在圖1A中將節(jié)點102(1)-(N)示出為在一個段中(在圖1A中示出為子網(wǎng)108)。
在非交換環(huán)境中,以廣播的方式來處理幀。即,當一個節(jié)點發(fā)送幀時,該幀就被段上的每個節(jié)點“看見”。而每個節(jié)點又大致地檢查該幀,以了解該幀是否被定址到給定節(jié)點。如果不是,則給定節(jié)點丟棄所述幀。然而,如果所述節(jié)點是預期的接收者,則所述節(jié)點接受所述幀以進行處理。為了這里的討論,將節(jié)點102(2)指定為采用嗅探主體(sniffingagent)的主機。節(jié)點102(1)和102(3)代表僅僅試圖相互通信的“無辜者”。
圖1B的流程圖示出了當非交換網(wǎng)絡中的一個和多個數(shù)據(jù)流被嗅探到時,該網(wǎng)絡中流量的流動。為了讓節(jié)點用作嗅探主體,該節(jié)點的網(wǎng)絡接口被設置為“混雜”(promiscuous)模式。設置此模式通常需要在該節(jié)點處的根訪問或管理員訪問。在設置此模式之后,該節(jié)點的網(wǎng)絡接口就會將這些幀傳遞到更高的網(wǎng)絡層,并希望更高層處的某個軟件會處理這些幀。
圖1B所示的過程開始于節(jié)點102(1)發(fā)送幀,并在該幀中指示出該幀將被發(fā)送到節(jié)點102(3)(步驟150)。集線器106隨后將所述幀廣播到它的每個活動端口(步驟155)。節(jié)點102(2)接收所述幀,并檢查該幀中的目的地址(步驟160和165)。因為節(jié)點102(2)被設置成“混雜”模式(步驟170),所以節(jié)點102(2)接受所述幀(雖然該幀并未定址到節(jié)點102(2))(步驟175)。如上所述,將節(jié)點的網(wǎng)絡接口設置成“混雜”模式使該網(wǎng)絡接口可以接受任意幀,而不管該幀中的地址(例如MAC(媒體訪問控制)地址)如何。然而,即使所述接口將會保存所述幀,通常也需要某種更高級的軟件來處理數(shù)據(jù)。接下來,節(jié)點102(1)-(N)中的其他節(jié)點(例如耦合到集線器106上的活動端口的其他節(jié)點)接收所述幀,并確定它們不是預期的主機(步驟160、165和170),因此丟棄所述幀(步驟180)。(當然,如果節(jié)點102(2)的網(wǎng)絡接口未被設置成“混雜”模式,節(jié)點102(2)就也會忽略所述分組。)如果是預期目的地(節(jié)點102(3)),則節(jié)點102(3)也接收所述幀,并檢查該幀的目的地址(步驟160和165)。在節(jié)點102(3)確定它是預期的主機之后(步驟165),節(jié)點102(3)進一步處理所述幀(步驟185)。
為全面起見,應當注意,步驟160/165/170/180,160/165/170/175以及160/165/185可以進行種種調換或者同時發(fā)生,正如為了這里的討論,對哪個節(jié)點將會首先接收所述幀進行的預測并不重要一樣。為了實用,可以假定這些操作同時發(fā)生,而不失一般性。
從圖1A和1B中可以看出,非交換環(huán)境易受到嗅探。這種環(huán)境幾乎無需嗅探主體一方做出額外的努力,因為集線器將幀廣播到所有活動端口。前面已經(jīng)暗示了,幾種這樣的嗅探實用程序(utility)是存在并且公開可以獲得的。這種可能性使得不道德者在被稱為“中間人”(man-in-the-middle)攻擊的設置中,當信息在“無辜”節(jié)點傳遞的時候查看該信息,而不被這些節(jié)點或其用戶注意到。而且,一旦對數(shù)據(jù)流進行嗅探的黑客(hacker)將其自身插入到無辜方之間,該黑客就可以以完全透明的方式,自由地對任意一方生成各種回復。
圖2A是一般地示出交換網(wǎng)絡環(huán)境的體系結構的框圖,所述體系結構在圖2A中示出為網(wǎng)絡200。在交換網(wǎng)絡環(huán)境中,網(wǎng)段的概念仍然存在,但這種網(wǎng)段僅包括交換機和所關心的節(jié)點,并且以直接的方式來處理幀。即,從第一節(jié)點到第二節(jié)點的幀僅通過在所述第一和第二節(jié)點之間完成連接所必需的交換機中的電路而發(fā)送。
網(wǎng)絡200包括多個節(jié)點(節(jié)點202(1)-(N)),這些節(jié)點由交換機206耦合到路由器204。節(jié)點202(1)-(N)中的每個節(jié)點都耦合到交換機206的一個單獨的端口(未示出)。在圖2A所示的交換網(wǎng)絡環(huán)境中,存在網(wǎng)段的概念。段是一種存在于路由器、橋接器或交換機背后的網(wǎng)絡體系結構,其中每個節(jié)點是從每個其他節(jié)點直接可尋址的。在某些網(wǎng)絡中這也稱為子網(wǎng)。于是,在圖1A中將節(jié)點202(1)和202(3)示出為在一個段中(在圖2A中示出為子網(wǎng)208)。
圖2B的流程圖示出了交換網(wǎng)絡中流量的正常流動。首先,節(jié)點202(1)發(fā)送幀,并在該幀中指示出該幀將被發(fā)送到節(jié)點202(3)(步驟210)。交換機206隨后檢查所述幀,并確定應對哪個節(jié)點(端口)進行連接(步驟220)。一旦做出了這一確定,交換機206就在節(jié)點202(1)和節(jié)點202(3)所分別耦合的端口之間配置連接(步驟230)。交換機206隨后將所述幀轉發(fā)到其預期節(jié)點,即節(jié)點202(3)(步驟240)。一旦節(jié)點202(3)接收到所述幀,節(jié)點202(3)就檢查所述幀的目的地址,以確定節(jié)點202(3)是不是該幀的預期目的地(步驟250)。如果此地址確定指示出節(jié)點202(3)不是正確的目的地,則不處理所述幀。否則,節(jié)點202(3)就對所述幀執(zhí)行理所當然的處理(步驟260)。
這種操作模式具有某些固有的優(yōu)點1)較低的網(wǎng)絡流量,因為不將幀廣播到每個節(jié)點,換句話說是通過減少沖突域而帶來較高的帶寬。
2)較低的節(jié)點處理開銷,這是由于每個節(jié)點僅需處理要去往該節(jié)點的幀而導致的。
然而,也存在一些折衷。例如,給交換機帶來了更高的開銷處理要求,因為交換機必須忙于創(chuàng)建機器之間的虛擬連接。
可見,因為交換網(wǎng)絡不廣播大多數(shù)幀,所以交換網(wǎng)絡不像非交換網(wǎng)絡那樣易遭受嗅探。然而,也有若干方法可用來對交換網(wǎng)絡進行嗅探。這種方法的一個例子是地址解析協(xié)議(ARP)哄騙(spoofing),下面將對其進行簡要論述。
互聯(lián)網(wǎng)協(xié)議(IP)的基本操作之一是圍繞ARP(地址解析協(xié)議)請求和回復來進行的。一般而言,當網(wǎng)絡上的第一節(jié)點想要與第二節(jié)點進行通信時,第一節(jié)點發(fā)送ARP請求。第二節(jié)點將會發(fā)送包括其MAC地址在內的ARP回復。即使在交換網(wǎng)絡中,這個初始ARP請求也是以廣播的方式發(fā)送的。第三節(jié)點可以制作并發(fā)送未經(jīng)請求的假的ARP回復到第一節(jié)點。此假ARP回復將會指明,第三節(jié)點具有第二節(jié)點的IP地址。由于第三節(jié)點將其自身表示為具有預期的IP地址,因此第一節(jié)點隨后無意地將流量發(fā)送到第三節(jié)點。某些可用的工具專門用于向某些類別的機器(例如NFS服務器、HTTP服務器等)發(fā)送假的ARP回復。一種這樣的工具是“dsniff”,它適于對特定類型的流量進行嗅探。其他工具監(jiān)聽一般的ARP請求,并在該時刻發(fā)送假的ARP回復,并且非常適于對整個網(wǎng)絡進行嗅探。要使這類攻擊起作用,需要能夠將接收到的幀繼續(xù)轉發(fā)到其預期目的地。這通常是通過某種內核級或應用級的IP轉發(fā)來實現(xiàn)的。
盡管存在若干防御這種攻擊的方法,但其中每種方法都有其自身的缺點。(應當注意,這些方法中的一些同時適用于非交換網(wǎng)絡環(huán)境和交換網(wǎng)絡環(huán)境。)這些方案包括IP過濾、端口安全性和路由安全性。
通過在交換機上實現(xiàn)IP過濾,用戶直接指定允許哪些流量從每個端口流入和流出。盡管可能有效,但這種方法可能需要極大的努力來設置和管理,尤其是在動態(tài)環(huán)境的情況下。
可替換地,如果集線器或者交換機有能力實現(xiàn)端口安全性,這種措施可以幫助網(wǎng)絡的節(jié)點防御MAC泛濫(flooding)和MAC哄騙攻擊。此特征有效地防止集線器或交換機承認一個物理端口上的多于一個MAC地址。然而,像許多安全性程序一樣,這對環(huán)境造成了約束,并且增加了對管理過程和審核過程的要求。
而且,不希望將安全性推進到網(wǎng)絡節(jié)點級,這有以下幾個原因。首先,其使得安全性的源對于能夠訪問這種節(jié)點的任何人可用。而且,其還大大增加了對這種安全性措施進行管理的任務,因為每個節(jié)點必須被單獨配置為支持這種安全性措施。在節(jié)點的連接性動態(tài)變化的網(wǎng)絡環(huán)境中(例如膝上型計算機),這被證明是尤其復雜的。
發(fā)明內容
在一種實施方式中,公開了一種網(wǎng)絡設備。該網(wǎng)絡設備包括轉發(fā)引擎和檢驗引擎,檢驗引擎耦合到轉發(fā)引擎。轉發(fā)引擎被配置為如果分組是層間綁定協(xié)議分組,則將所述分組轉發(fā)到檢驗引擎。檢驗引擎被配置為檢驗層間綁定協(xié)議分組。
在一種實施方式中,公開了一種用于檢驗分組的方法。該方法包括通過確定分組是不是層間綁定協(xié)議分組來處理所述分組,并且如果所述分組是層間綁定協(xié)議分組,則檢驗所述分組。層間綁定協(xié)議分組指示第一網(wǎng)絡層地址和第二網(wǎng)絡層地址之間的綁定。
以上是對發(fā)明內容的概述,因此包含了對細節(jié)的必要簡化、概括和省略;因此,本領域技術人員應該理解到,所述發(fā)明內容僅僅是說明性的,而絕非想要進行限制。在下文所闡述的非限制性的具體實施方式
中,本發(fā)明的其他方面、創(chuàng)造性特征和優(yōu)點將會變得清楚,這些方面、創(chuàng)造性特征和優(yōu)點僅由權利要求書來定義。
通過參考附圖,本領域技術人員將會更好地理解本發(fā)明,并且清楚許多目的、特征和優(yōu)點。
圖1A是示出現(xiàn)有技術的非交換網(wǎng)絡的框圖。
圖1B是示出現(xiàn)有技術的非交換網(wǎng)絡的操作的框圖。
圖2A是示出現(xiàn)有技術的交換網(wǎng)絡的框圖。
圖2B是示出現(xiàn)有技術的交換網(wǎng)絡的操作的框圖。
圖3的流程圖一般地示出了根據(jù)本發(fā)明實施方式的層間綁定檢驗的處理。
圖4A是示出根據(jù)本發(fā)明實施方式的網(wǎng)絡的框圖。
圖4B是更詳細地示出圖4A的網(wǎng)絡的部分的框圖。
圖5是示出根據(jù)本發(fā)明實施方式的交換機的框圖。
圖6的框圖更詳細地示出了根據(jù)本發(fā)明實施方式的轉發(fā)引擎的特征。
圖7的流程圖示出了在圖5的網(wǎng)絡元件上實現(xiàn)的例如圖3所示的處理。
圖8是根據(jù)本發(fā)明的對層間綁定協(xié)議分組進行速率限制處理的流程圖。
不同附圖中相同的標號用來指示相似或相同的項目。
具體實施例方式
以下希望提供對本發(fā)明實施例的詳細描述,而不用被理解為限制發(fā)明本身。確切地說,多種變化可以落入所附權利要求書所定義的本發(fā)明的范圍之內。
引言根據(jù)本發(fā)明實施方式的系統(tǒng)和方法提供了對層間綁定協(xié)議(ILBP)分組的檢驗,以防止出現(xiàn)以下情況,即錯誤的和/或未經(jīng)授權的綁定生效,因而導致受到影響的網(wǎng)絡中信息(例如分組)的錯誤路由。ILBP的一個例子是地址解析協(xié)議(ARP),其將互聯(lián)網(wǎng)協(xié)議(IP)地址(第3層)綁定到媒體訪問控制(MAC)地址(第2層)。ILBP的另一個例子是IP版本6的網(wǎng)絡發(fā)現(xiàn)協(xié)議(NDP)。這種系統(tǒng)和方法通過識別ILBP分組并僅分析這些分組來提供所述的保護,從而使該方法對吞吐率的影響最小。如果由于惡意或錯誤動作而導致分組不合法,則丟棄不合法的分組。而且,通過在分析之前丟棄(多個)ILBP分組,通過關閉發(fā)送大量這種分組的端口,或者其他適當?shù)捻憫?,可以實現(xiàn)速率限制。這防止了分組風暴(storm)和對這種分組進行分析的檢驗引擎的過載。
根據(jù)本發(fā)明的層間綁定檢驗的實施例圖3的流程圖一般地示出了根據(jù)本發(fā)明實施方式的層間綁定檢驗的處理。該處理開始于對協(xié)議分組(或者幀或其他通信單元)的接收(步驟300)。首先確定接收到的分組是綁定協(xié)議分組并且因而需要分析(步驟310)。如果接收到的分組不是綁定協(xié)議分組,則傳遞該分組以用于進一步處理(或者將其轉發(fā)到下一網(wǎng)絡節(jié)點或目的節(jié)點) (步驟320)。反之,如果接收到的分組是綁定協(xié)議分組,則基于過濾規(guī)則來分析該分組(步驟330)。接下來,基于所采用的過濾規(guī)則,確定是否可接受該分組(步驟340)。如果接收到的分組是可接受的分組,則再次傳遞該分組以用于進一步處理(或者將其轉發(fā)到下一網(wǎng)絡節(jié)點或目的節(jié)點) (步驟320)。然而,如果基于所采用的過濾規(guī)則,接收到的分組是不可接受的(步驟340),則響應于所述壞分組的接收而采取適當?shù)膭幼?步驟350)。這些動作包括僅僅丟棄壞分組,將壞分組的接收記入日志,或者中斷來自給定源節(jié)點的分組流,或者上述動作的組合,以及其他這種可能的動作。
如上所述,圖3的流程圖示出了根據(jù)本發(fā)明實施方式的處理。應該意識到,這里所討論的操作可能包括由計算機系統(tǒng)的用戶直接輸入的命令或由專用的硬件模塊執(zhí)行的步驟,但優(yōu)選實施方式包括由軟件模塊執(zhí)行的步驟。這里所提及的步驟的功能可以對應于模塊或模塊的部分的功能。
這里所提及的操作可以是模塊或模塊的若干部分(例如軟件、固件或硬件模塊)。例如,雖然所描述的實施方式包括軟件模塊和/或包括手動輸入的用戶命令,但多個示例模塊可以是專用的硬件模塊。這里所討論的軟件模塊可以包括腳本、批處理或其它可執(zhí)行文件,或者這種文件的組合和/或部分。軟件模塊可以包括編碼于計算機可讀介質上的計算機程序或其例程。
另外,本領域技術人員將會認識到,模塊之間的邊界僅僅是說明性的,替換性的實施例可以合并模塊或者實施替換性的對模塊功能的分解。例如,這里所討論的模塊可被分解成子模塊以作為多個計算機進程來執(zhí)行,并且還可以選擇在多個計算機上執(zhí)行。而且,替換性的實施方式可以將特定模塊或子模塊的示例組合起來。此外,本領域技術人員將會認識到,在示例性實施方式中所描述的操作僅用于說明。根據(jù)本發(fā)明,可以組合多個操作,或者可以將操作的功能分布到更多的操作中。
可替換地,這種操作可以包含在實現(xiàn)了這種功能的電路結構中,例如復雜指令集計算機(CISC)的微代碼、被編程到可編程或可擦除/可編程器件中的固件、現(xiàn)場可編程門陣列(FPGA)的配置、門陣列或完全定制專用集成電路(ASIC)的設計,等等。
流程圖中的每個框可以由模塊(例如軟件模塊)或軟件模塊的一部分或者計算機系統(tǒng)用戶使用諸如隨后描述的計算機系統(tǒng)800之類的計算機系統(tǒng)來執(zhí)行。因此,上述方法及其操作以及用于所述方法的模塊可以在計算機系統(tǒng)上執(zhí)行和/或從計算機可讀介質執(zhí)行,所述計算機系統(tǒng)被配置為執(zhí)行所述方法的操作。所述方法可以包含在用于將計算機系統(tǒng)配置為執(zhí)行所述方法的機器可讀介質和/或計算機可讀介質中。因此,軟件模塊可以被存儲在和/或發(fā)送到計算機系統(tǒng)存儲器,以配置計算機系統(tǒng)來執(zhí)行該模塊的功能。
這種計算機系統(tǒng)通常根據(jù)程序(在內部存儲的指令列表,例如特定的應用程序和/或操作系統(tǒng))來處理信息,并產(chǎn)生作為結果的經(jīng)由I/O設備輸出的信息。計算機進程通常包括執(zhí)行(運行)程序或程序的一部分、當前程序值和狀態(tài)信息,以及由操作系統(tǒng)用來管理進程執(zhí)行的資源。父進程可以派生其他子進程,以幫助執(zhí)行父進程的整體功能。因為父進程具體地派生子進程以執(zhí)行父進程的整體功能中的一部分,所以子進程(以及孫子進程等等)所執(zhí)行的功能可能有時被描述為是由父進程執(zhí)行的。
這種計算機系統(tǒng)通常包括多個“并發(fā)”執(zhí)行的多個計算機進程。計算機系統(tǒng)常常包括能夠交替支持許多活動進程的單個處理單元。雖然多個進程可能看起來是被并發(fā)執(zhí)行的,但是在任意給定時刻,單個處理單元實際上只執(zhí)行一個進程。通過快速改變進程的執(zhí)行,計算機系統(tǒng)看起來好像在并發(fā)執(zhí)行進程。計算機系統(tǒng)在執(zhí)行的不同階段中,在多個進程之間復用計算機系統(tǒng)資源的能力稱為多任務操作(multitasking)。具有多個處理單元的系統(tǒng)確切地說可以支持真正的并發(fā)處理,這種系統(tǒng)被稱為多處理系統(tǒng)。當活動進程在多任務操作和/或多處理環(huán)境中執(zhí)行時,這些進程常常被稱為并發(fā)執(zhí)行。
這里所描述的軟件模塊可以由這種計算機系統(tǒng)例如從計算機可讀介質接收。所述計算機可讀介質可以永久性地、可移動地或遠程地耦合到所述計算機系統(tǒng)。計算機可讀介質例如可以包括以下多種介質,但不局限于此包括磁盤和磁帶存儲介質在內的磁存儲介質。諸如光盤介質(例如CD-ROM,CD-R等)和數(shù)字視頻盤存儲介質之類的光存儲介質。包括基于半導體的存儲器單元在內的非易失性存儲器存儲介質,例如FLASH存儲器、EEPROM,EPROM,ROM或專用集成電路。易失性存儲介質,包括寄存器、緩沖器或緩存、主存儲器、RAM等。還有包括計算機網(wǎng)絡、點到點電信和載波傳輸介質在內的數(shù)據(jù)傳輸介質。在基于UNIX的實施方式中,軟件模塊可以包含在文件中,所述文件可以是設備、終端、本地或遠程文件、套接口、網(wǎng)絡連接、信號或其他通信或狀態(tài)改變的手段。其他新的和各種類型的計算機可讀介質可用來存儲和/或發(fā)送這里所描述的軟件模塊。
圖4A示出了根據(jù)本發(fā)明實施方式的網(wǎng)絡400。網(wǎng)絡400包括多個用戶節(jié)點(在圖4A中示出為節(jié)點410(1)-(N)),ISP 420和互聯(lián)網(wǎng)430。圖4A所示的ISP 420使用路由器440和交換機450,支持節(jié)點410(1)-(N)和互聯(lián)網(wǎng)430之間的連接性。交換機450支持根據(jù)本發(fā)明實施方式的處理,保護點410(1)-(N)以防御“中間人”攻擊、嗅探和其他這種攻擊,以及錯誤的層間綁定。應當注意的是,更一般而言,本發(fā)明的結構和處理可以包括在其他網(wǎng)絡元件(例如路由器440)中,而不失其一般性或適用性,因為這種網(wǎng)絡元件的功能可以組合。還應當注意,盡管這里的討論利用了交換機(交換機450),但這僅僅是說明性的實施例——本發(fā)明可以實現(xiàn)在集線器或其他環(huán)境中。
圖4B更詳細地示出了網(wǎng)絡400的部分?,F(xiàn)在將交換機450示出為包括轉發(fā)引擎460和檢驗引擎470。最簡單地說,轉發(fā)引擎460確定將分組轉發(fā)(即發(fā)送)到哪個端口(因而發(fā)送到哪個節(jié)點)。檢驗引擎470所執(zhí)行的功能是要檢驗這些由轉發(fā)引擎460轉發(fā)以進行檢驗的分組。圖4B還示出了分組通過交換機450可能經(jīng)過的兩條路徑正常路徑480和檢驗路徑490。顯然,在通常情況下分組遵循正常路徑480,例如從節(jié)點410(1)通過轉發(fā)引擎460到預期目的地節(jié)點410(2)。這些分組是交換機450所處理的分組中的絕大多數(shù),因此由交換機450所執(zhí)行的如圖3所示的處理對這種流量的流動幾乎沒有影響。然而,對于所關心的層間綁定協(xié)議分組,遵循的是另一條路徑,即檢驗路徑490。在以下的檢驗路徑490中,例如將這種分組從給定節(jié)點(例如節(jié)點410(1))向另一個這種節(jié)點(例如節(jié)點410(2))發(fā)送,但由于它們是層間綁定協(xié)議分組,因此被轉發(fā)引擎460轉發(fā)到檢驗引擎470以進行檢驗。如果檢驗引擎470發(fā)現(xiàn)所述分組是可接受的,則檢驗引擎470隨后將當前被檢驗的分組返回到轉發(fā)引擎460,以用于轉發(fā)到其目的地(例如節(jié)點410(2))。
圖5的流程圖更詳細地示出了交換機450和與本發(fā)明實施方式的描述有關的細節(jié)。如圖5所示,交換機450包括多個線路卡(線路卡500(1)-(N)),所述線路卡經(jīng)由數(shù)據(jù)總線530和結果總線540(和圖4B一樣)耦合到轉發(fā)引擎(FE)510(和圖4B中的轉發(fā)引擎460一樣)和處理器520(和圖4B中的檢驗引擎470一樣)。線路卡500(1)-(N)中的每個線路卡都包括多個端口設備(在圖5中示出為端口ASIC 550(1,1)-(N,N)),所述端口設備由端口控制器來控制(在圖5中示出為由端口ASIC控制器560(1)-(N)中的各個端口ASIC控制器來控制),所述線路卡還可包括其他結構。
如結合圖4B所述,在根據(jù)本發(fā)明的系統(tǒng)中,盡管非ILBP分組僅僅被轉發(fā)到其預期端口,但ILBP分組被識別并分析。根據(jù)圖5,在接收時,將(任意類型的)分組從端口ASIC 550(1,1)-(N,N)當中接收到該分組的那一個端口ASIC發(fā)送到耦合于數(shù)據(jù)總線530的設備(例如端口ASIC 550(1,1)-(N,N)當中的其他端口ASIC和FE 510)。FE 510隨后確定該分組是不是ILBP分組。如果不是,則FE 510將該(非ILBP)分組轉發(fā)到端口ASIC550(1,1)-(N,N)當中預期的那一個端口ASIC,這是通過向端口ASIC控制器560(1)-(N)中相應的一個端口ASIC控制器指示出“保存在端口ASIC550(1,1)-(N,N)中給定的一個端口ASIC當中的分組的拷貝應當在相應的端口上發(fā)出”來實現(xiàn)的。
然而,如果所述分組是ILBP分組,則將該(ILBP)分組轉發(fā)到處理器520以進行檢驗。處理器520檢驗所述分組(在軟件控制下(這取決于專用處理器520具有怎樣的體系結構,硬件和軟件實現(xiàn)之間的設計決定等等)檢驗到一定程度)。如果所述分組包含不合法的綁定(例如具有IP和MAC地址間不合法綁定的壞ARP分組),則處理器520向FE 510和端口ASIC控制器560(1)-(N)指示出“所考慮的分組應被丟棄”。因此,所述分組不會從交換機450發(fā)出?;蛘?,如果所述分組包含合法綁定,則處理器520向FE 510和端口ASIC控制器560(1)-(N)指示出“所考慮的分組是可接受的”,并且FE 510向端口ASIC控制器560(1)-(N)中相應的一個端口ASIC控制器指示出“保存在端口ASIC 550(1,1)-(N,N)中給定的一個端口ASIC當中的分組的拷貝應當在相應的端口上發(fā)出”。
圖6的框圖更詳細地示出了轉發(fā)引擎(FE)510的特征。與圖5相同,F(xiàn)E 510在圖6中被示出為耦合到數(shù)據(jù)總線530和結果總線540。FE510經(jīng)由數(shù)據(jù)總線接口600與數(shù)據(jù)總線530接口。以類似方式,F(xiàn)E 510經(jīng)由結果總線接口610與結果總線540接口。FE 510中包含這樣的結構,即查找表620在輸入端處耦合到數(shù)據(jù)總線接口600,并在輸出端處耦合到結果總線接口610,F(xiàn)E 510還可包含其他結構。查找表620經(jīng)由數(shù)據(jù)總線接口600接受來自數(shù)據(jù)總線530的分組,并在對給定分組執(zhí)行分析之后,經(jīng)由結果總線接口610,在結果總線540上對交換機450的多種結構提供控制。查找表620由查找控制器630來控制,而查找控制器630又與處理器接口640相接口。
圖7的流程圖示出了在支持圖5所示結構的網(wǎng)絡元件上實現(xiàn)的例如圖3所示的處理。因此,將根據(jù)圖5和圖6中所出現(xiàn)的結構來討論圖7所示的動作。圖7所示的處理開始于端口ASIC(1,1)-(N,N)中的一個端口ASIC接收到分組(步驟700)。該分組將會預期去往附接到端口ASIC(1,1)-(N,N)中另一端口ASIC上的另一網(wǎng)絡節(jié)點,所述另一端口ASIC通常是另一線路卡(1)-(N)上的端口ASIC(1,1)-(N,N)之一。
在本發(fā)明和交換機450的某些實施方式中,所考慮的分組被傳遞到交換機450內所有可能的目的地(例如包括處理器520、端口ASIC 550(1,1)-(N,N)當中的其他端口ASIC和FE 510)(步驟720)。在這種情形下,盡管所有(或者一部分)可能的位置接收到了給定分組,妨礙了對實際處理該給定分組的指令(或控制信號)的接收,但這些目的地將會僅僅丟棄或覆寫所述分組,忽略其接收。接下來,接收到給定分組之后,F(xiàn)E 510接著對該分組進行預檢驗分析(步驟730)。取決于FE 510是如何編程的,以及要檢驗的層間綁定協(xié)議分組,F(xiàn)E 510此時可以采取多種動作。
盡管希望實現(xiàn)合理的大量這種處理,但對本領域技術人員來說很清楚的是,還希望能夠以一種根據(jù)本發(fā)明實施方式的方式來加載在分析分組時所使用的規(guī)則,這是因為使用基于軟件的規(guī)則可以容易地進行更新、動態(tài)分析、由于使用更簡單的硬件而降低成本,還有其他這方面的優(yōu)點。然后,確定接收到的分組是不是層間綁定協(xié)議分組(例如在圖7的情況下是ARP/RARP分組)(步驟740)。通常,在多數(shù)情況下,接收到的分組不會是層間綁定協(xié)議分組,因而在轉發(fā)引擎生成結果之后,就將所述分組發(fā)送到端口ASIC 550(1,1)-(N,N)中預期的一個端口ASIC,以用于傳輸?shù)筋A期節(jié)點(步驟750)。這樣,對分組進行的用于確定層間綁定是否可允許的分析不是典型分組的關鍵路徑,因而不會對通過交換機450的分組流動產(chǎn)生大的影響。然而,如果所述分組是層間綁定協(xié)議分組(仍例如是ARP/RARP分組),則發(fā)送到處理器520的分組的拷貝由處理器520進行分析,以確保其中所斷言(assert)的層間綁定是合法的(步驟760)。如果所述分組中所斷言的層間綁定是可接受的(步驟770),則與從前一樣,由預期的端口ASIC來發(fā)送所述分組(步驟750)。如果確定所述分組是不可接受的(步驟770),則對所述的壞分組進行處理(步驟780)。
這種處理可以采取多種形式中的一種,所述形式包括在分析之后僅僅丟棄分組。遺憾的是,一旦不友好者(例如黑客)掌握了這種區(qū)分偽造的層間綁定的能力,則該不友好者隨后就可以通過發(fā)送過于大量的這種分組從而試圖使對這種分組的分析泛濫,以試圖壓倒處理器520所執(zhí)行的處理。在這種情況下,可以設計對壞分組的處理以應付這種情況,如參照圖8而更詳細地描述的那樣。
圖8是用于對層間綁定協(xié)議(ILBP)分組進行速率限制,以避免被這種分組的泛濫壓倒的處理的流程圖。圖8的處理開始于確定這種分組的總數(shù)是否已超過一個限度,所述限度可以是預設的或動態(tài)的(步驟800)。前面提到過,這種基于軟件的分析的優(yōu)點在于能夠動態(tài)地對不同的分組流量條件進行響應,因而在執(zhí)行這種分析時考慮到網(wǎng)絡狀況。如果分組總數(shù)超過了這個限度(步驟800),則可以僅僅丟棄所述(多個)分組(步驟810) 。
應當注意到,F(xiàn)E 510可以基于規(guī)則來執(zhí)行多種動作,所述規(guī)則例如指示出FE 510是否應丟棄分組(在其由處理器520分析之前),或者是使接收到壞分組的流入端口關閉。在圖8所示的例子中,如果接收到的分組的總數(shù)(例如在給定單位時間內)超過了當前設置的限度(步驟800),則FE在將分組發(fā)送到處理器520以用于分析之前僅僅丟棄分組,并向端口ASIC控制器560(1)-(N)通知,端口ASIC 550(1,1)-(N,N)中的一個或多個端口ASIC所可能保存的壞分組的拷貝也應被丟棄(步驟810)。
如果接收到的分組的總數(shù)(例如在給定單位時間內)未超過當前設置的限度(步驟800),則確定是否超過了第二限度,所述第二限度在這里稱為端口關閉限度(步驟820)。這種條件可以指示出多種問題中的任意一種,包括惡意或錯誤地引起的分組風暴。如果超過了端口關閉限度,則關閉引起麻煩的(流入)端口(步驟830)。這有效地將生成大量ILBP分組的節(jié)點與網(wǎng)絡的其余部分以及交換機450的內部結構(具體而言,F(xiàn)E510和處理器520)斷開。這例如防止了已經(jīng)檢測到發(fā)送以實現(xiàn)嗅探的分組已被丟棄的第三方造成過載情況,以便迫使交換機接受壞的ILBP分組等等。而且,如果接收到的分組的總數(shù)(例如在給定單位時間內)未超過當前設置的限度(步驟800),則還確定是否超過了第三限度,所述第三限度在這里稱為端口丟棄閾值(步驟840)。這里,不合法的ILBP分組的數(shù)量超過了某個限度,因而應當丟棄引起麻煩的(多個)分組(步驟810)。如果并未超過端口丟棄閾值,并且未關閉端口,則將所述(多個)分組傳遞到檢驗引擎(例如處理器520)以進行檢驗(步驟850)。
盡管已經(jīng)示出和描述了本發(fā)明的特定實施方式,但對本領域技術人員來說顯而易見的是,基于這里的教導,可以進行變化和修改,而不會脫離本發(fā)明及其更廣的方面,因此所附權利要求的范圍應覆蓋所有本發(fā)明真正精神和范圍之內的所有這種變化和修改。而且,盡管參照這些具體實施方式
而具體示出和描述了本發(fā)明,但本領域技術人員將會理解到,可以對其中的形式和細節(jié)進行前述及其他變化,而不會脫離本發(fā)明的精神和范圍。
權利要求
1.一種網(wǎng)絡設備,包括轉發(fā)引擎;和檢驗引擎,所述檢驗引擎耦合到所述轉發(fā)引擎,其中所述轉發(fā)引擎被配置為如果分組是層間綁定協(xié)議分組,則將所述分組轉發(fā)到所述檢驗引擎,并且所述檢驗引擎被配置為檢驗所述層間綁定協(xié)議分組。
2.如權利要求1所述的網(wǎng)絡設備,其中,所述檢驗引擎被配置為借助被配置來檢驗所述層間綁定協(xié)議分組中所代表的層間綁定,來檢驗所述層間綁定協(xié)議分組。
3.如權利要求2所述的網(wǎng)絡設備,其中所述層間綁定協(xié)議分組是地址解析協(xié)議分組,并且所述層間綁定是互聯(lián)網(wǎng)協(xié)議地址和媒體訪問控制地址之間的綁定。
4.如權利要求1所述的網(wǎng)絡設備,其中所述轉發(fā)引擎被配置為確定所述分組是不是所述層間綁定協(xié)議分組。
5.如權利要求4所述的網(wǎng)絡設備,其中所述轉發(fā)引擎被配置為借助被配置來分析所述分組的頭部來做出所述確定。
6.如權利要求1所述的網(wǎng)絡設備,所述轉發(fā)引擎還包括查找表;和查找表控制器,所述查找表控制器耦合到所述查找表,其中所述查找表控制器被配置為如果所述分組是所述層間綁定協(xié)議分組,則使所述轉發(fā)引擎將所述分組轉發(fā)到所述檢驗引擎。
7.如權利要求1所述的網(wǎng)絡設備,其中所述轉發(fā)引擎被配置為確定所述分組是不是所述層間綁定協(xié)議分組。
8.如權利要求1所述的網(wǎng)絡設備,還包括第一端口設備,可通信地耦合到所述轉發(fā)引擎;第二端口設備,可通信地耦合到所述轉發(fā)引擎和所述第一端口設備;以及端口設備控制器,被耦合以控制所述第二端口設備,并且被耦合以由所述轉發(fā)引擎來控制。
9.如權利要求8所述的網(wǎng)絡設備,其中所述轉發(fā)引擎被配置為從所述第一端口設備接收所述分組,所述第二端口設備被配置為從所述第一端口設備接收所述分組,所述轉發(fā)引擎還被配置為如果所述分組不是所述層間綁定協(xié)議分組,則使得所述端口設備控制器讓所述第二端口設備來處理所述分組。
10.如權利要求1所述的網(wǎng)絡設備,還包括第一端口設備,可通信地耦合到所述轉發(fā)引擎,其中所述轉發(fā)引擎被配置為從所述第一端口設備接收所述分組,所述檢驗引擎被配置為如果所述分組是所述層間綁定協(xié)議分組,則從所述轉發(fā)引擎接收所述分組,并向所述轉發(fā)引擎指示出所述層間綁定協(xié)議分組是可接受的。
11.如權利要求10所述的網(wǎng)絡設備,還包括第二端口設備,可通信地耦合到所述轉發(fā)引擎和所述第一端口設備;和端口設備控制器,被耦合以控制所述第二端口設備,并且被耦合以由所述轉發(fā)引擎來控制,其中所述轉發(fā)引擎還被配置為如果所述分組是所述層間綁定協(xié)議分組并且如果所述層間綁定協(xié)議分組是可接受的,則使得所述端口設備控制器讓所述第二端口設備來處理所述分組。
12.一種用于檢驗分組的方法,包括通過確定分組是不是層間綁定協(xié)議分組來處理所述分組,所述層間綁定協(xié)議分組指示出第一網(wǎng)絡層地址和第二網(wǎng)絡層地址之間的綁定;以及如果所述分組是層間綁定協(xié)議分組,則檢驗所述分組。
13.如權利要求12所述的方法,其中所述檢驗操作確定所述綁定是不是可接受的綁定。
14.如權利要求12所述的方法,其中所述分組是多個分組之一,并且所述方法還包括對所述分組執(zhí)行所述處理;以及對處理所述分組的速率進行限制。
15.如權利要求14所述的方法,其中所述限制包括將所述分組的總數(shù)與一個限度進行比較;以及如果所述分組的所述總數(shù)大于所述限度,則丟棄所述分組。
16.如權利要求14所述的方法,其中所述分組是在端口上接收到的,并且所述限制包括將所述分組的總數(shù)與端口關閉閾值進行比較;以及如果所述分組的所述總數(shù)大于所述端口關閉閾值,則關閉所述端口。
17.如權利要求14所述的方法,其中所述限制包括將所述分組的總數(shù)與端口丟棄閾值進行比較;以及如果所述分組的所述總數(shù)大于所述端口丟棄閾值,則丟棄所述分組。
18.一種網(wǎng)絡元件,包括處理器;耦合到所述處理器的計算機可讀介質;以及用于檢驗分組的計算機代碼,所述計算機代碼被編碼在所述計算機可讀介質中,并被配置為使得所述處理器執(zhí)行以下操作通過確定分組是不是層間綁定協(xié)議分組來處理所述分組,所述層間綁定協(xié)議分組指示出第一網(wǎng)絡層地址和第二網(wǎng)絡層地址之間的綁定;以及如果所述分組是層間綁定協(xié)議分組,則檢驗所述分組。
19.如權利要求18所述的計算機系統(tǒng),其中所述檢驗操作確定所述綁定是不是可接受的綁定。
20.如權利要求18所述的計算機系統(tǒng),其中所述分組是多個分組之一,并且所述計算機代碼還被配置為使得所述處理器執(zhí)行以下操作對所述分組執(zhí)行所述處理;以及對處理所述分組的速率進行限制。
21.如權利要求20所述的計算機系統(tǒng),其中被配置為使得所述處理器限制所述速率的計算機代碼還被配置為使得所述處理器執(zhí)行以下操作將所述分組的總數(shù)與一個限度進行比較;以及如果所述分組的所述總數(shù)大于所述限度,則丟棄所述分組。
22.如權利要求20所述的計算機系統(tǒng),其中所述分組是在端口上接收到的,并且被配置為使得所述處理器限制所述速率的計算機代碼還被配置為使得所述處理器執(zhí)行以下操作將所述分組的總數(shù)與端口關閉閾值進行比較;以及如果所述分組的所述總數(shù)大于所述端口關閉閾值,則關閉所述端口。
23.如權利要求20所述的計算機系統(tǒng),其中被配置為使得所述處理器限制所述速率的計算機代碼還被配置為使得所述處理器執(zhí)行以下操作將所述分組的總數(shù)與端口丟棄閾值進行比較;以及如果所述分組的所述總數(shù)大于所述端口丟棄閾值,則丟棄所述分組。
24.一種用于檢驗分組的計算機程序產(chǎn)品,包括第一組指令,所述第一組指令可在計算機系統(tǒng)上執(zhí)行,并被配置為通過確定分組是不是層間綁定協(xié)議分組來處理所述分組,所述層間綁定協(xié)議分組指示出第一網(wǎng)絡層地址和第二網(wǎng)絡層地址之間的綁定;第二組指令,所述第二組指令可在所述計算機系統(tǒng)上執(zhí)行,并被配置為如果所述分組是層間綁定協(xié)議分組,則檢驗所述分組;以及計算機可讀介質,其中所述計算機程序產(chǎn)品被編碼在所述計算機可讀介質中。
25.如權利要求24所述的計算機程序產(chǎn)品,其中所述檢驗操作確定所述綁定是不是可接受的綁定。
26.如權利要求24所述的計算機程序產(chǎn)品,其中所述分組是多個分組之一,并且所述計算機程序產(chǎn)品還包括第三組指令,所述第三組指令可在所述計算機系統(tǒng)上執(zhí)行,并被配置為對所述分組執(zhí)行所述處理;以及第四組指令,所述第四組指令可在所述計算機系統(tǒng)上執(zhí)行,并被配置為對處理所述分組的速率進行限制。
27.如權利要求26所述的計算機程序產(chǎn)品,其中所述第四組指令包括第一小組指令,所述第一小組指令可在所述計算機系統(tǒng)上執(zhí)行,并被配置為將所述分組的總數(shù)與一個限度進行比較;以及第二小組指令,所述第二小組指令可在所述計算機系統(tǒng)上執(zhí)行,并被配置為如果所述分組的所述總數(shù)大于所述限度,則丟棄所述分組。
28.如權利要求26所述的計算機程序產(chǎn)品,其中所述分組是在端口上接收到的,并且所述第四組指令包括第一小組指令,所述第一小組指令可在所述計算機系統(tǒng)上執(zhí)行,并被配置為將所述分組的總數(shù)與端口關閉閾值進行比較;以及第二小組指令,所述第二小組指令可在所述計算機系統(tǒng)上執(zhí)行,并被配置為如果所述分組的所述總數(shù)大于所述端口關閉閾值,則關閉所述端口。
29.如權利要求26所述的計算機程序產(chǎn)品,其中所述第四組指令包括第一小組指令,所述第一小組指令可在所述計算機系統(tǒng)上執(zhí)行,并被配置為將所述分組的總數(shù)與端口丟棄閾值進行比較;以及第二小組指令,所述第二小組指令可在所述計算機系統(tǒng)上執(zhí)行,并被配置為如果所述分組的所述總數(shù)大于所述端口丟棄閾值,則丟棄所述分組。
30.一種用于檢驗分組的裝置,包括用于通過確定分組是不是層間綁定協(xié)議分組來處理所述分組的裝置,所述層間綁定協(xié)議分組指示出第一網(wǎng)絡層地址和第二網(wǎng)絡層地址之間的綁定;以及用于如果所述分組是層間綁定協(xié)議分組,則檢驗所述分組的裝置。
31.如權利要求30所述的裝置,其中所述用于檢驗的裝置確定所述綁定是不是可接受的綁定。
32.如權利要求30所述的裝置,其中所述分組是多個分組之一,并且所述裝置還包括用于對所述分組執(zhí)行所述處理的裝置;以及用于對處理所述分組的速率進行限制的裝置。
33.如權利要求32所述的裝置,其中所述用于限制的裝置包括用于將所述分組的總數(shù)與一個限度進行比較的裝置;以及用于如果所述分組的所述總數(shù)大于所述限度,則丟棄所述分組的裝置。
34.如權利要求32所述的裝置,其中所述分組是在端口上接收到的,并且所述用于限制的裝置包括用于將所述分組的總數(shù)與端口關閉閾值進行比較的裝置;以及用于如果所述分組的所述總數(shù)大于所述端口關閉閾值,則關閉所述端口的裝置。
35.如權利要求32所述的方法,其中所述用于限制的裝置包括用于將所述分組的總數(shù)與端口丟棄閾值進行比較的裝置;以及用于如果所述分組的所述總數(shù)大于所述端口丟棄閾值,則丟棄所述分組的裝置。
全文摘要
本發(fā)明公開了一種用于檢驗分組的方法。該方法包括通過確定分組是不是層間綁定協(xié)議分組(310),并且如果所述分組是層間綁定協(xié)議分組(310),則檢驗所述分組(330),從而處理所述分組。層間綁定協(xié)議分組指示第一網(wǎng)絡層地址和第二網(wǎng)絡層地址之間的綁定。
文檔編號H04L29/06GK1672387SQ03818330
公開日2005年9月21日 申請日期2003年7月31日 優(yōu)先權日2002年7月31日
發(fā)明者馬爾科·E·福斯基亞諾, 賈斯廷·Q·陳, 安巴里什·C·倫蓋爾 申請人:思科技術公司