snmp协议详解 不用snmp 网络拓扑

一、总体把握

1、基于TCP/IP的网络管理的四个组成部分

(1)管理信息库(MIB),包含代理进程可能被查询或修改的所有参数,即被管理对象的参数。

(2)管理信息结构(SMI),管理信息是一个被管理对象的集合,SMI定义了一个设备维护的规则集,用于对被管理对象进行命名和编码。

(3)SNMP协议,管理进程和代理进程之间的通信协议。SNMP协议是应用层协议,其下层协议一般为UDP,管理进程端口号为162,代理进程端口号为161。

(4)安全机制,在SNMPv1中安全机制很简单,v2和v3在安全机制上作了一些改善。

2、管理信息库和管理信息结构

(1)管理信息结构之于管理信息库类似于模式之于数据库。管理信息结构定义了每一个对象“看上去像什么”,管理信息库则说明每个对象“是什么”。

(2)管理信息库的变量。有两种变量,一是简单变量,一是表格。简单变量对应于MIB树中的叶子结点,其标识方法是在其对象标识后面添加“.0”;表格的标识方法是采用联合索引的方式。

3、SNMP协议和安全机制

(1)SNMP协议主要有五种报文get、getnext、set、getresponse,trap。其中前三种报文是管理进程发出的;后两种是代理进程发出的。

(2)安全机制,SNMPv1采用了“共同体”的字段作为管理进程和代理进程的鉴别密码,只有具有相应的“共同体名”,才有访问权限,这种方式只是简单的明文交换方式;SNMPv2的安全机制没有本质的改进;SNMPv3提出了新的安全机制,同时还有一套专门的网络安全和访问控制规则。

二、SNMP网络管理工具

1、snmpget

是管理进程从代理进程获取信息的命令。

例如:snmpget -c public localhost system.sysDescr.0

system.sysDescr.0 = Unknown

-c 指明共同体字符串。

2、snmpgetnext

3、snmpset

4、snmptrap

5、snmpwalk

6、snmptranslate

三、SNMP体系结构

1、体系结构可满足的应用需求

(1)只具有命令应答器和通知产生器应用程序的SNMP实体(传统的代理端Agent);

(2)具有代理转发应用程序的SNMP实体(传统的SNMP Proxy Agent);

(3)具有命令产生器和通知接收器应用程序的命令行驱动的SNMP实体(传统的管理端Manager);

(4)具有命令产生器和通知接收器应用程序,加上命令应答器和通知产生器应用程序的SNMP实体(传统的SNMP中间水平管理器或双重实体);

(5)具有命令产生器和通知接收器和其他为了管理大量被管节点的应用程序(传统的(网络)管理站)。

2、本体系结构的目标

(1)尽可能多的利用现有资源;

(2)完善对安全机制的支持;

(3)

3、三种安全需求

(1)主要安全威胁:篡改消息、伪装;

(2)次要安全威胁:篡改消息流、泄露;

(3)较小安全威胁:拒绝服务、通信量分解。

4、文档概述

图1所示文档结构定义了SNMP框架。

5、SNMPv3的体系结构

SNMPv3的一个目标是支持一种容易扩展的模块化体系结构,将以前版本中的代理和管理站统一为SNMP实体。SNMP实体由两部分组成:SNMP引擎和SNMP应用程序(如图2)。

SNMP引擎。在同一管理域内,具有唯一的snmpEngineID,SNMP引擎与SNMP实体是一一对应的关系,它包含四个子系统。

lDispatcher(调度程序):在一个SNMP引擎中,具有唯一的调度程序,它允许并发支持多版本SNMP消息。主要功能:

1)从网络上接收或向网络发送SNMP消息;

2)进行版本确认,并且同相应的消息处理模块交互;

3)为SNMP应用程序之间传送PDU提供抽象接口。

lMessage ProcessingSubsystem(消息处理子系统):负责准备要发送的消息和从接收到的消息中提取数据。它包含多个消息处理模型(4个),各个模型对应一个SNMP版本,负责为特定的版本格式准备待发送的消息,和提取特定版本消息的数据。

lSecuritySubsystem(安全子系统):包括基于用户的安全模型和基于共同体的安全模型。提供了诸如鉴别、加解密等安全服务。安全子系统定义可防范的威胁,和提供安全服务使用的安全协议。安全协议界定实现机制和过程,以及提供诸如鉴别和加解密服务的MIB对象。

lAccess ControlSubsystem(访问控制子系统):包括基于视图的访问控制模型和其他访问控制模型。通过访问控制模型提供授权服务,即确定是否允许访问一个管理对象。访问控制模型为了支持访问权决策,详细定义了访问决策功能。

Applications

五种SNMP实体内部应用程序:

lCommand Generator(命令生成器):生成收集或设置管理数据的SNMP命令;

