11

У меня есть маршрутизатор Linksys под управлением DD-WRT (прошивка: DD-WRT v24-sp2 (09/08/09) mini). Я успешно разрешил имена DNS для моих систем, назначенных DHCP, но только когда я полностью квалифицировал эти домены. Это происходит несмотря на использование дополнительной опции DNSMasq "expand-hosts", которая должна активировать эту точную функцию.

Вот мой dnsmasq.conf:

interface=br0
resolv-file=/tmp/resolv.dnsmasq
domain=example.com
dhcp-leasefile=/tmp/dnsmasq.leases
dhcp-lease-max=51
dhcp-option=lan,3,10.77.0.5
dhcp-authoritative
dhcp-range=lan,10.77.0.100,10.77.0.149,255.255.0.0,1440m
dhcp-host=00:1A:A0:1D:82:5A,astatichostname,10.77.1.40,infinite
expand-hosts

(К сведению: example.com и astatichostname являются местозаполнителями для имен реальных сделок, которые я использую. Моя сеть использует 10.77.0.0/16; мой роутер на 10.77.0.5.)

Результаты:

> nslookup astatichostname 10.77.0.5
Server:     10.77.0.5
Address:    10.77.0.5#53

** server can't find astatichostname: NXDOMAIN

> nslookup astatichostname.example.com 10.77.0.5
Server:     10.77.0.5
Address:    10.77.0.5#53

Name:   astatichostname.example.com
Address: 10.77.1.40

Есть ли что-то еще, что может вызвать расширение узла в DNSMasq?

2 ответа2

9

Этот вопрос старый, но это один из лучших результатов Google для этой проблемы, и я наконец понял это.

Проблема не в том, что делает expand-hosts . Документация к нему очень нечеткая, но expand-hosts добавляет домен к записям хоста в /etc/hosts , а не к DNS-запросам. Так например

/ и т.д. / хосты:

10.77.0.5 astatichostname

dnsmasq.conf:

expand-hosts
domain=example.com

Затем DNS-запросы для astatichostname.example.com будут преобразованы в 10.77.0.5 (в дополнение к DNS-запросам только для astatichostname).



Решение:

Таким образом, решение состоит в том, чтобы заставить dd-wrt создавать записи в /etc/hosts без домена на них, а затем сказать dnsmasq рассматривать эти записи хоста как часть домена example.com когда DNS-запрос полностью квалифицированной записи A приходит в.
Для этого вам необходимо:

  1. Поместите домен example.com в поле « Имя домена» на странице « Настройка» -> « Основные настройки» в разделе « Дополнительные параметры».
  2. Очистите настройки домена LAN на странице « Службы» в разделе « DHCP-сервер».
  3. Добавьте expand-hosts в Дополнительные параметры DNSMasq на странице « Службы» в разделе « DNSMasq».

Шаг # 1 контролирует параметр domain= который помещается в файл dnsmasq.conf . Шаг # 2 удаляет домен из записей, которые помещаются в /etc/hosts . Шаг № 3 привязывает домен к записям в /etc/hosts когда приходит полный запрос DNS.


Я так рад, что ДД-ВРТ сделал это красиво и просто ...

2

Следующее работает для меня на моем DD-WRT:

expand-hosts
local=/lan/
domain=lan

Я думаю, это потому, что вам не хватает local условий. У меня также есть lan установленный в качестве "LAN Domain" в графическом интерфейсе.

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