一、SNMP:简单网络管理协议
基于TCP/IP的网络管理包括两部分:网络管理站(manager)和被管理的网络单元(被管设备)。这些被管设备的共同点就是都运行TCP/IP协议。管理进程和代理进程之间的通信有两种方式,一种是管理进程向代理进程发出请求,询问参数值,另一种方式是代理进程主动向管理进程报告某些重要的事件。
基于TCP/IP的网络管理包含3个组成部分:
(1) 一个管理信息库(MIB)。管理信息库包含所有代理进程的所有可被查询和修改的参数。
(2) 关于MIB的公用结构和表示符号,叫做管理信息结构SMI。例如:SMI定义计数器是一个非负整数,它的计数范围是0-4294967295,当达到最大值后,又从0开始。
(3) 管理进程和代理进程之间的通信协议,叫做简单网络管理协议SNMP。SNMP包括数据交换的格式等,主要采用UDP协议。
1、协议:SNMP定义了5种报文:
(1) get-request操作:从代理进程处提取一个或多个参数值。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)(2) get-next-request操作:从代理进程处提取一个或多个参数的下一个参数值。
(3) set-request操作:设置代理进程的一个或多个参数值。
(4) get-response操作:由代理进程发出的一个或多个参数值。它是3种的响应操作。
(5) trap操作:代理进程主动发出的报文,通知管理进程由事情发生。
前面3个操作是由管理进程向代理进程发出的,后两个是代理进程发给管理进程的。
说明:◆前4种操作是简单的请求-应答方式,由于采用UDP协议,因此一定要有超时和重传机制。
◆ 管理进程采用UDP的161端口,代理进程使用UDP的162端口,因此一个系统可以同时为管理进程和代理进程。
◆ 下面是UDP数据报5种操作的SNMP报文:
IP首部UDP首部版本0共同体PDU类型(0-3)请求标识差错状态(0-5)差错索引名称值名称值...
PDU类型4企业代理地址Trap类型(0-6)特定代码时间戳名称值...
(1) SNMP报文的长度取决域变量的类型和值。
(2) 版本字段为0,表示为SNMP V1。
(3) PDU为协议数据单元,即分组。
PDU类型名称0Get-request1Get-next-request2Get-response3Set-request4Trap
(4) 共同体为一个字符串,这是管理进程和代理进程之间的口令,是明文格式,默认为public。
(5) 对于get、get-next和set操作,请求标识由管理进程设置,然后由代理进程在get-response中返回。这个字段的作用是使客户进程(目前是管理进程)能够将服务器进程(即代理进程)发出的响应和客户进程发出的查询进行匹配。这个字段允许管理进程对一个或多个代理进程发出多个请求,并且从返回的应答中分类。
(6) 差错状态字段是一个整数,由代理进程设置,指明有错误发生。
差错状态名称描述0NoError没有错误1TooBig代理进程无法把响应放在一个SNMP消息中发送2NoSuchName操作一个不存在的变量3BadValueSet操作的值或语法有错误4ReadOnly管理进程试图改变一个只读变量5genErr其他错误
(7) 在get、get-next和set的请求数据报中,包含变量名称和变量值的表,对于get和get-next操作,变量值部分被忽略。
2、 管理信息结构SMI
(1) INTEGER:有些整形变量没有范围限制,有些整形变量定义为特殊的数值。
(2) OCTER STRING:0或多个8位字节,每个字节值在0-255之间。
(3) DisplayString:0或多个8位字节,每个字节必须是ASCII码,所有该类型的变量不能超过255个字符。
(4) OBJECT IDENTIFIER:
(5) NULL:相关变量还没有值。
(6) IPAddress:4字节的OCTER STRING,以网络序表示的IP地址,每个字节代表IP地址的一个字段。
(7) PhyAddress:OCTER STRING类型,代表物理地址。
(8) Counter:非负整数,范围为0-4294976295,达到最大后从0开始。
(9) Gauge:非负整数,范围为0-4294976295,或增或减,达到最大值后锁定,直到复位。
(10) TimeTicks:时间计数器,以0.01秒递增,但是不同的变量可以有不同的递增幅度,所以定义该类变量时必须指定递增幅度。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)(11) SEQUENCE:类似于结构,包括0个或多个元素。
(12) SEQUENCE OF:向量,其所有元素具有相同的类型。
3、 对象标识符
对象标识是一种数据类型,它指明一种授权命名的对象。对象标识是一个整数序列,以点分隔。这些整数构成一个树型结构,类似于DNS和文件系统。对象标识从顶部开始,顶部没有标识,以root表示。所有的MIB变量都从1.3.6.1.2.1这个标识开始。树上的每个节点还有文字名,例如1.3.6.1.2.1就和iso.org.dod.internet.memt.mib对应。
4、 管理信息库MIB
管理信息库就是所有代理进程包含的,并且能够被管理进程进行查询和设置的信息的集合。UDP组中包含几个变量和一个表格。变量为:udpInDatagram(1)、udpNoPorts(2)、udpInErrors(3)、udpOutDatagram(4),表格为udpTable(5)。
名称数据类型R/W描述udpInDatagramCounterRUDP数据报输入数udpNoPortsCounterR没有发送到有效端口的UDP数据报个数udpInErrorsCounterR接收到的有错误的UDP数据报个数udpOutDatagramCounterRUDP数据报输出数
在udpTable中有2个变量:
UDP监听表,索引=udpLocalAddress.udpLocalPort名称数据类型R/W描述udpLocalAddressIpAddressR监听进程的本地IP地址,0.0.0.0代表接收任何接口的数据报udpLocalPort[0..65535]R监听进程的本地端口号
5、 实例标识
对MIB变量进行操作,必须对MIB的每个变量进行标识。只有叶子节点是可操作的SNMP没法处理表格的一整行或一整列。
(1) 简单变量:
对于简单变量的处理是通过在其对象标识后面添加".0"处理。例如对象标识是 1.3.6.1.2.1.7.1,则实例标识是1.3.6.1.2.1.7.1.0。
(2) 表格
每个MIB中的索引都包含一个以上的索引。对于UDP监听表来说,MIB定义了包含两个变量的联合索引。假定UDP监听表中有3行具体成员:
0.0.0.0 67
0.0.0.0 161
0.0.0.0 520
这表明系统将从端口67、161和520接收来自任何接口的UDP数据报。这三行数据处理后为:
行对象标识简称值11.3.6.1.2.1.7.5.1.1.0.0.0.0.67
1.3.6.1.2.1.7.5.1.2.0.0.0.0.67UdpLocalAddress.0.0.0.0.67
UdpLocalPort.0.0.0.670.0.0.0
6721.3.6.1.2.1.7.5.1.1.0.0.0.0. 161
1.3.6.1.2.1.7.5.1.2.0.0.0.0. 161UdpLocalAddress.0.0.0.0. 161
UdpLocalPort.0.0.0. 1610.0.0.0
16131.3.6.1.2.1.7.5.1.1.0.0.0.0. 520
1.3.6.1.2.1.7.5.1.2.0.0.0.0. 520UdpLocalAddress.0.0.0.0. 520
UdpLocalPort.0.0.0. 5200.0.0.0
520
(3) 字典式排序
MIB中按照对象标识进行排序有一个隐含规则,MIB表格是根据其对象标识按照字典的顺序进行排序的。上面表格排序后如下所示:
行对象标识简称值11.3.6.1.2.1.7.5.1.1.0.0.0.0.67
1.3.6.1.2.1.7.5.1.1.0.0.0.0.161
1.3.6.1.2.1.7.5.1.1.0.0.0.0.520UdpLocalAddress.0.0.0.0.67
UdpLocalAddress.0.0.0.0.161
UdpLocalAddress.0.0.0.0.5200.0.0.0
0.0.0.0
0.0.0.021.3.6.1.2.1.7.5.1.2.0.0.0.0. 67
1.3.6.1.2.1.7.5.1.2.0.0.0.0. 161
1.3.6.1.2.1.7.5.1.2.0.0.0.0. 520UdpLocalPort.0.0.0. 67
UdpLocalPort.0.0.0. 161
UdpLocalPort.0.0.0. 52067
161
520
在表格中,一个给定变量的所有实例都在下个变量的所有实例之前显示。这意味表格的操作顺序是先行后列的。
表格中对行的排序和表格中索引的值有关。
6、 管理信息库MIB(2)
(1) system组:
system组包含7个变量,没有表格,分别是:sysDescr、sysObjectID、sysUpTime、sysContact、sysName、sysLocation、sysServices。
(2) interface组
interface组只定义了一个简单变量,是系统的接口数量。该组还有一个表格变量,有22列。
(3) at 组
at组是地址转换组,在该组中仅有一个由3列组成的表格变量。
(4) ip组
ip组定义了很多简单变量和3个表格变量(地址表、路由表、地址转换表)。
(5) icmp组
icmp组包含4个普通计数器变量(ICMP报文的输出和输入数量以及ICMP差错报文的输入和输出数量)和22个其他ICMP报文数量的计数器,11个输出计数器,11个输入计数器。
(6) tcp组
tcp组包含14个简单变量,主要为TCP状态。还包含1个表格变量,即TCP连接表。
7、 Trap:
一共有6中trap PDU的格式,第7中类型是供应商自己定义的特殊类型。
二、Telnet:远程登陆
Telnet是标准的提供远程登陆功能的应用。它能够运行在不同的操作系统的主机之间。Telnet通过客户进程和服务器进程之间的选项协商机制,从而确定通信双方可以提供的功能特性。
(1) Telnet客户进程同时和终端客户及TCP/IP协议模块进行交互。通常我们所键入的任何信息的传输是通过TCP连接,连接的任何返回信息都输出到终端上。
(2) Telnet服务器进程经常要和"伪终端设备"打交道。
(3) 仅仅使用了一条TCP连接。
1、 协议介绍:
一种通用字符终端叫网络虚拟终端NVT,连接的客户机和服务器,都必须把他们的物理终端和NVT进行相互转换。不管客户进程终端是什么类型,操作系统必须把它转换NVT格式,同时,不管服务器进程的终端是什么类型,操作系统必须能够将NVT格式转换为终端所能够接收的格式。
(1) NVT ASCII:
NVT ASCII代表7位的ASCII字符集,网间协议族都使用NVT ASCII ,每个7位的字符都以8位格式发送,最高位为0。行结束符以两个字符CR(回车)和紧接着的LF(换行)这样的序列表示以rn表示。单独的一个CR表示为r 。
(2)Telnet命令:
命令以字节0xff开头,后面的一个字节是命令字节。如果要发送数据255,就必须连续发送两个255(设置选项才可以发送)。
名称代码(10进制)描述EOF236文件结束符SUSP237挂起当前进程ABORT238异常终止进程EOR239记录结束符SE240子选项结束NOP241无操作DM242数据标志BRK243中断IP244中断进程AO245异常终止输出AYT246对方是否还在运行EC247转义字符EL248删除行GA249继续进行SB250子选项开始WILL251选项协商WONT252选项协商DO253选项协商DONT254选项协商IAC255数据字节255