Come clonare e simulare dispositivi di rete su Linux
TL;DR
Questo articolo spiega come clonare e simulare dispositivi SNMP su Linux usando strumenti comuni e gratuiti (es. Verax SNMP Agent Simulator e NET-SNMP). Copriamo installazione, estrazione dei record SNMP da un dispositivo fisico, configurazione del simulatore, avvio e integrazione con un sistema di monitoraggio. Include checklist, suggerimenti alternativi, procedure di verifica e risoluzione dei problemi.
Introduzione
Questo tutorial mostra come clonare e simulare dispositivi di rete su una macchina Linux. La simulazione è utile per stress test, collaudi di monitoraggio, audit e formazione senza toccare l’hardware di produzione.
La guida è suddivisa in 4 passi: installazione, estrazione dei record SNMP, aggiunta del dispositivo simulato e avvio della simulazione. In fondo trovi checklist, modalità alternative, casi di errore e un mini-runbook di troubleshooting.
Requisiti e strumenti
- Distribuzioni Linux a 32 o 64 bit (es. SuSE, RedHat Enterprise, Debian) su architetture i386 o x86_64.
- Connessione di rete TCP/IP.
- Java 1.6 o superiore installato.
- NET-SNMP (per snmpwalk e altri strumenti).
- Verax SNMP Agent Simulator (o equivalente).
- Software di monitoraggio di rete (es. Zabbix, Nagios, PRTG).
Nota: SNMP usa tipicamente UDP porta 161 per richieste e 162 per trap. SNMPv3 offre autenticazione e cifratura; SNMPv1/v2c usano community string in chiaro.
Panoramica della procedura
- Installare il simulatore SNMP (es. Verax).
- Estrarre un file di registro SNMP (snmpwalk) dal dispositivo fisico.
- Aggiungere il file e un indirizzo IP virtuale alla configurazione del simulatore.
- Avviare il simulatore e collegare il sistema di monitoraggio.
STEP 1: Installare il simulatore SNMP
In questo esempio usiamo Verax SNMP Agent Simulator. La procedura generale è simile per altri simulatori.
- Scarica e decomprimi il pacchetto del simulatore (es. vxsnmpsimulator-1.3.1.zip).
- Directory consigliata di installazione: /usr/local/vxsnmpsimulator
- Crea e sposta il file simulator.conf in /etc/verax.d/
- Apri simulator.conf e imposta SIMULATOR_HOME sul percorso di installazione:
SIMULATOR_HOME="/usr/local/vxsnmpsimulator"- Nel medesimo file, definisci JRE_HOME puntando alla cartella del tuo Java:
JRE_HOME=/usr/local/java/jdk1.6.0_14/bin/- Verifica il nome dell’interfaccia di rete primaria usata per creare alias (es. eth1). L’interfaccia primaria deve esistere prima di avviare il simulatore:
PRIMARY_INTERFACE='eth1'- Copia lo script simulatord in /etc/init.d
- Imposta i permessi di esecuzione per gli script necessari:
- chmod +x /etc/init.d/simulatord
- chmod +x /usr/local/vxsnmpsimulator/conf/stop
- chmod +x /usr/local/vxsnmpsimulator/conf/vlan_up
- chmod +x /usr/local/vxsnmpsimulator/conf/vlan_down
Important: se il tuo sistema usa systemd, puoi adattare lo script di avvio in un servizio systemd invece di /etc/init.d.
Note su permessi e sicurezza
- Esegui l’installazione con un account amministrativo (root o sudo).
- Assicurati che la macchina che ospita il simulatore sia isolata dalla rete di produzione se stai creando indirizzi IP virtuali che possono confondere il routing.
STEP 2: Estrarre i file di record SNMP dal dispositivo fisico
Per creare una copia fedele dei valori SNMP di un dispositivo usiamo snmpwalk (fornito da NET-SNMP).
- Installa NET-SNMP (distribuzione dipendente). Esempio per CentOS/RHEL:
yum install net-snmp-utils- Genera un file di record SNMP con snmpwalk. Esempio:
snmpwalk -On -Oe -OU -v2c -c public 192.168.100.8 > /root/cisco-snmprecordfile.txtIn questo comando 192.168.100.8 è l’IP del dispositivo fisico (es. uno switch Cisco) e public è la community string. Il file risultante contiene OID e valori che rappresentano lo stato dell’agente reale.
- Copia il file generato nella directory del simulatore sotto device, es.: /usr/local/vxsnmpsimulator/device/
Important: se il dispositivo usa SNMPv3, usa gli argomenti appropriati per autenticazione e cifratura (user, auth, priv).
STEP 3: Aggiungere il dispositivo alla configurazione del simulatore
Apri vxsnmpsimulator/conf/devices.conf e aggiungi un record
Esempio di blocco XML da inserire:
Linee guida pratiche:
- L’IP configurato deve essere non in uso sulla rete reale (virtuale) e raggiungibile dalla tua infrastruttura di monitoraggio.
- Puoi aggiungere più
con lo stesso file se vuoi simulare più istanze dello stesso modello ma con IP diversi.
STEP 4: Avviare la simulazione
Prima di avviare, verifica che la porta 161 UDP non sia occupata da altri processi. Se necessario, arresta il demone SNMP nativo.
- Avvia il demone del simulatore:
service simulatord start- Apri la console di gestione:
service simulatord console- La console di gestione chiederà i dettagli di connessione. Se il servizio è sulla stessa macchina della console, conferma i parametri predefiniti premendo “y” quando richiesto: Do you want to connect to default simulator server? [y/n]
Nota: i parametri predefiniti sono 127.0.0.1:43500.
- Usa il comando SHOW nella console per elencare i dispositivi simulati.

