10 SNMP

一、网络管理简介

1. 什么是网络管理

  • 对不同人来说是不一样的:
    • 使用协议分析器/小的工具去监视网络活动
      • eg.ping检查;wireshark抓包分析、监控网络;都算在网络管理范围内
    • 基于分布式数据库,放网络管理相关数据,通过网络管理自动对网络中各个网络设备进行轮询autopolling,产生网络拓扑变化和网络交通的实时情况的展示(状态、行为的视图)
      • eg. 监视大的网络情况,搭建专有分布式数据库,建立轮询功能
  • 定义
    • 网络管理是一种可以使用不同工具、应用和设备来帮助管理人员对网络进行管理和维护

2. 网络管理的目的

image-20220524110328501

  • 目的:辅助网络管理人员对网络状况进行管理,保证数据能够以最大效率、对用户透明地穿过网络。
  • 主要作用:能够对网络中出现的干扰disturbance进行监视和控制
  • 希望:效率高、操作透明(用户无感知)保证网络正常运行

3. ISO定义网络管理功能 - FCAPS

由ISO网络管理论坛定义

FCAPS【为以下的缩写】:故障管理、配置管理、计费管理、性能管理、安全管理

image-20220524110514039

image-20220524110722098

image-20220607154214280

3.1 故障管理 Fault Management

用来定位问题

解决步骤:

  • 发现问题
  • 隔离问题
  • 解决问题

3.2 配置管理 Configuration Management

某些网络设备的配置控制着数据网络的行为

配置管理是发现和设置(配置)这些关键设备的过程

  • 网络设备的配置控制着数据网络的行为
  • 配置管理是找到核心设备的配置信息以及对其进行配置

3.3 计费管理 Accounting management

审计和计费,统计分析

  • 对所有网络用户个体行为【tracking individual‘s】、网络资源管理行为进行跟踪,基于跟踪过程进行保证,保证每位用户得到足够的资源
  • 包括对用户的接纳和认证,根据用户对网络的使用策略保证他们能够接入、使用一定的网络资源

3.4 性能管理 Performance management

  • 包括对网络硬件、软件和介质性能的测量
    • 衡量活动:吞吐率、利用率、错误率、响应时间

3.5 安全管理 Secrity management

  • 控制用户对网络资源的访问,区分可信与否
  • 提供对用户访问接入行为记录的方法
  • 基于审计的记录判断有无安全事件发生,有的话对应报警

3.6 Functional Areas之间的关系

image-20220524110845241

  • 配置管理C是中间的,与其他四个管理都有关系,可以为其他网络功能提供管理细节信息,同时其他四个相关功能也要将相关情况反馈给C,为了将来更好的对网络进行配置
  • F——C:实际状态 actual status
  • P——C:一些网络性能参数的信息 Performance Indicator Status
  • 相互之间也有信息的交互,共同完成网络管理的功能

5. 网络管理协议

image-20220524111915777

  • 管理实体和被管理实体之间交互的协议
  • 两种:SNMP(目前使用更多)和CMIS/CMIP,分别来自于不同的网络标准化组织IETF和ISO
    • 一开始想在CMIS和CMIP上扩展,迟迟没有出台
    • 于是IETF以SG(gateway)MP为基础,扩展定义了SNMP

二、SNMP简介

1. 什么是SNMP

  • Simple Network Management Protocol:提供一种监视和管理异构计算机网络的方法

  • 应用层

  • TCP/IP协议套件的一部分

  • 基于UDP

  • 主要使用的端口:

    • 161: SNMP GET/SET messages
    • 162: SNMP Trap messages

2. SNMP与网络管理

  • SNMP实现了网络管理的F-C-P功能【F: Fault】【C: Configuration】【P: Performance】
  • SNMP不能覆盖网络管理的所有功能领域
  • 网络管理是一项系统的工作,SNMP是其中的一个重要工具和协议

4. SNMP模型

image-20230619140105039

一个被管理网络的SNMP模型由四个部分组成:

  • Manage Nodes (==Agent==) 被管

  • Management Stations (==NMS==) 管理

  • Management Information (==MIB==)

  • Management Protocol (==SNMP==)

    蓝色线是网络管理协议

    image-20230619140239182

5. SNMP架构

GetRequest

GetResponse & Trap

manager向agent发消息

image-20220524113724674

三、SNMP网络管理框架

image-20220524113036121

  • MIB【管理信息库】 网络管理数据的信息分布式存储
  • SMI【管理信息结构】 使用定义语言针对数据库中对象MIB object进行描述
  • SNMP协议 manager和被管对象之间通信协议

SNMPv1主要包括4个RFC,分别对SMIv1、MIB、MIB2和SNMPv1本身进行了定义

1. SMI - Structure of Management Information

  • SMI定义了描述管理信息的规则

  • 管理数据的语法、语义、定义良好、无歧义

  • 使用了特殊定义的语言ASN.1实现对被管信息明确的描述,不会产生歧义和不连续性的问题

  • 只是用了ASN.1的一个子集

1.1 什么是ASN.1

image-20220524163810874

  • 定义数据结构的标准化语言,也是国际性标准
  • 定义了数据在通信系统中如何传输,相应的传输规则
  • 广泛应用于通信系统中(邮件系统等)
  • 语法简单例子,age 0到120的整型;user类似于编程语言中结构体,有序集合,包括属性name age address

1.2 SMI 语法

一般都是ASN.1数据类型【整型、二进制数据、标识符、空、有序集合等】

  • Interger
  • Octet String
  • Object Identifier
  • NULL
  • Sequence

