欢迎来到天天文库
浏览记录
ID:44173620
大小:51.63 KB
页数:11页
时间:2019-10-19
《snmp报文分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SNMP报文格式分析1.SNMP报文格式1.1snmp简介1.1.1snmp工作原理SNMP采用特殊的客户机/服务器模式,即代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。管理站和代理端使用MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现相应的MIB对象,使得双方可以识别对方的数据,实现通信。管理站向代理请求MIB中定义的数据,代理端识别后,将管理设备提供的相关状态或参数等数据转换成MI
2、B定义的格式,最后将该信息返回给管理站,完成一次管理操作。 1.1.2snmp报文类型SNMP中定义了五种消息类型:Get-Request、Get-Response、Get-Next-Request、Set-Request和Trap。 1.Get-Request、Get-Next-Request与Get-Response SNMP管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response消息响应。Get-Next-Request用于和Get-Request组合起来查询特定
3、的表对象中的列元素。2.Set-Request SNMP管理站用Set-Request可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。 3.Trap SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生,如接口UP/DOWN,IP地址更改等。 上面五种消息中Get-Request、Get-Next-Request和Set-Request是由管理站发送到代理侧的161端口的;后面两种Get-Response和Trap是由代理进程发给管理进程的,其中Trap消
4、息被发送到管理进程的162端口,所有数据都是走UDP封装。1.1.3snmp报文格式图SNMP报文的形式大致如下图所示。1.2snmp报文编码格式SNMP(简单网络管理协议)是目前在计算机网络中用得最广泛的网络管理协议,它使用ASN.1(AbstractSyntaxNotationOne抽象语法表示法.1)来定义SNMP报文格式和MIB(ManagementInformationBase管理信息库)变量的名称。1.2.1ASN.1ASN.1是一种描述数据和数据特征的正式语言,它和数据的存储及编码无关。根据ASN.1标准定义,数据
5、类型分为:a.简单数据类型: boolean布尔值null空integer整型real实数octerstring八进制字符串objectidentifier对象标识ipaddressIP地址timeticks时刻值等。b.构造数据类型:sequence序列sequenceofsetsetofchoice等。构造数据类型提供一种或多种简单数据类型进行复合的方法。1.2.2基本编码规则BER在具体系统中,我们需要用具体的编码规则将ASN.1语法表示的抽象数据转换成具体的比特流。SNMP使用的编码方法是BER(BasicEncodin
6、gRule)。BER的数据都由三个域构成:标识域(tag)+长度域(length)+值域(value)。1.标识域Tag表示:数据类型编码十六进制表示数据类型编码十六进制表示BOOL0x01INT0x02OCTSTR0x04NULL0x05OBJID0x06ENUM0x0ASEQ0x30SETOF0x31IPADDR0x40COUNTER0x41GAUGE0x42TIMETICKS0x43OPAQUE0x44GET0xA0GETNEXT0xA1GETResp0xA2SET0xA3TRAP0xA42.长度域length表示长度域用
7、于指示后续的值域value的字节数。但是这个长度域自身多长怎么确定呢?SNMP使用的是变长表示法,这有点类似与UTF8的编码方式。具体表示方法如下:(1)如果值域的长度在0到127字节之间,那么就是一个字节来表示,即第一个最高位为0的时候,其值就代表了值域的长度。(2)如果值域的长度在127字节以上,那么第一个字节的第一个bit位(为1)就用于指示值域的长度在127字节以上,后7个bit位(实际值)以及后续用于表示值域长度的字节数。例如:值域长度(十进制)编码表示(十六进制)解释160x10在0到127之间,直接表示1600x8
8、10xA00x81的二进制为10000001第一位表示其超过127,低7位表示后续还有一个字节来表示值域字节数。0xA0表示值域的长度为160个字节。15000x820x050xDC第一个字节0x82表示后续还有两个字节表示值域长度,0x05DC的十进制值为15
此文档下载收益归作者所有