思维导图:
6.7 简单网络管理协议(SNMP)
6.7.1 网络管理的基本概念
- 定义:网络管理涉及硬件、软件、人力资源的使用、整合和协调,目的是监控、测试、配置、分析、评估和控制网络资源。
- 目的:提供合理成本下的实时性能和服务质量。
- 网络复杂性:由不同厂家、运行不同协议的节点(如路由器)组成,状态不断变化。
- 管理需求:读取和更新节点上的状态信息。
图6-21 网络管理的一般模型
- 管理站(管理器):
- 核心组件,高性能工作站,有图形界面。
- 由网络管理员操作,负责向被管设备发送命令。
- 网络运行中心(NOC)。
- 管理程序转换为管理进程。
- 管理者可以是硬件或软件。
- 被管设备:
- 包括主机、路由器、打印机等。
- 每个设备中有多个被管对象。
- 被管设备有时称为网络元素。
图6-22 网络管理代理程序
- 代理(Agent):
- 在被管设备中运行,与管理站通信。
- 执行管理程序的命令,采取本地行动。
SNMP的关键组件
- SNMP协议:允许管理程序与代理程序的交互。
- 管理程序:运行SNMP客户程序。
- 代理程序:运行SNMP服务器程序,响应管理站请求。
网络管理基本原理
- 对象管理需最小化对原对象的影响。
SNMP发展
- 发布年份:1988年。
- 主要功能:监视网络性能,检测网络错误,配置网络设备。
- 版本:SNMPv1, SNMPv2, SNMPv3(最新,增强安全性)。
SNMP的三个部分
- SNMP本身:定义管理站与代理间的交互。
- 管理信息结构(SMI):定义命名对象和对象类型的规则。
- 管理信息库(MIB):在实体中创建命名对象,规定类型。
编程比较
- SMI、MIB和SNMP分别对应程序设计中的语言规则、变量声明和变量操作。
我的理解:
可以通过类比于一个城市的公共交通系统来帮助理解:
1. 网络管理的定义与目的
想象网络是一个庞大的城市,网络管理就像是城市管理,目的是确保交通(数据流)流畅,服务(网络服务)高效,并保持成本在合理范围内。就像城市管理者需要监控交通流量、维护道路、规划新的交通路线一样,网络管理也涉及监控、维护和优化网络资源。
2. 网络的复杂性
网络就像一个由不同公司运营的复杂交通系统。有公共汽车、地铁、火车和飞机等,它们使用不同的运行规则(协议)并在不同的路径上移动。网络的这种复杂性需要一个有效的管理方法来确保一切顺畅运行。
3. 网络管理模型
- 管理站(管理器):想象它是交通控制中心,从这里可以监控和控制整个城市的交通系统。控制中心下达指令,如调整信号灯,改变地铁运行时间等。
- 被管设备:这些设备类似于城市中的各种交通工具和交通基础设施,如公交车、地铁站等。
4. 代理(Agent)
代理程序可以比作每个交通工具上的驾驶员或控制系统,它们接收来自交通控制中心的指令,并按照这些指令操作。
5. 简单网络管理协议(SNMP)
SNMP就像是交通控制中心和交通工具之间使用的无线通信系统。控制中心通过这个系统发送指令给公交司机或地铁控制室,并接收来自这些交通工具的状态报告。
6. SNMP的组成部分
- SNMP:这部分就像是定义无线通信如何进行的规则。
- 管理信息结构(SMI):类似于定义交通信号和标志的规则。
- 管理信息库(MIB):想象成一个包含所有交通工具、信号灯和路线信息的数据库。
7. SNMP与编程的对比
把SNMP、SMI和MIB比作编程,就像是在创建一个交通控制软件。SMI提供编程语言(规则),MIB定义数据(如车辆类型、路线),而SNMP则是实际控制交通的代码。
6.7.2 管理信息结构SMI
1. SMI的功能
- 被管对象的命名:确保所有被管对象都有标准的命名方式。
- 数据类型定义:指定存储被管对象的数据类型。
- 管理数据的编码:规定网络上传送的管理数据的编码方式。
2. 被管对象的命名
- 对象命名树:所有被管对象都位于一个结构化的对象命名树上。
- 树结构:以标准制定单位如ITU-T, ISO作为顶级节点。下层节点代表不同的组织和网络元素。
3. 被管对象的数据类型
- ASN.1标准:使用ISO制定的抽象语法记法1 (ASN.1) 定义数据类型。
- 简单类型与结构化类型:
- 简单类型:直接使用ASN.1定义的基本类型。
- 结构化类型:类似于编程中的结构体或数组,组合多个简单类型或同类型数据。
4. 编码方法
- 基本编码规则(BER):使用ASN.1的BER进行数据编码。
- TLV编码:数据元素由三部分组成 - 类型(Type)、长度(Length)、值(Value)。
- 类型(T字段):定义数据类型。
- 长度(L字段):指出值字段的长度。
- 值(V字段):具体的数据值。
我的理解:
管理信息结构SMI的三个主要功能:
-
被管对象的命名:这就像给城市里的每个建筑物、街道或公园分配一个独特的地址。在网络管理中,每个被管对象(如路由器、交换机、服务器上的特定部分)都需要一个唯一的标识符,以便准确地定位和管理它们。
-
数据类型定义:类似于在建筑规划中使用的蓝图或规格说明书。在网络管理中,不同类型的被管对象会有不同的数据结构和属性。SMI定义了这些数据结构的格式和类型,确保信息的一致性和准确性。
-
管理数据的编码:想象成一种特殊的“邮政编码”系统,用于在网络中发送和接收关于被管对象的信息。这个编码系统确保信息能被正确地解读和处理,无论它被发送到网络中的哪个部分。
关于具体概念的理解:
-
对象命名树:网络中的每个被管对象都被放置在一个庞大的、层级结构化的“命名树”中。每个节点在这棵树上都有唯一的位置,就像在一个家族树中每个成员都有其独特的位置。
-
数据类型(简单和结构化):
- 简单类型:这些是基本的、不可分割的数据类型,类似于建筑中的基本材料(如砖、木材)。
- 结构化类型:它们由简单类型组成,类似于使用基本材料建造的复杂结构(如房间、楼层)。
-
编码方法(TLV编码):在网络通信中,信息被编码为一个包含三个部分的结构:类型(T)、长度(L)和值(V)。这就像邮件的格式,其中包含寄件人(类型),信封大小(长度)和信件内容(值)。
通过这样的解释和类比,可以更容易地理解管理信息结构SMI的重要性和其在网络管理中的作用。这个结构确保了网络管理的有效性和一致性,就像城市规划和邮政系统确保城市运行的效率和有序。
6.7.3 管理信息库(MIB)
1. MIB的定义
- 概念:MIB是管理信息的集合,它是互联网网管框架中被管对象的虚拟信息存储器。
- 作用:管理程序使用MIB中的信息来管理网络,例如读取或重新设置这些值。
2. MIB的内容
- 信息类别:包括路由器状态、流量统计、错误报文等。
- 设备示例:
- 路由器:维持网络接口状态、流量、丢弃的分组等信息。
- 调制解调器:维持传输的字符数、传输速率、接受的呼叫等信息。
3. MIB子树结构
- 例子:图6-22展示了节点mib-2下面的MIB子树。
- 信息类别举例(表6-6):
- system:主机或路由器的操作系统。
- interfaces:各种网络接口。
- ip:IP软件。
- 其他:如ICMP、TCP、UDP软件。
4. MIB变量
- 命名和定位:基于对象命名树,每个MIB变量有一个唯一的标识符。
- 实例举例:
- ipInReceives:收到的IP数据报数,标识符为1.3.6.1.2.1.4.3。
- sysUpTime:系统运行时间,标识符为特定值。
- 变量类型:可以是简单的整数或更复杂的结构(如路由表)。
5. MIB变量与实际设备的映射
- 数据映射:MIB变量的逻辑定义与路由器等设备的内部数据结构可能不同。当查询到达设备时,设备上的代理软件负责完成这种映射。
我的理解:
1. MIB的定义与作用
- MIB类似于一个大型仓库:想象MIB是一个包含各种重要网络设备信息的巨大数据库,如一个仓库存放着各种物品的详细信息。在这个“信息仓库”中,每个被管对象(如路由器、交换机等)都有自己的存储区域,记录着它们的状态、性能数据等。
2. MIB的内容
- 设备信息:类似于仓库中各种物品的标签。例如,路由器的信息标签可能包括网络接口状态、流量数据等;而调制解调器的标签则包含发送和接收的字符数、传输速率等。
3. MIB子树结构
- 结构类似于目录系统:MIB的结构可以类比于一个精心组织的文件夹系统。每个文件夹(节点)包含特定类别的信息,如系统信息、接口信息等。这种结构使得查找特定信息变得直观和系统化。
4. MIB变量
- 变量命名与定位:每个MIB变量有一个唯一的标识符,就像每个文件在计算机中有一个唯一的路径。例如,标识符1.3.6.1.2.1.4.3可能指向一个特定的网络接口的流量统计数据。
- 变量类型:MIB变量可以是简单数值(如整数)或复杂结构(如整个路由表),类似于不同类型的文件或数据格式。
5. MIB变量与实际设备的映射
- 数据映射:这就像是将仓库中的信息标签映射到实际物品上。即使仓库中的标签(MIB变量的逻辑定义)与物品的实际存放方式(路由器内部的数据结构)不同,仓库管理员(代理软件)能够找到并提供正确的物品(数据)。
6.7.4 SNMP的协议数据单元和报文
1. SNMP基本操作
- “读”操作:使用Get报文检测被管对象的状态。
- “写”操作:使用Set报文改变被管对象的状态。
2. 探询操作
- 周期性探询:SNMP管理进程定期发送探询信息到被管理设备。
- 优点:简化系统,减少管理信息通信量。
- 缺点:不够灵活,设备数量限制,可能导致资源浪费。
3. 陷阱(Trap)机制
- 概念:不需请求即可发送的信息,用于捕捉特定“事件”。
- 过滤机制:只报告达到门限值的重要事件。
- 优点:限制信息简洁,通信量小。
4. SNMP的网络传输
- UDP使用:SNMP使用无连接的UDP,减少网络传输开销。
- 端口:服务器端使用端口161接收Get或Set报文,客户端端口162接收Trap报文。
5. SNMP协议数据单元(PDU)
- 定义:SNMP定义了8种类型的PDU(表6-8)。
- 类型举例:
- GetRequest:读取一个或一组变量的值。
- SetRequest:设置一个或多个变量的值。
- Trap:报告异常事件。
6. SNMP报文格式
- 组成:包括版本、首部、安全参数和数据部分。
- 编码:使用ASN.1编码,使人工处理变得复杂。
7. PDU字段
- 请求标识符:管理进程设置的标识符,用于识别响应。
- 差错状态和索引:标示操作成功或具体的错误类型。
- 变量绑定:指明一个或多个变量的名字和值。
我的理解:
1. SNMP基本操作
- “读”操作(Get):就像用远程控制器检查家里的智能设备状态,比如查看智能恒温器的当前温度设置。
- “写”操作(Set):类似于使用远程控制器调整这些智能设备的设置,比如调高恒温器的温度。
2. 探询操作
- 定期探询:想象一个管理员定时巡视一座大楼的各个房间,以确保一切正常。这个巡视就是SNMP的定期探询,旨在定期检查网络设备的状态。
3. 陷阱(Trap)机制
- 自动警报:如果大楼的某个房间冒烟或发生水管爆裂,房间内的烟雾探测器或水浸传感器会立即触发警报,通知管理员。这就像SNMP的陷阱机制,在网络设备遇到问题时自动发送警报。
4. SNMP的网络传输
- 使用UDP协议:SNMP通过UDP发送数据就像寄送快递包裹,它速度快但不保证每个包裹都会准时到达。这是因为UDP是一种无连接的传输方式,它不像邮件挂号那样追踪每一步。
5. SNMP协议数据单元(PDU)
- 多种PDU类型:每种PDU就像不同类型的表格,用于不同的管理任务。例如,GetRequest PDU就像是一个查询表格,用来请求信息;SetRequest PDU则像是一个更新表格,用于改变设置。
6. SNMP报文格式
- 复杂的ASN.1编码:SNMP报文的编码就像一种复杂的密码,需要特定的工具或专业知识才能解读。
7. PDU字段
- 报文识别和错误处理:就像每个快递包裹都有一个独特的追踪号码和状态标签,SNMP报文中的请求标识符、差错状态和索引字段帮助识别和追踪网络请求的进展和问题。
总结:
重点
- 基本概念:理解SNMP作为一个网络管理协议的基本功能,即它是如何帮助监控和管理网络设备和服务的。
- 管理信息结构SMI:了解SMI的作用,特别是在定义网络管理中使用的数据类型和结构方面。
- 管理信息库MIB:掌握MIB的概念,即如何作为一个存储被管理对象信息的数据库。
- SNMP操作:理解基本的“读”(Get)和“写”(Set)操作,以及探询和陷阱(Trap)机制。
- 协议数据单元(PDU):了解不同类型的PDU及其用途。
难点
- SMI的理解:理解SMI如何定义和命名被管对象,这涉及到对ASN.1标准的理解。
- MIB结构和内容:深入理解MIB的层级结构和其中包含的不同类型的数据。
- 陷阱(Trap)机制:掌握陷阱机制的工作原理和它与常规探询操作的区别。
- SNMP报文格式:理解SNMP报文的复杂结构,特别是在使用ASN.1编码方面。
易错点
- 混淆SMI和MIB:不要混淆SMI的作用(定义数据类型和结构)和MIB的作用(存储具体的管理信息)。
- 误解操作类型:清楚区分“读”操作和“写”操作的用途,以及它们在网络管理中的应用。
- 陷阱(Trap)机制的误用:正确理解陷阱机制的适用场景,避免将其与普通的探询操作混淆。
- PDU类型的混淆:各种PDU类型有特定的用途和结构,需要明确区分。
总体来说,SNMP的核心在于其提供的用于网络管理的标准化方法和工具。理解这些概念及其应用是掌握SNMP的关键。在学习过程中,对于复杂的概念如SMI、MIB的层级结构,和ASN.1编码方式需要特别注意。