NetFlow学习笔记

标签: netflow


由于工作需要,对NetFlow做了一些学习和调研,并总结成文档以供学习分享。


背景:随着系统的升级与漏洞的修补,入侵主机进而进行破坏的病毒攻击方式在攻击中所占比例逐渐减少,这些攻击转而改为恶意的消耗网络有限的资源或占用系统,进而破坏系统对外提供服务的能力;但传统的系统升级无法检测并预防此类攻击。

针对此类攻击,业界提出了以检测网络数据流的方法来判断网络异常和攻击:借助实时的检测网络数据流信息,通过与历史记录模式匹配(判断是否正常)、或者与异常模式匹配(判断是否被攻击),让网络管理人员可以实时查看全网的状态,检测网络性能可能出现的瓶颈,并进行自动处理或告警显示,以保证网络高效、可靠地运转。

1、什么是NetFlow

NetFlow是由Cisco创造的一种流量轮廓监控技术,简单来说就是一种数据交换方式。Netflow提供网络流量的会话级视图,记录下每个TCP/IP事务的信息,易于管理和易读。

2、NetFlow版本

  1. Netflow V1:为Netflow技术的第一个实用版本。在如今的实际网络环境中已经不建议使用。
  2. Netflow V5:增加了对数据流BGP AS信息的支持。
  3. Netflow V7:思科Catalyst交换机设备支持的一个Netflow版本,需要利用交换机的MLS或CEF处理引擎。
  4. Netflow V8:增加了网络设备对Netflow统计数据进行自动汇聚的功能,可以大大降低对数据输出的带宽需求。
  5. Netflow V9:一种全新的灵活和可扩展的Netflow数据输出格式,采用了基于模板(Template)的统计数据输出。方便添加需要输出的数据域和支持多种Netflow新功能,如Multicast Netflow,MPLS Aware Netflow,BGP Next Hop V9,Netflow for IPv6等。

3、NetFlow用途

利用Netflow技术可以监测网络上的IP Flow信息

IP Flow信息,可以回答用户的下面问题(5W1H):

  • who:源IP地址
  • when:开始时间、结束时间
  • where:从哪:From(源IP,源端口)、到哪:To(目的IP,目的端口)
  • what:协议类型,目标IP,目标端口
  • how:流量大小,流量包数
  • why:基线,阈值,特征

采集到的netflow流量信息可以帮助进行:

  • 网络行为分析
  • 业务访问情况分析
  • 网络规划
  • 流量计费
  • 病毒检测
  • 等等

4、NetFlow工作原理

首先先创建一个缓冲流NetFlow cache

NetFlow利用标准的交换模式处理数据流的第一个IP包数据,生成NetFlow 缓存

随后进行两大职能:

  1. 同样的流,直接从缓存读,不走路由表
  2. 缓存同时也进行了统计

5、NetFlow七元组

NetFlow使用七元组来区分每一个Flow,包括以下字段:

  • 源IP地址
  • 源端口号
  • 目的IP地址
  • 目的端口号
  • 协议类
  • 服务种类
  • 输入接口

七元组的实际含义:

  • 如果两段流量,其七元组都相同,就认为是一个流。
  • 如果两段流量,其七元组至少有一个不同,就是不同的流

6、NetFlow数据格式

一个NetFlow流定义为在一个源IP地址和目的IP地址间传输的单向数据包流,且所有数据包具有共同的传输层源、目的端口号。

基于NFC采集的网络流量数据如下:

61...68|61...195|64917|Others|9|13|4528|

数据中各字段的含义如下:

源地址|目的地址|源自治域|目的自治域|流入接口号|流出接口号|源端口|目的端口|协议类型|包数量|字节数|流数量

7、NetFlow优点

  1. NetFlow采集实施成本较低、安装方便。
  2. NetFlow的非常适用于大型网络。
  3. NetFlow记录的流包含了丰富的信息,非常适合于网络性能分析。

NetFlow学习笔记的更多相关文章

  1. docker容器的学习笔记

    目录 Docker入门学习笔记(一) 1. 什么是Docker? 2. Docke的目标 3. Docker通常应用场景 4. Docker的基本组成 补:Docker容器相关技术简介 安装Docke ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  4. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  5. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  6. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  7. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  8. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  9. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

随机推荐

  1. 索引节点inode详解

    Inode(index node),索引节点.Linux系统中,分区要进行格式化,创建文件系统.在每个Linux存储设备或存储设备的分区(可以是硬盘,软盘,U盘等)被格式化为ext3文件系统后,一般分 ...

  2. WiFi网络WPA2 KRACK漏洞分析报告

    作者:东帆@阿里安全技术平台团队 --------   0x00 漏洞概述 安全研究员Mathy Vanhoef发现的WPA2协议的KRA(Key Reinstallation Attacks)漏洞, ...

  3. canvas图表详解系列(3):动态饼状图(原生Js仿echarts饼状图)

    本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...

  4. windows server git

    我有一个阿里云,windows server,我想把代码放阿里云 我去做git,只需要安装copssh 下载git https://git-for-windows.github.io/ 下载Copss ...

  5. redis数据类型和应用场景

    Redis是什么?两句话可以做下概括: 1. 是一个完全开源免费的key-value内存数据库 2. 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings.map. list ...

  6. LINUX 笔记-文件隐藏属性

    chmod u+s xxx 设置setuid(4775) chmod g+s xxx 设置gid(2775) chmod o+t xxx 设置stick bit,针对目录(1775)

  7. ClassLoader 工作机制

    ClassLoader 采用上级委托接待机制加载 class JVM 平台提供三层 ClassLoader 1.Bootstrap ClassLoader:主要加载 JVM 自身工作需要的类 2.Ex ...

  8. 理解vue中的scope的使用

    理解vue中的scope的使用 我们都知道vue slot插槽可以传递任何属性或html元素,但是在调用组件的页面中我们可以使用 template scope="props"来获取 ...

  9. LeetCode 448. Find All Numbers Disappeared in an Array (在数组中找到没有出现的数字)

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  10. 【Vue】利用父子组件间通信实现一个场景

    组件间通信是组件开发的,我们既希望组件的独立性,数据能互不干扰,又不可避免组件间会有联系和交互. 在vue中,父子组件的关系可以总结为props down,events up: 在vue2.0中废弃了 ...