Решено: Не работает dnsmasq как DHCP-сервер (Проблема с использованием dnsmasq в роли DHCP-сервера локальной сети)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
intelfx
Сообщения: 12
ОС: Arch Linux

Решено: Не работает dnsmasq как DHCP-сервер

Сообщение intelfx »

Доброго времени суток.

Я настраиваю некоторое подобие роутера на своём ноутбуке.
Конфигурация:
* Внешний интерфейс - ppp0
* Внутренний интерфейс - wlan0 (в режиме Ad-Hoc)
IP - 192.168.1.1
Маска - 255.255.255.0

NAT настроен и работает. Решил заюзать dnsmasq в роли DHCP-сервера (и DNS): мне понравилось, что он "синхронизирует" DNS и список DHCP-хостов (т.е. можно обращться к компам по их именам).
Конфиг dnsmasq взял из своего домашнего роутера на DD-WRT (с небольшими модификациями). Вот он:

Код:

# Never forward plain names domain-needed # Never forward addresses from private routing space bogus-priv domain=lan local=/lan/ # DHCP configuration listen-address=127.0.0.1,192.168.1.1 dhcp-range=192.168.1.50,192.168.1.100,1h dhcp-option=option:router,192.168.1.1 dhcp-option=option:netmask,255.255.255.0


В итоге работает только кэширующий DNS-сервер, а DHCP-сервер не отвечает.
Но не работает только dnsmasq - если запустить dhcpd с аналогичными параметрами, то всё получается.
Конфиг dhcpd (рабочий):

Код:

option domain-name "lan"; default-lease-time 600; max-lease-time 7200; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.50 192.168.1.100; option routers 192.168.1.1; option broadcast-address 192.168.1.255; }


Подскажите, пожалуйста, как заставить dnsmasq работать (или как синхронизировать dhcpd с каким-нибудь dns-сервером, например bind)?
Спасибо сказали:
Аватара пользователя
intelfx
Сообщения: 12
ОС: Arch Linux

Re: Решено: Не работает dnsmasq как DHCP-сервер

Сообщение intelfx »

Решение таки было найдено, причём оно идёт вразрез с официальным FAQ dnsmasq'а.
Оно состояло в том, чтобы установить broadcast-адрес на внутреннем интерфейсе (wlan0) не "192.168.1.255", а "255.255.255.255".

Код: Выделить всё

ip addr add 192.168.1.1/24 brd 255.255.255.255 dev wlan0


Вот та самая цитата из FAQ, которого я в начале придерживался:
The first thing to check is the broadcast address set for the
ethernet interface. This is normally the adddress on the connected
network with all ones in the host part. For instance if the
address of the ethernet interface is 192.168.55.7 and the netmask
is 255.255.255.0 then the broadcast address should be
192.168.55.255. Having a broadcast address which is not on the
network to which the interface is connected kills things stone
dead.
Спасибо сказали: