snmp 简单网络管理协议

93
SNMP SNMP 东东东东东东东东 东东东东东东东东

Upload: janet

Post on 13-Jan-2016

262 views

Category:

Documents


0 download

DESCRIPTION

SNMP 简单网络管理协议. 本节内容提要. SNMP 的发展史 SNMP 的基础概念 互动演示和练习. SNMP 的 发 展 史. 20 世纪 70 年代, ICMP 大行其道. 1979 年, ISO 开始了网络管理标准化工作, 诞生了 OSI 网管标准 CMIS & CMIP. 1987 年 11 月发布了简单网关监视协议( SGMP ), 用以提供一种直接监控网关的方法, 成为提供专用网络管理工具的起点. SNMP 的 发 展 史. 接上页. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMP SNMP 简单网络管理协议简单网络管理协议

Page 2: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Page 3: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

本节内容提要

SNMP 的发展史

SNMP 的基础概念

互动演示和练习

Page 4: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMP 的 发 展 史

20 世纪 70 年代, ICMP 大行其道

1979 年, ISO 开始了网络管理标准化工作,诞生了 OSI 网管标准 CMIS & CMIP

1987 年 11 月发布了简单网关监视协议( SGMP ),用以提供一种直接监控网关的方法,

成为提供专用网络管理工具的起点

Page 5: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMP 的 发 展 史

IETF 为应对 Internet 的几何增长,将 CMIP 修改后取名为 CMOT然而, CMOT 却迟迟未出台 ……

接上页

1988 年, IAB 决定将在已有 SGMP 的基础上,开发 SNMP作为临时的解决方案,而把 CMOT 作为远期解决方案的策略

1990 年 5 月, IETF 发布了现在被称为 SNMPv1 的系列协议(完全标准)

Page 6: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMP 的 发 展 史

为了强化这一策略, IAB 要求 SNMP 和 CMOT 使用相同的被管对象数据库,但人们很快发现要这两个协议在对象级兼容是不现

实的,因此 IAB 最终放松了公共 SMI/MIB 的条件, SNMP 摆脱了过渡者的角色及与 CMOT 相兼容的束缚并取得了迅速的发展

接上页

1991 年 11 月发布的远程网络监视协议( RMON )为网络管理者提供了监控整个子网而不仅是单独设备的能力

Page 7: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMP 的 发 展 史

1992 年 7 月,四名 SNMP 的关键人物提出了称为 SNMPsec 的安全 SNMP 版本,与 SNMPv1 不兼容,并最终成为 SNMPv2 的基础

接上页

1993 年, IETF 发布了 SNMPv2 系列(建议标准)

1996 年 IETF 发布了一组新的 RFC,在这组新的文档中,取消了SNMPv2 的安全特性,消息格式也重新采用 SNMPv1 的基于

“ 共同体( community )” 概念的格式(草案标准)

Page 8: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMP 的 发 展 史

1999 年 4 月 IETF SNMPv3 工作组提出了RFC2571 ~ RFC2576,形成了 SNMPv3 的建议

接上页

Page 9: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Simple-Based Management

SNMPv3SNMPv2*

SNMPv2c

Common

SNMPv2uSNMPv2

SNMPv1Party-based

SNMPv2

管理信息的定义 ( MIB 文档 )

RFC1155Format

RFC1212/1215Format

RFC1442-4Format

RFC1902-4Format

RFC2578-80Format

SNMP 协议版本概览图

Page 10: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

基于 SNMP 的管理框架

以 SNMP 协议为基础的一个完整的基础框架。

1 、一种数据定义语言 The Internet-standard Structure of Management Information ( SMI )

2 、管理信息的定义 [Internet-standard] Management Information Base (MIB )

3 、协议定义 Simple Network Management Protocol

Page 11: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

革新中的 SNMP

基于 SNMP 的 Management Framework 一直在历经技术革新,许多有价值的革新已被标准化、并得以实施和部署。