lCommand Responders(命令应答器):提供对管理数据的访问;

lNotification Originators(通知产生器):初始化Trap或Inform消息;

lNotification Receivers(通知接收器):接收并处理Trap或Inform消息;

lProxy Forwarders(代理转发器):转发SNMP实体之间的消息。

这些应用程序都使用SNMP引擎提供的服务。

包含命令生成器、通知产生器、通知接收器的SNMP实体,即传统的SNMP管理站(如图3)

包含一个或多个命令响应器、通知发生器、代理转发器的SNMP实体,即传统的SNMP代理(如图4)

6、抽象服务接口(Abstract Service Interface)

抽象服务接口描述了SNMP实体内各子系统之间概念接口的,它倾向有助于阐述SNMP实体的外部可见行为,而不倾向于约束内部执行的结构或组织形式,抽象服务接口不能认为是API,它由一组定义了所提供服务和抽象数据元素的原语所定义。

(1)Dispatcher Primitives(调度程序原语)

调度程序的典型功能是通过PDU调度程序为SNMP应用程序提供服务。

l产生流出的(Outgoing)请求或通知

PDU调度为应用程序提供如下原语用于向其他SNMP实体发送SNMP请求或通知:

statusInformation = -- sendPduHandle if success

snmp协议详解 不用snmp 网络拓扑

-- errorIndication if failure

sendPdu(

IN transportDomain -- transport domain to be used

IN transportAddress -- transport address to be used

IN messageProcessingModel -- typically, SNMP version

INsecurityModel-- Security Model to use

INsecurityName-- on behalf of this principal

INsecurityLevel-- Level of Security requested

IN contextEngineID -- datafrom/at this entity

INcontextName-- data from/in this context

INpduVersion-- the version of the PDU

INPDU-- SNMP Protocol Data Unit

INexpectResponse-- TRUE or FALSE

)

l处理引入的(Incoming)请求或通知PDU

PDU调度通过如下原语将SNMP PDU传送给应用程序

processPdu(-- process Request/Notification PDU

INmessageProcessingModel-- typically, SNMP version

INsecurityModel-- Security Model in use

INsecurityName-- on behalf of this principal

INsecurityLevel-- Level of Security

INcontextEngineID-- data from/at this SNMP entity

INcontextName-- data from/in this context

INpduVersion-- the version of the PDU

INPDU-- SNMP Protocol Data Unit

IN maxSizeResponseScopedPDU -- maximum size of the ResponsePDU

INstateReference-- reference to state information

)-- needed when sending a response

l产生流出的(Outgoing)响应

PDU调度为应用程序返回SNMP响应PDU给PDU调度提供了如下原语:

result=-- SUCCESS or FAILURE

returnResponsePdu(

INmessageProcessingModel-- typically, SNMP version

INsecurityModel-- Security Model in use

INsecurityName-- on behalf of this principal

INsecurityLevel-- same as on incoming request

INcontextEngineID-- data from/at this SNMP entity

INcontextName-- data from/in this context

INpduVersion-- the version of the PDU

INPDU-- SNMP Protocol Data Unit

IN maxSizeResponseScopedPDU-- maximum size sender can accept

INstateReference-- reference to state information

-- as presented with the request

INstatusInformation-- success or errorIndication

)-- error counter OID/value if error

l处理引入的(Incoming)响应PDU

PDU调度通过如下原语将引入的SNMP响应PDU传送给应用程序:

processResponsePdu( -- process Response PDU

IN messageProcessingModel -- typically, SNMP version

IN securityModel -- Security Model in use

IN securityName -- on behalf of this principal

IN securityLevel -- Level of Security

IN contextEngineID -- data from/at this SNMP entity

IN contextName -- data from/in this context

IN pduVersion -- the version of the PDU

IN PDU -- SNMP Protocol Data Unit

IN statusInformation -- success or errorIndication

IN sendPduHandle -- handle from sendPdu

)

l为操作的SNMP PDU注册职责(响应性)

应用程序可以通过PDU调度的原语为一个特定的contextEngineID或特定的pduType注册或注销职责,可以注册的特定的pduType清单由MessageProcessing Model(消息处理模型)决定。

statusInformation = -- success or errorIndication

registerContextEngineID(

IN contextEngineID -- take responsibility for this one

IN pduType -- the pduType(s) to be registered

)

unregisterContextEngineID(

IN contextEngineID -- give up responsibility for this one

IN pduType -- the pduType(s) to be unregistered

)

注,实现registerContextEngineID或unregisterContextEngineID抽象服务接口,要为注册各种可能的contextEngineId或pduType参数值的应用程序提供具体实现方式。

(2)Message Processing Subsystem Primitives(消息处理子系统原语)

