SNMP (Simple Network Management Protocol)
http://www.net-snmp.org/
http://baike.baidu.com/view/2899.html?goodTagLemma
OidView——世界级的MIB浏览器SNMP软件!
http://www.sciencesoftware.com.cn/share/search_soft_detail12.asp?id=203
http://www.sciencesoftware.com.cn/search/search_soft_detail12.asp?id=203
http://dl.iteye.com/upload/attachment/0078/2973/d62832b6-aa46-339d-8439-c112a08e105a.gif
OidView 是一款MIB 浏览器以及用于 SNMP Agent 分析和管理的专家系统。支 持 SNMPv1, SNMPv2c 和 SNMPv3。该软件的工具包括 MIB 浏览器,MIB 编译器,SNMP Trap 接收错误管理模 块,OID Poller/Graph 实用工具,SNMP PDU 追踪, 界面 (IGRID)工具,Entity-MIB 制图器以 及 CISCOCLASS-BASED-QOS-MIB (服务品质)浏览器。
snmp监控window
http://blog.csdn.net/airobot008/article/details/3955015
RedHat Linux Enterprise 5.3 x64 snmp/sgmp
[root@b2cbbs ~]# grep snmp /etc/services
snmp 161/tcp # Simple Net Mgmt Proto
snmp 161/udp # Simple Net Mgmt Proto
snmptrap 162/udp snmp-trap # Traps for SNMP
snmp-tcp-port 1993/tcp # cisco SNMP TCP port
snmp-tcp-port 1993/udp # cisco SNMP TCP port
oce-snmp-trap 2697/tcp # Oce SNMP Trap Port
oce-snmp-trap 2697/udp # Oce SNMP Trap Port
websphere-snmp 3427/tcp # WebSphere SNMP
websphere-snmp 3427/udp # WebSphere SNMP
patrol-snmp 8161/tcp # Patrol SNMP
patrol-snmp 8161/udp # Patrol SNMP
suncacao-snmp 11161/tcp # sun cacao snmp access point
suncacao-snmp 11161/udp # sun cacao snmp access point
[root@b2cbbs ~]# grep sgmp /etc/services
sgmp 153/tcp # SGMP
sgmp 153/udp # SGMP
sgmp-traps 160/tcp # SGMP-TRAPS
sgmp-traps 160/udp # SGMP-TRAPS
http://wiki.jiankongbao.com/doku.php/%E6%96%87%E6%A1%A3:snmp%E8%AF%8A%E6%96%AD
SNMP 诊断方法
已有超过4000台服务器在使用监控宝的SNMP性能监控,为了帮助大家更加方便的诊断服务器SNMP开启状况,我们编写了SNMP诊断教程。
服务器本机SNMP诊断
首先建议您在服务器本机测试SNMP服务是否正常,我们根据不同操作系统来分别详细介绍。
Linux SNMP
如果您的服务器操作系统是 Linux 系统,请首先按照我们的指引正确安装SNMP代理程序。可以参考:
接下来,您可以通过SSH登录到服务器上,通过SNMP自带的命令行工具来测试是否可以本地获取SNMP数据。在示例中我们假设SNMP安装路径为 /usr/local/snmp,均采用默认的161 UDP端口。
如果您在SNMP中采用的是v2c验证方式,并且community字符串假设为“public”,那么测试方法为:
$ /usr/local/snmp/bin/snmpwalk -v 2c -c public 127.0.0.1:161 sysDescr
如果您的SNMP中采用的v3验证方式,用户名为“user”,密码为“pass”,加密方式为“MD5”,那么测试方法为:
$ /usr/local/snmp/bin/snmpwalk -v 3 -l authNoPriv -a MD5 -u user -A pass 127.0.0.1:161 sysDescr
在命令行输入这些语句后,如果服务器SNMP正常开启的话,您应该可以获得以下类似的反馈:
$ SNMPv2-MIB::sysDescr.0 = STRING: Linux host1 2.6.27.19-5-default #1 SMP 2009-02-28 04:40:21 +0100 x86_64
如果本机测试中无法获得类似的正确反馈,则说明SNMP安装或者设置存在问题,您可以参考随后的错误信息分析。
Windows SNMP
如果您的服务器操作系统是 Windows 系统,请首先按照我们的指引正确安装SNMP服务。可以参考:
接下来您可以远程连接到Windows服务器上,开始测试本机的SNMP服务是否正常开启,这里我们需要下载SNMP的测试工具。
访问以下地址: http://www.elifulkerson.com/articles/net-snmp-windows-binary-unofficial.php
下载以下两个文件:
http://www.elifulkerson.com/projects/downloads/net-snmp-5.4-win32-unofficial/mibs.zip http://www.elifulkerson.com/projects/downloads/net-snmp-5.4-win32-unofficial/snmpwalk.exe
其中 mibs.zip 解压缩后得到:
-
COPYING 版权文件
-
mibs 包含一系列 .txt 后缀的MIB文件
接下来新建一个测试目录,比如 c:\snmptest,把前面得到的 snmpwalk.exe 文件和 mibs 子目录都拷贝到该目录下,最终的目录结构如下:
c:\snmptest |-- snmpwalk.exe |-- mibs
然后通过“运行”菜单输入“cmd”,打开命令行窗口,并切换到测试目录。DOS命令如下:
cd c:\snmptest
现在就可以开始测试了。如果您在SNMP中采用的是v2c验证方式,并且community字符串假设为“public”,那么测试方法为:
snmpwalk.exe -M mibs -v 2c -c public 127.0.0.1:161 sysDescr
如果您的SNMP中采用的v3验证方式,用户名为“user”,密码为“pass”,加密方式为“MD5”,那么测试方法为:
snmpwalk.exe -M mibs -v 3 -l authNoPriv -a MD5 -u user -A pass 127.0.0.1:161 sysDescr
在命令行输入这些语句后,如果服务器SNMP服务正常工作的话,您应该可以获得以下类似的反馈:
SNMPv2-MIB::sysDescr.0 = STRING: Hardware: x86 Family 6 Model 23 Stepping 10 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.1 (Build 2600 Multiprocessor Free)
如果本机测试中无法获得类似的正确反馈,则说明SNMP安装或者设置存在问题,您可以参考随后的错误信息分析。
远程SNMP诊断
当本机SNMP测试通过后,则说明服务器的SNMP已经开始正常工作,如果还是无法通过监控宝获取SNMP数据,那么可能是防火墙、IP授权或者其它网络 原因,为此我们推出了远程SNMP诊断工具,它通过SNMP采集点服务器上的snmpwalk远程请求您的服务器SNMP服务,进一步您了解更多信息。
常见错误信息分析
Timeout: No Response from X.X.X.X
通常使用SNMP协议版本v2c时会遇到这类错误,可能的原因有:
-
community字符串填写错误?请仔细核对 -c 参数后的值,比如是不是1和l、0和O写混了,大小写弄错了等。
-
IP地址访问不到?您可以使用 ping, traceroute/tracert 测试该IP。
-
端口访问不到? 您可以 netstat 查看该端口是否正常监听, Linux下 ps 查看 snmpd 进程是否运行, windows 下看服务是否开启
-
防火墙没有开放该端口?尝试关掉防火墙试试,如果关掉防火墙能成功,则说明是防火墙的问题,具体防火墙配置的方法请查询防火墙相关资料。
备注:Linux下查看snmpd进程是否运行,可以通过以下命令:
$ ps afx | grep snmpd$ 4889 ? S 42:44 /usr/local/snmp/sbin/snmpd
Windows下查看SNMP服务是否运行,可以在“运行”菜单中输入“services.msc”,找到“SNMP Service”,应该是“启动”的状态。
snmpwalk: Timeout (Sub-id not found: (top) -> sysDescr)
通常使用SNMP协议版本v3时会遇到这类错误,可能的原因有:
-
IP地址访问不到?您可以使用 ping, traceroute/tracert 测试该IP。
-
端口访问不到? 您可以 netstat 查看该端口是否正常监听, Linux下 ps 查看 snmpd 进程是否允许, windows 下看服务是否开启。
-
防火墙没有开放该端口?尝试关掉防火墙试试,如果关掉防火墙能成功,则说明是防火墙的问题,具体防火墙配置的方法请查询防火墙相关资
snmpwalk: Authentication failure (incorrect password, community or key) (Sub-id not found: (top) -> sysDescr)
通常使用SNMP协议版本v3时会遇到这类错误,可能的原因有:
-
密码填写错误?
-
加密方法 (MD5/SHA) 填写错误?
snmpwalk: Unknown user name (Sub-id not found: (top) -> sysDescr)
通常使用SNMP协议版本v3时会遇到这类错误,可能的原因有:
-
用户名填写错误
其它
在本机测试中,如果您需要更详细的信息,在前面的 snmpwalk 测试命令中可以加上 -d 选项,打开 debug 信息,这样您可以看到收发的数据包。
目录
编辑本段 SNMP信息
MIB,Management Information Base:管理信息库,由网络管理协议访问的管理对象数据库,它包括SNMP可以通过网络设备的SNMP管理代理进行设置的变量。 SMI ,Structure of Management Information:管理信息结构,用于定义通过 网络管理 协议可访问的对象的规则。SMI定义在MIB中使用的数据类型及 网络资源 在MIB中的名称或表示。 使用SNMP进行网络管理需要下面几个重要部分:管理基站,管理代理,管理信息库和网络管理工具。管理基站通常是一个独立的设备,它用作网络管理者进行网络管理的用户接口。基站上必须装备有管理软件, 管理员 可以使用的用户接口和从MIB取得信息的数据库,同时为了进行网络管理它应该具备将管理命令发出基站的能力。 管理代理是一种网络设备,如主机, 网桥 , 路由器 和 集线器 等,这些设备都必须能够接收管理基站发来的信息,它们的状态也必须可以由管理基站监视。管理代理响应基站的请求进行相应的操作,也可以在没有请求的情况下向基站发送信息。 MIB是对象的集合,它代表网络中可以管理的资源和设备。每个对象基本上是一个数据变量,它代表被管理的对象的一方面的信息。 最后一个方面是管理协议,也就是SNMP,SNMP的基本功能是:取得,设置和接收代理发送的 意外信息。取得指的是基站发送请求,代理根据这个请求回送相应的数据,设置是基站设置管理对象(也就是代理)的值,接收代理发送的意外信息是指代理可以在 基站未请求的状态下向基站报告发生的意外情况。 SNMP为应用层协议,是TCP/IP协议族的一部分。它通过用户数据报协议(UDP)来操 作。在分立的管理站中,管理者进程对位于管理站中心的MIB的访问进行控制,并提供网络管理员接口。管理者进程通过SNMP完成网络管理。SNMP在 UDP、IP及有关的特殊网络协议(如,Ethernet, FDDI, X.25)之上实现。编辑本段 SNMP风险
接入Internet的网络面临许多风险,Web 服务器 可能面临攻击, 邮件服务器 的安全也令人担忧。但除此之外,网络上可能还存在一些隐性的漏洞。大多数网络总有一些设备运行着SNMP服务,许多时候这些SNMP服务是不必要的,但却没有引起网络管理员的重视。 根据SANS协会的报告,对于接入Internet的主机,SNMP是威胁安全的十大首要因素之一;同时,SNMP还是Internet主机上最常见的服务之一。特别地,SNMP服务通常在位于 网络边缘 的设备( 防火墙 保护圈之外的设备)上运行,进一步加剧了SNMP带来的风险。这一切听起来出人意料,但其实事情不应该是这样的。 背景知识 SNMP开发于九十年代早期,其目的是简化大型网络中设备的管理和数据的获取。许多与网络有关的 软件 包,如HP的Open View和Nortel Networks的Optivity Network Management System,还有Multi Router Traffic Grapher(MRTG)之类的 免费软件 ,都用SNMP服务来简化网络的管理和维护。 由于SNMP的效果实在太好了,所以网络硬件厂商开始把SNMP加入到它们制造的每一台设备。今天,各种网络设备上都可以看到默认启用的SNMP服务,从 交换机 到路由器,从防火墙到 网络打印机 ,无一例外。 仅仅是分布广泛还不足以造成威胁,问题是许多厂商安装的SNMP都采用了默认的通信字符串(例如密码),这些通信字符串是程序获取设备信息和修改配置必不可少的。采用默认通信字符串的好处是网络上的软件可以直接访问设备,无需经过复杂的配置。 通信字符串主要包含两类命令:GET命令,SET命令。GET命令从设备读取数据,这些数据通 常是操作参数,例如连接状态、接口名称等。SET命令允许设置设备的某些参数,这类功能一般有限制,例如关闭某个网络接口、修改路由器参数等功能。但很显 然,GET、SET命令都可能被用于 拒绝服务攻击 (DoS)和恶意修改网络参数。 最常见的默认通信字符串是public(读/写)和private(只读),除此之外还有许多厂商私有的默认通信字符串。几乎所有运行SNMP的网络设备上,都可以找到某种形式的默认通信字符串。 SNMP2.0和SNMP1.0的安全机制比较脆弱,通信不加密,所有通信字符串和数据都以明文形式发送。攻击者一旦捕获了网络通信,就可以利用各种 嗅探 工具直接获取通信字符串,即使用户改变了通信字符串的默认值也无济于事。 近几年才出现的SNMP3.0解决了一部分问题。为保护通信字符串,SNMP3.0使用DES(DataEncryptionStandard)算法加密数据通信;另外,SNMP3.0还能够用MD5和SHA(SecureHashAlgorithm)技术验证节点的 标识符 ,从而防止攻击者冒充管理节点的身份操作网络。 虽然SNMP3.0出现已经有一段时间了,但目前还没有广泛应用。如果设备是2、3年前的产品,很可能根本不支持SNMP3.0;甚至有些较新的设备也只有SNMP2.0或SNMP1.0。 即使设备已经支持SNMP3.0,许多厂商使用的还是标准的通信字符串,这些字符串对 黑客 组织来说根本不是秘密。因此,虽然SNMP3.0比以前的版本提供了更多的安全特性,如果配置不当,其实际效果仍旧有限。 禁用SNMP 要避免SNMP服务带来的安全风险,最彻底的办法是禁用SNMP。如果你没有用SNMP来管理 网络,那就没有必要运行它;如果你不清楚是否有必要运行SNMP,很可能实际上不需要。即使你打算以后使用SNMP,只要现在没有用,也应该先禁用 SNMP,直到确实需要使用SNMP时才启用它。 下面列出了如何在常见的平台上禁用SNMP服务。 ■Windows XP和Windows 2000 在XP和Win2K中,右击“ 我的电脑 ”,选择“管理”。展开“服务和应用程序”、“服务”,从服务的清单中选择SNMP服务,停止该服务。然后打开服务的“属性”对话框,将启动类型该为“禁用”(按照 微软 的默认设置,Win2K/XP默认不安装SNMP服务,但许多软件会自动安装该服务)。 ■WindowsNT4.0 选择“开始”→“设置”,打开服务设置程序,在服务清单中选择SNMP服务,停止该服务,然后将它的启动类型该为禁用。 ■Windows9x 打开控制面板的网络设置程序,在“配置”页中,从已安装的组件清单中选择“MicrosoftSNMP代理”,点击“删除”。检查 HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run注册键,确认不存在 snmp.exe 。 ■Cisco Systems硬件 对于Cisco的网络硬件,执行“noSNMP-server”命令禁用SNMP服务。如果要检查SNMP是否关闭,可执行“showSNMP”命令。这些命令只适用于运行CiscoIOS的平台;对于非IOS的Cisco设备,请参考随机文档。 ■HP硬件 对于所有使用Jet Direct卡(绝大部分HP网络打印机都使用它)的HP网络设备,用telnet连接到Jet Direct卡的IP地址,然后执行下面的命令: SNMP-config:0 quit 这些命令将关闭设备的SNMP服务。但必须注意的是,禁用SNMP服务会影响服务的发现操作以及利用SNMP获取设备状态的 端口 监视机制。 ■RedHatLinux 对于RedHatLinux,可以用Linuxconf工具从自动启动的服务清单中删除SNMP,或者直接从/etc/services文件删除启动SNMP的行。对于其他Linux系统,操作方法应该也相似。 保障SNMP的安全 如果某些设备确实有必要运行SNMP,则必须保障这些设备的安全。首先要做的是确定哪些设备正 在运行SNMP服务。除非定期对整个网络进行端口扫描,全面掌握各台机器、设备上运行的服务,否则的话,很有可能遗漏一、二个SNMP服务。特别需要注意 的是,网络交换机、打印机之类的设备同样也会运行SNMP服务。确定SNMP服务的运行情况后,再采取下面的措施保障服务安全。 ■加载SNMP服务的 补丁 安装SNMP服务的补丁,将SNMP服务升级到2.0或更高的版本。联系设备的制造商,了解有关安全漏洞和升级补丁的情况。 ■保护SNMP通信字符串 一个很重要的保护措施是修改所有默认的通信字符串。根据设备文档的说明,逐一检查、修改各个标准的、非标准的通信字符串,不要遗漏任何一项,必要时可以联系制造商获取详细的说明。 ■过滤SNMP 另一个可以采用的保护措施是在 网络边界 上过滤SNMP通信和请求,即在防火墙或 边界路由器 上, 阻塞SNMP请求使用的端口。标准的SNMP服务使用161和162端口,厂商私有的实现一般使用199、391、705和1993端口。禁用这些端口通 信后,外部网络访问内部网络的能力就受到了限制;另外,在内部网络的路由器上,应该编写一个ACL,只允许某个特定的可信任的SNMP管理系统操作 SNMP。例如,下面的ACL只允许来自(或者走向)SNMP管理系统的SNMP通信,限制网络上的所有其他SNMP通信: access-list 100 permit iphost w.x.y any access-list 100 deny udp any any eq snmp access-list 100 deny udp any any eq snmp trap access-list 100 permit ip any any 这个ACL的第一行定义了可信任管理系统(w.x.y)。利用下面的命令可以将上述ACL应用到所有网络接口: interface serial0 ip access-group 100 in 总之,SNMP的发明代表着网络管理的一大进步,现在它仍是高效管理大型网络的有力工具。然 而,SNMP的早期版本天生缺乏安全性,即使最新的版本同样也存在问题。就象网络上运行的其他服务一样,SNMP服务的安全性也是不可忽视的。不要盲目地 肯定网络上没有运行SNMP服务,也许它就躲藏在某个设备上。那些必不可少的网络服务已经有太多让人担忧的安全问题,所以最好关闭SNMP之类并非必需的 服务——至少尽量设法保障其安全。编辑本段 SNMP数据
简单网络管理协议(SNMP)是目前TCP/IP网络中应用最为广泛的网络管理协议。1990年5月,RFC1157定义了 SNMP(simplenetworkmanagementprotocol)的第一个版本SNMPv1。RFC1157和另一个关于管理信息的文件 RFC1155一起,提供了一种监控和管理计算机网络的 系统方法 。因此,SNMP得到了广泛应用,并成为网络管理的事实上的标准。 SNMP在90年代初得到了迅猛发展,同时也暴露出了明显的不足,如,难以实现大量的数据传输,缺少身份验证(Authentication)和加密(Privacy)机制。因此,1993年发布了SNMPv2,具有以下特点: 支持 分布式网络 管理 扩展了 数据类型 可以实现大量数据的同时传输,提高了效率和性能 丰富了故障处理能力 增加了集合处理功能 加强了 数据定义语言编辑本段 管理信息库
管理信息库MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。MIB给出了一个网络中所有可能的被管理对象的集合的 数据结构 。SNMP的管理信息库采用和 域名系统 DNS相似的树型结构,它的根在最上面,根没有名字。图3画的是管理信息库的一部分,它又称为对象命名(objectnamingtree)。 对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。在ISO的下面有4个结点,其中的饿一个(标号3)是被标识的组织。在其下面有一个 美国国防部 (DepartmentofDefense)的子树(标号是6),再下面就是Internet(标号是1)。在只讨论Internet中的对象时,可只画出Internet以下的子树(图中带阴影的虚线方框),并在Internet结点旁边标注上{1.3.6.1}即可。 在Internet结点下面的第二个结点是mgmt(管理),标号是2。再下面是管理信息库, 原先的结点名是mib。1991年定义了新的版本MIB-II,故结点名现改为mib-2,其标识为{1.3.6.1.2.1},或 {Internet(1).2.1}。这种标识为对象标识符。 最初的结点mib将其所管理的信息分为8个 类别 ,见表4。现在demib-2所包含的信息类别已超过40个。 应当指出,MIB的定义与具体的网络管理协议无关,这对于厂商和用户都有利。厂商可以在产品 (如路由器)中包含SNMP代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多 个路由器。当然,一个没有新的MIB项目的路由器不能提供这些项目的信息。 这里要提一下MIB中的对象{1.3.6.1.4.1},即enterprises(企业), 其所属结点数已超过3000。例如IBM为11.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为 {1.3.6.1.4.1.23}等。编辑本段 Windows SNMP查询
作用简述
SNMP是"SimpleNetworkManagementProtocol"的缩写,中文含义是"简单网络管理协议",这个协议的作用和详细情况,各位可以参考有关资料.这里只介绍针对这个协议进行状态查询的 工具软件 Snmputilg.exe. 也是支持工具目录中所提供的.至于用途,不外乎是给系统管理员提供关于SNMP方面的信息,便于在排除故障的时候当做参考.打开工具显示界面之后,你就可 以用来执行诸如GET,GET-NEXT等等操作或进行有关的设置.另外,这个工具也能将数据保存到 剪贴板 ,或将数据保存为以逗号为结束符号的文本文件.在使用中应当注意:即使多数对象的都使用了默认的ID标识(数值),你也要谨慎地使用SNMPSET命令,因为不正确地使用这个命令之后,可能导致网络名称资源方面的问题或是在引起连通方面的问题.使用方法
1.启动程序:在windows2000的环境中,点击"开始->运行",在编辑框中键入snmputilg然后回车或点击"确定". 2.和以前遇到的不同,Snmputilg.exe是一个图形界面的工具,尽管执行程序的时候可以使用命令行控制窗口打开它,但实际启动成功之后出现的界面仍然是图形的 3.工具启动后,Node编辑框中显示的是默认的回送地址,地址值是 127.0.0.1 ;CurrentOID 指的是"当前对象标识符",标识是windows系统中用来代表一个对象的数字,每个标识都是整个系统中唯一的,也就是说,标识不会、也不允许重复.图中 显示的值是.1.3.6.1.2.1.public是community一项的默认选择.上面所介绍的这些项目也可选定别的值. 4.如果选择了别的系统的IP地址,则必须运行SNMP服务,而目标系统必须配置好网络访问的地址,所谓配置,包括地址设置和权限打开.同时,所需要的 辅助工具 也应当具备或运行.缺省情况下,windows2000对所有另外系统的IP地址都是允许访问的. 5.另一个问题是community,当选定community的值时,一要注意它所代表的对象必须存在,二要注意其"可读"属性只有获准许可之后才能进行读操作.三要注意这个项目在windows系列的不同版本中,对访问地址的限制可能不一样. 6.凡是SNMP可以执行的功能(SNMPFunctiontoExecute),在图中下拉组合框中都已经列出,可供选择.选择好之后,请鼠标点击ExecuteCommand按钮来执行对应的操作. 以下是这些操作的功能简介: GETthevalueofthecurrentobjectidentifier:得到当前对象的ID标识数值 GETtheNEXTvalueafterthecurrentobjectidentifier(thisisthedefault):得到紧接当前对象之后的下一个对象的ID标识数值(这是默认的) GETtheNEXT20valuesafterthecurrentobjectidentifier:得到当前对象之后的20个对象的ID标识数值 GETallvaluesfromobjectidentifierdown(WALKthetree):得到从当前对象往下的所有对象的ID标识数值 WALKthetreefromWINSvaluesdown:从WINS值往下漫游目录 WALKthetreefromDHCPvaluesdown:从DHCP值往下漫游目录 WALKthetreefromLANMANvaluesdown:从LANMAN值往下漫游目录 WALKthetreefromMIB-IIdown(InternetMIB):从MIB-II往下漫游目录 7.显示结果含义解释: 这些结果可以清除,也可以保存或更新,要实现上述功能,可以使用菜单中对应的操作,具体地说,这些操作包括: 将一个或多个结果拷贝入剪贴板. 删除现在列出的所有内容. 清除已经执行过的所有的命令. 请求记录当前已经选定的项目. 产生一个文本文件,用该文件保存所有的记录的映像 编辑或设置某个对象的标识.在使用这个操作时要谨慎,因为一旦进行了不正确地设置,将可能导致网络名称资编辑本段 SNMPv2协议操作
SNMPv2标准的核心就是通信协议———它是一个请求/应答式的协议。 这个协议提供了在manager与agent、manager与manager之间交换管理信息的直观、基本的方法。 每条SNMPv2的报文都由一些域构成: 如果发送方、接收方的两个Party都采用了验证(authentication)机制,它就包含与验证有关的信息;否则它为空(取NULL)。验证的过程如下:发送方和接收方的Party都分别有一个验证用的 密钥 (secretkey) 和一个验证用的算法。报文发送前,发送方先将密钥值填入图中digest域,作为报文的前缀。然后根据验证算法,对报文中digest域以后(包括 digest域)的报文数据进行计算,计算出一个摘要值(digest),再用摘要值取代密钥,填入报文中的digest域。接收方收到报文后,先将报文 中的摘要值取出来,暂存在一个位置,然后用发送方的密钥放入报文中的digest。将这两个摘要值进行比较,如果一样,就证明发送方确实是 srcParty域中所指明的那个Party,报文是合法的;如果不一样,接收方断定发送方非法。验证机制可以防止非法用户"冒充"某个合法Party来 进行破坏。 authInfo域中还包含两个时间戳(timestamp),用于发送方与接收方之间的同步,以防止报文被截获和重发。 SNMPv2的另一大改进是可以对通信报文进行加密,以防止监听者窃取报文内容。除了privDst域外,报文的其余部分可以被加密。发送方与接收方采用同样的加密算法(如DES)。 通信报文可以不加任何安全保护,或只进行验证,也可以二者都进行。编辑本段 OSI上的SNMP
在CLTS上的映射 在CLTS[7,8]上的SNMP映射是直通方式的。步骤原理和UDP采用的相同。注意CLTS 和服务都是通过包含了全部地址信息的UDP信息传输包来提供的。因此,[1]中的“传输地 址”,映射在CLTS上的SNMP仅仅是一个传输选项和网络地址。 应该注意到,正如[1,5]中描述的那样,映射在面向非连接的传输服务上的SNMP和 SNMP的结构原理是完全一致的。然而,CLTS本身既可以采用一个面向 无连接 方式,又可以采用面向连接的网络服务方式实现。在这种映射中描述的映射支持任意实现方式。(当提供所有网络服务时,应该以CLNS为实现基础。) 周知地址 不象 Internet协议 组,OSI没有使用周知口。当然,多路分解技术基于“选择器”发生,“选择器”是具有局部重要意义的不透明八位字串。为了照顾基于CLTS的可互操作的SNMP实现,定义四个选择器是必要的。当CLTS采用无连接 模式 的 网络服务来提供反向SNMP传输时,应该采用由6个ASCII字符组成的“snmp-l”传输选择器;按照约定,会发送一个SNMP中断给一个正在监听由 7个ASCII字符组成的“snmp-l”传输选择器的SNMP管理器。当CLTS采用面向连接的网络服务来提供反向SNMP传输时,应该采用由6个 ASCII字符组成“snmp-o”传输选择器;按照约定,会发送一个SNMP中断给一个正在监听由7个ASCII字符组成的“snmp-o”传输选择器 的SNMP管理器。 中断 当SNMP中断在CLTS上发送时,Trap-PDU中的代理地址字段包含了IP地址“0.0.0.0”。SNMP管理器可以基于由传输服务提供的信息(也就是源自T-UNIT-DATA.INDICATION基本 数据单元 的)探知陷阱的来源。 最大 消息 尺寸 一个在OSI上运行SNMP的实体应该准备好接收大小至少484个字节的消息。鼓励应用随时可能发生的更大的数值。编辑本段 在网络设备中的作用
SNMP是目前最常用的环境管理协议。SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被 使用。SNMP是一系列协议组和规范(见下表),它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错 误提供了一种方法。 目前,几乎所有的网络设备生产厂家都实现了对SNMP的支持。领导潮流的SNMP是一个从网络 上的设备收集管理信息的公用通信协议。设备的管理者收集这些信息并记录在管理信息库(MIB)中。这些信息报告设备的特性、数据吞吐量、通信超载和错误 等。MIB有公共的格式,所以来自多个厂商的SNMP 管理工具 可以收集MIB信息,在管理控制台上呈现给系统管理员。 通过将SNMP嵌入数据通信设备,如路由器、交换机或集线器中,就可以从一个中心站管理这些设备,并以图形方式查看信息。目前可获取的很多管理应用程序通常可在大多数当前使用的 操作系统 下运行,如Windows95、Windows98、WindowsNT和不同版本UNIX的等。 一个被管理的设备有一个管理代理,它负责向管理站请求信息和动作,代理还可以借助于陷阱为管理站提供站动提供的信息,因此,一些关键的网络设备(如集线器、路由器、交换机等)提供这一管理代理,又称SNMP代理,以便通过SNMP管理站进行管理。
tcpdump / Linux下抓包工具tcpdump使用
http://xitong.iteye.com/blog/1822029
为了弄明白keepalived+lvs是如何交互的,必须学会分析和使用抓包工具进行分析,下面就是对抓包工具的的使用简单介绍如下,有些部分参考的网上的,如有不对的地方欢迎指正,谢谢!
1.第一种是关于类型的关键字主要包括host,net,port
例如:host host 10.10.10.12,指明host 10.10.10.12是一台主机,net 202.0.0.0指明202.0.0.0是一个网络地址,port 80 指明端口号是80。如果没有指定类型,缺省的类型是host.
[root@platform_c ~]# tcpdump host 10.10.10.12 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:47:54.338648 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:47:55.339591 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:47:55.460784 IP 10.10.10.17.5540 > 10.10.10.12.scp-config: P 990305450:990305578(128) ack 3936126663 win 10281 <nop,nop,timestamp 128715924 4061149870>
14:47:55.461037 IP 10.10.10.12.scp-config > 10.10.10.17.5540: P 1:134(133) ack 128 win 10285 <nop,nop,timestamp 4061151871 128715924>
14:47:55.461090 IP 10.10.10.17.5540 > 10.10.10.12.scp-config: . ack 134 win 10281 <nop,nop,timestamp 128715924 4061151871>
14:47:56.340551 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:47:56.682367 arp who-has 10.10.10.12 tell 10.10.10.89
14:47:57.341512 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:47:57.461844 IP 10.10.10.17.5540 > 10.10.10.12.scp-config: P 128:256(128) ack 134 win 10281 <nop,nop,timestamp 128717925 40611518
2.第二种是确定传输方向的关键字主要包括src , dst ,dst or src, dst and src
这些关键字指明了传输的方向,例如:src 10.10.10.12,指明ip包中源地址是10.10.10.12, dst net 202.0.0.0指明目的网络地址是202.0.0.0。如果没有指明方向关键字,则缺省是src or dst关键字。
[root@platform_c ~]# tcpdump src 10.10.10.12 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:50:48.504155 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:50:49.132905 IP 10.10.10.12.21002 > 10.10.10.17.20742: P 1000890141:1000890152(11) ack 1991025729 win 2998
14:50:49.134210 IP 10.10.10.12.21002 > 10.10.10.17.20742: P 11:862(851) ack 209 win 3108
14:50:49.135543 IP 10.10.10.12.21002 > 10.10.10.17.20742: P 862:873(11) ack 230 win 3108
14:50:49.504790 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:50:49.548064 IP 10.10.10.12.scp-config > 10.10.10.17.5540: P 3936138234:3936138367(133) ack 990316714 win 10285 <nop,nop,timestamp 4061325974 128890011>
14:50:50.505743 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
3.第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。
Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。
[root@platform_c ~]# tcpdump tcp port 80 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:48:51.852424 IP 10.10.10.12.20278 > 10.10.10.17.http: S 1416876662:1416876662(0) win 14600 <mss 1460,nop,nop,sackOK,nop,wscale 4>
14:48:51.852447 IP 10.10.10.17.http > 10.10.10.12.20278: S 1206855618:1206855618(0) ack 1416876663 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 4>
14:48:51.852568 IP 10.10.10.12.20278 > 10.10.10.17.http: . ack 1 win 913
14:48:51.852590 IP 10.10.10.12.20278 > 10.10.10.17.http: R 1:1(0) ack 1 win 913
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是'not ','! ',与运算是'and','&&';或运算是'or','││';这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。
[root@platform_c ~]# tcpdump src 10.10.10.12 and dst 10.10.10.17 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:51:45.867526 IP 10.10.10.12.20336 > 10.10.10.17.http: S 492616728:492616728(0) win 14600 <mss 1460,nop,nop,sackOK,nop,wscale 4>
14:51:45.867663 IP 10.10.10.12.20336 > 10.10.10.17.http:
A.tcpdump –i eth0 –c 10
使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,
使用-c参数指定要监听的数据包数量,
使用-w参数指定将监听到的数据包写入文件中保存
B.想要截获主机172.16.14.107和主机172.16.14.27或172.16.14.99的通信,使用命令:(在命令行中使用括号时,一定要用’/’
tcpdump host 172.16.14.107 and / (172.16.14.27or172.16.14.99 /)
C.如果想要获取主机172.16.14.107除了和主机172.16.14.27之外所有主机通信的ip包,使用命令:
tcpdump ip host 172.16.14.107 and ! 172.16.14.27
D.如果想要获取主机172.16.14.107接收或发出的telnet包,使用如下命令:
tcpdump tcp port 23 host 172.16.14.107
E.对本机的udp 123端口进行监视(123为ntp的服务端口)
tcpdump udp port 123
F.系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据:
tcpdump -i eth0 src host hostname
G.下面的命令可以监视所有送到主机hostname的数据包:
tcpdump -i eth0 dst host hostname
#src表示源,即发送
#dst表示目的地,即接收
H.我们还可以监视通过指定网关的数据包:
tcpdump -i eth0 gateway Gatewayname
I.如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令:
tcpdump -i eth0 host hostname and port 80
J.如果想要获取主机172.16.14.107接收或发出的telnet包,使用如下命令:
tcpdump tcp port 23 host 172.16.14.107
K.如果我们只需要列出送到80端口的数据包,用dst port 80;如果我们只希望看到返回80端口的数据包,用src port 80。
tcpdump –i eth0 host hostname and dst port 80目的端口是80
或者
tcpdump –i eth0 host hostname and src port 80源端口是80
80端口一般是提供http的服务的主机
tcpdump输出格式
总的的输出格式为:系统时间来源主机.端口>目标主机.端口数据包参数
如果要用wireshark分析数据:
tcpdump -i eth0 -c 100 -s 0 -w /home/data.pcap
直接使用wireshark /home/data.pcap即可 分析结果如下图
为了弄明白keepalived+lvs是如何交互的,必须学会分析和使用抓包工具进行分析,下面就是对抓包工具的的使用简单介绍如下,有些部分参考的网上的,如有不对的地方欢迎指正,谢谢!
1.第一种是关于类型的关键字主要包括host,net,port
例如:host host 10.10.10.12,指明host 10.10.10.12是一台主机,net 202.0.0.0指明202.0.0.0是一个网络地址,port 80 指明端口号是80。如果没有指定类型,缺省的类型是host.
[root@platform_c ~]# tcpdump host 10.10.10.12 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:47:54.338648 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:47:55.339591 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:47:55.460784 IP 10.10.10.17.5540 > 10.10.10.12.scp-config: P 990305450:990305578(128) ack 3936126663 win 10281 <nop,nop,timestamp 128715924 4061149870>
14:47:55.461037 IP 10.10.10.12.scp-config > 10.10.10.17.5540: P 1:134(133) ack 128 win 10285 <nop,nop,timestamp 4061151871 128715924>
14:47:55.461090 IP 10.10.10.17.5540 > 10.10.10.12.scp-config: . ack 134 win 10281 <nop,nop,timestamp 128715924 4061151871>
14:47:56.340551 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:47:56.682367 arp who-has 10.10.10.12 tell 10.10.10.89
14:47:57.341512 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:47:57.461844 IP 10.10.10.17.5540 > 10.10.10.12.scp-config: P 128:256(128) ack 134 win 10281 <nop,nop,timestamp 128717925 40611518
2.第二种是确定传输方向的关键字主要包括src , dst ,dst or src, dst and src
这些关键字指明了传输的方向,例如:src 10.10.10.12,指明ip包中源地址是10.10.10.12, dst net 202.0.0.0指明目的网络地址是202.0.0.0。如果没有指明方向关键字,则缺省是src or dst关键字。
[root@platform_c ~]# tcpdump src 10.10.10.12 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:50:48.504155 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:50:49.132905 IP 10.10.10.12.21002 > 10.10.10.17.20742: P 1000890141:1000890152(11) ack 1991025729 win 2998
14:50:49.134210 IP 10.10.10.12.21002 > 10.10.10.17.20742: P 11:862(851) ack 209 win 3108
14:50:49.135543 IP 10.10.10.12.21002 > 10.10.10.17.20742: P 862:873(11) ack 230 win 3108
14:50:49.504790 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
14:50:49.548064 IP 10.10.10.12.scp-config > 10.10.10.17.5540: P 3936138234:3936138367(133) ack 990316714 win 10285 <nop,nop,timestamp 4061325974 128890011>
14:50:50.505743 IP 10.10.10.12 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 90, authtype simple, intvl 1s, length 20
3.第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。
Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。
[root@platform_c ~]# tcpdump tcp port 80 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:48:51.852424 IP 10.10.10.12.20278 > 10.10.10.17.http: S 1416876662:1416876662(0) win 14600 <mss 1460,nop,nop,sackOK,nop,wscale 4>
14:48:51.852447 IP 10.10.10.17.http > 10.10.10.12.20278: S 1206855618:1206855618(0) ack 1416876663 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 4>
14:48:51.852568 IP 10.10.10.12.20278 > 10.10.10.17.http: . ack 1 win 913
14:48:51.852590 IP 10.10.10.12.20278 > 10.10.10.17.http: R 1:1(0) ack 1 win 913
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是'not ','! ',与运算是'and','&&';或运算是'or','││';这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。
[root@platform_c ~]# tcpdump src 10.10.10.12 and dst 10.10.10.17 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:51:45.867526 IP 10.10.10.12.20336 > 10.10.10.17.http: S 492616728:492616728(0) win 14600 <mss 1460,nop,nop,sackOK,nop,wscale 4>
14:51:45.867663 IP 10.10.10.12.20336 > 10.10.10.17.http:
A.tcpdump –i eth0 –c 10
使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,
使用-c参数指定要监听的数据包数量,
使用-w参数指定将监听到的数据包写入文件中保存
B.想要截获主机172.16.14.107和主机172.16.14.27或172.16.14.99的通信,使用命令:(在命令行中使用括号时,一定要用’/’
tcpdump host 172.16.14.107 and / (172.16.14.27or172.16.14.99 /)
C.如果想要获取主机172.16.14.107除了和主机172.16.14.27之外所有主机通信的ip包,使用命令:
tcpdump ip host 172.16.14.107 and ! 172.16.14.27
D.如果想要获取主机172.16.14.107接收或发出的telnet包,使用如下命令:
tcpdump tcp port 23 host 172.16.14.107
E.对本机的udp 123端口进行监视(123为ntp的服务端口)
tcpdump udp port 123
F.系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据:
tcpdump -i eth0 src host hostname
G.下面的命令可以监视所有送到主机hostname的数据包:
tcpdump -i eth0 dst host hostname
#src表示源,即发送
#dst表示目的地,即接收
H.我们还可以监视通过指定网关的数据包:
tcpdump -i eth0 gateway Gatewayname
I.如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令:
tcpdump -i eth0 host hostname and port 80
J.如果想要获取主机172.16.14.107接收或发出的telnet包,使用如下命令:
tcpdump tcp port 23 host 172.16.14.107
K.如果我们只需要列出送到80端口的数据包,用dst port 80;如果我们只希望看到返回80端口的数据包,用src port 80。
tcpdump –i eth0 host hostname and dst port 80目的端口是80
或者
tcpdump –i eth0 host hostname and src port 80源端口是80
80端口一般是提供http的服务的主机
tcpdump输出格式
总的的输出格式为:系统时间来源主机.端口>目标主机.端口数据包参数
如果要用wireshark分析数据:
tcpdump -i eth0 -c 100 -s 0 -w /home/data.pcap
直接使用wireshark /home/data.pcap即可 分析结果如下图
END