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