Traffic Flow

MikroTik Traffic-Flow 通过收集经过路由器的数据包的统计信息来提供网络监控和计费,支持 NetFlow 版本 1、5、9 以及 IPFIX,以实现灵活的流分析。它允许配置接口、缓存条目、超时、数据包采样以及用于流数据传输的目标主机。

Traffic Flow

MikroTik Traffic-Flow 是一个提供经过路由器数据包统计信息的系统。除了网络监控和计费之外,系统管理员还可以识别网络中可能出现的各种问题。借助 Traffic-Flow,可以分析和优化整体网络性能。由于 Traffic-Flow 与 Cisco NetFlow 兼容,因此可以与各种为 Cisco NetFlow 设计的实用工具一起使用。

Traffic Flow 只能处理由路由器 CPU 处理的流量,因此 HW offloaded 流量不会出现在 Traffic Flow 流中(例如,HW offloaded 的桥接流量)。

Traffic-Flow 支持以下 NetFlow 格式:

  • version 1 - 这是 NetFlow 使用的原始格式。它提供有关流经路由器的 IP 数据包的基本信息,但不支持诸如不同协议类型和 Type of Service (ToS) 等高级功能。
  • version 5 - 对 Version 1 的增强,此格式支持诸如 Type of Service (ToS)、TCP 标志和自治系统编号等附加功能。除 version 1 之外,version 5 还可以包含 BGP AS 和流序列号信息。目前,RouterOS 不包含 BGP AS 编号。
  • version 9 - 此版本引入了基于模板的导出格式,允许扩展并支持超出以前版本处理范围的新记录类型。它可以基于定义的模板导出数据,并且能够导出 IPv4 和 IPv6 流信息。
  • IPFIX - 由 IETF 标准化,此协议基于 NetFlow Version 9。它进一步扩展了能力,允许更可定制和灵活的流记录。IPFIX 支持 NetFlow 未涉及的新技术,如组播。

通用

Sub-menu: /ip/traffic-flow

本节列出 Traffic-Flow 的配置属性。

PropertyDescription
interfaces (string | all; Default: all)将使用这些接口的名称来收集 traffic-flow 的统计信息。要指定多个接口,请用逗号分隔。
cache-entries (128k | 16k | 1k | 256k | 2k | ... ; Default: 4k)可同时存在于路由器内存中的流数量。
active-flow-timeout (time; Default: 30m)流的最大生存时间。
inactive-flow-timeout (time; Default: 15s)如果流处于空闲状态,保持其活动的时间。如果连接在此超时内没有看到任何数据包,则 traffic-flow 将把数据包作为新流发送出去。如果此超时过小,可能会产生大量流并使缓冲区溢出。
packet-sampling (no | yes; Default: no)启用或禁用数据包采样功能。
sampling-interval (integer; Default: 0)连续采样的数据包数量。
sampling-space (integer; Default: 0)连续省略的数据包数量。

警告

info

数据包采样在 RouterOS v7 中可用。 在以下示例中:

/ip/traffic-flow/set packet-sampling=yes sampling-interval=2222 sampling-space=1111

将采样 2222 个连续数据包,然后省略 1111 个。然后采样周期以此方式重复。

目标

Sub-menu: /ip/traffic-flow/target

通过 Traffic-Flow target,我们指定将从路由器收集 Traffic-Flow 信息的主机。

PropertyDescription
src-address (IP ; Default: )发送 Traffic-Flow 统计信息时用作源的 IP 地址
dst-address (IP; Default: )从路由器接收 Traffic-Flow 统计数据包的主机的 IP 地址。
port (Port; Default:2055)从路由器接收 Traffic-Flow 统计数据包的主机的端口 (UDP)。
v9-template-refresh (integer; Default: 20)在多少数据包之后将模板发送到接收主机(仅适用于 NetFlow version 9 和 IPFIX)
v9-template-timeout (time; Default: )如果模板尚未发送,超过多长时间后发送。(仅适用于 NetFlow version 9 和 IPFIX)
version (1 | 5 | 9 | IPFIX; Default: )使用哪种 NetFlow 版本格式

