由于计算机网络发展的趋势是规模不断扩大,复杂性不断增加,网络的异构程度越来越高,因此需要统一的网络管理体系结构和协议对网络进行管理。国际上许多机构和团体建立了一些网络管理标准框架:
1、故障管理
2、配置管理
3、计费管理
4、性能管理
5、安全管理
简单网络管理协议SNMP(Simple Network Management Protocol)协议应用最为广泛,SNMPv2扩充了功能,SNMPv3包含安全和远程配置。
SNMP是应用层协议,主要通过一组因特网协议及其所依附的资源提供网络管理服务。它提供了一个基本框架用来实现对鉴别、授权、访问控制以及网络管理政策实施的高层管理。
网络管理系统组成:
表1
被管理节点(或设备) |
被监视的设备 |
管理代理(agent) |
用来跟踪被管理设备状态的特殊软件或固件(firmware) |
网络管理工作站 |
与在不同被管理节点中的代理通信,并且显示这些代理状态的中心设备 |
网络管理协议 |
被网络管理工作站和代理用来交换信息的协议 |
管理信息数据库 |
提供有关被管网络设备的信息 |
图1
基于TCP/IP的网络管理包含三个组成部分:
(1)管理信息库MIB(Management Information Base)
管理信息库包含所有代理进程的所有可被查询和修改的参数,它是网络管理系统中的重要组件,由系统内的许多被管对象及其属性组成。这些信息由管理进程和各个代理进程共享。MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置信息)。图2给出了一个网络中所有可能的被管理对象集合的数据结构
图2
由图2可知,对象命名树的顶级对象有三个,即ISO、ITU-T(ccitt)和这两个组织的联合体。在ISO的下面有4个结点,其中的一个(标号3)是被标识的组织。接下一层有一个美国国防部(Department of Defense)的子树(标号6),再下面就是internet(标号1)。
在只讨论因特网中的对象时,可只画出internet以下的子树,并在internet结点旁边标注上{1.3.6.1}即可。最初的mib将其所管理的信息分为8个类别,见表2。现在的mib-2所包含的信息类别已超过40个。
表2
信息类型 |
标号 |
信息含义 |
system |
(1) |
主机或路由器的操作系统 |
interfaces |
(2) |
网络接口 |
address translation |
(3) |
地址转换(例如ARP映射) |
ip |
(4) |
IP软件信息 |
icmp |
(5) |
ICMP软件信息 |
tcp |
(6) |
TCP软件信息 |
udp |
(7) |
UDP软件信息 |
egp |
(8) |
EGP软件信息 |
(2)管理信息结构SMI(Structure of Management Information)
管理信息结构是关于MIB的一套公用的结构和表示符号。
(3)SNMP
SNMP是管理进程和代理进程之间的通信协议。
图3、4表示SNMP的实现模型。图3中,1、2、3、4、5分别表示获得请求get-request 、获得下一个请求get-next-request 、设置请求set-request 、获得响应get-response 、陷阱trap等操作。(SNMPv2定义了7个操作)
图3
图4
•一个 SNMP 报文由三个部分组成,如图5所示:
�C公共 SNMP 首部
�Cget/set首部或 trap 首部
�C变量绑定(Variable-bindings)
图5
1、公共SNMP首部
共有三个字段:
(1)版本,写入版本字段的是版本号减 1。对于 SNMPv1应写入0。
(2)共同体(community),共同体就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的是 6 个字符“public”。
(3)PDU类型,根据 PDU 的类型,填入0-4中的一个数字。其对应关系如表3所示。
表3
PDU类型 |
名称 |
0 |
get-request |
1 |
get-next-request |
2 |
get-response |
3 |
set-request |
4 |
trap |
SNMPv1定义了5种管理进程和代理进程之间的交互报文:
•get-request操作:从代理进程处提取一个或多个参数值。
•get-next-request操作:从代理进程处提取一个或多个参数的下一个参数值。
•set-request操作:设置代理进程的一个或多个参数值。
•get-response操作:返回的一个或多个参数值,这个操作是由代理进程发出的。它是前面3种操作的响应操作。
•trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
前3个操作由管理进程向代理进程发出,后两个是代理进程发给管理进程的。在代理进程端用熟知端口 161 来接收 get 或 set 报文,在管理进程端用熟知端口 162 来接收 trap 报文。
图6