0

我了解 macvlan 的全部目的是在 NIC 上安装额外的单播 MAC(如果支持),因此 NIC 和传统网桥都不需要 promisc 模式。这样 NIC 可以接收多个 Dest MAC = [NIC's primary MAC, additional unicast MACs]

所以如果我在bond0上创建一个macvlan接口,我是否可以在这个macvlan接口上打开promisc模式来捕获bond0上收到的所有未知单播/多播数据包?我理解的 rx 路径是:

if (Dst MAC = bond0's MAC)
  if (vid == bond0.<vid>
     netif_rx for bond0.<vid>
  else
     netif_rx for bond0
else if (Dst MAC = macvlan0's MAC)
  netif_rx for macvlan0
else if (interface with promisc mode on)
  netif_rx for those interfaces...

我试过了

ip link add macvlan0 link bond0 type macvlan mode bridge
ip link set macvlan0 promisc on

但除了 macvlan0 配置的 MAC 地址外,我无法接收数据包。

有没有办法可以在 macvlan 界面中做到这样的“包罗万象” ?

4

0 回答 0