一種虛擬機(jī)批量在線ip地址自動設(shè)置系統(tǒng)及方法
【專利摘要】本發(fā)明涉及一種虛擬機(jī)批量在線IP地址自動設(shè)置系統(tǒng)及方法,由DHCP請求捕包器、DHCP應(yīng)答發(fā)包器、DHCP應(yīng)答包構(gòu)造器和系統(tǒng)管理模塊組成。本發(fā)明能夠靈活為在線虛擬機(jī)自動設(shè)置IP地址,而不用在虛擬機(jī)中安裝任何額外程序,保持了虛擬機(jī)在作為實(shí)驗(yàn)環(huán)境時的真實(shí)性;既可以通過MAC地址為虛擬機(jī)設(shè)置固定的IP地址,也可以為虛擬機(jī)在一個IP地址段中,自由隨機(jī)分配IP地址。
【專利說明】一種虛擬機(jī)批量在線IP地址自動設(shè)置系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及大規(guī)模網(wǎng)絡(luò)仿真節(jié)點(diǎn)自動化部署領(lǐng)域,具體涉及一種虛擬機(jī)批量在線IP地址自動設(shè)置系統(tǒng)及方法。
【背景技術(shù)】
[0002]在試圖解決復(fù)雜網(wǎng)絡(luò)環(huán)境中的安全問題時,通常需要提供有效的手段來論證方案、技術(shù)的可行性,驗(yàn)證系統(tǒng)的有效性,評估系統(tǒng)的實(shí)際應(yīng)用效能。在網(wǎng)絡(luò)安全實(shí)踐過程中,學(xué)術(shù)界與工業(yè)界形成了若干測試驗(yàn)證的方法。常見的包括:分析模型(analytical model)、模擬(Simulat1n)、仿真(Emulat1n)、真實(shí)網(wǎng)絡(luò)(Live Networks)等。分析模型試圖通過數(shù)學(xué)方法建立網(wǎng)絡(luò)的模型,運(yùn)用數(shù)學(xué)工具推導(dǎo)安全技術(shù)的可行性與有效性;模擬方法通過軟件模擬網(wǎng)絡(luò)中的各種行為并加以分析評估;仿真手段則在一個可控環(huán)境中“復(fù)制”研究對象環(huán)境,通過加載實(shí)驗(yàn)負(fù)載對安全技術(shù)與產(chǎn)品進(jìn)行測試;真實(shí)網(wǎng)絡(luò)則是部署到真實(shí)的應(yīng)用環(huán)境中,通過實(shí)際應(yīng)用,并輔助以有效的監(jiān)測工具來檢驗(yàn)產(chǎn)品的功能與性能。這些方法中仿真非常接近真實(shí)網(wǎng)絡(luò),并且仿真所需要的成本較低。近年來隨著虛擬化技術(shù)的不斷發(fā)展,大規(guī)模網(wǎng)絡(luò)的仿真往往采用虛擬機(jī)作為仿真網(wǎng)絡(luò)中的節(jié)點(diǎn)。在大規(guī)模的虛擬機(jī)構(gòu)建與部署過程中,虛擬機(jī)IP地址自動化批量設(shè)置往往存在一定的挑戰(zhàn)性,這主要體現(xiàn)在兩個方面。首先,一般虛擬機(jī)Hypervisor將IP地址分配視為操作系統(tǒng)管理需要解決的問題,不予考慮;其次,為了保持虛擬機(jī)環(huán)境的真實(shí)性,無法采用在虛擬機(jī)中安裝后臺程序完成IP地址設(shè)置這種方法;再次,就算能夠通過虛擬機(jī)Hypervisor得到虛擬機(jī)操作系統(tǒng)所使用的內(nèi)存塊,由于操作系統(tǒng)的多樣性,且有些操作系統(tǒng)并未公開源碼,很難通過解析并修改操作系統(tǒng)所使用的內(nèi)存塊的辦法實(shí)現(xiàn)IP地址設(shè)置。
[0003]現(xiàn)階段絕大多數(shù)的虛擬機(jī)Hypervisor都不支持自動設(shè)置虛擬機(jī)IP地址的方法和接口,在工程中常見的方法有以下兩種:一是在虛擬機(jī)關(guān)機(jī)狀態(tài)修改虛擬機(jī)硬盤鏡像文件;一是通過在虛擬機(jī)中運(yùn)行后臺進(jìn)程,例如VMWare Tools。這幾中方法的缺點(diǎn)是:方法1只支持在虛擬機(jī)關(guān)機(jī)狀態(tài)設(shè)置IP地址,此外虛擬機(jī)硬盤鏡像文件中的文件結(jié)構(gòu)因操作系統(tǒng)的不同而各異,取得保存IP地址信息的文件并修改存在一定的風(fēng)險;方法2修改了虛擬機(jī)操作系統(tǒng),一定程度是影響了仿真的真實(shí)程度,限制了虛擬機(jī)的使用范圍。
【發(fā)明內(nèi)容】
[0004]本發(fā)明技術(shù)解決問題:克服現(xiàn)有技術(shù)的不足,提供一種虛擬機(jī)批量在線IP地址自動設(shè)置系統(tǒng)及方法,能夠在虛擬機(jī)環(huán)境下,在虛擬機(jī)在線狀態(tài),實(shí)現(xiàn)大規(guī)模虛擬機(jī)IP地址的自動化配置
[0005]本發(fā)明技術(shù)解決方案:一種虛擬機(jī)批量在線IP地址自動設(shè)置系統(tǒng),包括:DHCP請求捕包器、DHCP應(yīng)答發(fā)包器、DHCP應(yīng)答包構(gòu)造器、虛擬機(jī)信息數(shù)據(jù)庫和系統(tǒng)管理模塊;其中:
[0006]系統(tǒng)管理模塊,提供界面,供管理員完成整個系統(tǒng)的配置管理,當(dāng)有虛擬機(jī)批量IP地址設(shè)置的任務(wù)到達(dá)時,解析任務(wù)描述,并將IP地址設(shè)置規(guī)則及相關(guān)數(shù)據(jù)保存到虛擬機(jī)信息數(shù)據(jù)庫中,然后通知DHCP應(yīng)答構(gòu)造器有新任務(wù)達(dá)到;
[0007]DHCP請求捕包器,從橋接虛擬機(jī)的網(wǎng)橋或主機(jī)網(wǎng)卡上捕獲虛擬機(jī)所發(fā)出的DHCP請求包,然后將捕獲的數(shù)據(jù)包進(jìn)行封裝成TCP包,使捕捉到的DHCP應(yīng)答包作為TCP數(shù)據(jù)包的數(shù)據(jù)發(fā)送給DHCP應(yīng)答包構(gòu)造器;
[0008]DHCP應(yīng)答包構(gòu)造器,讀取虛擬機(jī)信息數(shù)據(jù)庫中的任務(wù)數(shù)據(jù),將MAC地址和IP地址的對應(yīng)關(guān)系以及IP設(shè)置規(guī)則保存到內(nèi)存中;對于DHCP請求捕包器發(fā)送過來的數(shù)據(jù)包,進(jìn)行解析,提取必要的信息,構(gòu)建應(yīng)答包,并將應(yīng)答包發(fā)送給DHCP應(yīng)答發(fā)包器;同時DHCP應(yīng)答發(fā)包構(gòu)造器在數(shù)據(jù)庫中記錄IP地址分配日志;
[0009]DHCP應(yīng)答發(fā)包器,接受有DHCP應(yīng)答包構(gòu)造器發(fā)送的DHCP應(yīng)答包,并以原始套接字的形式從虛擬機(jī)所橋接網(wǎng)橋或主機(jī)網(wǎng)卡發(fā)送出去。
[0010]所述DHCP請求捕包器的具體實(shí)現(xiàn)如下:
[0011](1)在每個用于橋接虛擬機(jī)的網(wǎng)橋或主機(jī)網(wǎng)卡上初始化,構(gòu)建包過濾規(guī)則,只捕捉DHCP 請求包,即 DHCP DISCOVER 包和 DHCP REQUEST 包;
[0012](2)啟動開始捕包;
[0013](3)判斷是否結(jié)束捕包,若是則結(jié)束,否則進(jìn)行捕包得到下一個數(shù)據(jù)包,執(zhí)行步驟⑷;
[0014](4)對得到的數(shù)據(jù)包進(jìn)行封裝成TCP包,使捕捉到的DHCP應(yīng)答包作為TCP數(shù)據(jù)包的數(shù)據(jù);
[0015](5)發(fā)送已封裝的TCP包到DHCP應(yīng)答構(gòu)建器,轉(zhuǎn)到步驟(3)繼續(xù)執(zhí)行。
[0016]所述DHCP應(yīng)答發(fā)包器的具體實(shí)現(xiàn)如下:
[0017](1)從DHCP應(yīng)答包構(gòu)造器接收TCP數(shù)據(jù)包;
[0018](2)解析TCP數(shù)據(jù)包,得到有DHCP應(yīng)答夠構(gòu)造器構(gòu)造的DHCP應(yīng)答包;
[0019](3)對該DHCP應(yīng)答包增加UDP包頭;
[0020](4)對該DHCP應(yīng)答包增加IP包頭;
[0021](5)對該DHCP應(yīng)答包增加以太網(wǎng)包頭;
[0022](6)通過原始套接字發(fā)送數(shù)據(jù)包;
[0023](7)判斷是否結(jié)束DHCP應(yīng)答發(fā)包器,若是則結(jié)束,否則轉(zhuǎn)到步驟⑴繼續(xù)執(zhí)行。
[0024]所述DHCP應(yīng)答包構(gòu)造器的具體實(shí)現(xiàn)如下:
[0025](1)在運(yùn)行之初創(chuàng)建兩個線程,線程一和線程二分別從步驟(2)和步驟(5)開始執(zhí)行;
[0026](2)線程一監(jiān)聽系統(tǒng)管理模塊發(fā)來的IP地址設(shè)置任務(wù)消息;
[0027](3)使當(dāng)有IP地址設(shè)置任務(wù)到達(dá)時,查詢虛擬機(jī)信息數(shù)據(jù)庫,讀取IP地址的設(shè)置規(guī)則,包括MAC地址和IP地址的對應(yīng)關(guān)系、此次IP地址設(shè)置任務(wù)包含的MAC地址和IP地址范圍;
[0028](4)判斷是否結(jié)束線程一,若是,則結(jié)束線程一,否則轉(zhuǎn)到步驟(2)繼續(xù)執(zhí)行;
[0029](5)線程二從DHCP請求捕包器接收TCP數(shù)據(jù)包;
[0030](6)解析TCP數(shù)據(jù)包,得到有DHCP請求捕包捕獲的DHCP請求包;
[0031](7)根據(jù)線程一從數(shù)據(jù)庫中讀取的MAC地址和IP地址范圍數(shù)據(jù)判斷該請求包是否在處理范圍之內(nèi),若是則轉(zhuǎn)到步驟(8),否則直接丟棄該包;
[0032](8)判斷該DHCP請求包的類型,如果是DHCP DISCOVER則轉(zhuǎn)到步驟(9),若是DHCPREQUEST轉(zhuǎn)到步驟(10)執(zhí)行;
[0033](9)根據(jù)DISCOVER包以及線程一中數(shù)據(jù)構(gòu)建DHCP OFFER數(shù)據(jù)包,轉(zhuǎn)到步驟(11)執(zhí)行;
[0034](10)根據(jù)DISCOVER包以及線程一中數(shù)據(jù)構(gòu)建DHCP ACK數(shù)據(jù)包,轉(zhuǎn)到步驟(11)執(zhí)行;
[0035](11)對得到的DHCP應(yīng)答數(shù)據(jù)包進(jìn)行封裝成TCP包,使捕捉到的DHCP應(yīng)答包作為TCP數(shù)據(jù)包的數(shù)據(jù);
[0036](12)發(fā)送已封裝的TCP包到DHCP應(yīng)答發(fā)包器;
[0037](13)判斷是否結(jié)束線程二,若是,則結(jié)束線程二,否則轉(zhuǎn)到步驟(5)繼續(xù)執(zhí)行。
[0038]所述系統(tǒng)管理模塊的功能為IP配置任務(wù)管理,IP配置任務(wù)管理包括新建IP配置任務(wù)、執(zhí)行IP配置任務(wù)、取消IP配置任務(wù)和IP配置任務(wù)查詢;
[0039]新建IP配置任務(wù)是用戶手動新建任務(wù),也可以通過其他系統(tǒng)調(diào)用接口向虛擬機(jī)批量在線IP地址自動設(shè)置系統(tǒng)傳遞IP配置任務(wù);新建IP配置任務(wù)需要指定IP配置規(guī)則,包括MAC地址和IP地址的對應(yīng)關(guān)系等,系統(tǒng)支持通過配置文件的方式自動導(dǎo)入IP配置規(guī)則;
[0040]執(zhí)行IP配置任務(wù)功能完成IP配置任務(wù)的信息入庫,以及向DHCP應(yīng)答包構(gòu)造器的消息傳遞,DHCP應(yīng)答包構(gòu)造器在收到IP配置任務(wù)消息后,讀取數(shù)據(jù)庫,更新本地IP配置規(guī)則集;
[0041]取消IP配置任務(wù)功能用于撤銷IP配置任務(wù),該功能向DHCP應(yīng)答包構(gòu)造器發(fā)生IP配置任務(wù)撤銷的消息,DHCP應(yīng)答包構(gòu)造器在收到IP配置任務(wù)撤銷消息后,從本地IP配置規(guī)則集中刪除撤銷任務(wù)的規(guī)則集;
[0042]IP配置任務(wù)查詢用于IP配置任務(wù)的查詢統(tǒng)計,該功能通過查詢數(shù)據(jù)庫內(nèi)IP配置過程中保存的數(shù)據(jù),完成IP配置任務(wù)狀態(tài)查詢、進(jìn)度查詢以及IP配置過程中產(chǎn)生的數(shù)據(jù)包統(tǒng)計。
[0043]系統(tǒng)管理模塊,提供界面,供管理員完成整個系統(tǒng)的配置管理,當(dāng)有虛擬機(jī)批量IP地址設(shè)置的任務(wù)到達(dá)時,解析任務(wù)描述,并將IP地址設(shè)置規(guī)則及相關(guān)數(shù)據(jù)保存到虛擬機(jī)信息數(shù)據(jù)庫中,然后通知DHCP應(yīng)答構(gòu)造器有新任務(wù)達(dá)到。
[0044]虛擬機(jī)在線批量IP地址自動設(shè)置方法,實(shí)現(xiàn)步驟如下:
[0045](1)當(dāng)有虛擬機(jī)批量IP地址設(shè)置的任務(wù)到達(dá)系統(tǒng)管理模塊時,系統(tǒng)管理模塊解析任務(wù)描述,并將IP地址設(shè)置規(guī)則及相關(guān)數(shù)據(jù)保存到虛擬機(jī)信息數(shù)據(jù)庫中,然后通知DHCP應(yīng)答構(gòu)造器有新任務(wù)達(dá)到;
[0046](2) DCHP應(yīng)答構(gòu)造器讀取虛擬機(jī)信息數(shù)據(jù)庫中的任務(wù)數(shù)據(jù),將MAC地址和IP地址的對應(yīng)關(guān)系以及IP設(shè)置規(guī)則保存到內(nèi)存中;
[0047](3)當(dāng)該批部署的虛擬機(jī)在開機(jī)啟動時,由于虛擬機(jī)網(wǎng)卡獲取IP地址的方式都被設(shè)定成DHCP,因此虛擬機(jī)會發(fā)出DHCP請求包,這些請求包有DHCP請求捕包器捕獲;
[0048](4) DHCP請求捕獲器將捕獲的數(shù)據(jù)包進(jìn)行封裝,發(fā)送到DHCP應(yīng)答構(gòu)造器;
[0049](5)DHCP應(yīng)答構(gòu)造器解析出DHCP請求包,分析該請求源是否在所維護(hù)的IP地址自動設(shè)置列表中,如果是則構(gòu)造DHCP應(yīng)答包,并封裝發(fā)送給DHCP應(yīng)答發(fā)包器,否則直接丟棄該包;同時DHCP應(yīng)答發(fā)包構(gòu)造器在數(shù)據(jù)庫中記錄IP地址分配日志;
[0050](6) DHCP應(yīng)答發(fā)包器接收到DHCP應(yīng)答構(gòu)造器發(fā)來的DHCP應(yīng)答數(shù)據(jù)包,構(gòu)建應(yīng)答網(wǎng)絡(luò)報文,并通過原始套接字發(fā)出;
[0051](7)根據(jù)DHCP協(xié)議,DHCP運(yùn)行分為四個基本過程,分別為請求DHCP發(fā)現(xiàn)、DHCP提供、DHCP請求和DHCP確認(rèn),經(jīng)過兩次捕包和應(yīng)答完成虛擬機(jī)IP地址的自動設(shè)置。
[0052]發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
[0053](1)本發(fā)明能夠在虛擬機(jī)環(huán)境下,在虛擬機(jī)在線狀態(tài),實(shí)現(xiàn)大規(guī)模虛擬機(jī)IP地址的自動化配置。與已公開的方法相比,該方法具有如下優(yōu)點(diǎn):1)該方法不用在虛擬機(jī)本身操作系統(tǒng)中安裝運(yùn)行任何程序,保持了虛擬機(jī)在作為實(shí)驗(yàn)環(huán)境時的真實(shí)性;2)該方法能夠?yàn)樵诰€虛擬機(jī)自動設(shè)置IP地址,解決了通過修改虛擬機(jī)硬盤鏡像文件只能設(shè)置離線虛擬機(jī)的問題;3)該方法更加靈活,既可以通過MAC地址為虛擬機(jī)設(shè)置固定的IP地址,也可以為虛擬機(jī)在一個IP地址段中,自由隨機(jī)分配IP地址。
【專利附圖】
【附圖說明】
[0054]圖1為本發(fā)明虛擬機(jī)在線批量設(shè)置IP地址系統(tǒng)的結(jié)構(gòu)圖;
[0055]圖2為本發(fā)明中DHCP請求捕包器處理流程圖;
[0056]圖3為本發(fā)明中DHCP應(yīng)答發(fā)包器處理流程圖;
[0057]圖4為本發(fā)明中DHCP應(yīng)答包構(gòu)造器流程圖;
[0058]圖5為本發(fā)明中系統(tǒng)管理模塊功能結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0059]如圖1所示,本發(fā)明虛擬機(jī)在線批量設(shè)置IP地址系統(tǒng)包括:DHCP請求捕包器、DHCP應(yīng)答發(fā)包器、DHCP應(yīng)答包構(gòu)造器、虛擬機(jī)信息數(shù)據(jù)庫和系統(tǒng)管理模塊。下面結(jié)合具體的實(shí)例對本發(fā)明進(jìn)行詳細(xì)說明。DHCP (Dynamic Host Configurat1n Protocol,動態(tài)主機(jī)配置協(xié)議)是一個局域網(wǎng)的網(wǎng)絡(luò)協(xié)議,使用UDP協(xié)議工作。
[0060]圖1給出了虛擬機(jī)在線批量設(shè)置IP地址系統(tǒng)的結(jié)構(gòu)圖,其中DHCP請求捕包器和DHCP應(yīng)答發(fā)包器部署于虛擬機(jī)部署服務(wù)器,為每個用于橋接虛擬機(jī)的網(wǎng)橋或主機(jī)網(wǎng)卡部署兩個線程分別用于處理網(wǎng)絡(luò)捕包和網(wǎng)絡(luò)發(fā)包。DHCP應(yīng)答包構(gòu)造器統(tǒng)一處理DCHP分配的請求,只需要部署一份。系統(tǒng)的主要功能是虛擬機(jī)在部署階段IP地址批量自動設(shè)置。
[0061]如圖2所示,DHCP請求捕包器的具體實(shí)施步驟如下:
[0062](l)DHCP請求捕包器在每個用于橋接虛擬機(jī)的網(wǎng)橋或主機(jī)網(wǎng)卡上初始化捕包器,構(gòu)建包過濾規(guī)則,只捕捉DHCP請求包,即DHCP DISCOVER包和DHCP REQUEST包;
[0063](2)啟動捕包器開始捕包;
[0064](3)判斷是否結(jié)束捕包,若是則結(jié)束,否則進(jìn)行捕包得到下一個數(shù)據(jù)包,執(zhí)行(4);
[0065](4)對得到的數(shù)據(jù)包進(jìn)行封裝成TCP包,使捕捉到的DHCP包作為TCP數(shù)據(jù)包的數(shù)據(jù);
[0066](5)發(fā)送已封裝的TCP包到DHCP應(yīng)答構(gòu)建器,轉(zhuǎn)到(3)繼續(xù)執(zhí)行。
[0067]如圖3所示,DHCP應(yīng)答發(fā)包器的具體實(shí)施步驟如下:
[0068](1) DHCP應(yīng)答發(fā)包器從DHCP應(yīng)答包構(gòu)造器接收TCP數(shù)據(jù)包;
[0069](2)解析TCP數(shù)據(jù)包,得到有DHCP應(yīng)答夠構(gòu)造器構(gòu)造的DHCP應(yīng)答包;
[0070](3)對該應(yīng)答包增加UDP包頭;
[0071](4)對該應(yīng)答包增加IP包頭;
[0072](5)對該應(yīng)答包增加以太網(wǎng)包頭;
[0073](6)通過原始套接字發(fā)送數(shù)據(jù)包;
[0074](7)判斷是否結(jié)束DHCP應(yīng)答發(fā)包器,若是則結(jié)束發(fā)包器,否則轉(zhuǎn)到⑴繼續(xù)執(zhí)行。
[0075]如圖4所示,DHCP應(yīng)答包構(gòu)造器的具體實(shí)施步驟如下:
[0076](l)DHCP應(yīng)答包構(gòu)造器在運(yùn)行之初創(chuàng)建兩個線程,線程一和線程二分別從⑵和
(5)開始執(zhí)行;
[0077](2)監(jiān)聽系統(tǒng)管理模塊發(fā)來的IP地址設(shè)置任務(wù)消息;
[0078](3)使當(dāng)有IP地址設(shè)置任務(wù)到達(dá)時,DHCP應(yīng)答包構(gòu)造器查詢數(shù)據(jù)庫,讀取IP地址設(shè)置規(guī)則,主要包括MAC地址和IP地址的對應(yīng)關(guān)系、此次IP地址設(shè)置任務(wù)包含的MAC地址和IP地址范圍等;
[0079](4)判斷是否結(jié)束此線程,若是,則結(jié)束此線程,否則轉(zhuǎn)到(2)繼續(xù)執(zhí)行;
[0080](5) DHCP應(yīng)答包構(gòu)造器從DHCP請求捕包器接收TCP數(shù)據(jù)包;
[0081 ] (6)解析TCP數(shù)據(jù)包,得到有DHCP請求捕包捕獲的DHCP請求包;
[0082](7)根據(jù)線程一的數(shù)據(jù)判斷該請求包是否在處理范圍之內(nèi),若是則轉(zhuǎn)到(8),否則直接丟棄該包;
[0083](8)判斷該DHCP請求包的類型,如果是DHCP DISCOVER則轉(zhuǎn)到(9),若是DHCPREQUEST轉(zhuǎn)到(10)執(zhí)行;
[0084](9)根據(jù)DISCOVER包以及線程一中數(shù)據(jù)構(gòu)建DHCP OFFER數(shù)據(jù)包,轉(zhuǎn)到(11)執(zhí)行;
[0085](10)根據(jù)DISCOVER包以及線程一中數(shù)據(jù)構(gòu)建DHCP ACK數(shù)據(jù)包,轉(zhuǎn)到(11)執(zhí)行;
[0086](11)對得到的DHCP應(yīng)答數(shù)據(jù)包進(jìn)行封裝成TCP包,使捕捉到的DHCP應(yīng)答包作為TCP數(shù)據(jù)包的數(shù)據(jù);
[0087](12)發(fā)送已封裝的TCP包到DHCP應(yīng)答發(fā)包器;
[0088](13)判斷是否結(jié)束此線程,若是,則結(jié)束此線程,否則轉(zhuǎn)到(5)繼續(xù)執(zhí)行;
[0089]如圖5所示,系統(tǒng)管理模塊的主要功能為IP配置任務(wù)管理。IP配置任務(wù)管理包括新建IP配置任務(wù)、執(zhí)行IP配置任務(wù)、取消IP配置任務(wù)和IP配置任務(wù)查詢。
[0090](1)系統(tǒng)管理模塊的新建IP配置任務(wù)可以是用戶手動新建任務(wù),也可以通過其他系統(tǒng)調(diào)用接口向本系統(tǒng)傳遞IP配置任務(wù)。新建IP配置任務(wù)需要指定IP配置規(guī)則,包括MAC地址和IP地址的對應(yīng)關(guān)系等,系統(tǒng)支持通過配置文件的方式自動導(dǎo)入IP配置規(guī)則。
[0091](2)執(zhí)行IP配置任務(wù)功能完成IP配置任務(wù)的信息入庫,以及向DHCP應(yīng)答包構(gòu)造器的消息傳遞,DHCP應(yīng)答包構(gòu)造器在收到IP配置任務(wù)消息后,讀取數(shù)據(jù)庫,更新本地IP配置規(guī)則集。
[0092](3)取消IP配置任務(wù)功能用于撤銷IP配置任務(wù),該功能向DHCP應(yīng)答包構(gòu)造器發(fā)生IP配置任務(wù)撤銷的消息,DHCP應(yīng)答包構(gòu)造器在收到IP配置任務(wù)撤銷消息后,從本地IP配置規(guī)則集中刪除撤銷任務(wù)的規(guī)則集。
[0093](4) IP配置任務(wù)查詢用于IP配置任務(wù)的查詢統(tǒng)計,該功能通過查詢數(shù)據(jù)庫內(nèi)IP配置過程中保存的數(shù)據(jù),完成IP配置任務(wù)狀態(tài)查詢、進(jìn)度查詢以及IP配置過程中產(chǎn)生的數(shù)據(jù)包統(tǒng)計。
[0094]總之,本發(fā)明能夠靈活為在線虛擬機(jī)自動設(shè)置IP地址,而不用在虛擬機(jī)中安裝任何額外程序,保持了虛擬機(jī)在作為實(shí)驗(yàn)環(huán)境時的真實(shí)性;既可以通過MAC地址為虛擬機(jī)設(shè)置固定的IP地址,也可以為虛擬機(jī)在一個IP地址段中,自由隨機(jī)分配IP地址。
[0095]提供以上實(shí)施例僅僅是為了描述本發(fā)明的目的,而并非要限制本發(fā)明的范圍。本發(fā)明的范圍由所附權(quán)利要求限定。不脫離本發(fā)明的精神和原理而做出的各種等同替換和修改,均應(yīng)涵蓋在本發(fā)明的范圍之內(nèi)。
【權(quán)利要求】
1.一種虛擬機(jī)批量在線IP地址自動設(shè)置系統(tǒng),其特征在于包括:DHCP請求捕包器、DHCP應(yīng)答發(fā)包器、DHCP應(yīng)答包構(gòu)造器、虛擬機(jī)信息數(shù)據(jù)庫和系統(tǒng)管理模塊;其中: 系統(tǒng)管理模塊,提供界面,供管理員完成整個系統(tǒng)的配置管理,當(dāng)有虛擬機(jī)批量IP地址設(shè)置的任務(wù)到達(dá)時,解析任務(wù)描述,并將IP地址設(shè)置規(guī)則及相關(guān)數(shù)據(jù)保存到虛擬機(jī)信息數(shù)據(jù)庫中,然后通知DHCP應(yīng)答構(gòu)造器有新任務(wù)達(dá)到; DHCP請求捕包器,從橋接虛擬機(jī)的網(wǎng)橋或主機(jī)網(wǎng)卡上捕獲虛擬機(jī)所發(fā)出的DHCP請求包,然后將捕獲的數(shù)據(jù)包進(jìn)行封裝成TCP包,使捕捉到的DHCP應(yīng)答包作為TCP數(shù)據(jù)包的數(shù)據(jù)發(fā)送給DHCP應(yīng)答包構(gòu)造器; DHCP應(yīng)答包構(gòu)造器,讀取虛擬機(jī)信息數(shù)據(jù)庫中的任務(wù)數(shù)據(jù),將MAC地址和IP地址的對應(yīng)關(guān)系以及IP設(shè)置規(guī)則保存到內(nèi)存中;對于DHCP請求捕包器發(fā)送過來的數(shù)據(jù)包,進(jìn)行解析,提取必要的信息,構(gòu)建應(yīng)答包,并將應(yīng)答包發(fā)送給DHCP應(yīng)答發(fā)包器;同時DHCP應(yīng)答發(fā)包構(gòu)造器在數(shù)據(jù)庫中記錄IP地址分配日志; DHCP應(yīng)答發(fā)包器,接受有DHCP應(yīng)答包構(gòu)造器發(fā)送的DHCP應(yīng)答包,并以原始套接字的形式從虛擬機(jī)所橋接網(wǎng)橋或主機(jī)網(wǎng)卡發(fā)送出去。
2.根據(jù)權(quán)利要求1所述的虛擬機(jī)批量在線IP地址自動設(shè)置系統(tǒng),其特征在于:所述DHCP請求捕包器的具體實(shí)現(xiàn)如下: (1)在每個用于橋接虛擬機(jī)的網(wǎng)橋或主機(jī)網(wǎng)卡上初始化,構(gòu)建包過濾規(guī)則,只捕捉DHCP 請求包,即 DHCP DISCOVER 包和 DHCP REQUEST 包; (2)啟動開始捕包; (3)判斷是否結(jié)束捕包,若是則結(jié)束,否則進(jìn)行捕包得到下一個數(shù)據(jù)包,執(zhí)行步驟(4); (4)對得到的數(shù)據(jù)包進(jìn)行封裝成TCP包,使捕捉到的DHCP應(yīng)答包作為TCP數(shù)據(jù)包的數(shù)據(jù); (5)發(fā)送已封裝的TCP包到DHCP應(yīng)答構(gòu)建器,轉(zhuǎn)到步驟(3)繼續(xù)執(zhí)行。
3.根據(jù)權(quán)利要求1所述的虛擬機(jī)批量在線IP地址自動設(shè)置系統(tǒng),其特征在于:所述DHCP應(yīng)答發(fā)包器的具體實(shí)現(xiàn)如下: (1)從DHCP應(yīng)答包構(gòu)造器接收TCP數(shù)據(jù)包; (2)解析TCP數(shù)據(jù)包,得到有DHCP應(yīng)答夠構(gòu)造器構(gòu)造的DHCP應(yīng)答包; (3)對該DHCP應(yīng)答包增加UDP包頭; (4)對該DHCP應(yīng)答包增加IP包頭; (5)對該DHCP應(yīng)答包增加以太網(wǎng)包頭; (6)通過原始套接字發(fā)送數(shù)據(jù)包; (7)判斷是否結(jié)束DHCP應(yīng)答發(fā)包器,若是則結(jié)束,否則轉(zhuǎn)到步驟(1)繼續(xù)執(zhí)行。
4.根據(jù)權(quán)利要求1所述的虛擬機(jī)批量在線IP地址自動設(shè)置系統(tǒng),其特征在于:所述DHCP應(yīng)答包構(gòu)造器的具體實(shí)現(xiàn)如下: (1)在運(yùn)行之初創(chuàng)建兩個線程,線程一和線程二分別從步驟(2)和步驟(5)開始執(zhí)行; (2)線程一監(jiān)聽系統(tǒng)管理模塊發(fā)來的IP地址設(shè)置任務(wù)消息; (3)使當(dāng)有IP地址設(shè)置任務(wù)到達(dá)時,查詢虛擬機(jī)信息數(shù)據(jù)庫,讀取IP地址的設(shè)置規(guī)則,包括MAC地址和IP地址的對應(yīng)關(guān)系、此次IP地址設(shè)置任務(wù)包含的MAC地址和IP地址范圍; (4)判斷是否結(jié)束線程一,若是,則結(jié)束線程一,否則轉(zhuǎn)到步驟(2)繼續(xù)執(zhí)行; (5)線程二從DHCP請求捕包器接收TCP數(shù)據(jù)包; (6)解析TCP數(shù)據(jù)包,得到有DHCP請求捕包捕獲的DHCP請求包; (7)根據(jù)線程一從數(shù)據(jù)庫中讀取的MAC地址和IP地址范圍數(shù)據(jù)判斷該請求包是否在處理范圍之內(nèi),若是則轉(zhuǎn)到步驟(8),否則直接丟棄該包; (8)判斷該DHCP請求包的類型,如果是DHCPDISCOVER則轉(zhuǎn)到步驟(9),若是DHCPREQUEST轉(zhuǎn)到步驟(10)執(zhí)行; (9)根據(jù)DISCOVER包以及線程一中數(shù)據(jù)構(gòu)建DHCPOFFER數(shù)據(jù)包,轉(zhuǎn)到步驟(11)執(zhí)行; (10)根據(jù)DISCOVER包以及線程一中數(shù)據(jù)構(gòu)建DHCPACK數(shù)據(jù)包,轉(zhuǎn)到步驟(11)執(zhí)行; (11)對得到的DHCP應(yīng)答數(shù)據(jù)包進(jìn)行封裝成TCP包,使捕捉到的DHCP應(yīng)答包作為TCP數(shù)據(jù)包的數(shù)據(jù); (12)發(fā)送已封裝的TCP包到DHCP應(yīng)答發(fā)包器; (13)判斷是否結(jié)束線程二,若是,則結(jié)束線程二,否則轉(zhuǎn)到步驟(5)繼續(xù)執(zhí)行。
5.根據(jù)權(quán)利要求1所述的虛擬機(jī)批量在線IP地址自動設(shè)置系統(tǒng),其特征在于:所述系統(tǒng)管理模塊的功能為IP配置任務(wù)管理,IP配置任務(wù)管理包括新建IP配置任務(wù)、執(zhí)行IP配置任務(wù)、取消IP配置任務(wù)和IP配置任務(wù)查詢; 新建IP配置任務(wù)是用戶手動新建任務(wù),也可以通過其他系統(tǒng)調(diào)用接口向虛擬機(jī)批量在線IP地址自動設(shè)置系統(tǒng)傳遞IP配置任務(wù);新建IP配置任務(wù)需要指定IP配置規(guī)則,包括MAC地址和IP地址的對應(yīng)關(guān)系等,系統(tǒng)支持通過配置文件的方式自動導(dǎo)入IP配置規(guī)則; 執(zhí)行IP配置任務(wù)功能完成IP配置任務(wù)的信息入庫,以及向DHCP應(yīng)答包構(gòu)造器的消息傳遞,DHCP應(yīng)答包構(gòu)造器在收到IP配置任務(wù)消息后,讀取數(shù)據(jù)庫,更新本地IP配置規(guī)則集; 取消IP配置任務(wù)功能用于撤銷IP配置任務(wù),該功能向DHCP應(yīng)答包構(gòu)造器發(fā)生IP配置任務(wù)撤銷的消息,DHCP應(yīng)答包構(gòu)造器在收到IP配置任務(wù)撤銷消息后,從本地IP配置規(guī)則集中刪除撤銷任務(wù)的規(guī)則集; IP配置任務(wù)查詢用于IP配置任務(wù)的查詢統(tǒng)計,該功能通過查詢數(shù)據(jù)庫內(nèi)IP配置過程中保存的數(shù)據(jù),完成IP配置任務(wù)狀態(tài)查詢、進(jìn)度查詢以及IP配置過程中產(chǎn)生的數(shù)據(jù)包統(tǒng)計; 系統(tǒng)管理模塊,提供界面,供管理員完成整個系統(tǒng)的配置管理,當(dāng)有虛擬機(jī)批量IP地址設(shè)置的任務(wù)到達(dá)時,解析任務(wù)描述,并將IP地址設(shè)置規(guī)則及相關(guān)數(shù)據(jù)保存到虛擬機(jī)信息數(shù)據(jù)庫中,然后通知DHCP應(yīng)答構(gòu)造器有新任務(wù)達(dá)到。
6.虛擬機(jī)在線批量IP地址自動設(shè)置方法,其特征在于實(shí)現(xiàn)步驟如下: (1)當(dāng)有虛擬機(jī)批量IP地址設(shè)置的任務(wù)到達(dá)系統(tǒng)管理模塊時,系統(tǒng)管理模塊解析任務(wù)描述,并將IP地址設(shè)置規(guī)則及相關(guān)數(shù)據(jù)保存到虛擬機(jī)信息數(shù)據(jù)庫中,然后通知DHCP應(yīng)答構(gòu)造器有新任務(wù)達(dá)到; (2)DCHP應(yīng)答構(gòu)造器讀取虛擬機(jī)信息數(shù)據(jù)庫中的任務(wù)數(shù)據(jù),將MAC地址和IP地址的對應(yīng)關(guān)系以及IP設(shè)置規(guī)則保存到內(nèi)存中; (3)當(dāng)該批部署的虛擬機(jī)在開機(jī)啟動時,由于虛擬機(jī)網(wǎng)卡獲取IP地址的方式都被設(shè)定成DHCP,因此虛擬機(jī)會發(fā)出DHCP請求包,這些請求包有DHCP請求捕包器捕獲; (4)DHCP請求捕獲器將捕獲的數(shù)據(jù)包進(jìn)行封裝,發(fā)送到DHCP應(yīng)答構(gòu)造器; (5)DHCP應(yīng)答構(gòu)造器解析出DHCP請求包,分析該請求源是否在所維護(hù)的IP地址自動設(shè)置列表中,如果是則構(gòu)造DHCP應(yīng)答包,并封裝發(fā)送給DHCP應(yīng)答發(fā)包器,否則直接丟棄該包;同時DHCP應(yīng)答發(fā)包構(gòu)造器在數(shù)據(jù)庫中記錄IP地址分配日志; (6)DHCP應(yīng)答發(fā)包器接收到DHCP應(yīng)答構(gòu)造器發(fā)來的DHCP應(yīng)答數(shù)據(jù)包,構(gòu)建應(yīng)答網(wǎng)絡(luò)報文,并通過原始套接字發(fā)出; (7)根據(jù)DHCP協(xié)議,DHCP運(yùn)行分為四個基本過程,分別為請求DHCP發(fā)現(xiàn)、DHCP提供、DHCP請求和DHCP確認(rèn),經(jīng)過兩次捕包和應(yīng)答完成虛擬機(jī)IP地址的自動設(shè)置。
【文檔編號】H04L29/12GK104461697SQ201410827790
【公開日】2015年3月25日 申請日期:2014年12月25日 優(yōu)先權(quán)日:2014年12月25日
【發(fā)明者】云曉春, 郝志宇, 費(fèi)海強(qiáng), 張永錚, 李倫, 丁振全 申請人:中國科學(xué)院信息工程研究所