snmp报文分析

合集下载

网络管理课程设计(BER编解码,报文构造与解析)

网络管理课程设计(BER编解码,报文构造与解析)

计算机网络管理课程设计1.引言简单网络管理协议(SNMP)首先是由Internet工程任务组织(Internet Engineering Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。

SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。

它具有简单性,易于扩展性的特点。

SNMP是一系列协议组和规范(见下表),它们提供了一种从网络上的设备中收集网络管理信息的方法。

SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。

名字说明MIB 管理信息库SMI 管理信息的结构和标识SNMP 简单网络管理协议从被管理设备中收集数据有两种方法:一种是只轮询(polling-only)的方法,另一种是基于中断(interrupt-based)的方法。

Snmp发展到现在共有三个版本,本课程设计是基于snmpv1版本。

2.设计任务及思想2.1任务:设计一个Manager。

Manager可以向华为网络设备发送get和set报文,并获得有效操作结果,实现版本为SNMPv1.开发工具:VC++(Win32)内容: Socket网络通信、 BER编码、BER解码、SNMP报文构造、SNMP报文解析、用户输入/输出。

2.2思想:根据snmp协议,分析抓包软件抓出的结果。

Manager在进行操作时,先对要发送的报文进行构造,然后对要发送的报文各数据类型依据asn.1进行编码再发送。

agent接收到报文后,进行报文解析,再解码。

看manager的要求是什么,然后回应一个报文,即response 报文,manager即对回应的报文进行解析解码,整个过程由socket通信完成,snmp报文封装在udp中发送。

3设计过程2.1 BER编码和解码Ber编码是整个设计过程中的极为重要的部分,一个报文有很多段组成,每段的数据类型都不尽相同。

snmp报文类型和特点

snmp报文类型和特点

snmp报文类型和特点
SNMP报文类型主要包括以下几种:
1. GET:用于获取一条管理信息。

2. GETNEXT:用于反复获取管理信息的序列。

3. SET:用于给一个被管理的子系统设置一个变化。

4. TRAP:用于报告一个关于被管理子系统的警告或其他异步事件。

5. 其他PDU在SNMP第二版中加入,包括GETBULK REQUEST、INFORM等。

SNMP报文的特点包括:
1. SNMP报文在OSI模型的应用层(第七层)运作。

2. SNMPv1是SNMP协议的最初版本,提供最小限度的网络管理功能。

3. SNMP报文的发送者是网络设备上的守护进程,它能够响应来自网络的各种请求信息。

4. SNMP报文的接收者可以是管理工具或代理进程,代理进程在发送get-response报文时也要返回此请求标识符。

5. SNMP报文具有差错状态和差错索引,用于标识和处理报文传输过程中的错误。

6. SNMP报文的Trap部分包含企业(enterprise)、trap类型和特定代码等信息,用于标识网络设备和事件类型。

以上内容仅供参考,如需更多信息,建议查阅相关文献或咨询专业人士。

SNMP报文抓取及分析

SNMP报文抓取及分析

SNMP报文获取与分析班级:网络工程12-1班学号:08123536姓名:赵怀庆SNMP报文抓取及分析关于本次SNMP报文抓取及分析工作,我大致上分为三个步骤进行:准备工作;报文抓取及报文分析。

一.准备工作1.SNMP协议的安装以WINDOW7系统为例:点击确认进行协议安装。

2.启动SNMP服务:在计算机关服务界面中,选择SNMP Service进行开启服务,双击进行配置,如下:在安全选项卡中做如上配置。

3.下载并安装snmputil工具安装路径为C盘下Windows下System32文件夹。

关于snmputil的使用请见(附件)。

4.关于SNMP数据包的接收,我用了虚拟机中WINDOW 2000操作系统,SNMP协议的安装及服务的开启与上述WINDOW 7系统类似。

查看虚拟机IP地址:二.报文抓取1.准备工作就绪以后,就可以进行SNMP报文的抓取了,在WINDOW 7中cmd使用snmputil 工具进行发包:2.同时在Wireshark中进行抓包:三.报文分析目的MAC:00 0c 29 2f fc e3源MAC:00 50 56 c0 00 08协议类型:08 00 ,为IP数据报IP报头:45 00 00 44 02 09 00 00 40 11 bc cb c0 a8 9d 01 c0 a8 9d 82 45 IP协议版本4,报头长度20 bytes00 00 44 总长度68(0x44)02 09 确认号:51200 00 标记字段0x00 无偏移字段40 存活时间6411 报文协议UPDaa 26 报头确认号43558b4 7c 0a 79 源IP地址180 124 10 121c0 a8 11 81 目标IP地址192 168 17 129UDP报头:c9 6b 00 a1 00 30 43 6fC9 6b 源端口16100 a1 目标端口16100 30 长度18143 6f 校验和其余部分都为SNMP报文,接下来我们对照报文结构体来逐个分析一下:30是identifier octets, 表示SNMP消息是ASN.1的SEQUENCE类型;26表示该SNMP报文的总长度是38(0x26)个字节,该字段所表示的报文长度起始于它后面的第一个字节直到报文结束;02 01 00 表示版本号,可见其确实为BER编码方式。

snmp报文字段分析

snmp报文字段分析

SNMP五种协议数据单元SNMP规定了5种协议数据单元PDU(也就是SNMP报文),用来在管理进程和代理之间的交换。

∙get-request操作:从代理进程处提取一个或多个参数值(网管系统发送)∙get-next-request操作:从代理进程处提取紧跟当前参数值的下一个参数值(网管系统发送)∙set-request操作:设置代理进程的一个或多个参数值(网管系统发送)∙get-response操作:返回的一个或多个参数值。

这个操作是由代理进程发出的,它是前面三种操作的响应操作(代理发送)∙trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生(代理发送)前面的3种操作是由管理进程向代理进程发出的,后面的2个操作是代理进程发给管理进程的,为了简化起见,前面3个操作叫做get、get-next和set操作。

下图描述了SNMP的这5种报文操作。

请注意,在代理进程端是用熟知端口161俩接收get或set报文,而在管理进程端是用熟知端口162来接收trap报文。

SNMP的5种报文操作SNMP协议数据单元格式解析下图封装成UDP数据报的5种操作的SNMP报文格式。

可见一个SNMP报文共有三个部分组成,即公共SNMP首部、get/set首部trap首部、变量绑定。

SNMP报文格式1. 公共SNMP首部1.1 版本写入版本字段的是版本号减1,对于SNMP(即SNMPV1)则应写入0。

1.2 公共体共同体就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的是6个字符“public”。

1.3 PDU类型根据PDU的类型,填入0~4中的一个数字,其对应关系下表所示意图。

表1 PDU类型2. get/set首部2.1 请求标识符(request ID)这是由管理进程设置的一个整数值。

代理进程在发送get-response报文时也要返回此请求标识符。

管理进程可同时向许多代理发出get报文,这些报文都使用UDP传送,先发送的有可能后到达。

【协议分析】【SNMP 协议与网络管理】

【协议分析】【SNMP 协议与网络管理】

实验十四 SNMP协议与网络管理【实验目的】1、理解SNMP协议的工作原理;2、理解SNMP协议的工作过程;3、了解SNMP的报文格式;4、了解MIB的基本概念。

【实验学时】2学时【实验环境】本实验中需要有一台安装网络管理系统的主机和一台被管设备。

使用锐捷RG-S3750-24交换机作为被管设备,在捕获端的主机上事先安装网络管理系统,作为SNMP管理设备(本实验中使用第三方的网络管理软件SolarWinds,版本为Solarwinds Engineer’s Toolset v9.1.0,)。

实验拓扑图如图5- 55所示:图5- 55 实验拓扑图【实验内容】1、通过捕获和仿真SNMP数据包,学习SNMP协议的格式;2、通过捕获SNMP数据包,学习SNMP的工作过程;3、学习如何使用协议分析仪的SNMP连接工具;4、学习SNMP协议的工作原理;5、了解SNMP与UDP的关系;6、学习在交换机上启用SNMP。

153【实验流程】Step2Step1:N Step6:SNMPStep3Step4Step5图5- 56 实验流程图【实验原理】SNMP 是Simple Network Manger Protocol (简单网络管理协议)的缩写,最早由Internet 工程任务组织(Internet Engineering Task Force ,IETF )的研究小组为了解决Internet 上的路由器管理问题而提出。

到目前,因众多厂家对该协议的支持,SNMP 已成为事实上的网管标准,适合于在多厂家系统的互连环境中使用。

利用SNMP 协议,网络管理员可以对网络上的节点进行信息查询、网络配置、故障定位、容量规划,网络监控和管理是SNMP 的基本功能。

SNMP 是一个应用层协议,为客户机/服务器模式,它事实上指一系列网络管理规范的集合,包括协议本身,数据结构的定义和一些相关概念等。

SNMP 的工作体系包括三个部分:z SNMP 网络管理器z SNMP 代理z MIB 管理信息库154SNMP网络管理器,是采用SNMP来对网络进行控制和监控的系统,也称为NMS (Network Management System)。

snmp报文解析详细讲解

snmp报文解析详细讲解

0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....
0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public......... 0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+...... 0050 05 00
0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.
0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....
0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public......... 0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+...... 0050 05 00
= (38 )10
SNMP报文02 01 00 表示版本号 解析
为SNMPv1(0)
0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.
0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......
T L V
0 0 0
0 0 0
0 0 0
0 0 0

SNMP介绍及命令

SNMP介绍及命令

乎所有运行 SNMP 的网络设备上,都可以找到某种形式的默认通信字符串。 SNMP 2.0 和 SNMP 1.0 的安全机制比较脆弱,通信不加密,所有通信字符串和数据都以明文形式发送。攻击者一旦 捕获了网络通信,就可以利用各种嗅探工具直接获取通信字符串,即使用户改变了通信字符串的默认值也无济于事。 近几年才出现的 SNMP 3.0 解决了一部分问题。为保护通信字符串,SNMP 3.0 使用 DES ( Data Encryption Standard)算法加密数据通信;另外,SNMP 3.0 还能够用 MD5 和 SHA(Secure Hash Algorithm)技术验证节 点的标识符,从而防止攻击者冒充管理节点的身份操作网络。 虽然 SNMP 3.0 出现已经有一段时间了,但目前还没有广泛应用。如果设备是 2 、3 年前的产品,很可能根本不支持 SNMP 3.0;甚至有些较新的设备也只有 SNMP 2.0 或 SNMP 1.0 。 即使设备已经支持 SNMP 3.0,许多厂商使用的还是标准的通信字符串,这些字符串对黑客组织来说根本不是秘密。因 此,虽然 SNMP 3.0 比以前的版本提供了更多的安全特性,如果配置不当,其实际效果仍旧有限。 四、禁用 SNMP 要避免 SNMP 服务带来的安全风险,最彻底的办法是禁用 SNMP 。如果你没有用 SNMP 来管理网络,那就没有必要运 行它;如果你不清楚是否有必要运行 SNMP,很可能实际上不需要。即使你打算以后使用 SNMP,只要现在没有用, 也应该先禁用 SNMP,直到确实需要使用 SNMP 时才启用它。 下面列出了如何在常见的平台上禁用 SNMP 服务。 ■ Windows XP 和 Windows 2000 在 XP 和 Win 2K 中,右击 “我的电脑”,选择“管理”。展开“服务和应用程序 ”、“服务”,从服务的清单中选择 SNMP 服 务,停止该服务。然后打开服务的“ 属性”对话框,将启动类型该为“禁用”(按照微软的默认设置, Win 2K/XP 默认不 安装 SNMP 服务,但许多软件会自动安装该服务)。 ■ Windows NT 4.0 选择“开始 ”→“设置”,打开服务设置程序,在服务清单中选择 SNMP 服务,停止该服务,然后将它的启动类型该为禁 用。 ■ Windows 9x 打开控制面板的网络设置程序,在“ 配置”页中,从已安装的组件清单中选择“Microsoft SNMP 代理”,点击“ 删除”。检 查 HKEY_LOCAL_MACHINE"SOFTWARE"Microsoft"Windows" CurrentVersion"RunServices 和 HKEY_LOCAL_MACHINE" SOFTWARE"Microsoft"Windows"CurrentVersion"Run 注册键,确认不存在 snmp.exe 。 ■ Cisco Systems 硬件

SNMPTRAP报文解析

SNMPTRAP报文解析

SNMPTRAP报⽂解析转载地址: https:///eric_sunah/article/details/19557683SNMP的报⽂格式SNMP代理和管理站通过SNMP协议中的标准消息进⾏通信,每个消息都是⼀个单独的数据报。

SNMP使⽤UDP(⽤户数据报协议)作为第四层协议(传输协议),进⾏⽆连接操作。

SNMP消息报⽂包含两个部分:SNMP报头和协议数据单元PDU。

在实际⽹络传输环境下,SNMP报⽂的长度取决于其所采⽤的编码⽅式。

SNMP统⼀采⽤BER(Basic Encoding Rule)的编码规则,同时在正式SNMP规范中使⽤的是ASN.1语法,AbastractSyntax Notation v1,即抽象语法描述语⾔。

这两个概念在后⾯实践环节再做进⼀步介绍,这⾥只要稍微了解⼀下即可,不妨碍我们对协议本⾝的分析。

这⾥我们简单解释⼀下BER编码规则:BER作为ANS.1的基本编码规则,描述具体的ANS.1对象如何编码为⽐特流在⽹络上进⾏传输。

BER编码规则由三部分组成:SNMP中定义了⼏种基本的数据类型,其中v1和v2版有些改动,具体参见相应的RFC⽂档。

这⾥我们只介绍⼏种最常见的类型:l INTEGER:⼀个整数l OCTER STRING: 0或多个8bit字节,每个字节在0~255之间取值l DisplayString:0或多个8bit字节,每个字节必须是ASCII码。

在MIB-II中,所有该类型变量不能超过255个字符(0个字符可以)l NULL:代表相关的变量没有值l IpAddress:4字节长的OCTER STRING,以⽹络字节序表⽰IP地址l PhyAddress:6字节长的OCTER STRING,代表物理地址l Counter:⾮负整数,可以从0递增到232-1()。

达到最⼤值后归0l TimeTicks:时间计数器,以0.01秒为单位递增,不同的变量可以有不同的递增幅度。

SNMP协议TRAP报文在IP组播传播中的应用和实现

SNMP协议TRAP报文在IP组播传播中的应用和实现
【 关 键 词 】SNMP ;TRAP ; 组 播 ;WinSNMP
1 IP 组播概述
IP 通信中的数据传送一般有单播(unicast)、广 播(broadcast)和 组 播 (multicast)三种方式。 单播是在源 IP 主机和目的 IP 主机之间一对一的 传送,每次传送的数据只能被一台主机接收。 广播是在一台源 IP 主机 和网络中所有其他的 IP 主机之间进行的一对多的传送, 但广播数据 不能跨过路由器。 组播也是一对多的传送方式,一次传输即可将信息 同时传送到一组接收者,但接收端不是局域网内的所有主机,而是网 络 中 的 某 个 确 定 节 点 子 集 ,这 个 子 集 称 为 组 播 组 [1]。
● 【参考文献】
[1]倪嵩林.IP 组播技术在新测量船生活电视系统中的应用[J]//总装备部第五届 通 信 学 术 会 议 论 文 集 .2008,5. [2]李 捷 ,胡 素 君 .基 于 Windows 的 SNMP 编 程 技 术 的 研 究 [J]. 江 苏 通 信 技 术 , 2002,4(18).
学 报 ,2006,36(1):1-8. [12]代伟,仲惟.阻燃、高填充级 PVC 木塑装饰板研制及性能研究[J].上 海 塑 料 , 2007,6(4):20-22. [13]赵永生,王克俭,朱复华,等.有机改性蒙脱土/木粉/PVC 复合材料的阻燃性 研 究 [J].塑 料 工 业 ,2007,35(6):161-164.
3 SNMP 协议 TRAP 报文在 IP 组播传播中的应用和实现
在网络监控系统中,当网络设备的状态发生变化时通常会向管理 工作站发送 SNMP 协议 TRAP 报文,用以实时更新监控状态。 传统的 TRAP 报文上报采用网络设备和管理工作 站 之 间 一 对 一 的 单 播 方 式 , 当同一台网络设备需要向多台管理工作站发送 TRAP 报文时,采用传 统的单播方式会导致 IP 包的重复发送,增加网络负载,而采用组播传 播可以有效的降低网络负载,提高网络带宽利用率。

Snmp协议总结

Snmp协议总结

简单网络管理协议(SNMP:Simple Network Management Protocol)是由互联网工程任务组(IETF:Internet Engineering Task Force )定义的一套网络管理协议。

该协议基于简单网关监视协议(SGMP:Simple Gateway Monitor Protocol)。

利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。

虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理。

1.网络管理基于TCP/IP的网络管理包含两个部分:网络管理站(也叫管理进程,manager Station)和被管的网络单元(也叫被管设备Network Element)。

被管设备种类繁多,例如:路由器、X 终端、终端服务器和打印机等。

这些被管设备的共同点就是都运行TCP/IP协议。

被管设备端和管理相关的软件叫做代理程序( agent )或代理进程。

管理站一般都是带有彩色监视器的工作站,可以显示所有被管设备的状态(例如连接是否掉线、各种连接上的流量状况等)。

管理进程和代理进程之间的通信可以有两种方式。

一种是管理进程向代理进程发出请求,询问一个具体的参数值(例如:你产生了多少个不可达的ICMP端口)。

另外一种方式是代理进程主动向管理进程报告有某些重要的事件发生(例如:一个连接口掉线了)。

当然,管理进程除了可以向代理进程询问某些参数值以外,它还可以按要求改变代理进程的参数值(例如:把默认的IP TTL值改为6 4)。

基于T C P/IP的网络管理包含3个组成部分:1)管理信息库MIB(Management Information Base)。

