Internet DRAFT - draft-snmpv3-lpm
draft-snmpv3-lpm
HTTP/1.1 200 OK
Date: Tue, 09 Apr 2002 11:36:58 GMT
Server: Apache/1.3.20 (Unix)
Last-Modified: Wed, 30 Apr 1997 08:21:00 GMT
ETag: "3ddefc-10fbf-336700ec"
Accept-Ranges: bytes
Content-Length: 69567
Connection: close
Content-Type: text/plain
Local Processing Model for the Next Generation
Simple Network Management Protocol (SNMPng)
26 March 1997
B. Wijnen
IBM T.J. Watson Research
wijnen@vnet.ibm.com
D. Harrington
Cabletron Systems, Inc.
dbh@cabletron.com
<draft-ietf-snmpv3-lpm-00.txt>
Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet- Drafts as reference
material or to cite them other than as ``work in progress.''
To learn the current status of any Internet-Draft, please check the
``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow
Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe),
ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
Abstract
This document describes the Local Processing Model (LPM) for the
Next-Generation of the Simple Network Management Protocol (SNMPng).
It is part of the overall Architectural Model for the Next Generation
Simple Network Management Protocol (SNMPng).
This document includes a MIB for remotely monitoring/managing the
configuration paramters for this LPM.
Wijnen/Harrington Expires September 1977 [Page 1]
Draft Local Processing Model (LPM) for SNMPng March 1997
0. Change Log
[version 0.6]
- Add address info for WG chair.
- Add address for DaveH in MIB description
- submit as I-D
[version 0.5]
- Some more comments by BW.
- Some more cleanup
- Address comments from others (dbh, dl)
- complete missing sections
- I still have quite a few of editor's notes so that
people can discuss/evaluate the alternatives.
Or do we want/need to take a position right now?
- add abstract
- prepare for pagination
[version 0.4]
- Add initial config info as appendix A
- Some more cleanup
[version 0.3]
- Explain and extend usage of viewTable and subtreeFamilyTable
[version 0.2]
- merge in dbh comments
- add more personal bw comments
- add more terminology definitions
- add MIB
[version 0.1]
- initial version
Wijnen/Harrington Expires September 1977 [Page 2]
Draft Local Processing Model (LPM) for SNMPng March 1997
1. Introduction
A management system contains: several (potentially many) nodes, each
with a processing entity, termed an agent, which has access to
management instrumentation; at least one management station; and, a
management protocol, used to convey management information between the
agents and management stations.
Management stations execute management applications which monitor and
control managed elements. Managed elements are devices such as hosts,
routers, terminal servers, etc., which are monitored and controlled
via access to their management information.
Operations of the protocol are carried out under an administrative
framework which defines minimum policies for mechanisms which
provide message-level security, access control for managed objects,
and interaction between the protocol engine and the applications
which use the services of the engine.
The Architectural Model for SNMPng [SNMPng-ARCH] describes
a Local Processing Framework for SNMP messages that are
targetted for local processing to access management information or
for SNMP messages that originate from local processing of management
information.
It is the purpose of this document to define a Local Processing
Model (LP-M) for the Next Generation Simple Network Management
Protocol (LP-M for SNMPng).
1.1 Terminology
Definition of SNMPng acronyms and terms:
MPC-F - Message Processing and Control Framework
MPC-M - Message Processing and Control Model
MPC-I - Message Processing and Control Implementation
SF-F - Security Framework
SF-M - Security Framework Model
SF-I - Security Framework Implementation
LP-F - Local Processing Framework
LP-M - Local Processing Model
LP-I - Local Processing Implementation
LCD - Local Configuration Datastore
1.2 Local Processing
Local Processing may occur in an SNMPng entity acting in an agent
role in response to SNMPng request messages from an SNMPng
Wijnen/Harrington Expires September 1977 [Page 3]
Draft Local Processing Model (LPM) for SNMPng March 1997
entity acting in a manager role. These request messages include
several types of operations, including GetRequest, GetNextRequest,
GetBulkRequest, and SetRequest operations.
Local Processing only occurs if the request is targeted at local
management information as determined by the contextID in the
Naming-Scope in a Scoped-PDU. It is the MPC implementation (MPC-I)
that determines if the contextID refers to the current SNMPng
engine and if so, to direct the Scoped-PDU to the LP-I.
Local Processing almost always results in the production
of a response, (sometimes including error or other exceptional
indicators), termed the Response-PDU.
Local Processing can also result in the production of an
error report, termed the Report-PDU.
Local Processing is also responsible for generating notifications,
which will result in the production of one or more traps, termed
SNMPv2-TRAP-PDUs.
1.3 Local Configuration Datastore
To implement the model described in this document, each SNMPng
entity needs to retain its own set of information about access
rights and policies, trap destinations, and the like. This set
of information is called the SNMPng entity's Local Configuration
Datastore (LCD) because it is locally-stored information.
In order to allow an SNMPng entity's LCD to be remotely configured,
portions of the LCD need to be accessible as managed objects.
A MIB module, the SNMPng LP-M Configuration MIB, which defines
these managed object types is included in this document.
Wijnen/Harrington Expires September 1977 [Page 4]
Draft Local Processing Model (LPM) for SNMPng March 1997
2. Elements of the Model
This section contains definitions to realize the access control
applied by this LP-M.
2.1 SNMPng Group
A groupName identifies a group (set) of zero or more security
entities on whose behalf SNMP messages are being processed or
generated.
It is the responsibility of the MPC-I to determine in an
authorirative manner for which groupName an incoming SNMP
message is being processed.
It is the responsibility of the LP-I to determine the groupName
for which a notification (TRAP) is being generated.
This Model (LP-M) requires the groupName to be passed as input
to an implementation (LP-I) of this LP-M when a message is
handed to the LP-I for processing.
This Model (LP-M) requires the groupName to be passed as output
from an implementation (LP-I) when a message originates from
the LP-I.
2.2 SNMPng Quality of Service (Qos)
The Qos identifies the Quality of Service (in terms of message
security) used for transmitting the SNMP message.
It is the responsibility of the MPC-I to determine in an
authoritative manner the Qos that was used for an incoming
SNMP message.
It is the responsibility of the LP-I to determine the Qos
that must be used when transmitting a notification (TRAP).
This Model (LP-M) recognizes three different Qos levels:
- without authentication and without privacy
- with authentication but without privacy
- with authentication and with privacy
This Model (LP-M) requires the Qos to be passed as input
to an implementation (LP-I) of this LP-M when a message is
handed to the LP-I for processing.
This Model (LP-M) requires the Qos to be passed as output
from an implementation (LP-I) when a message originates from
the LP-I.
2.3 Contexts
Wijnen/Harrington Expires September 1977 [Page 5]
Draft Local Processing Model (LPM) for SNMPng March 1997
An SNMP context is a collection of management information
accessible by an SNMP agent. An item of management information
may exist in more than one context. An SNMP agent potentially
has access to many contexts.
2.4 SNMPng Scoped-PDU
A scoped-PDU contains a Naming-Scope that unambiguously
identifies an SNMP agent and the context, (locally) accesible
by that agent, to which the SNMP management information
in the SNMP-PDU refers.
A Naming-Scope contains a contextID that unambiguously identifies
the SNMP agent which has (local) access to the management
information refered to by the contextName and the SNMP-PDU.
A Naming-Scope contains a contextName which unambiguously
identifies an SNMP context accessible by the SNMP agent to
which the SNMP-PDU is directed or from which the SNMP-PDU
is originated.
It is the responsibility of the MPC-I to determine in an
authoritative manner if the contextID refers to the current
SNMPng engine and if so to direct the SNMP message to the
LP-I for local processing.
It is the responsibility of the LP-I to determine the
contextName from which the management information in a
notification (TRAP) is retrieved.
This Model (LP-M) requires the Soped-PDU to be passed as input
to an implementation (LP-I) of this LP-M if a message is
handed to the LP-I for processing.
This Model (LP-M) requires that the contextName be passed
as input to an implementation (LP-I) of this LP-M if a trap
must be generated.
This Model (LP-M) requires the Soped-PDU to be passed as output
from an implementation (LP-I) if a message originates from
the LP-I.
Editor's notes:
I wonder if it would not be better to not use a
Scoped-PDU as input/output to the LP-M but instead
use contextName plus PDU as input/output. After all,
the contextID is irrelevant in the LP-M and is in
fact only used/known in the MPC.
End Editor's notes.
Wijnen/Harrington Expires September 1977 [Page 6]
Draft Local Processing Model (LPM) for SNMPng March 1997
2.5 Access Policy
The access policy of this LP-M determines the access rights of
groups (representing zero, one or more security entities which
have the same access rights). For a particular context
(contextName) to which a group (groupName) has access using
a particular Qos, that group's access rights are given by a
list of authorized operations, and a read-view and a write-view.
The read-view is the set of object instances authorized
for the group when reading objects. Reading objects occurs
when processing a retrieval (Get, GetNext, GetBulk) operation
and when sending a notification (Trap).
The write-view is the set of object instances authorized for
the group when writing objects. Writing objects occurs when
processing a Set operation.
2.6. Error Reporting
Editor's notes:
(additional) pieces of this should be specified
in the MPC-M and SF-M
End Editor's notes.
While processing a received communication, an SNMPng entity may
determine that the message is unacceptable. In this case,
the appropriate error counter is incremented and the received
message is discarded without further processing.
If an SNMPng entity is processing a received Get, GetNext,
GetBulk, Set or Inform PDU and determines that a message is
unacceptable and the reportableFlag indicates that a report
may be generated, then after incrementing the appropriate
counter, it is required to generate a message containing a
report PDU, with the same context as the received message,
and to send it to the transport address which originated
the received message. For all report PDUs, generated by
the LP-I, the Qos for sending the report-PDU is set to
noAUth (no authentiocation, no privacy).
The reportableFlag should never be set for a message that
contains a Response, SNMPv2-Trap or Report operation.
Wijnen/Harrington Expires September 1977 [Page 7]
Draft Local Processing Model (LPM) for SNMPng March 1997
3. Elements of Procedure
This section describes the procedures followed by an
implementation (LP-I) of this Model (LP-M) when processing or
generating a Scoped-PDU
3.1 Processing a Received Scoped-PDU
This section describes the procedure followed by an implementation
(LP-I) whenever it receives a scoped-PDU for local processing.
This procedure is independent of any of the other processing
within the SNMPng Architectural Model.
(1) The PDU portion of the Scoped-PDU is processed. If the
serialized PDU value is not the serialization (according to
the conventions of [RFC1906]) of a PDU value, then the
snmpInASNParseErrs counter [RFC1907] is incremented,
and the received scoped-PDU is discarded without further
processing.
(2) The SNMPv2 operation type is determined from the ASN.1 tag
value associated with the PDUs component.
(3) If the SNMPv2 operation type is either a Report, Response,
Trap, or Inform operation,
then the snmpNgLpmStatsUnauthorizedOperations counter is
incremented, and the received Scoped-PDU is discarded
without further processing.
Editor's notes:
the above PDU-types should not be passed to the LP-I.
So it seems that the MPC-M also must define some SNMP
PDU processing for Report, Response, Trap, Inform.
We used UnauthorizedOperations counter in v2u but v2*
used authorizationError (in SNMP PDU)... The v2u did that
because it was part of the access-control as opposed to
part of PDU processing. Now it seems part of PDU
processing again... so maybe using authorizationError
is OK again... that is if we get to this point.
If the MPC-I detects it, then it should be an
unauthorizedOperations-report I think.
End Editor's notes.
(4) The LCD is consulted for information about the SNMPng context
identified by the contextName. If information about this
SNMPng context is absent from the LCD, then the
snmpNgLpmStatsUnknownContexts counter is incremented, a report
PDU [RFC1905] is generated, and the received scoped-PDU is
discarded without further processing.
Wijnen/Harrington Expires September 1977 [Page 8]
Draft Local Processing Model (LPM) for SNMPng March 1997
Editor's notes:
The above means we have a contextTable within LPM,
but I am not sure we need one... since we just use a
contextName as an index into the snmpNgLpmAcTable.
We already decided to get rid of contextLocalEntity.
I have heard many stories that contectLocalTime is not
used and that the functionality could be achieved by
just defining few extra objects for those that need
something like a value to be used at restartTime.
If we do not use a contextTable, then we could check that
the context is used as index in the acTable and if not,
then we assume the context does not exist
An other alternative is to skip step (4) and (5) and
just return an authorizationError or a reportPDU for
snmpNgLpmUnAuthorizedOperations since we will not find
an entry in the snmpNgLpmAcTable.
Some feel that the contextTable must exist (that is in
readOnly mode) so that a manager can learn about the
contextNames that exist at an agent.
But the entityMIB also sort of defines logical entities
which basically map to contextNames. However, the current
entityMIB does not yet address SNMPng contexts. Maybe
we should sync up with them.
End Editor's notes.
(5) The LCD is consulted for information about the SNMPng group
identified by the groupName. If information about this
SNMPng group is absent from the LCD, then the
snmpNgLpmStatsUnknownGroups counter is incremented, a report
PDU [RFC1905] is generated, and the received Scoped-PDU is
discarded without further processing.
Editor's notes:
The above would assume that we just check if the group
is used as an index in the snmpNgLpmAcTable at all
An other alternative is to skip step (4) and (5) and
just return a authorizationError or a reportPDU for
snmpNgLpmUnAuthorizedOperations since we will not find
an entry in the snmpNgLpmAcTable.
End Editor's notes.
(6) If the SNMPv2 operation type is either a Get, GetNext, GetBulk,
or Set operation, then:
a) the LCD is consulted for access rights authorized for
communications using the indicated Qos, on behalf of the
indicated group, and concerning management information in
Wijnen/Harrington Expires September 1977 [Page 9]
Draft Local Processing Model (LPM) for SNMPng March 1997
the indicated context for the particular SNMPv2 operation
type.
b) if the SNMPv2 operation type is not among the authorized
access rights, then the snmpNgLpmStatsUnauthorizedOperations
counter is incremented, a report PDU is generated, and
the received Scoped-PDU is discarded without further
processing.
c) the management operation represented by the SNMPv2 operation
type is performed by the receiving LP-I with respect to the
relevant MIB view within the SNMPng context according to
the procedures set forth in [RFC1905], where the relevant
MIB view is determined according to the contextName,
groupName and the Qos values and the SNMPv2 operation
type requested.
d) An SNMPv2 Response-PDU is produced and presented to the
the MPC-I for further processing.
The LP-I uses the scoped-PDU-MMS to ensure that the
produced Response-PDU does not exceed the maximum
message size.
3.2 Generating a Notification
This section describes the procedure followed by an implementation
(LP-I) whenever it must generate a Scoped-PDU for an SNMPv2-Trap.
This procedure is independent of any of the other processing
within the SNMPng Architectural Model.
(1) The LCD is consulted for the set of trap destinations.
(2) For each element in the set of trap destinations, the Qos,
group (snmpNgLpmTrapGroup), destination addres and security
model (snmpNgLpmSecModel) are extracted from the LCD and
used together with the contextName in the following steps:
a) the LCD is consulted for access rights authorized for
communications using the indicated Qos, on behalf of the
indicated group, and concerning management information in
the indicated context for the SNMPv2 trap operation.
b) if the SNMPv2 trap operation is not among the authorized
access rights, then no SNMPv2-TRAP PDU is produced and
processing continues with the next element.
c) the varBindList is checked against the relevant MIB view
where the relevant MIB view is determined according to the
contextName, groupName and the Qos values and the SNMPv2
trap operation.
Wijnen/Harrington Expires September 1977 [Page 10]
Draft Local Processing Model (LPM) for SNMPng March 1997
d) if any varBind is not in view, then no SNMPv2-TRAP PDU is
produced and processing continues with the next element.
e) an SNMPv2-TRAP PDU is produced and presented to the
MPC-I for further processing. The LP-I passes the
the Scoped-PDU, security model, the Qos, the groupName
and the destination address to the MPC-I.
Wijnen/Harrington Expires September 1977 [Page 11]
Draft Local Processing Model (LPM) for SNMPng March 1997
4. Definitions
SNMPng-LP-MIB DEFINITIONS ::= BEGIN
IMPORTS
Counter32, Unsigned32,
MODULE-IDENTITY, OBJECT-TYPE, snmpModules FROM SNMPv2-SMI
TEXTUAL-CONVENTION, TestAndIncr,
RowStatus, AutonomousType, StorageType,
TDomain, TAddress FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF,
SnmpNgGroupName, SnmpNgContextName,
SnmpNgQos, SnmpNgEngineID,
SnmpNgSecurityModel FROM SNMPng-MIB;
snmpNgLpMIB MODULE-IDENTITY
LAST-UPDATED "9703260000Z" -- 26 Mar 1997, midnight
ORGANIZATION "SNMPv3 Working Group"
CONTACT-INFO "WG-email: snmpv3@tis.com
Subscribe: majordomo@tis.com
In msg body: subscribe snmpv3
Chair: Russ Mundy
Trutsed Information Systems
postal: 3060 Washington Rd
Glenwood MD 21738
email: mundy@tis.com
phone: 301-854-6889
Co-editor: Bert Wijnen
IBM T.J. Watson Research
postal: Schagen 33
3461 GL Linschoten
Netherlands
email: wijnen@vnet.ibm.com
phone: +31-348-412-498
Co-editor Dave Harrington
Cabletron Systems, Inc
postal: Post Office Box 5005
MailStop: Durham
35 Industrial Way
Rochester NH 03867-5005
email: dbh@cabletron.com
phone: 603-337-7357
"
DESCRIPTION "The management information definitions for the
SNMPng Local Processing Model.
"
Wijnen/Harrington Expires September 1977 [Page 12]
Draft Local Processing Model (LPM) for SNMPng March 1997
::= { snmpModules xx }
-- Administrative assigments *****************************************
snmpNgLpMIBObjects OBJECT IDENTIFIER ::= { snmpNgLpMIB 1 }
snmpNgLpMIBConformance OBJECT IDENTIFIER ::= { snmpNgLpMIB 2 }
-- Information about Local Contexts **********************************
-- Editor's notes:
-- We're still discussing if the contextTable is needed at all
-- See Edotor's notes in section 3.1 under item 4).
-- End Editor's notes.
snmpNgLpContextTable OBJECT-TYPE
SYNTAX SEQUENCE OF SnmpNgLpContextEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "The table of locally available contexts.
This table is read-only meaning that SNMPng entities
in a manager role cannot configure contexts.
Instead the table is meant to provide input to SNMPng
entities in a manager role sich that they can
properly configure the snmpNgLpAcTable to control
access to all contexts in an SNMPng entity operating
in an agent role.
"
::= { snmpNgLpMIBObjects 1 }
snmpNgLpContextEntry OBJECT-TYPE
SYNTAX SnmpNgLpContextEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Information about a particular context."
INDEX { IMPLIED snmpNgLpContextName }
::= { snmpNgLpContextTable 1 }
SnmpNgLpContextEntry ::= SEQUENCE
{
snmpNgLpContextName SnmpNgContextName,
snmpNgLpContextStatus RowStatus
}
snmpNgLpContextName OBJECT-TYPE
SYNTAX SnmpNgContextName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "A textual name uniquely identifying a particular
context on a particular agent.
Wijnen/Harrington Expires September 1977 [Page 13]
Draft Local Processing Model (LPM) for SNMPng March 1997
"
::= { snmpNgLpContextEntry 1 }
snmpNgLpContextStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The status of this conceptual row in the context
table.
"
::= { snmpNgLpContextEntry 2 }
-- Information about Access Rights ***********************************
snmpNgLpAcTable OBJECT-TYPE
SYNTAX SEQUENCE OF SnmpNgLpAcEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "The table of group access rights configured in the
local configuration datastore (LCD).
"
::= { snmpNgLpMIBObjects 2 }
snmpNgLpAcEntry OBJECT-TYPE
SYNTAX SnmpNgLpAcEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "An access right configured in the local configuration
datastore (LCD) authorizing access to a SNMPng
context.
"
INDEX { snmpNgLpAcContextName,
snmpNgLpAcGroupName,
snmpNgLpAcQoS
}
::= { snmpNgLpAcTable 1 }
SnmpNgLpAcEntry ::= SEQUENCE
{
snmpNgLpAcContextName SnmpNgContextName,
snmpNgLpAcGroupName SnmpNgGroupName,
snmpNgLpAcPrivileges INTEGER,
snmpNgLpAcReadViewIndex INTEGER,
snmpNgLpAcWriteViewIndex INTEGER,
snmpNgLpAcStorageType StorageType,
snmpNgLpAcStatus RowStatus
}
snmpNgLpAcContextName OBJECT-TYPE
SYNTAX ContextName
Wijnen/Harrington Expires September 1977 [Page 14]
Draft Local Processing Model (LPM) for SNMPng March 1997
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "The context name which identifies an SNMPng context
to which this conceptual row grants access rights.
"
::= { snmpNgLpAcEntry 1 }
snmpNgLpAcGroupName OBJECT-TYPE
SYNTAX GroupName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "The group name which identifies an SNMPng group
to which this conceptual row grants access rights.
"
::= { snmpNgLpAcEntry 1 }
snmpNgLpAcQoS OBJECT-TYPE
SYNTAX QoS
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "The minimum level of security required of messages
sent on behalf of an entity belonging to the group
in order to gain the access rights allowed by this
conceptual row.
"
::= { snmpNgLpAcEntry 2 }
snmpNgLpAcPrivileges OBJECT-TYPE
SYNTAX BITS { get(0), getNext(1), getBulk(2),
set(3), inform(4), snmpv2Trap(5) }
-- Editor's notes:
-- I think we should remove inform... it is not handled in
-- the LP-M. Inform is application to application.
-- I also have no problem if we were to use SNMPv2*
-- values: nothing(1), readOnly(2), readWrite(3)
--
-- There is also the suggestion to do away with this column
-- all together because the Privileges can be detrmined
-- based on the readView or writeView being non-zero.
-- End Editor's notes.
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The access privileges authorized by this conceptual
row. Access privileges specify whether received
retrieval and modification requests are permitted
to be processed, and whether notifications are
permitted to be transmitted.
A type of request is authorized if and only if the
corresponding enumerated bit is set.
"
Wijnen/Harrington Expires September 1977 [Page 15]
Draft Local Processing Model (LPM) for SNMPng March 1997
DEFVAL { { get, getNext, getBulk } }
::= { snmpNgLpAcEntry 3 }
snmpNgLpAcReadViewIndex OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The value of an instance of this object identifies
the MIB view of the SNMPng context to which this
conceptual row authorizes read access.
The identified MIB view is that for which
snmpNgLpViewIndex has the same value as the
instance of this object; if the value is zero or
there is no MIB view having this value of
snmpNgLpViewIndex, then no access is granted.
Otherwise, this object is ignored and can take any
value at the Local Processing Module's discretion,
e.g., zero.
Note that read access includes access via retrieval
requests as well as transmission of information
via notifications (traps).
"
DEFVAL { 0 }
::= { snmpNgLpAcEntry 4 }
snmpNgLpAcWriteViewIndex OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The value of an instance of this object identifies
the MIB view of the SNMPng context to which this
conceptual row authorizes write access.
The identified MIB view is that for which
snmpNgLpViewIndex has the same value as the
instance of this object; if the value is zero or
there is no MIB view having this value of
snmpNgLpViewIndex, then no access is granted.
Otherwise, this object is ignored and can take any
value at the Local Processing Module's discretion,
e.g., zero.
"
DEFVAL { 0 }
::= { snmpNgLpAcEntry 5 }
snmpNgLpAcStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
Wijnen/Harrington Expires September 1977 [Page 16]
Draft Local Processing Model (LPM) for SNMPng March 1997
STATUS current
DESCRIPTION "The storage type for this conceptual row.
Conceptual rows having the value 'permanent'
need not allow write-access to any columnar
objects in the row.
"
DEFVAL { nonVolatile }
::= { snmpNgLpAcEntry 6 }
snmpNgLpAcStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The status of this conceptual row.
For those columnar objects which permit write-access,
their value in an existing conceptual row can be
changed irrespective of the value of snmpNgLpAcStatus
for that row.
-- Editor's notes:
-- I am planning to remove the following based on discussions
-- in Montreal between Shawn, JeffJohnson and ourselves
-- where they claimed we should just allow for stale entries.
--
-- A conceptual row in this table is not qualified for
-- activation until the context and the group it
-- references are active. Further, a conceptual row in
-- this table is immediately made notInService whenever
-- the status of the context or the group it references
-- is made notInService, and immediately destroyed
-- whenever the context or the group it references is
-- destroyed.
--
-- There is also a suggestion as follows (DaveL):
-- Why not just have a set of snmpNgLpViewStatus to
-- destroy(6) either:
-- - fail with an inconsistent value error if any
-- corresponding entries exist in the
-- snmpNgLpSubtreeFamilyTable, or
-- - result also in deletion of all corresponding entries
-- in the snmpNgLpSubtreeFamilyTable.
-- End Editor's notes
"
::= { snmpNgLpAcEntry 7 }
-- Information about MIB views ***************************************
-- Support for views having instance-level granularity is optional
snmpNgLpViewTable OBJECT-TYPE
SYNTAX SEQUENCE OF SnmpNgLpViewEntry
Wijnen/Harrington Expires September 1977 [Page 17]
Draft Local Processing Model (LPM) for SNMPng March 1997
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "The table of locally defined MIB views.
When an SNMPng entity in the manager role wants to
create a new MIB view, then it must first create
an entry in the snmpNgLpViewTable, using a
non-existing index-value for snmpNgLpViewIndex.
If the creation of such an entry is successfull,
the SNMPng entity in the manager role can then start
creating entries in the snmpNgLpSubtreeFamiliyTable.
When deleting MIB views, it is stronly advised that
first the related snmpNgLpSubtreeFamilityEntries are
deleted from the snmpNgLpSubtreeFamiliyTable and that
only upon completion of that deletion process the
snmpNgLpViewEntry is deleted from the
snmpNgLpViewTable.
Following these procedures there should be no
collisions when multiple managers try to update
the MIB views at an SNMPng entity in an agent role.
"
::= { snmpNgLpMIBObjects 3 }
snmpNgLpViewEntry OBJECT-TYPE
SYNTAX SnmpNgLpViewEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Information on a particular local MIB view."
INDEX { snmpNgLpViewIndex }
::= { snmpNgLpViewTable 1 }
SnmpNgLpViewEntry ::= SEQUENCE
{
snmpNgLpViewIndex INTEGER,
snmpNgLpViewName OCTET STRING,
snmpNgLpViewStorageType StorageType,
snmpNgLpViewStatus RowStatus
}
snmpNgLpViewIndex OBJECT-TYPE
SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "An arbitrary unique value for each MIB view.
Once assigned, the value for each MIB view must
remain constant for as long as that view is defined,
even across re-initializations of the entity's
network management system.
Wijnen/Harrington Expires September 1977 [Page 18]
Draft Local Processing Model (LPM) for SNMPng March 1997
-- Editor's notes:
-- I am not sure I understand why this should stay the
-- same. As long as the agent ensures that the mapping
-- between the acTable's use of viewIndex and the indices
-- in this viewTable are in sync, then it should be OK.
-- A manager who wants to add entries to the acTable better
-- checks the views before it actually changes the acTable.
-- End Editor's notes.
Thus, the value for a nonVolatile, permanent, or
readOnly (see snmpNgLpViewStorageType) MIB view must
either be stored as part of the system's non-volatile
configuration information, or be able to be
re-generated after each re-initialization.
The specific value is meaningful only within a given
SNMPng entity, i.e., it is not meaningful to any
other SNMPng entity except to uniquely identify the
view within the set of all views known to this
SNMPng entity.
"
::= { snmpNgLpViewEntry 1 }
snmpNgLpViewName OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(0..32))
MAX-ACCESS read-create
STATUS current
DESCRIPTION "An arbitrary viewName that may help humans recognize
the various MIB views.
"
DEFVAL { "" }
::= { snmpNgLpViewEntry 2 }
snmpNgLpViewStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The storage type for this conceptual row.
Conceptual rows having the value 'permanent' need
not allow write-access to any columnar objects in
the row.
"
DEFVAL { nonVolatile }
::= { snmpNgLpViewEntry 3 }
snmpNgLpViewStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The status of this conceptual row."
Wijnen/Harrington Expires September 1977 [Page 19]
Draft Local Processing Model (LPM) for SNMPng March 1997
::= { snmpNgLpViewEntry 4 }
-- Subtree families of MIB views *************************************
snmpNgLpSubtreeFamilyTable OBJECT-TYPE
SYNTAX SEQUENCE OF SnmpNgLpSubtreeFamilyEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Locally held information about families of subtrees
within MIB views.
Each MIB view is defined by two collections of view
subtrees: the included view subtrees, and the
excluded view subtrees.
Every such subtree, both included and excluded,
is defined in this table.
To determine if a particular object instance is in
a particular MIB view, compare the object instance's
OBJECT IDENTIFIER with each of the MIB view's active
entries in this table. If none match, then the
object instance is not in the MIB view. If one or
more match, then the object instance is included in,
or excluded from, the MIB view according to the
value of snmpNgLpSubtreeFamilyType in the entry
whose value of snmpNgLpSubtreeFamilySubtree has the
most sub-identifiers. If multiple entries match
and have the same number of sub-identifiers, then
the lexicographically greatest instance of
snmpNgLpSubtreeFamilyType determines the inclusion
or exclusion.
An object instance's OBJECT IDENTIFIER X matches an
active entry in this table when the number of
sub-identifiers in X is at least as many as in the
value of snmpNgLpSubtreeFamilySubtree for the entry,
and each sub-identifier in the value of
snmpNgLpSubtreeFamilySubtree matches its
corresponding sub-identifier in X.
Two sub-identifiers match either if the
corresponding bit of snmpNgLpSubtreeFamilyMask is
zero (the 'wild card' value), or if they are equal.
A 'family' of view subtrees is the set of subtrees
defined by a particular combination of values of
snmpNgLpSubtreeFamilySubtree and
snmpNgLpSubtreeFamilyMask.
In the case where no 'wild card' is defined in
snmpNgLpSubtreeFamilyMask, the family of view
subtrees reduces to a single view subtree.
Wijnen/Harrington Expires September 1977 [Page 20]
Draft Local Processing Model (LPM) for SNMPng March 1997
When an SNMPng entity in the manager role wants to
create a new MIB view, then it must first create
an entry in the snmpNgLpViewTable, using a
non-existing index-value for snmpNgLpViewIndex.
If the creation of such an entry is successfull,
the SNMPng entity in the manager role can then start
creating entries in the snmpNgLpSubtreeFamiliyTable.
When deleting MIB views, it is stronly advised that
first the related snmpNgLpSubtreeFamilityEntries are
deleted from the snmpNgLpSubtreeFamiliyTable and that
only upon completion of that deletion process the
snmpNgLpViewEntry is deleted from the
snmpNgLpViewTable.
Following these procedures there should be no
collisions when multiple managers try to update
the MIB views at an SNMPng entity in an agent role.
"
::= { snmpNgLpMIBObjects 4 }
snmpNgLpSubtreeFamilyEntry OBJECT-TYPE
SYNTAX SnmpNgLpSubtreeFamilyEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Information on a particular family of view subtrees
included in or excluded from a particular SNMPng
context's MIB view. The MIB view must exist
(i.e., be represented by a conceptual row in the
snmpNgLpViewTable) before any subtree families can
be defined for it.
Implementations must not restrict the number of
families of view subtrees for a given MIB view,
except as dictated by resource constraints on the
overall number of entries in the
snmpNgLpSubtreeFamilyTable.
The value of snmpNgLpViewIndex in this INDEX clause
of this table identifies the MIB view in which this
subtree family exists.
A MIB view for which there are no conceptual rows
in this table is the empty set of view subtrees.
"
INDEX { snmpNgLpViewIndex,
IMPLIED snmpNgLpSubtreeFamilySubtree
}
::= { snmpNgLpSubtreeFamilyTable 1 }
Wijnen/Harrington Expires September 1977 [Page 21]
Draft Local Processing Model (LPM) for SNMPng March 1997
SnmpNgLpSubtreeFamilyEntry ::= SEQUENCE
{
snmpNgLpSubtreeFamilySubtree OBJECT IDENTIFIER,
snmpNgLpSubtreeFamilyMask OCTET STRING,
snmpNgLpSubtreeFamilyType INTEGER,
snmpNgLpSubtreeFamilyStorageType StorageType,
snmpNgLpSubtreeFamilyStatus RowStatus
}
snmpNgLpSubtreeFamilySubtree OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "The MIB subtree which when combined with the
corresponding instance of snmpNgLpSubtreeFamilyMask
defines a family of view subtrees.
"
::= { snmpNgLpSubtreeFamilyEntry 1 }
snmpNgLpSubtreeFamilyMask OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..16))
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The bit mask which,
in combination with the corresponding instance of
snmpNgLpSubtreeFamilySubtree, defines a family of
view subtrees.
Each bit of this bit mask corresponds to a
sub-identifier of snmpNgLpSubtreeFamilySubtree,
with the most significant bit of the i-th octet
of this octet string value (extended if necessary,
see below) corresponding to the (8*i - 7)-th
sub-identifier, and the least significant bit of
the i-th octet of this octet string corresponding
to the (8*i)-th sub-identifier, where i is in the
range 1 through 16.
Each bit of this bit mask specifies whether or not
the corresponding sub-identifiers must match when
determining if an OBJECT IDENTIFIER is in this
family of view subtrees; a '1' indicates that an
exact match must occur; a '0' indicates 'wild card',
i.e., any sub-identifier value matches.
Thus, the OBJECT IDENTIFIER X of an object instance
is contained in a family of view subtrees if, for
each sub-identifier of the value of
snmpNgLpSubtreeFamilySubtree, either:
the i-th bit of snmpNgLpSubtreeFamilyMask is 0, or
Wijnen/Harrington Expires September 1977 [Page 22]
Draft Local Processing Model (LPM) for SNMPng March 1997
the i-th sub-identifier of X is equal to the
i-th sub-identifier of the value of
snmpNgLpSubtreeFamilySubtree.
If the value of this bit mask is M bits long
and there are more than M sub-identifiers in
the corresponding instance of
snmpNgLpSubtreeFamilySubtree, then the bit mask
is extended with 1's to be the required length.
Note that when the value of this object is the
zero-length string, this extension rule results in
a mask of all-1's being used (i.e., no 'wild card'),
and the family of view subtrees is the one view
subtree uniquely identified by the corresponding
instance of snmpNgLpSubtreeFamilySubtree.
"
DEFVAL { ''H }
::= { snmpNgLpSubtreeFamilyEntry 2 }
snmpNgLpSubtreeFamilyType OBJECT-TYPE
SYNTAX INTEGER { included(1), excluded(2) }
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The indication of whether the corresponding instances
of snmpNgLpSubtreeFamilySubtree and
snmpNgLpSubtreeFamilyMask define a family of view
subtrees which is included in or excluded from the
MIB view.
"
DEFVAL { included }
::= { snmpNgLpSubtreeFamilyEntry 3 }
snmpNgLpSubtreeFamilyStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The storage type for this conceptual row.
Conceptual rows having the value 'permanent' need
not allow write-access to any columnar objects in
the row.
-- Editor's notes:
-- There is the suggestion from DaveL to let these rows
-- inherit the StorageType from the corresponding entries
-- in the viewTable as the default StorageType.
-- End Editor's notes:
"
DEFVAL { nonVolatile }
::= { snmpNgLpSubtreeFamilyEntry 4 }
Wijnen/Harrington Expires September 1977 [Page 23]
Draft Local Processing Model (LPM) for SNMPng March 1997
snmpNgLpSubtreeFamilyStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The status of this conceptual row.
For those columnar objects which permit write-access,
their value in an existing conceptual row can be
changed irrespective of the value of
snmpNgLpSubtreeFamilyStatus for that row.
A conceptual row in this table is not qualified for
activation until the MIB view it references is active.
Further, a conceptual row in this table is
immediately made notInService whenever the status of
the view it references is made notInService,
and immediately destroyed whenever the
view it references is destroyed.
"
::= { snmpNgLpSubtreeFamilyEntry 4 }
-- Information about TRAP destinations *******************************
snmpNgLpTrapDestTable OBJECT-TYPE
SYNTAX SEQUENCE OF SnmpNgLpTrapDestEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "The transport addresses to which notifications
(traps) are to be sent on behalf of specific
SNMPng groups.
"
::= { snmpNgLpMIBObjects 5 }
snmpNgLpTrapDestEntry OBJECT-TYPE
SYNTAX SnmpNgLpTrapDestEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "A transport address to which notifications (traps)
are to be sent on behalf of a specific SNMPng group
"
INDEX { snmpNgLpTrapDestTDomain,
IMPLIED snmpNgLpTrapDestTAddress
}
::= { snmpNgLpTrapDestTable 1 }
SnmpNgLpTrapDestEntry ::= SEQUENCE
{
snmpNgLpTrapDestTDomain TDomain,
snmpNgLpTrapDestTAddress TAddress,
snmpNgLpTrapDestQos SnmpNgQos,
Wijnen/Harrington Expires September 1977 [Page 24]
Draft Local Processing Model (LPM) for SNMPng March 1997
snmpNgLpTrapDestGroupName SnmpGroupName,
snmpNgLpTrapDestSecModel SnmpNgSecurityModel,
snmpNgLpTrapDestStorageType StorageType,
snmpNgLpTrapDestStatus RowStatus
}
snmpNgLpTrapDestTDomain OBJECT-TYPE
SYNTAX TDomain
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Indicates the kind of transport service for this
transport address.
"
DEFAULT { snmpUDPDomain }
::= { snmpNgLpTrapDestAddressEntry 1 }
snmpNgLpTrapDestTAddress OBJECT-TYPE
SYNTAX TAddress
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "The transport service address.
The address is formatted according to the
corresponding value of snmpNgLpTrapDestTDomain.
For example, for the transport domain corresponding
to the snmpUDPDomain, transportAddress is formatted
as a 4-octet IP Address concatenated with a 2-octet
UDP port number.
See [RFC1906] for more information on transport
domains and how their corresponding addresses are
formatted.
"
::= { snmpNgLpTrapDestEntry 2 }
snmpNgLpTrapDestQos OBJECT-TYPE
SYNTAX SnmpNgQos
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The Qos to use when sending a notification (trap)
to this destination.
"
DEFVAL { 2 } -- auth
::= { snmpNgLpTrapDestEntry 4 }
snmpNgLpTrapDestGroupName OBJECT-TYPE
SYNTAX SnmpNgGroupName
MAX-ACCESS read-create
STATUS current
Wijnen/Harrington Expires September 1977 [Page 25]
Draft Local Processing Model (LPM) for SNMPng March 1997
DESCRIPTION "The group name to use when applying access control
to the management information contained in the
notification (trap) to be sent.
"
::= { snmpNgLpTrapDestEntry 5 }
snmpNgLpTrapDestSecModel OBJECT-TYPE
SYNTAX SnmpNgSecurityModel
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The Security Model to use when applying security
measures to the SNMP message before sending it
to this destination.
"
::= { snmpNgLpTrapDestEntry 6 }
snmpNgLpTrapDestStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The storage type for this conceptual row.
Conceptual rows having the value 'permanent' need
not allow write-access to any columnar objects in
the row.
"
DEFVAL { nonVolatile }
::= { snmpNgLpTrapDestEntry 7 }
snmpNgLpTrapDestStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The status of this conceptual row."
::= { snmpNgLpTrapDestEntry 8 }
-- Conformance information *******************************************
snmpNgLpMIBCompliances
OBJECT IDENTIFIER ::= { snmpNgLpMIBConformance 1 }
snmpNgLpMIBGroups
OBJECT IDENTIFIER ::= { snmpNgLpMIBConformance 2 }
-- Compliance statements *********************************************
snmpNgLpMIBCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for SNMPng entities which
implement the SNMPng LP-M remote configuration MIB.
"
MODULE -- this module
MANDATORY-GROUPS { snmpNgLpBasicGroup }
Wijnen/Harrington Expires September 1977 [Page 26]
Draft Local Processing Model (LPM) for SNMPng March 1997
OBJECT snmpNgLpViewStorageType
MIN-ACCESS read-only
DESCRIPTION "Write access is not required."
OBJECT snmpNgLpViewStatus
MIN-ACCESS read-only
DESCRIPTION "Create access to the snmpNgLpViewTable
is not required.
"
OBJECT snmpNgLpSubtreeFamilyMask
WRITE-SYNTAX OCTET STRING (SIZE (0))
MIN-ACCESS read-only
DESCRIPTION "Support for configuration via SNMPng of
subtree families defined using wild-cards
is not required.
"
OBJECT snmpNgLpSubtreeFamilyStorageType
MIN-ACCESS read-only
DESCRIPTION "Write access is not required."
OBJECT snmpNgLpSubtreeFamilyStatus
MIN-ACCESS read-only
DESCRIPTION "Create access to the snmpNgLpSubtreeFamilyTable
is not required.
"
::= { snmpNgLpMIBCompliances 1 }
-- Units of conformance **********************************************
snmpNgLpBasicGroup OBJECT-GROUP
OBJECTS { snmpNgLpContextStatus,
snmpNgLpAcPrivileges,
snmpNgLpAcReadViewIndex,
snmpNgLpAcWriteViewIndex,
snmpNgLpAcStorageType,
snmpNgLpAcStatus,
snmpNgLpViewStorageType,
snmpNgLpViewStatus,
snmpNgLpSubtreeFamilyMask,
snmpNgLpSubtreeFamilyType,
snmpNgLpSubtreeFamilyStorageType, -- length 32 !!
snmpNgLpSubtreeFamilyStatus,
snmpNgLpTrapDestQos,
snmpNgLpTrapDestGroupName,
snmpNgLpTrapDestSecModel,
snmpNgLpTrapDestStorageType,
snmpNgLpTrapDestStatus
}
Wijnen/Harrington Expires September 1977 [Page 27]
Draft Local Processing Model (LPM) for SNMPng March 1997
STATUS current
DESCRIPTION
"A collection of objects providing for remote
configuration of an SNMPng entity which implements
the SNMPng Local Processing Model (LP-M).
"
::= { snmpNgLpMIBGroups 1 }
END
Wijnen/Harrington Expires September 1977 [Page 28]
Draft Local Processing Model (LPM) for SNMPng March 1997
5. Security Considerations
5.1 Recommended Practices
This document is part of the SNMPng Architectural Model. The
Local Processing Model (LP-M) described in this document controls
access rights to management information based on:
- contextName, representing a set of management information
at the managed system where the Local Processing Implenetation
(LP-I) is running.
- groupName, representing a group or set of zero, one or more
security entities. These security entities are mapped into
one or more groups in the SNMPng Securty Framework Model
(SF-M).
- Qos used for the transmission of a SNMP message.
When the LP-I is called for processing a Scoped-PDU, it is assumed
that the Message Processing and Control Implementation (MPC-I)
has ensured the authentication and privacy aspects as specified
by the Quality of service (Qos) that is being passed.
5.2 Defining Groups
GroupNames are used to give access to a group of zero, one or more
security entities. Within the LPM, a Groupname is considered to
exist if that groupName is used (as an index) in a row in the
snmpNgLpAcTable.
By mapping a security entity into a group, a SF-M for SNMPng can
add/delete entities to a group.
5.3 Conformance
Conformance rules are described in the Architectural Model for SNMPng.
Wijnen/Harrington Expires September 1977 [Page 29]
Draft Local Processing Model (LPM) for SNMPng March 1997
6. Editor's Addresses
Co-editor: Bert Wijnen
IBM T.J. Watson Research
postal: Schagen 33
3461 GL Linschoten
Netherlands
email: wijnen@vnet.ibm.com
phone: +31-348-412-498
Co-editor Dave Harrington
Cabletron Systems, Inc
postal: Post Office Box 5005
MailStop: Durham
35 Industrial Way
Rochester NH 03867-5005
email: dbh@cabletron.com
phone: 603-337-7357
7. Acknowledgements
This document describes the work of the SNMP Security and
Administrative Framework Evolution team, comprised of
David Harrington (Cabletron Systems Inc.)
Jeff Johnson (Cisco)
David Levi (SNMP Research Inc.)
John Linn (Openvision)
Russ Mundy (Trusted Information Systems) chair
Shawn Routhier (Epilogue)
Glenn Waters (Nortel)
Bert Wijnen (IBM T.J. Watson Research)
Wijnen/Harrington Expires September 1977 [Page 30]
Draft Local Processing Model (LPM) for SNMPng March 1997
8. References
[RFC1902] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
Rose, M., and S., Waldbusser, "Structure of Management
Information for Version 2 of the Simple Network Management
Protocol (SNMPv2)", RFC 1905, January 1996.
[RFC1905] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
Rose, M., and S., Waldbusser, "Protocol Operations for
Version 2 of the Simple Network Management Protocol (SNMPv2)",
RFC 1905, January 1996.
[RFC1906] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
Rose, M., and S. Waldbusser, "Transport Mappings for
Version 2 of the Simple Network Management Protocol (SNMPv2)",
RFC 1906, January 1996.
[RFC1907] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
Rose, M., and S. Waldbusser, "Management Information Base for
Version 2 of the Simple Network Management Protocol (SNMPv2)",
RFC 1907 January 1996.
[RFC1908] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
Rose, M., and S. Waldbusser, "Coexistence between Version 1
and Version 2 of the Internet-standard Network Management
Framework", RFC 1908, January 1996.
[SNMPng-ARCH] The SNMPng Working Group, Harrington, D., Wijnen, B.,
"Architectural Model for the Next Generation Simple Network
Managememt Protocol (SNMPng)", draft-ietf-snmpv3-arch-00.txt,
March 1997.
[SNMPng-LPM] The SNMPng Working Group, Wijnen, B., Harrington, D.,
"Local Processing Model for the Next Generation Simple Network
Management Protocol (SNMPng)", draft-ietf-snmpv3-lpm-00.txt,
March 1997.
[SNMPng-USEC] To be written
The SNMPng Working Group, Editors...Names,
"The User-Based Security Model for the Next Generation Simple
Network Managememt Protocol (SNMPng)",
draft-ietf-snmpv3-usec-00.txt, April 1997.
Wijnen/Harrington Expires September 1977 [Page 31]
Draft Local Processing Model (LPM) for SNMPng March 1997
APPENDIX A - Installation
Editor's notes:
portions of the following still need to be moved to
the appropriate documents. I am just listing them here
so that we have one place where we can see what is
needed.
End Editor's notes.
A.1. Agent Installation Parameters
During installation, an SNMPng entity acting in an agent role is
configured with several parameters. These include:
(1) a security posture (todo in SNMPng-MPC)
The choice of security posture determines the extent of the view
configured for unauthenticated access. One of three possible
choices is selected:
minimum-secure,
semi-secure, or
very-secure.
(2) one or more transport service addresses (todo in SNMPng-MPC)
These parameters may be specified explicitly, or they may be
specified implicitly as the same set of network-layer addresses
configured for other uses by the device together with the well-
known transport-layer "port" information for the appropriate
transport domain [RFC1906]. The agent listens on each of these
transport service addresses for messages.
(3) one or more secrets (todo in SNMPng-USEC)
These are the authentication/privacy secrets for the first user
to be configured.
One way to accomplish this is to have the installer enter a
"password" for each required secret. The password is then
algorithmically converted into the required secret by:
- forming a string of length 1,048,576 octets by repeating the
value of the password as often as necessary, truncating
accordingly, and using the resulting string as the input to
the MD5 algorithm. The resulting digest, termed "digest1",
is used in the next step.
- a second string of length 44 octets is formed by concatenating
digest1, the SNMPng engine's snmpNgEngineID value, and digest1.
This string is used as input to the MD5 algorithm.
Wijnen/Harrington Expires September 1977 [Page 32]
Draft Local Processing Model (LPM) for SNMPng March 1997
The resulting digest is the required secret (see Appendix A.2).
With these configured parameters, the SNMPng entity instantiates
the following snmpNgUsecUserEntry,
no privacy support privacy support
------------------ ---------------
snmpNgUsecEngineID localEngineID localEngineID
snmpNgUsecUserName "public" "public"
snmpNgUsecGroupName "public" "public"
snmpNgUsecAuthProto snmpMD5Protocol snmpMD5Protocol
snmpNgUsecPrivProto none snmpDESProtocol
snmpNgUserSecurityCookie "" ""
(4) The SNMPng LP-M the SNMPng entity in an agent role must
instantiate the following views and access rights. This
configuration information should be readOnly (persistent).
- One context with its <contextName> as the empty-string "".
This represents the default context.
- One view (the <all> view) for authenticated access:
- the <all> MIB view is the following subtree:
"internet" [RFC1902]
- A second view (the <restricted> view) for unauthenticated
access. This view is configured according to the selected
security posture:
- For the "very-secure" posture:
the <restricted> MIB view is the union of these subtrees:
"snmp" [RFC1907]
"snmpNgStats" [SNMPng-ARCH]
"snmpNgUsecStats" [SNMPng-USEC]
- For the "semi-secure" posture:
the <restricted> MIB view is the union of these subtrees:
"snmp" [RFC1907]
"snmpNgStats" [SNMPng-ARCH]
"snmpNgUsecStats" [SNMPng-USEC]
"system" [RFC1902]
- For the "minimum-secure" posture:
the <restricted> MIB view is the following subtree.
"internet" [RFC1902]
Wijnen/Harrington Expires September 1977 [Page 33]
Draft Local Processing Model (LPM) for SNMPng March 1997
- Access rights to allow:
- read-only access for Qos "noAuth" on behalf of security
entities that belong to the group "public" to the
<restricted> MIB view in the context with contextName "".
- read-write access for Qos "auth" on behalf of security
entities that belong to the group "public" to the
<all> MIB view in the context with contextName "".
- if privacy is supported,
read-write access for Qos "auth" on behalf of security
entities that belong to the group "public" to the
<all> MIB view in the context with contextName "".
Wijnen/Harrington Expires September 1977 [Page 34]
Draft Local Processing Model (LPM) for SNMPng March 1997
A.2. Password to Key Algorithm
Editor's Notes:
The following goes into SNMPng-USEC doc.
End Editor's notes.
The following code fragment demonstrates the password to key
algorithm which can be used when mapping a password to an
authentication or privacy key. The calls to MD5 are as
documented in RFC1321 [RFC1321]
void password_to_key(
u_char *password, /* IN */
u_int passwordlen, /* IN */
u_char *agentID, /* IN - ptr to 12 octet long snmpEngineID */
u_char *key) /* OUT - caller's pointer to 16-byte buffer */
{
MD5_CTX MD;
u_char *cp, password_buf[64];
u_long password_index = 0;
u_long count = 0, i;
MD5Init (&MD); /* initialize MD5 */
/**********************************************/
/* Use while loop until we've done 1 Megabyte */
/**********************************************/
while (count < 1048576) {
cp = password_buf;
for (i = 0; i < 64; i++) {
/*************************************************/
/* Take the next byte of the password, wrapping */
/* to the beginning of the password as necessary.*/
/*************************************************/
*cp++ = password[password_index++ % passwordlen];
}
MDupdate (&MD, password_buf, 64);
count += 64;
}
MD5Final (key, &MD); /* tell MD5 we're done */
/*****************************************************/
/* Now localize the key with the agentID and pass */
/* through MD5 to produce final key */
/*****************************************************/
memcpy(password_buf, key, 16);
memcpy(password_buf+16, agentID, 12);
memcpy(password_buf+28, key, 16);
MD5Init(&MD);
MDupdate(&MD, password_buf, 44);
Wijnen/Harrington Expires September 1977 [Page 35]
Draft Local Processing Model (LPM) for SNMPng March 1997
MD5Final(key, &MD);
return;
}
Wijnen/Harrington Expires September 1977 [Page 36]
Draft Local Processing Model (LPM) for SNMPng March 1997
Table of Contents
0. Change Log 2
1. Introduction 3
1.1 Terminology 3
1.2 Local Processing 3
1.3 Local Configuration Datastore 4
2. Elements of the Model 5
2.1 SNMPng Group 5
2.2 SNMPng Quality of Service (Qos) 5
2.3 Contexts 5
2.4 SNMPng Scoped-PDU 6
2.5 Access Policy 7
2.6. Error Reporting 7
3. Elements of Procedure 8
3.1 Processing a Received Scoped-PDU 8
3.2 Generating a Notification 10
4. Definitions 12
5. Security Considerations 29
5.1 Recommended Practices 29
5.2 Defining Groups 29
5.3 Conformance 29
6. Editor's Addresses 30
7. Acknowledgements 30
8. References 31
A.1. Agent Installation Parameters 32
A.2. Password to Key Algorithm 35
Wijnen/Harrington Expires September 1977 [Page 37]