DD-WRT: DNS-MASQ расширения-хосты не работают

11370
Craig Walker

У меня есть маршрутизатор 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?

11

2 ответа на вопрос

9
Patrick

Этот вопрос старый, но это один из лучших результатов 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
Jim Hunziker

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

expand-hosts local=/lan/ domain=lan 

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

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