Obtenha todos os endereços IP fornecidos pelo servidor DHCP com dnsmasq e hostapd

0

Eu criei um serviço systemd para o aplicativo hostapd em Raspbian Jessie Lite . O código-fonte é semelhante a este GitHub Gist , mas com endereços IP variando em 192.168.50.x/24 .

Tudo funciona e vários dispositivos obtêm endereços IP do servidor DHCP. No entanto, não sei se existe um log de todos os endereços IP fornecidos aos clientes w.r.t. para seus endereços MAC para dnsmasq e / ou hostapd .

Existe alguma maneira de resolver os endereços IP do servidor DHCP? Talvez eles possam estar logados em um arquivo que eu não conheço. Por exemplo, no modo de verbosidade, tenho a tendência de ver mensagens quando um cliente solicita um endereço IP e, portanto, a suposição de que essas informações talvez estejam registradas no arquivo.

    
por Shan-Desai 08.08.2017 / 09:23

2 respostas

2

Acredito que /var/lib/misc/dnsmasq.leases é o arquivo que você deseja

Se não, use o dhcp-script = e escreva o seu próprio manpage

At startup, dnsmasq reads /etc/dnsmasq.conf, The format of this file consists of one option per line, exactly as the long options detailed in the OPTIONS section but without the leading "--".

--dhcp-script= Whenever a new DHCP lease is created, or an old one destroyed, or a TFTP file transfer completes, the executable specified by this option is run. must be an absolute pathname, no PATH search occurs. The arguments to the process are "add", "old" or "del", the MAC address of the host (or DUID for IPv6) , the IP address, and the hostname, if known. "add" means a lease has been created, "del" means it has been destroyed, "old" is a notification of an existing lease when dnsmasq starts or a change to MAC address or hostname of an existing lease (also, lease length or expiry and client-id, if leasefile-ro is set). If the MAC address is from a network type other than ethernet, it will have the network type prepended, eg "06-01:23:45:67:89:ab" for token ring. The process is run as root (assuming that dnsmasq was originally run as root) even if dnsmasq is configured to change UID to an unprivileged user.

    
por 08.08.2017 / 10:35
2

Como um adendo à resposta de Ross, você pode especificar o arquivo de lease no arquivo dnsmasq.conf (ou arquivo conf em /etc/dnsmasq.d ) com a opção dhcp-leasefile=<lease file> . Por exemplo. dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

Além disso, embora o arquivo de concessão seja preenchido com nomes de host em alguns casos, alguns dispositivos aleatórios, como tablets ou smart TVs, às vezes não serão claramente identificáveis no arquivo de concessões. Em seu dnsmasqconf você pode adicionar opções de dhcp-host com o endereço MAC do dispositivo e um nome de host amigável que será exibido no arquivo de concessões. Por exemplo,

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

em dnsmaq.conf tem esta aparência no arquivo de concessões:

1502229042 10:08:c1:08:9d:53 192.168.10.94 LG-TV *
    
por 08.08.2017 / 12:18