本發(fā)明涉及虛擬網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種虛擬DHCP的實現(xiàn)方法。
背景技術(shù):虛擬網(wǎng)絡(luò)是一種包含至少部分是虛擬網(wǎng)絡(luò)鏈接的計算機網(wǎng)絡(luò)。虛擬網(wǎng)絡(luò)鏈接是在兩個計算設(shè)備間不包含物理連接,而是通過網(wǎng)絡(luò)虛擬化來實現(xiàn),即兩個結(jié)點之間的連接并不需要傳統(tǒng)網(wǎng)絡(luò)建設(shè)所需的點到點的物理鏈路,而是架構(gòu)在網(wǎng)絡(luò)平臺之上的邏輯鏈路?;谔摂M設(shè)備的虛擬網(wǎng)絡(luò)通常含有數(shù)量眾多的虛擬機。虛擬機(VirtualMachine,VM)指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運行在一個完全隔離環(huán)境中的完整計算機系統(tǒng)。通過虛擬機軟件,便可以在一臺物理主機上模擬出一臺或多臺虛擬的計算機,這些虛擬機完全就像真正的計算機那樣進行工作,例如可以安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問網(wǎng)絡(luò)資源等等。同物理主機一樣,虛擬機在虛擬網(wǎng)絡(luò)中進行通信同樣需要一個唯一的IP地址。虛擬機的IP地址可以由用戶自己定義,也可以通過DHCP來給虛擬機分配。對于一個多個節(jié)點動態(tài)接入的網(wǎng)絡(luò)來說,通常采取使用DHCP進行IP地址分配的方式。DHCP(DynamicHostConfigurationProtocol,動態(tài)主機設(shè)置協(xié)議)是一種使網(wǎng)絡(luò)管理員能夠集中管理和自動分配IP地址的通信協(xié)議。在IP網(wǎng)絡(luò)中,每個連接Internet的設(shè)備都需要分配唯一的IP地址。DHCP使網(wǎng)絡(luò)管理員能夠從中心結(jié)點監(jiān)控和分配IP地址。當某臺計算機移到網(wǎng)絡(luò)中的其它位置時,能自動收到新的IP地址。隨著云計算技術(shù)的飛速發(fā)展,虛擬網(wǎng)絡(luò)技術(shù)也在迅速發(fā)展并日益成熟。針對虛擬網(wǎng)絡(luò)中虛擬機數(shù)量眾多、節(jié)點動態(tài)接入、網(wǎng)絡(luò)虛擬化的特點,傳統(tǒng)的DHCP分配IP地址的方式已無法適應(yīng)虛擬網(wǎng)絡(luò)的需求,因此,有必要針對虛擬網(wǎng)絡(luò)研究出更加適合的IP地址分配方式。
技術(shù)實現(xiàn)要素:(一)所要解決的技術(shù)問題本發(fā)明的目的在于提供一種虛擬DHCP的實現(xiàn)方法,從而能夠在虛擬網(wǎng)絡(luò)中利用DHCP服務(wù)為虛擬機分配IP地址。(二)技術(shù)方案為了解決上述技術(shù)問題,本發(fā)明提出了一種虛擬DHCP的實現(xiàn)方法,所述方法包括:S1、虛擬網(wǎng)絡(luò)中的控制節(jié)點接收到虛擬DHCP建立請求消息后,建立虛擬DHCP配置信息,并建立MAC地址與IP地址的二元組列表,所述二元組列表用于保存可用MAC地址與可用IP地址的一一對應(yīng)關(guān)系;S2、所述控制節(jié)點將所述二元組列表以及所述虛擬DHCP配置信息發(fā)送給所述虛擬網(wǎng)絡(luò)中的至少一個代理節(jié)點,所述代理節(jié)點根據(jù)所述虛擬DHCP配置信息建立DHCP服務(wù);S3、當某一虛擬機加入所述虛擬網(wǎng)絡(luò)時,所述虛擬機向所述控制節(jié)點發(fā)送MAC地址分配請求消息,所述控制節(jié)點從所述二元組列表中選擇一個未使用的二元組,并將其中的MAC地址分配給所述虛擬機;S4、所述虛擬機通過廣播發(fā)送IP地址分配請求消息,所述代理節(jié)點接收到所述IP地址分配請求消息后,從所述二元組列表中查找出與所述虛擬機的MAC地址相對應(yīng)的IP地址并將其分配給所述虛擬機??蛇x的,所述虛擬DHCP建立請求消息包括可用IP地址??蛇x的,步驟S1具體包括:所述控制節(jié)點根據(jù)所述虛擬DHCP建立請求消息中的可用IP地址,為每一個可用IP地址創(chuàng)建一個對應(yīng)的可用MAC地址,并保存到所述二元組列表??蛇x的,所述虛擬DHCP建立請求消息包括網(wǎng)關(guān)IP地址和DNS地址??蛇x的,步驟S1具體包括:所述控制節(jié)點根據(jù)所述虛擬DHCP建立請求消息中的網(wǎng)關(guān)IP地址和DNS地址,建立所述虛擬DHCP配置信息??蛇x的,步驟S4中,所述虛擬機通過廣播發(fā)送IP地址分配請求消息具體包括:所述虛擬機通過發(fā)送DHCPDISCOVER廣播包的方式發(fā)送所述IP地址分配請求消息??蛇x的,步驟S4之后進一步包括:S5、當所述控制節(jié)點檢測到所述代理節(jié)點通訊中斷時,將所述二元組列表以及所述虛擬DHCP配置信息發(fā)送給所述虛擬網(wǎng)絡(luò)中的其他代理節(jié)點,其他代理節(jié)點根據(jù)所述虛擬DHCP配置信息建立DHCP服務(wù)。可選的,步驟S5進一步包括:所述控制節(jié)點與所述代理節(jié)點每隔固定時間間隔進行一次心跳測試,若所述控制節(jié)點在超過預(yù)設(shè)時間間隔后未收到所述代理節(jié)點發(fā)送的心跳包,則判定為所述代理節(jié)點通訊中斷??蛇x的,所述固定時間間隔為15秒。可選的,步驟S1進一步包括:所述控制節(jié)點建立數(shù)據(jù)庫,并將所述二元組列表以及所述虛擬DHCP配置信息保存到所述數(shù)據(jù)庫。(三)有益效果本發(fā)明提出的技術(shù)方案能夠在虛擬網(wǎng)絡(luò)中基于控制節(jié)點和代理節(jié)點的協(xié)同工作實現(xiàn)虛擬DHCP,并通過DHCP服務(wù)為每一個虛擬機分配唯一的MAC地址及IP地址。采用虛擬DHCP來分配IP地址會大大提高工作效率,節(jié)省管理維護的成本。附圖說明圖1是本發(fā)明一個實施例的實現(xiàn)流程圖。圖2是本發(fā)明實施例1中建立DHCP服務(wù)A的示意圖。圖3是本發(fā)明實施例1中新建代理節(jié)點的示意圖。圖4是本發(fā)明一個實施例中建立多個虛擬DHCP的示意圖。具體實施方式下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述。本發(fā)明提出了一種虛擬DHCP的實現(xiàn)方法,如圖1所示,所述方法包括:S1、虛擬網(wǎng)絡(luò)中的控制節(jié)點接收到虛擬DHCP建立請求消息后,建立虛擬DHCP配置信息,并建立MAC地址與IP地址的二元組列表,所述二元組列表用于保存可用MAC地址與可用IP地址的一一對應(yīng)關(guān)系;S2、所述控制節(jié)點將所述二元組列表以及所述虛擬DHCP配置信息發(fā)送給所述虛擬網(wǎng)絡(luò)中的至少一個代理節(jié)點,所述代理節(jié)點根據(jù)所述虛擬DHCP配置信息建立DHCP服務(wù);S3、當某一虛擬機加入所述虛擬網(wǎng)絡(luò)時,所述虛擬機向所述控制節(jié)點發(fā)送MAC地址分配請求消息,所述控制節(jié)點從所述二元組列表中選擇一個未使用的二元組,并將其中的MAC地址分配給所述虛擬機;S4、所述虛擬機通過廣播發(fā)送IP地址分配請求消息,所述代理節(jié)點接收到所述IP地址分配請求消息后,從所述二元組列表中查找出與所述虛擬機的MAC地址相對應(yīng)的IP地址并將其分配給所述虛擬機。本發(fā)明提出的技術(shù)方案能夠在虛擬網(wǎng)絡(luò)中基于控制節(jié)點和代理節(jié)點的協(xié)同工作實現(xiàn)虛擬DHCP,并通過DHCP服務(wù)為每一個虛擬機分配唯一的MAC地址及IP地址。采用虛擬DHCP來分配IP地址會大大提高工作效率,節(jié)省管理維護的成本。下面通過一個具體的實施例,對所述方法的優(yōu)選實施方式進行舉例說明。實施例1:首先用戶需要在系統(tǒng)中建立一個虛擬網(wǎng)絡(luò),然后給這個虛擬網(wǎng)絡(luò)建立一個虛擬DHCP。如圖2所示,本實施例中的虛擬網(wǎng)絡(luò)包括主機A、主機B和主機C,其中,主機A為該虛擬網(wǎng)絡(luò)的控制節(jié)點,主機B和主機C為代理節(jié)點。用戶在建立虛擬DHCP時,首先需要向控制節(jié)點發(fā)送虛擬DHCP建立請求消息,在該請求消息中,用戶可以給出虛擬DHCP的名稱、可用IP地址的范圍、網(wǎng)關(guān)IP地址以及DNS的IP地址等信息。然后這個請求會發(fā)送給控制節(jié)點。在本實施例中,用戶請求建立的虛擬DHCP的名稱記為A??刂乒?jié)點在收到虛擬DHCP建立請求消息后,會根據(jù)該虛擬DHCP建立請求消息中的可用IP地址,為每一個可用IP地址創(chuàng)建一個對應(yīng)的可用MAC地址,并保存到二元組列表(MAC,IP)中,這里的(MAC,IP)是一個二元組結(jié)果集,用于保存可用MAC地址與可用IP地址的一一對應(yīng)關(guān)系;同時,控制節(jié)點根據(jù)該虛擬DHCP建立請求消息中的虛擬DHCP的名稱、網(wǎng)關(guān)IP地址和DNS地址,建立虛擬DHCP配置信息。另外,如圖2所示,控制節(jié)點還可以建立數(shù)據(jù)庫,并將所述二元組列表(MAC,IP)以及所述虛擬DHCP配置信息保存到所述數(shù)據(jù)庫中,以方便后續(xù)查找。當控制節(jié)點發(fā)送建立虛擬DHCP的命令給代理節(jié)點時,所述二元組列表(MAC,IP)以及所述虛擬DHCP配置信息會一起傳送過去。如圖2所示,主機B和主機C上的代理節(jié)點在接收到控制節(jié)點的命令后,會建立響應(yīng)的DHCP服務(wù)進程,即,主機B和主機C上的代理節(jié)點均會創(chuàng)建DHCP服務(wù)A,并共同為該虛擬網(wǎng)絡(luò)中的虛擬機分配IP地址。當某一新建的虛擬機需要加入該虛擬網(wǎng)絡(luò)時,這個新建的虛擬機首先會向控制節(jié)點發(fā)送MAC地址分配請求消息;控制節(jié)點接收到請求后,從(MAC,IP)中選擇一個未使用的二元組,并將其中的MAC地址分配給這個新建的虛擬機;然后這個新建的虛擬機用這個MAC地址來建立自己的虛擬網(wǎng)卡。當這個新建的虛擬機啟動后,會發(fā)送DHCP廣播來請求IP地址;這時之前建立好的DHCP服務(wù)A會收到這個請求包,由于之前DHCP服務(wù)A的配置文件中已經(jīng)包括了這個MAC的對應(yīng)IP,所以這個已經(jīng)指定好的IP就會分配給新建的虛擬機。這里虛擬機獲取IP地址的過程與傳統(tǒng)的DHCP服務(wù)相同,即:虛擬機通過發(fā)送DHCPDISCOVER廣播包的方式發(fā)送IP地址分配請求消息;主機B或主機C上的代理節(jié)點在接收到該IP地址分配請求消息后,從二元組列表(MAC,IP)中查找出與該虛擬機的MAC地址相對應(yīng)的IP地址,并將其發(fā)送給虛擬機,即,向虛擬機回復(fù)一個DHCPOFFER消息;虛擬機接受了IP地址后,向網(wǎng)絡(luò)發(fā)送一個DHCPREQUEST廣播包;最后代理節(jié)點向虛擬機回復(fù)一個DHCPACK消息,至此,虛擬機的IP地址分配完成。為了保證網(wǎng)絡(luò)可靠運行,控制節(jié)點需要確認各個提供DHCP服務(wù)的代理節(jié)點能夠一直保持正常通訊。因此,控制節(jié)點和代理節(jié)點之間每隔固定時間間隔(比如15秒)會進行一次心跳測試;當一臺主機被關(guān)閉或者網(wǎng)線被拔除等情況下,控制節(jié)點就會發(fā)現(xiàn)無法與其上的代理節(jié)點進行通訊,這時控制節(jié)點會選擇該虛擬網(wǎng)絡(luò)中的另一臺主機,并從數(shù)據(jù)庫中取出所述二元組列表以及所述虛擬DHCP配置信息,然后發(fā)送虛擬DHCP建立命令給另一臺主機上的代理節(jié)點,在另一臺主機上重新建立DHCP服務(wù),以保證DHCP服務(wù)的高可用性。如圖3所示,原本由主機B上的代理節(jié)點建立并提供DHCP服務(wù)A??刂乒?jié)點與主機B上的代理節(jié)點每隔固定時間間隔進行一次心跳測試。在某一時刻,控制節(jié)點在超過預(yù)設(shè)時間間隔后未收到主機B上的代理節(jié)點發(fā)送的心跳包,于是判定主機B上的代理節(jié)點通訊中斷。因此,控制節(jié)點從該虛擬網(wǎng)絡(luò)中選擇了主機D,從數(shù)據(jù)庫中取出(MAC,IP)以及DHCP服務(wù)A的配置信息,并發(fā)送給主機D上的代理節(jié)點;然后主機D上的代理節(jié)點建立DHCP服務(wù)A,并為該虛擬網(wǎng)絡(luò)中的虛擬機分配IP地址。上述機制能夠保證虛擬網(wǎng)絡(luò)中總是有特定數(shù)量的代理節(jié)點提供IP地址分配服務(wù),從而保證網(wǎng)絡(luò)的高可靠性。需要說明的是,在系統(tǒng)中存在多個虛擬網(wǎng)絡(luò)的情況下,某一主機上的代理節(jié)點既可以建立虛擬網(wǎng)絡(luò)A的虛擬DHCP,同時也可以建立虛擬網(wǎng)絡(luò)B的虛擬DHCP。如圖4所示,系統(tǒng)中存在兩個虛擬網(wǎng)絡(luò);其中一個虛擬網(wǎng)絡(luò)需要建立DHCP服務(wù)A,另一個虛擬網(wǎng)絡(luò)需要建立DHCP服務(wù)B;于是,主機B和主機C上均同時建立有DHCP服務(wù)A和DHCP服務(wù)B。由于虛擬網(wǎng)絡(luò)之間是互相隔離的,因此,對其中一個虛擬網(wǎng)絡(luò)中的新建虛擬機來說,它的IP地址分配請求只會被對應(yīng)于該虛擬網(wǎng)絡(luò)的DHCP服務(wù)接收到。綜上,本發(fā)明提出的技術(shù)方案能夠在虛擬網(wǎng)絡(luò)中基于控制節(jié)點和代理節(jié)點的協(xié)同工作實現(xiàn)虛擬DHCP,并通過DHCP服務(wù)為每一個虛擬機分配唯一的MAC地址及IP地址。采用虛擬DHCP來分配IP地址會大大提高工作效率,節(jié)省管理維護的成本。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進和替換,這些改進和替換也應(yīng)視為本發(fā)明的保護范圍。