第25章 SNMP:简单网络管理协议

所属:TCP/IP详解 卷1:协议 来源:TCP/IP详解 卷1:协议

本章介绍SNMP协议,包括SNMP的作用、管理信息库MIB、SNMP报文和共同体名等。


25.1 引言

SNMP的作用

SNMP(Simple Network Management Protocol):

  • 简单网络管理协议
  • 管理网络设备
  • 监控设备状态
  • 配置设备
  • 接收告警

SNMP用于网络管理。


为什么需要SNMP

为什么需要SNMP:

  • 网络设备很多
  • 路由器、交换机、服务器…
  • 要管理它们
  • 要知道它们的状态
  • 出问题要知道
  • 需要一个统一的管理协议

SNMP的作用:

  • 监控:看设备状态
  • 配置:改设备配置
  • 告警:设备主动通知
  • 统一管理

SNMP统一管理网络设备。


SNMP的架构

SNMP的架构:

  1. 管理站(Manager)

    • 管理的一方
    • 运行管理软件
    • 发送查询,接收响应
    • 接收告警
  2. 代理(Agent)

    • 被管理的一方
    • 设备上运行的代理
    • 响应管理站的查询
    • 发送告警
  3. 管理信息库(MIB)

    • 管理的信息
    • 有哪些变量
    • 什么含义
    • 结构化的

Manager-Agent架构。


本章讨论的内容

本章讨论的内容:

  • SNMP的作用
  • 管理信息库MIB
  • SNMP报文格式
  • 共同体名
  • SNMP版本
  • SNMP操作

本章介绍SNMP协议。


25.2 管理信息库MIB

什么是MIB

MIB(Management Information Base):

  • 管理信息库
  • 被管理的信息的集合
  • 定义了可以管理哪些变量
  • 每个变量叫一个对象
  • 有唯一的标识符

MIB是管理信息的集合。


对象标识符

对象标识符(OID, Object Identifier):

  • 每个对象的唯一标识
  • 层次结构
  • 用点分隔的数字
  • 比如:1.3.6.1.2.1.1.1

层次结构:

  • 从根开始
  • 一层一层
  • iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysDescr(1)
  • 就是1.3.6.1.2.1.1.1

OID是层次化的。


MIB-II

MIB-II:

  • 标准的MIB
  • RFC 1213定义
  • 最常用的MIB
  • 包含很多组

MIB-II的组:

组OID说明
system1.3.6.1.2.1.1系统信息
interfaces1.3.6.1.2.1.2接口信息
at1.3.6.1.2.1.3地址转换
ip1.3.6.1.2.1.4IP信息
icmp1.3.6.1.2.1.5ICMP信息
tcp1.3.6.1.2.1.6TCP信息
udp1.3.6.1.2.1.7UDP信息
snmp1.3.6.1.2.1.11SNMP信息

MIB-II是标准的MIB。


例子

常见的MIB对象:

对象OID说明
sysDescr1.3.6.1.2.1.1.1系统描述
sysUpTime1.3.6.1.2.1.1.3系统运行时间
ifNumber1.3.6.1.2.1.2.1接口数量
ifDescr1.3.6.1.2.1.2.2.1.2接口描述
ifOperStatus1.3.6.1.2.1.2.2.1.8接口状态
ifInOctets1.3.6.1.2.1.2.2.1.10入站字节数
ifOutOctets1.3.6.1.2.1.2.2.1.16出站字节数

很多常用的对象。


25.3 SNMP报文

SNMP的操作

SNMP的操作:

操作说明
Get获取一个对象的值
GetNext获取下一个对象的值(遍历)
Set设置一个对象的值
GetResponse响应
Trap告警,代理主动发

五种基本操作。


SNMPv1报文格式

SNMPv1报文格式:

  • 用ASN.1编码
  • 结构比较复杂

主要部分:

  1. 版本:版本号,v1是0
  2. 共同体名:字符串,类似密码
  3. PDU:协议数据单元,具体的操作

PDU类型:

  • GetRequest
  • GetNextRequest
  • SetRequest
  • GetResponse
  • Trap

SNMP报文有版本、共同体名、PDU。


共同体名

共同体名(Community String):

  • 类似密码
  • 验证身份
  • 明文传输
  • 不安全

三种共同体名:

  1. 只读(Read-only)

    • 只能读
    • 不能改
  2. 读写(Read-write)

    • 可以读可以改
    • 权限大
  3. Trap共同体

    • 发Trap用的

共同体名类似密码,明文不安全。


25.4 SNMP版本

SNMPv1

SNMPv1:

  • 第一个版本
  • 简单
  • 功能少
  • 安全性差
    • 明文共同体名
    • 容易被窃听
    • 容易被伪造

v1简单但不安全。


SNMPv2

SNMPv2:

  • 第二个版本
  • 增加了一些功能
    • GetBulk:批量获取
    • Inform:确认的Trap
    • 更多的数据类型
  • 安全性还是有问题
  • 有多个变种
    • SNMPv2c:用共同体名
    • SNMPv2u:用户安全
    • 等等

v2功能多了,安全还是问题。


SNMPv3

SNMPv3:

  • 第三个版本
  • 重点是安全
  • 增加了:
    • 认证:验证身份
    • 加密:加密数据
    • 访问控制:权限管理
  • 安全多了
  • 也更复杂了

v3安全性好。


版本比较

SNMP版本比较:

对比项SNMPv1SNMPv2cSNMPv3
安全性差,明文差,明文好,认证加密
功能少多(GetBulk等)多+安全
复杂度简单中等复杂
兼容性好好需要支持v3
应用还很多也很多越来越多

版本越高越安全越复杂。


25.5 SNMP的工作

Get操作

Get操作:

  • 管理站发GetRequest
  • 指定OID
  • 代理回GetResponse
  • 带对象的值

例子:

  • 管理站:Get sysDescr
  • 代理:sysDescr = “Cisco Router”

Get获取对象的值。


GetNext操作

GetNext操作:

  • 获取OID的下一个对象
  • 用来遍历MIB
  • 不知道具体OID也能遍历

例子:

  • GetNext system
  • 返回sysDescr
  • GetNext sysDescr
  • 返回sysObjectID
  • 继续…

GetNext用来遍历。


Set操作

Set操作:

  • 设置对象的值
  • 管理站发SetRequest
  • 带OID和值
  • 代理设置,回响应

例子:

  • Set sysName = “Router1”
  • 代理改名字
  • 回成功

Set修改对象的值。


Trap操作

Trap操作:

  • 代理主动发
  • 有事件发生时
  • 通知管理站
  • 不用管理站问

常见的Trap:

  • 冷启动
  • 热启动
  • 链路down
  • 链路up
  • 认证失败
  • 等等

Trap是主动告警。


25.6 小结

SNMP概述

  1. 什么是SNMP

    • 简单网络管理协议
    • 管理网络设备
  2. 架构

    • 管理站(Manager)
    • 代理(Agent)
    • MIB
  3. 作用

    • 监控
    • 配置
    • 告警

管理信息库MIB

  1. 什么是MIB

    • 管理信息的集合
    • 对象的集合
  2. OID

    • 对象标识符
    • 层次结构
    • 点分隔的数字
  3. MIB-II

    • 标准MIB
    • 很多组
    • system, interfaces, ip, tcp, udp等

SNMP报文

  1. 操作

    • Get
    • GetNext
    • Set
    • GetResponse
    • Trap
  2. 共同体名

    • 类似密码
    • 明文
    • 只读/读写

SNMP版本

  1. SNMPv1

    • 简单
    • 不安全
  2. SNMPv2

    • 功能多
    • 还是不安全
  3. SNMPv3

    • 安全
    • 认证加密
    • 复杂

SNMP操作

  1. Get

    • 获取值
  2. GetNext

    • 遍历
  3. Set

    • 设置值
  4. Trap

    • 主动告警

关键概念

  1. SNMP

    • 简单网络管理协议
    • Manager-Agent
  2. MIB

    • 管理信息库
    • OID
  3. 共同体名

    • 类似密码
    • 明文
  4. 版本

    • v1, v2, v3
    • 越来越安全
  5. 操作

    • Get, GetNext, Set, Trap

SNMP简单网络管理