调度程序为了处理特定版本的SNMP消息,同消息处理子系统进行交互。

l准备外流的SNMP请求或通知消息

消息处理子系统提供了准备外流的SNMP请求或通知消息的服务原语。

statusInformation=-- success or errorIndication

prepareOutgoingMessage(

INtransportDomain-- transport domain to be used

INtransportAddress-- transport address to be used

INmessageProcessingModel-- typically, SNMP version

INsecurityModel-- Security Model to use

INsecurityName-- on behalf of this principal

INsecurityLevel-- Level of Security requested

INcontextEngineID-- data from/at this entity

INcontextName-- data from/in this context

INpduVersion-- the version of the PDU

INPDU-- SNMP Protocol Data Unit

INexpectResponse-- TRUE or FALSE

INsendPduHandle-- the handle for matching

-- incoming responses

OUTdestTransportDomain-- destination transport domain

OUTdestTransportAddress-- destination transport address

OUToutgoingMessage-- the message to send

OUToutgoingMessageLength-- its length

)

l准备外流的SNMP响应消息

消息处理子系统提供准备外流的SNMP响应消息的服务原语。

result=-- SUCCESS or FAILURE

prepareResponseMessage(

INmessageProcessingModel-- typically, SNMP version

INsecurityModel-- same as on incoming request

INsecurityName-- same as on incoming request

INsecurityLevel-- same as on incoming request

INcontextEngineID-- data from/at this SNMP entity

INcontextName-- data from/in this context

INpduVersion-- the version of the PDU

INPDU-- SNMP Protocol Data Unit

INmaxSizeResponseScopedPDU-- maximum size able to accept

INstateReference-- reference to state information

-- as presented with the request

INstatusInformation-- success or errorIndication

-- error counter OID/value if error

OUTdestTransportDomain-- destination transport domain

OUTdestTransportAddress-- destination transport address

OUToutgoingMessage-- the message to send

OUToutgoingMessageLength-- its length

)

l从引入的SNMP消息准备数据元素

消息处理子系统提供从引入的SNMP消息————抽象数据元素的服务原语。

result = -- SUCCESS or errorIndication

prepareDataElements(

IN transportDomain -- origin transport domain

IN transportAddress -- origin transport address

IN wholeMsg -- as received from the network

IN wholeMsgLength -- as received from the network

OUT messageProcessingModel -- typically, SNMP version

OUT securityModel -- Security Model to use

OUT securityName -- on behalf of this principal

OUT securityLevel -- Level of Security requested

OUT contextEngineID – data from/at this entity

OUT contextName -- data from/in this context

OUT pduVersion -- the version of the PDU

OUT PDU -- SNMP Protocol Data Unit

OUT pduType -- SNMP PDU type

OUT sendPduHandle -- handle for matched request

OUT maxSizeResponseScopedPDU -- maximum size sender canaccept

OUT statusInformation -- success or errorIndication

-- error counter OID/value if error

OUT stateReference -- reference to state information

-- to be used for possible Response

)

(3) AccessControl Subsystem Primitives(访问控制子系统原语)

应用程序相对于访问控制子系统服务是典型客户机程序。访问控制子系统通过如下原语检查是否允许某个访问。

statusInformation = -- success or errorIndication

isAccessAllowed(

IN securityModel -- Security Model in use

IN securityName -- principal who wants to access

IN securityLevel -- Level of Security

IN viewType -- read, write, or notify view

IN contextName -- context containing variableName

IN variableName -- OID for the managed object

)

(4)Security Subsystem Primitives(安全子系统原语)

消息处理子系统相对于安全子系统服务器是典型的客户机程序。

l产生一条请求或通知消息

安全子系统通过如下原语产生一条请求或通知消息。

statusInformation =

generateRequestMsg(

IN messageProcessingModel -- typically, SNMP version

IN globalData -- message header, admin data

IN maxMessageSize -- of the sending SNMP entity

IN securityModel -- for the outgoing message

IN securityEngineID -- authoritative SNMP entity

IN securityName -- on behalf of this principal

IN securityLevel -- Level of Security requested

IN scopedPDU -- message (plaintext) payload

OUT securityParameters -- filled in by Security Module

OUT wholeMsg -- complete generated message

OUT wholeMsgLength -- length of the generated message

)

l处理引入的消息

安全子系统通过如下原语处理引入的消息

statusInformation = -- errorIndication or success

-- error counter OID/value if error

processIncomingMsg(

IN messageProcessingModel -- typically, SNMP version

IN maxMessageSize -- of the sending SNMP entity

IN securityParameters -- for the received message

IN securityModel -- for the received message

IN securityLevel -- Level of Security

IN wholeMsg -- as received on the wire

IN wholeMsgLength -- length as received on the wire

OUT securityEngineID -- authoritative SNMP entity

OUT securityName -- identification of the principal

OUT scopedPDU, -- message (plaintext) payload

OUT maxSizeResponseScopedPDU -- maximum size sender canhandle

OUT securityStateReference -- reference to security state

) -- information, needed for response

