简单网络管理协议
(Simple Network Management Protocol)
•除了提供网络层服务的协议和使用那些服务的应用程序,因特网还需要运行一些让管理员进行设备管理、调试问题、控制路由、监测机器状态的软件。这种行为称为网络管理。
•
•随着网络技术的飞速发展,网络数量、网络设备越来越多,而且许多设备来自各个不同的厂家,如何管理这些设备就变得更加重要了。
•从设备来看,基于TCP/IP得网络管理包含两个部分:网络管理站和被管理的网络单元(也叫被管设备)。(见下下页示例图)
–网络管理站是运行管理进程的主机。一般都是带有彩色监视器的工作站,可以显示所有被管设备的状态(例如连线是否掉落、各连线上的流量状况)。
–被管设备主要包括种类繁多的被管主机和被管路由器,但都应该是运行TCP/IP协议的。在被管设备中需要运行与管理相关的软件,叫做代理程序(Agent)或代理进程。
–管理站作为客户,运行客户端的软件;而各个被管设备运行的代理程序为服务器端程序
•为进行管理,管理进程(客户端)需要和代理程序(服务器端)进行通信,这种通信可以有两种方式:
–管理进程向代理进程发出请求,询问一个具体的参数(如询问网络单元中不可达的端口数目)或者要求代理进程改变某些参数值(如把 IP 数据包的生存期改为 64 TTL)
–代理进程主动向管理进程报告有某些重要的事件发生(如某个连接口故障)
•单个被管设备可能接收多个管理站的管理。管理软件使用授权机制来确保只有获得授权的管理员才能管理相应的设备。同时也支持多等级授权。例如:允许多个管理员从某个路由器获得信息,但是只允许其中一部分的管理员能修改和控制路由。
•最初,许多网络都在链路层协议中包含管理协议,这样,即使高层协议失效,也可以在底层进行控制。
•
•但是,对于广域网,基于TCP/IP的因特网不可能只用单一的链路层协议,而是通常是由多种物理网络由IP路由连接而成。因此,因特网管理和单一网络管理是不同的。这种不同表现在:
–单一网络的管理工作站不能控制异质路由设备
–受控实体不使用相同的链路层协议
–管理工作站控制的机器可能在因特网中的任意一个节点,管理工作站有可能需要控制和它不在同一物理网络中的设备,因此除非使用端到端的高层连接,管理工作站不能与受控设备进行通信。
•因此因特网管理协议工作在应用层,使用运输层协议进行通信。
•管理协议工作在运输层之上有如下的好处:
–协议可以设计成与硬件无关,因而相同的协议可以用于所有被管设备
–从管理员的角度来看,单一的管理协议集意味着所有的路由将响应相同的命令集,通过使用TCP/IP通信,管理员可以控制整个IP网络,而无需直接接触具体的每个物理网络或路由器类型。
•
•当然,工作在应用层也提出了更多的要求:
–就需要下层协议都是在正常工作的,否则无法进行网管所需要的高层通信
–需要操作系统也是正常工作的,操作系统不正常,就不可能达到应用层
•
•基于TCP/IP的网络管理协议分为两个部分:
–其一是管理中所需要的数据及其格式,分别为:
•管理信息库(Management Information Base)
•管理信息结构(Structure of Management Information)
–其二是规定运行在管理站上的客户软件如何与管理代理进行通信,这部分定义了客户与服务器端交换信息的格式和意义。即简单网络管理协议。
•
•下面分别介绍
>
•简单网络管理协议(Simple Network Management Protocol)
•
•SNMP 规定管理进程如何与管理代理进行通信,定义了客户与服务器端交换信息的格式和意义。此外,提供管理授权机制。
•
•早期的管理方式是提供一些管理命令,如重启系统用reboot、删除或增加路由用 delete 或 add 等等。但是这种方式的一个重要缺陷是对于每种数据项的每种操作都必须定义一个单独的命令,这样,当出现一种新的数据项时,需要增加相应的协议。
•
•SNMP采取另一种方式,
•SNMP 规定了两类从管理进程到代理的基本命令:
–从一个数据项取数据,这包括两个命令:
•get-request:从代理进程处提取一个或多个数据项
•get-next-request:从代理进程处提取一个或多个数据项的下一个数据项(关于“下一个”于数据格式有关,在后面讲。)
–把值存储到一个数据项中。
•set-request:设置代理进程的一个或多个数据项
•而其他的命令都是通过这两类命令来实现。
•
•从代理进程到管理进程规定了两个操作:
–get-response:这个操作是代理进程作为对上述三个管理进程操作的响应。
–trap:代理进程主动发出的报文,通知管理进程有某些事件发生。
•
•前四种操作是简单的请求--应答方式,而 SNMP 传输通常使用UDP ,因而需要使用超时重传机制。
•
•SNMP 报文格式:
SNMP报文使用ASN.1编码,其各字段长度取决于其取值,因此整个长度(除了IP、UDP首部长度确定)不是固定的。
•Abstract Syntax Notation 1 是一种形式语言,有两种表示方式:
–供人阅读使用的
–压缩编码表示,用于通信协议
•特点:
–无歧义
–标准化
–互操作
•版本字段的值为SNMP版本号减 1
•共同体字段是管理进程与代理进程之间的明文格式的口令,默认值为 public
PDU类型字段
0-3时的报文格式如上述表格
而为4时有所不同
•请求标识由管理进程在命令中设置,由代理进程在响应中返回。该字段用于使客户进程能够将服务器进程发出的响应和客户进程先前发出的查询进行匹配。
•差错状态字段由代理进程标注,指明有差错发生,差错发生在哪个参数。
•差错索引字段是一个整数偏移量,指明当有差错发生时,差错发生在哪个参数。它是由代理进程标注的,且只在差错状态为2、3、4时才进行标注。
•名称和值字段是要请求的数据名称或要设置的变量名称以及其值。
•信息管理库(Management Information Base)(MIB-II RFC 1213 1991)
•本标准指定主机和路由器等被管设备需要保存的数据项,以及可以对这些数据项进行的操作。例如:MIB 规定 IP 软件必须保存到达每个网络接口的8位组的数目,并规定网络管理软件只能读这项数据。
•MIB把管理信息划分为八组,每组都有若干种数据项:
•管理信息结构(Structure of Management Information)(RFC 1155)
•对MIB中允许的变量类型进行约束,定义MIB 中各种数据项的数据结构和表示符号,并指定命名变量的规则。SMI规定所有的MIB变量也必须使用ASN.1。
•SNMP中使用的数据类型如下:
–INTEGER、OCTER STRING、……、SEQUENDE OF等共12种。
•
•MIB变量的命名采用对象标识符(Object Identifier),所用对象标识符组成一个名称空间,由OSI 与 ITU 共同管理对象标识符命名体系利用对象标识符命名体系可以为任意对象命名(如每个国际协议标准都有一个名称)
•每个命名都是全球唯一的绝对名称
•名称空间为一个层次结构(类似DNS)(如下页图)
•说明:
•层次结构中每个节点的对象标识符是由从根节点到其上的数字序列组成,如 mib 的对象标识符为 1.3.6.1.2.1,为方便阅读也可以用相应的字符序列 iso.org.dod.internet.mgmt.mib
•可以看到在MIB中说明的八个组实际上是对象标识符空间中mib节点的8个子节点。这8个节点进一步可以往下分,即为各个组的变量。例如 ipInReceives 是 ip 下的第三个节点,则其对象标识符为:1.3.6.1.2.1.4.3 ,相应字符序列为:iso.org.dod.internet.mgmt.mib.ip.ipInReceives
•末尾为0表明是一个变量的实例:如1.3.6.1.2.1.4.3 .0,标识一个1.3.6.1.2.1.4.3 (ipInReceives的)变量的实例。
•
•以上介绍的是SNMPv1,1993年,发表SNMPv2(RFC 1441),版本二的改进:
•
–为从代理进程读取大块数据而定义了一个新的分组
–为使在管理进程之间通信而增加了另一个分组
–定义了两个新的 MIB ,用于管理进程之间的数据
–提高了安全性, 可以对报文进行加密和鉴别
•小结
•SNMP是一种简单的管理进程和代理进程之间的请求应答协议。
•MIB中定义了所有代理进程所包含的、能够被管理进程查询和设置的变量。
•所有这些变量都以对象标识符进行标识,这些对象标识符构成了一个层次命名结构。
上海艾磊科技有限公司专门为企业提供IT咨询,IT外包,系统集成,以及各类IT增值服务。其中增值服务包括OFFICE 365云服务,鼎捷企业ERP管理软件,云备份,企业邮箱,无线覆盖,上网行为管理,VPN架设,网络安全服务,INTERNET接入,设备租赁, IP电话服务。