Я использую dd-wrt (r23503, для записи) на моем новом маршрутизаторе Asus RT-AC56U. К сожалению, конфигурация dnsmasq не дает мне ничего, кроме головной боли. Вот что я хочу:
- На запросы DNS от LAN/WLAN для хостов в LAN/WLAN следует отвечать как для коротких имен, так и для полных доменных имен.
- Поскольку некоторые из устройств являются портативными (например, мой телефон), мне нужен host.mydyndomain.net для разрешения IP-адреса локальной сети при подключении к локальной сети и внешнего IP-адреса при запросе извне локальной сети.
Но вот что я сейчас получаю:
- Запросы для арендованных узлов DHCP возвращаются правильно (опция dd-wrt "Local DNS" для dnsmasq).
- Запросы к любому случайному несуществующему хосту неверно возвращают внешний IP-адрес в глобальной сети. Таким образом, "nslookup foobarbaz" дает результат, когда он должен вернуть ошибку.
Что касается моих хостов со статическими IP-адресами, я еще не нашел адекватного решения. Я прочитал справочную страницу dnsmasq, и из того, что я могу сказать, правильный выбор - опция "host-record".
Конфигурация, связанная с dnsmasq в dd-wrt (на вкладке Services):
Раздел «DHCP-сервер»:
Используемый домен: WAN
Домен LAN: [пусто]
Дополнительные параметры DHCPd: [пусто]
Определена одна статическая аренда.
Раздел "DNSMasq":
DNSMasq: включено
Локальный DNS: включен
Нет повторной привязки DNS: включено
Дополнительные параметры DNSMasq:
хост-запись = 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 я ввел IP-адреса для серверов OpenDNS (как вы можете видеть выше). Я бы предпочел просто использовать эти два сервера имен, но сервер имен автоматически добавляется в качестве третьего сервера имен. Есть ли способ указать dd-wrt игнорировать информацию DNS, которую он получает при получении аренды DHCP от модема /ISP?
Итак ... что я делаю не так? Очевидно, что dnsmasq не в восторге от записей записей хоста, но какой правильный вариант использовать? Я помещаю эту информацию в это место, а не в /etc /hosts, поскольку последний является сгенерированным файлом, и его нелегко изменить через веб-интерфейс. Конечно, я могу легко отредактировать его, подключившись через SSH, но мои изменения не будут постоянными.