zoukankan      html  css  js  c++  java
  • snmp简单网络管理协议

    Snmp是什么

    简单网络管理协议(SNMP)是TCP/IP协议簇的一个应用层协议。在1988年被制定,并被Internet体系结构委员会(IAB)采纳作为一个短期的网络管理解决方案;由于SNMP的简单性,在Internet时代得到了蓬勃的发展,1992年发布了SNMPv2版本,以增强SNMPv1的安全性和功能。现在,已经有了SNMPv3版本。

    snmp干什么

    简单网络管理协议(SNMP:Simple Network Management Protocol)是由互联网工程任务组(IETF:Internet Engineering Task Force )定义的一套网络管理协议。该协议基于简单网关监视协议(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。 虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理

    介绍一下snmp

    在使用snmp的工具前,我们要先了解一下snmp的结构。
    一套完整的SNMP系统主要包括管理信息库(MIB)、管理信息结构(SMI)及SNMP报文协议。
    在结构上又分为NMS和Agent

    https://blog.csdn.net/shanzhizi/article/details/11606767
    https://www.ibm.com/developerworks/cn/linux/l-cn-snmp/index.html

    NMS network-manager-system 网络管理系统
    基于TCP/IP的网络管理包含两个部分:网络管理站(也叫管理进程,manager)和被管的网络单元(也叫被管设备)。被管的设备种类繁多,例如:路由器、X终端、终端服务器和打印机等。这些被管设备的共同点就是都运行TCP/IP协议。被管设备端和关联相关的软件叫做代理程序(agent)或代理进程。管理站一般都是带有色彩监视器的工作站,可以显示所有被管理设备的状态(例如连接是否掉线、各种连接上的流量状况等)。

    MIB manager-infomation-base 管理信息库包含所有代理进程的所有可被查询和修改的参数
    SMI Structure of Management Information 关于MIB的一套共用的结构和表示符号。叫做管理信息结构
    SNMP Simple Network Management Protocol 简单网络管理协议 管理进程和代理进程之间的通信协议

    协议

    管理进程和代理进程之间的通信可以有两种方式,一种是管理进程向代理进程发出请求,询问(get)一个具体的参数值(例如询问你产生了多少个不可达的ICMP端口) 修改(set) 按要求改变代理进程的参数值 另外由代理端向管理端主动汇报某些内容(trap)(例如:一个接口掉线了)

    请求方法

    1)get_request (询问) 从代理进程处提取一个或多个参数值
    2)get_next_request (下一次询问) 从代理进程处提取一个或多个参数的下一个参数值
    3)set_request (修改) 设置代理进程一个或多个参数值
    4)get_response (获取请求响应)
    5)trap 代理进程主动发出的报文,通知管理进程有某些事发生。

    这些操作的前4钟操作是简单的请求应答方式,而且在SNMP钟往往使用UDP协议,所以可能发生管理进程和代理进程之间数据包丢失的情况。因此一定要有超时和重传机制。

    管理进程发出的前面三种操作采用UDP的161端口,而trp走的是162端口

    在Linux下使用snmp

    安装

    yum install net-snmp net-snmp-utils -y
    # 查看是否安装完成
    snmpd -v
    snmpwalk -V
    

    其中net-snmp是snmp软件
    net-snmp-utils 是snmp的工具

    使用

    开启snmp服务,snmpd是一个linux的服务,但是我们是通过使用snmpwalk来操作snmp这个服务的

    systemctl start snmpd
    

    常用的snmpwalk数

    -h  # 显示帮助
    -v  # 指定snmp的版本,1或者2或者3
    -c  # 指定连接设备snmp密码。
    -V  # 显示当前snmpwalk命令行版本
    -r  # 指定重试次数,默认为0次
    -t  # 指定每次请求的等待超时
    -l  # 指定安全级别:noAuthNoPriv|authNoPriv|authPriv
    -a  # 验证协议:MD5|SHA。只有-l指定为authNoPriv或authPriv时才需要
    –A  # 验证字符串。只有-l指定为authNoPriv或authPriv时才需要
    –x  # 加密协议:DES。只有-l指定为authPriv时才需要
    –X  # 加密字符串。只有-l指定为authPriv时才需要。
    

    常用方法

    snmpwalk -v 2c -c public 10.1.1.1 .1.3.6.1.2.1.25.1   # 得到取得windows端的系统进程用户数等
    # 其中 -v指定版本  -c 指定密码  10.1.1.1 指定地址(localhost表示本地)  .1.3.6.1.2.1.25.1表示oid 不同的oid表示了不同的操作
    

    常用oid

    http://www.ttlsa.com/monitor/snmp-oid/

  • 相关阅读:
    VScode 修改中文字体
    missing KW_END at ')' near '<EOF>'
    SQL inner join, join, left join, right join, full outer join
    SQL字符替换函数translater, replace
    SQL COOKBOOK SQL经典实例代码 笔记第一章代码
    sqlcook sql经典实例 emp dept 创建语句
    dateutil 2.5.0 is the minimum required version python
    安装postgresql后找不到服务 postgresql service
    Postgres psql: 致命错误: 角色 "postgres" 不存在
    【西北师大-2108Java】第十六次作业成绩汇总
  • 原文地址:https://www.cnblogs.com/Alpacapyer/p/11920542.html
Copyright © 2011-2022 走看看