IETF 目前在从事的一些 SNMP 相关的工作内容: 基于 SNMP 的配置管理( Policy MIB 模块) EOS 工作组 ( Evolution of SNMP ) SMIng 工作组( Structure of Management Information ) 分布式管理工作组( DISMAN ) MIB 定义

Page 12: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SMI 的革新

第一代 ( 1988-1991 ) : RFC 1155 第二代 ( 1991-1993 ) : RFC 1212 和 1215 第三代 ( 1993 ~至今) : SMIv2 RFCs 2578-2580 第四代 : SMIng: 正在进行时……

Page 13: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

MIB 的革新

从 1988 年首次定义至今,一直在经历改版

1988 年, MIB-I 诞生:所有管理系统的基础 90 年代早期, MIB-2 的出现: MIB-I 的超集 91 年 3 月, MIB-2 进入完全标准状态, MIB-I 成为历史 随着 Internet-Standard Management Framework 上应用的扩展, MIB 的范围也在拓展(传统网管、系统管理、应用管理、服务管理、遗留设备的管理)

Page 14: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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

Page 15: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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

Page 16: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

MIB 文档 – 网络管理(续)

MIB-2 RFC 1213Modem RFC 1696PPP MultipleRMON MultipleRouting MultipleRS-232-Like RFC 1659SNA technology MultipleSonet/SDH RFC 1595X.25 technology Multiple

Page 17: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

MIB 文档 – 服务管理

Frame Relay Service RFC 1604

Meter RFC 2720

SMDS SIP RFC 1694

Page 18: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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

Page 19: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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

Page 20: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMP 协议的革新

协议定义

独立于 MIB SNMP 协议

协议操作 传输映射 安全和管理

在 RFC 1157 中得以首次定义( SNMPv1 ) 在 SNMPv2 时开始出现许多分离的文档 在 SNMPv3 中实现了安全和管理

Page 21: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMP 协议的革新

Page 22: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

本节内容提要

SNMP 的发展史

SNMP 的基础概念

互动演示和练习

Page 23: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv1

SNMP 的基本概念

Page 24: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv1 架构模型

Network Elements

MANAGER

UDP

IP

LINK

AGENT

UDP

IP

LINK

SNMP 消息 MIB

Any 161

162 Any

Page 25: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Manager Agent 网络管理协议 管理信息库 MIB

SNMP 涉及的四个概念

Page 26: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

管理站( Manager ) 网络管理应用软件 提供一个网管人员监视和控制网络的接口

Agent 网元设备中应该装备代理软件,以便接受管理站的管理 响应来自于 Manager 的“获取信息”的请求 响应来自于 Manager 的“执行动作”的请求 可以主动提交重要信息给 Manager

SNMP 涉及的四个概念

Page 27: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

网络管理协议 Manager 与 Agents 之间的通信协议 提供了一种用以在 Manager 和 Agents 之间交换信息的标准方式

管理信息库 MIB Managed Objects 的一个结构化的集合,层次型组织 Managed Objects 就是需要管理的资源,本质上,每个 MO 就是一个数据变量 所谓 Monitor ,就是读取 MIB 中 MO 的值 所谓 Control ,就是修改 MIB 中 MO 的值

SNMP 涉及的四个概念

Page 28: 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)

Page 29: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

如果企业需要在全局 MIB 树中注册他们的私有 MIB

扩 展部分,就需要联系 Internet Assigned Numbers Au

thority ( IANA )

欲知当前已经分配的企业子树,请访问

ftp://ftp.isi.edu/in-notes/iana/assignments/enterprise-num

bers

私有 MIB 的注册

Page 30: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Community Managers 和 Agents 之间的关系

Community Name 用于验证 SNMP 消息

SNMP “密码”

缺省的只读 community name 是 public

认证失败 代理将向 Manager 发送 “认证失败 Trap”

SNMPv1 认证

Page 31: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

PDUs 概览

getNext

response

MIB

manager agent

set

response

MIB

manager agent

get

response

MIB

manager agent

trap

manager agent

