NetFlow 能回答什么
不是所有环境都做全流量留存,很多场景只有 NetFlow/IPFIX 这类元数据:五元组、起止时间、包数与字节数。它没有载荷,不能看内容,但足以做外联筛查与体量评估——哪台主机在什么时候连了哪个外部地址、传了多少数据、持续多久。配合采样比与流超时设置,还能估算实际流量规模。做主机溯源时,它常用来确认「有无外联」这一层事实,再决定是否需要在关键点位补抓包。
基本信息
| 适用平台 | 路由器、交换机、防火墙导出,采集与分析在 Linux 上完成 |
|---|---|
| 常见格式 | NetFlow v5/v9、IPFIX、sFlow |
| 核心字段 | 五元组、起止时间、包数与字节数、方向、输入输出接口、采样比 |
| 典型工具 | nfcapd(采集)、nfdump(查询与聚合) |
| 时间特性 | 受流超时设置影响,长连接会被切成多段记录 |
| 采样特性 | sFlow 常按固定比例采样,字节数为估算值 |
典型使用场景
- 确认某台主机在指定时间窗内是否有对外连接
- 评估数据外带的体量:哪条流的字节数明显异常
- 按目标地址聚合,找出被多台主机访问的同一外部地址
- 为抓包提供依据:先由元数据锁定时间窗与五元组,再做定向抓包
- 排查扫描:大量短流与大量被拒连接形成的分布特征
- 设备侧没有日志时,作为网络行为的替代证据来源
聚合与筛查
聚合与筛查
# 按来源地址聚合字节数,找出体量最大的主机
nfdump -r nfcapd.2026101200 -s srcip/bytes -n 20
# 按目标地址聚合,寻找被集中访问的外部地址
nfdump -r nfcapd.2026101200 -s dstip/bytes -n 20
# 指定主机的全部会话,按时间排开
nfdump -r nfcapd.2026101200 'src host 10.0.3.17' | head -50
# 只看特定端口的方向(如出站 443)
nfdump -r nfcapd.2026101200 'src host 10.0.3.17 and dst port 443'
# 小包高频往往对应心跳或探测,大字节单流更像外带
# 注意采样比:估算体量前先确认导出设备的采样设置字段与判读
| 字段 | 含义 | 判读要点 |
|---|---|---|
| 五元组 | 源/目的地址与端口、协议 | 定位会话的唯一键,抓包与日志都靠它对齐 |
| 起止时间 | 流的首包与末包时间 | 受流超时影响,长连接会被切成多段 |
| 包数/字节数 | 该流的规模 | 采样数据为估算值,报告要注明 |
| 方向与接口 | 进站/出站与接口号 | 判断请求与响应方向,辅助识别内网横向 |
| 采样比 | 导出时的采样设置 | 未确认采样比就换算总量,量级可能差出几个数量级 |
采样数据算出的字节总数会有偏差:量级结论可用,精确值要在报告里注明为估算,并写清采样比来源。
长时间流会被切成多段记录,聚合时按五元组与相邻时间合并,否则单次连接的规模被低估,外带体量评估偏小。