來賓網路無法在 Debian Jessie 主機伺服器 KVM 上使用 br0 橋接網路
GUESTS 網路根本不工作。換句話說,guest 無法 ping 主機或 LAN 網關。
- 我已經創建了 br0 網橋,並且 brctl 顯示 vnet0 已由 KVM 在客戶機啟動時正確添加到 br0
- 我已將 ip_forward 設置為 1
- iptables 已關閉,甚至沒有安裝,因為我只需要 GUESTS 通過橋接 br0 直接訪問路由器/區域網路
我有這個設置在其他帶有 centos 主機的系統上工作,但我是 debian 新手,不知道我可能忘記做什麼了。
主機網路似乎工作正常,eth0 不再擁有 IP,而 br0 擁有 eth0 曾經擁有的 IP。brctl show 命令顯示 br0 和 eth0 在 Guest 關閉時被奴役,當 Guest 打開時顯示 eth0 和 vnet0
我只是通過簡單地從 VIRTIO 更改為 RTL 網路介面來使其工作,這與選擇“hypervisor default”是一樣的。還有的輸出
lsmod | grep virtio
virtio_pci 17389 0 virtio_net 26553 0 virtio_blk 17341 0 virtio_ring 17469 3 virtio_blk,virtio_net,virtio_pci virtio 13058 3 virtio_blk,virtio_net,virtio_pci
我不得不使用 modprobe virtio 手動添加 virtio,但它仍然沒有解決問題。使用 modprobe virtio 等添加核心模組後我沒有重新啟動,但我確實重新啟動了 libvirtd 和 virt-manager
它可以正常工作,但不能與 virtio 一起使用。核心是否存在潛在問題?我如何檢查核心配置,這是一個帶有
uname -a
輸出的 debian JessieLinux vmserver 3.14-2-amd64 #1 SMP Debian 3.14.15-2 (2014-08-09) x86_64 GNU/Linux
感謝馬斯。清理我的第一篇文章。我剛剛注意到來賓上不存在 /sys/devices/virtio 文件夾,但 /sys/devices/virtual/net/lo 存在,但沒有 /sys/devices/virtual/net/eth0
centos 6.4“guest”上的 ifconfig 顯示 eth0 得到 0 字節 RX 但 14kB TX 所以我猜它沒有收到任何通信。我不會放棄輕鬆,但我並不期待在來賓和主機上從頭開始重建核心。
好吧,我似乎找到了問題所在。為了診斷,我安裝了一個 Windows 客戶機並安裝了 Windows virtio 驅動程序。我能夠在 Windows 中使用 virtio 網路,所以問題出在 Linux 來賓核心或核心驅動程序上,因為 Linux 來賓確實載入了 virtio pci/block 等核心模組,因此可能需要重新編譯核心。因此,“HOST”方面沒有任何問題。
另外,我應該在我的研究中指出,發現人們總是在虛擬化方面給出建議而沒有說明他們指的是 GUEST 還是 HOST,這很煩人,事實上,由於這個原因,人們在載入時會產生很多混亂virtio 核心模組在主機上而不是來賓等…(我在兩者上都載入了它們,不必要地在主機上…但無論哪種方式都無所謂,不能解決我的問題,看來我必須在我的 centos Linux 客戶機上重新編譯 Linux 核心。)
您是否在 iptables 中啟用了偽裝?
檢查與
iptables -L -t nat
您應該會看到如下內容:
Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 10.0.0.0/24 !10.0.0.0/24
如果您在 iptables 中沒有看到 MASQUERADE,您可以使用以下命令來允許它:
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j MASQUERADE
當然,將 IP 範圍替換為您正在使用的 IP 範圍。