Kvm-Virtualization

KVM下如何實現類似Virtualbox的橋接?

  • July 13, 2018

我需要將一些虛擬機從 Virtualbox 測試系統移動到 KVM 生產主機。主機是相同硬體和軟體系統的兩個副本(重要的是 64 位 Ubuntu Server v16.04)。

這一切都不是太複雜,但網路部分。

對於 virtualbox 的來賓,我有一個 virtio 乙太網適配器橋接到其中一個主機綁定設備。從主機連接到的網路和主機本身都可以輕鬆訪問來賓。這樣,來賓就像“網路上的另一台伺服器”。在操作過程中,除了 virbr0 橋,我什麼都看不到。

AFAIU,這個簡單的設置無法在 KVM 下複製。如果我使用橋接,那麼我無法從客人與主人交流。建議的解決方案是為來賓添加第二個介面以用於此類用途。

這是我唯一的選擇嗎?

然後,如果有任何技術細節可用,我想知道Virtualbox如何做KVM不能做的事情。

這並不像預期的那麼容易。@dyasny 的一般提示是正確的:確實是可行的。這裡的主要目標是:

  1. 請勿使用 3rd 方工具(如virshvirtinstlibvirt)來學習和理解。
  2. 以普通管理非特權使用者的身份執行虛擬機而不是 root。

這就是我的做法。

  1. /etc/network/interfaces通過註釋掉主乙太網的行來禁用主主機介面。
  2. 在同一文件中創建一個包含該介面的網橋。原始介面將失去將去橋接的 IP。配置文件如下所示:

   auto eth0 # no iface and IP stuff
   auto br0
   iface br0 inet static
       bridge_ports    eth0
       bridge_stp      off
       bridge_maxwait  0
       bridge_fd       0
       address 192.168.255.253/24
       gateway 192.168.255.254
  1. 為 QEMU 創建一個 ACL 以允許到網橋的流量進入/etc/quemu/bridge.conf,所有權root:kvm結束權限0640。目錄/etc/quemu/必須是root:kvmand 0770

sudo mkdir -v /etc/qemu
# 'br0' is the same name as used in the previous step
echo allow br0 | sudo tee -a /etc/quemu/bridge.conf > /dev/null
sudo chown -R -vc root:kvm /etc/qemu
sudo chmod -vc 0770 /etc/qemu
sudo chmod -vc 0640 /etc/qemu/*
  1. **修復橋接助手腳本。**如果僅對root.

sudo chmod -vc u+s /usr/lib/qemu/qemu-bridge-helper
  1. 將您的非特權使用者添加到 group kvm。您需要註銷並登錄(或打開一個新會話)才能使其生效。

sudo usermod -a -G kvm `id -un`
  1. 重啟網路。

sudo service networking restart
  1. 現在,當您通過命令行啟動 VM 時,您可以為網路設備使用如下參數列表:

... \
-netdev bridge,id=net0,br=br0

其中net0是列舉的網路設備(在這種情況下是第一個),並且br0是前面定義的網橋介面的名稱。因此,例如,一個完整的命令行範例可以是這個:


kvm -cpu host -machine q35 -boot order=dc -vga virtio -vnc 127.255.255.1:0 -name qemutest,process=qemutest -uuid 901f83ce-b999-459b-b1b6-a9ba94cac382 -smp cpus=4 -m size=8192 -cdrom /home/user/image.iso -drive file=/home/user/Desktop/QEMU/qemutest/qemutest-D0.qcow2,if=virtio -device virtio-net-pci,mac=02:19:3e:39:a5:de,netdev=net0 -netdev bridge,id=net0,br=br0

您所描述的是一個絕對標準的 KVM 橋接配置,幾乎記錄在您想要查看的任何地方。這個想法是在網橋下的主機上建立綁定(網橋保存主機的 IP 配置,而不是綁定),VM 將能夠像您在 vbox 中使用的一樣使用網橋。

一旦主機上有可用的網橋,virt-manager 將允許您選擇要連接的共享網路設備(例如新網橋),或者您可以簡單地更新 domxml 讓訪客使用網橋而不是預設的NAT網路

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