1

(адаптировано из списка рассылки dnsmasq, архив которого не работает, поэтому я не уверен, что он все еще активен)

Привет,

Я установил dnsmasq в своей домашней сети, чтобы заменить устаревшую систему isc/bind :) при изменении архитектуры. Установка опирается на коробку debian, которая действует как маршрутизатор / брандмауэр / "мастер всей правды" (DNS, ntp, ...):

  • ADSL-доступ в Интернет с публичным IP-адресом, назначенным eth1
  • проводная сеть 192.168.0.0/24, связанная с eth0 (которая имеет адрес 192.168.0.10)
  • проводная сеть 192.168.1.0/24, связанная с wlan3 (которая имеет адрес 192.168.1.10)
  • доменное имя для внутренней сети - "домашнее"
  • firewall управляется shorewall

Конфигурация dnsmasq:

domain-needed
bogus-priv
local=/home/
expand-hosts
domain=home
dhcp-range=eth1,192.168.0.70,192.168.0.150,240h,set:lan
dhcp-range=wlan3,192.168.1.10,192.168.1.50,240h,set:wifi
dhcp-option=42,0.0.0.0
dhcp-option=27,1
dhcp-option=19,0           # option ip-forwarding off
dhcp-option=44,0.0.0.0     # set netbios-over-TCP/IP nameserver(s) aka
WINS server(s)
dhcp-option=45,0.0.0.0     # netbios datagram distribution server
dhcp-option=46,8           # netbios node type
dhcp-option=252,"\n"
dhcp-option=vendor:MSFT,2,1i
dhcp-authoritative

Что работает:

  • клиенты в подсетях (как проводных, так и беспроводных) получают IP-адреса через DHCP в ожидаемых диапазонах
  • внешнее (интернет = переадресованное) разрешение DNS работает для этих клиентов и для сервера

Что не работает:

  • "домашнее" доменное имя, похоже, не обрабатывается правильно. /etc/hosts есть запись 192.168.0.10 server.home которая явно не используется dnsmasq, т. е. dig server не возвращает имя, dig server.home не возвращает .
  • Мне не удалось отправить разрешение имени в зависимости от сети, в которую оно отправлено. А именно, запись server avove в идеале должна указывать на 192.168.0.10 для проводной и 192.168.1.10 для беспроводной сети. Сегодняшняя настройка работает, но не совсем корректна (трафик на сервер из беспроводной сети достигает сервера через проводной интерфейс).

Я уверен, что это что-то очевидное, но я новичок в dnsmasq и буду очень признателен за любые советы. Некоторое время назад был похожий вопрос, но принятый ответ предполагает, что dnsmasq неправильно обрабатывает эти основные требования (локальный домен, обновления PTR) (?)

Спасибо

2 ответа2

3

Наконец-то я решил первую и ключевую проблему:

  • копирование /etc/resolv.conf в /etc/resolv.dnsmasq
  • установка только одного имени nameserver 127.0.0.1 в /etc/resolv.conf
  • в /etc/dnsmasq.conf я добавил resolv-file=/etc/resolv.dnsmasq

Это заставляет сервер разрешать имена DNS на локальном DNS ...

... который dnsmasq ...

... который использует вышестоящие серверы, определенные в /etc/resolv.dnsmasq

Вторая проблема остается, но она имеет меньшее значение.

0

"копирование /etc/resolv.conf в /etc/resolv.dnsmasq"

это полезно только в Debian. достойная не навязчивая установка позволяет dnsmasq читать файл resolv.conf, который должен начинаться с 127.0.0.1

домашний домен, вероятно, не работает из-за ваших настроек поиска в /etc/resolv.conf (не тот, который в настоящее время использует dnsmasq)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .