SNMP规定了5种协议数据单元PDU(SNMP报文),在管理进程和代理之间交换。
●get-request操作:从代理进程处提取一个或多个参数值。
●get-next-request操作:从代理进程处提取紧跟当前参数值的下一个参数值。
●set-request操作:设置代理进程的一个或多个参数值。
●get-response操作:返回一个或多个参数值。操作由代理进程发出,前3种操作的响应操作。
●trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
前3种操作由管理进程向代理进程发出,后面2项操作是代理进程发给管理进程的,前3项操作叫get、get-next和set操作。图9-8描述SNMP的5种报文操作。在代理进程端是用端口161接收get或set报文,在管理进程端是用端口162接收trap报文。
图9-8 SNMP的5种报文操作
图9-9是封装成UDP数据报的5种操作的SNMP报文格式。一个SNMP报文共有3部分组成,即公共SNMP头部、get/set头部trap头部、变量绑定。
图9-9 SNMP报文格式
(1)公共SNMP头部(3个字段)
●版本。写入版本字段的是版本号减1,对于SNMP(即SNMPV1)则应写入0。
●共同体。共同体就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的是6个字符“public”。
●PDU类型。根据PDU的类型,填入0~4中的一数字,其对应关系见表9-2。
表9-2 PDU类型
(www.xing528.com)
(2)get/set头部
●请求标识符。这是由管理进程设置的一个整数值。代理进程在发送get-response报文时也要返回此请求标识符。管理进程可同时向许多代理发出get报文,报文都用UDP传送。设置请求标识符可使管理进程能识别返回的响应报文对应哪一个请求报文。
●差错状态。由代理进程回答时填入0~5中的一个数字,见表9-3的描述。
表9-3 差错状态描述
●差错索引(error index)。当出现noSuchName、badValue或readOnly的差错时,由代理进程在回答时设置的一个整数,指明有差错的变量在变量列表中的偏移。
(3)trap头部
●企业(enterprise)。填入trap报文的网络设备的对象标识符。此对象标识符肯定是在对象命名树上的enterprise结点{1.3.6.1.4.1}下的一棵子树上。
●trap类型。此字段正式名称为generic-trap,共分为表9-4中的7种。
表9-4 trap类型描述
当使用上述类型2、3、5时,在报文后面变量部分的第一个变量应标识响应的接口。
●特定代码(specific-code)。指明代理自定义的时间(若trap类型为6),否则为0。
●时间戳(timestamp)。指明自代理进程初始化到trap报告的事件发生所经历的时间,单位为10ms。例如时间戳为1908表明在代理初始化后1908ms发生了该时间。
(4)变量绑定(variable-bindings)
指明一个或多个变量的名和对应的值。在get或get-next报文中,变量的值应忽略。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。