NetFlow的工作原理和配置介绍
拓扑图
NetFlow监控涉及到的设备:
被监控的交换机(也可能是镜像服务器)和收集器(监控软件所在的设备)
工作原理:
NetFlow使用流(flow)来完成统计数据、网络监控,甚至网络规划。流有方向这个属性,在一个接口或者一个vlan下,某一方向上具有相同参数的数据包组成了流(flow)。上边这句话是cisco文档中翻译过来的,如果你没看懂,你可以简单理解为具有相同五元组(相同的源地址,目的地址,源端口,目的端口,协议)的数据包可以称之为一个流(flow)。
被监控的交换机,将端口进出方向的数据包进行分析,把相关信息(源地址,目的地址,源端口,目的端口,协议,包大小等信息)放进NetFlow包中,发到收集器(netflow collector)中,这个处理过程将消耗被监控设备的cpu和内存。收集器(监控软件,都是第三方的)将数据进行整理,呈现报表。
v5只支持ipv4
v9支持ipv4和ipv6
配置命令示例(netflow v5,设备:asr1001x):
flow exporter HK-testdestination 10.136.76.117source Loopback1transport udp 9998export-protocol netflow-v5
输出器主要用于配置输出参数,有地址和端口,输出源地址和版本,目标地址是收集器的ip,端口取决于收集器的监听端口,源端口是发送端口,抓包时候会看见源地址是loopback1的ip。
flow monitor HK-test-monitorexporter HK-testcache type immediaterecord netflow-original
监控器:将流记录和输出器绑定,这里流记录使用默认netflow-original配置,因为v5不能自定义模板,cache使用immediate的效果是立即将解析好的数据包发送到监控服务器,而不进行聚合汇总。
sampler test-1mode deterministic 1 out-of 2
采样比:按一比二比例,将所有的流量全部抓下来
interface GigabitEthernet0/0/4ip flow monitor try sampler test-1 inputip flow monitor try sampler test-1 output
配置到接口下
配置命令示例(netflow v9,设备:asr1001x):
flow record trydescription testmatch ipv4 source addressmatch ipv4 destination addressmatch ipv4 protocolmatch transport sourceportmatch transport destinationportcollect counter bytescollect counter packets longcollect timestamp sysuptime firstcollect timestamp sysuptime lastflow exporter try_exporterdescription test_exdestination 10.136.76.117source Loopback1transport udp 9999template data timeout 30flow monitor trydescription testexporter try_exportercache type immediaterecord trysampler test1mode deterministic 1 outof 2interface GigabitEthernet0/0/4ip flow monitor try sampler test1 inputip flow monitor try sampler test1 output
与v5不同的是多添加了流记录的配置,并且调用了try这个流记录。
配置命令示例(netflow v9,设备:nexus 5k):
链接:cisco-N6k-netflow-原版
提取码:pa8i
flow exporter extestdestination 10.136.17.146transport udp 9996source Vlan40version 9
输出器主要用于配置输出参数,有地址和端口,输出源地址和版本,目标地址是收集器的ip,端口取决于收集器的监听端口,源端口是发送端口,抓包时候会看见源地址是int vlan 40的ip。
flow record rdtestmatch ipv4 source addressmatch ipv4 destination addressmatch ip protocolmatch ip tosmatch transport source-portmatch transport destination-portcollect counter bytes longcollect counter packets longcollect timestamp sys-uptime firstcollect timestamp sys-uptime lastcollect ip version
流记录:收集相关信息,用于监控数据流量
sampler sltestmode 1 out-of 128
采样比:每128个包,选取一个包
sampler fullmode 1 out-of 1
采样比:一比一,将所有的流量全部抓下来
flow monitor mttestrecord rdtestexporter extest
监控器:将流记录和输出器绑定
int vlan 40ip flow monitor mttest input sampler full
将监控器和一比一的采样比应用在接口,经测试,发现只能配置input方向的netflow监控,无法配置output方向。
V5数据包样式
默认wireshark是无法解析netflow数据包的,需要将对应端口解析成cflow格式。比如,我是用的是9999这个端口,需要:选中一个数据包->右键->解码为->添加下图内容,然后才能解析。
v9数据包样式
会出现两类包,一类叫模板包(定义收集的参数,因为version9是自定义收集方式,根据配置收集参数),一类叫数据包(根据模板产生的数据参数的包,收集器需要先获得模板包才能识别数据包内容)