SMI-specific数据类型

  • IP Address:描述32位IP地址的数据类型
  • counter计数器
  • timeticks 定义定时器,涉及定时器使用可以用
  • PhysAddress 定义Mac地址

MIBs【Management Information Base】是使用ASN.1规范语言编写,必须遵守SMI规范中指定的语法

2. MIB - Management Information Base

image-20220524114431429

MIB是按层次结构组织的信息集合

  • 管理信息库:由多个managed object组成,每个managed object都有唯一的标识符OID
  • MIB完成了不同managed object的组织
  • 被管对象:
    • 标量对象(指定单一对象)【Scalar Object】
    • 组对象(多个相关对象组合在一起,以列表的形式进行展示)【Tabular Objects】
  • 所有的MIB object都是用SMI(语法)来定义的

2.1 MIB-ISO Object Identifier Tree

image-20220524165648896

  • 为了更好的管理MIB中的object,使用了树形结构,将MIB中被管理对象组织成树形架构identify tree,以文字化的结构组织起来,形成MIB
  • 最上方root,其他节点label+十进制的描述位置的标识值。每个节点的object identifier从上到下连起来到本身,将所经历的节点值串起来,每个节点的object identifier都是唯一标识
  • Internet节点往下就是所有跟互联网相关的object

2.2 SIM MIB示例

image-20220524165702919

  • 向下分支产生
  • udpInDatagrams表示收到udpDatagram个数,既有scalar object(可以用单一数字描述清楚),也有tabular object 比如udpTable(以列表形式存在)

2.3 MIB 命名

image-20220524165722248

  • 每个object都有唯一OID,十进制值表示,也可以加上label串起来一起传递,更容易读出的命名方式

  • OID使用过程:当manager想要得到具体的对象的值的时候,会发送包含该对象OID的getRequest消息。agent收到了request之后会去查找MIB,获得OID对应的值。找到了返回response,将想要的值加上;没找到返回错误信息

2.4 MIB 定义

image-20220607202536459

RFC1212中对MIB定义分为两部分:一部分是文本描述部分,将object分成很多组,还有MIB module 对应具体模块,包含很多object,使用ASN.1的object-type具体类型,对object进行描述,用SMI定义的

例子 描述UDP Module

image-20220607202609494

类型;权限;状态;描述(给用户读);标识符(此处表示在udp节点下,自己的值是1)

UDP module里面的object列表:

image-20220524165757100

3. SNMP 协议

3.1 Traps/Polling

SNMP两种工作模式 traps/polling

image-20220524171126275

==SNMP的两种工作模式呈现互补关系==【两个工作模式是共同存在的】

  • polling mode:管理站轮询——NMS不断向被管对象agent发送request,查询管理信息,收到查询MIB,将数据发送过来
  • trap mode:不是基于request和response进行查询,而是主动上报,用于某些特定的情况下

image-20220524171845523

  • polling
    • manager是client端,agent是server端,agent在161端口监听
    • NMS周期性轮询网络设备进行查询
    • 好处是NMS可以获得全网整体性的视图 big picture,好控制
    • 缺点:造成较大delay,遇到具体时间会进行很多查询工作,轮询会造成大的时延
  • traps
    • 异常事件的提醒:异常事件发生,告诉NMS错误类型、网络设备名字、如果下一步查询的话要查询哪个object
    • 为了效率,message通常比较短,比较简单
    • NMS收到后进一步与agent进行交互以获得更多信息
    • NMS作为server端,agent作为client端,NMS会一直监听TRAP信息(端口162

3.2 SNMP 命令

image-20220524120245756

  • getRequest 管理实体发给ME以获取相应的数据,指定OID instance 的值,获得instance信息
  • getNextRequest,对MIB数据实现遍历。指定OID,反馈列表中的下一个object instance的值
  • getBulkRequest 对第一条命令的改进。NMS发给agent 获取一块/批量数据,效率得到提升
  • informRequest 定义了两个manager之间的通信,相当于两个manager之间MIB信息的交换,提高了通信能力
  • setResponse 设置MIB中的value
  • Trap 当agent中有异常发生的时候,主动上报
getRequest

image-20220524172259229

getRequest携带OID agent针对回复getresponse 回复

getNextRequest

image-20220524120629108

  • 实现了强大的功能:做一个OID子树的遍历(traverse)
  • OID树形结构 指定起点就可以按照某种顺序进行访问
  • 按虚线顺序访问

image-20220607203130869

  • 字典序lexicographic order、深度优先遍历(√)、广度优先遍历
  • 每一个分支遍历完再去查找下一个分支
GetNext使用例子

image-20220524121014739

  • 树形结构,起点T.E,agent反馈T.E的下一个节点object T.E.1.1 的值,再然后下一个节点是T.E.1.2
  • 其实是对指定子树的遍历
  • 直到返回noSuchName表示遍历结束

工具 snmpwalk:给出具体起点,完成某部分的遍历,会返回所以他下面出现的object。查询直到MIB没有更多剩余变量,就退出来了

image-20220524172316658

image-20220524172325841

命令组合使用例子

image-20220524172339177

抓包查看通信过程 snmp161——polling状态

image-20220524172354500

image-20220524172402690

3.3 SNMPv3 安全和管理

  • 加密
  • 验证
  • 反指重放(playback)攻击(模拟真实节点通信)
  • 访问控制

六、总结

image-20220524174847242

思考题

image-20220524174856418

缩写

image-20220524174904394