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