安全网管技术 张焕杰 中国科学技术大学网络信息中心 james@ustc.edu.cn http://202.38.64.40/~james/nms Tel: 3601897(O)
第3章 网络管理系统及SNMP协议(2) 本章主要内容 网络管理概述 TCP/IP网络管理体系结构 SNMP网络管理协议 计算机网络安全基础 2018年11月20日 第3章 网络管理系统及SNMP协议(2) 本章主要内容 网络管理概述 TCP/IP网络管理体系结构 SNMP网络管理协议 管理信息库(MIB) 计算机网络安全基础
网络管理概述 SNMP已经成为网络管理事实上的工业标准 网络管理系统的功能特点 网络拓扑结构管理 智能监控 灵活性 多厂商集成 存取控制 用户友好 编程接口 报告生成
网络管理的意义 网络管理系统能给网络管理员提供良好的信息来源,减少网络故障,缩短网络失效时间,最大程度发挥网络的作用。
网络管理功能模型 网络管理的五大功能: 故障管理 计费管理 配置管理 性能管理 安全管理 实际一个网络管理系统仅仅实现部分功能
信息模型 实现被管虚拟资源、软件及物理设备的逻辑表示。 多采用面向对象的方法定义网络管理信息。 SNMP中,网络管理信息是面向属性的,更注重简单性和可扩展性。采用ISO的抽象语法表示语言(ASN.1)表示。
组织模型 包括管理者、代理者的概念,管理实体间的通信方法。
网络管理系统 管理者 管理信息库 代理 管理信息库 代理 管理信息库 代理 被管设备 典型网络管理体系结构组织模型
SNMP支持的操作 SNMP定义了5种PDU GetRequest-PDU(NMS发送) GetNextRequest-PDU (NMS发送) GetResponse-PDU(被管代理发送) SetRequest-PDU (NMS发送) Trap-PDU(被管代理发送)
对象语法 定义对象的结构 ASN.1定义了四种基本对象语法类型: INTEGER 整数(ASN.1不限制,但是MIB定义为0-4G) OCTET STRING 字符串 OBJECT IDENTIFIER 对象标示符 NULL
对象语法(2) 支持应用语法类型(Application-wide syntax type)定义 IPADDRESS 长度为4的OCTET STRING COUNTER 计数器,非负INTEGER GAUGE 累加器,非负INTEGER TIMETICKS 厘秒计时器,非负INTEGER
对象语法(3) 构造语法类型 SEQUENCE (序列) SEQUENCE OF (同类序列) SEQUENCE { <type1>, <type2>, … <typeN>} <type?>为4种基本类型 类似于高级语言中的结构 SEQUENCE OF (同类序列) SEQUENCE OF <entry> 类似于高级语言中的数组
atTable OBJECT-TYPE SYNTAX SEQUENCE OF AtEntry ACCESS not-accessible ::= { at 1 } atEntry OBJECT-TYPE SYNTAX AtEntry INDEX { atIfIndex, atNetAddress } ::= { atTable 1 } AtEntry ::= SEQUENCE { atIfIndex INTEGER, atPhysAddress PhysAddress, atNetAddress NetworkAddress }
atIfIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-write ::= { atEntry 1 } atPhysAddress OBJECT-TYPE SYNTAX PhysAddress ::= { atEntry 2 } atNetAddress OBJECT-TYPE SYNTAX NetworkAddress ::= { atEntry 3 }
表格访问 atIfIndex atNetAddress PhysAddress 14 202.38.96.129 00 0B 5F E7 8B 80 202.38.96.132 00 80 3E 85 13 F0 202.38.96.133 00 80 3E 9B 7C F0
表格访问的例子 At.attable Interfaces.iftable ip.ipAddrTable ip.ipRouteTable
SNMP MIB对象实例标识 对象实例标识符是对象所属对象类的对象标识符加上实例标识符构成。 如SysDescr对象标识符为1.3.6.1.2.1.1.1,设备的系统描述只有一个,实例标识符为0,因此设备的系统描述对象实例标识符为1.3.6.1.2.1.1.1.0
基本编码规则(BER) Basic Encoding Rules 传送过程中的内容表示方法 ITU-T X.690
基本编码规则 每个BER编码有3个字段:Tag,Length,Value 每个字段8bit对齐,自我定界 Length定义数值的长度(按照8bit位组计) Value定义实际的数值 每个字段8bit对齐,自我定界
基本编码规则 基本类型和结构型 基本型 结构型 T L V T L T L V T L V
基本编码规则: Tag 类型 Tag SEQUENCE 0x30 IPADDR 0x40 INT 0x02 COUNTER 0x41 OCTSTR 0x04 GAUGE 0x42 NULL 0x05 TIMETICKS 0x43 OBUID 0x06
基本编码规则: Length 短格式 长度为(0-127) 长格式 长度>128 不确定格式 用开始符和结束符表示
短格式 占用一个8bit 最高bit为0 表示长度0-127 长度(7bit)
长格式 占用若干个8bit 第一个8bit组的最高bit为1 第一个8bit组的后7bit为长度K 紧接的K个8bit组表示长度 如201被编码成 10000001 11001001 1 K(7bit) K个8元组表示的长度
不确定格式 用开始和结束符来表明 TLV 序列的开始和结束 开始符为 10000000 结束符为 00000000
整数的表示 找出整数的非零bit的字节 变长的,跟整数的大小有关 如131,只要表示为00000001 00000011(128+3),前面的0可以忽略
对象标示符的表示 前面2个数字 后面的数字 a.b.*.* 第一个字节为a*40+b 如1.3 表示为1*40+3=43 = 0x2b 如果<=127,直接表示 1.3.6.1 表示为 0x2b 0x06 0x01
对象标示符>127的表示 扩展表示 每个字节中使用其中的7个比特 最高bit为1表示是扩展表示 最高bit为0表示是扩展表示结束 如 909904 110111 1000100 1010000 10110111 11000100 01010000
对象标示符的表示 10.909904.3 01010. 0110111 1000100 1010000. 011 00001010 10110111 11000100 01010000 00000011
SNMP消息 版本 (0) Commnu string PDU类型 请求ID号 错误状态 错误索引 名称 值 OBID Agent Address Generic Trap type Specific trap code TimeStamp 名称 值
SNMP消息 SEQUENCE { PDU类型 version INTERGER (0); community OCTET STRING; data ANY ; --PDU 数据 } PDU类型 GetRequest A0 GetNextRequest A1 GetResponse A2 SetRequest A3 Trap A4
SNMP消息 Get 1.3.6.1.2.1.1.1.0 sys.sysDescr.0 发送如下字节到udp 161端口 30 26 02 01 00 04 06 70 75 62 6C 69 63 A0 19 02 01 9D 02 01 00 02 01 00 30 0E 30 0C 06 08 2B 06 01 02 01 01 01 00 05 00
含义 30 26 02 01 00 sequence len (38字节) integer len vers(1) 30 26 02 01 00 sequence len (38字节) integer len vers(1) 04 06 70 75 62 6C 69 63 string len p u b l i c A0 19 GetRequest len(25bytes)
含义 02 01 00 02 01 00 integer len status integer len error-index 02 01 00 02 01 00 integer len status integer len error-index 30 0E 30 0C sequence len(14bytes) sequence len(12bytes)
含义 06 08 objectid len(8bytes) 2B 06 01 02 01 01 01 00 05 00 06 08 objectid len(8bytes) 2B 06 01 02 01 01 01 00 05 00 1.3.6 .1 .2 .1 .1 .1 .0 NULL 0
MIB对象 SystemGroup SysDescr:系统描述 SysObject ID: 标识一个设备 SysUptime:系统已经运行的时间 SysContact:管理者联系人 SysName: SysLocation:物理安装地点 SysServices:说明设备服务的ISO层次 00000110表示设备服务在第2和3层
MIB对象 InterfaceGroup ifDescr:接口描述 ifType:接口类型 ifMTU: ifSpee:接口速率 单位bps ifPhysAddress:接口物理地址 ifAdminStatus:接口管理状态 1up, 2down, 3test ifOperStatus:接口实际状态 1up, 2down, 3test ifLastChange:接口进入运行状态时的sysuptime
MIB对象 InterfaceGroup ifInOctes:接收字节数 ifInUcastPkts:接收单播数据包数 ifInNUcastPkts:接收非单播数据包数 ifInDiscards:接收时丢弃的数据包数 ifInErrors:接收时错误的数据包数 ifInUnknownProtos:接收的未知协议数据包数
MIB对象 Total Input Packts = ifInUcastPkts + ifInNNucastPkts Percent Input Errors= ifInErrors/TotalInputPackts Percent Input Discards= ifInDiscards/TotalInputPackts
MIB对象 IP Group ipForwarding:设备是否转发数据包1是, 2否 ipInreceives:接收的IP包数量 ipInHdrErrors:接收头出错的包数量 ipInAddrErrors:接收地址出错的包数量 ipForwDatagrams:转发的IP包数量 ipInUnknownProtos:未知协议 ipInDiscards:丢弃的包数量 Percent IP Input Errors=(Disards+HdrErrors+AddrErros)/Inreceives
MIB对象 ipInDelivers:交给设备高层处理的包数量 ipOutRequests:设备高层发出的包数量 ipOutNoRoutes:无法找到路由丢弃的包 ipAddressTable设备接口IP地址表 ipRoutingTable路由表
MIB对象 ICMP组 icmpInMsgs/icmpOutMsgs icmpInErros/icmpOutErrors SNMP组
总结 网络管理系统 网络管理概述 TCP/IP网络管理体系结构 SNMP网络管理协议 管理信息库(MIB)
实验 Linux下的ucd-snmp 202.38.96.184 public http://net-snmp.sourceforge.net/ 202.38.96.184 public