Chr*_*urm 0 linux debian iptables tcpdump
我想处理通过我们的网关服务器(运行 Debian 4.0)的所有数据包。
我的想法是使用tcpdump,但是我有两个问题。
我目前想到的命令是tcpdump -i iface -n -t -q.
IP ddd.ddd.ddd.ddd.port > ddd.ddd.ddd.ddd.port: tcp 1260. 1260究竟是什么?我怀疑它是以数据包的字节为单位的有效载荷,这正是我需要的,但我不确定。它可能是 TCP 窗口大小。或者也许有更好的方法来做到这一点?我想到了iptables中的LOG规则,但是tcpdump似乎更容易,我不知道iptables是否可以记录数据包长度。
它现在在 IpTables 中实现。对每个网段使用单独的链,我有一个深度为 3 的树。
机器软中断负载比较高,尤其是晚上(我们大部分用户都在线的时候),但是到现在还可以接受。
感谢您的输入。
tcpdump 不能保证处理所有数据包。有一些缓冲,但是如果通过网络接口的数据包的速度比您的 CPU 通过 tcpdump 运行它们的速度快,内核就会开始丢弃数据包。对 CPU 的需求越高,网络流量率越高,掉线的可能性就越大(不可能具体说明,您必须在您的系统上进行测试以找出掉线阈值的位置)。
顺便说一句,我不知道。
至于更好的方法,您想要的术语是“流量会计”。这是内置在 IPTables 中的,因此任何现代 Linux 发行版都应该开箱即用地支持它。简而言之,一些简单的“直通”IPTables 规则可以为您实时提供传输的总字节数,用于几乎任何指定的流量类型(按 proto、端口、IP 等细分,或不细分)想。
这里有一个很好的演练,有特定的命令:http : //www.catonmat.net/blog/traffic-accounting-with-iptables
这应该比 tcpdump 更轻量和可靠,因为 Netfilter 完全在内核中处理它,而且内核有数据包长度信息。
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |