针对目前IP网络管理系统中管理信息的收集所存在的不足之处,文中设计了一种基于RMON的网络探测器并给出了具体的实现方案;该探测器充分利用一些现有的免费开发工具包,并可以有效地解决这些问题。

关键词 网络探测器 网络管理 远程监视

1 引言

在一个网络管理系统中,网管信息的收集是一项最基本的任务,它是实现各种复杂的网络管理功能的基础。在本网管系统的基本实现中,是依赖于管理站来采集网络中的各种信息,并对采集到的信息进行分析和处理,这种方式基本上能够满足多数网络的管理需求,然而,它也存在一些不足之处。

(1)所有网管信息的采集全部依赖于中心的管理站,对管理站的处理能力有较高的要求,同时,由于各种原始的网管信息都需要汇集到管理站,就会带来管理站四周较大的网络流量,容易造成网络的阻塞;

(2)对于一些带有防火墙的虚拟网,位于其外部的管理站无法访问到其内部的网络,因而也就无法对其进行监视与管理;

(3)管理站在信息采集的时候,主要是利用SNMP(简单网络管理协议)和各个网络设备进行通信,获得各设备的网管信息。然而,这些信息主要是关于设备自身的,而关于整个网络的总体信息则比较缺乏。

“网络探测器”正是为了有效解决上述问题而提出的。

在本网管系统中,网络探测器是放置在一个局域网内部的硬件装置,它可以按照预定的配置信息,对该局域网内部的网络信息进行收集和统计,并对局域网的工作状况进行监视;同时,提供一定的接口,供管理站与之进行通信,获得它的网管信息,并对它进行配置与管理。

2 网络探测器原理

2.1 网络数据包的侦听

在以太网上,任何一个主机发出的数据包都是在共享的以太网传输介质上进行传输的,每个数据包的包头部分都包含了源地址和目的地址。一般情况下,局域网上各台主机的网卡负责检查每一个数据包,如果发现其目的地址是本机,则接收该数据包并向上层传递,以进行下一步的处理;如果目的地址不是本机,则忽略它。

在一些特殊的情况下,需要让一台主机能够接收所有的数据包,即进行网络数据包的“侦听”,这时,通过对网卡进行设置,可以让该主机的网卡工作在“混杂模式”下,则不论数据包的目的地址是否是本机,都能够截获并传递给上层进行处理。

对于截获的数据包,进行进一步的分析处理,就能够得到数据包的一些基本属性,如包类型、包大小、目的地址、源地址等,这样,就可以在此基础上进行分析和统计。

2.2 SNMP——简单网络管理协议

SNMP是TCP/IP网络上的一个重要的网络管理协议,能够用于监控和管理网络设备,SNMP规范定义了管理站与网络设备之间交换管理信息的协议、管理信息的结构框架、通用的管理信息库MIB等。

SNMP是网络管理系统的基础,本网管系统主要基于SNMP来从各个网络设备获得各种网络管理信息,并在对它们进行进一步分析处理后,提供各种网络管理功能。

在网络探测器的实现中,我们将使用SNMP规范来实现它和管理站的通信,即在网络探测器上实现一个具有完整功能的SNMP Agent,通过SNMP来向管理站提供各种网管信息。网络探测器支持RMON MIB,主要提供整个局域网有关的统计信息。

2.3 RMON——远程监视

RMON(Remote Network Monitoring)规范是SNMP的一个重要增强,它定义了一种远程监视MIB来作为MIB-II的补充,为网络管理站提供了至关重要的网络信息。RMON可以把子网当作一个整体来监视,提供关于整个子网的一些统计信息。

RMON本质上是定义了一套MIB规范,其作用是定义标准的网络监视功能和接口,使基于SNMP的管理站和RMON探测器之间能够通信。一般说来,RMON提供了一种有效且高效的方法来监视子网行为。

RMON规范主要包括在两个重要RFC文档中:RFC 1757定义了RMON1, RFC 2021定义了RMO- N2。

RMON1主要工作在MAC层,能够监视和它相连的LAN内的所有流量,捕获所有MAC层的帧,从这些帧中读取MAC层的源地址和目的地址,并进行有关的各种分析和统计。

RMON2是RMON1的扩充,RMON2工作在MAC层之上,能够从OSI模型的第3层到第7层对数据包进行解析,监视协议流量,例如,探测器能够基于网络层协议和地址(包括IP)来监视流量。

RMON规范定义的MIB库结合在MIB-II中,其子树标识为16。RMON1定义了10个组,RMON2在RMON1的基础上进行了简单扩充,添加了9个新的组。

3 系统总体设计

3.1 基本设计思想

从本质上讲,网络探测器是一个支持RMON规范的SNMP Agent,其主要任务包括:

(1)采集、分析和统计局域网的各种有用信息,按照RMON规范对这些信息进行组织;

(2)实现SNMP Agent,提供标准的SNMP接口,供管理站从它获得网络管理信息。

网络探测器底层的平台是嵌入式Linux系统,该系统具有网络模块,可以接入以太局域网。具体的平台要求是:

硬件系统平台:性能较高,处理速度相对较快,内存容量较大,带有网络模块;

操作系统平台:支持网络功能,能够接入以太网,提供C++编译开发工具。

在本网络探测器的实现时,考虑到运行效率、硬件成本、使用方便性等各方面的因素,做了以下限定:

(1)针对目前最常见的以太网环境;

(2)有一个接口使其仅能连接到一个子网,这样可使得系统简单有效、易于安装配置;

(3)全部MIB对象存放在内存中,提高运行效率;

(4)有选择地实现一些重要的MIB组;RMON是一个功能非常强大的MIB库,能够为管理站提供详细的网络管理信息,然而,在一般应用中都不大可能对所有的SNMP MIB组加以实现。

3.2 系统基本体系结构

图2给出了本网络探测器的基本体系结构。网络探测器包括以下一些基本组成模块:网络侦听、数据包分析、分类统计计数、RMON MIB库、SNMP处理以及Trap发送等。

探测器系统中,各个功能模块的主要功能如下:

网络侦听模块负责从网络上截获所有的数据包;网络探测器连接在特定局域网上,它能够对该局域网上传输的所有数据包进行截获,然后提交给上层模块进行分析处理。

数据包分析模块对截获的数据包根据数据包的类型、源地址、目的地址、包大小等基本信息逐个进行分析。

数据包分析模块在对数据包进行分析后,根据数据包的特性,调用特定的分类统计计数模块对该包进行统计计数,分类统计计数模块按照MIB库的规范要求,将统计结果更新到有关的一些MIB对象中。

RMON MIB库用来保存各种RMON MIB对象(实际上还包括MIB-II的System组和Interface组),这些对象按照RMON MIB规范进行组织,这里的MIB库是一个概念上的数据库,实际上各种信息都组织在内存中,以提高访问效率。

SNMP处理模块负责实现SNMP访问接口,接收SNMP请求(包括Get、GetRequest、Set等操作),对它进行分析处理,并按照要求访问RMON MIB库,从中取得需要的MIB对象值并返回给请求者(对Get、GetRequest而言),或者设置有关的MIB对象值(对Set操作而言)。

Trap发送模块负责在发生特定事件时,主动发送Trap信息给预定的管理站;在分类统计计数模块对MIB对象的值进行计数时,如果发现特定值超过了预定的范围,则启动Trap发送模块,按照预定策略发送Trap信息给管理站。

4 实现技术

4.1 SNMP Agent的实现

目前,已经有一些可用的SNMP Agent开发工具包,它们提供一些基本的框架平台,实现了Agent的通用功能,在其基础上,开发者可以集中精力进行具体逻辑功能的实现,如MIB对象的数据采集等。这样有利于简化开发工作,加快开发进程。常见的SNMP Agent开发工具包有:Agent++、net-snmp、WinSnmp API(适用于Windows平台)等。

为了方便探测器Agent的实现,我们选择了Agent++平台,它是免费的且源代码公开。

Agent++是一套用于开发SNMP Agent的C++库,它建立在SNMP++的基础之上。Agent++提供了完整的协议处理框架,提供了标量对象和表对象等MIB对象的基类,通过继承用户可以方便地定义MIB对象。Agent++具有以下一些特点:

(1)功能强大,能够实现各种复杂的MIB对象;

(2)简单易用,开发人员无需深入了解底层的SNMP处理,仅使用一些简单的类和接口,即可快速实现带有各种MIB对象的Agent;

(3)扩展性强,方便定义和实现新的功能;

(4)可移植性好,代码可以方便地移植到Windows、UNIX、Linux等平台上;

(5)支持SNMPv1和SNMPv2c;

(6)支持多线程处理,在线程中处理SNMP请求,可以进行并发的处理;

(7)支持MIB对象的持久保存,可将MIB对象保存到硬盘上,并可以从硬盘装载;

(8)具有详细的日志功能。

4.2 网络数据包侦听的实现

网络数据包的侦听也可以使用一些现成的开发包来实现,winpcap和libpcap是比较著名的开发包,提供了较强的网络数据包截获功能,其中,winpcap运行在Windows平台上,libpcap运行在UNIX和Linux平台上。

本项目使用libpcap作为数据包侦听部分的开发包。

libpcap(Packet Capture Library),即数据包捕获函数库。在网络包抓取中libpcap是非常常用的一个库,著名的tcpdump就是用它来实现的。libpcap是一个与实现无关的访问操作系统所提供的分组捕获函数库,用于访问数据链路层。这个库为不同的平台提供了一致的C函数编程接口,在安装了 libpcap 的平台上,以 libpcap 为接口写的程序、应用,能够自由地跨平台使用。它支持多种操作系统。

libpcap 结构简单,使用方便;它提供了20多个API封装函数,我们利用这些API函数即可完成本网络探测器所需的网络数据包监听功能。

5 结束语

针对网络管理系统的管理信息收集所存在的一些特殊问题,本文设计并实现一种网络探测器。在一个网络管理应用系统中,要根据具体情况决定是否为一些局域网设置网络探测器。所以网络探测器是对本网络管理系统基本实现的补充,它可以使得本网管系统功能更加完善。实践证明本实现方案简单实用,达到了预期的目的。

参 考 文 献

[1] Stallings W,胡成松, 汪凯译 . SNMP网络管理,北京:中国电力出版社,2001

[2] RFC 1213-1991, Management Information Base for Network Management of TCP/IP-based internets: MIB-II

[3] RFC 1757-1995, Remote Network Monitoring Management Information Base

[4] RFC 2021-1997, Remote Network Monitoring Management Information Base II

一种基于RMON的网络探测器相关推荐

  1. python小波分析法检测火焰_一种基于小波分析的网络流量异常检测方法

    一种基于小波分析的网络流量异常检测方法 杜臻 ; 马立鹏 ; 孙国梓 [期刊名称] <计算机科学> [年 ( 卷 ), 期] 2019(046)008 [摘要] 对大量网络流量数据进行高质 ...

  2. FSGAN:一种基于对抗生成网络的换脸术

    本文导读 本文主要介绍ICCV 2019的一篇文章,FSGAN:Subject Agnostic Face Swapping and Reenactment. 文章提出了一种基于对抗生成网络的换脸术, ...

  3. 论文解读:《一种基于长短期记忆网络深度学习的药物靶相互作用预测方法》

    论文解读:<A deep learning-based method for drug-target interaction prediction based on long short-ter ...

  4. 【论文解读】一种基于时间卷积网络的知识驱动股票趋势预测方法

    写在前面 下面这篇文章的内容主要是来自论文<Knowledge-Driven Stock Trend Prediction and Explanation via Temporal Convol ...

  5. 《网络安全创新实践》:设计并实现一种基于Npcap的网络嗅探器

    需求分析 (1)能够监听所有数据包,以及监听指定IP地址的数据包: (2)能够显示完整的IP数据包首部信息,例如:版本.首部长度.数据包长度.数据包类型(协议字段).TTL.源IP地址.目的IP地址等 ...

  6. STMTrack: Template-free Visual Tracking with Space-time Memory Networks(STMTrack: 基于时空记忆网络的无模板视觉跟踪)

    摘要 目前离线训练的暹罗跟踪器的性能提高越来越困难,因为从第一帧裁剪下来的模板的固定信息已经几乎被完全挖掘,但是它们抵抗目标外观变化的能力很差.现有的具有模板更新机制的跟踪器依赖于耗时的数值优化和复杂 ...

  7. CVPR 2019 | 旷视研究院提出ML-GCN:基于图卷积网络的多标签图像识别模型

    全球计算机视觉三大顶会之一 CVPR 2019 (IEEE Conference on Computer Visionand Pattern Recognition)将于 6 月 16-20在美国洛杉 ...

  8. 论文浅尝 - SIAM ICDM 2020 | 基于图时空网络的知识引导的诊断预测

    论文笔记整理:吴锐,东南大学硕士. 来源:SIAM ICDM 2020 论文下载地址: https://epubs.siam.org/doi/abs/10.1137/1.9781611976236.3 ...

  9. 论文浅尝 | 基于图卷积网络的跨语言图谱实体对齐

    论文笔记整理:谭亦鸣,东南大学博士生,研究兴趣:知识图谱问答 本文提出了一种基于图卷积网络的跨语言实体对齐方法,通过设计一种属性 embedding 用于 GCN 的训练,发现GCN能同时学习到特征 ...

最新文章

  1. 12、OpenCV实现图像的空间滤波——图像平滑
  2. c语言 得到结构体成员偏移
  3. Cisco堆叠交换机序号的改变
  4. matlab如何创建table,MATLAB table数据结构 首篇
  5. 新搭建mysql容易出现问题
  6. android新建view类,android – 无法创建ViewModel类的实例(无法启动活动ComponentInfo)
  7. 组件化网页开发 / 步骤一 · 5-1 课程总结
  8. Ubuntu下pycharm无法输入中文
  9. easyUI 数据表格datagrid的使用
  10. 前端那些事之日历多选插件篇
  11. 微信小程序ui框架 graceUI 使用半年评测
  12. 木马 --- 基本概念和分类
  13. 更改win7密钥及方法
  14. 模板template基础学习
  15. html+元素+屏幕固定,jquery.pinBox-可将任何元素固定在容器中的jQuery插件
  16. 中国科学院大学(国科大)毕业生申办上海户籍的手续
  17. 【经验】转一个非常好的【SCI论文写法攻略】
  18. ADC 信号调理电路设计——必要措施、实测验证和应用说明(转载)
  19. 在线画图软件项目结构图
  20. C/C++ 程序员的职业生涯规划,你想从事哪方面呢?这里都有介绍

热门文章

  1. 压力测试衡量CPU的三个指标CPU Utilization、Load Average和ContextSwitch Rate
  2. 如何理解过拟合=高方差、欠拟合=高偏差
  3. 销售成本结转单 失去上游联系
  4. js正则表达式replace里有变量的解决方法用到RegExp类
  5. 使用阿里巴巴提供的约束规范
  6. Excel将另一文件数据导入当前表格内方法详解(文件与文件的连携)
  7. 第十五届“中国电机工程学会杯”数学建模竞赛
  8. android电话应用图标不见了,[问答] 华为手机应用图标消失
  9. java 中pc寄存器的作用_PC寄存器
  10. 将中国标准时间转化为yyyy-MM-dd