为什么linux桥显示一个qemu vm的2个mac地址?

我是qemunetworking的新手,对以下情况非常困惑。 我推出了5台虚拟机。 每个通过一个水龙头设备连接到br0。 我也有一个dnsmasq侦听br0的DHCP。

问题是根据我指定的dhcp_host文件,dnsmasq不会将ip分配给VM。 dhcp_host文件具有如下项目:mac:ip。 我想,当我把mac地址在qemu中,dnsmasq应该从dhcp_host文件中查找ip。 但事实并非如此。 相反,它随机发出ip。

现在,当我检查与brctl。 它显示10个mac地址,而不是5! 我在这里search了很多来自谷歌的qemunetworking教程。 他们都没有回答我的问题。 有人可以解释一下情况吗?或者给我一些指点? 谢谢!

  $ brctl show
 网名称bridge id STP使能的接口
  br0 8000.1ed7c974ed93 no tap0
                                                           TAP1
                                                           TAP2
                                                           TAP3
                                                           tap4
 $ brctl showmacs br0
端口没有mac地址是本地的? 老化定时器
   1 02:2f:ef:29:be:36 no 1.73
   1 1e:d7:c9:74:ed:93是0.00
   4 22:00:f4:a8:89:8a no 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 no 3.08
   4 7a:e4:22:89:59:9a是0.00
   5 82:9f:d3:6d:54:17 no 0.69
   2 c2:fb:2a:3a:81:e9 no 32.99
   2 e6:a6:7a:a4:49:d4是0.00

更新:下面是ps aux一个样例qemu进程信息

用户15983 99.9 8.0 5673100 5296180?  Sl 12:29 214:30 qemu-system-x86_64 
 -enable-kvm -snapshot -no-shutdown 
 -m 5120 -smp 2 
 -pidfile / home / user / vm-workingdir / instance-2 / pid 
 -monitor unix:/ home / htrc / user / instance-2 / monitor,server,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,密码

tap设备的mac和虚拟网卡在虚拟机中的实际mac是不同的,这就是为什么你看到输出中MAC数量增加一倍的原因。

你只应该看看虚拟机的内部MAC,你在-net nic,vlan=0,macaddr=XX:XX...参数中指定的MAC,tap dev MAC不重要。