linux kvm dhcp配置,《转》QEMU-KVM创建虚拟机自动指定IP的配置
在使用qemu創建虛擬機的過程中是無法指定IP地址的,可是在實際應用中,我們是需要虛擬機擁有IP地址的,并且不是人為去虛擬機操作系統上配置。在qemu虛擬機技術文檔(http://qemu.weilnetz.de/qemu-doc.html#pcsys_005fmonitor)里搗鼓了好久,發現在給虛擬機創建虛擬網卡時可以指定MAC地址,頓時眼前大亮:如果可以給一個虛擬機網卡唯一指定一個MAC地址,那么我就可以通過配置DHCP來實現MAC地址與IP地址之間的唯一映射,這樣指定MAC地址,也就相當于指定了IP地址?,F在的問題就是如何配置DHCP服務器的問題了。
DHCP的配置
本人所使用的服務器是Red Hat Enterprise?Linux?6.2,DHCP的安裝這里就不介紹了,網上大把大把的,這里只說明下檢測服務器上是否安裝了DHCP的命令:
rpm -qa | grep dhcp
上述命令如果有輸出,就說明服務器上已經安裝了DHCP。
DHCP服務的配置文件默認為:在/etc/dhcp/dhcpd.conf(好像linux早期的版本DHCP配置文件是在/etc/dhcpd.conf,所以這里要注意)。DHCP是通過其配置文件啟動的,如果配置文件中的所有配置正確,就能正常啟動DHCP服務。如果是新手,建議直接使用DHCP安裝文件里包含的配置文件,并在其基礎上進行修改,這樣可以避免很多不必要的錯誤,我當時就是自己按照網上的一些例子來寫配置文件,結果讓我吃了不少苦頭。使用如下命令拷貝配置文件的模版:
cd /etc/dhcp/
cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample dhcpd.conf //復制配置文件模板
vim /etc/dhcp/dhcpd.conf //使用vi修改/etc/dhcpd.conf
配置的目的就是要將MAC地址與某些特定的IP綁定起來,為了更加理解DHCP,如下列出了DHCP的工作原理:
假設多部計算機在同一個網域當中,也就是說,DHCP Server與它的Clients都在同一個網段之內,可以透過軟件廣播的方式來達到相互溝通的狀態。那么Client藉由DHCP Server得到的IP的程序為:
1、若Client端計算機設定使用DHCP協議以取得網絡參數時,則Client端計算機在開機的時候,或者是重新啟動網卡的時候,會自動地發出DHCP Client的需求給網域中的每部計算機;這個時候,由于發出的訊息希望每部計算機都可以接受,所以該訊息除了網卡的硬件地址(MAC)無法改變外,需要將該訊息的來源軟件設定為0.0.0.0,而目的地址則為255.255.255.255(linux會自動設置)。網域中的其它沒有提供DHCP服務的計算機,收到這個封包之后會自動地將該封包丟棄而不回應。
2、DHCP主機響應訊息:如果是DHCP主機收到這個Client的DHCP需求時,那么DHCP主機首先會針對該次需求的訊息所攜帶的MAC和DHCP主機本身的設定值去比對,如果DHCP主機的設定有針對該MAC做靜態IP(每次都給予一個固定的IP)的提供時,則提供Client端相關的固定IP于相關的網絡參數;而如果該訊息的MAC并不在DHCP主機的設定之內時,則DHCP主機會選取目前網域內沒有使用的IP(這個IP與設定值有關)來發放給client端使用。
3、Client端接受來自DHCP主機的網絡參數,并設定Client自己的網絡環境:當Client端接受響應的訊息之后,首先會以ARP封包在網域內發出訊息,以確定來自DHCP主機發放的IP并沒有被占用。如果該IP已經被占用了,那么Client對于這次的DHCP信息將不接受,而將再次向網域內發出DHCP的需求廣播封包;若該IP沒有被占用,則client可以接受DHCP主機所給的網絡的參數,那么這些參數將會被使用于client端的網絡設定當中,同時,Client端也會對DHCP主機發出確認封包,告訴server這次的需求已經被確認,而server也會將該信息記錄下來。
4、Client端結束該IP的使用權:當Client開始使用這個DHCP發放的IP之后,有幾個情況可能會失去這個IP的使用權:Client端離線(不論是關閉網絡接口、重新開機、關機等行為,皆算是離線狀態,這個時候server端就會將該IP回收,并放到server自己的備用區中,等待未來使用);Client端租約到期(DHCP server端發放的IP有其使用的期限,Client使用這個IP到達期限規定的期限,Client使用這個IP到達期限規定的時間,就需要將IP還回去,這個時候就會造成斷線,而client也可以再向DHCP主機要求再次分配IP地址)。
如下是我根據DHCP的配置文件模版寫的一個配置文件,其中實現了將MAC地址:66:66:66:66:66:0b與IP地址:192.168.0.88之間的綁定。可根據自己的需要實現更多MAC地址與IP之間的綁定。
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# Use this to enble / disable dynamic dns updates globally.
ddns-update-style none;
ignore client-updates;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
#log-facility local7;
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
# This is a very basic subnet declaration.
# A slightly different configuration for an internal subnet.
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.30 192.168.0.39;
option domain-name-servers 192.168.0.31;
option domain-name "wan.hust.china";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 21600;
max-lease-time 43200;
host pc001 {
hardware ethernet 66:66:66:66:66:0b;
fixed-address 192.168.0.88;
}
}
啟動DHCP服務的命令如下所示:
service dhcpd start #啟動DHCP服務
service dhcpd status #查看DHCP狀態
如果想要開始自啟動DHCP服務,可以使用如下命令:
chkconfig --level 345 dhcpd on
至此DHCP配置完成。
QEMU-KVM虛擬機創建設置
現在就可以通過在創建虛擬機時指定MAC地址來間接指定IP地址了:
/usr/local/qemu-kemari-v0.2.14/bin/qemu-system-x86_64 -m 1024 /images/test2.img -net nic,mac=66:66:66:66:66:0b -net tap,ifname=tap1,script=/etc/qemu-ifup,downscript=no -vnc :6 -enable-kvm
打開虛擬機查看虛擬機的網卡信息,就可以看到虛擬機的IP地址已配置好了。
總結
以上是生活随笔為你收集整理的linux kvm dhcp配置,《转》QEMU-KVM创建虚拟机自动指定IP的配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java开发文档怎么写_程序员该不该写技
- 下一篇: vue横向树结构_vue树形结构的实现