为什么 Linux Bridge 为一个 qemu VM 显示 2 个 mac 地址?

为什么 Linux Bridge 为一个 qemu VM 显示 2 个 mac 地址?

我是 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 并不重要。

相关内容