ICMP,IGMP和SNMP(两个长得有点像的协议)

简介: ICMP,IGMP和SNMP(两个长得有点像的协议)

1.ICMP


1.ICMP(Internet Contral Message protocol)是互联网控制报文协议,通常被认为是IP协议的一部分,但是他既不是网络层协议,也不是传输层协议,是介于两者之间的协议。


注:


因为ip协议是不可靠的协议,所以icmp帮助ip完成下层的必要的网络质量管理,当ip包出现错误,下层的主机或者路由器就可以通过发送ICMP包,将错误信息上报给 上层,但是ICMP仅仅做的是汇报错误信息,不会是ip协议变为一个可靠的协议


主要功能:


它的主要功能是传输网络诊断信息,信息主要包括两类:


查询类报文 :主要用于信息的查询和采集,比如采集传输路径上的每个路由器都是谁,本次传输的报文是否达到目的地等等。


差错诊断类报文 :主要用于诊断网络故障,比如传输报文被丢弃的原因是什么等等。


补充:


支持IPv6地址的ICMPv6协议增加的邻居发现功能代替了ARP协议,ICMPvo还为支持IPv6中的路由优化、IP组播、移动IP等增加了一些新的报文类型。


ICMP常见的报文


•目标不可到达(类型3):如果路由器判断出不能把IP数据报送达目标主机,则向源主机返回这种报文。另一种情况是目标主机找不到有关的用户协议或上层服务访问点,也会返回这种报文。出现这种情况的原因可能是IP头中的字段不正确;或是数据报中说明的源路由无效;也可能是路由器必须把数据报分段,但IP头中的D标志已置位。


•超时(类型11):路由器发现IP数据报的生存期已超时,或者目标主机在一定时间内无法完成重装配,则向源端返回这种报文。


•源抑制(类型4):这种报文提供了一种流量控制的初等方式。如果路由器或目标主机缓冲资源耗尽而必须丢弃数据报,则每丢弃一个数据报就向源主机发回一个源抑制报文,这时源主机必须减小发送速度。另外一种情况是系统的缓冲区已用完,并预感到行将发生拥塞,则发出源抑制报文。但是与前一种情况不同,涉及的数据报尚能提交给目标主机。


•参数问题(类型12):如果路由器或主机判断出IP头中的字段或语义出错,则返回这种报文,报文头中包含一个指向出错字段的指针。


•路由重定向(类型5):路由器向直接相连的主机发出这种报文,告诉主机一个更短的路径。例如路由器R1收到本地网络上的主机发来的数据报,R1检查它的路由表,发现要把数据报发往网络X,必须先转发给路由器R2,而R2又与源主机在同一网络中。于是R1向源主机发出路由重定向报文,把R2的地址告诉它。


•回声(请求/响应,类型8/0):用于测试两个结点之间的通信线路是否畅通。收到回声请求的结点必须发出回声响应报文。该报文中的标识符和序列号用于匹配请求和响应报文。当连续发出回声请求时,序列号连续递增。常用的PING工具就是这样工作的。


时间戳(请求/响应,类型13/14):用于测试两个结点之间的通信延迟时间。请求方发出本地的发送时间,响应方返回自己的接收时间和发送时间。这种应答过程如果结合强制路由的数据报实现,则可以测量出指定线路上的通信延迟。


•地址掩码(请求/响应,类型17/18):主机可以利用这种报文获得它所在的LAN的子网掩码。首先主机广播地址掩码请求报文,同一LAN上的路由器以地址掩码响应报文回答,告诉请求方需要的子网掩码。了解子网掩码可以判断出数据报的目标结点与源结点是否在同一LAN中。


注:

1,对ICMP差错报告报文不再,发送ICMP差错报告报文。


2,对具有特殊地址(如127.0.0.0或0.0.0.0 )的数据报不发送ICMP差错报告报文。


3,对具有多播地址的数据报都不发送ICMP差错报告报文。


4,对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。


典型的命令:


ping命令:测试两点之间的连通性,可知中间经过了几个路由器


traceroute(linux)/tracert(windows)命令:可知中间经过了哪些路由器


两者结合就是pathping命令


帧格式


