天天看点

网络流量监测与管理

一、        简介

过去几年来,因特网已经成为越来越重要的需求,在台大校园网络的环境里,已经普及到所有系所及实验室都有接点可以连上因特网。不过面对日益复杂的网络联机及逐渐增加的网络流量,系统管理者必须花费更多时间精力来了解这些网络设备的运作状况,以维持一个系统的正常运作。

一般来说,网络管理者所需要了解的是各个网段的使用情形,频宽的使用率,网络问题的瓶颈发生于何处。当网络问题发生时,必须能够很快地区隔出问题的发生原因,可能是线路问题、网络设备问题、或者是路由器的设定问题。一个有经验的管理者要回答这些问题并不难,但是如果所管理的网络范围过于庞大,那么就可能需要一个有效率的网管系统了。透过网管系统可以协助网络架构管理,并显示网络上目前发生的各种流量与运作情形。若发生问题时,也能够减少许多处理时间。

以牵涉的节点数量以及能够在节点上执行的协议组合而言,网络都是一个复杂的系统。即使将范围局限在单一行政范围内,例如校园,还是可能包含数十个路由器及数百、甚至数千台主机。如果考虑在任一节点上保存及处理的所有状态,例如地址转译表、路由表、TCP连接状态等,那么很容易就陷入充满各种数据的茫茫大海中。

我们很容易了解为何需要知道哪些放置在不同节点上各协议的状态。举例来说,我们可能想要监控被中断的IP数据段重组数量,以便判断资源回收部分重组数据段的逾时机制是否需要调整。再举另一个例子,我们可能想要观测各节点上的负载(亦即,传送或接收的封包数),以便判断是否需要为网络增加新的路由器或连结。除此之外,我们也必须注意硬件发生故障及软件失误的征兆。

二、网络基础

(一)OSI参考模型

¨           实体层(Physical Layer):实体层定义的是位传输接口所具备的电子特性、机械特性、功能、以及运作程序。本层包括传输媒介(如同轴缆线、光纤、铜缆线、无线电波等等)、实体连接方式、模块化与框架技术(IEEE802.3    、FDDI等)。所以只要提及串行埠、10BASET缆线、网络适配卡等,指的就是实体层。

¨           数据链路层(Data Link Layer):确保底层的数据传送。服务包含错误侦测与更正、数据加框(如LLC、HDLC、SDLC、IEEE802.2)、MAC同步化。

¨           网络层(Network Layer):网络层提供寻址、选择路径、传送封包至目的网络,如IP、PPP、IPX等。

¨           传输层:提供错误侦测与更正,也能以软件进行网络流量控制。例如TCP/UDP。SNMP使用UDP协议。

¨           会谈层(Session Layer):应用程序与网络之间会谈的建立与管理。

¨           表达层(Presentation Layer):表达层实作数据与通讯协议的转换及协商,如ASN.1与BER数据编码。

¨           应用层(Application Layer):由软件应用程序实作,应用程序与网络本身的唯一接触接口。如FTP、Telnet、SNMP等。

应用层 Management, Agent APIs
SNMP
表达层 ASN.1, BER
会谈层 RCP, NetBIOS
传输层 TCP, UDP
网络层 IP, IPX
数据链路层

Ethernet, ARCNet

Token Ring

实体层

(二)SNMP介绍

1. SNMP概述

「简单网络管理协议」(SimpleNetwork Management Protocol, SNMP)顾名思义就是专为网络管理者所设计的网络管理协议,主要目的是用来管理网络上各式各样的设备。

由于SNMP是在TCP/IP网络环境中发展出来的管理通讯协议,因此SNMP在应用上必须使用TCP/IP,被管理的机器必须设定IP地址,同时必须确保线路的连接与正确的路由。

网络上的节点分散各地,因此比较实际的作法便是利用网络来管理网络。这表示我们需要一种能够让管理者对不同网络节点进行读取并可能写入各种状态信息的协议。SNMP实际上是一个特殊的「要求/响应」协议,可支持两种要求讯息:get及put。前者是用来从某些节点取出状态信息,而后者则是用来在某些节点上储存一份新的状态信息。(SNMP也支持第三种动作,get-next,稍后再做解释。)下列讨论着重在get作业,因为这是最常使用的。

SNMP的使用是很明确的:系统管理者与一个显示网络信息的客户端程序进行互动。该客户端程序通常具有一个图形接口。每当管理者选择某种想要取得的信息,客户端程序便利用SNMP向负责的节点要求信息。(SNMP在UDP上执行。)在接收到要求讯息之节点上执行的SNMP服务器将找到适当的讯息,并将其传回给客户端程序,然后显示给使用者参考。

2. SNMP工作原理

SNMP定义了五种Manager与Agent之间的通讯形式。

¨           Get-request

¨           Get-next-request

¨           Set-request

¨           Get-response

¨           Trap