Page 32: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

消息和 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:

Page 33: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Get

manager agentget

response

MIB

请求获得一个或多个变量的值可能遇到的错误: noSuchName 对象不存在 / 并非叶对象( leaf object ) tooBig 待返结果无法承载于 response PDU 内 genErr 所有其它原因

Page 34: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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)

Page 35: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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)

Page 36: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

manager agentset

response

MIB

给一个已存在的对象实例赋值(包括创建新的实例,比如在 table 中增加 rows )

Set 请求只能作用于最小的单元可能遇到的错误: noSuchName、 badValue、 tooBig、 genErr

Set

Page 37: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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)

Page 38: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

manager agentgetNext

response

MIB

获取下一个 MIB 单元的实例名和值;发现 MIB 的结构取回 table 中的 rows

可能遇到的错误: noSuchName(=End of MIB ) tooBig

genErr

Get-Next

Page 39: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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)

Page 40: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

访 问 顺 序

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

... ...

Page 41: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Trap

以信号的形式通知一个事件Trap 的接收结果无需被确认,因此是“ 不可靠的 ”所以仍然需要 “轮询” 机制

可以对 Agents 进行配置,以实现: 不发送 Traps

Traps 只发送给指定的 Managers

manager agent

trap

Page 42: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

已定义的 Traps

ColdStart

WarmStart

LinkDown

LinkUp

Authentication Failure

EGPNeighbourLoss

EnterpriseSpecificTrap

Page 43: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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

Page 44: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Proxy 管理

传统上,该术语用于指代执行以下功能的设备: 在不同的传输域之间进行数据转换 在不同的 SNMP 版本之间进行转换 在 SNMP 和其它管理协议之间进行转换 将低端管理信息聚合成高端信息 … …

如今,该术语用于表示那些能转发 SNMP 消息,而不进行消息解析的设备

MANAGER PROXY AGENT

Page 45: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMP 消息编码

MIBs 和消息格式的描述是基于 ASN.1 语法的。一条 Abstract 语法和一条 Transfer 语法的间的映射是通过 BER ( Basic Encoding Rules )来定义的

MANAGER

UDP

IP

LINK

AGENT

UDP

IP

LINK

MIB

BERBER

ABSTRACT SYNTAX

TRANSFER SYNTAX

Page 46: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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

Page 47: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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

}

其中:

Page 48: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

用 ASN.1 定义消息 - 示例

其它可指定的数据类型包括:

INTEGER BOOLEAN REAL BIT STRING

ENUMERATED 是枚举类型的数据

数据项也可指定为 OPTIONAL (不一定需要提供数值)

Page 49: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Basic Encoding Rules

每个 ASN.1 的值被编码为一个 8 位的字串

这种编码规则定义了一个 TAG 、 LENGTH 、 VALUE 序列

length valuetag

Page 50: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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

Page 51: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

LENGTH 域

SHORT FORM:

0

(1 £ n £ 2)

1 n

n

LONG FORM:

Page 52: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv1 小结

Manager / Agent 体系结构

MIB 树 & OID

基于 Community String 的安全控制

Get 、 Set 、 Get-Next 、 Trap PDU

Page 53: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv2

SNMP 的基本概念

Page 54: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv1 的局限性

规则的正式文档化不足

有限的错误代码

有限的数据类型

有限的通知信息

性能问题

传输相关性

缺少层次性

安全性堪忧

Page 55: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

层 次

最初的构思: Manager to Manager(M2M)MIB

poll

inform command

M

M

M

A A AAA

这方面工作已移交至一个专门的分布式管理工作组 DISMAN

Page 56: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv2 安全:发生了什么?

1993 年 4 月:建议标准四个重要的改编人基于 party 的安全第一代原型很快面世

1995 年 6 月:原改编者中的两位废弃了建议标准

1995 年 8 月:基本达成共识:基于 party 的模型太复杂又出现很多新的建议,如 SNMPv2C (基于 Communit

y )、 SNMPV2U (基于用户)、… …