ICMP (Internet control Message Protocol)与IP协议同属于网络层,用于传送有关通信问题的消息,例如数据报不能到达目标站,路由器没有足够的缓存空间,或者路由器向发送主机提供最短通路信息等。ICMP报文封装在IP数据报中传送,因而不保证可靠的提交。ICMP报文有11种之多,报文格式如下图所示。其中的类型字段表示ICMP报文的类型,代码字段可表示报文的少量参数,当参数较多时写入32位的参数字段,ICMP 报文携带的信息包含在可变长的信息字段中,校验和字段是关于整个ICMP报文的校验和。


61488497a0c04a1ea2080b40553ae090.png


原理:


发送TTL值不同的数据包到达目的路由器,例如,发送TTL=1的数据包,第一台路由器返回路由信息,TTL=2,则第二台主机发送路由信息到源点,最后一个路由器返回目的不可达报文


5e921c23959a4ea4934c9fbe2e48e692.png


2.IGMP


组播协议包括组成员管理协议和组播路由协议。


组成员管理协议用于管理组播组成员的加入和离开。


组播路由协议负责在路由器之间交互信息来建立组播树。


IGMP属于前者,是组播路由器用来维护组播组成员信息的协议,运行于主机和和组播路由器之间。IGMP 信息封装在IP报文中,其IP的协议号为2。


若一个主机想要接收发送到一个特定组的组播数据包,它需要监听发往那个特定组的所有数据包。为解决Internet上组播数据包的路径选择,主机需通过通知其子网上的组播路由器来加入或离开一个组,组播中采用IGMP来完成这一任务。这样,组播路由器就可以知道网络上组播组的成员,并由此决定是否向它们的网络转发组播数据包。当一个组播路由器收到一个组播分组时,它检查数据包的组播目的地址,仅当接口上有那个组的成员时才向其转发。


IGMP报文分为三种

①成员资格询问报文:组播路由器发出,询问是否有主机加入组播。

②成员资格报告报文:主机加入组播组。

③组记录报文:记录组播的状态和信息。


IGMP提供了在转发组播数据包到目的地的最后阶段所需的信息,


主机通过IGMP通知路由器希望接收或离开某个特定组播组的信息。


路由器通过IGMP周期性地查询局域网内的组播组成员是否处于活动状态,实现所连网段组成员关系的收集与维护。


IGMP共有三个版本,即IGMP v1、v2 和 v3。


IGMPV1:


IGMPv1 定义了主机只可以加入组播组,但没有定义离开成员组的信息,路由器基于成员组的超时机制发现离线的组成员。


IGMPv1 主要基于查询和响应机制来完成对组播组成员的管理。当一个网段内有多台组播路由器时,由于它们都能从主机那里收到IGMP 成员关系报告报文(Membership Report Message),因此只需要其中一台路由器发送IGMP查询报文(Query Message)就足够了。这就需要有一个查询器(Querier)的选举机制来确定由哪台路由器作为IGMP 查询器。对于IGMPv1 来说,由组播路由协议(如PIM)选举出唯一的组播信息转发者DR(Designated Router,指定路由器)作为IGMP 查询器。


IGMPv1 没有专门定义离开组播组的报文。当运行IGMPv1 的主机离开某组播组时,将不会向其要离开的组播组发送报告报文。当网段中不再存在该组播组的成员后,IGMP路由器将收不到任何发往该组播组的报告报文,于是IGMP 路由器在一段时间之后便删除该组播组所对应的组播转发项。


IGMPV2:


IGMPv2 是在版本1 上基础上增加了主机离开成员组的信息,允许迅速向路由协议报告组成员离开情况,这对高带宽组播组或易变型组播组成员而言是非常重要的。另外,若一个子网内有多个组播路由器,那么多个路由器同时发送IGMP 查询报文不仅浪费资源,还会引起网络的堵塞。为解决这个问题,IGMPv2。不同使用路由选举机制, 能在一个子网内查询多个路由器。


IGMP版本2对版本1所做的改进主要有:


(1)共享网段上组播路由器的选举机制


共享网段表示一个网段上有多个组播路由器的情况。在这种情况下,由于此网段上运行igmp的路由器都能从主机那里收到成员资格报告消息,因此,只需要一个路由器发送成员资格查询消息,这就需要一个路由器选举机制来确定一个路由器作为查询器。


