SNMP 协议

Similar documents
Chapter #

Microsoft PowerPoint - 数据通信-ch1.ppt

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 计 算 机 网 络 在

Microsoft PowerPoint - chap9-1

IP505SM_manual_cn.doc


第3章 计算机网络体系结构

计 算 机 网 络 基 础 任 务 教 程 () 组 成 计 算 机 网 络 的 每 台 计 算 机 都 是 独 立 的 即 计 算 机 之 间 没 有 明 显 的 主 从 关 系, 每 台 计 算 机 可 以 连 网 工 作, 也 可 以 不 连 网 工 作 (2) 建 立 计 算 机 网 络 的

9 Internet 10 Internet

lan03_yen

財金資訊-80期.indd

ebook67-1

Chap6.ppt

<B1B1BEA9B9E2BBB7D0C2CDF8BFC6BCBCB9C9B7DDD3D0CFDEB9ABCBBEB4B43F3F12FB6CB293>

工程师培训

RAQMON Context Setting MG PDA Applications RTP / FTP/ HTTP TCP/UDP S ignaling control plane (e.g. RS VP, NS IS) Streaming Media, Transaction, Bulk dat

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

EC51/52 GSM /GPRS MODEN

0 配置 Host MIB 设备 V ( 简体版 ) 0 Update: 2016/1/30

经华名家讲堂

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot

ebook140-11

Microsoft Word - YDB Vehicle Telematics Service Requirement and General Framework

穨control.PDF

附件9 电梯运行安全监测管理信息平台技术规范 第11部分:系统信息安全技术规范(征求意见稿)

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC

...1 What?...2 Why?...3 How? ( ) IEEE / 23

基于泛在网的智能交通应用系统总体框架

Simulator By SunLingxi 2003

计算机网络概论

<4D F736F F F696E74202D20A1B6CFEEC4BFD2BB20B3F5CAB6BCC6CBE3BBFACDF8C2E7A1B7C8CECEF1C8FD20CAECCFA A1A24950D0ADD2E9BACD4950B5D8D6B72E707074>

BYOD IP+Optical (IP NGN) API 4. End-to-End (Service Aware) 5. IP NGN (IP Next Generation Network) ( ) Prime Carrier Management Access Edge Co


ebook140-9

2 SGML, XML Document Traditional WYSIWYG Document Content Presentation Content Presentation Structure Structure? XML/SGML 3 2 SGML SGML Standard Gener

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

untitled

ebook 185-6

untitled

RunPC2_.doc

2 response personnel to speed up the rescue operations after various natural or man-made disasters. Keywords: SMS, Database, Disaster

網路安全:理論與實務 第二版

ebook12-1

穨電子公文交換期末報告noconclusion.PDF

4

Huawei Technologies Co

untitled

第 7 章 下 一 代 网 际 协 议 IPv6 141 足 的 措 施 只 能 是 权 宜 之 计 (3) 路 由 表 膨 胀 早 期 IPv4 的 地 址 结 构 也 造 成 了 路 由 表 的 容 量 过 大 IPv4 地 址 早 期 为 网 络 号 + 主 机 号 结 构, 后 来 引 入

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

<4D F736F F D20312D3120D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E5A3A92E646F63>

一.NETGEAR VPN防火墙产品介绍

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

VoIP Make a Rtp Call VoIP Abstract... 2 VoIP RTP...3 Socket IP...9 Config Two Voice-hub

Microsoft Word - template.doc

Microsoft PowerPoint - Aqua-Sim.pptx

IP Access Lists IP Access Lists IP Access Lists

目 录(目录名)

IEC 传输帧格式

计算机网络

<4D F736F F F696E74202D FC2B2B3F85FA44AAB49B0BBB4FABB50B977A8BEA874B2CEC2B2A4B6BB50C0B3A5CE2E707074>

epub 61-2

<4D F736F F D20312D3120B9ABBFAAD7AAC8C3CBB5C3F7CAE9A3A8C9EAB1A8B8E5A3A92E646F63>

end to end 7.2 OSI 7 OSI 3 A B 7.2 Packet Routing LAN WAN


Microsoft PowerPoint - Performance Analysis of Video Streaming over LTE using.pptx

中華電信憑證總管理中心憑證實務作業基準

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

计算机网络

「電子檔案統一命名原則之研究」計畫

目 彔 1. 准 备 工 作 登 彔 设 置 功 能 说 明 实 时 监 控 基 本 控 制 功 能 设 置 画 质 调 节 彔 像 与 抓 拍

Data Server_new_.doc

