本文主要阐述了SNMP的一些简单知识,仅供初学者参考。希望读者通过阅读此文能有一点收获,哪怕一丁点也是好的。
SNMP简介
SNMP(Simple Network Management Protocol)即简单网络管理协议。它是TCP/IP协议族的一个应用层协议,最早于1988年制定并被IAB(Internet Architecture Board,即互联网架构委员会)采纳。
1991年确定了第一个版本SNMPv1;1992年IETF(Internet Engineering Task Force,即互联网标准化组织)公布了第二版,该版本增强了SNMP的功能;1996年IETF公布了SNMPv2c;1998年公布了第三版,该版本主要增强了安全(防篡改、防窃听)。
注意,SNMP v1、v2c、v3是当前广泛应用的版本。
这里再多说一点IAB。
互联网架构委员会(Internet Architecture Board,简称IAB),又称因特网结构委员会,是国际互联网标准化组织IETF (Internet Engineering Task Force)的顶层委员会,IAB 的下属工作组 IETF (Internet 工程任务组)研发了其中多数协议。互联网架构委员会由13名成员组成,是由探讨与因特网结构有关问题的互联网研究员组成的委员会。其职责是任命各种与因特网相关的组织,如IANA、IESG和IRSG。因特网结构委员会由因特网协会(ISOC)的理事进行任命。TCP/IP 协议集记录在请求注解(RFC)文件中,RFC 文件均由 IETF 委员会起草、讨论、传阅及核准。
IAB电子邮箱:[email protected]
SNMP工作原理
SNMP网络管理模型包括四个关键性部件:管理站、管理代理、管理信息库和网络管理协议。SNMP使用UDP进行无连接操作,SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。
注意,SNMP代理都直接抛弃与自己协议版本不同的数据报。
管理站(Manager)是一个独立的设备或者是一个共享网络中的一员,为管理者和网络管理系统提供接口
管理代理的功能是响应从网管站发出的读取请求(Get)和设置请求(Set),并且给网管站发送事件及告警信息(Trap)
管理信息库(MIB)存放了该设备上被管对象资源的所有信息,每个被管对象有一个惟一对象的对象标识符(OID)
SNMP主要具有以下三个功能:
- 取值(Get)使网管站能够从代理处获取相关对象的值;
- 设置值(Set)使网管站能够在代理上设置相关对象的值;
- 告警信息(Trap)使代理能够通知管理站、代理端(Agent)的管理信息库MIB值的重大变化以及其他重要事件发出。
SNMP报文
SNMP有五种协议数据单元,即五种消息类型:
Get-Request、Get-Next-Request、Get-Response、Set-Request、Trap
SNMP报文组成:
公共SNMP首部、get/set首部、trap首部、变量绑定
SNMP的运行过程
驻留在被管设备上的AGENT从UDP端口161接受来自网管站的串行化报文,经解码、团体名验证、分析得到管理变量在MIB树中对应的节点,从相应的模块中得到管理变量的值,再形成响应报文,编码发送回网管站。网管站得到响应报文后,再经同样的处理,最终显示结果。
SMI & MIB & OID
IETF规定的管理信息库(MIB, Management Information Base)定义了可访问的网络设备及其属性,并规定了由对象识别符OID唯一指定。
MIB是一个树形结构,SNMP协议消息通过遍历SNMP MIB树形目录中的节点来访问网络中的设备。
几个概念:
- Structure of Management Information 管理信息结构
- SMI定义了SNMP所用信息的组织、组成和标识,
为描述MIB对象和描述协议怎样交换信息奠定了基础 - SMI定义的数据类型:简单类型(simple)、
简单结构类型(simple-constructed)、应用类型(application-wide)
- SMI定义了SNMP所用信息的组织、组成和标识,
- Management Information Base 管理信息库
- Object Identifier 对象标识符
SNMP相关的RFC
参考下面两个图表。
SNMP相关的RFC:
- RFC1155,1212,1215 (SMIv1)
- RFC2578,2579,2580 (SMIv2)
- RFC1156,1213 (MIB,MIBII)
- RFC1157 (SNMPv1)
- RFC1901,3416,3417 (SNMPv2c)
- RFC3417,3412,3414 (SNMPv3)
Protocols:
SNMPv1: A Simple Network Management Protocol (RFC 1157), (RFC1157-SNMP)
SMMPv2, SNMPv3: RFC 3416
SMI (Structure of Management Information)
SMIv1: SMI (RFC 1155,RFC1155-SMI), Concise MIB (RFC1212,OBJECT-TYPE Macro), Trap-Type (RFC 1215)
SMIv2: SMIv2 (RFC 2578), Textual Conventions (RFC 2579), Conformance Statements(RFC 2580)
MIB相关的RFC:
- MIB II (RFC 1213)
- Host Resources MIB (RFC 2790)
- ATM MIB (RFC 2515)
- Frame Relay DTE Interface Type MIB (RFC 2115)
- BGP Version 4 MIB (RFC 1657)
- RDBMS MIB (RFC 1697)
- RADIUS Authentication Server MIB (RFC 2619)
- Mail Monitoring MIB (RFC 2249)
- DNS Server MIB (RFC 1611)
Management Information Base (MIB)
MIB-II (RFC 1213, MIB-II Module), SNMPv2-MIB(RFC 1907)
Host Resources MIB (HOST-RESOURCES-MIB,HOST- RESOURCES-TYPES)
Bridge-MIB (RFC 1493), IF-MIB (RFC 2863), EtherLike-MIB (RFC2665)
IP-MIB (RFC 2011), TCP-MIB (RFC 2012), UDP-MIB (RFC2013), SNMP-MIB (RFC 3418)
Remote Monitoring (RMON) MIBs: RMON-1 (RFC 2819), RMON-2 (RFC 2021)
下面给一些参考链接:
SNMP Books or Articles
http://www.faqs.org/faqs/snmp-faq/part1/
http://www.faqs.org/faqs/snmp-faq/part2/
http://www.snmplink.org/
http://www.simple-times.org/
http://docstore.mik.ua/orelly/networking_2ndEd/snmp/index.htm
RFC
https://www.ietf.org/rfc/
https://www.rfc-editor.org/
https://www.rfc-editor.org/search/rfc_search_detail.php
【IANA制定的企业码】
http://www.iana.org/assignments/enterprise-numbers
【SMI OID目录树】
http://www.iana.org/assignments/smi-numbers
RFC1155 Structure and identification of management information for TCP/IP-based internets
RFC1156 Management Information Base for network management of TCP/IP-based internets
RFC1157 Simple Network Management Protocol (SNMP)
RFC1187 Bulk Table Retrieval with the SNMP
RFC1213 Management Information Base for Network Management of TCP/IP-based internets: MIB-II
RFC1214 OSI Internet Management: Management Information Base
RFC1215 A Convention for Defining Traps for use with the SNMP
RFC1514 Host Resources MIB
RFC1628 UPS Management Information Base
RFC1901 Introduction to Community-based SNMPv2
RFC1909 An Administrative Infrastructure for SNMPv2
RFC1910 User-based Security Model for SNMPv2
RFC2567 Design Goals for an Internet Printing Protocol , April 1999
RFC3411 User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3), December 2002
RFC3412 Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)
RFC3413 Simple Network Management Protocol (SNMP) Applications
RFC3414 User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)
RFC3415 View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)
RFC3416 Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP)
RFC3417 Transport Mappings for the Simple Network Management Protocol (SNMP)
RFC3418 Management Information Base (MIB) for the Simple Network Management Protocol (SNMP)
RFC3434 Remote Monitoring MIB Extensions for High Capacity Alarms
RFC5424 The Syslog Protocol
SNMP常用工具
- Mib browser
- Net-SNMP
- snmptranslate
- Mib check
- Snmpwalk
- SugarNMSTool
- Windows snmputil.exe
下载地址就不提供了,请自行挖掘。
SNMP简单应用
网络拓扑发现
可以利用SNMP获取网络设备的路由表,然后由路由表中的target地址再逐级获取下一跳的路由表,最终找出所有的网络节点(子网和路由器)。
管理网络设备
可以借助SNMP来查询网络设备的MIB OID VALUE,例如查询hrDeviceType(OID为.1.3.6.1.2.1.25.3.2.1.2),通过设备返回的VALUE来判定设备类型,例如返回.1.3.6.1.2.1.25.3.1.5表示设备为打印机(此时其hrPrinterTable可用),返回.1.3.6.1.2.1.25.3.1.6表示设备有存储单元(此时其hrDiskStorageTable可用)。