ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA
FACOLTA' DI INGEGNERIA - SEDE DI CESENA
LABORATORIO DI INFORMATICA
Network Management
10. Esercizi
Claudio Salati
Copyright © 2001 by Claudio Salati
1
IPOTESI
•
Ci si basa sempre su agent che soddisfano i requisiti di modulecompliance delle MIB supportate
•
L'insieme di MIB-schema supportato dall'agent e' descritto nelle
pagine seguenti
•
Viene anche riportato di seguito un sottoinsieme degli objectinstance contenuti nella MIB-istanza dell'agent
•
Si assume che un solo manager stia interagendo con l'agent
•
All'inizio di ogni scenario si assume che l'ultimo valore di
request-id utilizzato dal manager sia stato 637
•
Si assume di operare nel quadro dell'infrastruttura amministrativa
community-based, e che il community profile che ci riguarda
definisca un access mode read-write e una MIB view coincidente
con l'intera MIB dell'agent
•
Si assume che il nostro manager sia registrato come destinatario
di notifiche spontanee sull'agent
2
OBJECT IDENTIFIER utilizzati nelle MIB
internet = 1.3.6.1
Vedi:
mgmt (2)
mib-2 (1)
transmission (10)
system (1) -- RFC 1907
snmp (11) -- RFC 1907
•
RFC 1902, SNMPv2-SMI
•
RFC 1907, SNMPv2MIB
•
RFC 2233, ifMIB
interfaces (2) -- RFC 2233
ifMIB (31) -- RFC 2233
experimental (3)
private (4)
enterprises (1)
snmpV2 (6)
snmpModules (1)
snmpMIB (1) -- (RFC 1907)
snmpMIBObjects (1)
3
MIB-schema: SNMPv2-MIB, RFC 1907
mib-2 = 1.3.6.1.2.1
system (1)
sysDescr (1)
sysObjectID (2)
sysUpTime (3)
sysContact (4)
sysName (5)
sysLocation (6)
sysServices (7)
sysORLastChange (8)
sysORTable (9)
sysOREntry (1)
sysORIndex (1)
sysORID (2)
sysORDescr (3)
sysORUpTime (4)
4
MIB-schema: SNMPv2-MIB, RFC 1907
mib-2 = 1.3.6.1.2.1
snmp (11)
snmpInPkts (1)
snmpInBadVersions (3)
snmpInBadCommunityNames (4)
snmpInBadCommunityUses (5)
snmpInASPNarseErrs (6)
snmpEnableAuthenTraps (30)
snmpSilentDrops (31)
snmpProxyDrops (32)
5
MIB-schema: SNMPv2-MIB, RFC 1907
snmpMIBObjects = 1.3.6.1.6.3.1.1
snmpTrap (4)
snmpTrapOID (1)
snmpTrapEnterprise (3)
snmpTraps (5)
coldStart (1)
warmStart (2)
authenticationFailure (5)
snmpSet (6)
snmpSetSerialNo (1)
6
MIB-schema: ifMIB, RFC 2233
mib-2 = 1.3.6.1.2.1
ifMIB (31)
ifMIBObjects (1)
ifTableLastChange (5)
ifXTable (1)
ifXEntry (1)
ifName (1)
ifLinkUpDowTrapEnable (14)
ifHighSpeed (15)
ifConnectorPresent (17)
ifAlias (18)
...
ifstackTable (2)
ifStackEntry (1)
ifStackHigherLayer (1)
ifStackLowerLayer (2)
ifStackStatus (3)
7
MIB-schema: ifMIB, RFC 2233
mib-2 = 1.3.6.1.2.1
ifMIB (31)
ifMIBObjects (1)
ifStackLastChange (6)
ifRcvAddressTable (4)
ifRcvAddressEntry (1)
ifRcvAddressAddress (1)
ifRcvAddressStatus (2)
ifRcvAddressType (3)
8
MIB-schema: ifMIB, RFC 2233
mib-2 = 1.3.6.1.2.1
interfaces (2)
ifNumber (1)
ifTable (2)
ifEntry (1)
ifIndex (1)
ifDescr (2)
ifType (3)
ifSpeed (5)
ifPhysAddress (6)
ifAdminStatus (7)
ifOperStatus (8)
ifLastChange (9)
...
9
MIB-schema: ifMIB, RFC 2233
snmpMIBObjects = 1.3.6.1.6.3.1.1
snmpTraps (5)
linkDown (3)
linkUp (4)
10
MIB-istanza
sysDescr.0 = "INI NE for exercise purpose"
sysObjectID.0 = 1.3.6.1.4.1.1573.2
sysUpTime.0 = 1001000
sysContact.0 = ""
sysName.0 = "Cesena Dummy-1"
sysLocation.0 = "via Rasi e Spinelli"
sysSevices.0 = 72
sysORLastChange.0 = 0
sysORIndex.1 = 1
sysORID.1 = 1.3.6.1.4.1.1573.1
sysORDescr.1 = "basic capability"
sysORUpTime.1 = 0
sysORIndex.2 = 2
sysORID.2 = 1.3.6.1.4.1.1573.2.1
sysORDescr.2 = "INI NE capability"
sysORUpTime.2 = 0
snmpEnableAuthenTraps.0 = 1
snmpSetSerialNo.0 = 327
snmpInBadCommunityNames.0 = 39
snmpInBadCommunityUses.0 = 73
11
Scenario 1: lettura del nome amministrativo del sistema gestito
manager
reqPdu
rspPdu
agent
reqPdu PDUs ::= get-request {
request-id
638,
error-status
0,
error-index
0,
variable-bindings {
{
name sysName.0,
unSpecified NULL
}}
}
rspPdu PDUs ::= response {
request-id
638,
error-status
0,
error-index
0,
variable-bindings {
{
name
sysName.0,
value
simple string-value
"Cesena Dummy-1"
}}
}
12
Scenario 2: lettura del nome amministrativo del sistema gestito
manager
reqPdu
rspPdu
agent
reqPdu PDUs ::= get-next-request {
request-id
638,
error-status
0,
error-index
0,
variable-bindings {
{
name
sysName,
unSpecified
NULL
}}
}
rspPdu PDUs ::= response {
request-id
638,
error-status
0,
error-index
0,
variable-bindings {
{
name
sysName.0,
value
simple string-value
"Cesena Dummy-1"
}}
}
13
Scenario 3: lettura di piu' attributi del sistema gestito
manager
reqPdu
rspPdu
agent
reqPdu PDUs ::= get-request {
request-id
638,
error-status
0,
error-index
0,
variable-bindings {
{
name
sysName.0,
unSpecified
NULL
},
{
name
sysUpTime.0,
unSpecified
NULL
},
{
name
sysServices.0,
unSpecified
NULL
},
{
name
snmpSetSeriaNo.0,
unSpecified
NULL
}}}
-- continua nella prossima pagina
14
Scenario 3: lettura di piu' attributi del sistema gestito - continua
manager
reqPdu
rspPdu
agent
rspPdu PDUs ::= response {
request-id
638,
error-status
0,
error-index
0,
variable-bindings {
{
name sysName.0,
value simple string-value
"Cesena Dummy-1" },
{
name sysUpTime.0,
value application-wide time-ticks-value
1001000
},
{
name sysServices.0,
value simple integer-value
72
},
{
name snmpSetSeriaNo.0,
value simple integer-value
327
}}}
-- domanda: quali tipi di servizi di rete supporta
-- "Cesena Dummy-1"?
15
Scenario 4: scrittura del nome amministrativo del sistema gestito
manager
reqPdu
rspPdu
agent
reqPdu PDUs ::= set-request {
request-id
638,
error-status
0,
error-index
0,
variable-bindings {
{
name sysName.0,
value simple string-value
"Cesena Dummy-2" }}
}
rspPdu PDUs ::= response {
request-id
638,
error-status
0,
error-index
0,
variable-bindings {
{
name
sysName.0,
value
simple string-value
"Cesena Dummy-2" }}
}
16
Lettura degli oggetti scalari del systemGroup
 con una singola operazione di get-bulk
manager
reqPdu
rspPdu
agent
reqPdu PDUs ::= get-bulk-request {
request-id
638,
non-repeaters
0,
max-repetitions
8,
variable-bindings {
{
name
system,
unSpecified
NULL
}
1
}}
17
Lettura degli oggetti scalari del systemGroup
 con una singola operazione di get-bulk
2
rspPdu PDUs ::= response {
request-id
638,
error-status 0,
error-index
0,
variable-bindings
{
{
name sysDescr.0,
value simple string-value
manager
agent
"INI NE for exercise purpose"
},
{
name sysObjectID.0,
value simple objectID-value 1.3.6.1.4.1.1573.2 },
{
name sysUpTime.0,
reqPdu
value application-wide time-ticks-value 1001000 },
{
name sysContact.0,
rspPdu
value simple string-value ""
},
{
name sysName.0,
value simple string-value "Cesena Dummy-1" },
{
name sysLocation.0,
value simple string-value "via Rasi e Spinelli"
},
{
name sysServices.0,
value simple integer-value 72 },
{
name sysORLastChange.0,
value application-wide time-ticks-value 0 }}}
18
Scenario 5: completare il seguente scenario
manager
reqPdu
rspPdu
agent
1
reqPdu PDUs ::= get-bulk-request {
request-id
638,
non-repeaters
2,
max-repetitions
2,
variable-bindings {
{
name
sysUpTime,
unSpecified
NULL
},
{
name
sysORLastChange,
unSpecified
NULL
},
{
name
sysORID,
unSpecified
NULL
},
{
name
sysORDescr,
unSpecified
NULL
}}
}
19
Scenario 5: completamento dello scenario
2
rspPdu PDUs ::= response {
request-id
638,
error-status 0,
error-index
0,
variable-bindings
{
{
name sysUpTime.0,
value application-wide time-ticks-value 1001000 },
manager
agent
{
name sysORLastChange.0,
value application-wide time-ticks-value 0
},
{
name
sysORID.1,
value simple objectID-value 1.3.6.1.4.1.1573.1 },
reqPdu
{
name
sysORDescr.1,
value simple string-value "basic capability" },
rspPdu
{
name
sysORID.2,
value simple objectID-value 1.3.6.1.4.1.1573.2.1 },
{
name
sysORDescr.2,
value simple string-value "INI NE capability"
}
}
}
20
Scenario 6: completare il seguente scenario
1
reqPdu PDUs ::= get-request {
request-id
638,
error-status
0,
error-index
0,
variable-bindings {
{
name
1.3.6.1.2.1.1.8.0,
manager
agent
unSpecified
NULL
},
{
name
1.3.6.1.2.1.1.10.0,
unSpecified
NULL
},
reqPdu
{
name
1.3.6.1.2.1.1.9.1.2.1,
unSpecified
NULL
},
rspPdu
{
name
1.3.6.1.2.1.1.9.1.2.2,
unSpecified
NULL
},
{
name
1.3.6.1.2.1.1.9.1.2.3,
unSpecified
NULL
}}
}
21
Scenario 6: completamento dello scenario
2
rspPdu PDUs ::= response {
request-id
638,
error-status 0,
error-index
0,
variable-bindings
{
{
name sysORLastChange.0,
value application-wide time-ticks-value 0
},
manager
agent
{
name
1.3.6.1.2.1.1.10.0,
noSuchObject NULL },
{
name
sysORID.1,
value simple objectID-value 1.3.6.1.4.1.1573.1 },
reqPdu
{
name
sysORID.2,
value simple objectID-value 1.3.6.1.4.1.1573.2.1 },
rspPdu
{
name
sysORID.3,
noSuchInstance NULL }
}
}
22
Scenario 7: cosa sta succedendo? Completare lo scenario
manager
agent
1
Altro manager
req1Pdu
Completare lo scenario (aggiungendo e
descrivendo le opportune interazioni) tenendo
conto che:
1 req1Pdu e' una richiesta di un manager che
cita nel messaggio SNMP un community
name sconosciuto all'agent;
req2Pdu
2 req2Pdu PDUs ::= get-request {
request-id
???,
error-status
???,
error-index
???,
variable-bindings
{
{
name
1.3.6.1.2.1.11.4.0,
unSpecified NULL
},
{
name
1.3.6.1.2.1.11.5.0,
unSpecified NULL
}}}
req3Pdu
req4Pdu
-- continua alla prossima pagina
23
Scenario 7: cosa sta succedendo? Completare lo scenario
manager
agent
2
Altro manager
req2Pdu
3 req3Pdu PDUs ::= set-request {
request-id
???,
error-status
???,
error-index
???,
variable-bindings
{
{
name 1.3.6.1.2.1.11.30.0,
value simple integer-value 2
req3Pdu
4 req4Pdu e' una richiesta di un manager che
cita nel messaggio SNMP un community
name sconosciuto all'agent.
req1Pdu
}}}
 Completare anche i PDUs req2Pdu e req3Pdu
