本發(fā)明涉及云計(jì)算技術(shù)領(lǐng)域,特別是一種利用串口和DHCP協(xié)議通信的虛擬機(jī)靜態(tài)網(wǎng)絡(luò)設(shè)置方法。
背景技術(shù):
在云計(jì)算領(lǐng)域虛擬機(jī)的靜態(tài)網(wǎng)絡(luò)設(shè)置,目前大部分是利用虛擬機(jī)串口通信的技術(shù),將虛擬機(jī)的網(wǎng)絡(luò)信息傳入到虛擬機(jī)內(nèi)部,虛擬機(jī)內(nèi)部收到網(wǎng)絡(luò)信息再靜態(tài)設(shè)置網(wǎng)絡(luò)。這種方法需要傳入較多的網(wǎng)絡(luò)數(shù)據(jù)包到虛擬機(jī)內(nèi)部,虛擬機(jī)內(nèi)部不斷讀取其網(wǎng)絡(luò)數(shù)據(jù)包,信息量大和通信比較頻繁的情況下,會(huì)出現(xiàn)消息堵塞和消息傳送失敗的情況,從而影響虛擬機(jī)網(wǎng)絡(luò)的靜態(tài)網(wǎng)絡(luò)設(shè)置。而DHCP協(xié)議獲取動(dòng)態(tài)網(wǎng)絡(luò)信息已經(jīng)作為成熟的技術(shù),其協(xié)議通信的穩(wěn)定性比較可靠,但是如果虛擬機(jī)完全采用DHCP的方式動(dòng)態(tài)獲取,需要一定周期進(jìn)行續(xù)期操作,才能保證網(wǎng)絡(luò)的正常;如果續(xù)期失敗,則會(huì)影響網(wǎng)絡(luò)的信息丟失,導(dǎo)致網(wǎng)絡(luò)的中斷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明解決的技術(shù)問(wèn)題在于一種利用串口和DHCP協(xié)議通信的虛擬機(jī)靜態(tài)網(wǎng)絡(luò)設(shè)置方法,解決傳統(tǒng)利用串口傳遞網(wǎng)絡(luò)信息進(jìn)行靜態(tài)IP設(shè)置的不穩(wěn)定問(wèn)題。
本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案是,
所述的方法包括如下步驟:
步驟1:在DHCP服務(wù)器上設(shè)置虛擬機(jī)的網(wǎng)絡(luò)配置信息;
步驟2:在虛擬機(jī)宿主機(jī)上給虛擬機(jī)掛載網(wǎng)卡;
步驟3:宿主機(jī)通過(guò)串口通信向虛擬機(jī)發(fā)送網(wǎng)絡(luò)配置事件;
步驟4:虛擬機(jī)內(nèi)部網(wǎng)絡(luò)配置代理獲取網(wǎng)絡(luò)配置事件;
步驟5:網(wǎng)絡(luò)配置代理調(diào)整網(wǎng)絡(luò)配置為DHCP自動(dòng)獲取方式,利用DHCP協(xié)議獲取DHCP服務(wù)器上的網(wǎng)絡(luò)配置信息;
步驟6:將網(wǎng)絡(luò)配置信息持久化到網(wǎng)絡(luò)配置文件中,最終將虛擬機(jī)的網(wǎng)絡(luò)從DHCP自動(dòng)獲取方式變成靜態(tài)網(wǎng)絡(luò)配置。
DHCP服務(wù)器網(wǎng)絡(luò)配置信息包括MAC地址、IP地址、網(wǎng)關(guān)地址、網(wǎng)段、域名解析服務(wù)器。
所述的掛載的虛擬機(jī)網(wǎng)卡與MAC一致;所述的虛擬機(jī)支持網(wǎng)卡熱插拔機(jī)制。
DHCP客戶端利用DHCP協(xié)議廣播到DHCP服務(wù)器上,獲取DHCP服務(wù)器上網(wǎng)絡(luò)配置信息。
虛擬機(jī)內(nèi)部網(wǎng)絡(luò)配置代理具體步驟為:
(1)穩(wěn)定可靠的獲取網(wǎng)絡(luò)配置事件;
(2)網(wǎng)絡(luò)配置代理運(yùn)行環(huán)境支持跨平臺(tái),包括Windows、Linux系統(tǒng)運(yùn)行;
(3)利用DHCP協(xié)議設(shè)置靜態(tài)網(wǎng)絡(luò)設(shè)置。
靜態(tài)網(wǎng)絡(luò)設(shè)置具體步驟為:
(1)利用DHCP客戶端,向DHCP服務(wù)器發(fā)送DHCP請(qǐng)求,獲取對(duì)應(yīng)的網(wǎng)絡(luò)配置信息;
(2)獲取網(wǎng)絡(luò)配置信息后,通過(guò)網(wǎng)絡(luò)配置程序?qū)⒕W(wǎng)絡(luò)配置信息持久化到網(wǎng)絡(luò)配置文件中;
(3)重新加載網(wǎng)卡,將靜態(tài)配置生效。
所述的網(wǎng)絡(luò)配置事件其特征在于發(fā)送的數(shù)據(jù)包盡量短小,提高串口通信的數(shù)據(jù)包的可靠性,例如發(fā)送消息數(shù)據(jù)“1”到虛擬機(jī)內(nèi)部。
本發(fā)明的方法利用串口通信的控制能力和DHCP協(xié)議通信的穩(wěn)定性,有效解決完全利用串口通信設(shè)置虛擬機(jī)網(wǎng)絡(luò)的不穩(wěn)定性問(wèn)題,實(shí)現(xiàn)原理簡(jiǎn)單、可靠,很方便集成到云計(jì)算平臺(tái)中。
附圖說(shuō)明
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說(shuō)明:
圖1為本發(fā)明的流程圖。
具體實(shí)施方式
如圖1所示,本發(fā)明實(shí)施步驟如下:
(1)給DHCP Server設(shè)置虛擬機(jī)的網(wǎng)絡(luò)配置信息,以dnsmasq服務(wù)器為例,其中DHCP Server的配置文件如下所示:
虛擬機(jī)網(wǎng)卡相關(guān)配置:含有MAC地址,主機(jī)名稱,ip地址
fa:16:3e:b0:ff:0c,host-101-101-101-4.gcloudlocal,101.101.101.5
其他參數(shù)配置:路由、域名服務(wù)等
tag:tag0,option:router,101.101.101.1
tag:tag0,option:dns-server,101.101.101.4,101.101.101.3
(2)在虛擬機(jī)宿主機(jī)上給虛擬機(jī)掛載網(wǎng)卡。
具體實(shí)現(xiàn)采用virsh命令掛載,其中l(wèi)ibvirt網(wǎng)絡(luò)配置文件,如下所示:
其中mac address要與DHCP Server中虛擬機(jī)網(wǎng)卡配置中mac address一致,保證后面虛擬機(jī)內(nèi)部利用DHCP協(xié)議獲取虛擬機(jī)網(wǎng)絡(luò)配置的正確性。
(3)宿主機(jī)通過(guò)串口通信向虛擬機(jī)發(fā)送網(wǎng)絡(luò)配置事件
目前實(shí)現(xiàn)虛擬機(jī)一張網(wǎng)卡的網(wǎng)絡(luò)控制,其發(fā)送給虛擬機(jī)的串口數(shù)據(jù)包,以“1”數(shù)據(jù)包控制,“1”代表利用DHCP協(xié)議獲取虛擬機(jī)網(wǎng)絡(luò)配置。如果需要控制多張?zhí)摂M機(jī)網(wǎng)卡的配置,則采用網(wǎng)卡Mac地址標(biāo)識(shí)。
(4)虛擬機(jī)內(nèi)部網(wǎng)絡(luò)配置Agent獲取網(wǎng)絡(luò)配置事件,具體實(shí)現(xiàn)監(jiān)控虛擬機(jī)的串口通信數(shù)據(jù),獲取到“1”數(shù)據(jù)包,則表示要進(jìn)行網(wǎng)絡(luò)配置。
(5)以Centos系統(tǒng)為例,調(diào)整虛擬機(jī)的網(wǎng)卡為DHCP方式,
網(wǎng)卡配置文件ifcfg-eth0,如下所示:
BOOTPROTO=dhcp
DEVICE=eth0
ONBOOT=y(tǒng)es
然后執(zhí)行dhcp client程序從dhcp server獲取網(wǎng)絡(luò)配置,如下命令:
dhcpclient eth0獲取虛擬機(jī)的該網(wǎng)卡的網(wǎng)絡(luò)配置信息,如下所示:
interface“eth0”
fixed-address 101.101.101.5
routers 101.101.101.1
..............
(6)將以上的網(wǎng)絡(luò)配置信息,寫入到網(wǎng)卡配置文件ifcfg-eth0中,如下所示:TYPE=Ethernet
BOOTPROTO=static
DEVICE=eth0
ONBOOT=y(tǒng)es
IPADDR=101.101.101.5
GATEWAY=101.101.101.1
NETMASK=255.255.255.0
DNS1=101.101.101.4
DNS2=101.101.101.3。