TWI489825B - 路由設備及其網路封包處理方法 - Google Patents

路由設備及其網路封包處理方法 Download PDF

Info

Publication number
TWI489825B
TWI489825B TW099128284A TW99128284A TWI489825B TW I489825 B TWI489825 B TW I489825B TW 099128284 A TW099128284 A TW 099128284A TW 99128284 A TW99128284 A TW 99128284A TW I489825 B TWI489825 B TW I489825B
Authority
TW
Taiwan
Prior art keywords
packet processing
rule
packet
condition
rules
Prior art date
Application number
TW099128284A
Other languages
English (en)
Other versions
TW201210261A (en
Inventor
Pei Lin Wu
Original Assignee
Gemtek Technolog Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemtek Technolog Co Ltd filed Critical Gemtek Technolog Co Ltd
Priority to TW099128284A priority Critical patent/TWI489825B/zh
Priority to US13/192,488 priority patent/US9019951B2/en
Publication of TW201210261A publication Critical patent/TW201210261A/zh
Application granted granted Critical
Publication of TWI489825B publication Critical patent/TWI489825B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/805QOS or priority aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

路由設備及其網路封包處理方法
本發明是有關於一種封包處理方法,且特別是有關於一種能提升網路處理效能的封包處理方法與路由設備。
隨著網路的蓬勃發展,現代人不僅可藉由網路隨時取得所需資訊,更能透過網路進行休閒、社交、以及商業等活動。然而,正因網路帶來的便利使得許多重要資料經常會在網路上流通,為了確保資料不被惡意擷取,許多網路的安全控管機制也隨之應運而生。
以Linux作業系統作為軟體架構的網路設備為例,其是透過在轉送檢查點(forward hook)進行存取控制清單(Access Control List,ACL)以及頻寬管制(Quality of Services,QoS)的規則比對來維護資料的安全性。具體來說,為了實現防火牆(firewall)的功能,每當封包進入網路設備後,轉送檢查點會將封包與每一條存取控制清單規則及頻寬管制規則逐一進行比對。亦即,轉送檢查點將循序取得各存取控制清單規則與頻寬管制規則,且在比對每個規則時都必須從封包取得一次封包資訊。在某些情況下,必須等待所有規則都逐一比對之後,網路設備才能確定此封包是否符合存取控制清單及頻寬管制規則。不難想見,在所需比對的存取控制清單與頻寬管制規則數量越多時,完成檢查所須耗費的時間也越長,而容易對網路處理效能造成負面影響。
有鑑於此,本發明提供一種網路封包處理方法,加快對進入封包執行規則比對的效率。
本發明提供一種路由設備,避免將封包與所有規則逐一進行比對,從而提升網路處理速度。
本發明提出一種網路封包處理方法,用於記錄多個封包處理規則的路由設備,上述封包處理規則包括多種檢查條件。此方法定義並記錄各檢查條件對應的封包處理規則。在對進入路由設備的封包執行一路徑選擇處理後,取得關於封包的多個封包資訊。針對每一個封包資訊,自所有檢查條件中找出符合封包資訊的檢查條件,並且對所找出之檢查條件對應的封包處理規則進行標記。根據所有被標記的封包處理規則判斷是否存在一特定封包處理規則。若是,則依據特定封包處理規則對封包進行一處理動作。
在本發明之一實施例中,其中上述檢查條件係分為多個條件種類,而定義並記錄各檢查條件對應的封包處理規則的步驟包括取得其中之一條件種類作為一處理條件種類。建立對應處理條件種類的資料結構。在全部的封包處理規則中,找出所包括之檢查條件屬於處理條件種類且內容相同的所有封包處理規則,以及令所找出的封包處理規則對應至資料結構中的同一進入欄位(entry)。
在本發明之一實施例中,其中針對每個封包資訊,自所有的檢查條件中找出符合封包資訊的檢查條件,並標記所找出之檢查條件對應之封包處理規則的步驟包括根據所針對之封包資訊的內容,自封包資訊所屬的種類對應的資料結構中找出一特定進入欄位。分別將對應至特定進入欄位的所有封包處理規則定義為一候選封包處理規則,以及在各候選封包處理規則所包括的檢查條件中,將符合於封包資訊的檢查條件標記為已確認條件。
在本發明之一實施例中,其中上述檢查條件係分為多個條件種類,而定義並記錄各檢查條件對應的封包處理規則的步驟包括取得其中之一條件種類作為一處理條件種類,建立對應處理條件種類的資料結構。在全部的封包處理規則中,找出所包括之檢查條件屬於處理條件種類且內容之雜湊值(hash value)相同的所有封包處理規則,並令所找出的封包處理規則對應至資料結構中的同一進入欄位。
在本發明之一實施例中,其中針對每個封包資訊,自所有的檢查條件中找出符合封包資訊的檢查條件,並標記所找出之檢查條件對應之封包處理規則的步驟包括根據所針對之封包資訊的雜湊值,自封包資訊所屬的種類對應的資料結構中找出一特定進入欄位。在對應至特定進入欄位的所有封包處理規則中,分別將內容與封包資訊相同的所有封包處理規則定義為候選封包處理規則,並且在各選封包處理規則所包括的檢查條件中,將符合於封包資訊的檢查條件標記為已確認條件。
在本發明之一實施例中,其中根據所有被標記的封包處理規則判斷是否存在特定封包處理規則的步驟包括在所有的封包處理規則中,判斷是否存在所對應的檢查條件均已被標記的封包處理規則。若是,則將所對應的檢查條件均已被標記的封包處理規則定義為特定封包處理規則。
在本發明之一實施例中,其中檢查條件與封包資訊的種類至少包括下列其中之一:來源介面(source interface)、目標介面(destination interface)、來源位址(source address)、目標位址(destination address),以及網路協定(service)。
在本發明之一實施例中,其中封包處理規則的種類至少包括下列其中之一:存取控制清單(Access Control List,ACL)規則以及頻寬管制(Quality of Services,QoS)規則。
從另一觀點來看,本發明提出一種路由設備,包括儲存單元、規則對應模組、路徑選擇處理模組、規則快篩模組以及規則執行模組。其中,儲存單元記錄多個封包處理規則,上述封包處理規則包括多種檢查條件。規則對應模組耦接儲存單元,用以定義且記錄各檢查條件對應的封包處理規則於儲存單元。路徑選擇處理模組用以對進入路由設備的封包執行一路徑選擇處理。規則快篩模組耦接路徑選擇處理模組與儲存單元,規則快篩模組在取得關於封包的多個封包資訊後,針對每個封包資訊自所有的檢查條件中找出符合封包資訊的檢查條件,並對所找出之檢查條件對應的封包處理規則進行標記,再根據所有被標記的封包處理規則判斷是否存在一特定封包處理規則。規則執行模組耦接規則快篩模組與儲存單元,當規則快篩模組判定特定封包處理規則存在時,規則執行模組依據特定封包處理規則對封包進行一處理動作。
在本發明之一實施例中,其中上述檢查條件係分為多個條件種類,而規則對應模組取得其中之一條件種類作為處理條件種類,建立對應處理條件種類的資料結構,並在全部的封包處理規則中,找出所包括之檢查條件屬於處理條件種類且內容相同的所有封包處理規則,並且令所找出的封包處理規則對應至資料結構中的同一進入欄位。
在本發明之一實施例中,其中規則快篩模組根據所針對之封包資訊的內容,自封包資訊所屬之種類對應的資料結構中找出一特定進入欄位,分別將對應至特定進入欄位的所有封包處理規則定義為候選封包處理規則,以及在各候選封包處理規則所包括的檢查條件中,將符合於封包資訊的檢查條件標記為已確認條件。
在本發明之一實施例中,其中上述檢查條件係分為多個條件種類,而規則對應模組取得其中之一條件種類作為處理條件種類,建立對應處理條件種類的資料結構,並在全部的封包處理規則中,找出所包括之檢查條件屬於處理條件種類且內容之雜湊值相同的所有封包處理規則,以及令所找出的封包處理規則對應至資料結構中的同一進入欄位。
在本發明之一實施例中,其中規則快篩模組根據所針對之封包資訊的雜湊值,自封包資訊所屬之種類對應的資料結構中找出一特定進入欄位,在對應至特定進入欄位的所有封包處理規則中,分別將內容與封包資訊相同的所有封包處理規則定義為一候選封包處理規則,以及在各候選封包處理規則所包括的檢查條件中,將符合於封包資訊的檢查條件標記為已確認條件。
在本發明之一實施例中,其中規則快篩模組在所有的封包處理規則中,判斷是否存在所對應的檢查條件均已被標記的封包處理規則。若是,規則快篩模組將所對應的檢查條件均已被標記的封包處理規則定義為特定封包處理規則。
在本發明之一實施例中,其中檢查條件與封包資訊的種類至少包括下列其中之一:來源介面、目標介面、來源位址、目標位址,以及網路協定。
在本發明之一實施例中,其中封包處理規則的種類至少包括下列其中之一:存取控制清單規則以及頻寬管制規則。
基於上述,本發明在確保路由設備能支援防火牆及/或頻寬管制的前提之下,加快比對封包與各封包處理規則的效率,進而提升路由設備的系統效能。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是依照本發明之一實施例所繪示之路由設備的方塊圖。請參閱圖1,路由設備100包括儲存單元110、規則對應模組120、路徑選擇處理模組130、規則快篩模組140,以及規則執行模組150。其中,路由設備100的軟體架構例如是採用Linux作業系統來實作,但本發明並不以此為限。
儲存單元110例如是記憶體,用以記錄使用者所設定的多個封包處理規則。在本實施例中,封包處理規則的種類可以是存取控制清單(Access Control List,ACL)規則及/或頻寬管制(Quality of Services,QoS)規則。其中,每個封包處理規則至少具有一個檢查條件,而不同的封包處理規則可能包括相同的檢查條件。
假設封包處理規則的種類為存取控制清單規則,那麼封包處理規則所包括之檢查條件的條件種類可以是來源介面(source interface)、目標介面(destination interface)、來源位址(source address)、目標位址(destination address),以及網路協定(service)。而當封包處理規則的種類為頻寬管制規則時,封包處理規則所包括之檢查條件的條件種類則可以是來源介面、來源位址、目標位址,以及網路協定。其中,來源介面與目標介面例如是區域網路(Local Area Network,LAN)或廣域網路(Wide Area Network,WAN)等等。來源位址及目標位址可以是網際網路通訊協定(Internet Protocol,IP)位址或媒體存取控制(Media Access Control,MAC)位址。而網路協定包括超文件傳輸協定(HyperText Transfer Protocol,HTTP)、網際控制訊息協定(Internet Control Message Protocol,ICMP),或其他屬於第四層(Layer 4)網路的網路協定。
使用者在設定每個封包處理規則時,可針對上述條件種類至少其中之一來指定其內容。舉例來說,倘若使用者欲限定區域網路中的第一特定主機不得存取網路,並假設第一特定主機的網際網路通訊協定位址為192.168.1.100。使用者可下達一條包括兩個檢查條件的封包處理規則(其種類為存取控制清單規則),上述兩個檢查條件分別是“來源介面為LAN”,以及“來源位址為192.168.1.100”,且此封包處理規則的動作是拒絕存取(denial)。另外,倘若使用者欲限制區域網路中的第二特定主機(假設其網際網路通訊協定位址為192.168.2.1)不得存取網路,使用者可另外設定一條封包處理規則,其包括的兩個檢查條件分別是“來源介面為LAN”,以及“來源位址為192.168.2.1”,此封包處理規則的動作也是拒絕存取。在本實施例中,上述兩個封包處理規則均包括同樣的一個檢查條件(亦即,“來源介面為LAN”)。
規則對應模組120耦接儲存單元110。規則對應模組120係定義各檢查條件對應的封包處理規則,並將上述對應關係記錄至儲存單元110。
路徑選擇處理模組130用以對進入路由設備100的封包執行一路徑選擇處理,以決定該封包所應轉送之目的地。
規則快篩模組140耦接路徑選擇處理模組130與儲存單元110。在路徑選擇處理模組130對封包進行路徑選擇處理後,規則快篩模組140便可取得關於封包的所有封包資訊。其中,封包資訊的種類包括來源介面、目標介面、來源位址、目標位址,以及網路協定。接著,規則快篩模組140會根據封包資訊判斷在所有的封包處理規則中是否存在一個或一個以上的特定封包處理規則。若存在特定封包處理規則,則由耦接至規則快篩模組140與儲存單元110的規則執行模組150依據特定封包處理規則對封包進行處理動作。
本實施例是透過規則對應模組120建立資料結構以儲存各檢查條件所對應的封包處理規則,並且在封包進入路由設備100後,依據封包資訊的比對來尋找特定封包處理規則。若能找到特定封包處理規則,則只需依特定封包處理規則對封包進行處理。換言之,不再需要對其餘不屬於特定封包處理規則的規則進行比對。如此一來,藉由減少比對規則的次數以大幅提升路由設備100的整體效能。
圖2是依照本發明之一實施例所繪示之網路封包處理方法的流程圖。請同時參閱圖1與圖2,首先如步驟210所示,提供多個封包處理規則,上述封包處理規則係記錄在儲存單元110,且例如是由使用者所預先設定。所有的封包處理規則共包括多個檢查條件。
接著在步驟220中,規則對應模組120定義各檢查條件對應的封包處理規則,並將上述對應關係記錄在儲存單元110。在本實施例中,由於所有的檢查條件可分為多個條件種類,因此規則對應模組120會針對每一種條件種類建立一資料結構,以記錄屬於該條件種類之各個檢查條件對應的封包處理規則。其中,資料結構可以是表格(table)或鏈結串列(linked list),但本發明並不以此為限。
為了方便說明,假設儲存單元110中記錄了5個封包處理規則,且如圖3所示,這5個封包處理規則分別被編號為R1至R5。在本實施例中,編號為R1的封包處理規則包括三個檢查條件,分別是“來源介面為LAN”、“來源位址為192.168.1.100”,以及“目標位址為140.114.1.1”。編號為R2的封包處理規則包括兩個檢查條件,分別是“來源介面為WAN”以及“來源位址為192.168.100.1”。而在圖3所示之表格中被標示為“*”的部份係表示所對應的封包處理規則並不對屬於該種類的檢查條件內容設定限制。
圖4A所示之表格410是延續圖3所示之實施例而繪示的對應來源介面這項條件種類而建立資料結構。以下是建立表格410的詳細步驟。首先,規則對應模組120自所有的條件種類中取得來源介面這項條件種類作為處理條件種類。接著建立對應於處理條件種類的資料結構。在本實施例中資料結構是表格的形式,但在其他實施例中,資料結構也可以是鏈結串列等其他種類的資料結構。接下來,規則對應模組120在儲存單元110所記錄的全部封包處理規則中,找出所包括之檢查條件屬於處理條件種類(即,來源介面)且內容相同的所有封包處理規則,並且令所找出的封包處理規則對應至資料結構中的同一進入欄位(entry)。在本實施例中,在編號為R1與R5的封包處理規則中,均包括來源介面為LAN的檢查條件,因此編號為R1與R5的兩個封包處理規則將一同對應至表格410中的進入欄位411。另外,由於只有編號為R2的封包處理規則包括來源介面為WAN的檢查條件,因此僅有編號為R2的封包處理規則會對應至表格410中的進入欄位413。
圖4B所示之表格420是延續圖3所示之實施例而繪示的對應目標介面這項條件種類而建立資料結構。由於其建立方式與建立表格410相同或相似,故在此不在贅述。
在圖4A及圖4B所示之實施例中,資料結構的每一個進入欄位係表示條件種類且內容均相同的一種檢查條件。因此,資料結構的大小會與路由設備100所支援該種條件種類的數量多寡有關。例如,倘若路由設備100所支援的來源介面越多,便需要越大的空間來儲存對應來源介面的資料結構。
然而,針對來源位址這項條件種類,由於每個來源位址的資料長度為32位元,因此若要窮舉所有可能的來源位址,資料結構則需要232 個進入欄位。為了節省儲存空間,規則對應模組120另外會依照每個檢查條件之內容的雜湊值(hash value)來建立資料結構的內容。
圖4C所示之表格430是延續圖3所示之實施例而繪示的對應來源位址這項條件種類而建立資料結構。在本實施例中,規則對應模組120在選擇以來源位址這項條件種類作為處理條件種類後,建立對應來源位址的資料結構(即表格430)。接著針對所有的封包處理規則,利用一雜湊函數計算各封包處理規則所包括之屬於來源位址的這項檢查條件的內容的雜湊值(hash value),並且令所有雜湊值相同的封包處理規則對應至表格430中的同一進入欄位。在本實施例中,假設編號為R1、R2以及R5的封包處理規則,其來源位址之內容的雜湊值均為HV_1,那麼規則對應模組120便會令編號為R1、R2、R5的封包處理規則對應至表格430的進入欄位431。而假設在所有的封包處理規則中,僅有編號為R4的封包處理規則其來源位址之內容的雜湊值為HV_2,因此只有編號為R4的封包處理規則會對應至表格430的進入欄位433。換言之,在本實施例中,資料結構中的每個進入欄位係對應一種雜湊值,而只要是內容之雜湊值相同的封包處理規則便會對應至同樣的進入欄位。
由於目標位址以及網路協定這兩項條件種類的資料結構亦可依照類似上述實施例所示之方式建立,故在此不在贅述。而每當規則對應模組120令封包處理規則對應至某一進入欄位時,亦會記錄該封包處理規則所包括之檢查條件的內容以供日後比對。但必需特別說明的是,本發明並不對雜湊函數加以限制。
當建立好每種條件種類所對應的資料結構後,接下來反覆在步驟230中,判斷是否有封包進入路由設備100。若有封包進入路由設備,則如步驟240所示,路徑選擇處理模組130對進入路由設備100的封包執行一路徑選擇處理。爾後,規則快篩模組140便能取得關於此封包的所有封包資訊。其中,封包資訊的種類包括來源介面、目標介面、來源位址、目標位址,以及網路協定。
接著在步驟250中,規則快篩模組140針對每一個封包資訊,自所有檢查條件中找出符合封包資訊的檢查條件,並且對所找出之檢查條件對應的封包處理規則進行標記。並且如步驟260所示,規則快篩模組140根據所有被標記的封包處理規則判斷是否存在一特定封包處理規則。
詳細地說,規則快篩模組140係根據封包資訊的種類取得記錄在儲存單元110中對應的資料結構,進而標記部分的封包處理規則從而判斷是否存在一特定封包處理規則。
在一實施例中,規則快篩模組140首先根據目前所針對之封包資訊的種類,在儲存單元110中取得對應的資料結構。接著根據封包資訊的內容自所取得的資料結構中找出一特定進入欄位,再分別將對應至此特定進入欄位的所有封包處理規則定義為候選封包處理規則。最後,在各候選封包處理規則所包括的檢查條件中,將其內容同於封包資訊的檢查條件標記為已確認條件。
在另一實施例中,規則快篩模組140在根據目前所針對之封包資訊的種類,從儲存單元110中取得對應的資料結構後,便根據所針對之封包資訊的雜湊值,自所取得的資料結構中找出一特定進入欄位。接著在對應至特定進入欄位的所有封包處理規則中,找出包括之檢查條件的內容與封包資訊相同的所有封包處理規則,並分別將上述封包處理規則定義為候選封包處理規則。最後,在各候選封包處理規則所包括的檢查條件中,將符合於封包資訊的檢查條件逐一標記為已確認條件。
在針對每一個封包資訊都完成上述標記動作之後,規則快篩模組140判斷在所有的封包處理規則中是否存在所對應的檢查條件均已被標記的封包處理規則。若是,規則快篩模組140便將上述封包處理規則定義為特定封包處理規則。
舉例來說,假設進入路由設備100之封包的封包資訊分別為“來源介面為LAN”、“目標介面為WAN”、“來源位址為192.168.1.100”、“目標位址為140.114.1.155”,以及“網路協定為HTTP”。
延續圖3、圖4A至4E之實施例,假設規則快篩模組140首先要處理的封包資訊為“來源介面為LAN”。那麼規則快篩模組140會自儲存單元110中取得圖4A所示之表格410,並以進入欄位411作為特定進入欄位,以及將對應至進入欄位411的封包處理規則R1、R5定義為候選封包處理規則。並且將封包處理規則R1、R5所包括的檢查條件中符合於“來源介面為LAN”的檢查條件標記為已確認條件。標記後的結果如圖5所示(在圖5中是以網底表示該檢查條件被標記為已確認條件)。
在規則快篩模組140要處理的封包資訊為“目標介面為WAN”時,規則快篩模組140會自儲存單元110中取得圖4B所示之表格420,並以進入欄位421作為特定進入欄位,以及將對應至進入欄位421的封包處理規則R3定義為候選封包處理規則。同樣地如圖5所示,在封包處理規則R3所包括的檢查條件中,內容符合於“目標介面為WAN”的檢查條件也被標記為已確認條件(以網底表示)。
另外,當規則快篩模組140要處理的封包資訊為“來源位址為192.168.1.100”時,規則快篩模組140會自儲存單元110中取得圖4C所示之表格430。假設以雜湊函數計算此封包資訊的雜湊值為“HV_1”,那麼規則快篩模組140會選擇進入欄位431作為特定進入欄位,並將對應至進入欄位431的封包處理規則R1、R2、R5定義為候選封包處理規則。然由於雜湊值相同其內容並不一定相同,因此規則快篩模組140會將封包資訊的內容與各候選封包處理規則所包括之對應檢查條件的內容進行比對,並在封包處理規則R1、R2、R5所個別包括的對應檢查條件中,僅將內容與“來源位址為192.168.1.100”這項封包資訊相同的檢查條件標記為已確認條件。如圖5所示,在R1、R2、R5這三個候選封包處理規則所個別包括的檢查條件中,僅有封包處理規則R1、R5所包括之內容符合於“來源位址為192.168.1.100”的檢查條件被標記為已確認條件(以網底表示)。
規則快篩模組140亦會對“目標位址為140.114.1.155”,以及“網路協定為HTTP”這兩項封包資訊進行上述動作,進而將部份檢查條件標記為已確認條件,整個標記完成的結果如圖5所示。根據圖5可以發現,封包處理規則R5所對應的四個檢查條件均已被標記成已確認條件,因此規則快篩模組140會將封包處理規則R5定義為特定封包處理規則。
請回到圖2,倘若沒有任何的封包處理規則被規則快篩模組140定義為特定封包處理規則,則如步驟270所示,規則快篩模組140判定封包不符合所有封包處理規則。此時,規則執行模組150例如會依照預先定義的動作來處理封包。
然而,當特定封包處理規則存在時,則如步驟280所示,規則執行模組150依據特定封包處理規則對封包進行處理動作。
圖6是依照本發明之另一實施例所繪示之路由設備的方塊圖。在本實施例中,路由設備600的軟體架構是Linux作業系統。路由設備600包括路由之前檢查點(Pre-Routing hook)610、路由之後檢查點(Post-Routing hook)620、轉送檢查點(Forward hook)630、進入主機檢查點(Local-in hook)640、主機發出檢查點(Local-out hook)650、規則對應模組660、儲存單元670、路徑選擇處理模組680以及規則快篩模組690。由於規則對應模組660、儲存單元670、路徑選擇處理模組680以及規則快篩模組690與圖1所示之規則對應模組120、儲存單元110、路徑選擇處理模組130以及規則快篩模組140的功能相同或相似,故在此不在贅述。
在本實施例中,轉送檢查點630的功能與圖1所示之規則執行模組150相同。因此在路由設備600中,規則快篩模組690需位於轉送檢查點630之前。據此在封包進入路由設備600並經過路徑選擇處理模組680的處理後,先由規則快篩模組690判斷是否能取得特定封包處理規則。若是,再由轉送檢查點630依據特定封包處理規則對封包進行處理動作。
綜上所述,本發明所述之路由設備及其網路封包處理方法係建立資料結構以記錄各檢查條件對應的封包處理規則,並在封包進入路由設備之後,快速地根據封包資訊與資料結構的比對來判斷是否能找到特定封包處理規則。若能找到特定封包處理規則,便可直接利用特定封包處理規則對封包進行處理。如此一來,減少規則的比對次數以大幅提升系統效能並加快網路處理速度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100...路由設備
110...儲存單元
120...規則對應模組
130...路徑選擇處理模組
140...規則快篩模組
150...規則執行模組
210~270...本發明之一實施例所述之網路封包處理方法之各步驟
410、420、430、440、450...表格
411、413、421、431、433、441、443、445、451、452...進入欄位
600...路由設備
610...路由之前檢查點
620‧‧‧路由之後檢查點
630‧‧‧轉送檢查點
640‧‧‧進入主機檢查點
650‧‧‧主機發出檢查點
660‧‧‧規則對應模組
670‧‧‧儲存單元
680‧‧‧路徑選擇處理模組
690‧‧‧規則快篩模組
圖1是依照本發明之一實施例所繪示之路由設備的方塊圖。
圖2是依照本發明之一實施例所繪示之網路封包處理方法的流程圖。
圖3是依照本發明之一實施例所繪示之各封包處理規則的示意表。
圖4A至4E是延續圖3所示之實施例而繪示的對應各種條件種類之資料結構的示意圖。
圖5是依照本發明之一實施例所繪示之封包處理規則之標記結果的示意圖。
圖6是依照本發明之另一實施例所繪示之路由設備的方塊圖。
210~270...本發明之一實施例所述之網路封包處理方法之各步驟

Claims (10)

  1. 一種網路封包處理方法,用於記錄多個封包處理規則的一路由設備,該些封包處理規則包括多種檢查條件,該方法包括:定義並記錄各該些檢查條件對應的封包處理規則;在對進入該路由設備的一封包執行一路徑選擇處理後,取得關於該封包的多個封包資訊;針對該些封包資訊中的每一個,自該些檢查條件中找出符合該封包資訊的檢查條件,並標記所找出之檢查條件對應的封包處理規則;根據所有被標記的封包處理規則判斷是否存在一特定封包處理規則;以及若存在該特定封包處理規則,則依據該特定封包處理規則對該封包進行一處理動作,其中該些檢查條件係分為多個條件種類,而定義並記錄各該些檢查條件對應的封包處理規則的步驟包括:取得該些條件種類其中之一作為一處理條件種類;建立用於記錄屬於該處理條件種類的封包處理規則的一資料結構;在該些封包處理規則中,找出所包括之檢查條件屬於該處理條件種類且內容相同的所有封包處理規則;以及令所找出的封包處理規則對應至該資料結構中的同一進入欄位(entry)。
  2. 如申請專利範圍第1項所述之網路封包處理方法, 其中針對該些封包資訊中的每一個,自該些檢查條件中找出符合該封包資訊的檢查條件,並標記所找出之檢查條件對應之封包處理規則的步驟包括:根據所針對之該封包資訊的內容,自該封包資訊所屬之種類對應的該資料結構中找出一特定進入欄位;分別定義對應至該特定進入欄位的所有封包處理規則為一候選封包處理規則;以及在各該候選封包處理規則所包括的檢查條件中,將符合於該封包資訊的檢查條件標記為一已確認條件。
  3. 如申請專利範圍第1項所述之網路封包處理方法,其中根據所有被標記的封包處理規則判斷是否存在該特定封包處理規則的步驟包括:在該些封包處理規則中,判斷是否存在所對應的檢查條件均已被標記的封包處理規則;以及若是,則將所對應的檢查條件均已被標記的封包處理規則定義為該特定封包處理規則。
  4. 如申請專利範圍第1項所述之網路封包處理方法,其中該些檢查條件與該些封包資訊的種類至少包括下列其中之一:一來源介面(source interface)、一目標介面(destination interface)、一來源位址(source address)、一目標位址(destination address),以及一網路協定(service)。
  5. 如申請專利範圍第1項所述之網路封包處理方法,其中該些封包處理規則的種類至少包括下列其中之一:一 存取控制清單(Access Control List,ACL)規則以及一頻寬管制(Quality of Services,QoS)規則。
  6. 一種路由設備,包括:一儲存單元,記錄多個封包處理規則,該些封包處理規則包括多種檢查條件;一規則對應模組,耦接該儲存單元,該規則對應模組定義各該些檢查條件對應的封包處理規則並記錄於該儲存單元;一路徑選擇處理模組,對進入該路由設備的一封包執行一路徑選擇處理;一規則快篩模組,耦接該路徑選擇處理模組與該儲存單元,該規則快篩模組在取得關於該封包的多個封包資訊後,針對該些封包資訊中的每一個,自該些檢查條件中找出符合該封包資訊的檢查條件,標記所找出之檢查條件對應的封包處理規則,並根據所有被標記的封包處理規則判斷是否存在一特定封包處理規則;以及一規則執行模組,耦接該規則快篩模組與該儲存單元,當該規則快篩模組判定該特定封包處理規則存在時,該規則執行模組依據該特定封包處理規則對該封包進行一處理動作,其中該些檢查條件係分為多個條件種類,而該規則對應模組取得該些條件種類其中之一作為一處理條件種類,建立用於記錄屬於該處理條件種類的封包處理規則的一資料結構,並在該些封包處理規則中,找出所包括之檢查條 件屬於該處理條件種類且內容相同的所有封包處理規則,以及令所找出的封包處理規則對應至該資料結構中的同一進入欄位。
  7. 如申請專利範圍第6項所述之路由設備,其中該規則快篩模組根據所針對之該封包資訊的內容,自該封包資訊所屬之種類對應的該資料結構中找出一特定進入欄位,分別定義對應至該特定進入欄位的所有封包處理規則為一候選封包處理規則,以及在各該候選封包處理規則所包括的檢查條件中,將符合於該封包資訊的檢查條件標記為一已確認條件。
  8. 如申請專利範圍第6項所述之路由設備,其中該規則快篩模組在該些封包處理規則中,判斷是否存在所對應的檢查條件均已被標記的封包處理規則,若是,該規則快篩模組將所對應的檢查條件均已被標記的封包處理規則定義為該特定封包處理規則。
  9. 如申請專利範圍第6項所述之路由設備,其中該些檢查條件與該些封包資訊的種類至少包括下列其中之一:一來源介面、一目標介面、一來源位址、一目標位址,以及一網路協定。
  10. 如申請專利範圍第6項所述之路由設備,其中該些封包處理規則的種類至少包括下列其中之一:一存取控制清單規則以及一頻寬管制規則。
TW099128284A 2010-08-24 2010-08-24 路由設備及其網路封包處理方法 TWI489825B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW099128284A TWI489825B (zh) 2010-08-24 2010-08-24 路由設備及其網路封包處理方法
US13/192,488 US9019951B2 (en) 2010-08-24 2011-07-28 Routing apparatus and method for processing network packet thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW099128284A TWI489825B (zh) 2010-08-24 2010-08-24 路由設備及其網路封包處理方法

Publications (2)

Publication Number Publication Date
TW201210261A TW201210261A (en) 2012-03-01
TWI489825B true TWI489825B (zh) 2015-06-21

Family

ID=45698628

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099128284A TWI489825B (zh) 2010-08-24 2010-08-24 路由設備及其網路封包處理方法

Country Status (2)

Country Link
US (1) US9019951B2 (zh)
TW (1) TWI489825B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377261A (zh) * 2012-04-28 2013-10-30 瑞昱半导体股份有限公司 管理存取控制清单的装置、执行装置以及方法
KR102186609B1 (ko) * 2014-03-07 2020-12-03 삼성전자주식회사 무결성 검증 장치를 포함하는 전자 시스템
GB2532055B (en) * 2014-11-07 2016-12-14 Ibm Sticky and transient markers for a packet parser
CN113835712B (zh) * 2021-09-23 2023-09-26 中国人民解放军63620部队 一种按照给定字段值进行判断的快速数据包分组路由方法
US12050532B2 (en) 2022-09-23 2024-07-30 Apple Inc. Routing circuit for computer resource topology

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1477494A (zh) * 2002-08-20 2004-02-25 深圳市中兴通讯股份有限公司上海第二 一种数据包递归流分类方法
CN1863142A (zh) * 2005-08-19 2006-11-15 华为技术有限公司 给数据流提供不同的服务质量策略的方法
US20100080223A1 (en) * 2008-09-30 2010-04-01 Wong Michael K Efficient acl lookup algorithms

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7218632B1 (en) * 2000-12-06 2007-05-15 Cisco Technology, Inc. Packet processing engine architecture
US7644085B2 (en) * 2003-11-26 2010-01-05 Agere Systems Inc. Directed graph approach for constructing a tree representation of an access control list
CN101146027B (zh) 2006-09-14 2010-08-18 中兴通讯股份有限公司 基于访问控制列表分类的方法
JP4615504B2 (ja) * 2006-11-29 2011-01-19 アラクサラネットワークス株式会社 ネットワーク中継システム、および、ネットワーク中継システムにおける方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1477494A (zh) * 2002-08-20 2004-02-25 深圳市中兴通讯股份有限公司上海第二 一种数据包递归流分类方法
CN1863142A (zh) * 2005-08-19 2006-11-15 华为技术有限公司 给数据流提供不同的服务质量策略的方法
US20100080223A1 (en) * 2008-09-30 2010-04-01 Wong Michael K Efficient acl lookup algorithms

Also Published As

Publication number Publication date
US20120054365A1 (en) 2012-03-01
US9019951B2 (en) 2015-04-28
TW201210261A (en) 2012-03-01

Similar Documents

Publication Publication Date Title
JP4482584B2 (ja) モストスペシフィックフィルタ整合と移送レベル共有とを用いる二段パケット分類のための装置と方法
JP4554675B2 (ja) 通信制御装置及び通信制御システム
US7558266B2 (en) System and method for restricting network access using forwarding databases
KR100920518B1 (ko) 패킷 분류 장치 및 방법
TWI489825B (zh) 路由設備及其網路封包處理方法
US8638793B1 (en) Enhanced parsing and classification in a packet processor
US11595503B2 (en) Efficient packet classification for dynamic containers
US10397116B1 (en) Access control based on range-matching
JP2009110270A (ja) マルウエア検出装置、監視装置、マルウエア検出プログラム、およびマルウエア検出方法
US20130294231A1 (en) Method of high-speed switching for network virtualization and high-speed virtual switch architecture
WO2016070822A1 (zh) 媒体资源反馈方法及装置
WO2017143717A1 (zh) 一种组播信息处理方法和装置
WO2015131720A1 (zh) 报文处理方法及装置
WO2016138845A1 (zh) 一种实现协议报文上送cpu的方法和装置
CN101699796B (zh) 一种基于流信任的数据报文高速转发的方法、系统及路由器
JP2007166514A (ja) 通信処理装置及び通信処理方法
CN106487769A (zh) 一种访问控制列表acl的实现方法及装置
WO2024159962A1 (zh) 虚拟实例的流量镜像方法、装置、虚拟机平台及存储介质
CN101030897A (zh) 一种入侵检测中模式匹配的方法和装置
JP2005130502A (ja) 加速されたパケット処理のための方法
JP2011172126A (ja) パケットフィルタシステム及びパケットフィルタ装置及びプログラム
US20160337232A1 (en) Flow-indexing for datapath packet processing
CN102457430B (zh) 网络封包处理方法及路由设备
TW201010354A (en) A network interface card of packet filtering and method thereof
WO2016101552A1 (zh) 报文检测方法及装置、存储介质