管理信息库包含所有代理进程的所有可被查询和修改的参数。

RFC 1213 [McCloghrie and Rose 1991]定义了第二版的MIB,叫做MIB-II;2)管理信息结构SMI(Structure of Management Information)它是关于MIB的一套公用的结构和表示符号,这个在RFC 1155 [Rose and McCloghrie 1990] 中定义。

SNMP协议详解

SNMP协议详解

SNMP协议详解简单⽹络管理协议(SNMP)是TCP/IP协议簇的⼀个应⽤层协议。

在1988年被制定,并被Internet体系结构委员会(IAB)采纳作为⼀个短期的⽹络管理解决⽅案;由于SNMP的简单性,在Internet时代得到了蓬勃的发展,1992年发布了SNMPv2版本,以增强SNMPv1的安全性和功能。

现在,已经有了SNMPv3版本。

⼀套完整的SNMP系统主要包括管理信息库(MIB)、管理信息结构(SMI)及SNMP报⽂协议。

(1)管理信息库MIB:任何⼀个被管理的资源都表⽰成⼀个对象,称为被管理的对象。

MIB是被管理对象的集合。

它定义了被管理对象的⼀系列属性:对象的名称、对象的访问权限和对象的数据类型等。

每个SNMP设备(Agent)都有⾃⼰的MIB。

