VM 的 ethx mac 地址是否与相应 tap 接口的 mac 地址相同?

VM 的 ethx mac 地址是否与相应 tap 接口的 mac 地址相同?

我在一台 ubuntu 机器上安装了单节点 openstack。由于某些我无法弄清楚的原因,linuxbridge 正在从此 VM 丢弃数据包。我的 iptables 似乎没问题(至少据我所知),并且没有配置 ebtables 链规则。

我刷新了我的 iptables 并尝试了相同的测试,但数据包仍然被丢弃。

在尝试调试 linuxbridge 时,我发现以下令我困惑的事情:

port no mac addr        is local?   ageing timer
  2 52:54:00:88:a3:cd   no        51.68
  2 52:54:00:95:96:8d   no        51.92
  2 52:54:00:b0:01:97   no        51.85
  2 52:54:00:dc:48:fe   no        43.01
  2 52:54:00:e5:fd:45   no         0.95
  2 52:54:00:e9:47:79   no        51.74
  2 52:54:00:f5:a4:d7   no        52.11
  2 54:26:96:33:20:5d   no         9.22
  2 60:c5:47:0a:2d:64   no         0.00
  2 64:70:02:c8:dc:fc   no         2.16
  2 6c:88:14:86:7e:38   no        47.86
  1 6e:0e:09:98:eb:c8   yes        0.00
  2 70:56:81:b1:d7:01   no        51.61
  2 7a:1c:08:d5:79:29   no        51.44
  2 84:38:35:5b:47:42   no       177.32
  2 88:1f:a1:13:72:4a   no        50.90
  2 90:27:e4:f1:e0:49   no         2.87
  2 94:de:80:20:3d:44   no         6.41
  2 94:de:80:20:3d:72   no        51.78
  2 94:de:80:bc:75:e7   no        52.06
  2 96:80:a0:ee:9c:c4   no        51.70
  2 96:d3:69:64:0d:36   no        51.35
  2 98:fe:94:46:b1:2c   no       229.38
  2 9c:4e:36:99:5d:e0   no         0.64
  2 aa:cd:61:6e:d3:fc   no        51.82
  2 ae:e6:a5:b0:c9:c9   no        51.58
  2 b2:1a:3a:25:b9:49   no        51.68
  2 b8:e8:56:45:7a:8a   no        51.76
  2 c6:db:db:8e:79:73   no        52.20
  2 ca:fe:ba:be:e3:01   no        10.11
  2 cc:3a:61:1e:e8:41   no        33.62
  2 de:ad:00:01:00:00   no        49.29
  2 de:ad:00:01:00:05   no        51.29
  2 de:ad:00:01:00:06   no        49.08
  2 e6:f6:a1:89:ff:96   no        51.46
  2 f4:f9:51:dd:3c:e1   no        22.08
  2 f6:6e:18:81:e7:c5   no        52.17
  2 f6:76:41:dc:97:88   no        52.09
  3 **fa:16:3e:1a:20:37**   no        51.29
  1 fa:16:3e:39:83:aa   no         2.16
  3 **fe:16:3e:1a:20:37**   yes        0.00

最后一个条目和倒数第二个 mac 相同,一个是本地的,另一个不是本地的。

此 Mac 对应于我的其中一台虚拟机的 eth0 mac 地址:

我通过登录控制台并执行“ip a”来验证这一点

这个mac地址也恰好是主机上创建的tap接口的MAC:

ifconfig tap3869edb5-6e
tap3869edb5-6e Link encap:Ethernet  HWaddr fe:16:3e:1a:20:37  
          inet6 addr: fe80::fc16:3eff:fe1a:2037/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:95102 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3216620 errors:0 dropped:198 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:6852603 (6.8 MB)  TX bytes:352453624 (352.4 MB)

这是应该的样子吗?

关于如何调试 linuxbridge 上丢失的数据包,有什么想法吗?

我正在从虚拟机内部 ping 桥接接口的 IP。我已将虚拟机的 tap 接口直接添加到同一个桥接器(使用 brctl add/delif)。

我看到了 tap 接口上的数据包(使用 tcpdump),但它们从未到达桥接接口。

我已将 /proc/sys/net/bridge/bridge-nf* 全部设为零,但没有任何效果。

谢谢!

答案1

不是。mac 可以通过 Libvirt domxml 或 qemu 命令行进行设置。

相关内容