13 A DSS B DSS C DSS D DSS A. B. C. CPU D. 15 A B Cache C Cache D L0 L1 L2 Cache 16 SMP A B. C D 17 A B. C D A B - C - D

2/80 2

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

D C 93 2

C6_ppt.PDF

1 1 2 OSPF RIP 2

EJB-Programming-3.PDF

目 录 目 录 1. 安 装 和 快 速 入 门 附 件 1.1 随 机 附 件 附 件 信 息... 3 连 接 和 设 定 1.3 连 接 记 录 纸... 4 快 速 入 门 1.5 发 送 传 真 / 复 印 接 收 传 真

<4D F736F F D20CDF8B9A42DC9CFCEE7CCE22D3038CFC2>

BYOD Http Redirect convergence Client (1) 2008R2 NLB( ) (2) NLB Unicast mode switch flooding (arp ) NLB DNS Redirect 1. Round-Robin DNS DNS IP/DNS Cli

Microsoft Word - 選擇_無解答2_.doc

<4D F736F F F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074>

untitled

untitled

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2

iGENUS爱琴思邮件系统技术白皮书

穨IC-1000

ebook140-8

SEC-220

中文朗科AirTrackTM T600 迷你无线路由器用户手册.doc

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

/ / (FC 3)...

1. 二 進 制 數 值 ( ) 2 轉 換 為 十 六 進 制 時, 其 值 為 何? (A) ( 69 ) 16 (B) ( 39 ) 16 (C) ( 7 A ) 16 (D) ( 8 A ) 在 電 腦 術 語 中 常 用 的 UPS, 其 主 要 功 能

解 除 身 份 验 证 机 密 性 Wep 等 一 些 加 密 机 制 MSDU 传 递 (MAC Service Data Unit) 负 责 将 数 据 传 送 给 实 际 的 接 收 端 传 输 功 率 控 制 (Transmit Power Control 简 称 TPC) 欧 洲 标 准

EPSON

Chap7.ppt

ebook67-9

飞鱼星多WAN防火墙路由器用户手册

PS PS GMM SM.zte.com.

Transcription:

SNMP 协议 larkguo@gmail.com 2007-05-26 目录 1 简介...3 1.1 概况...3 1.2 名词...3 1.3 模型...3 2 组成...4 2.1 SMI...5 2.1.1.1 数据类型...5 2.1.1.2 Message...6 2.1.1.3 BER...6 2.2 MIB...12 2.2.1 UDP 组...14 2.2.1.1 实例标识...15 2.2.2 system 组...17 2.2.3 interface 组...17 2.2.4 at 组...17 2.2.5 ip 组...17 2.2.6 icmp 组...17 2.2.7 tcp 组...17 2.3 SNMP...18 2.3.1 端口...18 2.3.2 结构...18 2.3.2.1 PDU...22 2.3.2.2 Trap-PDU...23 2.3.3 过程...24 2.3.3.1 Manager...25 2.3.3.2 Agent...25 3 应用...26 3.1 snmpget...26 3.2 snmptrap...27 4 附录...28

4.1 其他网络管理...28 4.2 SNMP 版本比较...28 4.3 参考...29

1 简介 1.1 概况 1. SNMP 是为网络管理服务而定义的应用协议, 在 1988 年 8 月首次定义, 由 Internet 工程任务组织 (Internet Engineering Task Force)(IETF) 的研究小组为了解决 Internet 上的路由器管理问题而提出的, 很快就在 RFC1157 中达到了正式标准 2. SNMP 是 NMS 和代理之间的异步请求和相应协议 3. SNMP 是由一系列协议组和规范组成的, 它们提供了一种从网络上的设备中收集网络管理信息的方法 4. SNMP 被设计成与协议无关, 所以它可以在 IP,IPX,AppleTalk,OSI 以及其他用到的传输协议上被使用 5. 从被管理设备中收集数据有两种方法 : 一种是轮询 (polling-only) 方法, 另一种是基于中断 (interrupt-based) 的方法 6. SNMP 消息全部通过 UDP 端口 161 接收, 只有 Trap 信息采用 UDP 端口 162 1.2 名词 SNMP,Simple Network Management Protocol: 简单网络管理协议它是一个标准的用于管理 IP 网络上结点的协议 此协议包括了监视和控制变量集以及用于监视设备的两个数据格式 :SMI 和 MIB MIB,Management Information Base: 管理信息库由网络管理协议访问的管理对象数据库, 它包括 SNMP 可以通过网络设备的 SNMP 管理代理进行设置的变量 SMI,Structure of Management Information: 管理信息结构用于定义通过网络管理协议可访问的对象的规则 SMI 定义在 MIB 中使用的数据类型及网络资源在 MIB 中的名称或表示 ASN.1,Abstract Syntax Notation One: 抽象语法定义用于定义语法的正式语言, 在 SNMP 中它用于定义 SNMP 协议数据单元和对象的格式 PDU,Protocol Data Unit: 协议数据单元在网络中传送的数据包 BER,basic encoding rules: 基本编码规则由 CCITT (X.209) 和 ISO (ISO 8825) 指定的编码规则, 它描述了如何将 ASN.1 类型表示为字符串 1.3 模型 SNMP 参考模型由以下 4 个主要部分构成 : 互联网络, 网络协议, 网络管理进程和被管网络