Ben fatto: ora lo switch cisco è simulato all’IP 192.168.160.34.
Aggiungere il dispositivo simulato al sistema di monitoraggio
Assicurati che il simulatore sia in esecuzione (verifica con SHOW). Poi aggiungi il dispositivo simulato al tuo software di monitoraggio come faresti con un dispositivo reale, usando l’indirizzo IP simulato e la stessa configurazione SNMP (versione, community o credenziali v3).
Checklist rapida (da usare prima di avviare)
- Java installato e JRE_HOME corretto
- SIMULATOR_HOME puntato alla directory di installazione
- File cisco-snmprecordfile.txt presente in device/
- IP virtuale non in conflitto sulla rete
- Porta UDP 161 libera
- Permessi eseguibili impostati sugli script
- Console di gestione raggiungibile
Controlli di verifica e test di accettazione
Criteri di accettazione per considerare la simulazione pronta:
- Il comando SHOW elenca il dispositivo con l’IP configurato.
- Il sistema di monitoraggio interroga il dispositivo simulato e riceve risposte coerenti.
- I valori critici (es. ifOperStatus, ifAdminStatus, sysUpTime) riflettono i dati presenti nel file di registro.
Test di smoke:
- snmpget -v2c -c public 192.168.160.34 sysUpTime.0
- Verifica che i grafici o trigger del monitor funzionino come previsto.
Alternative e approcci diversi
- snmpsim (progetto Python): offre un simulatore open source alternativo e può leggere file di registrazione creati con snmpwalk.
- Creare uno script che converta output di snmpwalk in formati diversi se il simulatore richiede un layout specifico.
- Usare namespace di rete e container (Docker) per isolare i dispositivi simulati e gestire le interfacce virtuali in modo più ripetibile.
Vantaggi dell’approccio con Verax:
- Interfaccia di gestione centralizzata.
- Supporto per più dispositivi con file singoli.
Limiti comuni:
- Alcuni simulatori replicano solo valori statici; non tutti emulano correttamente eventi dinamici o cambi di stato complessi.
Quando la simulazione può fallire o ingenerare problemi
- Indirizzi IP virtuali che causano conflitti ARP o routing con la rete reale.
- Porta 161 occupata da snmpd nativo o firewall che blocca UDP 161.
- Differenze tra il modello reale e il file di registro (MIB non presente o OID mancanti).
- SNMPv3 mal configurato (errore di autenticazione o cifratura).
Mitigazioni:
- Isolare il laboratorio di simulazione su VLAN o rete di test.
- Usare iptables/nftables per limitare l’accesso al simulatore.
- Testare ogni dispositivo simulato con un set minimo di OID critici.
Runbook di troubleshooting rapido
- Verifica che simulatord sia attivo: ps aux | grep simulatord
- Controlla i log del simulatore in /var/log/verax/ o nella directory di installazione.
- Assicurati che UDP 161 sia libero: ss -lun | grep :161
- Se la console non si connette, verifica la porta TCP 43500 e che il servizio sia in ascolto.
- Riprova lo snmpwalk sul dispositivo simulato per confermare che risponde.
- In caso di valori mancanti, apri il file cisco-snmprecordfile.txt e verifica la presenza degli OID richiesti.
Ruoli e responsabilità (checklist per team)
- Network Engineer: estrae snmpwalk dal dispositivo fisico e verifica OID critici.
- Sysadmin: installa il simulatore, imposta permessi e servizi di avvio.
- Monitoring Engineer: aggiunge il dispositivo al sistema di monitoraggio e verifica trigger/alert.
- Security Officer: approva l’accesso e verifica l’isolamento della rete di test.
Piccola metodologia per simulazioni ripetibili
- Versionamento dei file di registro (git): salva ogni snmprecord con tag e data.
- Template devices.conf: mantieni un template e genera le entry con script per evitare errori manuali.
- Deploy in container: confeziona il simulatore in Docker con una rete dedicata per test ripetibili.
Privacy e sicurezza
- I file di registro SNMP possono contenere informazioni sensibili (nomi host, descrizioni, interfacce). Conserva i file in repository sicuri e limita l’accesso.
- Per test che coinvolgono dati di produzione, valuta l’anonimizzazione dei record o l’uso di dataset sintetici.
Glossario in una riga
- SNMP: protocollo di monitoraggio agent-manager per dispositivi di rete.
- OID: identificatore di oggetto usato per leggere/scrivere valori SNMP.
- snmpwalk: comando che cammina la MIB di un agente e restituisce OID e valori.
- Community string: password semplificata per SNMPv1/v2c.
Riepilogo finale
Simulare dispositivi SNMP su Linux consente test, formazione e debug senza toccare la produzione. I passi principali sono: installare il simulatore, estrarre i record reali con snmpwalk, aggiungere il file e un IP virtuale alla configurazione, avviare il simulatore e integrare il dispositivo nel sistema di monitoraggio. Usa checklist, isola la rete di test e verifica i criteri di accettazione prima di considerare la simulazione pronta.
Note importanti:
- Controlla sempre che le IP virtuali non causino conflitti ARP.
- Per requisiti di sicurezza elevati preferisci SNMPv3.
Grazie: ora sai come clonare e simulare più dispositivi o intere reti SNMP su Linux.