MIB也可以看作是NMS(⽹管系统)和Agent之间的沟通桥梁。

它们之间的关系如图1所⽰。

图1 NMS Agent和MIB的关系MIB⽂件中的变量使⽤的名字取⾃ISO和ITU管理的对象标识符(object identifier)名字空间。

它是⼀种分级树的结构。

如图2所⽰,第⼀级有三个节点:ccitt、iso、iso-ccitt。

低级的对象ID分别由相关组织分配。

⼀个特定对象的标识符可通过由根到该对象的路径获得。

⼀般⽹络设备取iso节点下的对象内容。

如名字空间ip结点下⼀个名字为ipInReceives的MIB变量被指派数字值3,因⽽该变量的名字为:.dod.internet.mgmt.mib.ip.ipInReceives相应的数字表⽰(对象标识符OID,唯⼀标识⼀个MIB对象)为:1.3.6.1.2.1.4.3 图2 MIB树结构当⽹络管理协议在报⽂中使⽤MIB变量时,每个变量名后还要加⼀个后缀,以作为该变量的⼀个实例。

如ipInReceives的实例数字表⽰为:1.3.6.1.2.1.4.3.0.需要注意的是,MIB中的管理对象的OID有些需要动态确定,如IP路由表,为了指明地址202.120.86.71的下⼀站路由(next hop),我们可以引⽤这样的实例:.dod.internet.mgmt.mib.ip. ipRouteTable.ipRouteEntry.ipRouteNextHop.202.120.86.71, 相应的数字表⽰为:1.3.6.1.2.1.4.21.1.7.202.120.86.71对于这种动态对象标识的实例,由于⽆法转换为预先指定的Readkey名称,与飞邻的产品架构冲突(需要动态⽣成可变Readkey),暂不考虑⽀持。