实体, 如图所示 : 用户界面 网络管理应用 1 网络管理应用 2 网络管理应用 3 NMS MIB NMS SNMP 协议 代理进程 代理进程 MIB 网络协议 网络协议 互联网其中的核心内容是 SNMP 管理模型, 如图所示 : 网络管理系统 (NMS) 管理应用 管理者 SNMP SNMP SNMP 代理 代理 代理 MIB MIB MIB 被管对象被管对象被管对象 2 组成 3 个主要的组成部分 :SMI MIB 协议.

2.1 SMI 管理信息结构是管理信息库中对象定义和编码的基础 SMI 是对公共结构和一般类型的描述, 和标识方法在一起, 在现实中都要用到 SMI 经常被比作数据库的模式, 它描述 MIB 中的对象 SMI 中最关键的原则是管理对象的形式化定义要用抽象语法记法 (ASN.1) 来描述 管理对象在现实中都是作为特定的 MIB 严格定义的, 在 SMI 称为为对象类型 SNMP 的对象类型有 3 个用来描述其特征的最基本属性 : 名, 语法, 编码 2.1.1.1 数据类型 (1) INTEGER: 有些整形变量没有范围限制, 有些整形变量定义为特殊的数值 (2) OCTER STRING:0 或多个 8 位字节, 每个字节值在 0-255 之间 (3) DisplayString:0 或多个 8 位字节, 每个字节必须是 ASCII 码, 所有该类型的变量不能超过 255 个字符 (4) OBJECT IDENTIFIER: 一个任意长的非负整数序列, 用于标记对象. (5) NULL: 相关变量还没有值 (6) IPAddress:4 字节的 OCTER STRING, 以网络序表示的 IP 地址, 每个字节代表 IP 地址的一个字段 (7) PhyAddress:OCTER STRING 类型, 代表物理地址 (8) Counter: 非负整数, 范围为 0-4294976295, 达到最大后从 0 开始 (9) Gauge: 非负整数, 范围为 0-4294976295, 或增或减, 达到最大值后锁定, 直到复位 (10) TimeTicks: 时间计数器, 以 0.01 秒递增, 但是不同的变量可以有不同的递增幅度, 所以定义该类变量时必须指定递增幅度

(11) SEQUENCE: 类似于结构, 包括 0 个或多个元素, 相当于 C 语言的结构体 struct (12) SEQUENCE OF: 向量, 其所有元素具有相同的类型, 相当于 C 语言的数组 array 2.1.1.2 Message 一条 SNMP 消息由版本号 SNMP 共同体名和协议数据单元 (PDU) 构成 The length of SNMP messages should not exceed 484 octets. Message ::= SEQUENCE { version community data } INTEGER {version-1(0)}, OCTET STRING, ANY 版本识别符 (version identifier): 确保 SNMP 代理使用相同的协议, 每个 SNMP 代理都直接抛弃与自己协议版本不同的数据报 团体名 (Community Name): 用于 SNMP 从代理对 SNMP 管理站进行认证 ; 如果网络配置成要求验证时,SNMP 从代理将对团体名和管理站的 IP 地址进行认证, 如果失败,SNMP 从代理将向管理站发送一个认证失败的 Trap 消息 共同体为一个字符串, 这是管理进程和代理进程之间的口令, 是明文格式, 默认为 public 协议数据单元 (PDU): 其中 PDU 指明了 SNMP 的消息类型及其相关参数 2.1.1.3 BER BER 基本编码规则 (Basic Encoding Rules) ITU-T(X.690) 和 ISO(8825-1) 标准 一种编码规格说明 描述如何将 ASN.1 类型的值编码成字节串 (string of octets) 的方法 基于一种称为 type-length-value (TLV) 结构的方法, 在 ASN.1 中, 也称 identifier-length-content(ilc)

2.1.1.3.1 Identifier 字段 Tag number < 31: Tag number >= 31:

