精华内容
下载资源
问答
  • 2022-02-23 20:12:21

    一、SNMP的概述

    1、网络管理协议简称为网管协议。

    2、网络管理协议是管理程序和代理程序之间进行通信的规则。

    3、网络管理员利用网络管理协议,通过管理站对网络中的被管设备进行管理。

    4、需要注意的是,网管协议本身不管理网络。

    二、SNMP的工作形式

    1、简单网络管理协议SNMP中的管理程序和代理程序按客户——服务器方式工作。

    管理程序运行SNMP客户程序,向某个代理程序发出请求(或命令) ,代理程序运行SNMP服务器程序,返回响应(或执行某个动作)。

    在网管系统中,往往是一个(或少数几个)客户程序与很多的照务器程序进行交互。如下图所示:

    三、SNMP的管理功能

    1、“读”操作,用get报文来检测各被管对象的状况。

    2、“写” 操作,用set报文来改变各被管对象的状况。

    更多相关内容
  • 简单网管协议

    2015-05-21 17:29:36
    简单网管协议
  • 参考资料-基于简单网管协议SNMP的单片机实现方法.zip
  • 基于简单网管协议SNMP的单片机实现方法.pdf
  • SNMP 简单网管协议 前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB:体系结构,改进后的协议就是著名的SNMP。SNMP的目标是管理...
  • 详细介绍SNMP(简单网络管理协议)的原理和使用方法,对初学者来说很有帮助。-Detailed introduction SNMP (SNMP) The Principle and the use of methods, for the very helpful for beginners.
  • 作用:可以实现对不同种类和不同厂商的网络设备进行统一管理,大大提升了网络管理的效率 监控网络设备运行状态 部署方式: ...SNMP是广泛应用于TCP/IP网络的一种网络管理协议 SNMP具有三个版本: V1:实

    作用:可以实现对不同种类和不同厂商的网络设备进行统一管理,大大提升了网络管理的效率
    监控网络设备运行状态
    部署方式:
    1.采用硬件的方式安装在网络中,其他网络设备作为SNMP客户端向服务器自己的状态信息,服务器以图形界面的形式展现
    2.下载免费的SNMP服务器软件,安装在window主机上,此主机相当于服务器
    所有SNMP客户端必须与服务器能够通信
    应用场景:SNMP用来在网络管理系统NMS和被管理设备之间传输管理信息

    SNMP是广泛应用于TCP/IP网络的一种网络管理协议

    SNMP具有三个版本:
    V1:实现方便,安全性弱
    V2:提供简单认证功能,有一定的安全性。 现在应用最为广泛
    V3:定义了一种管理框架,为用户提供了安全的访问机制(限制接收来自哪个网段的SNMP的信息),可以绑定ACL

    SNMP架构:
    NMS:网络管理软件;向被管理设备发出请求,从而可以监控和配置网络设备
    Agent:被管理设备中的一个代理进程;跟服务器进行通信,被管理设备在接收到NMS发出的请求后,由Agent作出响应操作
    作用: 收集设备状态信息、实现NMS对设备的远程操作、向NMS发送告警消息
    MIB:数据库,它包含了被管理设备所维护的变量(设备状态信息集)
    Agent通过查找MIB来收集设备状态信息

    版本:
    SNMPv1

    • SNMPv1定义了5种协议操作:

    1. Get-Request:NMS从代理进程的MIB中提取一个或多个参数值。
    2. Get-Next-Request:NMS从代理进程的MIB中按序提取下一个参数值。
    3. Set-Request:NMS可以配置MIB中的一些简单参数
    4. Response:代理进程返回一个或多个参数值。它是前三种操作的响应操作。
      Trap:代理进程主动向NMS发送报文,告知设备上发生的紧急或重要事件

    SNMPv2c

    • SNMPv2c新增了2种协议操作:
    5. GetBulk:相当于连续执行多次GetNext操作。在NMS上可以设置被管理设备在一次GetBulk报文交互时,执行GetNext操作的次数。
    Inform:被管理设备向NMS主动发送告警。与trap告警不同的是,被管理设备发送Inform告警后,需要NMS进行接收确认。如果被管设备没有收到确认信息则会将告警暂时保存在Inform缓存中,并且会重复发送该告警,直到NMS确认收到了该告警或者发送次数已经达到了最大重传次数

    SNMPv3

    • SNMPv3的实现原理和SNMPv1/SNMPv2c基本一致,主要的区别是SNMPv3增加了身份验证和加密处理
    6. NMS向Agent发送不带安全参数的Get请求报文,向Agent获取安全参数等信息。
    7. Agent响应NMS的请求,向NMS反馈所请求的参数。
    8. NMS向Agent发送带安全参数的Get请求报文。
    Agent对NMS发送的请求消息进行认证,认证通过后对消息进行解密,解密成功后,向NMS发送加密的响应

    SNMP配置 在被管理设备配置
    [RTA]snmp-agent 开启SNMP功能
    [RTA]snmp-agent sys-info version v2c 设置SNMP版本
    [RTA]snmp-agent trap enable 开启主动告警功能(v1没有这个功能)
    [RTA]snmp-agent trap source GigabitEthernet0/0/1 指定发出告警消息的接口
    配置验证:display snmp-agent sys-info

    展开全文
  • 简单网络管理协议SNMP

    2020-03-20 12:06:10
    前言介绍 SNMP是目前TCP/IP网络中应用最广的网络管理协议,最初...简单、易实现、成本低 可伸缩性;SNMP可管理绝大部分符合Internet标准的准备 扩展性;可定义新的被管对象,方便扩展管理能力 健壮性;即使被管设备...

    前言介绍

    SNMP是目前TCP/IP网络中应用最广的网络管理协议,最初由Internet工程任务组IETF为解决Internet上路由器管理提出的。

    SNMP是应用层协议,是TCP/IP协议簇的一部分,并且是面向无连接的协议。
    SNMP特点列表:

    简单、易实现、成本低
    可伸缩性;SNMP可管理绝大部分符合Internet标准的准备
    扩展性;可定义新的被管对象,方便扩展管理能力
    健壮性;即使被管设备发生严重错误,也不会影响管理者正常工作
    
    

    SNMP的发展

    1.网络管理协议产生前,管理者需学习不同厂家、不同设备的各种数据获取方法;
    2.首先开始研究网络管理通信标准的是ISO,1979年针对OSI7层模型提出CMIS(公共管理信息服务)和CMIP(公共管理信息协议)。
    3.IETF在CMIP协议基础修改后称为CMOT,但由于CMOT迟迟未出台,IETF决定把已有的SGMP(简单网管监控协议)修改后作为临时解决方案。这就是SNMP v1。
    4.IETF于1992年开始起草SNMP v2版本,以增加验证、加密等安全性,但最终未公布。
    5.IETF于1997年成立SNMP v3工作组,重点实现安全、可管理体系结构和远程配置。是目前的使用标准。

    SNMP工作机制

    SNMP数据收集方式:从被管设备中收集数据主要有轮询(Pollingonly)和基于中断(Interruptbased)的方法。

    SNMP使用代理程序收集网络通信信息和设备统计信息,并存储于MIB中,网络管理人员通过向代理的MIB发出查询信号得到这些信息,这个过程就是轮询

    轮询的缺点是信息的实时性较差,尤其是错误的实时性。

    基于中断是当有异常事件发生时,可以立即通知网络管理工作站,实时性强。缺点是产生错误或异常需要系统资源,将会影响网络管理的主要功能。

    因此,SNMP采用两者结合:面向异常事件的轮询方法
    网络管理工作站轮询被管设备中的代理来收集数据,并在控制台用数字或图形的方法显示。被管设备中代理可以在任何时候向网络管理工作站报告错误情况,并不需要等到网络管理工作站轮询时才报告。

    SNMP基本管理操作

    SNMP包含两类管理操作命令:读取MIB对象实例的值重设MIB对象实例的值。

    工作过程网络管理系统周期性轮询被管设备,读取网络管理电力返回的MIB信息,并根据信息作出相应响应,据此实时监视和控制网络管理系统;被管设备发生故障时主动以异常事件方式通知网络管理系统,由系统作出响应。
    在这里插入图片描述
    Get——用于从代理进程提取MIB参数值
    Get Next——访问被管设备,从MIB树上检索指定对象的下一个对象
    Set——设定MIB对象实例值
    Get Response——用于代理向网络管理工作站响应请求消息,包含响应标识和响应信息
    Trap——代理使用Trap原语向管理系统报告异常事件的发生。
    Trap使用UDP 162端口,其他使用UDP161端口。

    在这里插入图片描述

    原文:
    作者:晨起不知露重
    链接:https://www.jianshu.com/p/1ead20bcb5cd
    来源:简书

    展开全文
  • SNMP(简单网络管理协议):专门用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络...

    一、简介

    SNMP(简单网络管理协议): 专门用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。 SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。

    SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB,改进后的协议就是著名的SNMP。

    • 管理信息结构SMI(Structure ofManagement Information)定义了SNMP框架所用信息的组织和标识,为MIB定义管理对象及使用管理对象提供模板。
    • 管理信息库MIB(,Management Information Base定义了可以通过SNMP进行访问的管理对象的集合,一种树状数据库,MIB管理的对象,就是树的端节点。
    • 对象识别符OID(Object Identifier)定义了端节点的唯一位置和唯一名字,其命名规则就是父节点的名字作为子节点名字的前缀。 

    二、架构原理

     一个SNMP管理的网络由下列三个关键组件组成:

    • 网络管理系统(NMS,Network-management systems)NMS运行应用程序,监控被管理的设备。网络管理系统提供网络管理需要的大量运算和记忆资源。
    • 被管理的设备(managed device)被管理的设备是一个网络节点,它包含一个SNMP agent。被管理的设备通过管理信息库(MIB)收集并存储管理信息,并且让网络管理系统通过agent读取这些信息。
    • 代理者(agent)agent是一种存在于被管理的设备中的网络管理软件模块。agent控制本地机器的管理信息,以和SNMP兼容的格式传送这项信息。

    主代理是一个在可运行的SNMP网络组件上运作的软件,可回应从管理站发出的SNMP要求。它的角色类似C/S术语中的服务器。主代理依赖子代理提供有关特定功能的管理信息。

    子代理是一个在可运行的SNMP网络组件上运作的软件,运行在特定子系统的特定管理信息库(MIB,Management Information Base)中定义的信息和管理功能。子代理的一些能力有:搜集主代理的信息、配置主代理的参数、回应管理者的要求、产生警告或陷阱trap

    主代理和子代理的角色可以合并,在这种情况下我们可以简单的称之为代理(agent)。

    ​SNMP定义了五种Manager与Agent之间的通讯形式。

    1. Get-request
    2. Get-next-request
    3. Set-request
    4. Get-response
    5. Trap

    前三项都是属于Manager向Agent发出的讯息,后两项则属于Agent向Manager发出的讯息

    Trap:当设备发生了各种事件之后,产生的MIB信息由SNMP代理主动向NMS发送,是不需要NMS请求的,NMS收到之后不需要向SNMP代理发送确认消息,SNMP发出去的Trap是根本不知道NMS是否收到,自己发送完毕之后,这些MIB信息会马上删除,不会驻留内存里面。

    informs:informs和Trap恰好相反、设备发生事件后,这些信息并不会主动向NMS通告,除非NMS发送requst来查询,然后才会发出去,但是发出去的informs之后会保留在内存里面,当NMS收到informs之后必须向SNMP代理发送确认消息,如果不发送确认消息,SNMP代理会重复多次发送informs(informs具有可靠性)

    通过NMS来更改设备上的配置,查询设备信息,发送的数据包为Get,更改设备的配置为Set

    三、现存版本

    • SNMPV1:该版本基于简单网关监视协议发展而来的,于1988年发布,安全性差,错误状态较少。典型的,SNMP为代理使用UDP端口161,为管理站使用UDP端口162。客户端的认证使用明码传送。
    • SNMPV2SNMP v2c(基于社区的SNMP第二版)定义于RFC 1901–RFC 1908,SNMP v2u(基于用户的SNMP第二版)定义于RFC 1909–RFC 1910。由于高复杂度,产生了商业化的变种,称为SNMP v2*,而且它的机制最后被SNMP第三版的两个安全性框架之一采用。
    • SNMPV3:Internet工程工作小组(IETF)把在RFC3411-RFC3418(STD0062)中定义的SNMP第三版作为2004年的标准版本,以替代SNMPV1正式成为标准协议,SNMP第三版提供三项重要的服务:认证、隐私和访问控制。

    四、技术优点

    SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议。它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数值、监控设备状态、自动发现网络故障、生成报告等。

    SNMP具有以下技术优点:

    1. 基于TCP/IP互联网的标准协议,传输层协议一般采用UDP。
    2. 自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。
    3. 屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP只提供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相对独立,从而实现对不同厂商设备的管理。
    4. 简单的请求—应答方式和主动通告方式相结合,并有超时和重传机制。
    5. 报文种类少,报文格式简单,方便解析,易于实现。
    6. SNMPv3版本提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,增强了安全性。

    五、snmp4j代码示例

    先看一下SNMP协议要传输的内容:SNMP的5种协议数据单元_协议分析网

    接下来就是用SNMP4J协议的jar包来完成各个功能:http://www.snmp4j.org/html/download.html

    SNMP4J把开发包分为了两个,一个SNMP4J.jar主要负责get,trap,set,一个是SNMP4J-Agent.jar主要负责作为一个网元被管理。

    5.1、开发一个Agent

     需要用到两个配置文件bc和cfg文件,可以在这里下载:http://download.csdn.net/detail/three_man/7477991

    import java.io.File;  
    import java.io.IOException;  
    import java.util.ArrayList;  
    import java.util.List;  
    import org.snmp4j.agent.BaseAgent;  
    import org.snmp4j.agent.CommandProcessor;  
    import org.snmp4j.agent.DuplicateRegistrationException;  
    import org.snmp4j.agent.io.ImportModes;  
    import org.snmp4j.agent.mo.DefaultMOTable;  
    import org.snmp4j.agent.mo.MOTableRow;  
    import org.snmp4j.agent.mo.snmp.RowStatus;  
    import org.snmp4j.agent.mo.snmp.SnmpCommunityMIB;  
    import org.snmp4j.agent.mo.snmp.SnmpNotificationMIB;  
    import org.snmp4j.agent.mo.snmp.SnmpTargetMIB;  
    import org.snmp4j.agent.mo.snmp.StorageType;  
    import org.snmp4j.agent.mo.snmp.VacmMIB;  
    import org.snmp4j.agent.security.MutableVACM;  
    import org.snmp4j.mp.MPv3;  
    import org.snmp4j.security.SecurityLevel;  
    import org.snmp4j.security.SecurityModel;  
    import org.snmp4j.security.USM;  
    import org.snmp4j.smi.Integer32;  
    import org.snmp4j.smi.OID;  
    import org.snmp4j.smi.OctetString;  
    import org.snmp4j.smi.Variable;  
      
    public class MyAgent extends BaseAgent {  
        private List<DefaultMOTable> moTables = new ArrayList<DefaultMOTable>();  
        private String community;  
          
        protected MyAgent(File bootCounterFile, File configFile, List<DefaultMOTable> moTables, String community) {  
            super(bootCounterFile, configFile, new CommandProcessor(new OctetString(MPv3.createLocalEngineID())));  
            this.moTables = moTables;  
            this.community = community;  
        }  
          
        @Override  
        protected void registerManagedObjects() {  
            try {  
                for (DefaultMOTable table : moTables) {  
                    server.register(table, null);  
                }  
            } catch (DuplicateRegistrationException e) {  
                e.printStackTrace();  
            }  
        }  
          
        public void startUp(){  
            try {  
                this.init();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
            this.loadConfig(ImportModes.REPLACE_CREATE);  
            this.addShutdownHook();  
            this.getServer().addContext(new OctetString(community));  
            this.finishInit();  
            this.run();  
            this.sendColdStartNotification();  
        }  
          
        /** 
         * to set community 
         */  
        @Override  
        protected void addCommunities(SnmpCommunityMIB communityMIB) {  
            Variable[] com2sec = new Variable[] {  
                    new OctetString(community),                     // community name  
                    new OctetString("cpublic"),                 // security name  
                    getAgent().getContextEngineID(),            // local engine ID  
                    new OctetString(community),                     // default context name  
                    new OctetString(),                          // transport tag  
                    new Integer32(StorageType.nonVolatile),     // storage type  
                    new Integer32(RowStatus.active)             // row status  
            };  
            MOTableRow row =  
                communityMIB.getSnmpCommunityEntry().createRow(  
                        new OctetString("public2public").toSubIndex(true), com2sec);  
            communityMIB.getSnmpCommunityEntry().addRow(row);  
      
        }  
    } 
    •  主要的代码是需要继承BaseAgent
    • 需要设置community
    • 需要注册Table,这个注册中的内容将是供给get和walk的内容。
    • 可以从MIB直接构建Agent,可能需要的包为:mibble-mibs是能够独MIB结构。这个也提供个下载地址吧: http://download.csdn.net/detail/three_man/7478061

    5.2、Trap Receiver

    import java.io.IOException;  
    import java.util.logging.Logger;  
    import org.snmp4j.MessageDispatcherImpl;  
    import org.snmp4j.Snmp;  
    import org.snmp4j.TransportMapping;  
    import org.snmp4j.mp.MPv2c;  
    import org.snmp4j.smi.Address;  
    import org.snmp4j.smi.GenericAddress;  
    import org.snmp4j.smi.UdpAddress;  
    import org.snmp4j.transport.DefaultUdpTransportMapping;  
    import org.snmp4j.util.MultiThreadedMessageDispatcher;  
    import org.snmp4j.util.ThreadPool;  
    import com.prince.snmp.tool.Command;  
    import com.prince.snmp.tool.util.Configure;  
    import com.prince.snmp.tool.util.Const;  
      
    /** 
     * 构建一个多线程的Trap Receiver 
     * @author wangzijian 
     * 
     */  
    public class SnmpReceiver implements Command{  
        private final Logger log = Logger.getLogger(SnmpReceiver.class.getName());  
      
        @Override  
        public void startUp() throws IOException {  
            log.info("Snmp Trap Receiver Start");  
            log.info("listened on " + Configure.getInstance().getUdpTrapIpPort());  
            ThreadPool pool = ThreadPool.create(Const.THREAD_POOL_NAME, Const.AGENT_THREAD_NUM);  
            MultiThreadedMessageDispatcher dispatcher = new MultiThreadedMessageDispatcher(pool, new MessageDispatcherImpl());  
            Address listenAddress = GenericAddress.parse(Configure.getInstance().getUdpTrapIpPort());  
            TransportMapping transport = new DefaultUdpTransportMapping((UdpAddress) listenAddress);  
            // 构建SNMP,并且使其开始监听  
            Snmp snmp = new Snmp(dispatcher, transport);  
            snmp.getMessageDispatcher().addMessageProcessingModel(new MPv2c());  
            snmp.listen();  
            snmp.addCommandResponder(new CommandResponderImpl());  
        }  
    }  
    
    
    package com.prince.snmp.tool.receiver;  
      
    import java.util.List;  
    import java.util.logging.Logger;  
    import org.snmp4j.CommandResponder;  
    import org.snmp4j.CommandResponderEvent;  
    import org.snmp4j.PDU;  
    import org.snmp4j.smi.OID;  
    import org.snmp4j.smi.VariableBinding;  
      
    public class CommandResponderImpl implements CommandResponder {  
        private final Logger log = Logger.getLogger(CommandResponderImpl.class.getName());  
          
        @Override  
        public void processPdu(CommandResponderEvent event) {  
            PDU pdu = event.getPDU();  
            if(PDU.TRAP == pdu.getType()){  
                operate(pdu);  
            }else{  
                log.info("pdu method is:" + pdu.getType() + " not a trap");  
            }  
              
        }  
      
        private void operate(PDU pdu) {  
            List<VariableBinding> bindings = pdu.getBindingList(new OID(".1"));  
              
            for (VariableBinding binding : bindings) {  
                System.out.println(binding.getOid() + "====" + binding.getVariable().toString());  
            }  
        }  
    }  
    •  需要一个多线程的服务器MultiThreadedMessageDispatcher
    • 还需要一个处理类 CommandResponderImpl  snmp.addCommandResponder
    • 在处理类中能够得到PDU,这个类不只可以作为Receiver还能够开发为Agent,但是需要自己来写很多逻辑,还有可能用到文件或者内存数据库

    5.3、send trap

    package com.prince.snmp.tool.trap;  
      
    import java.io.IOException;  
    import java.lang.reflect.InvocationTargetException;  
    import java.util.List;  
    import java.util.Vector;  
    import org.snmp4j.CommunityTarget;  
    import org.snmp4j.PDU;  
    import org.snmp4j.Snmp;  
    import org.snmp4j.TransportMapping;  
    import org.snmp4j.event.ResponseEvent;  
    import org.snmp4j.smi.Address;  
    import org.snmp4j.smi.GenericAddress;  
    import org.snmp4j.smi.OctetString;  
    import org.snmp4j.smi.UdpAddress;  
    import org.snmp4j.smi.VariableBinding;  
    import org.snmp4j.transport.DefaultUdpTransportMapping;  
    import com.prince.snmp.tool.Command;  
    import com.prince.snmp.tool.trap.dataGenerator.ITrapGenerator;  
    import com.prince.snmp.tool.util.Configure;  
      
    public class TrapSender implements Command{  
        private Snmp snmp;  
        private Address targetAddress;  
        private ITrapGenerator generator;  
          
        public TrapSender(ITrapGenerator generator) {  
            this.generator = generator;  
            targetAddress = GenericAddress.parse(Configure.getInstance().getUdpTrapIpPort());  
            TransportMapping<UdpAddress> transport = null;  
            try {  
                transport = new DefaultUdpTransportMapping();  
                snmp = new Snmp(transport);  
                transport.listen();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
          
        public void sendTrap(){  
            CommunityTarget target = new CommunityTarget();  
            target.setAddress(targetAddress);  
            target.setRetries(Configure.getInstance().getRetries());  
            target.setTimeout(Configure.getInstance().getTimeOut());  
            target.setCommunity(new OctetString(Configure.getInstance().getCommunity()));  
            target.setVersion(Configure.getInstance().getSnmpVersion());  
              
            List<TrapData> datas = generator.generateTrapData();  
              
            try {  
                for (TrapData trapData : datas) {  
                    sendPdu(trapData, target);  
                }  
            } catch (IllegalAccessException e) {  
                e.printStackTrace();  
            } catch (InvocationTargetException e) {  
                e.printStackTrace();  
            } catch (NoSuchMethodException e) {  
                e.printStackTrace();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
          
        private void sendPdu(TrapData trapData, CommunityTarget target) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException, IOException {  
            PDU pdu = MoToPdu.moToPdu(trapData);  
            ResponseEvent respEvnt = snmp.send(pdu, target);  
              
            // 解析Response    
            if (respEvnt != null && respEvnt.getResponse() != null) {    
                Vector<VariableBinding> recVBs = (Vector<VariableBinding>) respEvnt.getResponse().getVariableBindings();    
                for (int i = 0; i < recVBs.size(); i++) {    
                    VariableBinding recVB = recVBs.elementAt(i);    
                    System.out.println(recVB.getOid() + " : " + recVB.getVariable());    
                }    
            }  
        }  
      
          
    }  
    •   trap主要注意必须设置两个VariableBingding

                    pdu.add(new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(trap.getSysUpTime())));

                    pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID, new OID(trap.getTrapOid())))

    5.4、get

    private static void simpleGet() throws IOException {  
        TransportMapping<UdpAddress> transport = new DefaultUdpTransportMapping();  
        Snmp snmp = new Snmp(transport);  
        transport.listen();  
          
        CommunityTarget target = new CommunityTarget();   
        target.setCommunity(new OctetString("CONV"));  
        Address targetAddress = GenericAddress.parse("udp:10.141.43.237/161");   
        target.setAddress(targetAddress);  
        target.setRetries(3);  
        target.setTimeout(3000);  
        target.setVersion(SnmpConstants.version2c);  
          
        PDU pdu = new PDU();    
           pdu.add(new VariableBinding(new OID(".1.3.6.1.4.1.7569.1.2.1.23.3.1")));    
           pdu.setType(PDU.GETBULK);  
           pdu.setMaxRepetitions(20);  
           pdu.setNonRepeaters(0);  
             
           ResponseEvent respEvnt = snmp.send(pdu, target);    
           if (respEvnt != null && respEvnt.getResponse() != null) {    
                  Vector<VariableBinding> recVBs = (Vector<VariableBinding>) respEvnt.getResponse().getVariableBindings();    
                  for (int i = 0; i < recVBs.size(); i++) {    
                         VariableBinding recVB = recVBs.elementAt(i);    
                         System.out.println(recVB.getOid() + " : " + recVB.getVariable());    
      
                  }    
      
           }    
    }  
    •  get相对于比较简单,资料也比较多。主要是设定pdu.setType(PDU.GETBULK);
    • 利用getnext和一些判断可以实现walk.
    • http://blog .sina.com.cn/s/blog_6cb15f8f0100yx4p.html 这个哥们儿写得非常好

    具体的代码没有写,因为下一篇会共享一个小的工具,可以以配置文件为基础来构建Receiver,发送Trap,构建Agent等。

    六、附录

    具体参考:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

    简单网络管理协议SNMP(史上最全)_奇妙之二进制的博客-CSDN博客_snmp是什么协议

    展开全文
  • 计算机网络 简单网络管理协议 SNMP

    千次阅读 2020-12-15 12:46:32
    网络管理常简称为网管。 网络管理并不是指对网络进行行政上的管理。 网络管理的五大功能 故障管理:故障检测、隔离和纠正。 配置管理:初始化网络、并配置网络。 计费管理:记录网络资源的使用。 性能管理:估价...
  • SNMP(简单网络管理协议)和CMIP(通用管理信息协议)都是目前世界上最主要的两种网管协议。总的来说,SNMP和CMIP两种协议是相同点比较多。 首先两者的管理目标和基本组成部分是相同的,由5个部分组成:被管设备,...
  • 基于简单网络管理协议的分布式网管模型的研究
  • SNMP简单到不简单网管协议

    千次阅读 2020-07-27 09:48:06
    1、 SNMP是简单网管协议,可以为网管软件提供图形化界面网管能力; 2、 SNMP提供给用户进行网络管理时,权限分为读和写,可以分别设置; 3、 SNMP有3个版本v1、v2c和v3,其中v1和v2c只拥有密码而v3提供用户名和密码...
  • 简单网络管理协议SNMP(史上最全)

    万次阅读 多人点赞 2018-04-20 11:38:26
    简单网络管理协议(SNMP)是TCP/IP协议簇的一个应用层协议。在1988年被制定,并被Internet体系结构委员会(IAB)采纳作为一个短期的网络管理解决方案;由于SNMP的简单性,在Internet时代得到了蓬勃的发展,1992年...
  • 简单网管协议代理 SNMP PROXY系统设计

    千次阅读 2008-07-24 14:52:00
    信息来源于:上海电信信息网络部简单网管协议代理 SNMP PROXY系统设计廖文昭摘要:简单网络管理协议(SNMP)是目前TCP/IP网络中应用最为广泛的网络管理协议,并成为了网络管理的事实上的标准。基于基础SNMP协议的...
  • 网络管理之SNMP协议

    千次阅读 2019-05-24 10:04:46
    SNMP(simple network management protocol ,简单网络管理协议)是网络管理程序(NMS)和代理程序(Agent)之间的通信协议。它规定了在网络环境中对设备进行管理的统一标准,包括管理框架、公共语言、安全和访问...
  • 内核的处理器,结合Broadcom公司的千兆交换芯片BCM53115,构建集中式网管硬件平台,可以向上提供5个千兆以太网接口,最多可以同时管理4个EOC协议芯片,使得CPU的利用率得到很大的提升。该系统遵循广电网络的MIB库...
  • 基于SNMP协议的光网络网管系统设计与实现,郭鹏飞,王宏祥,本论文设计并实现了一种基于SNMP协议的光网络网管系统,为管理光网络提供一个统一的用户操作界面。SNMP简单网络管理协议是网络管理�
  • 计算机网络管理 课件

    2009-06-12 11:59:06
    计算机网络管理课件 提供优质课件下载 计算机网络管理课件 提供优质课件下载
  • 随着网络规模不断扩大,网络结构日益...设计实现了一个基于Web技术且支持SNMP协议的网络管理系统。该系统汲取了SNMP的简单、易用、应用广泛的优点,同时又融入了Web技术,使该系统具有了可移动性和平台独立性等特点。
  • 目前典型的网络管理体系结构是OSI/CMIP(通用管理信息协议)和Internet/SNMP(简单网络管理协议)管理体系结构。随着电信网络规模的不断扩大和不同专业网间联系的加强,需要建立统一的综合网络管理体系。综合网管系统...
  • net snmp的源码,最新版,简单网络管理协议
  • 网管型和非网管网络交换机在各个方面存在差异,包括控制器和成本。与非网管型交换机相比,网管型交换机具有更多的功能,但是它对人员有一定的要求,需要具备专业的知识才能驾驭得了。管理型交换机可以更好地管理经过...
  • Moxa MXview是一个基于SNMP协议网管软件,可以扫描整个网络,创建实时的网络拓扑图,支持简单的集中式监控,以及针对分布式子网所带来的复杂的工业网络故障进行排除。 产品经理杨和晋在谈及MXview时,这样说道,...
  • 交换机可以说是局域网里面相对较重要的网络连通设备,在一些公共场所局域网的管理还是会依靠交换机来进行。但是就目前来说还有很多朋友对于网管交换机相对比较陌生。那么,接下来飞畅科技的小编就... 简单地讲网管交换
  • https://www.cnblogs.com/chling/p/11531466.html
  • Net-SNMP是一个免费的、开放源码的简单网络管理协议(Simple Network Management Protocol)软件实现,以前称为UCD-SNMP。它包括agent和多个管理工具的源代码,支持多种扩展方式。NET-SNMP支持SNMP v1, SNMP v2c 与 ...
  • Moxa MXview是一个基于SNMP协议网管软件,可以扫描整个网络,创建实时的网络拓扑图,支持简单的集中式监控,以及针对分布式子网所带来的复杂的工业网络故障进行排除。 产品经理杨和晋在谈及MXview时,这样说道,...
  • 简单网络管理协议SNMP初学者指南

    千次阅读 2019-06-23 15:39:23
    简单网络管理协议用于在网络管理系统和网络元素之间传递管理信息。 使用SNMP,网络运营者可以管理其网络元素,识别故障并配置远程系统。 让我们举一个简单的例子来理解SNMP。 考虑具有1000个网络元素的网络,如...
  • 关于交换机这一块,我前面介绍过它的分类,看过的朋友应该都知道,交换机可以分为网管型交换机和非网管型交换机,看其字面意思已经很明确的表达了二者之间的区别,但至于二者之间有哪些详细地区别呢?接下来就由杭州...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,525
精华内容 6,210
关键字:

简单网管协议