
我想使用libvirt網路NAT配置。
libvirt 說https://wiki.libvirt.org/page/Virtual_network_%22default%22_has_not_been_started:
「1) 如果您實際上並未在實體機上使用 dnsmasq 來為 DHCP 服務實體網路,你應該完全禁用 dnsmasq”
這與我的上下文相對應,因此我在主機系統中停止並停用 dnsmasq。
在qemu系統中:
virsh # net-edit default
<network>
<name>default</name>
<uuid>b6ef8506-d4c7-4bba-9fe7-8f971ea87d10</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:06:86:de'/>
<domain name='circus.net'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.10'/>
</dhcp>
</ip>
</network>
我啟動預設網路:
virsh # net-start default
Network default started
virsh # net-list
Name State Autostart Persistent
----------------------------------------------------------
default active no yes
我啟動客人S0和S1
virsh # start S0
Domain S0 started
virsh # start S1
Domain S1 started
virsh # list
Id Name State
----------------------------------------------------
1 S0 running
2 S1 running
但 DHCP 似乎不起作用:
virsh # net-dhcp-leases default
Expiry Time MAC address Protocol IP address Hostname Client ID or DUID
-------------------------------------------------------------------------------
在主機上:
ping: S1: Name or service not known
我嘗試過的:
在虛擬管理器中
hostnamectl set-hostname server1
hostnamectl set-hostname server0
virsh # shutdown S0
virsh # shutdown S1
virsh # net-destroy default
在主機上:
tcpdump -i virbr0
在 qemu 中:
virsh # net-start default
virsh # start S0
virsh # start S1
tcpdump 沒有看到任何東西進入 virbr0
我的問題是:在這種情況下如何讓 DHCP 運作?
附加問題:
1.據說,在libvirt中,nat conf應該在盒子裡工作(預設conf),無需執行任何操作。 「開箱即用」到底是什麼意思?預設情況下,這裡的 S1 和 S0 的 FQDN 設定為 localhost.localdomain ,那麼 libvirt DHCP 如何區分 S0 和 S1 呢?
2.如果我想自訂我的 dnsmasq 配置(例如 log-facility=/var/log/dnsmasq.log 之類的東西),conf 檔案在哪裡?不在 /etc/dnsmasq.conf 或 /etc/dnsmasq.d/anyname.conf 中,因為 dnsmasq 在主機上不起作用?
答案1
我在 Debian 系統上遇到了同樣的問題,我發布了一個解決方案,以防它有幫助,或者如果有人可以改進它,那就太好了:)
將以下內容新增到來賓域 XML 檔案後,主機到來賓連線即可運作:
<interface type='bridge'>
<source bridge='virbr0'/>
<model type='virtio'/>
</interface>
這在來賓系統中創建了一個以前未見過的網路介面。然後,我dhclient
在來賓虛擬機器內部的介面上運行,它獲得了 192.168.122.x 位址,並具有可存取主機系統的連接埠。