ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA
FACOLTA' DI INGEGNERIA - SEDE DI CESENA
LABORATORIO DI INFORMATICA
Network Management
3. Il linguaggio ASN.1
3.1 Introduzione, Object Identifier, Esempio
Claudio Salati
Copyright © 2001 by Claudio Salati
1
1. Linguaggio ASN.1:
vedi Lez. 3.2 e
TS48 sez. II.2
2. Sintassi di trasferimento BER:
vedi TS48 sez. II.3
3. Sistemi di programmazione ASN.1:
vedi TS48 sez. II.4
4. RO-notation:
vedi Lez. 3.2 e
TS48 sez. II.5
5. CMIP:
vedi TS48 sez. II.2
6. OBJECT IDENTIFIER per l'Internet Management Framework
vedi seguito capitolo
7. Sintassi Astratta SNMPv2:
vedi seguito capitolo
I punti 2 e 3 non sono coperti in questo corso
2
OBJECT IDENTIFIER e Internet Management Framework
itu(0)
iso(1)
standard(0)
joint-iso-ccitt(2)
identified-organization(3)
dod(6)
internet(1)
mgmt(2)
private(4)
mib-2(1)
enterprises(1)
snmpV2(6)
3
OBJECT IDENTIFIER e Internet Management Framework
internet OBJECT IDENTIFIER ::= { iso identified-organization(3) 6 1 }
mgmt OBJECT IDENTIFIER ::= { internet 2 }
mib-2 OBJECT IDENTIFIER ::= {mgmt 1 }
private OBJECT IDENTIFIER ::= { internet 4 }
enterprises OBJECT IDENTIFIER ::= { private 1 }
snmpV2 OBJECT IDENTIFIER ::= { internet 6 }
snmpModules OBJECT IDENTIFIER ::= {snmpV2 3 }
-- N.B.: nel gergo SNMP gli OBJECT IDENTIFIER sono di norma
-- scritti con una sintassi diversa da quella usata in ASN.1, e.g.:
-- internet = iso.3.6.1
-- snmpModules = internet.6.3 o anche iso.3.6.1.6.3
4
OBJECT IDENTIFIER e Internet Management Framework
OBJECT IDENTIFIER sono utilizzati per identificare:
•
I moduli che descrivono l'interfaccia manager-agent (moduli MIB).
•
I tipi di dati astratti (ADT) che costituiscono l'interfaccia manageragent.
(detti object-type e definiti nei moduli MIB. Anche nella TMN gli
OBJECT IDENTIFIER sono utilizzati per denominare le classi
definite nei modelli informativi)
•
Le notifiche spontanee agentmanager definite nell'interfaccia
manager-agent.
(definite nei moduli MIB . Anche nella TMN gli OBJECT
IDENTIFIER sono utilizzati per denominare le notifiche definite nei
modelli informativi)
5
OBJECT IDENTIFIER e Internet Management Framework
OBJECT IDENTIFIER sono utilizzati per identificare:
•
Le istanze di ADT dell'interfaccia manager-agent allocate sull'agent
(nella sua MIB) per descrivere lo stato del sistema gestito.
(dette object-instance. Notare che gli OBJECT IDENTIFIER
utilizzati per questo scopo sono univoci solo sul singolo sistema
gestito)
 I valori OBJECT IDENTIFIER ammissibili sono contenuti nel
sottoalbero internet, e costruiti secondo discipline ben definite
 per questo motivo l'uso improprio di OBJECT IDENTIFIER
per denominare le object-instance nelle MIB dei sistemi
gestiti non puo' portare a conflitti con il resto del mondo
 Viene estesa la semantica degli OBJECT IDENTIFIER
