[Linux]Linux下yaf发送IPV4和IPV6的IPfix
一、IPFIX与NetFlow
一、IPFIX
全称IP Flow Information Export,即IP流信息输出,是网络流量监测的国际标准。IPFIX是IETF的一个工作组,它的主要工作就是制订用于IP网络中的流信息测量标准协议,称为IPFIX协议。因IETF在因特网行业的权威性,IPFIX制订的一系列RFC形式的标准,是专业网络流量监测产品及其企业,都应参考的重要文献。官方网站:http://datatracker.ietf.org/wg/ipfix/
二、流
一般定义:流是一系列通过网络中某一观察点的具有相同属性的数据包。属性包括端点、方向、时间粒度、协议层次;端点指的是流的起点和终点;方向可以是单向或双向;时间粒度指数据包的发送起始时间和终止时间;协议层次包括网络各层协议。流记录:一条记录,包含了一个流的有用信息。
IPFIX对流的定义:在一定时间间隔内,经过观察点的一系列IP包。属于同一个流的IP包具有以下一些共同属性:
1. 某些IP层头字段(例如目的IP地址)、传输层头字段(例如目的端口)、或应用层头字段(例如RTP头字段);
2. 包自身的某些特征(例如MPLS标签号);
3. 跟路由器对包处理方式相关字段(例如下一跳IP地址、输出接口)。
Netflow的流定义:流是在两个终端间数据包的单向序列。 Netflow通过以下7个字段定义一个流:源IP地址、目的IP地址、源端口号、目的端口号、传输协议类型、IP Type of Service(即TOS ,DSCP)、输入接口 (ifIndex)。DSCP(Differentiated Services Code Point):区分服务代码点,它定义不同级别的服务,是“优先位”和“服务类型”字段的组合。
每当路由器/交换机收到一个数据包,都会扫描流的字段来判断数据包是否属于一个存在的流。若流已经存在,进行字节和包的累加操作;若流不存在,缓存中生成一个新的流,初始化字节和包数;若判断流已经结束,那么以相应的格式上报流记录。
流的开始时间容易判断,即新流第一个包的时间。如何判断流的结束时间则比较困难。NetFlow流结束时间判断方式:①传输协议出现连接结束标志(TCP FIN or RST );②无流量超过15秒 (用于UDP协议,或TCP双方掉线情况);③流缓存每30分钟过期,对于长期存在的活动流,周期性输出流记录,保证及时输出流信息(15秒 /30分钟是路由器缺省的定时时间);④缓存满了。
得到流记录后,进行分类和汇聚,压缩数据量。
三、NetFlow
Netflow 技术于1996年由思科公司发明,于同年5月注册为美国专利。NetFlow首先用于网络设备对数据交换进行加速,并同步实现对高速转发的IP数据流进行测量和统计。经过多年的技术演进,NetFlow原来用于数据交换加速的功能已经逐步由网络设备中的专用ASIC 芯片实现,而对IP数据流进行测量和统计的功能也已更加成熟,形成了一种专用流交换技术。NetFlow已集成到大多数厂商的路由器和交换机内成为流量监测的事实标准,广泛应用于网络管理。配置方便,安装简单,不需要增加额外设备。
但是NetFlow依然有它的劣势。NetFlow消耗路由器的CPU和存储资源,对设备的转发性能有影响。流记录的数据量仍然很大,非独立设备,处理能力不足。因此,一般采用100~1000:1采样比,监测粒度较粗,损失流量
的细节信息。设备本身提供的数据内容有局限性,策略和定制能力相对较差。NetFlow功能集成在设备内,软件实现性能差、硬件实现灵活性差,对于大量已部署运行的路由器升级板卡费用高。NetFlow业务和应用识别主要依赖于TCP/UDP端口号,无法识别日新月异的业务。
二、CentOS 6.9安装yaf发送IPfix
1.安装必须的依赖
>yum install -y glib2-devel libpcap-devel zlib-devel
2.源码安装libfixbuf-1.7.1.tar.gz
下载地址: http://tools.netsa.cert.org/fixbuf/download.html
>tar -zxvf libfixbuf-1.7.1.tar.gz
>cd libfixbuf-1.7.1
>./configure && make && make install
3.源码安装yaf
yaf下载地址: http://tools.netsa.cert.org/yaf/download.html
这里使用的是2.8.4版本
>tar -zxvf yaf-2.8.4.tar.gz
>cd yaf-2.8.4
>./configure && make && make install
4.验证yaf是否安装成功
[root@test~]# yaf //表示安装成功
Command-line argument error:
Refusing to read from terminal on stdin
Use --help for usage.
三、yaf发送IPV4,IPV6的IPFIX
查看本机的IP可以发现,本机有IPV4和IPV6的地址,因此可以向IPV4和IPV6对应的网段发送IPFIX流
- 发送IPV4 IPFXI
#yaf --live=pcap --in=eth0 --out=10.30.30.217 --ipfix-port 2055 --ipfix=udp
命令解释:通过本机的eth0端口 向10.30.30.217的2055端口发送基于UDP的IPFIX流
- 发送IPV6 IPFIX
#yaf --live=pcap --in=eth0 --out=2002:ac14:1414:0:250:56ff:fea2:12a7 --ipfix-port 2055 --ipfix=udp --force-ip6-export
命令解释:通过本机的eth0端口向2002:ac14:1414:0:250:56ff:fea2:12a7的2055端口发送IPV6的IPFIX流
查看发送远程机器(--out=IP)解析的IPFIX-FLOW
[Linux]Linux下yaf发送IPV4和IPV6的IPfix的更多相关文章
- Linux系统下UDP发送和接收广播消息小例子
// 发送端 #include <iostream> #include <stdio.h> #include <sys/socket.h> #include < ...
- ubuntu(Linux) c++ 获取本机IPv4和ipv6、查询本机IPv4,IPv6
1.关于 演示环境: Linux xxxxxxx 5.4.0-47-generic #51-Ubuntu SMP Fri Sep 4 19:50:52 UTC 2020 x86_64 x86_64 x ...
- [记]WIndow/Linux 获取本机(全部)IPv4、IPv6、MAC地址方法 (C/C++)
Linux 获取本机IP.MAC地址用法大全 //#include <sys/types.h> #include <ifaddrs.h> #include <sys/io ...
- Linux系统下UDP发送和接收广播消息小样例
[cpp] view plaincopy // 发送端 #include <iostream> #include <stdio.h> #include <sys/sock ...
- [Linux]Linux下开启snmp支持IPV4和IPV6
SNMP简介 简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol).数据库模型(database schema)和一组资源 ...
- 从内核3.7版本开始,Linux就开始支持VXLAN 到了内核3.12版本,Linux对VXLAN的支持已经完备,支持单播和组播,IPv4和IPv6。
一.关于VXLAN VXLAN 是 Virtual eXtensible LANs 的缩写,它是对 VLAN 的一个扩展,是非常新的一个 tunnel 技术,在Open vSwitch中应用也非常多. ...
- linux系统下邮件的发送
在linux系统下发送邮件一般都要要求本地的机器必须安装和启动Sendmail服务,配置非常麻烦,而且会带来不必要的资源占用. 其实我还可以安装mailx软件,通过修改配置文件可以使用外部SMTP服务 ...
- PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)
源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...
- 由一个简单需求到Linux环境下的syslog、unix domain socket
本文记录了因为一个简单的日志需求,继而对linux环境下syslog.rsyslog.unix domain socket的学习.本文关注使用层面,并不涉及rsyslog的实现原理,感兴趣的读者可以参 ...
随机推荐
- Eclipse安装lombok
下载lombok 下载地址:https://projectlombok.org/downloads/lombok.jar 或者访问官网下载 https://projectlombok.org/ 安装 ...
- 自定义广播(BroadcastReceiver)事件 --Android开发
本例演示自定义广播事件.我们需要做的是,在主活动中写发送广播的代码,然后在接收广播的类中写接收广播的代码. 1.主活动中点击按钮后发送广播 MainActivity.java: public clas ...
- hdu-2709整数划分 技巧
整数划分变形,由2^k组成. 整数划分中一个节约内存的技巧,平时我们使用dp[i][j]维护用不大于j的数组合成i的方案数,所以必须dp[i-j][j]->dp[i][j].这样就需要二位,如果 ...
- SpringMVC,Controller的返回页面类型以及路径设置默认值
一般设置在spring-servlet.xml里面设置 <!-- 对转向页面的路径解析.prefix:前缀, suffix:后缀 --> <bean class="org. ...
- 移动端页面利用好viewport,适配各种宽度屏幕
最近研究微贷网的移动端代码,发现他们网站在适配不同宽度屏幕的显示情况时,发现他们并不是利用rem单位,而是利用js动态设置mete的viewport来达到适配的效果. 感觉挺不错的,也不需要计算什么东 ...
- ATOM常用插件推荐
转载:http://blog.csdn.net/qq_30100043/article/details/53558381 ATOM常用插件推荐 simplified-chinese-menu ATOM ...
- Leetcode 870. 优势洗牌
870. 优势洗牌 显示英文描述 我的提交返回竞赛 用户通过次数49 用户尝试次数92 通过次数49 提交次数192 题目难度Medium 给定两个大小相等的数组 A 和 B,A 相对于 B 的 ...
- logstash快速入门
转自 http://blog.csdn.net/wp500/article/details/41040213 原文地址:http://logstash.net/docs/1.4.2/tutorials ...
- PostgreSQL CPU占用100%性能分析及慢sql优化
查看连接数变化 CPU利用率到达100%,首先怀疑,是不是业务高峰活跃连接陡增,而数据库预留的资源不足造成的结果.我们需要查看下,问题发生时,活跃的连接数是否比平时多很多.对于RDS for PG,数 ...
- python dpkt 解析 pcap 文件
dpkt Tutorial #2: Parsing a PCAP File 原文链接:https://jon.oberheide.org/blog/2008/10/15/dpkt-tutorial-2 ...