前三项都是属于Manager向Agent发出的讯息,后两项则属于Agent向Manager发出的讯息。

每个Agent都是一个执行程序,负责将该网络节点的设定数据以及运作现状以数据结构的方式储存,客户端程序如何表示需要撷取何种信息,以及服务器如何得知应读取内存中的那个变量以符合要求?答案是SNMP根据一个称为「管理信息基础」(Management Information Base, MIB)的伴随规格(companion specification)。当Agent收到网管主机所发出的SNMP get-request、get-next-request、set-request时,便以相对应的MIB数据透过SNMP get-response方式响应。MIB定义了可以从网络节点取得的特定信息,MIB变量。下一节将描述一部份MIB变数。此外,有一种特殊的SNMP命令,称为trap,可允许Agent在特殊的情况下(如error, shutdown)主动发讯息给网管主机。

3. MIB介绍

SNMP定义一个可供管理数据的标准,它定义了网络设备各种信息的储存结构,这种结构是以树状结构为基础,每种变量分支都是唯一的,亦即MIB。目前所使用的版本是MIB-II,定义于RFC-1213。网络设备的TCP/IP数据分为八份,分别为system,interface,addr-translation,ip,icmp,tcp,udp与egp。MIB定义了各分支下的数据项,所包含的数据包括整数,字符串,与窗体内容。见下图举例说明:

4. 网管系统之简介

网络管理是一个相当大规模且重要的领域,一般来说,网管系统的任务就是要能达成掌握网络主机状况,加速故障排除,同时减少网管人员的负担。一些网络或计算机相关厂商也都有网管软件的产品,目前应用最广的就是HP的OpenView,IBM的NetView等,这类型的网管系统强调的是一个整合型的网络管理解决方案,由一个网管的作业平台与许多网管功能的模块所组合而成。上述两种作业平台都有提供基本的网络拓朴功能,MIB Browser,SNMPtool,Data Collection,绘图与网络事件管理功能。从管理者的角度来看,这些功能十分好用,但是这些软件都非常昂贵。除非网络环境具有特殊性或者复杂度,否则便需要考虑一下软件的价格与效能比值不值得。

在一般学校最常用的网管工具就是MRTG,严格来说只具有网管软件中的一小部分功能。MRTG把SNMP所request的数据经过计算后绘成图表,其中最常用的是网络流量统计图,其它如CPU Load,Error Count等亦可支持。由于属于免费软件,因此使用群相当广泛。

最后要提出来说明的是RMON这项产品,当网段上有需要监测的问题时,除了使用Protocol Analyzer到现场去量测之外,最常用的就是把RMON挂到网段上当Agent,然后在Manager端(如HP的OpenView NNM使用netmertix)来接收RMON所收集到的封包,藉由RMON可以使得管理者在远程进行现场的量测动作,对于需要长时间量测以及不规则发生之网络问题状况特别有此必要。

5. MIB相关工具

¨           Snmpget:fetch an SNMP object

¨           Snmpwalk:fetch all the SNMP objects from an agent

¨           Snmpwalkoid:query for a tree of information about a network entity

¨           Snmp_get_quick_print:fetch the current value of the UCD library’s quick_print setting

¨           Snmp_set_quick_print:set the value of quick_print within the UCD SNMP library

¨           Getif:window-based MIB browser

三、NetFlow

(一)NetFlow简介

NetFlow为Cisco之专属协议,提供路由器中第三层之信息,可用来了解该路由器所传输之封包表头内容,依据此内容,我们可以撰写程序将所获得之资料加以统计。一旦收集到路由器上的详细流量数据后,便可为网络流量统计、网络使用量计价、网络规划、网络监测等应用提供计数根据。同时,NetFlow也提供针对QoS(Quality of Service)的测量基准,能够捕捉到每笔数据流的流量分类或优先性特性,而能够进一步根据QoS进行分级收费。

目前Cisco网站上所提供可执行netflow之硬件数据:

NetFlow versions Supported Platforms

Cisco IOS Software Release Version Supported NetFlow Export Version(s) Supported Cisco Hardware Platforms
11.1CA, 11.1CC v1, v5 Cisco 7200, 7500, RSP7000
11.2, 11.2P v1
11.2P Route Switch Module (RSM), 11.2(10)P and later
11.3, 11.3T
12.0 Cisco 2600, 3600, 4500, 4700, AS5800, 7200, uBR7200, 7500, RSP7000, RSM
12.0T V1, v5 Cisco 1000*,1600*,1720**, 2500*,2600, 3600, 4500, 4700, AS5800, 7200, uBR7200, 7500, RSP7000, RSM, MGX8800 RPM
12.0(3)T and later v8
N/A v7 Catalyst 5000 NetFlow Feature Card (NFFC)

(参考[url]http://www.cisco.com/warp/public/cc/pd/iosw/ioft/neflct/tech/napps_wp.htm[/url])

继续阅读