我们有一个连接互联网和内部网络的边缘路由器。我需要监控进出的流量,并报告哪个服务器/主机占用了大部分带宽,最好是哪些应用程序消耗最多(torrents/http 下载等)。
将我们的边缘路由器的端口镜像(WAN 接口)并在其上放置一台运行 wireshark 的笔记本电脑是否可行?只是为了查看统计数据或使用情况?
我刚刚在nagios上玩了一下,似乎没有发现这种监控。
是否有任何应用程序可以轻松实现这一目标?
答案1
我将在很大程度上重复 JMurphy 给出的答案。Wireshark(在我看来)不太适合您想要进行的分析类型。当您尝试解决两个主机之间的特定网络问题时,Wireshark 更适合进行详细的流量分析。
我的建议是以下两种:
PRTG 或 MRTG。这可以为您提供互联网连接传输流量的高级概览,例如流量类型(HTTP、SMTP 等)和涉及所述流量的主机(源和目标),以及能够为您提供流量摘要,例如 HTTP 流量量等。
NetFlow 或其替代方案,具体取决于您的路由器和/或交换机支持什么。同样,这可以为您提供通过互联网连接的流量的高级概览,例如流量类型(HTTP、SMTP 等)和所述流量中涉及的主机(源和目标),以及能够为您提供流量摘要,例如 HTTP 流量量等。
答案2
我认为您会发现,即使是非常小的网络,Wireshark 也难以理解:它会收集并显示每个数据包的内容,即使是最小的数据包。您可以获取一段时间的捕获文件,然后保存它并针对每个主机进行连续过滤,然后针对每个感兴趣的端口/协议(例如 HTTP 的 TCP/80、SSH 的 TCP/22 等)再次进行过滤,但这很快就会变得繁琐。您可以编写一个 shell 脚本来分析tcpdump
文件,但真正的问题是 Wireshark 或 tcpdump 产生的数据包转储太过细粒度:您不需要那么多信息。
还有一些替代方案。用于确定 95% 计费带宽的软件可能在这里使用:例如移动式反应堆。不过,我怀疑这有点牵强。一般来说,这种带宽监控的行业标准是 NetFlow 或 sFlow。对于小商店来说,有许多免费和/或开源工具可用。您需要一个流量导出器(您的边缘路由器可能已经这样做了;如果没有,有许多免费的流量导出器可用,包括这个) 和流收集器。