專利名稱:一種內網數據包過濾方法
技術領域:
本發明涉及終端數據包控制技術,尤其涉及一種內網數據包過濾方法。
背景技術:
隨著網絡技術的迅速發展,網絡上承載的信息量越來越大,對人們的吸引力越來越強。人們通過網絡獲取需要的資源時,先由本地終端將獲取請求組裝成數據包,然后通過本地終端所在網絡的網關發送到外網的目的服務器,由服務器根據所述獲取請求提供相應的資源,或者,本地終端在接收到其所在網絡外的終端通過網關發送的獲取請求后,以服務器身份提供別人需要的資源。當借助網關進行信息通信時,內外網的數據包均要經過網關的轉發,一個局部網絡通常設置的網關數量較少,網關由此承擔著大量的過濾工作,尤其在一個網關連接的終端較多,數據交流較頻繁時,網關需要禁止某些終端訪問外網時,網關更是承擔著繁重的審核任務。現有技術中除了加大網關的處理能力外,沒有別的可靠方法進行數據包的過濾。當出現病毒,如ARP攻擊之類,將在短時間內產生大量的數據包,這些數據包嚴重沖擊著網關的處理能力,一旦網關癱瘓將加大病毒的傳染區域,擴大了損害面。
發明內容
有鑒于現有技術存在的不足,本發明的目的在于提供一種內網數據包過濾方法, 該方法通過內網的各個終端進行內網數據包過濾,以分散內網數據包的過濾任務、減輕網關的工作負荷。為實現上述目的,本發明實施例提供的內網數據包過濾方法包括終端通過目標字符串協商機制確定ARP NDIS協議驅動;創建網關處理線程,通過網關處理線程獲取網關的IP地址和/或MAC地址解析待發送數據包以獲取該數據包的目標IP地址;將數據包的目標IP地址與網關的IP地址對應的子網掩碼進行與運算以確定是否屬于相同的子網,和/或,通過ARP協議獲取待發送數據包目標IP地址對應的目標MAC地址,根據數據包的目標MAC地址與網關的MAC地址進行對應性比較以確定是否屬于相同的子網;如果數據包與網關所在的子網屬于相同子網,則按照數據包的目標IP地址或目標MAC地址發送該數據包;否則,過濾掉該數據包。優選地,獲得待發送數據包的目標IP地址時還獲取該數據包的源IP地址,通過 ARP協議獲取待發送數據包源IP地址對應的MAC地址,將待發送數據包的源IP地址和對應的MAC地址與終端的IP地址和MAC地址進行比較,如果一致,則進行該數據包與網關是否屬于相同子網的判斷;否則,過濾掉該數據包。優選地,獲得網關的IP地址和MAC地址后,將IP地址與MAC地址存儲于ARP Cache,建立網關的IP地址和MAC地址與終端的IP地址和MAC地址之間的對應關系,則將待發送數據包的地址與網關和/或終端的IP地址和MAC地址進行比較,如果不一致,過濾掉該數據包。本發明實施例提供的技術方案在進行ARP NDIS協議驅動后,創建網關處理線程, 通過網關處理線程獲取網關的IP地址和/或MAC地址,然后解析待發送數據包得到目標IP 地址后,將該IP地址或IP地址對應的MAC地址與網關進行比較以判斷是否屬于相同的子網,如果不屬于相同的子網,則過濾掉該數據包。與現有技術相比,本發明實施例將數據包的過濾操作前移至終端,由于網關子網內的終端數量通常較多,由此分散了網關的過濾任務,大大減輕了網關的工作負荷。而且,通過本發明實施例的技術方案,數據流能進不能出, 實現了對終端訪問外網的強制管理。此外,由于過濾數據包的任務在本地終端完成,減少了網關所在子網的數據傳輸量,避免了內網發送堵塞現象。
圖1為本發明的實施例的流程圖;圖2為本發明實施例的實現架構圖。
具體實施例方式本發明的主要思想是在進行ARPNDIS協議驅動后,創建網關處理線程,通過網關處理線程獲取網關的IP地址和/或MAC地址,然后解析待發送數據包得到目標IP地址后, 將該IP地址或IP地址對應的MAC地址與網關進行比較以判斷是否屬于相同的子網,如果不屬于相同的子網,則過濾掉該數據包,從而前移了過濾操作,使得網關承擔的大量數據處理任務分散到網關所在子網的多臺本地終端,由此減輕了網關繁重的工作負荷,而且,還能避免網關所在子網發送網絡堵塞現象,實現本地終端訪問外網的強制管理。為了使本領域技術人員能進一步了解本發明的特征及技術內容,下面結合附圖和實施例,對本發明的技術方案進行詳細描述。在大型網絡中,網絡中包含多個網關,每個網關連接多臺終端,終端的數量越多, 向網關發送數據包的可能性越大,網關的處理能力必須越強。然而,網關的處理能力與終端的數量并不正比。在目前的網絡環境中,數據流量通信較大,網關承擔著繁重的任務。為了避免這種情況引起網關癱瘓,本發明實施例提供了一種內網數據包過濾方法。參見附圖1, 本實施例提供的內網數據包過濾方法包括步驟SlOl 終端通過目標字符串協商機制確定ARPNDIS協議驅動;這里先介紹ARP和NDIS兩個基本概念。ARP,即地址解析協議,實現通過IP地址得知其物理地址。在TCP/IP網絡環境下,每個主機都分配了一個32位的IP地址,這種互聯網地址是在網際范圍標識主機的一種邏輯地址。為了讓報文在物理網路上傳送,必須知道對方目的主機的物理地址。這樣就存在把IP地址變換成物理地址的地址轉換問題。以以太網環境為例,為了正確地向目的主機傳送報文,必須把目的主機的32位IP地址轉換成為48位以太網的地址。這就需要在互連層有一組服務將IP地址轉換為相應物理地址,這組協議就是 ARP 協議。NDIS 是 Network Driver Interface Specif ication,即網絡驅動接口規范。NDIS的主要目的就是為NIC(網絡接口卡,Netwok Interface Cards)制定出標準的API接口。MAC(介質訪問控制,Media Access Controller)設備驅動封裝了所有的NIC 硬件實現,這樣一來所有的使用相同介質的NIC就可以通過通用的編程接口被訪問。NDIS同時也提供一個函數庫(又時也稱作wrapper),這個庫中的函數可以被MAC驅動調用,也可以被高層的協議(例如TCP/IP)驅動調用。這些wrapper函數使得MAC驅動和協議驅動的開發變得更加容易。不同運營商提供的ARP NDIS協議驅動不同,該協議驅動與終端的其他系統具有聯系,因此,在進行相應數據過濾操作前必須進行ARP NDIS協議驅動的正確選擇, 選擇的方式即是通過目標字符串協商機制進行,目標字符串是運營商開發ARPNDIS協議驅動時預設的一個識別碼,終端通過該目標字符串即可進行ARPNDIS協議驅動的相應選擇。步驟S102 創建網關處理線程,通過網關處理線程獲取網關的IP地址;這里的網關處理線程的主要目的在于獲取網關的地址,網關作為一種網絡設備, 也有自己的IP地址和MAC地址,這里可以將IP地址和MAC地址同時獲取,也可以僅獲取其中之一。當獲取IP地址時,即利用IP地址與數據包的IP地址進行比較,當獲取MAC地址時則利用MAC地址與數據包的IP地址進行比較傲,同時獲取時,可將兩者均進行比較。具體如何實現本步驟以及S103步驟可根據實際情況進行選擇。步驟S103 解析待發送數據包以獲取該數據包的目標IP地址;這里待發送數據包包括兩種來源,一是本地終端自己產生的數據包,并且希望將該數據包轉發到網絡上的其他終端;二是由其他終端發送到本終端,需要本終端進行轉發的數據包。接收到待發送的數據包后對該數據包進行解析,以獲取該數據包的目標IP地址,目標IP地址標識出了該數據包發往的目的地。通過對IP地址的判斷即可判斷出該數據包是否要經過網關。步驟S104 將數據包的目標IP地址與網關的IP地址對應的子網掩碼進行與運算以確定是否屬于相同的子網;當獲取的網關地址僅僅是IP地址時,將待發送數據包的IP地址與網關的IP地址對應的子網掩碼進行與運算,通過與運算判斷該數據包是內網數據包還是外網數據包,如果相與的結果為本網絡地址,則該數據包數據在網關內部傳輸的數據包,如果相與的結果為外網絡地址,則該數據包數據屬于發往網關外部的數據包,需要進行過濾。如前所述,除獲得網關的IP地址夕卜,還可以通過網關線程獲取網關的MAC地址,當獲取的是MAC地址時,則需要通過ARP協議獲取待發送數據包IP地址對應的MAC地址,將數據包的MAC地址與網關的MAC地址進行比較以確定是否屬于相同的子網;步驟S105 如果數據包目標地址與網關所在的子網屬于相同子網,則按照數據包的目標IP地址或MAC地址發送該數據包;否則,過濾掉該數據包。如果判斷出數據包是在網關所在的子網內傳輸的數據包,則根據該數據包中的目標地址發送到相應的終端,如果判斷出數據包是發向外網的數據包,則過濾掉該數據包。本實施例提供的技術方案在進行ARP NDIS協議驅動后,創建網關處理線程,通過網關處理線程獲取網關的IP地址和/或MAC地址,然后解析待發送數據包得到目標IP地址后,將該IP地址或IP地址對應的MAC地址與網關進行比較以判斷是否屬于相同的子網, 如果不屬于相同的子網,則過濾掉該數據包。與現有技術相比,本發明實施例將數據包的過濾操作前移至終端,由于網關子網內的終端數量通常較多,由此分散了網關的過濾任務,大大減輕了網關的工作負荷。而且,通過本發明實施例的技術方案,數據流能進不能出,實現了對終端訪問外網的強制管理。此外,由于過濾數據包的任務在本地終端完成,減少了網關所在子網的數據傳輸量,避免了內網發送堵塞現象。
上述實施例中盡管可以區分出是內網數據包還是外網數據包,并對外網數據包進行過濾。但是,在出現病毒的情況下,比如ARP攻擊,該攻擊將在本終端內產生大量的數據包,而且這些數據包的地址并非真實地址,由此欺騙網關,從而通向外網。為了避免這種情況,本實施例在進行與網關的地址進行比較前,先進行本地地址的比較,如果兩者相同,則說明是由本終端產生的數據包,可以進行下一步的操作。本實施例優選按照如下方式進行獲得待發送數據包的目標IP地址時還獲取該數據包的源IP地址,通過ARP協議獲取待發送數據包源IP地址對應的MAC地址,將待發送數據包的源IP地址和對應的MAC 地址與終端的IP地址和MAC地址進行比較,如果一致,則進行該數據包與網關是否屬于相同子網的判斷;否則,過濾掉該數據包。上述方式可有效避免ARP攻擊的出現。上述實施例中對本地目地、網關地址均與數據包的地址進行比較,在某些情況實際上是重復操作,為了避免這種情況,本發明實施例優選對本地地址與網關地址建立對應關系,這樣通過判斷其中之一,即可實現另一個的判斷,而且,這樣可以避免ARP攻擊篡改數據包的地址。本發明優選按照如下方式進行獲得網關的IP地址和MAC地址后,將IP地址與MAC地址存儲ARPCache,建立網關的IP地址和MAC地址與終端的IP地址和MAC地址之間的對應關系,則將待發送數據包的地址與網關和/或終端的IP地址和MAC地址進行比較,如果不一致,過濾掉該數據包。以上所述的本發明實施方式,并不構成對本發明保護范圍的限定。任何在本發明的精神和原則之內所作的修改、等同替換和改進等,均應包含在本發明的權利要求保護范圍之內。
權利要求
1.一種內網數據包過濾方法,其特征在于,該方法包括終端通過目標字符串協商機制確定ARP NDIS協議驅動;創建網關處理線程,通過網關處理線程獲取網關的IP地址和/或MAC地址;解析待發送數據包以獲取該數據包的目標IP地址;將數據包的目標IP地址與網關的IP地址對應的子網掩碼進行與運算以確定是否屬于相同的子網,和/或,通過ARP協議獲取待發送數據包目標IP地址對應的目標MAC地址,將數據包的目標MAC地址與網關的MAC地址進行比較以確定是否屬于相同的子網;如果數據包與網關所在的子網屬于相同子網,則按照數據包的目標IP地址或MAC地址發送該數據包;否則,過濾掉該數據包。
2.根據權利要求1所述的方法,其特征在于,獲得待發送數據包的目標IP地址時還獲取該數據包的源IP地址,通過ARP協議獲取待發送數據包源IP地址對應的MAC地址,將待發送數據包的源IP地址和對應的MAC地址與終端的IP地址和MAC地址進行比較,如果一致,則進行該數據包與網關是否屬于相同子網的判斷;否則,過濾掉該數據包。
3.根據權利要求2所述的方法,其特征在于,獲得網關的IP地址和MAC地址后,將IP 地址與MAC地址存儲于ARP Cache,建立網關的IP地址和MAC地址與終端的IP地址和MAC 地址之間的對應關系,則將待發送數據包的地址與網關和/或終端的IP地址和MAC地址進行比較,如果不一致,過濾掉該數據包。
全文摘要
本發明實施例提供了一種內網數據包過濾方法。該方法包括終端通過目標字符串協商機制確定ARP NDIS協議驅動;創建網關處理線程獲取網關IP地址和/或MAC地址;解析待發送數據包獲取目標IP地址;將數據包目標IP地址與網關IP地址對應的子網掩碼進行與運算以確定是否屬于相同子網,和/或,通過ARP協議獲取待發送數據包目標IP地址對應的目標MAC地址,將數據包目標MAC地址與網關MAC地址進行比較以確定是否屬于相同子網;如果數據包與網關所在子網屬于相同子網,則按照數據包目標IP地址或MAC地址發送該數據包;否則,過濾該數據包。本發明實施例減輕了網關的工作負荷,避免了內網出現網絡堵塞。
文檔編號H04L29/12GK102497380SQ20111043330
公開日2012年6月13日 申請日期2011年12月21日 優先權日2011年12月21日
發明者朱振洪, 潘勁松, 潘琦, 陳伯軍, 陳國軍, 鮑凌杰 申請人:余姚市供電局