SNMP介绍及命令

SNMP介绍及命令

SNMP介绍及命令
Simple Network Management Protocol(SNMP)是一种网络管理协议,它用于监视和管理网络中的网络设备。

它定义了一组标准的管理报文,这些报文以UDP协议发送,它们按一定顺序传输,从而让管理者轻松完成管理任务。

SNMP可以让管理人员更好地控制和操作网络中的设备。

它包括一个叫做Agent的进程,它用来收集网络设备的信息,这些信息被存储在一个叫做Mib的技术中,之后被发送给一个叫做Manager的进程。

Manager可以通过发送一些命令,来获取或者设置设备的信息。

SNMP的根本任务是收集网络中设备的信息,并将其发送给Manager,Manager根据这些信息来提出和处理各种网络管理任务。

下面给出的是SNMP最常用的几个命令:
get:用于获取远程设备的信息。

set:用于设置远程设备的信息。

walk:用于获取远程设备中的所有信息。

trap:用于发送信息给远程Manager,表明一些设备的状态发生了改变。

create:用于创建一个新的设备实例,并将其加入到SNMP网络中。

delete:用于删除一个设备实例,从而从SNMP网络中消失。

SNMP的优点
1.简单易用:SNMP是一种简单易用的网络管理协议,它使用简单的指令即可实现网络管理的工作。

2.高效灵活:SNMP是一种高度可靠和灵活的网络管理协议。

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别

SNMP学习笔记之SNMP报⽂以及不同版本(SNMPv1、v2c、v3)的区别本篇⽂章将重点分析SNMP报⽂,并对不同版本(SNMPv1、v2c、v3)进⾏区别!四、SNMP协议数据单元在SNMP管理中,管理站(NMS)和代理(Agent)之间交换的管理信息构成了SNMP报⽂,报⽂的基本格式如下图1:图 1SNMP主要有SNMPv1、SNMPV2c、SNMPv3⼏种最常⽤的版本。

1、SNMPv1SNMPv1是SNMP协议的最初版本,提供最⼩限度的⽹络管理功能。

SNMPv1的SMI和MIB都⽐较简单,且存在较多安全缺陷。

SNMPv1采⽤团体名认证。

团体名的作⽤类似于密码,⽤来限制NMS对Agent的访问。

如果SNMP报⽂携带的团体名没有得到NMS/Agent的认可,该报⽂将被丢弃。

报⽂格式如下图2:图 2从上图可以看出,SNMP消息主要由Version、Community、SNMP PDU⼏部分构成。

其中,报⽂中的主要字段定义如下:Version:SNMP版本Community:团体名,⽤于Agent与NMS之间的认证。

团体名有可读和可写两种,如果是执⾏Get、GetNext操作,则采⽤可读团体名进⾏认证;如果是执⾏Set操作,则采⽤可写团体名进⾏认证。

Request ID:⽤于匹配请求和响应,SNMP给每个请求分配全局唯⼀的ID。

Error status:⽤于表⽰在处理请求时出现的状况,包括noError、tooBig、noSuchName、badValue、readOnly、genErr。

Error index:差错索引。

当出现异常情况时,提供变量绑定列表(Variable bindings)中导致异常的变量的信息。

Variable bindings:变量绑定列表,由变量名和变量值对组成。

enterprise:Trap源(⽣成Trap信息的设备)的类型。

Agent addr:Trap源的地址。

SNMPTRAP告警设置说明

SNMPTRAP告警设置说明

