分享

NetFlow 的应用例子

 beidouxingstar 2010-11-23

                                                        NetFlow 的应用例子

内容摘要:基于SNMP的网络系统只能监测设备端口的流量大小,在端口发生拥塞或出现P2P、病毒等异常流量时,基于SNMP的网管系统是没办法提供端口用户的IP地址和流量协议分布等情况的。这样对于持续拥塞的端口,网络管理人员要带协议分析工具到现场通过端口镜像等模式来读取端口的流量内容来解决问题,而端口间歇流量异常的问题就很难处理。

  现在很多单位都部署了基于SNMP的网管系统,通过SNMP网管系统实现了对网络设备的端口流量、设备的CPU、内存等指标的管理,但基于SNMP的网络系统只能监测设备端口的流量大小,在端口发生拥塞或出现P2P、病毒等异常流量时,基于SNMP的网管系统是没办法提供端口用户的IP地址和流量协议分布等情况的。这样对于持续拥塞的端口,网络管理人员要带协议分析工具到现场通过端口镜像等模式来读取端口的流量内容来解决问题,而端口间歇流量异常的问题就很难处理。

  为了解决SNMP网管的管理盲区,我们利用Netflow提供的网络流量的三层、四层信息,

  完成对网络流量含量的分析,与SNMP网管配合对网络流量实现全面监测。

  NetFlow 的监测应用例子1:分支的路由资源利用状态

  这篇文章是基于利用福禄克网络的NFT (NetFlow Tracker) 的功能和界面来实现的。您可以下载试用版,有效期到2009年6月。

  首先假设我们在这个简单的网络上,把分支的路由器启动了NetFlow,可以对互联网端口(红色)的流量进行长期的监测。NetFlow数据通过网络送到信息中心的NetFlow采集器上。

NetFlow 的应用例子

  长期监测的好处是可以提供"正常"时的状态,我们一般称为"基线"。我们可以看看在一周内,从分支发送到互联网的流量中,有多少是连接到信息中心的。通过一些NetFlow分析软件,可以提供NetFlow的统计报表:饼图、柱状图、图表等。

  我们关心的数据包括:

  带宽利用率?正常的最大、平均,出现异常时可以有基准依据分辨异常的类型。

  平常的应用分布,发报源列表,对话列表?这些都是越细越长越好。
 有多少分支的流量是与信息中心进行的?业务与可能非业务的资源占用比较

  信息中心的那些服务器利用率最多?对于规划资源和优化提供帮助

  非信息中心的应用为何?对于非业务流量进一步了解/控制

  如果出现大流量时,分辨出差异,找出流量由谁发出,到哪里?

  带宽利用率:

  有一点要留意,如果只依靠NetFlow来监测端口的利用率,是不准确的,因为NetFlow只能对IP流进行统计。所以最好以SNMP的数据为基础。但由于现今的流大部分为IP流,在广域网上便更少非IP流,在大部分情况下可以从NetFlow得到很好的数据。基于统计,可以生成基线,作为告警的依据。

NetFlow 的应用例子

  平常的应用分布,发报源列表,对话列表?这些都是越细越长越好。

  一般的NetFlow流数据都以1分钟为输出单位,所以NetFlow的统计粒度一般最少可以到1分钟。每个分析最好可以如下的应用报告:可以按端口利用率、字节率或包数量列出。

NetFlow 的应用例子

  有多少分支的流量是与信息中心(业务)进行的:

  在NetFlow数据中,所有的IP源和目标地址都会被记录。我们可把分支流量分成以数据中心IP地址为源或目标的流量和其他,分别列出便可。在一些NetFlow 分析软件,可以加入过滤条件实现这分析(在报告中,DataCenter代表以下子网范围)。

NetFlow 的应用例子

NetFlow 的应用例子

  非信息中心的应用、用户为何?

  与找出导向信息中心的流量多少相反,可以先用非信息中心的方法找出流量多少。对于比较高级的NetFlow分析软件,还可以进一步对这流量的内容分析

