4. The Structure of the MIB Modules
Ci sono tre moduli MIB separati descritti in questo documento:
- SNMP-TARGET-MIB: La MIB dei management target
- SNMP-NOTIFICATION-MIB: La MIB delle notifiche
- SNMP-PROXY-MIB: La MIB del proxy
L'uso di queste MIB da parte di particolari tipi di applicazioni è descritto più avanti in questo documento:
- L'uso della management target MIB e della notification MIB nelle applicazioni notification originator è descritto nella sezione 5.
- L'uso della notification MIB per filtrare le notifiche nelle applicazioni notification originator è descritto nella sezione 6.
- L'uso della management target MIB e della proxy MIB nelle applicazioni di inoltro proxy è descritto nella sezione 7.
4.1. Il Modulo Management Target MIB
Il modulo SNMP-TARGET-MIB contiene oggetti per definire i management target. Consiste di due tabelle e dichiarazioni di conformità/compliance.
4.1.1. Panoramica della Struttura
L'SNMP-TARGET-MIB fornisce:
-
snmpTargetAddrTable: Contiene informazioni su domini di trasporto e indirizzi. Include snmpTargetAddrTagList, che fornisce un meccanismo per raggruppare le voci.
-
snmpTargetParamsTable: Contiene informazioni sulla versione SNMP e informazioni di sicurezza da utilizzare quando si inviano messaggi a particolari domini di trasporto e indirizzi.
La Management Target MIB è destinata a fornire un meccanismo di uso generale per specificare indirizzi di trasporto e per specificare parametri di messaggi SNMP generati da un'entità SNMP. Viene utilizzata all'interno di questo documento per la generazione di notifiche e per l'inoltro proxy. Tuttavia, può essere utilizzata per altri scopi.
4.1.2. Liste di Tag
L'oggetto snmpTargetAddrTagList viene utilizzato per raggruppare le voci nella snmpTargetAddrTable. Il valore di questo oggetto contiene una lista di valori di tag che vengono utilizzati per selezionare indirizzi target da utilizzare per una particolare operazione.
Un valore di tag è una stringa arbitraria di ottetti, ma non può contenere un carattere delimitatore. I caratteri delimitatori sono definiti come uno dei seguenti caratteri:
- Un carattere spazio ASCII (0x20)
- Un carattere TAB ASCII (0x09)
- Un carattere carriage return (CR) ASCII (0x0D)
- Un carattere line feed (LF) ASCII (0x0A)
I caratteri delimitatori vengono utilizzati per separare i valori di tag in una lista di tag. Un oggetto di questo tipo può contenere:
- Una stringa di ottetti di lunghezza zero che rappresenta una lista vuota, o
- Un singolo valore di tag (nessun carattere delimitatore consentito), o
- Una lista di valori di tag, separati da singoli caratteri delimitatori
Per una lista di valori di tag, questi vincoli implicano:
- Non può esserci un carattere delimitatore iniziale o finale
- Non possono esserci caratteri delimitatori adiacenti multipli
4.1.3. Oggetti Chiave in SNMP-TARGET-MIB
snmpTargetSpinLock
Questo oggetto viene utilizzato per facilitare la modifica delle voci di tabella nel modulo SNMP-TARGET-MIB da parte di più manager, in particolare quando si modifica l'oggetto snmpTargetAddrTagList.
snmpTargetAddrTable
Una tabella di indirizzi di trasporto da utilizzare nella generazione di messaggi SNMP. Ogni voce contiene:
- snmpTargetAddrName: Identificatore univoco locale per questa voce
- snmpTargetAddrTDomain: Tipo di trasporto (ad es. snmpUDPDomain)
- snmpTargetAddrTAddress: Indirizzo di trasporto
- snmpTargetAddrTimeout: Tempo massimo di andata e ritorno previsto
- snmpTargetAddrRetryCount: Numero di tentativi per messaggi non consegnati
- snmpTargetAddrTagList: Lista di valori di tag per raggruppare le voci
- snmpTargetAddrParams: Riferimento alla voce snmpTargetParamsTable
- snmpTargetAddrStorageType: Tipo di storage per questa voce
- snmpTargetAddrRowStatus: Stato della riga per creare/eliminare voci
snmpTargetParamsTable
Contiene parametri SNMP da utilizzare quando si generano messaggi SNMP a particolari target. Ogni voce contiene:
- snmpTargetParamsName: Identificatore univoco locale
- snmpTargetParamsMPModel: Message Processing Model (0=SNMPv1, 1=SNMPv2c, 3=SNMPv3)
- snmpTargetParamsSecurityModel: Security Model (1=SNMPv1, 2=SNMPv2c, 3=USM)
- snmpTargetParamsSecurityName: Security name (community o nome utente)
- snmpTargetParamsSecurityLevel: Security level (noAuthNoPriv, authNoPriv, authPriv)
- snmpTargetParamsStorageType: Tipo di storage per questa voce
- snmpTargetParamsRowStatus: Stato della riga per creare/eliminare voci
4.2. Il Modulo Notification MIB
Il modulo SNMP-NOTIFICATION-MIB contiene oggetti per configurare la generazione di notifiche. Contiene tre tabelle.
4.2.1. Panoramica della Struttura
L'SNMP-NOTIFICATION-MIB fornisce:
- snmpNotifyTable: Seleziona i management target per ricevere notifiche basate su valori di tag.
- snmpNotifyFilterProfileTable: Associa profili di filtro con nomi di parametri target.
- snmpNotifyFilterTable: Definisce regole di filtro per la consegna selettiva delle notifiche.
4.2.2. Oggetti Chiave in SNMP-NOTIFICATION-MIB
snmpNotifyTable
Seleziona i management target che dovrebbero ricevere notifiche, così come il tipo di notifica (trap o inform) da generare. Ogni voce contiene:
- snmpNotifyName: Identificatore univoco locale
- snmpNotifyTag: Valore di tag da confrontare con snmpTargetAddrTagList
- snmpNotifyType: trap(1) o inform(2)
- snmpNotifyStorageType: Tipo di storage per questa voce
- snmpNotifyRowStatus: Stato della riga per creare/eliminare voci
snmpNotifyFilterProfileTable
Associa nomi di profili di filtro con nomi di parametri target. Ogni voce contiene:
- snmpTargetParamsName: Indice, riferisce snmpTargetParamsTable
- snmpNotifyFilterProfileName: Nome del profilo di filtro
- snmpNotifyFilterProfileStorType: Tipo di storage
- snmpNotifyFilterProfileRowStatus: Stato della riga
snmpNotifyFilterTable
Definisce regole di filtro utilizzate per determinare quali notifiche dovrebbero essere inviate a quali management target. Ogni voce contiene:
- snmpNotifyFilterProfileName: Indice, riferisce il profilo di filtro
- snmpNotifyFilterSubtree: Indice, identificatore di oggetto del sottoalbero
- snmpNotifyFilterMask: Maschera di bit per il matching OID
- snmpNotifyFilterType: included(1) o excluded(2)
- snmpNotifyFilterStorageType: Tipo di storage
- snmpNotifyFilterRowStatus: Stato della riga
4.3. Il Modulo Proxy MIB
Il modulo SNMP-PROXY-MIB contiene oggetti per definire traduzioni utilizzate dalle applicazioni proxy forwarder. Consiste di una singola tabella.
4.3.1. Panoramica della Struttura
L'SNMP-PROXY-MIB fornisce:
- snmpProxyTable: Definisce regole di traduzione per l'inoltro proxy di messaggi SNMP.
4.3.2. Oggetti Chiave in SNMP-PROXY-MIB
snmpProxyTable
Definisce parametri di traduzione utilizzati dai proxy forwarder. Ogni voce contiene:
- snmpProxyName: Identificatore univoco locale
- snmpProxyType: Tipo di operazione proxy:
- read(1): Inoltra PDU di classe read
- write(2): Inoltra PDU di classe write
- trap(3): Inoltra notifiche trap
- inform(4): Inoltra notifiche inform
- snmpProxyContextEngineID: Context engine ID in entrata da confrontare
- snmpProxyContextName: Context name in entrata da confrontare
- snmpProxyTargetParamsIn: Riferimento a snmpTargetParamsTable per parametri di messaggio in entrata
- snmpProxySingleTargetOut: Per inoltro a target singolo, specifica il nome dell'indirizzo target
- snmpProxyMultipleTargetOut: Per inoltro a target multipli, specifica il valore di tag
- snmpProxyStorageType: Tipo di storage per questa voce
- snmpProxyRowStatus: Stato della riga per creare/eliminare voci
4.4. Conformità e Compliance
Ogni modulo MIB include:
- Gruppi di Oggetti: Raggruppamenti logici di oggetti correlati
- Dichiarazioni di Compliance: Definiscono quali oggetti devono essere implementati per la conformità
- Module Compliance: Specifica i requisiti minimi di implementazione
Compliance SNMP-TARGET-MIB
Le implementazioni devono supportare:
- snmpTargetBasicGroup: Oggetti di base per indirizzi e parametri target
- snmpTargetResponseGroup: Oggetti per gestione risposta/retry (per command generator e notification originator)
Compliance SNMP-NOTIFICATION-MIB
Le implementazioni devono supportare:
- snmpNotifyGroup: Oggetti di selezione notifica di base
- snmpNotifyFilterGroup: Oggetti di filtraggio notifica (opzionale ma raccomandato)
Compliance SNMP-PROXY-MIB
Le implementazioni devono supportare:
- snmpProxyGroup: Tutti gli oggetti di traduzione proxy
4.5. Modelli di Utilizzo
Modello 1: Configurazione Notifica Semplice
Per inviare notifiche trap a una stazione di gestione:
- Creare una voce in snmpTargetAddrTable specificando l'indirizzo della stazione di gestione
- Creare una voce in snmpTargetParamsTable specificando la versione SNMP e i parametri di sicurezza
- Creare una voce in snmpNotifyTable con un tag che corrisponda a snmpTargetAddrTagList
Modello 2: Notifiche Filtrate
Per inviare solo notifiche specifiche a una stazione di gestione:
- Configurare il Modello 1 (Configurazione Notifica Semplice)
- Creare una voce in snmpNotifyFilterProfileTable associando un profilo di filtro con i parametri target
- Creare voci in snmpNotifyFilterTable definendo quali sottoalberi OID includere/escludere
Modello 3: Inoltro Proxy
Per inoltrare richieste attraverso un proxy:
- Creare voci in snmpTargetAddrTable e snmpTargetParamsTable per il motore SNMP target
- Creare una voce in snmpProxyTable specificando:
- Il contesto in entrata e i parametri di sicurezza da confrontare
- L'indirizzo target in uscita (tramite snmpProxySingleTargetOut)
- Il tipo di proxy (read, write, trap o inform)
4.6. Sicurezza e Controllo degli Accessi
I moduli MIB definiti in questo documento contengono oggetti che hanno un MAX-ACCESS di read-write e/o read-create. L'impostazione di questi oggetti può:
- Reindirizzare il traffico SNMP a destinazioni non autorizzate
- Modificare i parametri di sicurezza, potenzialmente indebolendo la sicurezza
- Modificare le regole di filtraggio, potenzialmente divulgando informazioni sensibili
Si RACCOMANDA che:
- L'accesso a questi oggetti MIB sia limitato utilizzando VACM (View-based Access Control Model) come definito in RFC 3415
- Solo gli amministratori di sicurezza autorizzati abbiano accesso in scrittura a questi oggetti
- SNMPv3 con autenticazione e crittografia (authPriv) sia utilizzato quando si modificano questi oggetti
- Le modifiche a questi oggetti siano registrate per scopi di audit
4.7. Note di Implementazione
Tipi di Storage
Gli oggetti *StorageType in ogni tabella permettono alle implementazioni di controllare la persistenza della configurazione:
- volatile: Configurazione persa al riavvio (predefinito)
- nonVolatile: Configurazione persiste attraverso i riavvii
- permanent: Configurazione non può essere eliminata
- readOnly: Configurazione è in sola lettura (non può essere modificata tramite SNMP)
- other: Storage specifico dell'implementazione
Stato della Riga
Gli oggetti *RowStatus seguono la convenzione testuale standard RowStatus (RFC 2579):
- Usare createAndGo per creare e attivare una voce in un solo passo
- Usare createAndWait per creare una voce e impostare altre colonne prima dell'attivazione
- Usare active per indicare che una voce è operativa
- Usare notInService per disattivare temporaneamente una voce
- Usare notReady (sola lettura) per indicare che una voce non può ancora essere resa attiva
- Usare destroy per eliminare una voce
Considerazioni sull'Indice
La parola chiave IMPLIED viene utilizzata in diversi indici di tabella (ad es. snmpTargetAddrName). Questo significa:
- La lunghezza dell'indice non è codificata separatamente nell'OID
- La stringa dell'indice è di lunghezza variabile e consuma il resto dell'OID
- Solo un indice IMPLIED può apparire per tabella, e deve essere l'ultimo
Questa scelta progettuale permette nomi più lunghi e descrittivi senza l'overhead della codifica separata della lunghezza.