Je voudrais obtenir les tables ARP d'un commutateur vers un serveur syslog (Ubuntu 12.04 LTS). J'ai fait quelques recherches sur la façon de le faire et j'ai décidé d'utiliser SNMP. J'ai fait quelques recherches et je sais que mon serveur sera le gestionnaire tandis que le commutateur agira en tant qu'agent. Mon problème est que je ne suis pas tout à fait sûr du processus pour obtenir les tables arp et les diriger vers la base de données mysql de mon serveur.
Réponses
Trop de publicités?Il existe un certain nombre de solutions logicielles capables d'interroger les périphériques réseau via SNMP et de stocker leurs tables d'adresses MAC dans une base de données SQL. En général, leurs fonctionnalités vont bien au-delà de ce que vous demandez dans votre question.
Avant d'installer le logiciel sur un serveur, il est important de noter que vous devez disposer d'un accès administratif aux périphériques du réseau ou, à tout le moins, de la permission d'interroger les périphériques en question. Vous, ou votre équipe d'assistance informatique, devrez configurer les commutateurs avec une chaîne SNMP autorisée et autoriser les requêtes SNMP depuis l'IP/sous-réseau du serveur sur lequel il réside. La configuration de ces dispositifs dépend du fournisseur et dépasse le cadre apparent de votre question.
Un exemple d'un tel outil disponible pour Ubuntu est Netdisco .
Par leur site web, Netdisco est un logiciel qui maintient "Informations de configuration et données de connexion pour les périphériques réseau [qui sont] ... récupérées via SNMP. Les données sont stockées dans une base de données SQL pour des raisons d'évolutivité et de rapidité. Les protocoles de topologie de couche 2 tels que CDP et LLDP permettent la découverte automatique de la topologie du réseau."
Bien qu'il existe un paquetage disponible pour l'installation à partir des dépôts Ubuntu (cf. netdiso-common
, netdisco-backend
y netdisco-frontend
), elle est quelque peu dépassée. Une version plus récente peut être installée depuis les sources sur leur site .
Un autre exemple serait IPPlan qui se concentre sur la gestion des adresses IP (IPAM), le DNS et la gestion des circuits. IPPLAN interroge via le paquet ucd-snmp et NMAP et peut mapper les adresses IP aux adresses MAC dans une variété de bases de données SQL.
Vous pouvez également jeter un coup d'œil à Carte de commutation .
Bien qu'il ne stocke pas ses données en SQL, il crée des fichiers CSV qui peuvent ensuite être versés dans une base de données SQL, si on le souhaite.
Il existe un certain nombre d'autres solutions (commerciales et gratuites). Je ne les mentionne que parce que j'ai une expérience directe de l'installation, de la configuration et de la gestion de ces logiciels.
Les adresses MAC sont stockées dans la MIB .1.3.6.1.2.1.17.4.3.1.2
Donc, vous pouvez faire quelque chose comme ça :
snmpwalk -v2c -c <community> <SwitchIP> .1.3.6.1.2.1.17.4.3.1.2
Vous obtiendrez un dump avec ces numéros suivis des six mots de l'adresse MAC sous forme de nombres entiers. C'est donc à vous de récupérer les 6 derniers entiers, de les convertir en hexadécimal et enfin de les stocker dans votre base de données.
La réponse vous indiquera également dans quel port le commutateur "voit" l'adresse MAC. Exemple :
iso.3.6.1.2.1.17.4.3.1.2.208.39.136.84.36.11 = INTEGER: 25
Cela signifie que l'adresse MAC 208.39.136.84.36.11 (convertissez-la en hexagone si vous voulez) est accessible par le port 25 de ce commutateur.