SNMPTRAP告警设置说明
SNMP TRAP告警设置说明
一、前提
本文所描述的snmp trap告警设置说明,针对2.05sp1,其他版本BTIM不适用;设置SNMP TRAP告警前用户需要确认网管机上自带的trap服务是否停用,否则会与BTIM的trap进程冲突,导致无法告警
二、设置步骤
1.SNMP TRAP告警设置比较复杂,涉及到trap报文的多个字段,所以首先要捕捉trap
信息;使用BTIM后台自带的trap程序捕捉,如下图所示,首先打开该trap程序,进入监听态
2.登陆路由器,触发trap报文至网管机,步骤1中打开trap 监听程序,捕捉到trap
信息,如下图所示
3.关闭trap 监听程序
4.打上补丁BTIM2.5-SPT111-JIRA13018-20110609.rar
5.启动BTIM程序
6.进入trap告警设置页面,设置如下图所示
7.保存告警规则
8.再次触发trap
9.告警触发,如下图所示
注意:以上仅仅是trap告警中linkdown类型trap告警的设置示意,各种trap类型,不同厂商的trap告警设置均有所不同,最好在专家指导下进行捕捉设置。

用Wireshark抓取arp、snmp、icmp、dhcp等报文的方法

用Wireshark抓取arp、snmp、icmp、dhcp等报文的方法

1.ARP 基础知识学习1.1.ARP 协议的概念ARP ,即地址解析协议,实现通过IP得知其物理地址。

在CP/IP网络环境下,每个主机分配了一个32位的IP地址,这种互联网地址是在网际范围表示主机的一种逻辑地址。

为了让报文在物理线路上的传输,必须知道对方目的主机的物理地址。

这样就存在把IP地址变成物理地址的转换问题。

一以太网环境为例,为了正确的向目的主机传送报文,就必须将主机的32位IP地址转换成48位的以太网的地址。

这就需要在互联层有一组服务将IP地址转换成物理地址,这组协议就是ARP协议。

1.2 ARP 协议实现的基本功能在以太网协议中,同一局域网中的一台主机要和另一台主机进行直接通信,必须知道目标主机的MAC地址。

而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。

这就导致再以太网中使用IP协议时,数据链路层的以太网协议连接到上层IP协议提供的数据中,只包含目的的IP地址。

于是需要一种方法,更具目的主机的IP的地址,获取其MAC 地址。

这就是ARP协议要做的事。

所谓地址解析(address resolution)就是主机再发送阵前将目标地址转换成目标MAC地址的过程。

另外,当发送主机和目标及不在同一个局域网时,即便知道目的主机的MAC地址,两者也不能直接通信,必须有路由转发才行。

所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外地路由器的某个端口的MAC 地址。

于是此后发送主机发送目的和主机的所有帧,都将发往该路由,通过他向外发送。

这种情况成为ARP代理(ARP Proxy).1.3 工作的原理每台装有TCP/IP协议的电脑里都有一个ARP缓存表,表里IP与MAC地址是一一对应的。

例如,主机A (192.168.1.5)主机B(192.168.1.1)发送数据.当发送数据时,主机A 会在自己的ARP缓存表中查找是否有目标IP地址。

SNMP PDU报文格式解析

SNMP PDU报文格式解析

SNMP五种协议数据单元SNMP规定了5种协议数据单元PDU(也就是SNMP报文),用来在管理进程和代理之间的交换。

get-request操作:从代理进程处提取一个或多个参数值(网管系统发送)get-next-request操作:从代理进程处提取紧跟当前参数值的下一个参数值(网管系统发送)set-request操作:设置代理进程的一个或多个参数值(网管系统发送)get-response操作:返回的一个或多个参数值。

这个操作是由代理进程发出的,它是前面三种操作的响应操作(代理发送)trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生(代理发送) 前面的3种操作是由管理进程向代理进程发出的,后面的2个操作是代理进程发给管理进程的,为了简化起见,前面3个操作叫做get、get-next和set操作。

下图描述了SNMP的这5种报文操作。

请注意,在代理进程端是用熟知端口161俩接收get或set报文,而在管理进程端是用熟知端口162来接收trap报文。

SNMP协议数据单元格式解析一个SNMP报文共有三个部分组成,即公共SNMP首部、get/set首部或trap首部、变量绑定。

下图是封装成UDP数据报文的5种操作的SNMP报文格式。

公共SNMP首部版本写入版本字段的是版本号减1,对于SNMP(即SNMPV1)则应写入0。

公共体共同体就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的是6个字符“public”。

PDU类型根据PDU的类型,填入0~4中的一个数字,其对应关系下表所示意图。

PDU类型get/set首部请求标识符(request ID)这是由管理进程设置的一个整数值。

代理进程在发送get-response报文时也要返回此请求标识符。

管理进程可同时向许多代理发出get报文,这些报文都使用UDP传送,先发送的有可能后到达。

设置了请求标识符可使管理进程能够识别返回的响应报文对于哪一个请求报文。

snmp报文分析

snmp报文分析

SNMP 报文格式分析1. SNMP 报文格式1.1 snmp 简介1.1.1 snmp 工作原理SNMP 采用特殊的客户机/服务器模式,即代理/管理站模型。

对网络的管理与维护是通过管理工作站与SNMP 代理间的交互工作完成的。

每个SNMP 从代理负责回答SNMP 管理工作站(主代理)关于MIB 定义信息的各种查询。

管理站和代理端使用MIB 进行接口统一,MIB 定义了设备中的被管理对象。

管理站和代理都实现相应的MIB 对象,使得双方可以识别对方的数据,实现通信。

管理站向代理请求MIB 中定义的数据,代理端识别后,将管理设备提供的相关状态或参数等数据转换成MIB 定义的格式,最后将该信息返回给管理站,完成一次管理操作。

1.1.2 snmp 报文类型SNMP 中定义了五种消息类型:Get-Request 、Get-Response 、Get-Next-Request 、Set-Request 和Trap 。

1. Get-Request 、Get-Next-Request 与Get-ResponseSNMP 管理站用Get-Request 消息从拥有SNMP 代理的网络设备中检索信息,而SNMP 代理则用Get-Response 消息响应。

Get-Next- Request 用于和Get-Request 组合起来查询特定的表对象中的列元素。

2. Set-RequestSNMP 管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。

3. TrapSNMP 代理使用Trap 向SNMP 管理站发送非请求消息,一般用于描述某一事件的发生,如接口UP/DOWN ,IP 地址更改等。

上面五种消息中Get-Request 、Get-Next-Request 和Set-Request 是由管理站发送到代理侧的161 端口的;后面两种Get-Response 和Trap 是由代理进程发给管理进程的,其中Trap 消息被发送到管理进程的162 端口,所有数据都是走UDP 封装。

