Получить все IP-адреса, выданные DHCP-сервером с помощью dnsmasq и hostapd

Я создал systemd сервис для hostapd приложение на Распбиана Джесси Lite. Исходный код похож на этот GitHub Gist, но с IP-адресами в диапазоне 192.168.50.x/24,

Все работает, и различные устройства получают IP-адреса от сервера DHCP. Однако я не знаю, есть ли журнал всех IP-адресов, выданных клиентам по их MAC-адресам для dnsmasq и / или hostapd,

Есть ли способ разрешить разданные IP-адреса DHCP-сервера? Возможно, они могут войти в файл, который я не знаю. Например, в режиме многословия я склонен видеть сообщения, когда клиент запрашивает IP-адрес, и, следовательно, предположение, что эта информация может быть зарегистрирована в файле.

2 ответа

Решение

Я считаю, что /var/lib/misc/dnsmasq.leases - это файл, который вы хотите

Если нет, то используйте dhcp-script= и напишите свой собственный, смотрите man- страницу

При запуске dnsmasq читает /etc/dnsmasq.conf. Формат этого файла состоит из одного параметра в строке, точно так же, как длинные параметры, подробно описанные в разделе ОПЦИИ, но без начального "-".

--dhcp-script= Всякий раз, когда создается новая аренда DHCP, уничтожается старая или завершается передача файла TFTP, запускается исполняемый файл, указанный в этой опции. должен быть абсолютный путь, поиск PATH не происходит. Аргументами процесса являются "add", "old" или "del", MAC-адрес хоста (или DUID для IPv6), IP-адрес и имя хоста, если оно известно. "добавить" означает, что аренда была создана, "del" означает, что она была уничтожена, "старая" - это уведомление о существующей аренде при запуске dnsmasq или изменении MAC-адреса или имени хоста существующей аренды (также, длина аренды или expiry и client-id, если установлено leasefile-ro). Если MAC-адрес относится к типу сети, отличному от Ethernet, к нему будет добавлен тип сети, например "06-01:23:45:67:89:ab" для Token Ring. Процесс запускается от имени пользователя root (при условии, что dnsmasq изначально был запущен от имени пользователя root), даже если dnsmasq настроен на изменение UID для непривилегированного пользователя.

В качестве дополнения к ответу Росса вы можете указать файл аренды в своем dnsmasq.conf (или файл conf в /etc/dnsmasq.d) файл с опцией dhcp-leasefile=<lease file>, Например dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

Кроме того, хотя в некоторых случаях файл аренды будет содержать имена хостов, некоторые случайные устройства, такие как планшеты или смарт-телевизоры, иногда не будут четко идентифицироваться из файла аренды. В вашей dnsmasq conf вы можете добавить опции dhcp-host с MAC-адресом устройства и понятным именем хоста, которое будет отображаться в файле аренды. Например

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

в dnsmaq.conf выглядит так в файле аренды:

1502229042 10:08:c1:08:9d:53 192.168.10.94 LG-TV *
Другие вопросы по тегам