混杂模式下多播几秒后停止

混杂模式下多播几秒后停止

我有一个系统,它在自己的网络上接收大量多播数据(这是线路上唯一的流量)。这些数据来自许多 IP 和端口。通常,某人只需连接到一个或多个 IP 和端口,但对于这个系统,我需要从所有 IP 和端口读取数据。我们使用的其他系统也通过使用 PCAP 和混杂模式来实现这一点。在开发这个系统时,它在一段时间后(15 秒到 60 秒之间)开始丢失多播。

所以我开始尝试找出问题所在。首先,我排除了编程出错的可能性,并开始使用 tshark 进行测试。tshark 看到的正是我的软件所看到的内容。我采取的措施如下:

$sudo ifconfig eno2 down
$sudo ifconfig eno2 up
$sudo tshark -i eno2

然后,我会在一段时间内接收多播,然后它停止。一旦它停止,它就永远消失了,直到我关闭 NIC 并再次打开。这种情况可以反复重复。

我在 eno2 上的 ifconfig 是:

eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> MTU 1500
        inet 127.1.1.65 netmask 255.255.255.0 broadcast 127.1.1.255
        inet6 fe80::ae1f:6bff:febc:1d05  prefixlen 64  scopeid 0x20<link>
        ether ~~~~~~~~~~~~~~~~~  txqueuelen 1000    (Ethernet)
        RX packets 1984750  bytes 420457182 (420.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 95  bytes 7418 (7.4 KB)
        TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0

编辑了 MAC 地址。我尝试设置 ALLMULTI 和 PROMISC 标志,但没有任何效果。

因此,据我所知,似乎有什么东西在一段时间后主动阻止了多播。有人知道为什么会发生这种情况吗?有什么建议的解决方案吗?我不确定这是我的配置还是交换机的问题。

相关内容