1.所有IGMPv2路由器在初始时都认为自己是查询器,并向本地网段内的所有主机和路由器发送IGMP 普遍组查询(General Query)报文(目的地址为:224.0.0.1);


2. 本地网段中的其它IGMPv2路由器在收到该报文后,将报文的源IP 地址与自己的接口地址作比较。通过比较,IP 地址最小的路由器将成为查询器,其它路由器成为非查询器(Non-Querier);


3. 所有非查询器上都会启动一个定时器(即其它查询器存在时间定时器OtherQuerier Present Timer)。在该定时器超时前,如果收到了来自查询器的IGMP查询报文,则重置该定时器;否则,就认为原查询器失效,并发起新的查询器选举过程。


在igmp版本1中,查询器的选择由组播路由协议决定;igmp版本2对此做了改进,规定同一网段上有多个组播路由器时,具有最小ip地址的组播路由器被选举出来充当查询器。


(2)增加了离开组机制


在igmp版本1中,主机悄然离开组播组,不会给任何组播路由器发出任何通知。造成组播路由器只能依靠组播组响应超时来确定组播成员的离开。而在版本2中,当一个主机决定离开时,如果它是对最近一条成员资格查询消息作出响应的主机,那么它就会发送一条离开组的消息。


在IGMPv2 中,当一个主机离开某组播组时:


1.该主机向本地网段内的所有组播路由器(目的地址为224.0.0.2)发送离开组(Leave Group)报文;


2. 当查询器收到该报文后,向该主机所声明要离开的那个组播组发送特定组查询(Group-Specific Query)报文(目的地址字段和组地址字段均填充为所要查询的组播组地址);


3. 如果该网段内还有该组播组的其它成员,则这些成员在收到特定组查询报文后,会在该报文中所设定的最大响应时间(Max Response Time)内发送成员关系报告报文;


4 如果在最大响应时间内收到了该组播组其它成员发送的成员关系报告报文,查询器就会继续维护该组播组的成员关系;否则,查询器将认为该网段内已无该组播组的成员,于是不再维护这个组播组的成员关系。


(3)增加了对特定组的查询


在igmp版本1中,组播路由器的一次查询,是针对该网段下的所有组播组。这种查询称为普遍组查询。


在igmp版本2中,在普遍组查询之外增加了特定组的查询,这种查询报文的目的ip地址为该组播组的ip地址,报文中的组地址域部分也为该组播组的ip地址。这样就避免了属于其它组播组成员的主机发送响应报文。


(4)增加了最大响应时间字段


igmp版本2增加最大响应时间字段,以动态地调整主机对组查询报文的响应时间。


IGMPv3:


IGMPv3 在兼容和继承IGMPv1 和IGMPv2 的基础上,进一步增强了主机的控制能力,并增强了查询和报告报文的功能。


1)主机控制能力的增强


IGMPv3 增加了针对组播源的过滤模式(INCLUDE/EXCLUDE),使主机在加入某组播组G 的同时,能够明确要求接收或拒绝来自某特定组播源S 的组播信息。当主机加入组播组时:


若要求只接收来自指定组播源如S1、S2、……的组播信息,则其报告报文中可以标记为INCLUDE Sources(S1,S2,……);


若拒绝接收来自指定组播源如S1、S2、……的组播信息,则其报告报文中可以标记为EXCLUDE Sources(S1,S2,……)。


2)查询和报告报文功能的增强


(1) 携带源地址的查询报文


IGMPv3 不仅支持IGMPv1 的普遍组查询和IGMPv2 的特定组查询,而且还增加了对特定源组查询的支持:


z 普遍组查询报文中,既不携带组地址,也不携带源地址;


z 特定组查询报文中,携带组地址,但不携带源地址;


z 特定源组查询报文中,既携带组地址,还携带一个或多个源地址。


(2) 包含多组记录的报告报文


IGMPv3 报告报文的目的地址为224.0.0.22,可以携带一个或多个组记录。在每个组记录中,包含有组播组地址和组播源地址列表。组记录可以分为多种类型,如下:


IS_IN:表示组播组与组播源列表之间的过滤模式为INCLUDE,即只接收从指定组播源列表发往该组播组的组播数据。


IS_EX:表示组播组与组播源列表之间的过滤模式为EXCLUDE,即只接收从指定组播源列表之外的组播源发往该组播组的组播数据。