1997 年成立了新的 SNMPv3 工作组和新的改编人员

Page 57: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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"

Page 58: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Get

manager agentget

response

MIB

除“例外情况”外,与 SNMPv1 大致相同。可能的 “例外” 有:

noSuchObject

noSuchInstance

例外情况( Exceptions )将不会提升当前的错误状态

Page 59: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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)

Page 60: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Get-Next

manager agentgetNext

response

MIB

除“例外情况”外,与 SNMPv1 大致相同。可能的 “例外” 有:

endOfMibView

例如:getNext(1.4.0)response (error-status => noError, 1.4.0 => endOfMibView)

Page 61: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Get-Bulk

SNMPv2 中为获取大量变量信息而新增的改善性能 !

manager agentgetBulk

response

MIB

Page 62: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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

Page 63: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Get-Bulk

getBulk 请求有两个附加参数:• non-repeators• max-repetitions

象一个普通的 getnext 操作那样获得变量列表中的前 N 个单元( non-repeators ) 紧接着的操作就有如大量重复着的 getnext 操作组合起来( max-repetitions ),将变量列表中的后续单元都取回来

Page 64: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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

Page 65: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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 )

Page 66: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Set

从概念上可理解为两步实现:

第一步:执行各种检查操作第二步:执行真正的 Set

新定义了许多错误代码

manager agentset

response

MIB

Page 67: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Set 新增的错误代码

wrongValuewrongEncodingwrongTypewrongLengthinconsistentValuenoAccessnotWritablenoCreationinconsistentNameresourceUnavailablegenErr

CommitFailedundoFailed

badValuebadValuebadValuebadValuebadValuenoSuchNamenoSuchNamenoSuchNamenoSuchNamegenErrgenErr

genErrgenErr

SNMPv1 SNMPv2

PHASE 1:

PHASE 2:

Page 68: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Trap

SNMPv1 :□ Cold Start □ Warm Start □ Link Down □ Link Up□ Authentication Failure □ EGP Neighbor Loss

SNMPv2 :• MIBs 可以包含通知类型的宏• 起始的两个变量: sysUptime 和 snmpTrapOID• 采用跟其它 PDUs 相同的格式

manager agent

trapMIB

Page 69: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Inform

带 “确认” 的 Trap

最初是用于通知更高层的 Manager与 Trap PDU 的格式相同可能的错误: tooBig

manager "agent"

Response

inform MIB

Page 70: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

Report

新增的,用于报告协议 例外 /错误 的 PDU

SNMPv2 中并未定义其语义

manager agent

report

Page 71: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

对传输的依赖性减小

SNMPv1 UDP

SNMPv2

UDPCLNS ( OSI )

DDP ( APPLETALK)IPX

Page 72: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

通知类型的宏 示例

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)

Page 73: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv2 RFCs通信模型• 草案标准• • RFC 1905, RFC1906

安全模型 - SNMPv2C:• 基于 Community 的 SNMP• 与 SNMPv1 相同的安全机制• 试验状态• • RFC 1901

安全模型 - SNMPv2U:• 基于用户的安全 (身份认证 / 加密 / 访问控制)• 试验状态• • RFC 1909, RFC1910

信息模型 :• STANDARD• • RFC2578, RFC2579, RFC2580

Page 74: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv2 小结改进的通信模型• Trap 与其它 PDUs 使用同样的格式• Get-Bulk PDU• SET 新增的错误代码

两种安全模型• SNMPv2C :基于 Community• SNMPv2U : 基于用户

与底层传输无关 :• MIB-II 被拆分成不同模块

安全和层次结构 SNMPv3 & DISMAN

改进的信息模型( SMIv2) :• 新增数据类型• 文本协定• 通知

Page 75: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv3

SNMP 的基本概念

Page 76: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

设计决策中的考虑

