《轉》QEMU-KVM建立虛擬機器自動指定IP的配置
在使用qemu建立虛擬機器的過程中是無法指定IP地址的,可是在實際應用中,我們是需要虛擬機器擁有IP地址的,並且不是人為去虛擬機器作業系統上配置。在qemu虛擬機器技術文件(http://qemu.weilnetz.de/qemu-doc.html#pcsys_005fmonitor)裡搗鼓了好久,發現在給虛擬機器建立虛擬網路卡時可以指定MAC地址,頓時眼前大亮:如果可以給一個虛擬機器網路卡唯一指定一個MAC地址,那麼我就可以通過配置DHCP來實現MAC地址與IP地址之間的唯一對映,這樣指定MAC地址,也就相當於指定了IP地址。現在的問題就是如何配置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地址已配置好了。 相關文章
- 虛擬化技術之kvm虛擬機器建立工具qemu-kvm虛擬機
- KVM 一鍵批量建立虛擬機器 自動設定IP虛擬機
- 虛擬機器(三)虛擬機器配置靜態Ip虛擬機
- VMware Fusion虛擬機器配置固定IP虛擬機
- VMware配置centos虛擬機器靜態ipCentOS虛擬機
- 建立新的虛擬機器虛擬機
- VMware 虛擬機器,配置 Ubuntu 22.04 靜態 IP 地址。虛擬機Ubuntu
- win10自帶虛擬機器怎麼用_window10自帶虛擬機器如何建立Win10虛擬機
- 雲端自動化虛擬機器虛擬機
- 主流虛擬化平臺 QEMU-KVM 被曝存在漏洞,可完全控制宿主機及其虛擬機器虛擬機
- Linux 配置虛擬IPLinux
- VMware虛擬機器如何設定使主機和虛擬機器不同IP虛擬機
- 虛擬機器 NAT 網路靜態ip配置記錄虛擬機
- 使用 Cockpit 建立虛擬機器KPI虛擬機
- mac上使用Vmware Fusion虛擬機器配置Centos的靜態ipMac虛擬機CentOS
- 手動在虛擬機器之間建立信任虛擬機
- 虛擬機器網路卡配置虛擬機
- virtualenvwrapper 建立虛擬環境(指定版本的python)APPPython
- kvm純命令建立虛擬機器虛擬機
- VMware Workstation Pro建立虛擬機器虛擬機
- Linux虛擬機器配置IP時提示:determining ip information for ip xxx.xxx.xxx.xxx address is alreadyLinux虛擬機ORM
- VMware虛擬機器對外暴露ip的操作虛擬機
- anaconda建立虛擬環境指定python版本Python
- vmware虛擬機器環境下配置centos為靜態IP的步驟虛擬機CentOS
- 在Windows下如何建立指定的虛擬環境Windows
- Linux虛擬機器網路配置Linux虛擬機
- 一、虛擬機器環境配置虛擬機
- Hyper-V批次建立虛擬機器虛擬機
- 在vmare中建立centos虛擬機器CentOS虛擬機
- Dalvik虛擬機器、Java虛擬機器與ART虛擬機器虛擬機Java
- Linux虛擬機器設定靜態IPLinux虛擬機
- ubuntu虛擬機器設定靜態ip(windows能夠ping通ubuntu虛擬機器)Ubuntu虛擬機Windows
- Hadoop叢集--linux虛擬機器Hadoop安裝與配置、克隆虛擬機器HadoopLinux虛擬機
- 宿主機訪問虛擬機器內的Docker靜態IP虛擬機Docker
- 配置虛擬機器NAT模式網路虛擬機模式
- 虛擬機器基礎環境配置虛擬機
- 在 Fedora 中使用 Cockpit 建立虛擬機器KPI虛擬機
- 在CentOS上建立虛擬機器以及RedisCentOS虛擬機Redis
- 效率工具 | 快速建立虛擬機器,Vagrant真香!虛擬機