# Tutorial su SNMP: come funzionano snmpwalk e snmpget

Il [Simple Network Management Protocol (SNMP)](https://www.ionos.it/digitalguide/server/know-how/snmp-simple-network-management-protocol/ "SNMP: Simple Network Management Protocol") è uno dei protocolli consolidati per la comunicazione nelle reti informatiche. Molti strumenti gestionali si rifanno a questo protocollo client-server pubblicato nel 1990, consentendo all’utente di monitorare e gestire in maniera centralizzata tutti i dispositivi di rete come router, switch o sistemi NAS. Gli strumenti snmpwalk e snmpget consentono **di reperire set di dati nei MIB** (Management Information Bases) di agenti SNMP selezionati, che sono installati di default nella maggior parte dei dispositivi Windows e Linux. In questo tutorial su SNMP scoprirete cosa sono in grado di fare le due applicazioni e come funzionano.

## Cosa c’è dietro agli strumenti snmpwalk e snmpget?

Gli strumenti da riga di comando snmpwalk e snmpget sono parte integrante della suite [Net-SNMP](https://www.net-snmp.org/ "Homepage ufficiale della suite SNMP Net-SNMP"), che consente l’implementazione e l’utilizzo di SNMP nelle reti IPv4 e IPv6. L’insieme di strumenti è disponibile per la maggior parte dei **sistemi UNIX e Linux** (nel sistema di gestione dei pacchetti) così come per **Microsoft Windows**, anche se la funzionalità delle singole applicazioni può variare leggermente da un sistema all’altro. snmpwalk e snmpget fanno parte delle soluzioni adibite **al reperimento di informazioni in dispositivi SNMP** tramite richieste singole GET (snmpget) o richieste multiple GETNEXT (snmpwalk).

[YouTube video](https://www.youtube.com/watch?v=Z4k1tjp5VZI)### snmpget: semplici query SNMP

Con l’applicazione snmpget è possibile accedere alle informazioni di un utente di rete attraverso il Simple Network Management Protocol. Per questo viene utilizzato **il tipo di messaggio SNMP “GET”**, che richiede uno specifico record nel sistema di destinazione. A tal fine occorre specificare l’host (nome e indirizzo IP), la stringa di comunità e/o le informazioni di autenticazione (SNMPv3), così come il relativo numero identificativo (Object Identifier, OID).

```none
snmpget [Opzioni] [Community-String/Informazioni-autenticazione] [Nome/indirizzo host] [Object Identifier]
```

### snmpwalk: richieste SNMP di MIB completi

Con lo strumento snmpwalk è possibile accedere non solo a un singolo record sul dispositivo SNMP, ma anche ai record successivi (rilevanti, ad esempio, per le tabelle). Per accedere a un blocco di informazioni completo, quindi a un **MIB completo**, snmpwalk usa **messaggi di tipo “GETNEXT”**, che richiedono informazioni dagli agenti finché il MIB relativo non è stato interamente completato. Relativamente alla sintassi, l’utilizzo di snmpwalk non è differente dalle query semplici con snmpget.

```none
snmpwalk [Opzioni] [Community-String/Informazioni-autenticazione] [Nome/indirizzo host] [OID]
```

## Tutorial su SNMP: comandi principali di snmpget e snmpwalk

In quanto strumenti da riga di comando, snmpwalk e snmpget possono essere gestiti facilmente dal terminale o dal prompt dei comandi. Se avete installato la suite Net-SNMP sul vostro sistema, avrete subito accesso alle informazioni di rete desiderate **aprendo le rispettive righe di comando**. In questo tutorial su SNMP abbiamo riassunto alcuni dei comandi fondamentali per entrambi i programmi.

N.B. Potete trovare i pacchetti per l’installazione di Net-SNMP nell’[area download del sito ufficiale](https://www.net-snmp.org/download.html "Pagina di download di net-snmp.org"). Dato che i file binari per Windows sono basati sulla versione 0.9.8r di OpenSSL, l’installazione non funziona per motivi di compatibilità su sistemi che hanno installata la versione 1.0 o versioni successive.

### Come funziona la query con snmpget

Per un accesso facilitato a **snmpget** è possibile, come primo passo, **richiamare il menu di aiuto dello strumento**. Quest’ultimo offre un elenco dei parametri disponibili, inclusa una breve spiegazione, e può essere aperto tramite i seguenti comandi:

```none
snmpget -h
```

[![Immagine: Menu di aiuto snmpget nel prompt dei comandi di Windows](https://www.ionos.it/digitalguide/fileadmin/_processed_/b/a/csm_snmp-tutorial-EN-1_07ef56e19f.webp "Menu di aiuto snmpget nel prompt dei comandi di Windows")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2019/snmp-tutorial-EN-1.png) Menu di aiuto snmpget nel prompt dei comandi di Windows Il comando per una query standard di un record selezionato dipende principalmente dalla **versione del protocollo** utilizzata. Questa viene specificata nei parametri e determina se vanno successivamente indicate la **community string** (SNMP1 e SNMPv2c) o il rispettivo **metodo di autenticazione** (authNoPriv, authPriv, noAuthNoPriv), comprese le relative informazioni di accesso (SNMPv3). Ad esempio, per richiedere se è disponibile un aggiornamento del firmware o del sistema operativo è possibile digitare uno dei 5 comandi seguenti, a seconda della versione:

**query snmpget via SNMPv1**:

```none
snmpget -v1 -c [Community-String] [Indirizzo IP dell’host] [OID per update-check]
```

**query snmpget via SNMPv2**:

```none
snmpget -v2c -c [Community-String] [Indirizzo IP dell’host] [OID per update-check]
```

**query snmpget via SNMPv3 (autenticazione, ma nessuna cifratura)**:

```none
snmpget -v3 -l authNoPriv -u [user name] -a MD5 -A [hash MD% della password dell’utente] [Indirizzo IP dell’host] [OID per update-check]
```

**query snmpget via SNMPv3 (autenticazione e cifratura)**:

```none
snmpget -v3 -l authPriv -u [user name] -a MD5 -A [user password] -x DES -X [password DES] [Indirizzo IP dell’host] [OID per update-check]
```

**query snmpget via SNMPv3 (nessuna autenticazione, nessuna cifratura)**:

```none
snmpget -v3 -l noAuthNoPriv -u [user name] [Indirizzo IP dell’host] [OID per update-check]
```

Il risultato della richiesta sarà un **valore numerico** che vi informa dello stato dell’aggiornamento. Il valore “1”, ad esempio, indica che è disponibile un aggiornamento, mentre il valore “2” si presenta quando il firmware o il sistema operativo sono già nell’ultima versione. Per poter leggere e interpretare al meglio i valori restituiti, potete caricare i **MIB richiesti sul computer** sul quale viene effettuata la query SNMP e copiare i relativi file nella directory */usr/share/snmp/mibs*. Per i sistemi Linux/UNIX è possibile scaricare a tale scopo un downloader MIB che vi può essere d’aiuto in questa fase.

```none
sudo apt install snmp-mibs-downloader
```

### Come funziona la query di MIB completi con snmpwalk

Anche snmpwalk vi dà la possibilità di richiamare un elenco dei parametri richiesti e disponibili. Questo **menu di aiuto** compare dopo l’inserimento del seguente comando:

```none
snmpwalk -h
```

[![Immagine: Prompt dei comandi di Windows: menu opzioni di snmpwalk](https://www.ionos.it/digitalguide/fileadmin/_processed_/6/5/csm_snmp-tutorial-EN-2_b2ca6cd863.webp "Prompt dei comandi di Windows: menu opzioni di snmpwalk")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2019/snmp-tutorial-EN-2.jpg) Prompt dei comandi di Windows: menu opzioni di snmpwalk Anche per quanto riguarda il reperimento dei dati, snmpwalk non si differenzia molto da snmpget. La differenza consiste principalmente nell’**esecuzione dei comandi**: mentre snmpget restituisce solo un singolo valore per l’OID richiesto o visualizza un messaggio di errore, nel caso in cui a un numero identificativo non corrisponda alcun oggetto, snmpwalk attraversa tutti i sottonodi. Se il numero identificativo del MIB corrispondente è noto, verrà visualizzato un elenco dettagliato delle informazioni di sistema rilevanti. Come nelle richieste singole GET, i comandi necessari dipendono dalla **versione di protocollo**:

**query snmpwalk via SNMPv1**:

```none
snmpwalk -v1 -c [Community-String] [Indirizzo IP dell’host] [OID del sistema di informazione MIB]
```

**query snmpwalk via SNMPv2**:

```none
snmpwalk -v2c -c [Community-String] [Indirizzo IP dell’host] [OID del sistema di informazione MIB]
```

**query snmpwalk via SNMPv3 (autenticazione, ma nessuna cifratura)**:

```none
snmpwalk -v3 -l authNoPriv -u [user name] -a MD5 -A [user password] [Indirizzo IP dell’host] [OID del sistema di informazione MIB]
```

**query snmpwalk via SNMPv3 (autenticazione e cifratura)**:

```none
snmpwalk -v3 -l authPriv -u [user name] -a MD5 -A [user password] -x DES -X [Password DES] [Indirizzo IP dell’host] [OID del sistema di informazione MIB]
```

**query snmpwalk via SNMPv3 (nessuna autenticazione, nessuna cifratura)**:

```none
snmpwalk -v3 -l noAuthNoPriv -u [user name] [Indirizzo IP dell’host] [OID del sistema di informazione MIB]
```

## In sintesi: snmpwalk e snmpget sono semplici strumenti utilizzati per effettuare query SNMP

snmpwalk e snmpget vi consentono di reperire i dati di rete desiderati tramite il Simple Network Management Protocol. Entrambi gli strumenti da riga di comando, essendo parte della suite Net-SNMP, si installano velocemente nel sistema e sono facili da utilizzare. Questo tutorial ha illustrato quanto sia semplice accedere a una singola informazione o a un blocco completo di informazioni, se si conoscono **l’indirizzo IP dell’agente SNMP** e il rispettivo **Object Identifier**.


This is a markdown version of: [https://www.ionos.it/digitalguide/server/know-how/tutorial-su-snmp/](https://www.ionos.it/digitalguide/server/know-how/tutorial-su-snmp/) for AI/LLM consumption.