definendo sul tipo un ordinamento (totale) lessicografico
e.g.: 1.3.6.1 < 1.3.6.1.2, 1.3.6.1.2 < 1.3.6.1.4
6
SNMPv2 Abstract Syntax (RFC 1905)
- pag. 1
SNMPv2-PDU DEFINITIONS ::= BEGIN
IMPORTS
ObjectName, ObjectSyntax, Integer32
FROM SNMPv2-SMI; -- RFC 1902
-- ObjectName ::= OBJECT IDENTIFIER
7
SNMPv2 Abstract Syntax
- pag. 2
-- protocol data units
PDUs ::=
CHOICE {
get-request
get-next-request
get-bulk-request
response
set-request
inform-request
snmpV2-trap
report
}
GetRequest-PDU,
GetNextRequest-PDU,
GetBulkRequest-PDU,
Response-PDU,
SetRequest-PDU,
InformRequest-PDU,
SNMPv2-Trap-PDU,
Report-PDU,
8
SNMPv2 Abstract Syntax
- pag. 3
-- PDUs
GetRequest-PDU ::=
[0] IMPLICIT PDU
GetNextRequest-PDU ::=
[1] IMPLICIT PDU
Response-PDU ::=
[2] IMPLICIT PDU
SetRequest-PDU ::=
[3] IMPLICIT PDU
-- [4] is obsolete
GetBulkRequest-PDU ::=
[5] IMPLICIT BulkPDU
InformRequest-PDU ::=
[6] IMPLICIT PDU
SNMPv2-Trap-PDU ::=
[7] IMPLICIT PDU
-- Usage and precise semantics of Report-PDU are not presently
-- defined. Any SNMP administrative framework making use of
-- this PDU must define its usage and semantics.
Report-PDU ::=
[8] IMPLICIT PDU
-- il tipo (tag) del PDU e' utilizzato come opCode dell'operazione;
-- i parametri dell'operazione sono definiti dal contenuto del PDU
9
SNMPv2 Abstract Syntax
- pag. 3'
• Notare che il tipo (cioe' il tag) di ciascun PDU
rappresenta il codice operativo dell'istruzione descritta
dal PDU stesso.
• I parametri dell'istruzione sono rappresentati dal valore
dei campi del PDU.
10
SNMPv2 Abstract Syntax
- pag. 4
-- Generic PDU
PDU ::=
SEQUENCE {
request-id
error-status
error-index
variable-bindings
Integer32,
Error-status, -- sometimes ignored
INTEGER (0..max-bindings),
-- sometimes ignored
VarBindList
-- values are sometimes ignored
}
11
SNMPv2 Abstract Syntax
- pag. 5
-- Generic PDU: Error-status
Error-status ::=
INTEGER {
noError(0),
tooBig(1),
noSuchName(2),
-- for proxy compatibility
badValue(3),
-- for proxy compatibility
readOnly(4),
-- for proxy compatibility
genErr(5),
noAccess(6),
wrongType(7),
wrongLength(8),
wrongEncoding(9), wrongValue(10),
noCreation(11),
inconsistentValue(12),
resourceUnavailable(13),
commitFailed(14),
undoFailed(15),
authorizationError(16),
notWritable(17),
inconsistentName(18)
}
12
SNMPv2 Abstract Syntax
- pag. 6
-- Bulk PDU: Error-status
BulkPDU ::=
SEQUENCE {
request-id
non-repeaters
max-repetitions
variable-bindings
-- MUST be identical in
-- structure to PDU
Integer32,
INTEGER (0..max-bindings),
INTEGER (0..max-bindings),
VarBindList
-- values are ignored
}
13
SNMPv2 Abstract Syntax
- pag. 6
-- variable binding
VarBind ::=
SEQUENCE {
name
CHOICE {
value
ObjectName,
ObjectSyntax, -- DEFINED BY name
-- non ANY!
-- solo il sottoinsieme di tipi
-- semplici consentito da SMI
unSpecified
NULL, -- in retrieval requests
-- exceptions in responses:
noSuchObject
[0] IMPLICIT NULL,
noSuchInstance
[1] IMPLICIT NULL,
endOfMibView
[2] IMPLICIT NULL
}
}
14
SNMPv2 Abstract Syntax
- pag. 6
-- variable-binding list
max-bindings INTEGER ::= 2147483647
VarBindList ::= SEQUENCE (SIZE (0..max-bindings)) OF VarBind
END
15
Scarica

SNMPv2 Abstract Syntax