IPFIX

Sub-menu: /ip/traffic-flow/ipfix

允许自定义流记录

PropertyDescription
bytes流中处理的字节总数。
ip-total-lengthIP 数据包的长度(字节)。
src-address流的源 IP 地址。
dst-address流的目的 IP 地址。
ipv6-flow-labelIPv6 头部中的 Label 字段,用于对流进行分类。
src-address-mask源地址的网络掩码,在汇总数据时很有用。
dst-address-mask目的地址的网络掩码。
is-multicast指示该流是否为组播流。
src-mac-address源 MAC 地址。
dst-mac-address目的 MAC 地址。
last-forwarded流中最后一个被转发数据包的时间戳。
src-port源端口号。
dst-port目的端口号。
nat-dst-address经 NAT 转换后的目的 IP 地址。
sys-init-time系统初始化时间,可用于时序分析。
first-forwarded流中第一个被转发数据包的时间戳。
nat-dst-port经 NAT 转换后的目的端口号。
tcp-ack-numTCP 连接中的确认号。
gateway流所经路由的网关 IP 地址。
nat-events与该流的网络地址转换相关的事件。
tcp-flagsTCP 头部中的标志(例如,SYN、ACK)。
icmp-code用于错误消息和操作信息的 ICMP 代码。
nat-src-address经 NAT 转换后的源 IP 地址。
icmp-typeICMP 消息的类型,对诊断消息很重要。
nat-src-port经 NAT 转换后的源端口号。
tcp-seq-numTCP 连接中的序列号。
tcp-window-sizeTCP 连接中的窗口大小,表示接收数据缓冲的规模。
igmp-typeInternet Group Management Protocol 操作的类型。
out-interface流的出站数据包所经过的接口。
in-interface流的入站数据包所经过的接口。
packets流中处理的数据包数量。
ip-header-lengthIP 头部的长度。
protocol协议编号(例如,TCP、UDP、ICMP)。
tosIP 头部中的 Type of Service 字段,指示数据包的优先级和处理方式。
ttl数据包的 Time To Live,由每个路由器递减以防止无限循环。
udp-lengthUDP 有效载荷的长度。

说明

通过查看 packet flow 图,您可以看到 traffic flow 位于 input、forward 和 output 链栈的末尾。这意味着 traffic flow 只会统计到达这些链之一的流量。

例如,您在交换机上设置了一个镜像端口,将镜像端口连接到路由器,并将 traffic flow 设置为统计镜像数据包。遗憾的是,这样的设置将无法工作,因为镜像数据包在到达 input 链之前就被丢弃了。

如果流量经过其他接口以及监控接口,这些接口也会出现在报告中。

示例

此示例展示如何在路由器上配置 Traffic-Flow

在路由器上启用 Traffic-Flow:

[admin@MikroTik] /ip/traffic-flow> set enabled=yes
[admin@MikroTik] /ip/traffic-flow> print
                enabled: yes
             interfaces: all
          cache-entries: 4k
    active-flow-timeout: 30m
  inactive-flow-timeout: 15s
[admin@MikroTik] /ip/traffic-flow>

指定将接收 Traffic-Flow 数据包的主机的 IP 地址和端口:

[admin@MikroTik] /ip/traffic-flow/target> add dst-address=192.168.0.2 port=2055 version=9
[admin@MikroTik] /ip/traffic-flow/target> print
Flags: X - disabled 
 #   SRC-ADDRESS       DST-ADDRESS        PORT     VERSION
 0   0.0.0.0           192.168.0.2        2055     9  
[admin@MikroTik] /ip/traffic-flow/target>

现在,路由器开始发送带有 Traffic-Flow 信息的数据包。

信息

要将 ntop-ng 与 MikroTik 一起使用,您需要使用 Nprobe,这是付费软件。

另请参阅

相关主题