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

2432
Shan-Desai

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

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

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

0

2 ответа на вопрос

2
Ross

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

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

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

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

2
Darren

В качестве дополнения к ответу Росса вы можете указать файл аренды в вашем 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 *