2.1.1.3.2 Length 字段 短格式 既可用于基本类型, 也可用于内容长度不超过 128 的构造类型 长格式 既可用于基本类型, 也可用于构造类型 通常内容长度大于或等于 128 不定长格式 仅用于构造类型 EOC 字节可看作是 tag 为 0 的基本类型, 内容长度为 0 例 Example 1, integer 14 Example 2, string HI Example 3, ObjectIdentifier 1.3.6.1

Example 4, IPAddress 131.21.14.8 Example 5, INTEGER Example 6, INTEGER BER coding of two s complement integers -129: 1111 1111 0111 1111 = 02 02 FF 7F -128: 1111 1111 1000 0000 = 02 01 80-127: 1111 1111 1000 0001 = 02 01 81-1: 1111 1111 1111 1111 = 02 01 FF 0: 0000 0000 0000 0000 = 02 00 1: 0000 0000 0111 1111 = 02 01 01 127: 0000 0000 0111 1111 = 02 01 7F 128: 0000 0000 1000 0000 = 02 02 00 80 129: 0000 0000 1000 0001 = 02 02 00 81 Example 7,SEQUENCE

Example 8,OBJECT IDENTIFIER Example 9,OBJECT IDENTIFIER Coding of OID Root ccitt(0): Z = Y {0..39} iso(1): Z = 40 + Y {40..79} joint-iso-ccitt(2): Z= 80 + Y {80..119} Coding of OID nude numbers 类似于 Identifier 字段中的 Tag 编码 Range {0..127}: 0XXX XXXX Range {128..16383}: 1XXX XXXX 0XXX XXXX

Range {16384..2097151}: 1XXX XXXX 1XXX XXXX 0XXX XXXX 例 :RSA 数据安全公司 {1 2 840 113549} 06 06 2a 86 48 86 f7 0d 2.1.1.3.3 BER 编码存在的问题 不唯一 示例 同一个值可能有超过 1 种合法的编码 ; 灵活, 但容易造成混淆 BIT STRING 值 01101110 01011101 11 BIT STRING 编码中, 在长度字段后的第一个字节给出了最后一个字节中未用 到的位数 ( 本例中为 6) 03 04 06 6e 5d c0 ( 用 0 填充, 短格式 ) 03 04 06 6e 5d e0 ( 用 100000 填充 ) 03 81 04 06 6e 5d e0 ( 长格式 ) 23 09 ( 构造式编码 ) 03 03 00 6e 5d ( 0110111001011101 + 11 ) 03 02 06 c0 解决方案 ( 两种方向 ) DER: BER 子集, 只使用定长编码 CER: BER 子集, 基于不定长编码

2.2 MIB MIB 定义了可以通过网络管理协议进行访问的管理对象的集合 第一组 RFC 定义的 MIB 成为 MIB-I 接下来的 RFC1213 中又添加了新的对象, 成为了正式的标准, 称为 MIB-II MIB 经常被当作管理对象的虚拟的数据库 MIB 可以描述为一棵树, 各个数据项构成了树的叶结点 每个 MIB 对象都有一个唯一的对象标识符 (OID) 来标识和命名, 这个标识符取决于 MIB 对象在树中的位置, 而对象的实例也有标识符, 由对象类的对象标识符加上实例标识符构成的 SNMP MIB 的对象标识符结构定义了三个主要分支 : 国际电报电话咨询委员会 CCITT( 现在的国际电信联盟的电信部门 ITU-T) 负责管理分支 0 国际标准化组织 ISO 负责管理分支 1, CCITT 和 ISO 联合机构管理分支 2 Internet 的 MIB 都在分支 1, 属于 ISO.ORG.DOD.INTERNET 子树, 具体如下图所示

CCITT(0) ISO(1) JOINT-ISOCCITT(2) ORG(3) DOD(6) INTERNET(1) DIRECTORY(1) MGMT(2) EXPERIMENTAL(3) PRIVATE(4) MIB-2(1) SYSTEM(1) AT(3) ICMP(5) UDP(7) TRANSMISSION(9) INTERFACE(2) IP(4) TCP(6) EGP(8) SNMP(10) RFC1213 中定义了 Internet 标准的 MIB 和 MIB-II, 共包含 171 个对象, 分成 11 组, 下表对各组总体信息作了具体解释 MIB 类型 System Interface AT IP ICMP TCP UDP EGP Transmission SNMP 类型说明主机或网关信息网络接口信息地址转换信息网际信息网际控制报文协议传输控制协议用户数据报协议外部网关协议传输媒体信息简单网络管理协议

2.2.1 UDP 组 UDP 组中包含几个变量和一个表格 变量为 : udpindatagram(1) 1.3.6.1.2.1.7.1 udpnoports(2) 1.3.6.1.2.1.7.2 udpinerrors(3) 1.3.6.1.2.1.7.3 udpoutdatagram(4) 1.3.6.1.2.1.7.4 udptable(5) 1.3.6.1.2.1.7.5 名称数据类型 R/W 描述 udpindatagram Counter R UDP 数据报输入数 udpnoports Counter R udpinerrors Counter R 没有发送到有效端口的 UDP 数据报个数接收到的有错误的 UDP 数据报个数 udpoutdatagram Counter R UDP 数据报输出数 在 udptable 中有 2 个变量 : UDP 监听表, 索引 =<udplocaladdress>.<udplocalport> 名称数据类型 R/W 描述 监听进程的本地 IP 地址, udplocaladdress IpAddress R 0.0.0.0 代表接收任何接口的数据报 udplocalport [0..65535] R 监听进程的本地端口号

2.2.1.1 实例标识 对 MIB 变量进行操作, 必须对 MIB 的每个变量进行标识 只有叶子节点是可 操作的 SNMP 没法处理表格的一整行或一整列. 简单变量 对于简单变量的处理是通过在其对象标识后面添加 ".0" 处理 例如对象标识是 1.3.6.1.2.1.7.1, 则实例标识是 1.3.6.1.2.1.7.1.0 表格每个 MIB 中的索引都包含一个以上的索引 对于 UDP 监听表来说,MIB 定义了包含两个变量的联合索引 假定 UDP 监听表中有 3 行具体成员 : 0.0.0.0 67 0.0.0.0 161 0.0.0.0 520 这表明系统将从端口 67 161 和 520 接收来自任何接口的 UDP 数据报 这三行数据处理后为 : 行对象标识简称值 1 1.3.6.1.2.1.7.5.1.1.0.0.0.0.67 1.3.6.1.2.1.7.5.1.2.0.0.0.0.67 UdpLocalAddress.0.0.0.0.67 UdpLocalPort.0.0.0.67 0.0.0.0 67 2 1.3.6.1.2.1.7.5.1.1.0.0.0.0. 161 1.3.6.1.2.1.7.5.1.2.0.0.0.0. 161 UdpLocalAddress.0.0.0.0. 161 UdpLocalPort.0.0.0. 161 0.0.0.0 161 3 1.3.6.1.2.1.7.5.1.1.0.0.0.0. 520 1.3.6.1.2.1.7.5.1.2.0.0.0.0. 520 UdpLocalAddress.0.0.0.0. 520 UdpLocalPort.0.0.0. 520 0.0.0.0 520 字典式排序

MIB 中按照对象标识进行排序有一个隐含规则,MIB 表格是根据其对象标识 按照字典的顺序进行排序的 上面表格排序后如下所示 : 行对象标识简称值 1.3.6.1.2.1.7.5.1.1.0.0.0.0.67 UdpLocalAddress.0.0.0.0.67 0.0.0.0 1 2 1.3.6.1.2.1.7.5.1.1.0.0.0.0.161UdpLocalAddress.0.0.0.0.1610.0.0.0 1.3.6.1.2.1.7.5.1.1.0.0.0.0.520UdpLocalAddress.0.0.0.0.5200.0.0.0 1.3.6.1.2.1.7.5.1.2.0.0.0.0. 67 UdpLocalPort.0.0.0. 67 67 1.3.6.1.2.1.7.5.1.2.0.0.0.0. UdpLocalPort.0.0.0. 161 161 161 UdpLocalPort.0.0.0. 520 520 1.3.6.1.2.1.7.5.1.2.0.0.0.0.

520 在表格中, 一个给定变量的所有实例都在下个变量的所有实例之前显示 这 意味表格的操作顺序是先行后列的 表格中对行的排序和表格中索引的值有关 2.2.2 system 组 system 组包含 7 个变量, 没有表格, 分别是 : sysdescr.1.3.6.1.2.1.1.1.0 sysobjectid.1.3.6.1.2.1.1.2.0 sysuptime.1.3.6.1.2.1.1.3.0 syscontact.1.3.6.1.2.1.1.4.0 sysname.1.3.6.1.2.1.1.5.0 syslocation.1.3.6.1.2.1.1.6.0 sysservices 2.2.3 interface 组 interface 组只定义了一个简单变量, 是系统的接口数量 该组还有一个表 格变量, 有 22 列 2.2.4 at 组 at 组是地址转换组, 在该组中仅有一个由 3 列组成的表格变量 2.2.5 ip 组 ip 组定义了很多简单变量和 3 个表格变量 ( 地址表 路由表 地址转换表 ) 2.2.6 icmp 组 icmp 组包含 4 个普通计数器变量 (ICMP 报文的输出和输入数量以及 ICMP 差错报文的输入和输出数量 ) 和 22 个其他 ICMP 报文数量的计数器,11 个输出 计数器,11 个输入计数器 2.2.7 tcp 组 连接表 tcp 组包含 14 个简单变量, 主要为 TCP 状态 还包含 1 个表格变量, 即 TCP

2.3 SNMP 2.3.1 端口 Passive open by both client and server: Exchange of request and response messages: Sending trap messages by the server: 2.3.2 结构 PDUs::= CHOICE { get-request [0] IMPLICIT PDU, get-next-request [1] IMPLICIT PDU, get-response [2] set-request [3] trap [4] IMPLICIT PDU, IMPLICIT PDU, IMPLICIT Trap-PDU }

GetRequest, GetNextRequest, SetRequest PDU type request-id 0 0 variable-bindings GetResponse PDU type request-id error-status error-index variable-bindings variable-bindings... name value name value name value VarBindList ::= SEQUENCE OF VarBind VarBind ::= SEQUENCE { name ObjectName, value ObjectSyntax } ObjectName ::= OBJECT IDENTIFIER ObjectSyntax ::= CHOICE { simple SimpleSyntax, application-wide ApplicationSyntax } SimpleSyntax ::= CHOICE { number INTEGER, string OCTET STRING, object OBJECT IDENTIFIER,

empty NULL } ApplicationSyntax::= CHOICE { address NetworkAddress, counter Counter, gauge Gauge, ticks TimeTicks, arbitrary Opaque } NetworkAddress::= CHOICE { internet IpAddress } Message format for trap:

Encoding SNMP message using BER

差错状态字段是一个整数, 由代理进程设置, 指明有错误发生 差错状 态 名称 描述 0 NoError 没有错误 1 TooBig 代理进程无法把响应放在一个 SNMP 消息中发送 2 NoSuchName 操作一个不存在的变量 3 BadValue Set 操作的值或语法有错误 4 ReadOnly 管理进程试图改变一个只读变量 5 generr 其他错误 2.3.2.1 PDU PDU 为协议数据单元, 即分组 PDU ::= SEQUENCE { request-id INTEGER, error-status INTEGER { noerror(0),

toobig(1), nosuchname(2), badvalue(3), readonly(4) generr(5)}, error-index INTEGER, variable-bindings SEQUENCE OF { name ObjectName, value ObjectSyntax } } PDU 类型 名称 0 Get-request 1 Get-next-request 2 Get-response 3 Set-request 4 Trap 2.3.2.2 Trap-PDU PDU type enterprise agent-addr generic-trapspecific-traptime-stamp variable-bindings specific-trap INTEGER, time-stamp TimeTicks, variable-bindings VarBindList } -- enterprise OID equals sysobjectid Trap-PDU ::= [4] IMPLICIT SEQUENCE { enterprise OBJECT IDENTIFIER, agent-addr NetworkAddress, generic-trap INTEGER { coldstart(0), warmstart(1), linkdown(2), linkup(3),

specific-trap time-stamp variable-bindings authenticationfailure(4), egpneighborloss(5), enterprisespecific(6)}, INTEGER, TimeTicks, VarBindList } Enterprise: Type of Object generating trap. Agent Address: Address of object generating trap. Generic Trap: Generic trap type. Specific Trap: Enterprise specific trap. Time Stamp: Time elapsed between the last initialization of the network entity and the generation of the trap. Variable Bindings: Interesting information 2.3.3 过程

2.3.3.1 Manager NM Application Translates Internal Data to ASN.1 Format Sends Request Agent NM Application Translates ASN.1 Package to Internal Data Format Received Response PDU from Agent Agent 2.3.3.2 Agent From Manager Received SNMP Request PDU from Manager Translates ASN.1 Structure to Internal Data Maps MIB Variables to Internal Variables To Manager Sends SNMP Response PDU to Manager Translates Response PDU to ASN.1 Format Implement SNMP Request to Set or Get MIB Value Main Loop of Agent: 1. Agent waits for an incoming datagram in Port 161 2. Reads the datagram from UDP and notes the transport address of the sending entity. 3. Increments the QUANTUM to keep track of the logical request-id being processed by agent 4. De-serializes the datagram into an ASN.1 structure. If error occurs, log error and discard packet. 5. The ASN.1 structure is translated into SNMP message. If error occurs, log error and discard packet. 6. Check on VERSION-NUMBER field. If error occurs, log error and

