什么是 Netflow?

什么是 Netflow?

我对“NetFlow”的定义有些困惑。NetFlow 是否声明了两个 IPv4 地址之间交换的所有数据包(与网络端口无关),或者描述了数据包的标头(源 IP、目标 IP、源端口、目标端口、协议、时间信息、TCP 标志、字节信息、数据包信息、ICMP 信息)?

答案1

由于字段可扩展,NetFlow 作为一个术语现在涵盖了几种不同的方法,但基本内容是这样的:NetFlow 记录是从主机 A 发送到主机 B(IP 协议号 C)的字节数和数据包数的定期汇总,以及(在适当情况下)从主机 A 上的端口 D 发送到主机 B 上的端口 E。通常还有更多信息(例如有关流量经过的路由器接口的信息),但或多或​​少就是这样。

举一个具体的例子可能会有所帮助。假设我从 192.168.0.10 启动到 192.168.0.11 的 SSH 会话。我的本地操作系统为我分配了临时 TCP 端口 50000,当然我连接到的是端口 22。

我的路由器会定期(比如说,每分钟一次)发送包含两个更新的 NetFlow 数据报。一个数据报包含从 192.168.0.10:50000 发送到 192.168.0.11:22 的八位字节和数据包的带时间戳计数,另一个数据报包含从 192.168.0.11:22 发送到 192.168.0.1:50000 的八位字节和数据包的计数。可能还有其他信息,例如使用的 TCP 标志、QoS、VLAN 编号和其他项目。一些路由器还会检查有效负载以确定正在使用的应用程序,或提取 URL 或用户名。这些将被放入其他字段,通常不会导致全新的 NetFlow 记录。

如果我打开同一主机之间的第二个连接(例如到端口 80)或另一个到端口 22 的连接,那么我将获得该连接的单独更新,因为我将被分配新的源端口。因此,如果我有两个 SSH 连接,一个来自端口 50000,另一个来自端口 50001,那么 NetFlow 将区分它们,我将获得两组更新。如果我打开了 20 个连接,那么根据所涉及的端口和主机,我将获得 20 对(每个方向一对)NetFlow 更新。

因此,更直接地回答您的问题:报告时会考虑标头信息,因此报告与所用端口无关。但是,正如另一位评论者所说,它不一定仅限于标头信息。

相关内容