snmp 简单网络管理协议
DESCRIPTION
SNMP 简单网络管理协议. 本节内容提要. SNMP 的发展史 SNMP 的基础概念 互动演示和练习. SNMP 的 发 展 史. 20 世纪 70 年代, ICMP 大行其道. 1979 年, ISO 开始了网络管理标准化工作, 诞生了 OSI 网管标准 CMIS & CMIP. 1987 年 11 月发布了简单网关监视协议( SGMP ), 用以提供一种直接监控网关的方法, 成为提供专用网络管理工具的起点. SNMP 的 发 展 史. 接上页. - PowerPoint PPT PresentationTRANSCRIPT
东 方 通 信 股 份 有 限 公 司
SNMP SNMP 简单网络管理协议简单网络管理协议
东 方 通 信 股 份 有 限 公 司
东 方 通 信 股 份 有 限 公 司
本节内容提要
SNMP 的发展史
SNMP 的基础概念
互动演示和练习
东 方 通 信 股 份 有 限 公 司
SNMP 的 发 展 史
20 世纪 70 年代, ICMP 大行其道
1979 年, ISO 开始了网络管理标准化工作,诞生了 OSI 网管标准 CMIS & CMIP
1987 年 11 月发布了简单网关监视协议( SGMP ),用以提供一种直接监控网关的方法,
成为提供专用网络管理工具的起点
东 方 通 信 股 份 有 限 公 司
SNMP 的 发 展 史
IETF 为应对 Internet 的几何增长,将 CMIP 修改后取名为 CMOT然而, CMOT 却迟迟未出台 ……
接上页
1988 年, IAB 决定将在已有 SGMP 的基础上,开发 SNMP作为临时的解决方案,而把 CMOT 作为远期解决方案的策略
1990 年 5 月, IETF 发布了现在被称为 SNMPv1 的系列协议(完全标准)
东 方 通 信 股 份 有 限 公 司
SNMP 的 发 展 史
为了强化这一策略, IAB 要求 SNMP 和 CMOT 使用相同的被管对象数据库,但人们很快发现要这两个协议在对象级兼容是不现
实的,因此 IAB 最终放松了公共 SMI/MIB 的条件, SNMP 摆脱了过渡者的角色及与 CMOT 相兼容的束缚并取得了迅速的发展
接上页
1991 年 11 月发布的远程网络监视协议( RMON )为网络管理者提供了监控整个子网而不仅是单独设备的能力
东 方 通 信 股 份 有 限 公 司
SNMP 的 发 展 史
1992 年 7 月,四名 SNMP 的关键人物提出了称为 SNMPsec 的安全 SNMP 版本,与 SNMPv1 不兼容,并最终成为 SNMPv2 的基础
接上页
1993 年, IETF 发布了 SNMPv2 系列(建议标准)
1996 年 IETF 发布了一组新的 RFC,在这组新的文档中,取消了SNMPv2 的安全特性,消息格式也重新采用 SNMPv1 的基于
“ 共同体( community )” 概念的格式(草案标准)
东 方 通 信 股 份 有 限 公 司
SNMP 的 发 展 史
1999 年 4 月 IETF SNMPv3 工作组提出了RFC2571 ~ RFC2576,形成了 SNMPv3 的建议
接上页
东 方 通 信 股 份 有 限 公 司
Simple-Based Management
SNMPv3SNMPv2*
SNMPv2c
Common
SNMPv2uSNMPv2
SNMPv1Party-based
SNMPv2
管理信息的定义 ( MIB 文档 )
RFC1155Format
RFC1212/1215Format
RFC1442-4Format
RFC1902-4Format
RFC2578-80Format
SNMP 协议版本概览图
东 方 通 信 股 份 有 限 公 司
基于 SNMP 的管理框架
以 SNMP 协议为基础的一个完整的基础框架。
1 、一种数据定义语言 The Internet-standard Structure of Management Information ( SMI )
2 、管理信息的定义 [Internet-standard] Management Information Base (MIB )
3 、协议定义 Simple Network Management Protocol
东 方 通 信 股 份 有 限 公 司
革新中的 SNMP
基于 SNMP 的 Management Framework 一直在历经技术革新,许多有价值的革新已被标准化、并得以实施和部署。
IETF 目前在从事的一些 SNMP 相关的工作内容: 基于 SNMP 的配置管理( Policy MIB 模块) EOS 工作组 ( Evolution of SNMP ) SMIng 工作组( Structure of Management Information ) 分布式管理工作组( DISMAN ) MIB 定义
东 方 通 信 股 份 有 限 公 司
SMI 的革新
第一代 ( 1988-1991 ) : RFC 1155 第二代 ( 1991-1993 ) : RFC 1212 和 1215 第三代 ( 1993 ~至今) : SMIv2 RFCs 2578-2580 第四代 : SMIng: 正在进行时……
东 方 通 信 股 份 有 限 公 司
MIB 的革新
从 1988 年首次定义至今,一直在经历改版
1988 年, MIB-I 诞生:所有管理系统的基础 90 年代早期, MIB-2 的出现: MIB-I 的超集 91 年 3 月, MIB-2 进入完全标准状态, MIB-I 成为历史 随着 Internet-Standard Management Framework 上应用的扩展, MIB 的范围也在拓展(传统网管、系统管理、应用管理、服务管理、遗留设备的管理)
东 方 通 信 股 份 有 限 公 司
MIB 文档 – 网络管理
ADSL RFC 2662
ATM Multiple
AppleTalk RFC 1742BGPv4 RFC 1657Bridge RFC 1493Character Stream RFC 1658CLNS RFC 1238DECnet Phase IV RFC 1559DOCSIS Cable Modem Multiple
东 方 通 信 股 份 有 限 公 司
MIB 文档 – 网络管理(续)
DS0, DS1/E1, DS3/E3 Interfaces Multiple
Entity RFC 2737
FDDI Multiple
Frame Relay Multiple
IEEE 802.3 Multiple
IEEE 802.5 Multiple
IEEE 802.12 Multiple
Integrated Services Multiple
ISDN Multiple
东 方 通 信 股 份 有 限 公 司
MIB 文档 – 网络管理(续)
MIB-2 RFC 1213Modem RFC 1696PPP MultipleRMON MultipleRouting MultipleRS-232-Like RFC 1659SNA technology MultipleSonet/SDH RFC 1595X.25 technology Multiple
东 方 通 信 股 份 有 限 公 司
MIB 文档 – 服务管理
Frame Relay Service RFC 1604
Meter RFC 2720
SMDS SIP RFC 1694
东 方 通 信 股 份 有 限 公 司
MIB 文档 – 系统和应用管理
Application RFC 2564Diffie-Helman USM Key Management RFC 2786DISMAN Scheduling RFC 2591DISMAN Scripting RFC 2592Domain Name System MultipleHost Resources RFC 2790Identification RFC 1414Mail Monitoring RFC 2249Network Services Monitoring RFC 2788
东 方 通 信 股 份 有 限 公 司
MIB 文档 – 系统和应用管理(续)
Parallel Printer RFC 1660
Printer RFC
1759
Radius Multiple
Relational Database Server RFC
1697
System Application RFC
2287
TN3270 Multiple
UPS RFC 1628
WWW Server RFC 2594
X.500 Directory Services Monitoring RFC
2605
东 方 通 信 股 份 有 限 公 司
SNMP 协议的革新
协议定义
独立于 MIB SNMP 协议
协议操作 传输映射 安全和管理
在 RFC 1157 中得以首次定义( SNMPv1 ) 在 SNMPv2 时开始出现许多分离的文档 在 SNMPv3 中实现了安全和管理
东 方 通 信 股 份 有 限 公 司
SNMP 协议的革新
东 方 通 信 股 份 有 限 公 司
本节内容提要
SNMP 的发展史
SNMP 的基础概念
互动演示和练习
东 方 通 信 股 份 有 限 公 司
SNMPv1
SNMP 的基本概念
东 方 通 信 股 份 有 限 公 司
SNMPv1 架构模型
Network Elements
MANAGER
UDP
IP
LINK
AGENT
UDP
IP
LINK
SNMP 消息 MIB
Any 161
162 Any
东 方 通 信 股 份 有 限 公 司
Manager Agent 网络管理协议 管理信息库 MIB
SNMP 涉及的四个概念
东 方 通 信 股 份 有 限 公 司
管理站( Manager ) 网络管理应用软件 提供一个网管人员监视和控制网络的接口
Agent 网元设备中应该装备代理软件,以便接受管理站的管理 响应来自于 Manager 的“获取信息”的请求 响应来自于 Manager 的“执行动作”的请求 可以主动提交重要信息给 Manager
SNMP 涉及的四个概念
东 方 通 信 股 份 有 限 公 司
网络管理协议 Manager 与 Agents 之间的通信协议 提供了一种用以在 Manager 和 Agents 之间交换信息的标准方式
管理信息库 MIB Managed Objects 的一个结构化的集合,层次型组织 Managed Objects 就是需要管理的资源,本质上,每个 MO 就是一个数据变量 所谓 Monitor ,就是读取 MIB 中 MO 的值 所谓 Control ,就是修改 MIB 中 MO 的值
SNMP 涉及的四个概念
东 方 通 信 股 份 有 限 公 司
一种特定的对象类型具有唯一的全局 ID
一个 OID 由一串整数组成,它指明了该对象在全局对象 ID 树中所处的位置
root
ccitt iso joint-iso-ccitt
directory
0 1 2
std regauthority
memberbody
org0
1 2 3
dod
internet
6
1
12 3 4
mgmt experimental private
MIB II
system1
interface2
at3
IP4
ICMP5
TCP6
UDP7
EGP8
Trans.10
SNMP11
1 1enterprises
1.3.6.1.2.1.2 1.3.6.1.4.1
1.3.6.1.2.1
MIB II
interface
enterprises
Object Identifier ( OID)
东 方 通 信 股 份 有 限 公 司
如果企业需要在全局 MIB 树中注册他们的私有 MIB
扩 展部分,就需要联系 Internet Assigned Numbers Au
thority ( IANA )
欲知当前已经分配的企业子树,请访问
ftp://ftp.isi.edu/in-notes/iana/assignments/enterprise-num
bers
私有 MIB 的注册
东 方 通 信 股 份 有 限 公 司
Community Managers 和 Agents 之间的关系
Community Name 用于验证 SNMP 消息
SNMP “密码”
缺省的只读 community name 是 public
认证失败 代理将向 Manager 发送 “认证失败 Trap”
SNMPv1 认证
东 方 通 信 股 份 有 限 公 司
PDUs 概览
getNext
response
MIB
manager agent
set
response
MIB
manager agent
get
response
MIB
manager agent
trap
manager agent
东 方 通 信 股 份 有 限 公 司
消息和 PDUs 的结构
NAME 1 VALUE 1 NAME 2 VALUE 2 ••• ••• NAME n VALUE n
PDU TYPE* ERROR
VARIABLE BINDINGSSTATUSREQUEST
IDERRORINDEX
VERSION COMMUNITY SNMP PDU
variable bindings:
SNMP PDU:
SNMP message:
东 方 通 信 股 份 有 限 公 司
Get
manager agentget
response
MIB
请求获得一个或多个变量的值可能遇到的错误: noSuchName 对象不存在 / 并非叶对象( leaf object ) tooBig 待返结果无法承载于 response PDU 内 genErr 所有其它原因
东 方 通 信 股 份 有 限 公 司
MIB 示例
1
address (1) info (2) route-table (3)
route-entry (1)name (1) uptime (2)
130.89.16.2
printer-1 123456
1
2
9
3
5
7
8
dest(1) next(3)
2
3
5
5
7
8
9
1
1
1
2
1
1
1
2
3
2
3
2
3
2
policy(2)
东 方 通 信 股 份 有 限 公 司
Get 示例get(1.1.0)response(1.1.0 => 130.89.16.2)
get(1.2.0)response(error-status = noSuchName)
get(1.1)response(error-status = noSuchName)
get(1.1.0; 1.2.2.0)response(1.1.0 => 130.89.16.2; 1.2.2.0 => 123456)
get(1.3.1.3.5.1)response(1.3.1.3.5.1 => 2)
get(1.3.1.1.5.1)response(1.3.1.1.5.1 => 2)
get(1.3.1.1.5.1, 1.3.1.2.5.1, 1.3.1.3.5.1)response(1.3.1.1.5.1 => 2, 1.3.1.2.5.1 => 1, 1.3.1.3.5.1 => 2)
东 方 通 信 股 份 有 限 公 司
manager agentset
response
MIB
给一个已存在的对象实例赋值(包括创建新的实例,比如在 table 中增加 rows )
Set 请求只能作用于最小的单元可能遇到的错误: noSuchName、 badValue、 tooBig、 genErr
Set
东 方 通 信 股 份 有 限 公 司
Set 示例
set(1.2.1.0 => my-printer)response(noError; 1.2.1.0 => my-printer)
set(1.2.1.0 => my-printer, 1.2.3.0 => 0)response(error-status = noSuchName; error-index = 2) 1
address (1) info (2) route-table (3)
route-entry (1)name (1) uptime (2)
130.89.16.2
printer-1 123456
1
2
9
3
5
7
8
dest(1) next(3)
2
3
5
5
7
8
9
1
1
1
2
1
1
1
2
3
2
3
2
3
2
policy(2)
东 方 通 信 股 份 有 限 公 司
manager agentgetNext
response
MIB
获取下一个 MIB 单元的实例名和值;发现 MIB 的结构取回 table 中的 rows
可能遇到的错误: noSuchName(=End of MIB ) tooBig
genErr
Get-Next
东 方 通 信 股 份 有 限 公 司
Get-Next 示例
getNext(1.1.0)response(1.2.1.0 => printer-1)
getNext(1.2.1.0)response(1.2.2.0 => 123456)
getNext(1)response(1.1.0 => 130.89.16.2)
getNext(1.3.1.3.5.1)response(1.3.1.3.5.2 => 3)
getNext(1.3.1.1; 1.3.1.2; 1.3.1.3)response(1.3.1.1.2.1 => 2; 1.3.1.2.2.1 => 1; 1.3.1.3.2.1 => 2)
getNext(1.3.1.1.2.1; 1.3.1.2.2.1; 1.3.1.3.2.1)response(1.3.1.1.3.1 => 3; 1.3.1.2.3.1 => 1; 1.3.1.3.3.1 => 3)
1
address (1) info (2) route-table (3)
route-entry (1)name (1) uptime (2)
130.89.16.2
printer-1 123456
1
2
9
3
5
7
8
dest(1) next(3)
2
3
5
5
7
8
9
1
1
1
2
1
1
1
2
3
2
3
2
3
2
policy(2)
东 方 通 信 股 份 有 限 公 司
访 问 顺 序
MIB 可以看做是一个有序列表
INSTANCE ID INSTANCE VALUE
1.1.0 130.89.16.2
1.2.1.0 printer-1
1.2.2.0 123456
1.3.1.1.2.1 2
1.3.1.1.3.1 3
1.3.1.1.5.1 5
... ...1.3.1.1.9.1 9
1.3.1.2.2.1 1
1.3.1.2.3.1 1
... ...1.3.1.2.9.1 1
1.3.1.3.2.1 2
... ...
东 方 通 信 股 份 有 限 公 司
Trap
以信号的形式通知一个事件Trap 的接收结果无需被确认,因此是“ 不可靠的 ”所以仍然需要 “轮询” 机制
可以对 Agents 进行配置,以实现: 不发送 Traps
Traps 只发送给指定的 Managers
manager agent
trap
东 方 通 信 股 份 有 限 公 司
已定义的 Traps
ColdStart
WarmStart
LinkDown
LinkUp
Authentication Failure
EGPNeighbourLoss
EnterpriseSpecificTrap
东 方 通 信 股 份 有 限 公 司
Trap – PDU 的格式
生成 Trap 的对象的类型
生成 Trap 的对象地址
一般 Trap 类型
该网络实体最近一次初始化与 trap产生点之间的时间
企业特定的 Trap
真正感兴趣的信息
ENTERPRISE
AGENT-ADDRESS
GENERIC-TRAP
SPECIFIC-TRAP
TIME-STAMP
VARIABLE-BINDINGS
Trap-PDU ::= [4]IMPLICIT SEQUENCE {
enterprise OBJECT IDENTIFIER,agent-addr NetworkAddress,
generic-trap INTEGER { coldStart(0), warmStart(1), linkDown(2), linkUp(3), authenticationFailure(4), egpNeighborLoss(5), enterpriseSpecific(6)},
specific-trap INTEGER,time-stamp TimeTicks,variable-bindings VarBindList
}
PDU type enterprise
agent-addr
generic-
trapvariable-bindings
specific-
traptime-stamp
东 方 通 信 股 份 有 限 公 司
Proxy 管理
传统上,该术语用于指代执行以下功能的设备: 在不同的传输域之间进行数据转换 在不同的 SNMP 版本之间进行转换 在 SNMP 和其它管理协议之间进行转换 将低端管理信息聚合成高端信息 … …
如今,该术语用于表示那些能转发 SNMP 消息,而不进行消息解析的设备
MANAGER PROXY AGENT
东 方 通 信 股 份 有 限 公 司
SNMP 消息编码
MIBs 和消息格式的描述是基于 ASN.1 语法的。一条 Abstract 语法和一条 Transfer 语法的间的映射是通过 BER ( Basic Encoding Rules )来定义的
MANAGER
UDP
IP
LINK
AGENT
UDP
IP
LINK
MIB
BERBER
ABSTRACT SYNTAX
TRANSFER SYNTAX
东 方 通 信 股 份 有 限 公 司
ASN.1 是一种描述网络消息的标准方法。
ASN.1 由两部分组成:1. 语法规则,描述消息的内容(以数据类型来表示)及其顺序或结构
2. 将每个数据项编码到一条消息中去所采用的的实际方法
ASN.1 由两个标准定义(适用于 OSI 框架中的应用):• ISO 8824/ITU X.208 (规定了语法)• ISO 8825/ITU X.209 (规定了 ASN.1 的 BER )
Abstract Syntax Notation One
东 方 通 信 股 份 有 限 公 司
Report ::= SEQUENCE { author OCTET STRING, title OCTET STRING, body OCTET STRING, biblio Bibliography }
用 ASN.1 定义消息 - 示例
Bibliography ::= SEQUENCE {
author OCTET STRING
title OCTET STRING
publisher OCTET STRING
year OCTET STRING
}
其中:
东 方 通 信 股 份 有 限 公 司
用 ASN.1 定义消息 - 示例
其它可指定的数据类型包括:
INTEGER BOOLEAN REAL BIT STRING
ENUMERATED 是枚举类型的数据
数据项也可指定为 OPTIONAL (不一定需要提供数值)
东 方 通 信 股 份 有 限 公 司
Basic Encoding Rules
每个 ASN.1 的值被编码为一个 8 位的字串
这种编码规则定义了一个 TAG 、 LENGTH 、 VALUE 序列
length valuetag
东 方 通 信 股 份 有 限 公 司
TAG 域
primitive (=simple) / constructed (=structured)
f
0 0 = universal tag0 1 = application-wide tag1 0 = (context specific tag)1 1 = (private tag)
OBJECT IDENTIFIER
ASN.1 TYPE
INTEGER
OCTET STRING
BIT PATTERN
00 0 0 0010
00 0 0 0100
00 0 0 0110
Universal tags
IpAddress
Counter32
Gauge32
Unsigned32
TimeTicks
Opaque
Counter64
BIT PATTERN
01 0 0 0000
01 0 0 0001
01 0 0 0010
01 0 0 0010
APPLICATION TYPE
01 0 0 0011
01 0 0 0100
01 0 0 0110
Application-wide tags
东 方 通 信 股 份 有 限 公 司
LENGTH 域
SHORT FORM:
0
(1 £ n £ 2)
1 n
n
LONG FORM:
东 方 通 信 股 份 有 限 公 司
SNMPv1 小结
Manager / Agent 体系结构
MIB 树 & OID
基于 Community String 的安全控制
Get 、 Set 、 Get-Next 、 Trap PDU
东 方 通 信 股 份 有 限 公 司
SNMPv2
SNMP 的基本概念
东 方 通 信 股 份 有 限 公 司
SNMPv1 的局限性
规则的正式文档化不足
有限的错误代码
有限的数据类型
有限的通知信息
性能问题
传输相关性
缺少层次性
安全性堪忧
东 方 通 信 股 份 有 限 公 司
层 次
最初的构思: Manager to Manager(M2M)MIB
poll
inform command
M
M
M
A A AAA
这方面工作已移交至一个专门的分布式管理工作组 DISMAN
东 方 通 信 股 份 有 限 公 司
SNMPv2 安全:发生了什么?
1993 年 4 月:建议标准四个重要的改编人基于 party 的安全第一代原型很快面世
1995 年 6 月:原改编者中的两位废弃了建议标准
1995 年 8 月:基本达成共识:基于 party 的模型太复杂又出现很多新的建议,如 SNMPv2C (基于 Communit
y )、 SNMPV2U (基于用户)、… …
1997 年成立了新的 SNMPv3 工作组和新的改编人员
东 方 通 信 股 份 有 限 公 司
SNMPv2 协议操作
getNext
response
MIB
manager agent
set
response
MIB
manager agent
get
response
MIB
manager agent
getBulk
response
MIB
manager agent
trap
MIB
manager agent
response
inform
MIB
manager "agent"
东 方 通 信 股 份 有 限 公 司
Get
manager agentget
response
MIB
除“例外情况”外,与 SNMPv1 大致相同。可能的 “例外” 有:
noSuchObject
noSuchInstance
例外情况( Exceptions )将不会提升当前的错误状态
东 方 通 信 股 份 有 限 公 司
Get 示例get(1)response(error-status => noError, 1.2 => noSuchObject)
get(1.1)response(error-status => noError, 1.2.0 => noSuchInstance)
get(1.1.9)response(error-status => noError, 1.2.0 => noSuchInstance)
get(1.2)response(error-status => noError, 1.4.0 => noSuchObject)
get(1.4.0)response(error-status => noError, 1.4.0 => noSuchObject)
get(1.1.0, 1.4.0)response(error-status => noError, 1.1.0 => 130.89.16.2, 1.4.0 => noSuchObject)
东 方 通 信 股 份 有 限 公 司
Get-Next
manager agentgetNext
response
MIB
除“例外情况”外,与 SNMPv1 大致相同。可能的 “例外” 有:
endOfMibView
例如:getNext(1.4.0)response (error-status => noError, 1.4.0 => endOfMibView)
东 方 通 信 股 份 有 限 公 司
Get-Bulk
SNMPv2 中为获取大量变量信息而新增的改善性能 !
manager agentgetBulk
response
MIB
东 方 通 信 股 份 有 限 公 司
Get-Bulk 的性能Source: Steve Waldbusser, Carnegie-Mellon University
210
3300
v1
v2
NO SECURITY
195
2910
110
1600
WITH AUTHENTICATION WITH ENCRYPTION
Figures based on original (party based) SNMPv2
东 方 通 信 股 份 有 限 公 司
Get-Bulk
getBulk 请求有两个附加参数:• non-repeators• max-repetitions
象一个普通的 getnext 操作那样获得变量列表中的前 N 个单元( non-repeators ) 紧接着的操作就有如大量重复着的 getnext 操作组合起来( max-repetitions ),将变量列表中的后续单元都取回来
东 方 通 信 股 份 有 限 公 司
Get-Bulk
REQUEST(non-repeaters = N; max-repetitions = M;
VariableBinding-1; ... ; VariableBinding-N; VariableBinding-(N+1); ... ; VariableBinding-(N+R)
RESPONSE(
)
VariableBinding-1; ... ; VariableBinding-N; VariableBinding-(N+1); ... ; VariableBinding-(N+R)
VariableBinding-(N+1); ... ; VariableBinding-(N+R)
VariableBinding-(N+1); ... ; VariableBinding-(N+R)
...
VariableBinding-(N+1); ... ; VariableBinding-(N+R)
)
1st LEXICOGRAPHICAL SUCCESSOR
2nd LEXICOGRAPHICAL SUCCESSOR
3th LEXICOGRAPHICAL SUCCESSOR
Mth LEXICOGRAPHICAL SUCCESSOR
N-TIMES
M-TIMES
东 方 通 信 股 份 有 限 公 司
Get-Bulk 示例
getBulk(max-repetitions = 4; 1.1)
response(1.1.0 => 130.89.16.21.2.1.0 => printer-11.2.2.0 => 1234561.3.1.1.2.1 => 2 )
getBulk(max-repetitions = 3; 1.3.1.1; 1.3.1.2; 1.3.1.3)
response(1.3.1.1.2.1 => 2; 1.3.1.2.2.1 => 1; 1.3.1.3.2.1 => 21.3.1.1.3.1 => 3; 1.3.1.2.3.1 => 1; 1.3.1.3.3.1 => 31.3.1.1.5.1 => 5; 1.3.1.2.5.1 => 1; 1.3.1.3.5.1 => 2 )
东 方 通 信 股 份 有 限 公 司
Set
从概念上可理解为两步实现:
第一步:执行各种检查操作第二步:执行真正的 Set
新定义了许多错误代码
manager agentset
response
MIB
东 方 通 信 股 份 有 限 公 司
Set 新增的错误代码
wrongValuewrongEncodingwrongTypewrongLengthinconsistentValuenoAccessnotWritablenoCreationinconsistentNameresourceUnavailablegenErr
CommitFailedundoFailed
badValuebadValuebadValuebadValuebadValuenoSuchNamenoSuchNamenoSuchNamenoSuchNamegenErrgenErr
genErrgenErr
SNMPv1 SNMPv2
PHASE 1:
PHASE 2:
东 方 通 信 股 份 有 限 公 司
Trap
SNMPv1 :□ Cold Start □ Warm Start □ Link Down □ Link Up□ Authentication Failure □ EGP Neighbor Loss
SNMPv2 :• MIBs 可以包含通知类型的宏• 起始的两个变量: sysUptime 和 snmpTrapOID• 采用跟其它 PDUs 相同的格式
manager agent
trapMIB
东 方 通 信 股 份 有 限 公 司
Inform
带 “确认” 的 Trap
最初是用于通知更高层的 Manager与 Trap PDU 的格式相同可能的错误: tooBig
manager "agent"
Response
inform MIB
东 方 通 信 股 份 有 限 公 司
Report
新增的,用于报告协议 例外 /错误 的 PDU
SNMPv2 中并未定义其语义
manager agent
report
东 方 通 信 股 份 有 限 公 司
对传输的依赖性减小
SNMPv1 UDP
SNMPv2
UDPCLNS ( OSI )
DDP ( APPLETALK)IPX
东 方 通 信 股 份 有 限 公 司
通知类型的宏 示例
linkUp 通知类型对象 {ifIndex}状态 current描述 "A linkUp trap signifies that the entity
has detected that the ifOperStatusobject has changed to Up"
::= {snmpTraps 4}
通知类型的宏
用于定义主动上传的管理信息中的内容(例如 SNMPv2-Trap-PDU 或 InformRequest-PDU)
东 方 通 信 股 份 有 限 公 司
SNMPv2 RFCs通信模型• 草案标准• • RFC 1905, RFC1906
安全模型 - SNMPv2C:• 基于 Community 的 SNMP• 与 SNMPv1 相同的安全机制• 试验状态• • RFC 1901
安全模型 - SNMPv2U:• 基于用户的安全 (身份认证 / 加密 / 访问控制)• 试验状态• • RFC 1909, RFC1910
信息模型 :• STANDARD• • RFC2578, RFC2579, RFC2580
东 方 通 信 股 份 有 限 公 司
SNMPv2 小结改进的通信模型• Trap 与其它 PDUs 使用同样的格式• Get-Bulk PDU• SET 新增的错误代码
两种安全模型• SNMPv2C :基于 Community• SNMPv2U : 基于用户
与底层传输无关 :• MIB-II 被拆分成不同模块
安全和层次结构 SNMPv3 & DISMAN
改进的信息模型( SMIv2) :• 新增数据类型• 文本协定• 通知
东 方 通 信 股 份 有 限 公 司
SNMPv3
SNMP 的基本概念
东 方 通 信 股 份 有 限 公 司
设计决策中的考虑
满足保证 Set 安全的需要 定义一个使得 SNMP 有更长久生命力的体系架构 在迈向标准化的进程中,容许架构中不同部分有 不同演进速度 考虑将来的扩展 保持 SNMP 的简单特性 支持最小化实施 同时支持大型网络中所需的更复杂的功能 尽可能重用现行的规范
东 方 通 信 股 份 有 限 公 司
SNMPv3 体系结构
OTHERNOTIFICATIONORIGINATOR
COMMANDRESPONDER
COMMANDGENERATOR
NOTIFICATIONRECEIVER
PROXYFORWARDER
SNMP APPLICATIONS
SNMP ENGINE
MESSAGE PROCESSINGSUBSYSTEM
DISPATCHERSECURITY
SUBSYSTEMACCESS CONTROL
SUBSYSTEM
SNMP ENTITY
OTHER
东 方 通 信 股 份 有 限 公 司
SNMPv3 体系结构 - Manager
NOTIFICATIONRECEIVER
COMMANDGENERATOR
PDUDISPATCHER
COMMUNITY BASEDSECURITY MODEL
USER BASEDSECURITY MODEL
OTHERSECURITY MODEL
SECURITY SUBSYSTEM
SNMPv1
SNMPv2C
SNMPv3
OTHER
MESSAGE PROCESSINGSUBSYSTEM
MESSAGEDISPATCHER
TRANSPORTMAPPINGS
东 方 通 信 股 份 有 限 公 司
SNMPv3 体系结构 - Agent
PDUDISPATCHER
COMMUNITY BASEDSECURITY MODEL
USER BASEDSECURITY MODEL
OTHERSECURITY MODEL
SECURITY SUBSYSTEM
SNMPv1
SNMPv2C
SNMPv3
OTHER
MESSAGE PROCESSINGSUBSYSTEM
MESSAGEDISPATCHER
TRANSPORTMAPPINGS
MANAGEMENT INFORMATION BASE
VIEW BASEDACCESS CONTROL
ACCESS CONTROL SUBSYSTEM
NOTIFICATIONORIGINATOR
COMMANDRESPONDER
东 方 通 信 股 份 有 限 公 司
概念: snmpEngineID
O TH ER
SNMP ENGINE
SNMP ENTITY
snmpEngineID=4
O TH ER
SNMP ENGINE
SNMP ENTITY
snmpEngineID=2
O TH ER
SNMP ENGINE
SNMP ENTITY
snmpEngineID=3
OT HE R
SNMP ENGINE
SNMP ENTITY
snmpEngineID=1
东 方 通 信 股 份 有 限 公 司
概念: Context
OTHER
COMMAND RESPONDER APPLICATION
SNMP ENGINE
SNMP ENTITY
snmpEngineID=1
contextEngineID=1The context can be reached from this engine, thus:
MIB
contextName=card1
MIB
contextName=card2
东 方 通 信 股 份 有 限 公 司
模块间的原语
DISPATCHER
ACCESSCONTROL
SUBSYSTEM
APPLICATIONS
MESSAGEPROCESSINGSUBSYSTEM
SECURITYSUBSYSTEM DISPATCHER
ACCESSCONTROL
SUBSYSTEM
APPLICATIONS
MESSAGEPROCESSINGSUBSYSTEM
SECURITYSUBSYSTEM
Parameters
transportDomaintransportAddress
messageProcessingModel
securityModelsecurityName
securityLevel
contextEngineIDcontextName
pduVersion
PDU
expectResponse
maxSizeResponseScopedPDU
stateReferencestatusInformation
sendPduHandle
destTransportDomaindestTransportAddress
outgoingMessageoutgoingMessageLength
wholeMsgwholeMsgLength
pduType
viewTypevariableName
globalDatamaxMessageSize
securityEngineID
scopedPDU
securityParameterssecurityStateReference
sendPdu
prepareOutgoingMessage
generateRequestMsg
send and receive
prepareDataElements
processIncomingMsg
processPduisAccessAllowed
returnResponsePdu
prepareResponseMessage
generateResponseMsg
prepareDataElements
processIncomingMsg
processResponsePdu
东 方 通 信 股 份 有 限 公 司
SNMPv3 体系结构中的模块☆ 调度和消息处理模块
• SNMPv3 消息结构• snmpMPDMIB
• RFC 2572
☆ 应用• snmpTargetMIB
• snmpNotificationMIB
• snmpProxyMIB
• RFC2573
☆ 安全子系统• 基于用户的安全模型• snmpUsmMIB• RFC 2574
☆ 访问控制子系统• 基于 View 的访问控制模型• snmpVacmMIB• RFC 2575
东 方 通 信 股 份 有 限 公 司
SNMPv3 消息结构msgVersion
msgIDmsgMaxSize
msgFlagsmsgSecurityModel
msgSecurityParameters
contextEngineIDcontextName
PDU
→ 消息处理子系统
→ SNMPv3 处理模块
→ “安全子系统”
→ 访问控制子系统 和 应用
东 方 通 信 股 份 有 限 公 司
SNMPv3 处理模块的参数msgVersion
msgIDmsgMaxSize
msgFlagsmsgSecurityModel
msgSecurityParameters
contextEngineIDcontextName
PDU
authFlagprivFlagreportableFlag
SNMPv1SNMPv2cUSM
484..2147483647
0..2147483647
东 方 通 信 股 份 有 限 公 司
安全通信 Vs. 访问控制
MIB
Manager
应用处理
传输服务
Manager Agent
Get / Get-Next / GetBulkSet / Trap / Inform
安全通信
访问控制
东 方 通 信 股 份 有 限 公 司
USM :安全威胁
安全威胁 能否处理 ? 所采用机制
Replay 能 时 间 戳
冒充 能 MD5 / SHA-1
完整性 能 (MD5 / SHA-1)
泄密 能 DES
拒绝服务式攻击 能
流量分析 能
东 方 通 信 股 份 有 限 公 司
USM 消息结构msgVersion
msgIDmsgMaxSize
msgFlagsmsgSecurityModel
msgAuthoritativeEngineIDmsgAuthoritativeEngineBootsmsgAuthoritativeEngineTime
msgUserNamemsgAuthenticationParameters
msgPrivacyParameterscontextEngineID
contextName
PDU
Replay
Masquerade / Integrity / Disclosure
Disclosure
Masquerade / Integrity
东 方 通 信 股 份 有 限 公 司
基于 View 的访问控制模型
访问控制表
&
MIB Views
东 方 通 信 股 份 有 限 公 司
MIB View
东 方 通 信 股 份 有 限 公 司
访问控制表
GET / GETNEXTInterface Table John, Paul Authentication
•••••• ••• •••
•••••• ••• •••
SETInterface Table JohnAuthentication
GET / GETNEXTSystems Group George None
•••••• ••• •••
•••••• ••• •••
Encryption
MIB View允许访问的Managers
所需的安全级别
容许的操作
东 方 通 信 股 份 有 限 公 司
SNMPv3 RFCs
OTHER
SNMP APPLICATIONS
SNMP ENGINE
MESSAGE PROCESSINGSUBSYSTEM
DISPATCHERSECURITY
SUBSYSTEMACCESS CONTROL
SUBSYSTEM
SNMP ENTITY
RFC 2573
RFC 2571
RFC 2572 RFC 2572 USM: RFC 2574 VACM: RFC 2575
东 方 通 信 股 份 有 限 公 司
• 谢谢