Получить все 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 *