• 简单网络管理协议SNMP


    image-20221121150424242

    一、 网络管理基本概念

    网络管理

    网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能、服务质量等。网络管理常简称为网管。

    主要构件

    image-20221121140308468

    管理站
    • 是整个网络管理系统的核心,是一个高性能工作站,并由网络管理员直接操作和空指。

    • 所有向被管设备发送的命令都是从管理站发出的。

    • 管理站中的关键构件是管理程序(M)

    • 管理程序在运行时就成为管理进程

    • 管理站(硬件)或管理程序(软件)都可称为管理者或管理器

    被管设备
    • 被管设备可以是主机、路由器、打印机、集线器、网桥或调制解调器等。
    • 被管设备也可称为网络元素或简称为网元
    • 每一个被管设备中可能有许多被管对象。(可以是某个硬件也可以是某些软件或硬件的配置参数的集合)
    • 每一个被管设备中都要运行一个程序以便和管理站中的管理程序进行通信。这些运行着的程序叫做网络管理代理程序,或简称为代理。
    网络管理协议
    • 简单网络管理协议SNMP中的管理程序和代理程序按客户服务器方式工作。
    • 管理程序运行SNMP客户程序
    • 而代理程序运行SNMP服务器程序。
    • 在被管对象上运行的SNMP服务器程序不停地监听来自管理站的SNMP客户程序的请求。一旦发现了,就立即返回管理站所需的信息,或执行某个动作。
    • 在网管系统中,往往是一个(或少数几个)客户程序与很多的服务器程序进行交互

    SNMP(简单网络管理协议)

    协议组成

    SNMP本身,管理信息结构SMI和管理信息库MIB

    SNMP:定义了管理站与代理之间所交换的分组格式。所交换的分组包含各代理中的对象名和状态值。SNMP负责读取和改变这些数值

    SMI:定义了命名对象和定义对象类型(包括范围和长度)的通用规则,以及把对象和对象的值进行编码的规则。

    MIB:在被管理的实体中创建了命名对象,并规定了其类型。

    在这里插入图片描述

    与程序设计做对比

    我们在编程时要使用某种语言,而这种语言就是用来定义编程的规则。例如,一个变量名必须从字母开始而后面接着是字母数字。在网络管理中,这些规则由SMI来定义。

    在程序设计中必须对变量进行说明。例如,int counter,表示变量 counter是整数类型。MIB在网络管理中就做这样的事情。MIB给每个对象命名,并定义对象的类型。

    在编程中的说明语句之后,程序需要写出一些语句用来存储变量的值,并在需要时改变这些变量的值。SNMP在网络管理中完成这件任务。SNMP 按照 SMI定义的规则,存储、改变和解释这些已由MIB说明的对象的值。

    总之,SMI 建立规则,MIB对变量进行说明,而SNMP 完成网管的动作。

    二、管理信息结构SMI

    功能

    1. 被管对象应该怎样命名
    2. 用来存储被管对象的数据类型有哪些
    3. 在网络上传送的管理数据应该如何编码

    被管对象的命名

    SMI规定,所有的被管对象都必须处在对象命名树上。

    image-20221121142740380

    被管对象的数据类型

    SMI使用基本的抽象语法记法1(ASN.1)来定义数据类型,但又增加了一些新的定义。

    SMI把数据类型分为两大类:简单类型和结构化类型。

    • 简单类型是最基本的、直接使用ASN.1定义的类型
    • 结构化类型有两种,即sequence和sequence of
    编码方法

    SMI使用ASN.1制定的基本编码规则BER进行数据的编码。

    三、管理信息库MIB

    定义

    管理信息:是指在互联网的网管框架中被管对象的集合。

    管理信息库MIB:被管对象构成了一个虚拟信息存储器,被称为管理信息库MIB

    要点

    • 管理程序就使用MIB中这些信息的值对网络进行管理(如读取或重新设置这些值)
    • 只有在MIB中的对象才是SNMP所能够管理的。

    四、SNMP

    基于UDP服务

    • 运行代理程序的服务器端用数值端口161来接受Get和Set报文和发送响应报文

    • 运行管理程序的客户端则使用数值端口162来接受来自各代理的trap报文

    两种基本管理功能

    • 读操作 ,用Get报文来检测各被管对象的状况
    • 写操作,用Set报文来改变各被管对象的状况

    机制

    探询

    SNMP的get和set功能通过探寻操作来实现,即SNMP管理进程定时向被管理设备周期性发送探询信息

    trap

    SNMP不是完全的探寻协议,它允许不经过询问就能发送某些信息。这种信息称为陷阱(trap),表示它能够捕捉”事件“。但这种陷阱信息的参数是受限制的。

    当被管对象的代理检测到有事件发生时,就检查其门限值。代理只向管理进程报告达到某些门限值的事件(这就叫做过滤)。

    总之,使用探询(至少是周期性地)以维持对网络资源的实时监视,同时也采用陷阱机制报告特殊事件,使得SNMP称为一种有效的网络管理协议。

    五、总结

    总的来说,SNMP协议是负责 管理监控网络设备 流量、运行性能 等信息的协议。

    协议使用c/s模式,基于UDP

    被管设备开放161端口,管理设备发送get和set信息到被管设备的161端口获取信息或者修改信息。

    管理设备开放162端口,被管设备捕捉到事件后,发送trap信息到管理设备的162端口。

  • 相关阅读:
    kafka配合ElasticStack技术栈的搭配使用
    【C语言_线程pthread_互斥锁mutex_条件触发cond 之解析与示例 (开源)】.md updata:23/11/03
    小程序怎么做?个人小程序怎么做?新手教程
    Flutter dart语言特点总结
    数字资产与数据资产
    git提交时会将target也提交
    上海市计算机学会竞赛平台YACS 黑色星期五
    ai创作工具,怎么使用AI创作工具
    解析访问的 IP 地址-获取城市信息
    飞腾 kylin-server v10 arm64 aarch64 anaconda3 conda 非法指令 Illegal instruction 笔记
  • 原文地址:https://blog.csdn.net/qq_45915904/article/details/127965268