sostituendo il valore corretto dove compare
???
req4Pdu
 Nel caso in cui manchino informazioni per
specificare il valore di qualche campo di
PDUs, inventare dei valori ragionevoli e
congruenti
24
Scenario 7: Ecco cosa sta succedendo
manager
agent
1
Altro manager
req1Pdu
trap1Pdu
req2Pdu
rsp1Pdu
trap1Pdu PDUs ::= snmpV2-trap {
request-id
37,
error-status 0,
error-index
0,
variable-bindings {
{ name sysUpTime.0,
value application-wide time-ticks-value
1001010 },
{ name snmpTrapOID.0,
value simple objectID-value
authenticationFailure }}}
req3Pdu
-- continua alla pagina successiva
rsp2Pdu
req4Pdu
25
Scenario 7: Ecco cosa sta succedendo
manager
agent
2
Altro manager
req1Pdu
trap1Pdu
req2Pdu
rsp1Pdu
rsp1Pdu PDUs ::= response {
request-id
638,
error-status 0,
error-index
0,
variable-bindings {
{ name snmpInBadCommunityNames.0,
value application-wide counter-value 40 },
{ name snmpInBadCommunityUses.0,
value application-wide counter-value 73 }}}
rsp2Pdu PDUs ::= response {
request-id
639,
error-status 0,
error-index
0,
variable-bindings {
{ name snmpEnableAuthenTraps.0,
value simple integer-value disabled
req3Pdu
rsp2Pdu
}}}
req4Pdu
26
Scenario 8: cosa ha visto succedere il manager 2h46'50" fa'?
manager
trapPdu
agent
trapPdu PDUs ::= snmpV2-trap {
request-id
37,
error-status
0,
error-index 0,
variable-bindings
{
{ name sysUpTime.0,
value application-wide time-ticks-value 0 },
{ name snmpTrapOID.0,
value simple objectID-value coldStart }}}
27
Scarica

Scenario 1