SNMP报文抓取及分析

SNMP报文抓取及分析

SNMP报文抓取及分析SNMP(Simple Network Management Protocol)是一种用于网络管理的协议。

它允许网络管理员通过发送和接收SNMP报文来监控和管理网络设备。

SNMP报文是在网络中传输的数据包,包含了有关网络设备和系统的信息。

在本篇文章中,我们将探讨如何抓取和分析SNMP报文。

一、SNMP报文抓取在抓取SNMP报文之前,我们需要准备一个用于抓取报文的工具。

Wireshark是一个强大的网络抓包工具,它支持抓取各种协议的报文,包括SNMP。

以下是在Wireshark中抓取SNMP报文的步骤:1. 首先,打开Wireshark,并选择网络接口以便开始抓取报文。

2. 在Wireshark的过滤器框中输入“snmp”,然后点击“Apply”按钮。

3. Wireshark将开始抓取符合过滤器条件的SNMP报文。

你可以观察到抓取到的报文以及它们的详细信息,如源IP地址、目标IP地址、SNMP版本、报文类型等。

二、SNMP报文分析一旦我们抓取到SNMP报文,我们就可以对其进行分析,以获得有关网络设备和系统的信息。

下面是一些常见的SNMP报文分析技巧:1.首先,我们需要查看SNMP报文的版本号。

SNMP有三个主要的版本:SNMPv1、SNMPv2和SNMPv3、通过查看报文中的版本号,我们可以确定所使用的SNMP版本。

2. 接下来,我们可以查看SNMP报文的类型。

SNMP报文有五种类型:GetRequest(请求数据)、GetNextRequest(请求下一条数据)、GetResponse(响应数据)、SetRequest(设置数据)和Trap(陷阱)。

通过了解报文类型,我们可以了解到SNMP报文的目的。

3. 然后,我们可以查看SNMP报文的OID(Object Identifier)。

OID是SNMP管理信息库中的唯一标识符,用于标识特定的网络设备或系统。

通过查看OID,我们可以确定报文所涉及的对象类型。

SNMP报文抓取与分析(一)

SNMP报文抓取与分析(一)

SNMP报⽂抓取与分析(⼀)SNMP报⽂抓取与分析(⼀)1、抓取SNMP报⽂SNMP报⽂的形式⼤致如下图所⽰我们这⾥使⽤netcat这个⼯具来抓取snmp的PDU(协议数据单元)。

(因为我们并不需要前⾯的IP和UDP⾸部)关于netcat的⼀些基本使⽤可以看这⾥netcat获取snmp报⽂1 先获取snmpwalk发出的(get-next-request)我们使⽤nc来监听161端⼝,然后把输出重定向到⽂件a.hex。

因为监听的是161端⼝,所以这⾥必须以root权限运⾏。

sudo nc -u -l 161 >a.hex这样之后使⽤snmpwalk这个⼯具来向这个“受控端”发送命令。

snmpwalk -c public -v 2c localhost 1.3.6.1.4.201566.1.12 再获取代理程序发回的(get-response)我们先要打开代理程序Agent,然后使⽤下⾯的命令将a.hex的内容发给代理程序,并将接收到的返回保存到b.hexo@o-pc:~/snmpPUD$ nc -u 127.0.0.1 161 <a.hex >b.hex^Co@o-pc:~/snmpPUD$下图是针对SNMPv1版本的。

⽬前⽐较通⽤的是SNMP v2c/v3版本,具有⼋种PDU类型。

分析获取到的报⽂先使⽤hexdump来查看⼀下获取到的报⽂内容。

