Kvm-Virtualization

Arch Linux 上的 Libvirt 和 macvtap 問題

  • December 9, 2019

我正在使用帶有 QEMU-KVM、libvirt 和 virt-manager 作為前端的 Arch Linux(最新)。我有幾個虛擬機,但到目前為止一次只執行一個。我正在嘗試使用的 VM 是在 Debian 10 上,但是當我嘗試類似的事情時,我也有一個 Kali 和一個 CentOS 7 有同樣的問題。

我嘗試用​​於 macvtap 的介面是連接到 wifi 接入點 (WPA2) 的無線網卡(在 Thinkpad T580 筆記型電腦上)。

我正在嘗試設置一個 macvtap 介面,以將我主機上的 wlp4s0 連接橋接到我的一個虛擬機。為此,我正在使用 virt-manager。我在macvtap上嘗試了橋接和VEPA模式,並且我在VM上嘗試了所有類型的介面(虛擬硬體),但無濟於事,因為沒有網路連接。但是,NAT 模式在所有虛擬機上都可以正常工作。

Libvirt 確實將設備(主機上的 wlp4s0)置於混雜模式,儘管 ip-link 沒有顯示它(/sys/devices/… 中的標誌仍在變化,並且 dmesg 確實說明了它進入混雜模式)。

在啟動 Wireshark 並從 VM ping 網關(使用固定 ip)時,我確實在 macvtap 和 wlp4s0 上的主機上看到了 ARP 請求,但沒有響應。

使用 dhcp 時,dhclient 沒有得到任何響應。

我可以提供更多需要的資訊。如果您對造成這種情況的原因有任何想法,我很樂意聽取您的建議!

據我所知,您仍然不能使用無線網卡進行這樣的訪客橋接。

來自 wiki.libvirt.org:

**重要提示:**不幸的是,無線介面無法連接到 Linux 主機橋,因此如果您通過無線介面(“wlanX”)連接到外部網路,您將無法使用它您的客人的網路模式。

即使它不完全符合您的要求,您也可以通過無線介面使用橋接網路。

有關更多資訊,請參閱此答案:https : //unix.stackexchange.com/a/159198/249572 您需要在兩個介面上啟用代理 arp 而不是答案中的第 5 步,如評論之一所述:

sysctl net.ipv4.conf.wlp4s0.proxy_arp=1
sysctl net.ipv4.conf.virbr1.proxy_arp=1

如果您還可以測試為無線和 macvtap 介面啟用代理 arp 並查看它是否有效。

引用自:https://serverfault.com/questions/994535