Я пытаюсь использовать 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. Wi-Fi предоставляется hostapd, кстати, и работает.
Моя последняя установка использует только dnsmasq. Клиенты, которым таким образом назначаются адреса через DHCP, могут
Мой файл 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 ... Я действительно не знаю, что еще я могу сделать и в чем может быть проблема. Заранее спасибо!
Решение, которое я нашел, работает для меня:
В /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.