最近公司更换了新的交换机,乘着这个时候,顺便把Internet流量分析给做了。
之前的流量分析是很古老的mtrg,基本无法自定义,而且通过一台物理机去抓包,没有虚拟化着实浪费。
通过一阵research,cisco的网络设备都支持netflow,来分级和诊断网络流量。netflow协议是cisco提出的,直接将流量结果发送给收集设备,省去了抓包的环节。 这样不需要占用额外的物理网卡,而且cpu的开销也会降低很多。
确定了方向,那么开始在互联网上寻找开源netflow分析方案。做得比较好的是ntopng和fastnetmon。
这两个开源方案都有免费社区版和付费版,都有尝试搭建。
ntopng自带web界面,功能非常多,但我们目前只需要做流量top的功能,ntopng的功能太复杂,而且流量分析结果需要付费版才用得好。
fastnetmon的免费版连web界面都有没,但是支持graphite和grafana,虽然功能简陋,但系统开销也少,而且相关的资源也比较多,可自定义的设定比较多。
接下来就是开始搭建环境和网络配置
目标是分析Internet流量的使用状况,可以直接在router上做net flow,也可以在core switch上对连接router的port做,这里选择在switch上将连接router的port上做net flow
根据cisco的netflow v9说明,需要配置flow record、flow exporter和flow monitor。
首先新建flow record。
en
config terminal
创建input方向的record
flow record ct50m-record-input
Description Internet Netflow Input Record
match datalink vlan input
match datalink mac source address input
match datalink mac destination address input
match ipv4 tos
match ipv4 ttl
match ipv4 protocol
match ipv4 source address
match ipv4 destination address
match transport source-port
match transport destination-port
match interface input
match flow direction
match flow cts source group-tag
match flow cts destination group-tag
collect transport tcp flags
collect interface input
collect counter bytes long
collect counter packets long
collect timestamp absolute first
collect timestamp absolute last
创建output方向的record
flow record ct50m-record-output
Description Internet Netflow Output Record
match datalink mac destination address output
match ipv4 tos
match ipv4 ttl
match ipv4 protocol
match ipv4 source address
match ipv4 destination address
match transport source-port
match transport destination-port
match interface output
match flow direction
match flow cts source group-tag
match flow cts destination group-tag
match datalink vlan output
collect transport tcp flags
collect interface output
collect counter bytes long
collect counter packets long
collect timestamp absolute first
collect timestamp absolute last
然后创建flow exporter,这里填写分析net flow服务的ip和端口,以及vlan。
flow exporter ct50m-exporter
destination xx.xx.xx.xx
transport udp 2055
source vlan x
接下来创建flow monitor,每个monitor只能对应一个flow record,需要创建两个flow monitor。
flow monitor ct50m-monitor-input
flow record ct50m-record-input
flow exporter ct50m-exporter
创建第二个flow monitor
flow monitor ct50m-monitor-output
flow record ct50m-record-output
flow exporter ct50m-exporter
这样record、exporter和monitor都创建完后,在需要监控的端口套用monitor
interface g x/0/x
flow monitor ct50m-monitor-input
flow monitor ct50m-monitor-output
至此,交换机上的配置完成,开始搭建fastnetmon的环境。
先起一台虚拟机,安装fastnetmon的说明,最少4cpu、8G内存和50G硬盘空间,并分配网络地址。
这里使用ubuntu 20.04 lts。
安装完后配置国内repo地址
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo nano /etc/apt/sources.list
#网易源
deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
评论
发表评论