NetFlow 的应用例子

  然后对这些流量列出其应用或其他列表。从NFT,可以用(右鼠标键来选这)

NetFlow 的应用例子

  生成需要的应用报告

NetFlow 的应用例子

NetFlow 的应用例子

  信息中心的那些服务器利用度最多(用户/连接/字节)

  在某时段,按服务器照顾的对话数量排序,方便发现是否有对服务器进行端口扫描的情况。在NFT (NetFlow Tracker)有一报告(Destination Address Popularity)可以同时列出流量中各个目标地址的用户和连接数量。

NetFlow 的应用例子

  在这个例子,85.17.215.10这个站点对服务器进行多个对话,从NetFlow数据再深入分析,找到对话的协议端口,看得出是在做端口扫描:

NetFlow 的应用例子

  报告和告警:

  在大多数情况下,网管员都不希望盯着以上的报告,所以定期生成报告的能力和当异常状态出现时,最好能提供告警(通过SNMP Trap或EMAIL等方式)。告警的考虑主要是:需要基线和不要太敏感。除了手动输入基线外,可以利用学习的平均值加上偏离标准差来定义敏感度,然后定义偏离时间的长短,来决定告警。概念是如果偏离的时间持续比较长(15分钟)一般误判的机会比较低!

  NetFlow 的应用例子2:数据中心的路由资源利用状态

NetFlow 的应用例子

  对于分析一个信息中心需要支持多个分支时,管理员比较关心流量由何而来,是什么,利用了数据中心什么资源。这与分析一个分支与信息中心的报告相似(请参考NetFlow应用例子1),分别是:

  1.需要同时对多路流量进行汇总分析。由于现今信息中心多有备份线路或负载均衡线路,监测流量时必须可以把多个线路的流量进行汇总分析。

  2.如果配置了流量优先级别,各级别占用的带宽?优化优先级流量带宽分配

  3.需要了解各个分支发送到总部的流量占的比例。

  利用NetFlow了解流量来源出现的变化,首先对进口各个端口进行汇聚式利用率监测。如下图把进口的两个路由器的两个进口的流量汇聚。

NetFlow 的应用例子

  个优先级别占用的带宽

NetFlow 的应用例子

  各个分支发送到总部的流量占的比例

  当需要了解各分支的流量时,可以把分支按其子网进行定义,然后分支来列出流量分布。

NetFlow 的应用例子

NetFlow 的应用例子

  NetFlow 的应用例子3:发现异常流量

  当出现异常时,需要有好的手段发现异常流量的出现和发生的端口和原因。一般NetFlow的分析,都以"量"的分析和告警为主导、例如对每个分支的流量监测,各应用的流量,高级的可以对非正常业务量监测(例如分支与分支间的流量)。有一种新的分析方法叫内容报警。原理是对NetFlow的应用列表、对话列表、源和目标地址列表的头100名次进行监测,当头20出现新的的项目而不是从列表中的头100名中升级的,便会发出告警。这样可以发现应用(异常的)、数据源占用大量带宽时(发出DDOS,WORM等攻击)。在配置告警时,可以增加过滤参数:如所属的分支流量,分支对分支的流量,服务器处理的流量等。现在这种报警方式,在福禄克网络的NFT上已提供。

NetFlow 的应用例子

  例如对分支与分支间的流量分析:

  对于集中式网络结构,一般都不希望出现分支经过信息中心让后访问其他分支的流量。如果有,需要了解是什么,而且评估是否需要启用MPLS等技术来优化带宽资源的利用。通过过滤非以信息中心作为起点或终点的NetFlow流量,便可对这些流的量和应用的组成生成告警。
NetFlow 的应用例子4:找出路经改变

  在现今的网络中,特别是基于MPLS网络,都可以支持点对点的备份路经,以达到灾备和自动修复的功能。为了充分利用资源,高级路由技术如Cisco的PfR可以按性能选择路径。换句话说,路经可以充分利用(不会只作为灾备)。但这对网管员在诊断应用性能出现改变时,对网络路经的理解增加了不少困难。NetFlow可以用以跟踪每一个流的路径状态。

