华为交换机 NetStream 流量采集与输出配置详解 - 夜莺博客

华为交换机 NetStream 流量采集与输出配置详解

NetStream 是华为 VRP 平台上的流量统计技术,作用与 Cisco NetFlow 类似:设备对符合特征的报文流做统计,按配置的老化条件把流信息输出到采集服务器,运维人员据此得到"谁在占带宽、哪个应用在跑、异常流量从哪来"的答案。它和端口镜像的区别是只输出统计信息而非完整报文,因此对设备转发影响小、适合长期开启。本文以 S 系列和 CloudEngine 交换机的 VRP 命令为例,讲清 NetStream 的采样、过滤、老化、输出版本配置,以及上线前的验证和常见故障排查。

NetStream 的三个角色

  • NDE(NetStream Data Exporter):交换机自身,负责提取流并输出统计报文。
  • NSC(Collector):采集服务器,接收并入库。常见选择是 nfdump、Elasticsearch + Logstash、或商业流量分析平台。
  • NDA(Analyzer):分析展示层。

交换机只承担 NDE 角色,配置核心就是三件事:统计哪些流量(接口方向 + ACL 过滤 + 采样)、什么时候输出(流老化)、输出到哪里(目的地址与 UDP 端口、报文版本)。

第一步:接口开启流量统计

<HUAWEI> system-view
[HUAWEI] interface 10GE1/0/1
[HUAWEI-10GE1/0/1] ip netstream inbound
[HUAWEI-10GE1/0/1] ip netstream outbound
[HUAWEI-10GE1/0/1] quit

入方向统计的是进入设备的流量,出方向统计的是离开设备的流量。核心/汇聚层建议入方向开启,出口路由器建议双方向开启,以便同时看到源和目的。注意:接口开启后业务不中断,但统计表项会占用设备内存,转发面与统计面共享芯片资源,高密度接口上建议配合采样。

第二步:配置采样器降低开销

# 定义采样器:每 1000 个报文中采样 1 个(1:1000)
[HUAWEI] acl number 3000
[HUAWEI-acl-adv-3000] rule 5 permit ip source 10.20.0.0 0.0.255.255

[HUAWEI] sampler netsample
[HUAWEI-sampler-netsample] mode random packet-interval n-exp 10
[HUAWEI-sampler-netsample] quit

# 在接口上绑定采样器
[HUAWEI] interface 10GE1/0/1
[HUAWEI-10GE1/0/1] ip netstream sampler netsample inbound
[HUAWEI-10GE1/0/1] ip netstream sampler netsample outbound

mode random packet-interval n-exp 10 表示 2 的 10 次方,即每 1024 个报文随机采样一个。采样的意义在于把统计开销压到可接受范围,同时用统计放大的方式还原真实流量规模——采集端需要按采样比做换算,否则带宽数值会偏小两个数量级。

第三步:ACL 过滤,只统计你关心的流

[HUAWEI] interface 10GE1/0/1
[HUAWEI-10GE1/0/1] ip netstream inbound acl 3000
[HUAWEI-10GE1/0/1] quit

过滤在采样之前生效:先由 ACL 选出关注的报文,再做采样。这样可以在设备侧就把无关流量(备份、监控、管理流量)排除,既省内存又让报表干净。如果只想看到某几个网段的互联网访问,就写一个只放行这些源地址的 ACL;如果想去掉某些流,就用 deny 规则把它们排除。

第四步:流老化与缓存控制

[HUAWEI] ip netstream timeout active 5
[HUAWEI] ip netstream timeout inactive 30
[HUAWEI] ip netstream max-entry 32768
[HUAWEI] ip netstream export rate 2000
  • 活跃老化:一条流持续存在超过 active 时间就输出一次统计(默认 30 分钟,做实时监控建议 1-5 分钟)。
  • 不活跃老化:一条流在 inactive 时间内没有新报文就输出并删除(默认 30 秒)。
  • 强制老化:执行 reset ip netstream statistics 立即把所有缓存流输出并清空,用于报表前强制刷新。
  • 报文输出速率:ip netstream export rate 限制输出速率,避免采集服务器故障时大量 UDP 报文挤压控制面。
