我是 qemu 网络的新手,对以下情况感到很困惑。我启动了 5 个虚拟机。每个虚拟机都通过 tap 设备连接到 br0。我还有一个 dnsmasq 在 br0 上监听 DHCP。
问题是 dnsmasq 不会根据我指定的 dhcp_host 文件向 VM 分发 ip。dhcp_host 文件包含类似 mac:ip 的条目。我以为当我将 mac 地址放入 qemu 时,dnsmasq 应该从 dhcp_host 文件中查找 ip。但事实并非如此。相反,它随机分发 ip。
现在,当我使用 brctl 检查时。它显示 10 个 mac 地址而不是 5 个!?在来这里提问之前,我从谷歌搜索了很多 qemu 网络教程。没有一个能回答我的问题。有人能解释一下情况或给我一些指点吗?谢谢!
$ brctl 显示 桥名称 桥 ID STP 启用接口 br0 8000.1ed7c974ed93 没有 tap0 点击1 tap2 点击3 tap4
$ brctl showmacs br0 端口无 MAC 地址是本地的吗?老化计时器 1 02:2f:ef:29:be:36 否 1.73 1 1e:d7:c9:74:ed:93 是 0.00 4 22:00:f4:a8:89:8a 否 3.99 5 5a:e6:2a:d6:a0:50 是 0.00 3 5e:18:64:12:3d:ec 是 0.00 3 72:22:53:51:f4:fa 否 3.08 4 7a:e4:22:89:59:9a 是 0.00 5 82:9f:d3:6d:54:17 否 0.69 2 c2:fb:2a:3a:81:e9 否 32.99 2 e6:a6:7a:a4:49:d4 是 0.00
更新:
以下是来自的一个示例 qemu 进程信息ps aux
用户 15983 99.9 8.0 5673100 5296180 ? Sl 12:29 214:30 qemu-system-x86_64 启用-kvm-快照-不关机 -m 5120 -smp 2 -pidfile /home/user/vm-workingdir/instance-2/pid -monitor unix:/home/htrc/user/instance-2/monitor,服务器,nowait -串行文件:/home/user/vm-workingdir/instance-2/release_mon -USB -net nic,vlan=0,macaddr=c2:b3:04:4b:8c:c8 -net tap,vlan=0,fd=3 -hda /home/user/vm-workingdir/instance-2/image.img -vnc:105,密码
答案1
Tap 设备的 mac 和虚拟机中虚拟 NIC 的实际 mac 不同,这就是为什么您在输出中看到两倍的 MAC 数量。
您应该只查看 VM 的内部 MAC,即您在参数中指定的 MAC -net nic,vlan=0,macaddr=XX:XX...
,tap dev MAC 并不重要。