NetFlow 的应用例子

  要求:

  要做到这点,需要选用的NetFlow采集结构,可以对每一个流进行记录和保存,而且需要对所有路径上的端口都已启动了NetFlow。在NetFlow数据中`,所记载有流的输出路由端口。

  方法:

  把网络所有路由器路径上的数据都汇总分析。然后选择所关心的对话,列出其经过的路由器进和出端口。下图展示两个子网通信时,经过的路由设备,还有其端口。

NetFlow 的应用例子

  在这里,看到HQ_ROUTER_1和BRANCH_1_ROUTER_1路由器,承载192.168.51.0和192.168.53.0之间的流量,在4:23AM-6:23AM的两小时间,各路由器只有1对端口组合用以支持这两个分支的通信。如果在正常时,HQ_Router_1用的端口不是这个的话,应该可以进一步分析。例如是什么对话利用了这端口呢?应该可以轻易抽取出这样的报告。

NetFlow 的应用例子

  NetFlow 的应用例子5:监测异常流量源的特性
 NetFlow 数据是通过从三层设备所搜集到的。通过适当地分析NetFlow 信息,可以协助管理者在蠕虫爆发或不正常网络行为的初期快速分析出网络中存在的问题。

  可能的异常流量

  1.互联网地址指派机构(Internet Assigned Numbers Authority , IANA)将下列三段IP 地址保留给私有网络使用10.0.0.0~10.255.255.255、172.16.0.0~172.31.255.255 及192.168.0.0~192.168.255.255。攻击者可利用这个缺陷伪造来源IP 地址(IP Spoofing )来发动攻击,避免被追踪到攻击来源,所以我们可以从我们所接受到NetFlow 数据中来源主机所使用的IP 地址(Source IP Address)字段,找出伪造来源地址的流量,再利用NetFlow数据中信息流流入接口编号(Input IFindex)字段的信息,找出连接这个接口的上游路由器,请他们协助调查或处理。

NetFlow 的应用例子

  2.我们可以通过NetFlow 数据找出网络中建立session 数目最多的主机,因为如果一台主机对特定主机产生不正常的大量连接,这可能代表着新的蠕虫、阻断服务攻击、网络扫描等的可能性,因为一个正常的主机对外连接会有一定正常的频率,如果正常的主机感染了蠕虫,就可能会开始产生异常的网络行为,开始产生对外大量的连接需求来找寻下一个感染的对象,因此我们可以从感染蠕虫的主机的NetFlow 信息中发现到大量的对外连接需求,同样的原理,如果所管辖网络中的使用者从网络上下载阻断服务攻击之工具程序企图对外发动攻击时,或是使用者利用Nmap 之类的扫瞄工具扫瞄特定网址,以找出目标主机所可能存在弱点或是漏洞时,我们都可以从NetFlow 数据中发现从网域中某个特定地址送出的大量session。

NetFlow 的应用例子

  3.若某个Flow 正常地建立TCP 连接后,其数据包控制(TCP Flag) 字段会记录的包含ACK、SYN、FIN 等控制标志,但是如果蠕虫进行感染的动作时,由于随机选取的主机并不一定存在,或是即使存在但目标主机没有开放蠕虫所要感染的TCP port,在这种情况下,NetFlow 信息中由受感染主机对外联机所产生的Flow 数据包控制标志(TCP Flag) 字段会只存在SYN 这个TCP 控制标志,根据这种特性网络管理者可以先将其NetFlow 数据中数据包控制标志(TCP Flag)字段只有存在SYN 控制标志的Flow 数据过滤出来,通过这种方式我们可以把大部分正常的流量排除,这时候我们要从可疑的数据中找出真正异常流量的难度就会降低许多,能快速找出问题,也可以避免运算资源无谓的浪费。

NetFlow 的应用例子

  NetFlow 的应用例子6:找出丢包的位置

  背景:

  在一个关键的应用中,需要能保证UDP的数据传递。其中在两端的路由器相隔5-6公里,每端有20-30台工作站进行通信。在每次通信的1、2分钟的过程中,需要保证不出现丢包。 在调试时,如果出现丢包,需要知道丢包出处,加以修正。

NetFlow 的应用例子

  方法:

  1.打开两端的路由交换机个端口的NetFlow功能,向NetFlow采集器发送数据。

  2.NetFlow采集器需要对所有的NetFlow数据保存。
3.对于途中每一层(1-4)的端口的进、出流量汇聚在一起。

  4.把在每一次调试时的整个过程,在各层的流量记录起来。

  5.通过对话列表,把两端站点的所有对话列出(如下图)

NetFlow 的应用例子

  6.利用CSV格式输出数据,按源和目标地址来排序

  7.把四层的数据(包和字节数)按行来对比 (通过对减,发现不是0的行)。至此,便可知道问题出于那层。

  8.把出现问题的对话记录,当发现出问题的对话后,可以查出经过的端口

NetFlow 的应用例子

  9.如果用NFT (NetFlow Tracker),更可以对每层就这对话列出作进行过的交易,对每层进行比较,找出出问题交易的时间(利用查出对话的方式来查找)。这样,按照对话的顺序,应用部门甚至知道是在哪个环节出现问题。

NetFlow 的应用例子

  NetFlow 的应用例子7:分析ICMP数据

  某些蠕虫或网络攻击也会利用ICMP 来进行,我们可以从NetFlow数据中过滤出有异常行为的主机。

  概念:

  首先找出通讯协议(protocol) 字段值为1 的Flow,代表所使用的通讯协议为ICMP,再根据目的主机之端口号(destination TCP/UDP port)字段值分析出所代表的ICMP 讯息,例如目的主机之端口号(destination TCP/UDP port)字段值为2048,转化成八进位为800,第一位代表位数字代表的是ICMP 的类型,后两码为这个ICMP 类型中的编码,整体的意思是ICMP echo 请求;但如果字段值为769,转化为八进位则为301,这个编码代表的是ICMP host unreachable;如果字段值是771则代表ICMP port unreachable;字段值是768 则代表ICMP network unreachable。我们可以先找出所使用通讯协议为ICMP 的Flow,进一步过滤出其中目的主机所使用端口号为768、769、771 的Flow,再进一步分析找出可能的异常行为。通过这种方式从大量NetFlow 数据中过滤出可疑名单,再对名单内的Flow 数据进行进一步的分析,这样可以帮助网络管理者快速找出问题所在。

 

NetFlow 的应用例子

  NetFlow 的应用例子8:流的辩证

  NetFlow可以用以记录每一个用户/IP站点的行为。在高级的NetFlow采集系统,如福禄克网络的NFT (NetFlow Tracker), 他能长期记录所有的NetFlow和其所有的数据,包括最新的IPFIX/Cisco NetFlow V9。这不同于大部分NetFlow软件只保留一部分而且只是TOP N的数据。

  要求:

  对每一个用户的流长期保存所有的NetFlow数据,包括:

  流的开始、终止时间

  应用

  记录的设备和流贯穿得端口

  流的TCP Flag的标识

  流量:包、字节数

  TOS/Diffserv

  AS / BGP next hop

NetFlow 的应用例子

  功用:

  当发现可疑流,例如一个用户得Session或数据数量异常过多,可以对这用户在出现异常时有关的流罗列出,审查其行为:能发现SYN攻击,端口扫描,海量下载, ICMP攻击。。。和其行为经过的端口路径。

  计算用户的VoIP对话流的时间(通过对流得VoIP RTP源端口的过滤)

  用户和服务器请求服务时,TCP连接得成功率。(通过审查流的TCP标识,是否有SYN+RST, 或只有SYN等状态。 像福禄克网络的NFT可以过滤TCP标识,更方便查找这些状态)

  服务器在某时间段的流有多少还没有终结。(没有FIN的流的统计).

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多