(hexdump是⼀个很好⽤的⼗六进制分析⼯具)o@o-pc:~/snmpPUD$ hexdump -C a.hex00000000 30 2c 02 01 01 04 06 70 75 62 6c 69 63 a1 1f 02 |0,.....public...|00000010 04 22 70 8b d4 02 01 00 02 01 00 30 11 30 0f 06 |."p........0.0..|00000020 0b 2b 06 01 04 01 8c a6 5e 01 01 01 05 00 |.+......^.....|0000002eo@o-pc:~/snmpPUD$ hexdump -C b.hex00000000 30 30 02 01 01 04 06 70 75 62 6c 69 63 a2 23 02 |00.....public.#.|00000010 04 22 70 8b d4 02 01 00 02 01 00 30 15 30 13 06 |."p........0.0..|00000020 0e 2b 06 01 04 01 8c a6 5e 01 01 01 01 01 00 02 |.+......^.......|00000030 01 2b |.+|00000032报⽂分析结果先看结果,然后再慢慢分析get-next-request报⽂⽰例分析(a.hex)⼗六进制数据解释30表⽰SNMP协议报⽂(整个报⽂是⼀个SEQUENCE)2c消息长度44字节(表⽰后⾯还有44个字节的内容)02 01 01协议版本(2c)(前两个字节02表⽰INTEGER类型01是指1个字节长度,最后的01是值01) 04参数类型(OCTSTR)06群体(community)名长度70 75 62 6c 69 63群体名public的assic码值a1PUD类型get-next-request1f snmp pdu的长度为31个OctStr(后⾯的内容31字节)02 04 22 70 8b d4请求标识符Request ID02 01 00表⽰error-state为002 01 00表⽰error-index为030 11表⽰后⾯变量绑定是SEQUENCE类型17个字节长度30 0f表⽰(变量名106表⽰该字段是OID类型0b OID长度11字节2b 06 01 04 01 1.3.6.1.4.1(标识1.3被合并为2B)8c a6 5e201566 (这也是根据规则转换得到的)01 01 01 1.1.1⼗六进制数据解释05 00表⽰NULLget-response报⽂⽰例分析(b.hex)⼗六进制数据解释30表⽰SNMP协议报⽂(整个报⽂是⼀个SEQUENCE) 30消息长度48字节(表⽰后⾯还有48个字节的内容)02 01 01协议版本(2c)(前两个字节02 01 表⽰INTEGER类型) 04参数类型(OCTSTR)06群体(community)名长度70 75 62 6c 69 63群体名public的assic码值a2PUD类型get-response23snmp pdu的长度为35个OctStr(后⾯的内容31字节) 02 04 22 70 8b d4请求标识符Request ID02 01 00表⽰error-state为002 01 00表⽰error-index为030 11表⽰后⾯变量绑定是SEQUENCE类型17个字节长度30 0f表⽰(变量名106表⽰该字段是OID类型0b OID长度11字节2b 06 01 04 01 1.3.6.1.4.1(标识1.3被合并为2B)8c a6 5e201566 (这也是根据规则转换得到的)01 01 01 1.1.100表⽰.0 即第⼀个实例\(下⾯的值实际是节点1.3.6.1.4.1.201566.1.1.1.0的) 02 01 2b02 01 表⽰INTEGER类型1个字节,2b表⽰值(43) 05 00表⽰NULL下⾯是使⽤snmpwalk命令获取的结果。

SNMPv3详解概要

SNMPv3详解概要

SNMPv3实体的组成结构图
1 SNMP协议引擎
SNMP协议引擎负责执行SNMP协议操作,为各类 SNMP应用程序提供服务。每个SNMP协议引擎由一个 SNMP协议引擎ID来标识。在整体上执行两种功能: 1)从SNMP应用中接收流出的PDU执行必要的处理, 包括插入鉴别代码和加密,然后把PDU封装到用于传 输的消息中去。 2) 从传输层接收流进的PDU,执行必要的处理, 包括鉴别和解密,然后从消息取出PDU,并把PDU传送 到适当的SNMP应用中去。
•发现:定义一个SNMP引擎获得关于另一个SNMP引擎的 信息的过程。 •密钥管理:定义了密钥产生、更新和使用的过程。
1基本概念 1)用户 SNMPv3用户是一个发出SNMP操作的实体,可以是 一个或一些管理员,或是执行网管操作的应用程序等。 用户的身份和目标代理的相关配置一起决定了将要调 用的安全机制——认证、加密和访问控制等。 2)权威的(authoritative)SNMP协议引擎 为了防御重放、延迟等攻击,在参与通信的SNMP 协议引擎中应有一方被指定为权威的SNMP协议引擎。 当一个SNMP消息需要应答时,消息接收方的SNMP协议 引擎就是权威的SNMP协议引擎;当SNMP消息不需要应 答时,则消息发送方的SNMP协议引擎是权威的SNMP协 议引擎。相应的,通信中另一方的SNMP协议引擎被称 为非权威的SNMP协议引擎。
复杂性
名称 编码 功能说明 GetRequest 0 管理站至代理,查询指定变量的值 GetNextRequest 1 管理站至代理,查询下一变量的值 代理至管理站,回送执行结果(正确/差 Response 2 错)
SetRequest GetBulkRequest InformRequest 3 4 5 管理站至代理,设置代理维护的某个 变量的值 管理站至代理,传递批量信息 管理站至管理站,传递参数处理请求
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SNMP报文格式分析1、SNMP报文格式1、1 snmp简介1、1、1 snmp工作原理SNMP采用特殊的客户机/服务器模式,即代理/管理站模型。

对网络的管理与维护就是通过管理工作站与SNMP代理间的交互工作完成的。

每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。

管理站与代理端使用MIB进行接口统一,MIB定义了设备中的被管理对象。

管理站与代理都实现相应的MIB对象,使得双方可以识别对方的数据,实现通信。

管理站向代理请求MIB中定义的数据,代理端识别后,将管理设备提供的相关状态或参数等数据转换成MIB定义的格式,最后将该信息返回给管理站,完成一次管理操作。

1、1、2 snmp报文类型SNMP中定义了五种消息类型:Get-Request、Get-Response、Get-Next-Request、Set-Request与Trap 。

1.Get-Request 、Get-Next-Request与Get-ResponseSNMP 管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response消息响应。

Get-Next- Request用于与Get-Request组合起来查询特定的表对象中的列元素。

2.Set-RequestSNMP管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。

3.TrapSNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生,如接口UP/DOWN,IP地址更改等。

上面五种消息中Get-Request、Get-Next-Request与Set-Request就是由管理站发送到代理侧的161端口的;后面两种Get-Response与Trap 就是由代理进程发给管理进程的,其中Trap消息被发送到管理进程的162端口,所有数据都就是走UDP封装。

1、1、3 snmp报文格式图SNMP报文的形式大致如下图所示。

1、2 snmp报文编码格式SNMP(简单网络管理协议)就是目前在计算机网络中用得最广泛的网络管理协议,它使用ASN、1(Abstract Syntax Notation One抽象语法表示法、1)来定义SNMP报文格式与MIB(Management Information Base管理信息库)变量的名称。

1、2、1 ASN、1ASN、1就是一种描述数据与数据特征的正式语言,它与数据的存储及编码无关。

根据ASN、1标准定义,数据类型分为:a、简单数据类型:boolean布尔值null空integer整型real实数octerstring八进制字符串object identifier对象标识ipaddressIP地址time ticks时刻值等。

b、构造数据类型:sequence序列sequence of setset ofchoice等。

构造数据类型提供一种或多种简单数据类型进行复合的方法。

1、2、2基本编码规则BER在具体系统中,我们需要用具体的编码规则将ASN、1语法表示的抽象数据转换成具体的比特流。

SNMP使用的编码方法就是BER(Basic Encoding Rule)。

BER的数据都由三个域构成:标识域(tag) + 长度域(length) + 值域(value)。

1.标识域Tag表示:2、长度域length表示长度域用于指示后续的值域value的字节数。

但就是这个长度域自身多长怎么确定呢?SNMP使用的就是变长表示法,这有点类似与UTF8的编码方式。

具体表示方法如下:(1)如果值域的长度在0到127字节之间,那么就就是一个字节来表示,即第一个最高位为0的时候,其值就代表了值域的长度。

(2)如果值域的长度在127字节以上,那么第一个字节的第一个bit位(为1)就用于指示值域的长度在127字节以上,后7个bit位(实际值)以及后续用于表示值域长度的字节数。

因为绝大部分情况下,值域的长度都在【0,127】区间内,所有这种表示方法最节约。

1、3 snmp报文介绍1、3、1 SNMP首部SNMP报文的首部指明了这个报文就是SNMP协议报文,以及报文的字节数。

SNMP报文的第一个字节用于表示这就是一个SNMP报文,就就是0x30。

在第一个字节之后就是一个长度域,用于告知后面的SNMP报文的总字节数(不包括前面的0x30与这个长度域所占的字节数)。

