Я використовую dd-wrt (r23503, для запису) на моєму новому маршрутизаторі Asus RT-AC56U. На жаль, конфігурація dnsmasq дає мені тільки голови. Ось що я хочу :
- DNS-запити з LAN / WLAN для хостів у LAN / WLAN повинні відповідати як для коротких імен, так і для FQDN.
- Оскільки деякі пристрої є портативними (як, наприклад, мій телефон), мені потрібен host.mydyndomain.net, щоб вирішити IP-адресу локальної мережі при підключенні до локальної мережі і зовнішньому IP-адресі, коли він запитується ззовні локальної мережі.
Але ось що я зараз отримую:
- Запити для орендованих DHCP хостів повертаються правильно (опція "Local DNS" для ddnswrt для dnsmasq).
- Запити на будь-який випадковий неіснуючий хост неправильно повертають зовнішню WAN IP-адресу. Отже, "nslookup foobarbaz" дає результат, коли він повинен повернути помилку.
Що стосується моїх хостів зі статичними IP, я ще не знайшов адекватного рішення. Я читав за допомогою man manpage і з того, що я можу сказати, правильний вибір - опція "host-record".
Конфігурація, пов'язана з dnsmasq в dd-wrt (на вкладці Послуги):
Розділ "DHCP-сервер":
Використовується домен: WAN
Домен LAN: [пустий]
Додаткові параметри DHCP: [порожній]
Визначено одну статичну оренду.
Розділ "DNSMasq":
DNSMasq: увімкнено
Локальний DNS: увімкнено
Немає DNS Rebind: увімкнено
Додаткові параметри DNSMasq:
host-record = myhost, myhost.mydyndomain.net, 192.168.1.1
[ще кілька записів хост-записів для інших хостів зі статичними IP-адресами у мережі]
На жаль, введення цих рядків хост-записів у поле додаткових параметрів, здається, повністю розбиває dnsmasq, а потім нічого не може підключитися до LAN / WLAN через DHCP. Після того, як я викину вміст вікна, DHCP знову почне працювати.
Мій файл dnsmasq.conf виглядає наступним чином:
interface=br0
resolv-file=/tmp/resolv.dnsmasq
all-servers
domain=mydyndomain.net
dhcp-leasefile=/tmp/dnsmasq.leases
dhcp-lease-max=51
dhcp-option=lan,3,192.168.1.1
dhcp-authoritative
dhcp-range=lan,192.168.1.100,192.168.1.149,255.255.255.0,1440m
dhcp-host=88:53:2E:9B:3E:80,Redtail,192.168.1.5,1440m
stop-dns-rebind
Файл /etc/resolv.conf:
search ph.cox.net
nameserver 192.168.1.1
Файл /tmp/resolv.dnsmasq:
nameserver 208.67.222.222
nameserver 208.67.220.220
nameserver 68.105.28.13
Інша менша, але не пов'язана з цим проблема: На сторінці "базової настройки" в dd-wrt в розділі DHCP config я ввів IP-адреси для серверів OpenDNS (як ви можете побачити вище). Я б віддав перевагу просто Використовуйте ці два сервера імен, але сервер імен автоматично призначається як третій сервер імен. Чи є спосіб сказати dd-wrt ігнорувати інформацію DNS, яку він отримує при отриманні оренди DHCP від модему / ISP?
Отже ... Що я роблю неправильно? Зрозуміло, що dnsmasq не задоволений записами хост-записів, але який правильний варіант використовувати? Я розміщую цю інформацію в цьому місці, а не в / etc / hosts, оскільки останній є створеним файлом і не легко змінюється через веб-інтерфейс. Звичайно, я можу легко редагувати його, підключившись через SSH, але зміни не будуть постійними.