本發(fā)明屬于計算機數(shù)據(jù)通信的技術領域,具體涉及一種基于sdn的防止dhcp欺騙的方法。
背景技術:
sdn最早起源于斯坦福大學的一個叫做cleanslate的校園項目。它是一種創(chuàng)新型的網(wǎng)絡體系架構,其核心思想是把轉發(fā)平面和控制平面進行分離,通過集中式的控制器controller使用標準的接口來對各種不同的網(wǎng)絡設備進行配置和管理,使得對網(wǎng)絡的管理更加集中化、精細化。
dhcp是用于向網(wǎng)絡中的計算機分配ip地址及一些tcp/ip配置信息,dhcp提供了安全、可靠且簡單的tcp/ip網(wǎng)絡設置,避免了tcp/ip網(wǎng)絡地址的沖突,同時大大降低了工作負擔。dhcp工作原理是客戶機從服務器獲取ip的四個租約過程,客戶機請求ip,服務器相應請求,客戶機選擇ip,服務器確定租約。
從dhcp工作原理可以看出,如果客戶端是第一次、重新登錄或租期已滿不能更新租約,客戶端都是以廣播的方式來尋找服務器,并且只接收第一個到達的服務器提供的網(wǎng)絡配置參數(shù),如果在網(wǎng)絡中存在多臺dhcp服務器(有一臺或更多臺是非授權的),誰先應答,客戶端就采用其提供的網(wǎng)絡配置參數(shù)。假如非授權的dhcp服務器先應答,這樣客戶端最后獲得的網(wǎng)絡參數(shù)即是非授權的,客戶端即被欺騙了。而在實際應用dhcp的網(wǎng)絡中,基本上都會采用dhcp中繼,這樣的話,本網(wǎng)絡的非授權dhcp服務器一般都會先于其余網(wǎng)絡的授權dhcp服務器的應答(由于網(wǎng)絡傳輸?shù)难舆t),在這樣的應用中,dhcp欺騙更容易實現(xiàn)。
技術實現(xiàn)要素:
本發(fā)明的目的在于針對現(xiàn)有技術中的上述不足,提供一種基于sdn的防止dhcp欺騙的方法,以解決現(xiàn)有的dhcp部署允許存在多個dhcp服務器和容易植入惡意dhcp服務器問題。
為達到上述目的,本發(fā)明采取的技術方案是:
一種基于sdn的防止dhcp欺騙的方法,包括
步驟s1,sdn控制器接收dhcp數(shù)據(jù)報文的二層數(shù)據(jù)幀;
步驟s2,比較二層數(shù)據(jù)幀的源mac與dhcp數(shù)據(jù)報中的chaddr字段中的源mac;
步驟s3,當兩者相等時,提取二層數(shù)據(jù)幀的源mac,并與mac-port映射表中的mac做匹配;
步驟s4,當不匹配時,將dhcp數(shù)據(jù)報文做drop處理;
步驟s5,根據(jù)流表統(tǒng)計信息,統(tǒng)計每個端口接收到的dhcp請求報文的流量,建立物理機黑名單,并將黑名單內(nèi)的物理機端口發(fā)出的dhcp報文直接下發(fā)drop;
步驟s6,將sdn控制器記錄的dhcp服務器所在的物理端口和mac地址,建立為白名單,將非白名單發(fā)出的dhcp請求報文回復全部丟棄。
優(yōu)選地,當dhcp數(shù)據(jù)報文由udp端口67發(fā)出并傳輸?shù)絪dn交換機的接口時,sdn交換機檢測到該dhcp數(shù)據(jù)報匹配流表項不成功,sdn交換機將該dhcp數(shù)據(jù)報發(fā)送至sdn控制器,并做步驟s1處理。
優(yōu)選地,根據(jù)步驟s2中比較結果顯示兩個mac的地址不同,丟棄該dhcp數(shù)據(jù)報文,若相同,進入步驟s3中處理。
優(yōu)選地,mac-port映射表為根據(jù)當前拓撲網(wǎng)絡,存入的對應物理機的mac地址和port端口。
優(yōu)選地,物理機黑名單用于記錄當前物理機所在端口和其mac地址。
優(yōu)選地,白名單為sdn控制器記錄的當前網(wǎng)絡中所有dhcp服務器所在的物理端口及mac地址。
本發(fā)明提供的基于sdn的防止dhcp欺騙的方法,具有以下有益效果:
本發(fā)明配置sdn網(wǎng)絡,在sdn網(wǎng)絡中,利用dhcp服務器的配置信息,將dhcp服務器部署在sdn網(wǎng)絡中,首先通過dhcp數(shù)據(jù)報二層幀的源mac與該dhcp數(shù)據(jù)報中的chaddr字段中的源mac比較,首次判斷出偽造的dhcp數(shù)據(jù)報;進而繼續(xù)通過提取dhcp數(shù)據(jù)報文中二層幀的源mac,并與mac-port映射表中的mac做匹配,若匹配不上,則將對此報文下發(fā)做drop處理;除此,建立物理機黑名單和白名單,防止惡意的攻擊,有效的解決了現(xiàn)有的dhcp部署允許存在多個dhcp服務器和容易植入惡意dhcp服務器的問題。
附圖說明
圖1為基于sdn的防止dhcp欺騙的方法的流程圖。
圖2為基于sdn的防止dhcp欺騙的方法的原理框圖。
具體實施方式
下面對本發(fā)明的具體實施方式進行描述,以便于本技術領域的技術人員理解本發(fā)明,但應該清楚,本發(fā)明不限于具體實施方式的范圍,對本技術領域的普通技術人員來講,只要各種變化在所附的權利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見的,一切利用本發(fā)明構思的發(fā)明創(chuàng)造均在保護之列。
根據(jù)本申請的一個實施例,如圖1-2所示,本方案的基于sdn的防止dhcp欺騙的方法。
配置sdn網(wǎng)絡,在sdn網(wǎng)絡中,利用dhcp服務器的配置信息,將dhcp服務器部署在sdn網(wǎng)絡中,其具體操作步驟如下。
步驟s1,當dhcp數(shù)據(jù)報由udp端口67發(fā)出并傳輸?shù)絪dn交換機的接口時,sdn交換機檢測到該dhcp數(shù)據(jù)報匹配流表項不成功,sdn交換機將該dhcp數(shù)據(jù)報發(fā)送至sdn控制器,sdn控制器接收dhcp數(shù)據(jù)報的二層數(shù)據(jù)幀。
步驟s2,sdn控制器對步驟s1中接收到的dhcp數(shù)據(jù)報的二層數(shù)據(jù)幀進行檢查判斷,將二層幀的源mac與dhcp數(shù)據(jù)報中的chaddr字段中的源mac比較,如果兩者不相等,則斷定該dhcp數(shù)據(jù)報是一個偽造的數(shù)據(jù)報;如果兩個mac地址相同,轉到步驟s3中繼續(xù)判斷。
步驟s3,根據(jù)步驟s2中比較的結果,當結果相等時,查看當前拓撲網(wǎng)絡,將物理機的mac地址和port端口存入mac-port映射表中,sdn控制器提取dhcp數(shù)據(jù)報文中二層幀的源mac,并與mac-port映射表中的mac做匹配。
步驟s4,根據(jù)步驟s3中匹配的結果,當結果不匹配時,將該dhcp數(shù)據(jù)報文做drop處理。
步驟s5,根據(jù)流表統(tǒng)計信息統(tǒng)計從每個端口接收到的dhcp請求報文的流量情況,建立物理機黑名單,并將黑名單內(nèi)的物理機端口發(fā)出的dhcp報文直接下發(fā)drop。
步驟s6,將控制器中記錄的當前網(wǎng)絡中所有dhcp服務器所在的物理端口及mac地址設置為白名單,只允許dhcpoffer和dhcpack消息由白名單里的信任端口發(fā)出回復報文,從其他非信任端口發(fā)出的這些dhcp回復請求報文全部丟棄,避免非授權dhcp服務器欺騙攻擊。
本發(fā)明通過配置sdn網(wǎng)絡,在sdn網(wǎng)絡中利用dhcp服務器的配置信息,將dhcp服務器部署在sdn網(wǎng)絡中。客戶在請求訪問dhcp服務器時,對源udp端口68大于一定請求次數(shù)的主機mac地址,便將此次mac地址列為黑名單,防止惡意攻擊。其次,訪問請求到達sdn時,sdn控制器會先對此請求進行認證,sdn控制器也會生成對dhcp服務器的白名單。dhcp服務器收到sdn認證后的請求并作出響應,sdn控制器對源udp端口67的響應報文進行比對,如果本次響應的服務器不在dhcp服務器的白名單中,則丟棄該報文,防止dhcp欺騙的發(fā)生。
雖然結合附圖對發(fā)明的具體實施方式進行了詳細地描述,但不應理解為對本專利的保護范圍的限定。在權利要求書所描述的范圍內(nèi),本領域技術人員不經(jīng)創(chuàng)造性勞動即可做出的各種修改和變形仍屬本專利的保護范圍。