Информация о DNS-сервере не предоставляется клиентам DHCP с помощью dnsmasq

Я пытаюсь использовать Raspberry Pi с Raspbian Stretch (Linux), чтобы обеспечить дополнительный мониторинг сети, а также возможности маршрутизации. Для этого у меня есть следующая настройка:

Internet router [eth1]
  ||
[Raspberry Pi]
  ||
Wifi for clients [wlan0]
Ethernet for clients [eth0] 

В основном у меня все работает, за исключением назначения DNS-серверов клиентам DHCP. Я бьюсь над этой темой уже много недель, следую десяткам руководств на этом сайте и других, но независимо от того, использую ли я dhcpd + dnsmasq, только dnsmasq, bind или что-то еще: DNS-сервер не назначается клиенту. Я также пробовал различные операционные системы на клиентах: Windows, Ubuntu и Android, чтобы убедиться, что это не проблема с настройками. Но они работают со всеми другими LAN/Wifi сетями, а не с этой, так что, должно быть, проблема в моей конфигурации. Проблема одинакова для устройств LAN и Wifi. Wifi обеспечивается hostapd, кстати, и работает.

Моя последняя установка использует только dnsmasq. Клиенты, которым таким образом назначены адреса через DHCP, могут

  • Получить доступ к IP-адресам внутри сети и за ее пределами (ping, tracert, nmap)
  • Обратиться к DNS-серверу на моем RPI (порт открыт и доступен)
  • Обратиться к другим клиентам в сети, и наоборот

Мой dnsmasq. conf файл:


bogus-priv
expand-hosts
dhcp-authoritative
no-resolv    
interface=wlan0
interface=eth0
interface=lo
interface=eth1    
dhcp-range=192.168.19.30,192.168.19.160,1h    
bind-interfaces    
dhcp-option=option:dns-server,0.0.0.0,192.168.19.1,192.168.19.2,192.168.178.20
dhcp-option=3,192.168.19.1    
listen-address=127.0.0.1
listen-address=192.168.19.1
listen-address=192.168.19.2
listen-address=192.168.178.20    
server=192.168.178.1
server=8.8.8.8    
cache-size=1000    
log-queries
domain="mydomain.biz"

Поскольку система использует systemd, я также настроил файлы wlan0.network, eth0.network и eth1.network в /etc/systemd/network. eth1 назначает фиксированный IP, для wlan0 и eth0 у меня есть


[Match]
Name=eth0

[Network]
Address=192.168.19.2/24
DHCPServer=yes

и


[Match]
Name=wlan0

[Network]
Address=192.168.19.1/24
DHCPServer=yes

Это также не имеет значения, если я добавлю что-то вроде "DNS=192.168.19.1" в .network файлы.... Я действительно не знаю, что еще я могу сделать или в чем может быть проблема. Заранее спасибо!

0
задан 22 September 2019 в 14:19
1 ответ

Решение, которое мне подходит:

В файле /etc/dnsmasq.conf (или другом файле conf) введите следующее:

# Set DNS server offered to clients(dnsmasq sometimes fails to do it automatically?)   
dhcp-option=6,192.168.1.1

... замените 192.168.1.1 на IP-адрес вашего сервиса dnsmasq. (и/или другие IP-адреса по мере необходимости).

Раньше мой dnsmasq работал нормально, клиенты получали правильный DNS-сервер (IP-адрес dnsmasq) через DHCP. Затем без видимой причины клиенты не получали информацию о DNS-сервере, поэтому их поиск DNS не удался. Я предполагаю, что это вызвало какое-то изменение конфигурации, возможно, тот факт, что я переместил порт dnsmasq со стандартного 53 на 1053, потому что я установил другой DNS-сервер на 53 (в частности, adguard-home). У меня все еще был dnsmasq, предоставляющий DHCP, и основной DNS-сервер, использующий dnsmasq в качестве восходящего DNS. Казалось бы, что-то в этой конфигурации (я предполагаю, что изменение порта 1053) вызвало проблему/ошибку в dnsmasq.

1
ответ дан 8 June 2020 в 20:20

Теги

Похожие вопросы