discard packet. 7. Community name is looked up. If community is unknown to agent, agent send AUTHENTICATION trap to Manager station in Port 162; log error and discard packet. 8. Agent loops through list of variables in the request. If no prototype is found, return a GET-RESPONE with error nosuchname and discard package. Once prototype is fund, operation is checked against community profile. If mismatch occurs, return get-respone with error nosuchname or readonly and discard package.otherwise, agent invokes access routine to perform the desired operation. 3 应用 3.1 snmpget 命令 : snmpget [options] node variable [...] query a node using SNMP Get request 例 : >>snmpget -d 10.144.18.118.1.3.6.1.2.1.1.1.0 Transmitted 41 bytes to 10.144.18.118 port 161: Initial Timeout: 0.80 seconds 0: 30 27 02 01 00 04 06 70 75 62 6c 69 63 a0 1a 02 0'...public... 16: 02 18 bc 02 01 00 02 01 00 30 0e 30 0c 06 08 2b...0.0...+ 32: 06 01 02 01 01 01 00 05 00 -- -- -- -- -- -- --... 0: SNMP MESSAGE (0x30): 39 bytes 2: INTEGER VERSION (0x2) 1 bytes: 0 (SNMPv1) 5: OCTET-STR COMMUNITY (0x4) 6 bytes: "public" 13: GET-REQUEST-PDU (0xa0): 26 bytes 15: INTEGER REQUEST-ID (0x2) 2 bytes: 6332 19: INTEGER ERROR-STATUS (0x2) 1 bytes: noerror(0) 22: INTEGER ERROR-INDEX (0x2) 1 bytes: 0 25: SEQUENCE VARBIND-LIST (0x30): 14 bytes 27: SEQUENCE VARBIND (0x30): 12 bytes 29: OBJ-ID (0x6) 8 bytes:.1.3.6.1.2.1.1.1.0 39: NULL (0x5) 0 bytes Received 69 bytes from 10.144.18.118 port 161: 0: 30 43 02 01 00 04 06 70 75 62 6c 69 63 a2 36 02 0C...public.6. 16: 02 18 bc 02 01 00 02 01 00 30 2a 30 28 06 08 2b...0*0(..+ 32: 06 01 02 01 01 01 00 04 1c 53 75 6e 20 53 4e 4d...Sun SNM

48: 50 20 41 67 65 6e 74 2c 20 53 55 4e 57 2c 55 6c P Agent, SUNW,Ul 64: 74 72 61 2d 31 -- -- -- -- -- -- -- -- -- -- -- tra-1... 0: SNMP MESSAGE (0x30): 67 bytes 2: INTEGER VERSION (0x2) 1 bytes: 0 (SNMPv1) 5: OCTET-STR COMMUNITY (0x4) 6 bytes: "public" 13: RESPONSE-PDU (0xa2): 54 bytes 15: INTEGER REQUEST-ID (0x2) 2 bytes: 6332 19: INTEGER ERROR-STATUS (0x2) 1 bytes: noerror(0) 22: INTEGER ERROR-INDEX (0x2) 1 bytes: 0 25: SEQUENCE VARBIND-LIST (0x30): 42 bytes 27: SEQUENCE VARBIND (0x30): 40 bytes 29: OBJ-ID (0x6) 8 bytes:.1.3.6.1.2.1.1.1.0 39: OCTET-STR (0x4) 28 bytes: "Sun SNMP Agent, SUNW,Ultra-1" system.sysdescr.0 : DISPLAY STRING- (ascii): Sun SNMP Agent, SUNW,Ultra-1 3.2 snmptrap 命令 : snmptrap [-d] [-p port] [-c community] node enterprise agent-addr generic-trap specific-trap time-stamp variable type value [variable type value...] issue an SNMP Version 1 Trap options:[-d] [-t timeout] [-r retries] [-p port] [-c community] [-v version] 例 : >>snmptrap -d manager.1.3.6.1.4.1.612.1.1 10.144.18.116 6 99999 0.1.3.6.1.1 octetstringascii "Trap test" Transmitted 64 bytes to manager (10.144.18.100) port 162: 0: 30 3e 02 01 00 04 06 70 75 62 6c 69 63 a4 31 06 0>...public.1. 16: 09 2b 06 01 04 01 84 64 01 01 40 04 0a 90 12 74.+...d..@...t 32: 02 01 06 02 03 01 86 9f 43 01 00 30 13 30 11 06...C..0.0.. 48: 04 2b 06 01 01 04 09 54 72 61 70 20 74 65 73 74.+...Trap test 0: SNMP MESSAGE (0x30): 62 bytes 2: INTEGER VERSION (0x2) 1 bytes: 0 (SNMPv1) 5: OCTET-STR COMMUNITY (0x4) 6 bytes: "public" 13: V1-TRAP-PDU (0xa4): 49 bytes 15: OBJ-ID ENTERPRISE (0x6) 9 bytes:.1.3.6.1.4.1.612.1.1 26: IPADDRESS AGENT-ADDR (0x40) 4 bytes: 10.144.18.116 (manager2) 32: INTEGER GENERIC-TRAP (0x2) 1 bytes: 6 35: INTEGER SPECIFIC-TRAP (0x2) 3 bytes: 99999 40: TIMETICKS TIME-STAMP (0x43) 1 bytes: 0 (0x0) 43: SEQUENCE VARBIND-LIST (0x30): 19 bytes 45: SEQUENCE VARBIND (0x30): 17 bytes 47: OBJ-ID (0x6) 4 bytes:.1.3.6.1.1

