默認部署的KVM環(huán)境使用了一個NAT方式的虛擬網(wǎng)絡(luò)環(huán)境凡蚜,這樣創(chuàng)建的虛擬機可以訪問外網(wǎng),但是外部卻不能訪問虛擬機的服務(wù)吭从。
要在NAT網(wǎng)絡(luò)提供對外服務(wù)朝蜘,需要在物理主機上設(shè)置IP Forwarding,將物理主機的網(wǎng)絡(luò)端口映射到虛擬主機的網(wǎng)絡(luò)端口涩金。不過谱醇,在此之前還需要確保每個虛擬機啟動時獲得固定的IP地址,以保證端口映射正確步做。
libvirt和DHCP
在NAT模式下副渴,libvirt使用了內(nèi)建的dnsmasq來提供DHCP和DNS解析,可以通過在virsh中設(shè)置固定的DHCP IP地址和虛擬機MAC地址綁定來確保每次分配給vm相同的IP地址全度。
首先找出vm的MAC地址
virsh dumpxml $VM_NAME | grep 'mac address'
編輯網(wǎng)絡(luò)
virsh net-list
virsh net-edit $NETWORK_NAME
這里 $NETWORK_NAME 通常是default
編輯<dhcp>段落
<dhcp>
<range start='192.168.122.100' end='192.168.122.254'/>
<host mac='52:54:00:6c:3c:01' name='vm1' ip='192.168.122.11'/>
<host mac='52:54:00:6c:3c:02' name='vm2' ip='192.168.122.12'/>
<host mac='52:54:00:6c:3c:03' name='vm3' ip='192.168.122.13'/>
</dhcp>
重啟虛擬網(wǎng)絡(luò)
virsh net-destroy default
virsh net-start default
在kvm宿主機的hosts中加入對應(yīng)條目后煮剧,建議重啟KVM宿主機。