我正在考虑在用作路由器的运行 Debian 的机器上设置 Snort 作为入侵检测系统。Snort 会在互联网端进行监听(实际上没有任何重大风险,或多或少只是查看发生了什么样的活动)。两个以太网适配器都支持千兆位连接(一个适配器内置在主板中,另一个适配器位于扩展槽中),互联网连接本身约为 100Mpbs(根据我从远程机器传输数据的速度粗略估计,此连接位于大学宿舍内)。除了偶尔的大文件传输(通常约为一到两 GB)外,该连接主要用于浏览网页、传出 ssh 连接等,因此通常不会有太多流量通过。机器本身是带有 core2duo 处理器的戴尔 optiplex 755。说了这么多,我想知道将连接到互联网的网卡置于混杂模式是否会导致延迟大幅增加?我做了一个小测试,在打开和关闭混杂模式时 ping 了一个网站,没有注意到 ping 时间有任何差异(以毫秒为单位)。此外,当接口处于混杂模式时,CPU 的功能是否会影响引入的延迟量?感谢您的帮助!
答案1
由于您感兴趣的所有流量都是 IP 和路由,因此我认为在接口上打开混杂模式没有任何好处。
因为您不应该期望任何未发送到您的 NIC 的流量(我假设您的 ISP 正在使用 L2 桥接器或路由器)在线路上,所以您将看不到捕获的流量有差异。
但是,如果您有大量流量,而这些流量的目的地不是您的路由器,或者不是广播的,则这些流量将由 Linux 内核处理,在经过 pcap 处理后,它们将被丢弃。这将增加 NIC 的中断次数,并可能影响性能。可以通过在 NIC 上启用数据包合并来缓解这种情况。