满足保证 Set 安全的需要 定义一个使得 SNMP 有更长久生命力的体系架构 在迈向标准化的进程中,容许架构中不同部分有 不同演进速度 考虑将来的扩展 保持 SNMP 的简单特性 支持最小化实施 同时支持大型网络中所需的更复杂的功能 尽可能重用现行的规范

Page 77: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv3 体系结构

OTHERNOTIFICATIONORIGINATOR

COMMANDRESPONDER

COMMANDGENERATOR

NOTIFICATIONRECEIVER

PROXYFORWARDER

SNMP APPLICATIONS

SNMP ENGINE

MESSAGE PROCESSINGSUBSYSTEM

DISPATCHERSECURITY

SUBSYSTEMACCESS CONTROL

SUBSYSTEM

SNMP ENTITY

OTHER

Page 78: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv3 体系结构 - Manager

NOTIFICATIONRECEIVER

COMMANDGENERATOR

PDUDISPATCHER

COMMUNITY BASEDSECURITY MODEL

USER BASEDSECURITY MODEL

OTHERSECURITY MODEL

SECURITY SUBSYSTEM

SNMPv1

SNMPv2C

SNMPv3

OTHER

MESSAGE PROCESSINGSUBSYSTEM

MESSAGEDISPATCHER

TRANSPORTMAPPINGS

Page 79: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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

Page 80: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

概念: 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

Page 81: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

概念: 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

Page 82: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

模块间的原语

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

Page 83: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv3 体系结构中的模块☆ 调度和消息处理模块

• SNMPv3 消息结构• snmpMPDMIB

• RFC 2572

☆ 应用• snmpTargetMIB

• snmpNotificationMIB

• snmpProxyMIB

• RFC2573

☆ 安全子系统• 基于用户的安全模型• snmpUsmMIB• RFC 2574

☆ 访问控制子系统• 基于 View 的访问控制模型• snmpVacmMIB• RFC 2575

Page 84: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv3 消息结构msgVersion

msgIDmsgMaxSize

msgFlagsmsgSecurityModel

msgSecurityParameters

contextEngineIDcontextName

PDU

→ 消息处理子系统

→ SNMPv3 处理模块

→ “安全子系统”

→ 访问控制子系统 和 应用

Page 85: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

SNMPv3 处理模块的参数msgVersion

msgIDmsgMaxSize

msgFlagsmsgSecurityModel

msgSecurityParameters

contextEngineIDcontextName

PDU

authFlagprivFlagreportableFlag

SNMPv1SNMPv2cUSM

484..2147483647

0..2147483647

Page 86: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

安全通信 Vs. 访问控制

MIB

Manager

应用处理

传输服务

Manager Agent

Get / Get-Next / GetBulkSet / Trap / Inform

安全通信

访问控制

Page 87: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

USM :安全威胁

安全威胁 能否处理 ? 所采用机制

Replay 能 时 间 戳

冒充 能 MD5 / SHA-1

完整性 能 (MD5 / SHA-1)

泄密 能 DES

拒绝服务式攻击 能

流量分析 能

Page 88: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

USM 消息结构msgVersion

msgIDmsgMaxSize

msgFlagsmsgSecurityModel

msgAuthoritativeEngineIDmsgAuthoritativeEngineBootsmsgAuthoritativeEngineTime

msgUserNamemsgAuthenticationParameters

msgPrivacyParameterscontextEngineID

contextName

PDU

Replay

Masquerade / Integrity / Disclosure

Disclosure

Masquerade / Integrity

Page 89: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

基于 View 的访问控制模型

访问控制表

&

MIB Views

Page 90: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

MIB View

Page 91: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

访问控制表

GET / GETNEXTInterface Table John, Paul Authentication

•••••• ••• •••

•••••• ••• •••

SETInterface Table JohnAuthentication

GET / GETNEXTSystems Group George None

•••••• ••• •••

•••••• ••• •••

Encryption

MIB View允许访问的Managers

所需的安全级别

容许的操作

Page 92: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

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

Page 93: SNMP  简单网络管理协议

东 方 通 信 股 份 有 限 公 司

• 谢谢