如何在虚拟网卡 macvtap 上禁用 IGMP 监听

网络工程 杜松 多播 杜松-srx 虚拟的 igmp
2021-07-06 12:00:41

网络社区,

问题
如何在虚拟网卡 macvtap 上禁用 IGMP 监听?

背景: 我们注意到 Juniper vSRX 15.1X49-D60(在 Ubuntu 16.04LTS 服务器 KVM 上运行)在连接到*任何物理路由器(Juniper 或 Cisco)时不断地改变邻居关系(大约每 40 秒)。

我们已将范围缩小到需要在虚拟网卡“macvtap”上禁用“igmp-snooping”这一事实。

我们对此的临时解决方法是将虚拟接口设置为“混杂”模式,但这不是可取的。

为了诊断这个问题,我们在 Ubuntu 16.04 KVM 上运行了三个虚拟 SRX 实例,通过 p2p 连接到物理 Cisco SRX240 和 Cisco 3750G(为路由配置)。

附加的是来自 Cisco 路由器的日志邻接和来自虚拟 srx 的 pcap。

谢谢大家,

在此处输入图片说明 在此处输入图片说明

2个回答

这实际上是一个已知问题,有几种方法可以解决它。

最好的其实是编辑libvirt网络的XML定义并添加

trustGuestRxFilters=yes

到开放网络定义节。默认值为“no”——不幸的是,它破坏了 IPv6 和 IPv4 的多播。这实际上是在RedHat 错误报告中列出的

这是关于甚至包括描述的格式的很好的参考

另一个选项不是设置混杂模式(这会带来其他问题),您可以使用以下命令设置 macvtap 接口以支持多播

ip link set dev macvtap*n* allmulticast on

有些人编写了这样的脚本,以便在初始设置期间将所有macvtap接口设置为这样,有些在其他点进行集成。

希望这可以帮助-

谢谢 rnxrx,

实际上,我们最终返回并系统地为每个接口创建/编写了一个虚拟桥接器。然后将这些虚拟网桥分配给虚拟路由器,而不是物理接口。

尽管目前所有接口仍设置为混杂模式。