web-dev-qa-db-fra.com

Obtenez toutes les adresses IP indiquées par le serveur DHCP avec DNSMASQ et HostapD

J'ai créé un service systemd pour la candidature hostapd sur Raspbian Jessie Lite . Le code source est similaire à celui-ci GitHub Gist mais avec des adresses IP allant dans la 192.168.50.x/24.

Tout fonctionne et différents appareils reçoivent des adresses IP à partir du serveur DHCP. Cependant, je ne sais pas s'il y a un journal de toutes les adresses IP données aux clients W.R.T. à leurs adresses MAC pour dnsmasq et/ou hostapd.

Y a-t-il un moyen de résoudre les adresses IP distribuées sur le serveur DHCP? Peut-être qu'ils pourraient être connectés à un fichier que je ne suis pas au courant. Par exemple, en mode de verbosité, j'ai tendance à voir des messages lorsqu'un client demande une adresse IP, et donc l'hypothèse que ces informations sont peut-être connectées au fichier.

5
Shan-Desai

Je crois /var/lib/misc/dnsmasq.les est le fichier que vous voulez

Sinon, utilisez DHCP-Script = et écrivez votre propre voir Manpage

Au démarrage, dnsmasq lit /etc/dnsmasq.conf, le format de ce fichier est constitué d'une option par ligne, exactement comme des options longues détaillées dans la section Options mais sans le principal "-".

--DHCP-Script = Chaque fois qu'un nouveau bail DHCP est créé, ou une ancienne détruite, ou un transfert de fichier TFTP complète, l'exécutable spécifié par cette option est exécuté. Doit être un chemin d'accès absolu, aucune recherche de chemin ne se produit. Les arguments du processus sont "Ajouter", "Old" ou "Del", l'adresse MAC de l'hôte (ou duid pour IPv6), l'adresse IP et le nom d'hôte, le cas échéant. "Ajouter" signifie qu'un bail a été créé, "Del" signifie qu'il a été détruit, "Old" est une notification d'un bail existant lorsque DNSMASQ démarre ou un changement d'adresse MAC ou d'un nom d'hôte d'un bail existant (aussi expiration et identifiant client, si Leasefile-Ro est défini). Si l'adresse MAC provient d'un type de réseau autre que Ethernet, il aura le type de réseau préparé, par exemple "06-01: 23: 45: 67: 89: AB" pour la bague de jeton. Le processus est exécuté en tant que root (en supposant que DNSMASQ a été initialement exécuté en tant que root), même si DNSMASQ est configuré pour modifier UID vers un utilisateur non privilégié.

6
Ross

En tant que réponse addendum à Ross, vous pouvez spécifier le fichier de location dans votre dnsmasq.conf (ou fichier CONF dans /etc/dnsmasq.d) fichier avec l'option dhcp-leasefile=<lease file>. Par exemple. dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

En outre, bien que le fichier de location soit renseigné avec des noms d'hôte dans certains cas, certains dispositifs aléatoires tels que des comprimés ou des téléviseurs intelligents ne seront parfois pas clairement identifiables dans le fichier de location. Dans votre DNSMASQ Conf, vous pouvez ajouter des options d'hôte DHCP avec l'adresse MAC de l'appareil et un nom d'hôte amical qui sera affiché dans le fichier de location. Par exemple.

dhcp-Host=10:08:c1:08:9d:53,LG-TV

dans dnsmaq.conf ressemble à ceci dans le fichier de location:

1502229042 10:08:c1:08:9d:53 192.168.10.94 LG-TV *
3
Darren