專利名稱:基于解析dhcp報文實現防ip地址欺詐的方法
技術領域:
本發明涉及無源光網絡上防IP地址欺詐領域,具體來講是一種基于解析DHCP報文實現防IP地址欺詐的方法。
背景技術:
GPON(Gigabit-Capable Ρ0Ν,吉兆比特無源光網絡)技術是基于 ITU-T G. 984. x標準的最新一代寬帶無源光綜合接入標準,具有眾多優點,被大多數運營商視為實現接入網業務寬帶化、綜合化改造的理想技術。GPON系統可以為用戶提供數據、語音、IPTV等多種業務,真正實現三網融合。互聯網充滿著各種安全威脅,其中之一就是IP地址欺詐,IP地址欺詐技術就是偽 造某臺主機的IP地址的技術。通過IP地址的偽裝,使得某臺主機能夠偽裝成另外一臺主機,而偽裝后主機往往具有某種特權或者被另外的主機所信任。防止IP地址欺詐的第一步就是阻止能造成風險的IP地址。雖然攻擊者可以使用任何IP地址進行欺詐,但使用網絡上用戶正在使用的有效IP地址進行欺詐,往往最有效果,也是我們最需要防范的IP地址欺詐行為。最簡單的防IP地址欺詐的方法就是靜態的創建一個ACL(ACCESS CONTROL LIST,訪問控制列表),綁定到用戶端口,對來自用戶端口的IP報文進行過濾,以達到防IP地址欺詐的目的。但是目前的網絡運用中,用戶的IP通常都是使用DHCP (Dynamic Host Configuration Protocol,動態主機配置協議)動態獲取的,這就造成了無法獲得一個靜態的ACL列表,如何解決這個問題,動態的實現防IP地址欺詐,就需要將創建ACL列表和用戶動態獲取IP這二者緊密聯系起來。
發明內容
針對現有技術中存在的缺陷,本發明的目的在于提供一種基于解析DHCP報文實現防IP地址欺詐的方法,動態的獲取用戶端口的合法IP地址表,動態的生成端口的IP地址白名單和黑名單,實現了防IP地址欺詐的功能。為達到以上目的,本發明采取的技術方案是基于解析DHCP報文實現防IP地址欺詐的方法,包括如下步驟si.光網絡終端將其轉發的DHCP報文捕獲至CPU,解析注冊的DHCP報文,獲取光網絡終端下聯用戶獲取的用戶IP地址IPn,所述用戶IP地址IPn為用戶和DHCP服務器IP租約正式生效時的IP地址;S2.光網絡終端將所述用戶IP地址IPn產生訪問控制列表,綁定到合法端口,同時設置攔截來自其余用戶端口、源IP地址為用戶IP地址IPn的報文。在上述技術方案的基礎上,用戶使用DHCP協議第一次獲取IP地址,用戶首先發送一個DHCP發現報文,網絡上多臺DHCP服務器回復給用戶DHCP回復報文,用戶挑選其中一個DHCP回復報文,并向網絡發送一個DHCP請求報文,通知所有DHCP服務器它將指定接受所挑選的那臺DHCP服務器提供的IP地址租約。在上述技術方案的基礎上,當DHCP服務器接收到用戶發送的DHCP請求報文后,回復一個DHCP響應報文,確認用戶的一個IP租約正式生效;當用戶收到DHCP服務器回復的DHCP響應報文,表明IP租約正式生效,此時的IP地址為用戶IP地址IPN。在上述技術方案的基礎上,所述步驟SI的詳細步驟為S11.解析出DHCP請求報文,記錄DHCP請求報文中的用戶請求序列號IDn,同時獲取DHCP請求報文的用戶端口號Portn,生成一個用戶序列號-用戶端口號表項,添加到一個記錄表中;S12.解析出DHCP響應報文,記錄DHCP響應報文中的用戶響應序列號IDm、用戶IP地址IPn及其租用時間Tn,查找所述記錄表中是否存在與用戶響應序列號IDn^B同的用戶請求序列號IDn,若存在,將用戶IP地址IPn和租用時間Tn添加到所述記錄表中,在記錄表中生成完整的表項,其包含相互匹配的用戶端口號Portn、用戶請求序列號IDn、用戶IP地址IPn和租用時間Tn。S13.解析DHCP釋放報文,記錄其中的IP地址,查找所述記錄表中是否有與IP地址相匹配的用戶IP地址IPn表項,如果有,則刪除此用戶IP地址1 1<表項;S14.定時刷新所述記錄表中的表項,查看是否有租用時間到期的用戶IP地址IPn,如果有,則刪除此用戶IP地址IPn表項;。在上述技術方案的基礎上,所述第一次獲取IP地址后,整個DHCP協議期間,用戶 和DHCP服務器之間的DHCP協議交互,依然通過發送DHCP請求報文給DHCP服務器,均使用用戶請求序列號IDn標識。在上述技術方案的基礎上,所述用戶在發送DHCP請求報文后,若得不到回應,則重復發送多次DHCP請求報文,但多次發送的DHCP請求報文的用戶請求序列號IDn相同,保存用戶請求序列號IDn時要判斷用戶端口列表中是否已保存此次記錄,如果保存了此次記錄,則無需再保存。在上述技術方案的基礎上,在生成用戶端口號Portn的合法用戶IP地址IPn表項的時候,要判斷該表項是否存在,若存在,則刷新這個表項的租用時間Tn,若不存在,則增加新的用戶IP地址IPn的表項。在上述技術方案的基礎上,所述步驟S2中,根據所述記錄表中的表項,通過表項中的用戶端口號Portn所對應的用戶IP地址IPn生成訪問控制列表,在用戶端口號Portn的地址白名單中添加這個用戶IP地址IPn,同時在相同光網絡終端的其它用戶端口,將所述用戶IP地址IPn設為其他端口的地址黑名單,保證此IP地址IPn的TCP/IP報文只能從它所綁定的用戶端口轉發,除該用戶端口外的其他端口均不轉發此TCP/IP報文。在上述技術方案的基礎上,當所述記錄表中有表項刪除時,及時更新訪問控制列表,更新用戶端口的IP地址白名單和黑名單。在上述技術方案的基礎上,設定每個用戶IP地址IPnA數限制,一旦光網絡終端端口綁定的用戶IP地址IPn達到了所述個數限制,則新的IP地址覆蓋已經存在的用戶IP地址IPn表項。本發明的有益效果在于本發明基于解析DHCP報文實現防IP地址欺詐的方法,通過解析DHCP報文,動態的獲取用戶端口的合法IP地址表,生成ONU(Optical NetworkUnit,光網絡終端)的用戶端口的IP地址白名單和黑名單,攔截非法的IP報文,實現防IP地址欺詐的功能。從而可以更好的保證網絡安全,保護正常用戶的業務不會被相鄰的用戶影響或盜用。
圖I為本發明實施例基于解析DHCP報文實現防IP地址欺詐的方法的流程圖;圖2為本發明用戶首次申請IP時的DHCP協議流程圖;圖3為本發明用戶續約時的DHCP協議流程圖;圖4為本發明實施例的應用系統框圖。
具體實施例方式以下結合附圖對本發明作進一步詳細說明。本發明基于解析DHCP報文實現防IP地址欺詐的方法,如圖I所示,包括步驟SI.光網絡終端將其轉發的DHCP報文捕獲至CPU,解析注冊的DHCP報文,獲取ONU下聯用戶獲取的用戶IP地址IPn,所述用戶IP地址IPn為用戶和DHCP服務器IP租約正式生效時的IP地址。 其中,如圖2所示,用戶使用DHCP協議第一次獲取IP地址的整個過程,用戶首先發送一個DHCP發現報文(DHCP discover報文),這個報文是一個廣播報文,網絡上會有多臺DHCP服務器回復給用戶回復報文(DHCP offer報文),用戶只會挑選其中一個DHCPoffer報文,通常是挑選最先抵達用戶的那個DHCP offer報文。此時,用戶向網絡發送一個DHCP請求報文(DHCP request報文),通知所有DHCP服務器它將指定接受所挑選的那臺DHCP服務器提供的IP地址租約。當DHCP服務器接收到用戶發送的DHCP request報文后,回復一個DHCP響應報文(DHCP ACK報文),表明IP租約正式生效,此時的IP地址為用戶IP地址IPN。確認用戶的一個IP租約正式生效,也就結束了一個完整的DHCP IP申請過程,這個過程可能發生在用戶第一次申請IP地址的過程中,也可能發生在用戶申請續約IP地址的過程中。所述SI的具體步驟如下Sll.解析出DHCP request報文,記錄DHCP request報文中的用戶請求序列號IDn (Transaction ID),同時獲取DHCP request報文的用戶端口號Portn,生成一個“用戶序列號_用戶端口號”表項,添加到一個記錄表M中。S12.解析出DHCP ACK報文,記錄DHCP ACK報文中的用戶響應序列號IDni、用戶IP地址IPn及其租用時間Tn,查找所述記錄表M中是否存在與用戶響應序列號IDm相同的用戶請求序列號IDn,若存在,將用戶IP地址IPn和租用時間Tn添加到記錄表M中,在記錄表M中生成完整的表項,其包含相互匹配的用戶端口號Portn、用戶請求序列號IDn、用戶IP地址IPn和租用時間Tn,即給出這4個表項其中的I個,就能能記錄表M中找出與其相互匹配的另外3個表項。S13.如圖2所示,解析DHCP釋放報文(DHCP release報文),記錄其中的用戶IP地址,查找所述記錄表中是否有與IP地址相匹配的用戶IP地址IPn表項,如果有,則刪除此用戶IP地址IPn表項,原因是用戶主動釋放IP地址,因此需要刪除相應的表項。S14.定時刷新記錄表M中的表項,查看是否有租用時間到期的用戶IP地址IPN,如果有,則刪除此用戶IP地址IPn表項。當用戶沒有主動釋放獲取的IP,就需要定時刷新紀錄表M中的表項來清理這些用戶IP地址IPn表項,避免用戶IP地址IPn表項只會增加,不會減少,最后造成這個IP地址表溢出。在生成用戶端口號Portn的用戶IP地址IPn表項的時候,需要判斷這個表項是否存在,若存在,則刷新這個表項的租用時間Tn ;若不存在,則在記錄表M中增加新的用戶IP地址IPn的表項。在第一次獲取IP地址后,整個DHCP協議期間,用戶和DHCP服務器之間的DHCP協議交互,依然通過發送DHCP請求報文給DHCP服務器,均使用用戶請求序列號IDn標識。而DHCP報文的用戶請求序列號IDn是唯一用來標識一次DHCP請求的標識符,在用戶發起一次DHCP請求后,整個協議期間,用戶和服務器之間的DHCP交互報文都會使用這個用戶請求序列號IDn標識。實際中可能出現,用戶在發送DHCP request報文后,一直得不到DHCP服務器回復的DHCP ACK報文,這表明用戶的請求還沒有正式生效,所以還需要定時清理記錄表M中長時間沒有得到確認的DHCP申請。而用戶在發送DHCP請求報文后,若得不到回應,則重復發送多次DHCP請求報文,DHCP request報文在得不到回應的情況下可能會重復發送多次,但多次的用戶請求序列號10 是相同的,保存用戶請求序列號IDn時要判斷用戶端口列表中是否已保存此次記錄,如果保存了此次記錄,則無需再保存。如圖3所示,用戶在續約IP地址時的協議交互,用戶依然是通過發送DHCP request報文來續約IP地址。所以,不論是用戶第一次申請IP地址,還是用戶續約IP地址,都會發送DHCP request報文給DHCP服務器,接受DHCP服務器的IP租約。S2. ONU將用戶IP地址IPn產生ACL例表,綁定到合法端口,同時設置攔截來自其余用戶端口、源IP地址為用戶IP地址IPn的報文。其中,根據記錄表M中的表項,通過表項中的用戶端口號Portn所對應的用戶IP地址IPn生成ACL列表,在用戶端口號Portn的地址白名單中添加這個用戶IP地址IPN,同時在相同ONU的其它用戶端口,將所述IP地址IPn設為其它端口的地址黑名單,保證此用戶IP地址IPn的DHCP報文只能從它所綁定的用戶端口轉發,除該用戶端口外的其它端口均不轉發此DHCP報文。當記錄表M中有表項刪除時,及時更新ACL列表,更新用戶端口的IP地址白名單和黑名單。為了提高效率,在上述步驟中,可以設定每個用戶IP地址IPn個數限制,一旦ONU端口綁定的用戶IP地址IPn達到了所述個數限制,則新的IP地址可以覆蓋已經存在的用戶IP地址IPn表項。下面通過具體的應用實例對本發明作進一步詳細說明。如圖4所示,本實施例的應用系統中,ONU有4個用戶端口,分別為UNI (User nodeinterface,用戶接口 ) I UNI4 口,ONU 和 OLT(optical line terminal,光線路終端)組成一個GPON系統,其中PCl和PC2分別是連接到ONU的UNIl 口和UNI2 口,且屬于同一個VLAN(Virtual Local Area Network,虛擬局域網)中。OLT上聯口連接DHCP服務器和PC3,DHCP服務器提供的租用IP范圍為192. 168. I. I 192. 168. I. 10,PC3的IP地址設為192. 168. I. 18。在實施中,首先關閉ONU的防IP地址欺詐功能,PCl使用DHCP方式從DHCP服務器獲取到IP 192. 168. I. 1,然后PCl使用TCP/IP協議訪問PC3,此時TCP/IP協議訪問一切正常。將PC2設為靜態IP模式,IP設為192. 168. I. 1,在PC2上也是用TCP/IP協議訪問PC3,這時可以發現PCl和PC2的都會斷斷續續出現無法使用TCP/IP協議訪問PC3的情況發生,一旦PCl停止使用TCP/IP協議訪問PC3,PC2馬上就可以持續使用TCP/IP協議訪問PC3 了,PC2的IP欺詐成功。打開ONU的防IP地址欺詐功能,同樣讓PCl重新使用DHCP方式獲取到IP192. 168. I. 1,這時ONU設置攔截UNI2 UNI4 口攔截源IP為192. 168. I. I的報文,只有UNIl 口讓IP 192. 168. I. I的報文通過,這時將PC2電腦的IP設為靜態的IP 192. 168. I. 1,然后同時在PCl和PC2上使用TCP/IP協議訪問PC3,可以發現PCl使用TCP/IP協議訪問PC3不受影響,而PC2則無法使用TCP/IP協議訪問PC3。PCl釋放掉IP192. 168. I. 1,這時PC2就可以使用TCP/IP協議訪問PC3 了。本發明不局限于上述實施方式,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發明的保護范圍之內。本說明書中未作詳細描述的內 容屬于本領域專業技術人員公知的現有技術。
權利要求
1.一種基于解析DHCP報文實現防IP地址欺詐的方法,其特征在于,包括如下步驟 51.光網絡終端將其轉發的DHCP報文捕獲至CPU,解析注冊的DHCP報文,獲取光網絡終端下聯用戶獲取的用戶IP地址IPn,所述用戶IP地址IPn為用戶和DHCP服務器IP租約正式生效時的IP地址; 52.光網絡終端將所述用戶IP地址IPn產生訪問控制列表,綁定到合法端口,同時設置攔截來自其余用戶端口、源IP地址為用戶IP地址IPn的報文。
2.如權利要求I所述的基于解析DHCP報文實現防IP地址欺詐的方法,其特征在于用戶使用DHCP協議第一次獲取IP地址,用戶首先發送一個DHCP發現報文,網絡上多臺DHCP服務器回復給用戶DHCP回復報文,用戶挑選其中一個DHCP回復報文,并向網絡發送一個DHCP請求報文,通知所有DHCP服務器它將指定接受所挑選的那臺DHCP服務器提供的IP地址租約。
3.如權利要求2所述的基于解析DHCP報文實現防IP地址欺詐的方法,其特征在于當DHCP服務器接收到用戶發送的DHCP請求報文后,回復一個DHCP響應報文,確認用戶的一個IP租約正式生效;當用戶收到DHCP服務器回復的DHCP響應報文,表明IP租約正式生效,此時的IP地址為用戶IP地址IPN。
4.如權利要求3所述的基于解析DHCP報文實現防IP地址欺詐的方法,其特征在于所述步驟SI的詳細步驟為 511.解析出DHCP請求報文,記錄DHCP請求報文中的用戶請求序列號IDn,同時獲取DHCP請求報文的用戶端口號Portn,生成一個用戶序列號-用戶端口號表項,添加到一個記錄表中; 512.解析出DHCP響應報文,記錄DHCP響應報文中的用戶響應序列號IDm、用戶IP地址IPn及其租用時間Tn,查找所述記錄表中是否存在與用戶響應序列號IDm相同的用戶請求序列號IDn,若存在,將用戶IP地址IPn和租用時間Tn添加到所述記錄表中,在記錄表中生成完整的表項,其包含相互匹配的用戶端口號Portn、用戶請求序列號IDn、用戶IP地址IP1^P租用時間Tn。
513.解析DHCP釋放報文,記錄其中的IP地址,查找所述記錄表中是否有與IP地址相匹配的用戶IP地址IPn表項,如果有,則刪除此用戶IP地址IPn表項; 514.定時刷新所述記錄表中的表項,查看是否有租用時間到期的用戶IP地址ΙΡΝ,如果有,則刪除此用戶IP地址IPn表項。
5.如權利要求4所述的基于解析DHCP報文實現防IP地址欺詐的方法,其特征在于所述第一次獲取IP地址后,整個DHCP協議期間,用戶和DHCP服務器之間的DHCP協議交互,依然通過發送DHCP請求報文給DHCP服務器,均使用用戶請求序列號IDn標識。
6.如權利要求4所述的基于解析DHCP報文實現防IP地址欺詐的方法,其特征在于所述用戶在發送DHCP請求報文后,若得不到回應,則重復發送多次DHCP請求報文,但多次發送的DHCP請求報文的用戶請求序列號IDn相同,保存用戶請求序列號IDn時要判斷用戶端口列表中是否已保存此次記錄,如果保存了此次記錄,則無需再保存。
7.如權利要求4所述的基于解析DHCP報文實現防IP地址欺詐的方法,其特征在于在生成用戶端口號Portn的合法用戶IP地址IPn表項的時候,要判斷該表項是否存在,若存在,則刷新這個表項的租用時間Tn,若不存在,則增加新的用戶IP地址IPn的表項。
8.如權利要求4所述的基于解析DHCP報文實現防IP地址欺詐的方法,其特征在于所述步驟S2中,根據所述記錄表中的表項,通過表項中的用戶端口號Portn所對應的用戶IP地址IPn生成訪問控制列表,在用戶端口號Portn的地址白名單中添加這個用戶IP地址IPn,同時在相同光網絡終端的其它用戶端口,將所述用戶IP地址IPn設為其他端口的地址黑名單,保證此IP地址IPn的TCP/IP報文只能從它所綁定的用戶端口轉發,除該用戶端口外的其他端口均不轉發此TCP/IP報文。
9.如權利要求8所述的基于解析DHCP報文實現防IP地址欺詐的方法,其特征在于當所述記錄表中有表項刪除時,及時更新訪問控制列表,更新用戶端口的IP地址白名單和黑名單。
10.如權利要求I、4或8所述的基于解析DHCP報文實現防IP地址欺詐的方法,其特征在于設定每個用戶IP地址0\個數限制,一旦光網絡終端端口綁定的用戶IP地址0\達到了所述個數限制,則新的IP地址覆蓋已經存在的用戶IP地址IPn表項。
全文摘要
一種基于解析DHCP報文實現防IP地址欺詐的方法,涉及無源光網絡上防IP地址欺詐領域,包括如下步驟S1.光網絡終端將其轉發的DHCP報文捕獲至CPU,解析注冊的DHCP報文,獲取光網絡終端下聯用戶獲取的用戶IP地址IPN,所述用戶IP地址IPN為用戶和DHCP服務器IP租約正式生效時的IP地址;S2.光網絡終端將所述用戶IP地址IPN產生訪問控制列表,綁定到合法端口,同時設置攔截來自其余用戶端口、源IP地址為用戶IP地址IPN的報文。該方法動態的獲取用戶端口的合法IP地址表,動態的生成端口的IP地址白名單和黑名單,實現了防IP地址欺詐的功能。
文檔編號H04L29/12GK102882861SQ20121034684
公開日2013年1月16日 申請日期2012年9月19日 優先權日2012年9月19日
發明者錢凱, 吳軍平, 劉新峰, 王信奎 申請人:烽火通信科技股份有限公司