53: OCTET-STR (0x4) 9 bytes: "Trap test" 4 附录 4.1 其他网络管理 从 1985 年开始,CCITT 致力于开发和制定电信网的网络管理标准, 并且在 1988 年 -1992 年的研究期间, 引进了许多 OSI 管理思想进行了重写, 目前已经形成了较为完善的电信网络管理推荐标准, 即 TMN 网络管理 由于前面一段的发展经历, 实际上现在的 OSI 管理标准与 TMN 建议可以互为补充 八十年代后,Internet 发展迅猛,IETF 采用了基于 OSI 的 CMIP 协议作为 Internet 的管理协议, 并对它作了修改, 修改后的协议被称作 CMOT(Common Management Over TCP/IP) 但 CMOT 迟迟未能出台,IETF 决定把已有的 SGMP( 简单网关监控协议 ) 进一步修改后, 作为临时的解决方案 这个在 SGMP 基础上开发的解决方案就是著名的简单网络管理协议 (SNMP) 由于 SNMP 存在一些不足,IETF 已经提出了改进版本 SNMPv2,SNMPv3, 在多个方面进行改进和强化 RMON TMN CMIP 4.2 SNMP 版本比较 SNMP v1 基本上没有什么安全性可言, 在安全方面 SNMP v1 存在以下主要的安全问题 : SNMP 数据包的修改 : 指一个未经验证的用户捕获到 SNMP 数据包后, 修改其信息, 又把数据包发送到目的站 而接收设备不能得知数据的改变, 于是就响应包里的信息, 导致安全问题 SNMP v2 在原有的 Get GetNext Set Trap 等操作外增加了 GetBulk 和 Inform 两个新的协议操作 其中 GetBulk 操作快速获取大块数据 Inform 操作允许一个 NMS 向另一个 NMS 发送 Trap 信息, 并接收一个响应消息 SNMP v2 安全标准对数据修改 假冒和数据包顺序改变等安全问题提出了比较满意的解决方案, 进一步为安全标准提出了一系列的目标, 提出了分级的安全机制以及验证机制和使用 DES 标准加密算法 SNMP v3 并不是一个自成体系, 用以取代 SNMP v1 和 SNMP v2 的协议 SNMP v3 定义了安全方面的扩展能力, 用来和 SNMP v1 及 SNMP v2c 相连接 在 SNMP v3 工作组定义的五个 RFC 中,2271 描述了现行的 SNMP 使用的体系结构,2275 描述了一种接入控制的方法, 它同 SNMP v3 的核心功能是独立开的, 只有 2272 2274 三个 RFC 才是真正有关安全方面的建议

4.3 参考 Version RFC Description v1 Structure and Identification of Management Information for RFC 1155 TCP/IP-based Internets. RFC 1157 Simple Network Management Protocol. RFC 1213 MIB II Implementation for Linux and VxWorks. RFC 1215 Convention for defining traps for use with the SNMP v2 RFC 1901 Introduction to Community-based SNMPv2. RFC 1907 MIB for SNMPv2. v3 RFC 2571 SNMP Framework MIB. RFC 2572 SNMP Message Processing and Dispatching (MPD). RFC 2573 SNMP Target MIB and SNMP Notification MIB. RFC 2574 SNMP User-Based Security Model (USM) MIB. RFC 2575 SNMP View-Based Access Control Model (VACM) MIB. RFC 2576 SNMP Co-existence between Version 1, Version 2, and Version 3 MIB. 网络管理论坛网络管理技术 http://snmp.xiloo.com/index.html http://www.im.ncnu.edu.tw/~ycchen/nm/