[HUAWEI] reset ip netstream statistics
[HUAWEI] display ip netstream cache | include TCP

第五步:输出到采集服务器

[HUAWEI] ip netstream export host 10.20.9.50 5000
[HUAWEI] ip netstream export source interface 10GE1/0/1
[HUAWEI] ip netstream export version 9
[HUAWEI] ip netstream export template refresh-rate 30 packet
  • 版本 5 结构固定、简单,适合只用 IP/端口/协议字段的场景;版本 9 用模板定义字段,可以携带源/目的 AS、MAC、VLAN 等,是当前主流选择。
  • 使用版本 9 时务必配置模板刷新周期,采集端重启后需要重新收到模板才能解析数据;模板刷新过慢会出现"收到报文但解析不出字段"的现象。
  • 源接口建议显式指定为与采集服务器直连的接口,否则设备会用出接口地址,多路径环境下源地址不固定,采集端难以识别设备。

验证:三步确认链路打通

# 1) 统计是否在工作
[HUAWEI] display ip netstream cache
[HUAWEI] display ip netstream cache verbose

# 2) 输出是否在发送
[HUAWEI] display ip netstream statistics
[HUAWEI] display ip netstream export host

# 3) 采集端是否收到(Linux 上用 nfcapd 或 tcpdump 验证)
sudo tcpdump -ni eth0 udp port 5000 -c 10
sudo nfcapd -w -D -l /var/nfcapd -p 5000 -S 1
nfdump -R /var/nfcapd/ | head

三步都通过才算配置完成。第一步有缓存但没有输出,通常是老化时间过长或采集地址不可达;有输出但采集端收不到,检查中间防火墙是否放行 UDP 5000,以及交换机到采集服务器的路由是否可达——NetStream 输出报文本身也要走转发面。

常见故障排查

现象 可能原因 处理
display ip netstream cache 无表项 接口未开启统计、ACL 全部拒绝、或流量确实很小 检查接口 ip netstream inbound 与 ACL 命中计数
有缓存但采集端无数据 目的地址不可达、UDP 端口被拦、老化时间过长 缩短 active 老化,tcpdump 抓输出报文
采集端收到报文但字段为空 版本 9 模板未刷新到采集端 配置 export template refresh-rate 并重启采集端
带宽数字比实际小很多 采样比未在采集端换算 采集端按 1:1024 放大,或改用 1:1 采样(注意设备负载)
设备 CPU 升高 统计表项过多、未采样、老化过短 配置采样器、降低 max-entry、放宽老化时间

与其它技术的分工

NetStream、端口镜像和 SNMP 流量统计解决不同问题:NetStream 给流量构成(谁访问谁、什么应用),端口镜像给完整报文(做深度分析或取证),SNMP 给接口级的字节计数(做容量趋势)。三者互补,具体差异可参考 sFlow/NetFlow/IPFIX 对比。需要抓取完整报文时,配置方法见 华为交换机端口镜像配置;如果网络里还有其他厂商设备,Cisco Flexible NetFlow 配置 可以做字段层面的对照。

上线与运维建议

  • 先在汇聚层选 1-2 台设备试点,确认采集链路和报表口径,再全区推开。
  • 把采样比、老化时间、输出版本记入网络文档,否则半年后没人能说清报表里的数字是怎么来的。
  • 采集服务器本身要有监控:NetStream 是 UDP 单向下发,服务器挂掉设备不会报警,只会静默丢弃统计报文。
  • 需要长期留存时,把采集数据按天切分并压缩存档;流量统计数据的体积增长远快于配置文件。
  • 在设备侧做好限速(export rate),避免采集端异常时影响转发面。

原文链接:https://support.huawei.com/enterprise/zh/doc/EDOC1100088098