l产生应答消息

安全子系统通过如下原语产生应答消息。

statusInformation =

generateResponseMsg(

IN messageProcessingModel -- typically, SNMP version

IN globalData -- message header, admin data

IN maxMessageSize -- of the sending SNMP entity

IN securityModel -- for the outgoing message

IN securityEngineID -- authoritative SNMP entity

IN securityName -- on behalf of this principal

IN securityLevel -- for the outgoing message

IN scopedPDU -- message (plaintext) payload

IN securityStateReference -- reference to security state

-- information from original request

OUT securityParameters -- filled in by Security Module

OUT wholeMsg -- complete generated message

OUT wholeMsgLength -- length of the generated message

)

(5)公用原语(Common Primitives)

如下原语是多个子系统公用的原语。

lRelease State Reference Information(释放状态索引信息)

所有传送状态索引信息的子系统同时提供了释放状态索引的原语,用于释放存放索引内存。

stateRelease(

IN stateReference -- handle of reference to be released

)

(6)方案图

l命令生成器或通知产生器

这张图反映命令生成器或通知产生器应用程序如何请求、PDU如何发送以及应答如何返回给应用程序的。

l命令应答器应用程序的方案图

本张图给出命令应答器或通知接收器应用程序如何注册PDUType处理,在接收到SNMP消息后如何将PDU调度到应用程序,以及响应如何回送到网络。

7、SNMP管理框架被管对象的定义

(1)SNMP管理框架中用到的文本协定

lSnmpEngineID:是一个SNMP引擎管理的唯一标识,它只用来标势不用于选址,即使使用了地址。它的值不能全0也不能全1或者为空,其初始值可由控制台配置,也可由算法生成,推荐使用算法生成方式。

lSnmpSecurityModel:是在一个SNMP管理体系中唯一标识安全模型的标识符。它的值通过如下方式分配:0不标识任何安全模型;1—255(包括255)保留给IANA;大于255分配给各个企业安全模型。

lSnmpMessageProcessingModel:是在一个SNMP管理体系中唯一标识消息处理模型的标识符。它的值通过如下方式分配:0—255(包括255)保留给IANA;大于255指派给各个企业消息处理模型。

lSnmpSecurityLevel:SNMP消息在哪个安全水平上可以被发送或被处理。它的值有:noAuthNoPriv,AuthNoPriv,AuthPriv。

lSnmpAdminString:一个包含管理信息可被人识别的八位字符串。

(2)管理分配

lsnmpFrameworkAdmin

lsnmpFrameworkMIBObject

lsnmpFrameworkConformance

(3)snmpEngine组

lsnmpEngine

lsnmpEngineID:

lsnmpEngineBoots

lsnmpEngineTime

lsnmpEngineMaxMessageSize

(4)鉴别和加解密协议的注册点

lSnmpAuthProtocols

lSnmpPrivProtocols

(5)一致性信息(conformance information)

lSnmpFrameworkMIBCompliances

lSnmpFrameworkMIBGro

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/319894.html

更多阅读

robots协议详解 robots.txt协议

robots协议也就是robots.txt,网站通过robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。Robots协议是网站国际互联网界通行的道德规范,其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯。因其不是命令,故需要

广告联盟赚钱初识及如何加入详解 广告联盟骗局

广告联盟赚钱初识及如何加入详解——简介现在网络上出现的“广告联盟”,究竟是什么意思?传说的能赚钱到底是真是假?又有哪些广告联盟呢?下面,小编就和大家一一道来。广告联盟赚钱初识及如何加入详解——工具/原料电脑互联网广告联盟赚

tcpip详解笔记(8) traceroute tcpip协议详解卷一

1. traceroute可以用来查询从一台主机到另一台主机所经过的路由。2. 原理ping程序提供一个记录路由选项,但并不是所有的路由机都支持这个选项,而且IP首部选项字段最多也只能存储9个IP地址,因此开发traceroute是必要的。traceroute利用

TCP/IP三次握手详解 tcp ip协议详解

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一

webqq登录协议详解 2016 webqq协议3.0

写下这个标题的时候,您可能要问,webqq登录协议有什么用?很简单,qq所有产品都是采用统一的登录协议加密登录的。也就是说,当您能够通过使用它的协议来登录并获取到令牌后,那么就可以任意的使用qq的各项产品了,如webqq,空间,微博,校友。。等等的

声明:《snmp协议详解 不用snmp 网络拓扑》为网友北辰浅巷墨漓分享!如侵犯到您的合法权益请联系我们删除