Netflow/IPFIX 流量收集与分析

目录

Netflow 网络数据流检测协议

随着软件系统升级以及漏洞修补方案的成熟,直接入侵主机进行破坏的病毒攻击方式逐渐减少,继而转为恶意消耗有限的网络资源,造成网络阻塞,以此破坏系统对外提供服务的能力。针对此类攻击,业界提出了通过检测网络数据流(Flow)的方法来判断网络异常和攻击,借助实时的检测网络数据流信息,通过与历史记录模式匹配(判断是否正常)、或者与异常模式匹配(判断是否被攻击),让网络管理人员可以实时查看全网的状态,检测网络性能可能出现的瓶颈,并进行自动处理或告警显示,以保证网络高效、可靠地运转。

Netflow 技术最早于 1996 年由思科公司的 Darren Kerr 和 Barry Bruins 发明,并于同年 5 月注册为美国专利。Netflow 技术首先被用于网络设备对数据交换进行加速,并可实现对高速转发的 IP 数据流进行测量和统计。经过多年的技术演进,Netflow 原来用于数据交换加速的功能已经逐步由网络设备中的专用 ASIC 芯片替代,而对流经网络设备的 IP 数据流进行测量和统计的功能依旧保留着,并成为了当今互联网领域公认的最主要的 IP/MPLS 流量分析、统计和计费行业标准。Netflow 技术能对 IP/MPLS 网络的通信流量进行详细的行为模式分析和计量,并提供网络运行的详细统计数据。

Netflow 系统包括三个主要部分:探测器(Exporter),采集器(Collector),分析报告系统(Analysis)。

  • Exporter:用于监听网络数据
  • Collector:用于收集从 Exporter 输出的网络数据
  • Analysis:用于分析从 Collector 收集到的网络数据,并产生报告

在这里插入图片描述

经分析由 Netflow 收集到的信息,网络管理人员可以知道报文的来源、目的地、网络服务类型,以及造成网络拥塞的原因。也许它不能像 tcpdump 那样提供网络流量的完整记录,但是当汇集起来时,它更加易于管理和易读。

从路由器和交换机输出的 NetFlow 网络数据由过期的数据流及详细的流量统计数据组成。其中,这些数据流包含报文的来源和目的地相关的 IP 地址,以及端到端会话使用的 Protocol 和 Port;而流量统计数据包含了数据流时戳、源 IP 地址和目的 IP 地址、源端口号和目的端口号、输入接口号和输出接口号、下一跳 IP 地址、信息流中的总字节数、信息流中的数据包数量、信息流中的第一个和最后一个数据包时戳 源 AS 和目的 AS,及前置掩码、数据包序号等。

目前,最新的 Netflow V9 是一种全新的灵活且可扩展的 Netflow 数据输出格式,采用基于模板(Template)的统计数据输出。方便添加需要输出的数据域和支持多种新功能,如:Multicase Netflow、MPLS Aware Netflow、BGP Next Hop V9、Netflow for IPv6 等。

在 2003 年,Netflow V9 还被 IETF 组织从 5 个候选方案中确定为 IPFIX(IP Flow Information Export,IP 数据流信息输出)标准。

IPFIX

IPFIX(IP Flow Information Export,IP 数据流信息输出)是由 IETF 公布的用于网络中的流信息测量的标准协议。

Flowalyzer Netflow & sFlow Tool Set

在这里插入图片描述

goflow

  • CentOS7
  • Golang1.12.5

安装

go get github.com/cloudflare/goflow/cmd/goflow
cd ~/go/src/github.com/cloudflare/goflow/cmd/goflow
go install

检查

goflow -h

运行

goflow -kafka=false -nf -nf.addr 192.168.1.8 -nf.port 5678

结果

Type:IPFIX
TimeReceived:1584370187
SequenceNum:2823
SamplingRate:0
SamplerAddress:172.16.1.107
TimeFlowStart:0
TimeFlowEnd:0
Bytes:64
Packets:1
SrcAddr:1.1.1.16
DstAddr:1.1.1.19
Etype:2048 Proto:17
SrcPort:4242
DstPort:80
InIf:3
OutIf:5
SrcMac:00:00:00:00:00:00
DstMac:00:00:00:00:00:00
SrcVlan:0
DstVlan:0
VlanId:0
IngressVrfID:0
EgressVrfID:0
IPTos:1
ForwardingStatus:0
IPTTL:0
TCPFlags:0
IcmpType:0
IcmpCode:0
IPv6FlowLabel:0
FragmentId:0
FragmentOffset:0
BiFlowDirection:0
SrcAS:2
DstAS:3
NextHop:0.0.0.0
NextHopAS:0
SrcNet:32
DstNet:31
HasEncap:false
SrcAddrEncap:<nil>
DstAddrEncap:<nil>
ProtoEncap:0
EtypeEncap:0
IPTosEncap:0
IPTTLEncap:0
IPv6FlowLabelEncap:0
FragmentIdEncap:0 
FragmentOffsetEncap:0
HasMPLS:false
MPLSCount:0
MPLS1TTL:0
MPLS1Label:0
MPLS2TTL:0,
MPLS2Label: 0,
MPLS3TTL:0
MPLS3Label:0
MPLSLastTTL:0
MPLSLastLabel:0
HasPPP:false
PPPAddressControl:0

cflowd

发布了471 篇原创文章 · 获赞 1290 · 访问量 184万+

猜你喜欢

转载自blog.csdn.net/Jmilk/article/details/104911229
今日推荐