Этот вопрос старый, но это один из лучших результатов 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.
Для этого вам нужно должен:
- Поместите
example.com
домен в поле « Имя домена» на странице « Настройка» -> « Основные настройки» в разделе « Дополнительные параметры» . - Очистите настройки домена LAN на странице « Службы» в разделе « DHCP-сервер» .
- Добавить
expand-hosts
в Дополнительные параметры Dnsmasq на услуги страницы под Dnsmasq
Шаг # 1 управляет domain=
настройкой, которая помещается в dnsmasq.conf
файл. Шаг № 2 удаляет домен из записей, которые вставляются /etc/hosts
. Шаг № 3 привязывает домен к записям, /etc/hosts
когда приходит полный запрос DNS.
Я так рад, что ДД-ВРТ сделал это красиво и просто ...