监视靠的是「记账」,不是「抓全包」。 一条流记录 48 字节,全抓包是它的几千倍——所以分析用流、取证才用包。
上一节讲「怎么判」,这一节讲「判完之后留下什么」。 这一节的关键数字是「流量与记录量的比例」,它决定了存储怎么规划。
一、三种记账方式
流记录(NetFlow 一类):每条连接记一行:五元组、起止时间、包数、字节数。 数据量小,适合长期保留与趋势分析。
计数器(接口统计):每个接口记「收了多少包、丢了多少包、错了多少包」。 数据量极小,适合画图表与告警。
日志(事件记录):每条策略命中、每次登录、每次配置变更记一行。 数据量中等,适合审计。
三者的分工是清楚的:计数器看「健康」、流记录看「谁在跟谁说话」、日志看「发生了什么」。 排障时先看计数器,再看流记录,最后才查日志。
二、算一下存储要多少
一条流记录约 48 字节(五元组 13、时间 8、计数 8、接口与标志 4、扩展 12,加对齐)。
一条 1 Gbps 链路,平均包长 500 字节:约 25 万 pps; 按 1:1000 采样,就是每秒 250 条记录。 一天 = 250 × 86400 × 48 字节 ≈ 1.0 GB。
而同样这条链路,全抓包一天是多少:1 Gbps 满载一天 = 10.8 TB。 差四个数量级。
这个数量级差决定了三件事: 流记录可以留 30 天以上、可以放进普通数据库;抓包只能留几小时到几天、必须用高速盘;而「全流量回溯」这类产品卖的就是「把不可能变成可能」。
三、报告要回答什么问题
报告不是「越多越好」,是「能回答具体问题」。三类问题对应三类报告:
「谁用得最多」:按源地址排的流量榜。这也是最常被要求的那张表。 「什么时候最忙」:按小时或按天的趋势图,用来做扩容与限速决策。 「有没有异常」:基线对比——今天与上周同期比,偏差超过多少就报警。
第三类最难做,也最有用:因为「异常」不是「绝对值大」,是「与平时不一样」。 一台服务器平时 1 Mbps,今天 100 Mbps 就是异常;另一台平时 500 Mbps,今天 100 Mbps 反而是故障。 所以基线的价值远高于阈值。
四、动手 Demo:一条流记录多大,一天能攒多少
这段按 1 Gbps、平均包长 500 字节算 pps,再按 1:1000 采样算一天的流记录体积,最后对比全抓包的量。
pps = 1000000000 / (500 * 8)
per_day = pps / 1000 * 86400 * rec
P(u" %d 条/秒 × 86400 秒 × %d 字节 = %.1f GB/天。"
% (pps / 1000, rec, per_day / 1073741824.0))
full = 1000000000 / 8 * 86400
P(u" 1 Gbps 满载一天 = %.1f TB。" % (full / 1e12))
实跑输出:
--------------------------------------------------------------------
一条流记录多大,一天能攒多少
--------------------------------------------------------------------
**监视与报告靠的不是抓全包,是「记账」**——**每一条连接记一行。**
字段 字节 说明
----------------------------------------------------
五元组 13 源目的地址与端口、协议
起止时间 8 各 4 字节秒
包数与字节数 8 各 4 字节
接口与标志 4 进出接口、TCP 标志
自治系统等 12 可选扩展
一条记录 45 字节。
**算一条 1 Gbps 链路的流记录量**(平均包长 500 字节):
1 Gbps ÷ (500 字节 × 8) = 250,000 pps。
假设采样比 1:1000,那记录速率 = 250 条/秒。
250 条/秒 × 86400 秒 × 45 字节 = 0.9 GB/天。
**一天 1.3 GB 的纯元数据**,**保留 30 天就是 40 GB——这只是「记账」,还没抓包。**
**算全抓包会是多少**:
1 Gbps 满载一天 = 10.8 TB。
**差三个数量级**,**这就是为什么分析靠流记录、取证才靠抓包。**
「1.3 GB 与 10.8 TB」这一组对比是这一节的核心: 它解释了为什么「安全分析」和「取证」是两套完全不同的系统——前者可以长期在线,后者只能短期滚动。
注意 1:1000 这个采样比:它意味着「流量分析永远看不全」, 所以按流记录做容量规划可以,但按流记录查「某个具体连接有没有发生过」是不准的。 这一点很多人会误用。
最后那句「基线的价值高于阈值」值得抄下来:固定阈值在业务增长后必然失效(要么一直报、 要么一直不报),而基线是「自己跟自己比」,天然跟着业务走。
30 秒实验
- 查一下你单位的出口设备有没有开 NetFlow,采样比是多少。
- 算一下:你的链路一天全抓包要多少 TB?
- 想一想:如果只保留 7 天流记录,能查到一个月前的异常吗?
常见误区
- 以为开了监视就等于有了取证能力。流记录查不到具体报文内容。
- 以为采样不影响结论。查具体连接时采样会漏,只能看趋势。
- 以为阈值告警够用。业务一增长,固定阈值必然失效。
自测三问(点开对答案)
1. 流记录、计数器、日志三者分别回答什么问题? —— 谁在跟谁说话、链路健不健康、发生了什么事件。 2. 为什么全抓包不能长期保留? —— 1 Gbps 满载一天就有 10.8 TB,比流记录多四个数量级。 3. 为什么基线比固定阈值更有用? —— 异常的定义是「与平时不一样」,基线跟着业务走,固定阈值会失效。下一节:真的把包存成文件——分组的捕获。
- ☐ (本节完,下一节 05.07.11 分组捕获)