Je voudrais obtenir des tables ARP d'un commutateur à 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 comme un agent. Mon problème est que je ne suis pas tout à fait sûr du processus d'obtention des tables d'arp et de les avoir dirigées vers la base de données mysql sur mon serveur.
Il existe un certain nombre de solutions logicielles qui peuvent interroger les périphériques réseau via SNMP et stocker leurs tables d'adresses MAC dans une base de données SQL. Généralement, leur fonctionnalité comprend beaucoup plus que ce que vous demandez dans votre question.
Avant d'installer le logiciel sur un serveur, il est important de noter que vous devez avoir un accès administratif aux périphériques réseau ou, à tout le moins, l'autorisation d'interroger les périphériques en question. Soit vous, soit votre personnel de support informatique, devrez configurer les commutateurs avec la chaîne SNMP autorisée ainsi que les requêtes SNMP autorisées à partir du serveur IP/sous-réseau sur lequel il réside. La configuration de ces appareils dépend du fournisseur et dépasse la portée apparente de votre question.
Un exemple d'un tel outil disponible pour Ubuntu est Netdisco .
Selon leur site Web, Netdisco est un progiciel qui conserve "les informations de configuration et les données de connexion pour les périphériques réseau [c'est-à-dire] ... récupérées via SNMP. Les données sont stockées à l'aide d'une base de données SQL pour l'évolutivité et 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'un package soit disponible pour l'installation à partir des référentiels Ubuntu (voir netdiso-common
, netdisco-backend
, et netdisco-frontend
) il est quelque peu dépassé. Une version plus récente peut être installée à partir des 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 package ucd-snmp et NMAP et peut mapper les adresses IP aux adresses MAC dans une variété de bases de données SQL.
En outre, vous voudrez peut-être jeter un œil à Switchmap .
Bien qu'il ne stocke pas ses données dans SQL, il crée des fichiers CSV qui peuvent ensuite être versés dans une base de données SQL, si vous le souhaitez.
Il existe un certain nombre d'autres solutions (à la fois commerciales et gratuites). Je les mentionne uniquement car j'ai eu une expérience directe de l'installation, de la configuration et de la gestion de ces progiciels.
Les adresses MAC sont stockées dans la MIB .1.3.6.1.2.1.17.4.3.1.2
Vous pouvez donc faire quelque chose comme ceci:
snmpwalk -v2c -c <community> <SwitchIP> .1.3.6.1.2.1.17.4.3.1.2
Vous obtiendrez un vidage avec ces numéros suivis des six mots de l'adresse MAC sous forme d'entier. C'est donc à vous d'obtenir les 6 derniers entiers, de les convertir en hexadécimal et enfin de les stocker sur 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
Signifie que l'adresse MAC 208.39.136.84.36.11 (convertissez-la en hexadécimal si vous le souhaitez) est accessible via le port 25 de ce commutateur.
Nous utilisons un outil appelé NetDB sur Ubuntu qui élimine tous nos routeurs et commutateurs et les place dans une base de données MySQL. Il s'exécute trouver sur 12.04 LTS: