Chinaunix首页 | 论坛 | 博客
  • 博客访问: 705738
  • 博文数量: 67
  • 博客积分: 3148
  • 博客等级: 中校
  • 技术积分: 1084
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-10 14:33
文章分类

全部博文(67)

文章存档

2013年(2)

2012年(11)

2011年(33)

2010年(21)

我的朋友

分类: 系统运维

2010-11-25 17:26:28

   SNMP(Simple Network Management Protocol)实在是一个非常重要的协议,在被监控设备上把的各种参数(包括设置参数、状态参数)写入到MIB库中,我们通过各种网管软件就能读到这些参数(比如:端口流量、CPU使用率等),甚至修改这些参数(比如:端口速率、双工模式、端口MTU等)。平时你telnet到设备通过敲命令修改设备配置,通过网管软件就能在图形界面一样可以实现。在网管软件和被监控设备之间(准确的说代理程序)就是通过SNMP协议来交互的。让我们来看看SNMP的一些详细内容吧。

   一、SNMP组成部分
   SNMP网络管理由下面几个部分组成:
   1、网络管理站或管理进程(Manager)
      就是管理工作站啦,网管软件就安装在此,常见的网络软件如:Cisco Works、HP OpenView、Solarwinds、Microsoft SMS、MRTG、Whatsup等。在SNMP组成部分中相当于Client的角色。

   2、被管理设备
      可网管的路由器、交换机、服务器、打印机等等。

   3、代理程序(Agent)
      集成在被管理的设备当中,运行被管理设备的SNMP服务端程序,是Server的角色,Cisco IOS的SNMP配置命令就是以snmp-server开头的。

   4、MIB(Management Information Base)
      被监控设备上的各种参数(包括设置参数、状态参数)都写到MIB库中,MIB包含所有代理进程的可被查询和修改参数。目前版本为MIB-Ⅱ。讲的MIB就必须要介绍一下对象表示符(OID)这个非常重要的概念。
      OID: 是一个以点(".")分割的整数序列,这些整数构成一个树型结构,类似于DNS或Linux文件系统。OID从树的顶部开始,顶部没有标识,以root表示。OID不是随便分配的,它是由权威机构进行管理和分配的。(见OID结构图)

 
 
SNMP几个组成部分之间的关系,下图可以很清晰得体现出来(SNMP组成部分图示)
 
 
二、SNMP交互过程
    SNMP管理进程和代理进程之间交互的报文分为5种:
    1) get-request操作
    从管理进程向代理进程(udp 161)请求一个或多个数值。linux下的snmpget命令就是完成这个操作。
    2) get-next-request 操作
    向代理进程(udp 161)请求一个或多个参数的下一个参数值。snmpwalk命令就是完成这个操作。
    3) get-response操作
    对管理进程提交的request进行响应,返回一个或多个参数值,从代理进程的UDP 161端口发出。
    4) set-request操作
   设置代理进程的的一个或多参数值,这个可是十分危险的操作。代理进程开放的端口是udp 161,snmpset执行这个操作。
    5) trap操作
    这个就有点特殊了,开放端口的是管理进程udp 162,代理进程主动发送该报文,通知管理进程有某些事情发生。trap是“陷阱”的意思,取这个名字还是非常形象的,一个掉到陷阱中的人,在那一霎那都会本能发出“救命”的呼声,希望有人听到。同样的道理,被监控设备遇到突发情况宕机,最后一刻发出以个trap,通知管理进程出事了,得赶快采取行动。
    再通过“snmp报文交互图”来看看交互的过程。
 
三、SNMP的三个版本
   目前SNMP的发展主要包括三个版本:SNMPv1、SNMPv2以及最新的SNMPv3。总体来看,SNMPv1和v2版本对用户权力的惟一限制是访问口令,而没有用户和权限分级的概念,只要提供相应的口令(即community),就可以对设备进行read或read/write操作,安全性相对来的薄弱。
   SNMPv1使用明文发送,安全性最差。
   SNMPv2相对snmpv1,同样适用明文发送,定义了了一个新的分组类型get-bulk-request,它高效率地从代理进程读取大块数据。
   snmpv3实现提高安全性能的预期目标,尤其是在身份验证(如用户初始接入时的身份验证、信息完整性的分析、重复操作的预防)、加密、授权和访问控制、适当的远程安全配置和管理能力等方面。SNMPv3是在SNMPv2基础之上增加、完善了安全和管理机制。
    可以参考如下抓包截图:
    SNMP V1截图(明文,community:snmpv2):
 
 
SNMPV2抓包截图(明文,community:snmpv2):
 
SNMPV3截图(加密):
 
 
参考:《TCP/IP详解卷一》
    
    
阅读(9230) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~