z TO_IN:表示组播组与组播源列表之间的过滤模式由EXCLUDE 转变为INCLUDE。


TO_EX:表示组播组与组播源列表之间的过滤模式由INCLUDE 转变为EXCLUDE。


ALLOW:表示在现有状态的基础上,还希望从某些组播源接收组播数据。如果当前的对应关系为INCLUDE,则向现有组播源列表中添加这些组播源;如果当前的对应关系为EXCLUDE,则从现有组播源列表中删除这些组播源。


BLOCK:表示在现有状态的基础上,不再希望从某些组播源接收组播数据。如果当前的对应关系为INCLUDE,则从现有组播源列表中删除这些组播源;如果当前的对应关系为EXCLUDE,则向现有组播源列表中添加这些组播源。


实现步骤如下:


1、当主机某个进程加入一个组播组时,主机发送一个IGMP 报告。若一个主机多个进程同时加入同一组,则发送一个IGMP 报告。  2、进程离开一个多播组时,主机不发送IGMP 报告,即便是组中最后一个进程离开多播组。当主机确定已不再有组成员后,在随后收到的IGMP 查询中就不应答报文。  3、多播路由器定时发送IGMP 查询是否还有其他主机包含有属于多播组的进程。多播路由器必须向每个接口发送IGMP 查询。  4、主机通过发送IGMP 报告来响应一个IGMP 查询,对每个至少还包含一个进程的组均要发回IGMP 报告。  使用上述查询和报告报文,多播路由器对每个接口保持一张映射表,表中记录了接口上包含的一个或多个主机多播组。当路由器收到要转发的多播数据报时,只需将该数据报转发到该接口上。


可靠性


IP 组播使用用户数据报UDP 协议,然而UDP 是尽最大能力投递的一种协议。因此,IP 组播应用势必会遇到数据包丢失和乱序问题。为此,对于IGMP 不同类型的应用必须在确认方式( 肯定确认ACK 和否定确认NACK),集中确认与分布确认、重传机制、流量控制、拥塞控制等方面综合考虑,提出解决反案。迄今为止,尽管在广域网环境中已经存在许多可靠组播协议,包括可靠组播协议RMP(ReliableMulticast Protocol),可扩可靠组播SRM(Scalable Reliable Multicast),和可靠组播传输协议RMTP(ReliableMulticast Transport Protocol)。目前组播的可靠性研究仍然是重点研究课题之一。


安全性


组播安全性是只有注册的主机才能够向组发送数据和接收组播数据。  然而IP 组播很难保证这一点。首先,IP 组播使用UDP,网络中任何主机都可以向某个组播地址发送UDP 包;其次,Internet缺少对于网络层的访问控制,组成员可以随时加入和退出组播组,使得组播安全性问题仍然是一个技术难点。  IGMP 组播协议是IPv4 环境下重要的协议。IGMPv1 实现简单,但是主机离开多播组延迟过大,选择查询路由器需要依赖具体的组播路由协议;IGMPv2缺少对主机进程加入多播组的定义,制约了其应用范围。IGMPv3 主要改进是支持源特定组播。目前大部分的网络设备和主机操作系统协议栈都支持IGMPv1 和IGMPv2,但为适应复杂的网络需求,必须大力推进IGMPv3 协议的用应用。目前,Windows XP 已经支持IGMPv3 ,现在的UNIX 操作系统也可以与IGMP v1/ v2 版本向后兼容,组播技术有着广阔的发展前景。


这一篇介绍也很详尽:


http://t.csdn.cn/Ml28U


3.SNMP


1.SNMP简介


snmp(简单网络管理协议)是应用层的协议,,它依赖于UDP数据报服务,这是因为UDP效率较高,这样实现网络管理不会太多地增加网络负载。但由于UDP不是很可靠,所以SNMP报文容易丢失。为此,对SNMP实现的建议是对每个管理信息要装配成单独的数据报独立发送,而且报文应短些,不要超过484个字节。SNMP实体向管理应用程序提供服务,它的作用是把管理应用程序的服务调用变成对应的SNMP协议数据单元,并利用UDP数据报发送出去。


SNMP报文结构


c7fb335c25634b8d8889dc174cdbc0d5.png


SNMP有5种报文,其PDU也有5种


