中查找“SNMP简介”更多相关内容
中查找“SNMP简介”更多相关内容
- ·上一篇文章:闲话SNMP
- ·下一篇文章:以太网供电新标准POE+,IEEE802.3at解析
SNMP简介
它是用于管理IP网络设备的因特网标准协议。重要是用于网络管理系统中监督网络相干设备。重要包含三部分:一个利用层协议,一个数据库模式,一组数字对象。
在范例SNMP利用中,一个或者多个叫做管理器(manager)的管理电脑来监督或者管理一组主机或者设备。每个被管理的系统一直履行代理(agent)的软件部分,把信息通过SNMP协议传送到管理器。
本质上,SNMP代理把管理数据作为变量显示到管理系统上。该协议也容许主动管理任务,比如通过远程修正这些变量达到修正和利用新的配置。这些通过SNMP访问的变量分层次组织起来。这些层次和其他的元数据(比如变量的类型和描写),通常在管理信息数据库(MIB)中描写。
一个SNMP管理网络重要包含三个重要部分:
被管理的设备
代理-在被管理的设备上运行的软件
网络管理系统(NMS)-在管理器上运行的软件
一个被管理的设备就是一个履行SNMP端口的网络节点,容许单向(只读)或者双向访问特定节点信息。被管理设备通过NMS交换节点相干信息。有时候叫做网络单元,被管理的设备可以是任何类型的设备,包含但不限于路由器,访问服务器,交换机,网桥,集线器,IP电话,IP摄像头,主机和打印机。
代理就是在被管理设备上运行的一个网络管理软件模块。代理知道本地管理信息,会把信息转换成SNMP情势。
网络管理系统运行监控和把持被管理设备的利用。NMS供给了网络管理需要的处理能力和内存。
管理信息库(MIB)
SNMP本身没有定义被管理系统需要供给哪些信息(变量)。SNMP而是用了一个把持设置,可用信息都是在管理信息库中定义。MIB描写了一个设备子系统管理数据的结构,它们利用了一个等级命名空间,包含了对象标识符(OID)。每个对象标识符标识了一个通过SNMP可以读或者设置的变量。MIB利用了ASN.1中的符号。
协议详细情况
SNMP在OSI模型第七层-利用层运行。SNMP代理在UDP161端口吸收恳求。管理器可以从任何可用源端口发送恳求到代理的161端口。代理的回应会发回到管理器源端口。管理器在端口162吸收通知(traps和InformRequests)。代理可以从任何端口传输通知。
SNMPv1规定了五个核心协议数据单元(PDU)。两个其它的PDU,GetBulkRequest和InformRequest添加到SNMPv2并且带到了SNMPv3。
所有的SNMP PDU结构如下:
IP header |
UDP header |
version |
community |
PDU-type |
request-id |
error-status |
error-index |
variable bindings |
七个SNMP协议数据单元如下:
GetRequest
一个管理器到代理的恳求,用于获取一个变量或者一系列变量的值。用来获取的变量定义在不同的绑定)中。一个带着当前值的Response会返回。
SetRequest
一个管理器到代理的恳求,用于设置一个变量或者一系列变量的值。带着当前(新值)值的Response会返回。
GetNextRequest
一个管理器到代理的恳求,用来创造可用变量和对应的值。返回一个带着变量绑定的Response,用于安装MIB次序的下一个变量。代理的全部MIB可以通过重复利用GetNextRequest,从OID 0开始。一个表的行数可以通过指定恳求变量绑定中的列OID读取。
GetBulkRequest
GetNextRequest的优化版。一个管理器到代理的多个GetNextRequest重复。返回带多个绑定的恳求Response。PDU中的non-repeaters和max-repetitions字段就是用来把持response举动。从SNMPv2才开始有。
Response
从代理返回GetRequest, SetRequest, GetNextRequest, GetBulkRequest and InformRequest变量绑定和确认到管理器。弊病报告由error-status和error-index字段供给。尽管用了做get和set的response,但是在SNMPv1中仍然叫Get-Response。
Trap
代理到管理器的异步通知。包含当前的sysUpTime值,一个OID标识trap类型和可选变量绑定。Trap的目标地址通过MIB中的trap配置变量决定。Trap消息在SNMPv2中修正了格式,叫做SNMPv2-Trap。
InformRequest
管理器到管理器的确认异步通知。PDU和SNMPv2-Trap格式一样。因为SNMP利用UDP传输,可靠性难免打折,因此利用InformRequest,可以收到后,发回一个确认。