如下所示:1、3、2 SNMP版本表示1、3、3 Community共同体表示共同体部分这里一共占了8个字节。

如:x04,0x06,0x70,0x75,0x62,0x6c,0x69,0x630x04就是标识域,表示值域类型为(OCTSTR)0x06就是长度域,表示值域的长度为6个字节70 75 62 6c 69 63就是值域的内容,就是群体名public的assic码值1、3、4 PUD表示这个部分内容比较多,但都就是基于BER形式编码出来的。

内容举例如下: a2 23 02 04 22 70 8b d4 02 01 00 02 01 00 30 15 30 13 06 0e 2b 06 01 04 01 8c a6 5e 01 01 01 01 01 00 02 01 2b1.PDU类型2.PUD长度域0xa2后一个字节就是这个PUD的长度域,0x23表示后面的值域就是35个字节。

3.get/set表示SNMP应该说就是有三种操作,get/set/trap,又可细分为上面表格中的5中PDU类型。

其中get与set有共同之处,这里先以get的来做说明。

(1)请求标识符Request ID这就是由管理进程设置的一个整数值。

代理进程在发送get-response报文时也要返回此请求标识符。

管理进程可同时向许多代理发出get报文,这些报文都使用UDP传送,先发送的有可能后到达。

设置了请求标识符可使管理进程能够识别返回的响应报文对于哪一个请求报文。

举例:02 04 22 70 8b d40x02就是标识域,表示值域为整型数据0x04就是长度域,表示值域长度为4个字节0x22 70 8b d4就是值域,就就是一个整数而已。

(577801172)(2)错误状态error-state错误状态就是用于告知管理进程,代理进程对其发出的请求的处理结果的状态的。

举例:02 01 000x02就是标识域,表示值域为整型数据0x01就是长度域,表示值域长度为1个字节(3)错误索引error-index当出现noSuchName、badValue或readOnly的差错时(见上表),由代理进程在回答时设置的一个整数,它指明有差错的变量在变量列表中的偏移。

举例:02 01 000x02就是标识域,表示值域为整型数据0x01就是长度域,表示值域长度为1个字节0x00就是值域,因为没有出错,所以这里为01、3、5 变量绑定变量绑定就就是跟在错误索引后面的一系列变量。

这些变量同样也采取BER 形式的编码规则。

在get或get-next报文中,变量的值应忽略。

1、3、6 trap(notification)PUD的类型如果不就是上面的所述的get/set那就应该就是1.OID:第一个部分就是指trap报文对应的网络设备的对象标识符。

此对象标识符肯定就是在enterprise结点{1、3、6、1、4、1}下面的一棵子树上。

2.trap类型3.当使用上述类型2、3、5时,在报文后面变量绑定部分的第一个变量应标识响应的接口。

4、特定代码(specific-code)指明代理自定义的时间(若trap类型为6),否则为0。

时间戳(timestamp)指明自代理进程初始化到产生trap报告的事件发生所经历的时间,例如时间戳为1230表明在代理初始化后1230ms发生了该时间。

6、变量绑定(variable-bindings)指明一个或多个变量的名与对应的值。

也就是采用的BER编码规则。

1、4 数据类型的编码表示下面介绍一些变量类型的编码表示方法。

1、4、1 Integer整型编码表示整型数据的标识域编码就是0x02,长度域不定,一般就是1/2/4字节等。

整型数据的值域就是带符号类型,最高位就是符号位,采取补码的表示形式。

要注意的就是,其就是大端表示法(高地址存低位)。

1、4、2 OID对象标识符编码表示SNMP服务器维护的所有管理信息库(MIB)对象采用ObjectID表示,如,1、3、6、1、2、1、1、1表示MIB库中的设备描述SysDesc变量,其编码规则如下:标识域编码为0x06,长度域根据情况而定,值域的编码比较复杂,如下所示。

1.首两个ID被合并为一个字节X * 40+Y。

例如:1、3合并为1x40+3 = 43 = 0x2B2.后续的ID,如果在区间[1,127]内,直接编码表示,如果大于127,那么按照下面(3)所述方法编码。

3.如果ID大于127,那么使用多个字节来表示。

a、这多个字节中除最后一个字节外,前面的字节最高位为1b、这多个字节的最后一个字节的最高位为0c、这里每个字节剩下的7个比特位用来表示实际的数值例如201566这个数,用十六进制表示就是0x03 13 5e,那么用二进制表示就是000 1100 010 0110 101 1110。

注意上面就是以7个比特位为单位进行分划的,现在我们来填充最高位。

将前面的最高位填1,最后一个最高位填0即可得到1000 1100 1010 0110 0101 1110用十六进制表示为0x8c a6 5e1、4、3 sequence组合类型sequence表示其由多个数据组合而成,每一个数据也都还就是采用的BER编码方法。

例如我们这里分析的数据包中就要一个sequence类型的数据,其值域又就是有一个OID类型的数据与一个Integer类型的数据组合而成的。

见2、1实例。

2、分析报文2、1 get-next-request报文示例分析(a、hex)先使用hexdump来查瞧一下获取到的报文内容。

(hexdump就是一个很好用的十六进制分析工具)o@o-pc:~/snmpPUD$ hexdump -C a、hex00000000 30 2c 02 01 01 04 06 70 75 62 6c 69 63 a1 1f 02 |0,、、、、、public、、、| 00000010 04 22 70 8b d4 02 01 00 02 01 00 30 11 30 0f 06 |、"p、、、、、、、、0、0、、| 00000020 0b 2b 06 01 04 01 8c a6 5e 01 01 01 05 00 |、+、、、、、、^、、、、、| 0000002e2、2 get-response报文示例分析(b、hex)报文内容:o@o-pc:~/snmpPUD$ hexdump -C b、hex00000000 30 30 02 01 01 04 06 70 75 62 6c 69 63 a2 23 02 |00、、、、、public、#、|snmp报文分析00000010 04 22 70 8b d4 02 01 00 02 01 00 30 15 30 13 06 |、"p、、、、、、、、0、0、、|00000020 0e 2b 06 01 04 01 8c a6 5e 01 01 01 01 01 00 02 |、+、、、、、、^、、、、、、、|00000030 01 2b |、+|。

相关文档
最新文档