在SNMP管理中,管理站(NMS)和代理(Agent)之间交换的管理信息构成了SNMP报文。SNMP报文包括GetRequest、GetNextRequest、GetBulkRequest ( SNMPv2 )、SetRequest、InformRequest (SNMPv2)和Trap、Response,如下图所示。


eb8c1b62c60844798a10e00cfa80c6de.png


get-request操作:从代理进程处提取一个或多个参数值(网管系统发送),可用于管理进程查询代理中一个或多个变量的值。


get-next-request操作:

从代理进程处提取紧跟当前参数值的下一个参数值(网管系统发送)


set-request操作:设置代理进程的一个或多个参数值(网管系统发送)


get-response操作:

返回的一个或多个参数值。

这个操作是由代理进程发出的,它是前面三种操作的响应操作(代理发送)


trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生(代理发送)


根据SNMP协议规定(RFC1157),管理站发送报文的协议为UDP,目的端口为161,代理发送的Trap报文的目的端口为162。


2.SNMP版本介绍(这里只是简单介绍)


•SNMPv1:SNMPv1是SNMP协议的最初版本,提供最小限度的网络管理功能。SNMPv1的SMI和MIB都比较简单,且存在较多安全缺陷。\n\nSNMPv1采用团体名认证。团体名的作用类似于密码,用来限制NMS对Agent的访问。如果SNMP报文携带的团体名没有得到NMS/Agent的认可,该报文将被丢弃。


•SNMPV2:SNMPv2c也采用团体名认证。在兼容SNMPv1的同时又扩充了SNMPv1的功能:它提供了更多的操作类型(GetBulk和inform操作);支持更多的数据类型(Counter32等);提供了更丰富的错误代码,能够更细致地区分错误。


其中SNMPV1和SNMPv2出过软考网工的比较,题目如下:


例题1


SNMPv2提供了几种访问管理信息的方法,其中属于SNMPv2特有的是(50)。

(50)A.管理站与代理之间的请求/响应通信

  B.管理站与管理站之间的请求/响应通信

  C.代理到管理站的非确认通信

  D.代理向管理站发送陷入报文

【答案】B



【解析】

SNMPv2提供了3种访问管理信息的方法:


一. 是管理站与代理之间的请求/响应通信,这种方法与SNMPvl是一样的;


二. 是管理站与管理站之间的请求/响应通信,这种方法是SNMPV2特有的,可以由一个管理站把有关管理信息告诉另一个管理站;


三. 是代理到管理站的非确认通信,即由代理向管理站发送陷入报文,报告出现的异常情况,SNMPvl中也有对应的通信方式。


例题2


下列数据类型中,SNMPv2支持而SNMPv1不支持的是(49)。


(49)A.OCTET STRING B.OBJECT descriptor C.Unsigned32 D.Gauge32


【答案】C


【解析】本题考査SNMPv1和SNMPv2的数据类型。


SNMPv2增加了两种新的数据类型Unsigned32和Counter64。这两种是SNMPv2支持而SNMPv1不支持的数据类型。


例题3.


下列网络管理软件中不需要SNMP支持的是(49)。


(49)A.CiscoWorks B.Netview C.Solarwinds D.Wireshark


答案:D


解析:


