專利名稱::一種封禁ip地址的方法、裝置和內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信
技術(shù)領(lǐng)域:
,特別涉及一種網(wǎng)絡(luò)中封禁IP地址的方法、裝置和內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器。
背景技術(shù):
:目前,網(wǎng)絡(luò)中的服務(wù)器,基于安全的考慮,均要采用一定的方法過濾一些不需要響應(yīng)的請求消息。過濾的常見方法就是對相關(guān)請求消息的源IP地址進行封禁。在IS0/0SI七層網(wǎng)絡(luò)體系結(jié)構(gòu)中,一個到達服務(wù)器的請求消息,通常需要從下到上依次經(jīng)過各個協(xié)議層的處理。因此,可以在OSI的多個協(xié)議層實現(xiàn)對指定的來源IP的封禁,常見的處理方法中是在應(yīng)用層或網(wǎng)絡(luò)層對指定的來源IP進行封禁。以⑶N網(wǎng)絡(luò)為例,在基于squid實現(xiàn)的⑶N網(wǎng)絡(luò)中,可以通過配置訪問控制列表(Accesscontrollists,ACL)來實現(xiàn)對源IP的封禁。但這一實現(xiàn)方法有兩個不足其一是在OSI的第七層應(yīng)用層實現(xiàn),需要過濾的請求消息已經(jīng)經(jīng)過了OSI其他六層協(xié)議層的處理,而每一個協(xié)議層對請求的處理,都需要消耗相關(guān)的系統(tǒng)資源;其二是由于ACL寫在squid的配置文件中,在修改完配置文件后,必須通知squid重新加載配置文件方可生效,因此配置的ACL不能實時生效,會影響IP封禁的高效性。在使用GNU/Linux系統(tǒng)的CDN網(wǎng)絡(luò)中,可以通過iptables工具實現(xiàn)對IP的封禁。這種方法雖然是在網(wǎng)絡(luò)層實現(xiàn),但是iptables是采用順序匹配的方式對IP進行封禁,iptables中的黑名單存儲方式如圖1所示,因此,在匹配的時候需要一個一個IP的比較,對于一個不在黑名單中的IP地址,均需匹配100,000次才可以獲取到匹配結(jié)果。即使對于需要封禁的IP地址,平均也需要匹配50,000次,才可以獲取匹配結(jié)果。隨著封禁IP數(shù)目的增多,系統(tǒng)對請求消息的處理時間也會線性的增長。綜上所述,在網(wǎng)絡(luò)中,現(xiàn)有的兩種解決方案都存在處理時間過長,無法滿足對于封禁IP的實時性和高效性的要求。
發(fā)明內(nèi)容本發(fā)明提供一種封禁IP地址的方法、裝置和內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器,用以解決現(xiàn)有技術(shù)中封禁IP地址時處理時間過長,效率低下的問題。一種封禁IP地址的方法,包括以下步驟接收客戶端發(fā)送的請求消息,當該請求消息進入網(wǎng)絡(luò)層后,先確定該請求消息的源IP地址;查找保存的黑名單列表,確定所述源IP地址屬于所述黑名單列表時,丟棄該請求消息。一種封禁IP地址的裝置,包括接收單元,用于接收客戶端發(fā)送的請求消息,當該請求消息進入網(wǎng)絡(luò)層后,先確定該請求消息對應(yīng)的源IP地址;3確定單元,用于查找保存的黑名單列表,確定所述源IP地址屬于所述黑名單列表時,丟棄該請求消息。一種內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器,包括上述裝置。本發(fā)明實施例中的封禁IP地址的方法、裝置和內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器,當請求消息進入網(wǎng)絡(luò)層后就先確定是否需要封禁,不需要經(jīng)過其他各層的后續(xù)處理,也不需要經(jīng)過網(wǎng)絡(luò)層中的其他常規(guī)處理過程,從而可以提高查找效率,減少封禁IP地址時的處理時間,提高處理效率。圖1為現(xiàn)有技術(shù)中iptables中的黑名單存儲方式示意圖;圖2為本發(fā)明實施例中封禁IP地址的方法流程圖;圖3為本發(fā)明另一實施例中封禁IP地址的方法流程圖;圖4為本發(fā)明實施例中按照哈希算法存儲黑名單時的存儲方式示意圖;圖5為本發(fā)明實施例中按照紅黑樹算法存儲黑名單時的存儲方式示意圖;圖6為本發(fā)明實施例中封禁IP地址的裝置結(jié)構(gòu)圖。具體實施例方式本發(fā)明實施例提供了一種封禁IP地址的方法、裝置和內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器,可以解決現(xiàn)有技術(shù)中封禁IP地址時處理時間過長,效率低下的問題。本發(fā)明實施例提供了一種封禁IP地址的方法,如圖2所示,包括以下步驟S201接收客戶端發(fā)送的請求消息,當該請求消息進入網(wǎng)絡(luò)層后,先確定該請求消息的源IP地址;S202查找保存的黑名單列表,確定所述源IP地址屬于所述黑名單列表時,丟棄該請求消息。較佳的,為了提高查找效率,所述黑名單列表中存儲的所有IP地址按照預(yù)先設(shè)定的存儲規(guī)則存儲;所述查找保存的黑名單列表,具體為按照所述存儲規(guī)則查找所述黑名單列表中的IP地址。其中,所述預(yù)先設(shè)定的存儲規(guī)則包括按照哈希算法進行存儲,或者,按照紅黑樹算法進行存儲。較佳的,所述黑名單列表可根據(jù)需要進行更新操作,包括添加IP地址或刪除IP地址。其中,所述添加IP地址或刪除IP地址時,同時添加或刪除多個IP地址。本發(fā)明實施例中的請求消息進入網(wǎng)絡(luò)層后就先確定是否需要封禁,不需要經(jīng)過其他各層的后續(xù)處理,也不需要經(jīng)過網(wǎng)絡(luò)層中其他的常規(guī)處理過程,而且,黑名單列表中的IP地址按照預(yù)先設(shè)定的存儲規(guī)則進行存儲,因此提高了查找效率,減少了封禁IP地址時的處理時間,從而提高了處理效率。下面以一個優(yōu)選實施例詳細描述一下本發(fā)明提供的方法在本實施例中,以CDN網(wǎng)絡(luò)為例進行描述,當然,本方法也可以應(yīng)用于其他網(wǎng)絡(luò)中。本實施例中通過在⑶N服務(wù)器上設(shè)置一個獨立的用于封禁IP的裝置來實現(xiàn)IP封禁功能,該裝置可以通過軟件實現(xiàn)。并且,在本實施例中,需要事先將需要封禁的IP地址存儲在CDN服務(wù)器上,構(gòu)成黑名單列表。并且,為了提高黑名單列表的查找效率,需要采用一定的優(yōu)化算法進行存儲。本實施例中的方法具體包括以下步驟,如圖3所示S301⑶N服務(wù)器接收到來自某一客戶端的請求消息。S302確定出該請求消息的源IP地址。具體的,該請求消息進入⑶N服務(wù)器之后,首先要經(jīng)過物理層和數(shù)據(jù)鏈路層的處理,然后進入網(wǎng)絡(luò)層,在本實施例中,該請求消息進入網(wǎng)絡(luò)層后,則直接送入用于封禁IP的裝置進行處理,在處理時,首先要確定出該請求消息的源IP地址。而且,消息進入網(wǎng)絡(luò)層后,通常會經(jīng)歷一系列的處理,例如,依次要執(zhí)行分片包搜集、判斷該請求消息的目的主機是否為該⑶N服務(wù)器等一系列常規(guī)操作,現(xiàn)有技術(shù)中的iptables工具雖然也是在網(wǎng)絡(luò)層進行處理的,但卻是在上述這一系列常規(guī)操作之后才執(zhí)行封禁IP地址的步驟,因此,在遇到需要封禁的請求時,還是事先進行了上述的常規(guī)操作,從而浪費了大量的處理時間。對此,本實施例中的方法,將封禁IP地址的操作設(shè)置在上述常規(guī)操作之前進行,即請求消息一進入網(wǎng)絡(luò)層則立即執(zhí)行是否需要封禁IP地址的判斷步驟,從而只對無需封禁的IP地址對應(yīng)的請求執(zhí)行后續(xù)的常規(guī)操作過程,因此,大大節(jié)約了處理時間,提高了處理效率。S303查找事先保存的黑名單列表,判斷該源IP地址是否在黑名單列表中,當該源IP地址在黑名單列表中時,執(zhí)行步驟S304;當該源IP地址不在黑名單列表中時,執(zhí)行步驟S305。S304丟棄該請求消息,直接結(jié)束對于該請求消息的處理。S305:接受該請求消息,并將該消息交由網(wǎng)絡(luò)層的后續(xù)模塊執(zhí)行后續(xù)處理。本實施例中的黑名單列表中存儲著所有需要封禁的IP地址,并且,該黑名單列表還可以根據(jù)實際需要進行更新,例如,可以在該黑名單列表中添加IP地址或者刪除IP地址。為了提高處理效率,在向該黑名單列表中添加IP地址或刪除IP地址時,可以一次同時添加或刪除多個IP地址。具體實現(xiàn)時,可以采用CCblist工具實現(xiàn),該工具是一個命令行的工具,可以采用如下語句配置需要封禁的IP地址,例如,當配置一個IP地址,即向該黑名單列表中添加一個IP地址時,可采用如下語句#ccblistaddip1.2.3.4;當配置多個IP地址,即向該黑名單列表中添加多個IP地址時,如三個時,可采用如下語句#ccblistaddip1.2.3.4,1.2.4.4,1.2.5.4。這樣就可以通過一條語句一次性將多個IP地址增加到黑名單中,而對于現(xiàn)有技術(shù)中的iptables實現(xiàn)方式來說,每條語句只能添加一個IP地址,即使需要添加上千個IP地址,也只能一個一個的添加,從而大大降低了處理效率;而本實施例中,在一條語句中可同時添加多個IP地址,如果有上千個IP地址需要添加,還可以將所有的IP地址保存到一個文件中,如ip.list文件,然后通過“#ccblistaddipfileip.list”語句添加即可。刪除時同理,本實施例在刪除時也可以一次刪除多個IP地址,因此,本實施例中的處理方式更加高效。并且,在本實施例的方法中,為了提高黑名單列表的查找效率,需要采用一定的優(yōu)化算法來存儲黑名單列表中的IP地址,例如,可以采用哈希算法來存儲這些需要封禁的IP地址。下面以存儲有100,000個IP地址的黑名單列表為例介紹一下哈希算法的實現(xiàn)方式假設(shè)哈希表中總共有65,536個桶,則基于哈希算法的黑名單存儲結(jié)構(gòu)如圖4所示,每個桶中存儲著相應(yīng)的IP地址,例如,桶0中存儲著與65536取余取值為零的IP地址,桶1中存儲著與65536取余取值為1的IP地址......依此類推。當⑶N服務(wù)器收到一個源IP地址后,首先將該IP地址對65536取余,并根據(jù)計算結(jié)果確定相應(yīng)的桶,進而在該桶中查找是否存在該IP地址,這樣,當黑名單列表中一共存儲有100,000個IP地址時,對于每一個源IP地址,平均匹配1.5(100,000/65,536)次就可以獲取匹配的結(jié)果,從而大大提高了查找效率?;蛘撸緦嵤├幸部梢圆捎闷渌膬?yōu)化算法來存儲黑名單列表中的IP地址,并不限于哈希算法這一種方式,只要能夠?qū)崿F(xiàn)高效存儲、高效查找的目的即可。例如,還可以采用紅黑樹算法來存儲黑名單列表中的IP地址。同樣,假設(shè)在黑名單列表中存儲有100,000個IP地址,使用紅黑樹存儲的結(jié)構(gòu)如圖5所示,將所有的IP地址根據(jù)其數(shù)值大小在紅黑樹中進行有序存儲。紅黑樹的存儲原理為對于任何一個節(jié)點,左子節(jié)點的IP地址小于該節(jié)點,右子節(jié)點的IP大于該節(jié)點。因此,圖5中的部分IP的大小關(guān)系為IP1<IP2<IP3<··.<IPm-I<IPm<IPm+1<…<IPn-2<IPn-I<1洵。這樣,在查找某個IP地址時,只需要根據(jù)紅黑樹的存儲特點進行查找就可以了,首先,判斷指定的IP地址與根節(jié)點的大小關(guān)系,當大于根節(jié)點時,則在右子節(jié)點中進行查找,當小于根節(jié)點時,則在左子節(jié)點中進行查找,直到找到相應(yīng)的節(jié)點為止。由此可以看出,采用紅黑樹的存儲結(jié)構(gòu)時,平均每個IP地址的匹配次數(shù)為log2(100,000)=16.6次。雖然該方式在匹配效率上沒有哈希算法快,但是整個數(shù)據(jù)結(jié)構(gòu)的穩(wěn)定性較好,而且在一定條件下紅黑樹的整個數(shù)據(jù)結(jié)構(gòu)占用的內(nèi)存比哈希表小。因此,采用本發(fā)明實施例中的方法封禁IP地址時,具有如下優(yōu)點處理效率高,由于在更新黑名單列表時可以同時更新多個IP地址,并且可以實時生效,因此,即使需要封禁的IP數(shù)目達到十萬級時,服務(wù)器的處理能力也基本不受影響;處理請求早,由于本方法是在網(wǎng)絡(luò)層處理數(shù)據(jù)包的開始處進行封禁處理,因此,無需進行后續(xù)的判斷目的IP地址等常規(guī)操作,從而可以盡早丟棄不需要響應(yīng)的請求,減少CDN服務(wù)器資源的消耗,降低服務(wù)器的負載;查找速度快,由于采用了高效的存儲算法,如哈希算法或紅黑樹算法等,因此大大提高了查找效率。本發(fā)明實施例還提供了一種⑶N網(wǎng)絡(luò)中封禁IP地址的裝置,如圖6所示,包括接收單元61,用于接收客戶端發(fā)送的請求消息,當該請求消息進入網(wǎng)絡(luò)層后,先確定該請求消息對應(yīng)的源IP地址;確定單元62,用于查找保存的黑名單列表,確定所述源IP地址屬于所述黑名單列表時,丟棄該請求消息。較佳的,所述裝置還包括存儲更新單元,用于按照預(yù)先設(shè)定的存儲規(guī)則存儲所述黑名單列表中的所有IP地址,以及根據(jù)需要對所述黑名單列表進行更新操作。較佳的,所述存儲更新單元,具體用于按照哈希算法或者紅黑樹算法存儲所述黑名單列表中的所有IP地址。本發(fā)明實施例中的請求消息進入網(wǎng)絡(luò)層后就開始確定是否需要封禁,不需要經(jīng)過其他各層的后續(xù)處理,而且,黑名單列表中的IP地址按照預(yù)先設(shè)定的存儲規(guī)則進行存儲,因此提高了查找效率,減少了封禁IP地址時的處理時間,從而提高了處理效率。本發(fā)明還提供了一種內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器,包括上述⑶N網(wǎng)絡(luò)中封禁IP地址的裝置。較佳的,所述內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器還包括處理單元,則所述確定單元還用于查找保存的黑名單列表并確定出所述客戶端IP地址不屬于所述黑名單列表時,通知所述處理單元,處理該請求消息;所述處理單元,用于處理該請求消息。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。權(quán)利要求1.一種封禁IP地址的方法,其特征在于,包括以下步驟接收客戶端發(fā)送的請求消息,當該請求消息進入網(wǎng)絡(luò)層后,先確定該請求消息的源IP地址;查找保存的黑名單列表,確定所述源IP地址屬于所述黑名單列表時,丟棄該請求消信息2.如權(quán)利要求1所述的方法,其特征在于,所述黑名單列表中存儲的所有IP地址按照預(yù)先設(shè)定的存儲規(guī)則存儲;所述查找保存的黑名單列表,具體為按照所述存儲規(guī)則查找所述黑名單列表中的IP地址。3.如權(quán)利要求2所述的方法,其特征在于,所述預(yù)先設(shè)定的存儲規(guī)則包括按照哈希算法進行存儲,或者,按照紅黑樹算法進行存儲。4.如權(quán)利要求1所述的方法,其特征在于,所述黑名單列表可根據(jù)需要進行更新操作,包括添加IP地址或刪除IP地址。5.如權(quán)利要求4所述的方法,其特征在于,所述添加IP地址或刪除IP地址時,同時添加或刪除多個IP地址。6.一種封禁IP地址的裝置,其特征在于,包括接收單元,用于接收客戶端發(fā)送的請求消息,當該請求消息進入網(wǎng)絡(luò)層后,先確定該請求消息對應(yīng)的源IP地址;確定單元,用于查找保存的黑名單列表,確定所述源IP地址屬于所述黑名單列表時,丟棄該請求消息。7.如權(quán)利要求6所述的裝置,其特征在于,還包括存儲更新單元,用于按照預(yù)先設(shè)定的存儲規(guī)則存儲所述黑名單列表中的所有IP地址,以及根據(jù)需要對所述黑名單列表進行更新操作。8.如權(quán)利要求7所述的裝置,其特征在于,所述存儲更新單元,具體用于按照哈希算法或者紅黑樹算法存儲所述黑名單列表中的所有IP地址。9.一種內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器,其特征在于,包括權(quán)利要求6-8任一所述的裝置。10.如權(quán)利要求9所述的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器,其特征在于,還包括處理單元,則所述確定單元還用于查找保存的黑名單列表并確定出所述客戶端IP地址不屬于所述黑名單列表時,通知所述處理單元,處理該請求消息;所述處理單元,用于處理該請求消息。全文摘要本發(fā)明公開了一種封禁IP地址的方法、裝置和內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器,該方法包括以下步驟接收客戶端發(fā)送的請求消息,當該請求消息進入網(wǎng)絡(luò)層后,先確定該請求消息的源IP地址;查找保存的黑名單列表,確定所述源IP地址屬于所述黑名單列表時,丟棄該請求消息。本發(fā)明實施例中的封禁IP地址的方法及裝置,當請求消息進入網(wǎng)絡(luò)層后就開始確定是否需要封禁,不需要經(jīng)過其他各層的后續(xù)處理,而且,也不需要經(jīng)過網(wǎng)絡(luò)層中的其他常規(guī)處理過程,從而可以提高查找效率,減少封禁IP地址時的處理時間,提高處理效率。文檔編號H04L29/08GK102158568SQ20111009930公開日2011年8月17日申請日期2011年4月20日優(yōu)先權(quán)日2011年4月20日發(fā)明者宗劼,王興華,趙偉申請人:北京藍汛通信技術(shù)有限責任公司