在这4个软件中,CiscoWorks、Netview以及Solarwinds都是网络管理软件,都须得到SNMP的支持,而Wireshark (前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料,并不要求SNMP的支持。


例题4.


在SNMPv2错误类型中,表示管理对象不可访问的是(50)。


(50)A.noAccess B.genErr C.wrongValue D.noCreation


【答案】A


【解析】本题考查SNMPv2的错误类型。


在SNMPv2错误类型中,表示管理对象不可访问的是noAccess。而genErr表示某些其他的差错。若代理不执行该操作,则返回wrongValue。noCreation则表示对象不存在且无法建立。


•SNMPv3:在安全方面进行了增强,采用USM和VACM技术,USM提供了认证和加密功能,VACM确定用户是否允许访问特定的MIB对象及访问方式。SNMPv3版本支持的操作和SNMPv2c版本支持的操作一样。


SNMPv3把对网络协议的安全威胁分为主要的和次要的两类。标准规定安全模块必须提供防护的两种主要威胁是:


①修改信息(Modification of Information):就是某些未经授权的实体改变了进来的SNMP报文,企图实施未经授权的管理操作,或者提供虚假的管理对象。


②假冒(Masquerade):即未经授权的用户冒充授权用户的标识,企图实施管理操作。


SNMPv3标准还规定安全模块必须对两种次要威胁提供防护:


①修改报文流(Message Stream Modification):由于SNMP协议通常是基于无连接的传输服务,重新排序报文流、延迟或重放报文的威胁都可能出现。这种威胁的危害性在于通过报文流的修改可能实施非法的管理操作。


②消息泄露(Disclosure): SNMP引擎之间交换的信息可能被偷听,对这种威胁的防护应采取局部的策略。


有两种威胁是安全体系结构不必防护的,因为它们不是很重要,或者这种防护没有多大作用:


①拒绝服务(Denial of Service):因为在很多情况下拒绝服务和网络失效是无法区别的,所以可以由网络管理协议来处理,安全子系统不必采取措施。


②通信分析(Traffic Analysis):即由第三者分析管理实体之间的通信规律,从而获取需要的信息。由于通常都是由少数管理站来管理整个网络的,所以管理系统的通信模式是可预见的,防护通信分析就没有多大作用了。


在SNMPv3中管理站(Manager)和代理(Agent)两种功能实体统一叫做SNMP实体(SNMP entity)。实体是体系结构的一种实现,由一个或多个SNMP引擎(SNMP engine)和一个或者多个SNMP应用(SNMP Application)组成。


SNMPv3的应用程序分为命令生成器、命令响应器、通知发送器、通知接收器和代理转发器5种。


详细可看:


http://t.csdn.cn/1WpIB


一网工题型


SNMPc支持各种设备访问方式,在SNMPc支持的设备访问方式中,只是用于对TCP服务轮询的方式是(48)。

(48)A.无访问模式  B.ICMP(Ping)  C.SNMPv1和v2c  D.SNMPv3

【答案】A



【解析】本题考查网络管理软件SNMPc的设备访问模式。

SNMPc支持各种设备访问方式,包括TCP、ICMP (Ping), SNMPv1、SNMPv2C 和SNMPv3。


其中无访问模式(仅对TCP):无访问模式只是用于对TCP服务的轮询,

当ICMP/SNMP访问受防火墙限制时使用这种方式。ICMP (Ping): ICMP (Ping)用于不支持SNMP但仍可通过Ping测试其是否有响应的设备。此类设备也可能包括服务器和工作站。


SNMPv1和v2C: SNMPv1和SNMP v2C是非常相似的SNMP代理协议,目前部署的网络设备大多数都使用这两种协议。任何支持v2C的设备一般同样也支持v1。


SNMPc根据需要在两种方式之间自动智能切换。因此在多数情况下总是会选择SNMPv1作为设备的访问方式。


SNMPv3: SNMP v3是安全的SNMP代理协议,支持身份验证和加密功能。


3.管理信息库(MIB)和管理信息结构(SMI)

一套完整的SNMP系统除了SNMP报文协议以外,还有管理信息库(MIB)和管理信息结构(SMI)

•信息管理库(MIB)


每个SNMP设备(Agent)都有自己的MIB,MIB可以看作是NMS(网络管理系统,既可以指一台专门用来进行网络管理的服务器,也可以指某个网络设备中执行管理功能的一个应用程序)和Agent之间的桥梁,他定义了被管理对象的名称,访问权限,数据类型等


fe006002f4f9455a8ce73c1099df3026.png


例题:


1.


网络管理系统由网络管理站,网管代理,网络管理协议和管理信息库4个要素组成,当网管代理向管理站发送事件报告时,使用的操作是(48)。


(48)A.get B.get-next C.trap D.set


【答案】C


【解析】本题考查网络管理中SNMP协议支持的服务原语。


Get检索数据,Set改变数据,GetNext提供扫描MIB树和连续检索数据的方法,Trap则提供从代理进程到管理站的异步报告机制。


2


在MIB-2中,IP组对象ipInReceives为接收的IP数据报总数,其数据类型为(49)类型。


(49)A.整数 B.计数器 C.序列 D.计量器


【答案】B


【解析】本题考查SNMP协议中MIB-2的功能组对象的数据类型。


在MIB-2中,IP组对象ipInReceives为接收的IP数据报总数,其数据类型为计数器类型(Counter)。


3.


SNMP MIB中被管对象的Access属性不包括(57)。


(57)A.只读 B.只写 C.可读写 D.可执行


【答案】D


【解析】


SNMP MIB中被管对象的Access包括读、写、可读写属性,但不包括可执行


4.


在MIB-2的系统组中,(49)对象以7位二进制数表示,每一位对应OSI/RM7层协议中的一层。


(49)A.sysDescr B.sysUpTime C.sysName  D.sysServices


【答案】D


【解析】本题考查管理信息库第二版的有关系统组的内容


系统组提供了系统的一般信息,系统服务对象sysServices是7位二进制数,每一位对应0SI/RM7层协议中的一层。如果系统提供某一层服务,则对应的位为1,否则为0。


5.


下图是被管理对象的树结构,其中private子树是为私有企业管理信息准备的,目前 这个子树只有一个子结点enterprises(1)。某私有企业向Internet编码机构申请到一个代码920,该企业为它生产的路由器赋予的代码为3,则该路由器的对象标识符是(46)。


4b42aac72bfb404b862ada99575b8295.png


 (46)A.1.3.6.1.4.920.3 B.3.920.4.1.6.3.1


 C.1.3.6.1.4.1.920.3 D.3.920.1.4.1.6.3.1


【答案】C


【解析】本题考查SNMP中管理对象树结构的基础知识。


SNMP环境中的所有被管理对象组织成树型结构,如下图所示。这种层次树结构有3个作用:


①表示管理和控制关系。从下图可知,上层的中间结点是某些组织机构的名字, 说明这些机构负责它下面的子树的管理。有些中间结点虽然不是组织机构名,但己委托给某个组织机构代管,例如org(3)由ISO代管,而intemet( 1)由IAB( Internet Architecture Board)代管等。树根没有名字,默认为抽象语法表示ASN.1。


c7de9bc1c2f74d0b84b7ac03e0a2282c.png


②提供了结构化的信息组织技术。从上图可看出,下层的中间结点代表的子树是与每个网络资源或网络协议相关的信息集合。例如,有关IP协议的管理信息都放置在ip(4) 子树中。这样,沿着树层次访问相关信息很方便。


③提供了对象命名机制。树中每个结点都有一个分层的编号。叶子结点代表实际的管理对象,从树根到树叶的编号串联起来,用圆点隔开,就形成了管理对象的全局标 识。例如internet 的标识符是1.3.6.1,或者写为{iso(1) org(3) dod(6) 1}。


internet下面的4个结点需要解释。directory 1是OSI的目录服务(X.500)。mgmt 2 包括由IAB批准的所有管理对象,而mib-2是mgmt 2的第一个孩子结点。experimental 3 子树用来标识在互联网上实验的所有管理对象。最后,private 4子树是为私有企业管理信息准备的,目前这个子树只有一个孩子结点enterprises 1。


根据题目描述,某私有企业向Internet编码机构申请到一个代码920,该企业为它生产的路由器赋予的代码为3。这样,该路由器的对象标识符就是1.3.6.1.4.1.920.3。


补充(RMON)


RMON:远程网络监控协议(Remote Network Monitoring)它是一种监控局域网通信地标准。SNMP作为一个基于TCP/IP并在Internet互联网中应用最广泛的网管协议,网络管理员可以使用SNMP监视和分析网络运行情况,但是SNMP也有一些明显的不足之处在于SNMP使用轮询采集数据,在大型网络中轮询会产生巨大的网络管理报文,从而导致网络拥塞; SNMP仅提供一般的验证,不能提供可靠的安全保证; 也不支持分布式管理,而采用集中式管理。由于只由网管工作站负责采集数据和分析数据,所以网管工作站的处理能力可能成为瓶颈。


为了提高传送管理报文的有效性、减少网管工作站的负载、满足网络管理员监控网段性能的需求,IETF开发了RMON用以解决SNMP在日益扩大的分布式互联中所面临的局限性。

RMON监视器可用两种方法收集数据


1.一种是通过专用的RMON探测器(probe),网管工作站直接从探测器获取管理信息并控制网络资源,这种方式可以获取RMON MIB的全部信息;另一种方法是将RMON代理直接植入网络设备(路由器、交换机、HUB等)使它们成为带RMON probe功能的网络设施,网管工作站用SNMP的基本命令与其交换数据信息,收集网络管理信息,但这种方式受设备资源限制,一般不能获取RMON MIB的所有数据,大多数只收集四个组的信息。


RMON MIB由一组统计数据、分析数据和诊断数据组成,不像标准MIB仅提供被管对象大量的关于端口的原始数据,它提供的是一个网段的统计数据和计算结果。


RMON的特点:


7e0b5c4335a04178a4c8950d0821766b.png


详细请看这篇


http://t.csdn.cn/86iJh


例题:


RMON和SNMP的主要区别是(47)。


(47)A.RMON只能提供单个设备的管理信息,而SNMP可以提供整个子网的管理信息


 B.RMON提供了整个子网的管理信息,而SNMP管理信息库只包含本地设备的管理信息


 C.RMON定义了远程网络的管理信息库,而SNMP只能提供本地网络的管理信息


 D.RMON只能提供本地网络的管理信息,而SNMP定义了远程网络的管理信息库


【答案】B


【解析】


SNMP是应用层协议,它通过UDP数据报实现管理站与远程代理之间的通信,如下图所示。每个被管理设备中的代理实现管理信息库MIB-2,只能收集本地的管理信息。所以最初定义的SNMP协议只能提供单个设备的网络管理信息,例如进出某个远程设备的分组数或字节数等。

183cf0fbaa5e4d8dbdcd77c7ff299d7a.png


用于监视整个网络通信情况的设备叫做网络监视器(Monitor)或探测器(Probe),这种设备观察LAN上出现的每个分组,并进行统计和汇总,例如提供出错统计数据(残缺分组数、冲突次数)、性能统计数据(每秒钟提交的分组数、分组大小的分布情况)等,如下图所示。RMON探测器(RMONProbe)实现RMON管理信息库(RMONMIB), 并且响应管理站的査询请求。所以RMON可以提供整个子网的管理信息。


•管理信息结构(SMI)


定义了SNMP框架所用的组织,组成和标识,它还为描述MIB对象和描述协议怎样交换信息奠定了基础。

目录
相关文章
|
8月前
|
网络协议 网络架构
网络协议与攻击模拟-05-ICMP协议
网络协议与攻击模拟-05-ICMP协议
55 0
|
9月前
|
网络架构
ICMP协议(Internet控制消息协议)
本文详细的介绍ICMP协议,内含详细的实例解析,该文你值得拥有。
|
9月前
|
Linux C语言 C++
Linux ICMP协议实现:C/C++编程指南
ICMP(Internet Control Message Protocol)是网络通信中的重要协议,用于在IP网络中传递错误消息和诊断信息。在Linux系统中,我们可以使用C/C++编程语言来实现基本的ICMP功能,例如发送ICMP回显请求(Ping)和解析ICMP消息。本文将带您深入了解C/C++实现的ICMP协议,包括套接字编程、构造ICMP报文、发送和接收ICMP消息等,以及提供实际的代码示例。
511 1
|
15天前
|
运维 监控 安全
网络管理(包括网络管理的功能,管理系统及相关协议:SNMP,CMIS/CMIP)
网络管理(包括网络管理的功能,管理系统及相关协议:SNMP,CMIS/CMIP)
21 1
|
15天前
|
数据采集 监控 Linux
用SNMP协议实现系统监控(转)
用SNMP协议实现系统监控(转)
11 0
|
15天前
|
Prometheus 监控 安全
SNMP简介:网络管理的关键协议详解
【4月更文挑战第22天】
57 3
SNMP简介:网络管理的关键协议详解
|
15天前
|
XML JSON 监控
|
15天前
|
域名解析 缓存 网络协议
|
15天前
|
监控 网络协议 网络安全
ICMP (Internet Control Message Protocol,互联网控制消息协议)
ICMP(Internet Control Message Protocol,互联网控制消息协议)是用于在IP网络中传递控制消息的协议。它通常被用于网络设备之间交换状态信息和错误报告,以及执行网络诊断和故障排除。
74 0
|
15天前
|
网络协议 API 网络安全
用户态协议栈设计实现udp,arp与icmp协议
用户态协议栈设计实现udp,arp与icmp协议
68 1