Intereting Posts
Перемещение по страницам без аккордов в Vim Использование cat для модификации ~ / .bash_profile, кажется, удаляет __git_ps1 Запуск сценариев компиляции только в том случае, если исходный файл более поздний, чем скомпилированная программа Как выполнить shellscript, когда я подключаю USB-устройство gnome-screenshot не автосохраняется, а интерактивно запрашивает каталог сохранения Byobu с tmux, как использовать F-Keys GNU / Linux: наложение блочного устройства / штабелируемое блочное устройство Упаковка приложений Windows с вином в формате deb и rpm как включить qcserial модуль в ядро? перечисление всех деталей оборудования на Linux Как отправить значение переменной в трубу, скрывая ее из списка процессов? Что такое эквивалентная опция gnu-netcat в -ncat? Изменение выключения широковещательного сообщения Сортировка вывода awk за исключением первой строки? Использование grep для определения неправильных заголовков

openwrt: невозможно изменить параметр DNS-сервера, чтобы разрешить имена узлов FQDN

ssh'ing для моего openwrt (версия 10.03.1-RC6) показывает, что с его DNS-сервером что-то не так:

 root@OpenWrt:~# nslookup starkill Server: 127.0.0.1 Address 1: 127.0.0.1 localhost. nslookup: can't resolve 'starkill': Name or service not known 

в то время как,

 root@OpenWrt:~# nslookup starkill.skails.home Server: 127.0.0.1 Address 1: 127.0.0.1 localhost. Name: starkill.skails.home Address 1: 192.168.112.138 starkill.skails.home 

Как вы можете видеть, локальный DNS-сервер (dnsmasq) openwrt не может разрешать имена узлов, отличных от FQDN. Добавление домена моей интрасети разрешает эту проблему, но не работает для меня:

Поскольку у меня есть DNS-сервер, работающий в моей интрасети, я бы хотел, по крайней мере, иметь dnsmasq openwrt для моего основного DNS-сервера.

поэтому я снова и снова проверял веб-конфигурацию, но не мог понять, что не так или нет. Затем я проверил файл /etc/config/network вместе с руководством .

файл первоначально выглядел так:

 [...] config 'interface' 'lan' option 'type' 'bridge' option 'ifname' 'eth0.0' option '_orig_ifname' 'eth0.0 wl0' option '_orig_bridge' 'true' option 'proto' 'static' option 'ipaddr' '192.168.112.253' option 'netmask' '255.255.255.0' option 'gateway' '192.168.112.112' option 'broadcast' '192.168.112.255' option 'stp' '1' list 'dns' '192.168.112.112' [...] 

существует «список dns», вставленный в web-config, который не похож на обычный «вариант», который я ожидаю увидеть. поэтому я попробовал это

  option 'dns' '192.168.112.112' 

Я также попробовал вариант «dns-search», всеми возможными способами

  option 'dns-search' 'skails.home' list 'dns-search' 'skails.home.' 

каждый раз, когда я перезапускал сеть с /etc/init.d/network reload . предложения dns-поиска не могли быть проанализированы, поэтому мне пришлось их удалить.

вы заметите, что я показываю вам интерфейс интерфейса «lan» выше. Причина в том, что я использую свой WRT54G только как точку доступа. Я не использую интерфейс WAN, а один из четырех LAN-интерфейсов Ethernet (который подключен к остальной части моей интрасети и где находится интернет-шлюз) и в основном используют антенны моего устройства для обеспечения доступа к интрасети и интернету для wifi.

во всяком случае, попытка изменить / etc / config / network не дала ожидаемого результата, и я все еще не могу разрешить имена узлов, отличных от FQDN.

Более того, я не могу даже разрешать, когда я явно предлагаю сервер имен, либо через /etc/resolv.conf , либо напрямую с помощью nslookup :

 root@OpenWrt:~# nslookup starkill 192.168.112.112 Server: 192.168.112.112 Address 1: 192.168.112.112 stargaze.skails.home nslookup: can't resolve 'starkill': Name or service not known 

В этот момент я проиграл. что мне здесь не хватает?

dnsmasq несколько неудовлетворительно в данный момент на моем барьерном выключателе, что приводит к

 nslookup: can't resolve 'starkill': Name or service not known 

здесь, даже если имя обычно можно разрешить без проблем.

сначала попробуйте

 killall -HUP dnsmasq 

или даже перезапуск, если вам нравится быть уверенным, что dnsmasq фактически выполняет запросы, как следует.

во-вторых, есть возможность автоматически выполнить FQDN в dnsmasq. Я работаю здесь со следующей конфигурацией (/ etc / config / dhcp):

 config dnsmasq option domainneeded '1' option boguspriv '1' option localise_queries '1' option rebind_protection '1' option rebind_localhost '1' option local '/lan/' option domain 'lan' option expandhosts '1' option readethers '1' option leasefile '/tmp/dhcp.leases' option resolvfile '/tmp/resolv.conf.auto' option filterwin2k '1' list addnhosts '/var/adblock/block.hosts' 

expandhosts предназначен только для / etc / hosts, поэтому в основном не применим к вашей настройке, но я думаю, что локальный домен AND вам поможет.

моя / etc / config / сеть имеет

 option dns '192.168.200.1' 

я не знаю, прямо сейчас, если перезагрузка сети действительно также перезагружает dnsmasq таким образом, что она восстанавливает лизинг dhcp, которые вам придется запускать на стороне клиента, иначе директива вступит в силу.

вы пробовали tcpdump'ing на своем DNS-сервере при запросе его напрямую с помощью nslookup? запрашивает ли когда-либо этот запрос? это будет первым указателем, чтобы убедиться, что проблема действительно находится в поле openwrt …

если вы найдете способ сделать dnsmasq последовательно подавать запрос, сообщите мне, это действительно делает вещи здесь довольно неустойчивыми.

Я не знаю, что вы можете редактировать /etc/dnsmasq.conf вообще, но есть много вариантов, с которыми вы могли бы играть. Я использовал dnsmasq на полном linux boxen несколько раз и всегда был в состоянии настроить его в соответствии с моими потребностями, но я думаю, что это немного отличается от openwrt, как кажется.

также, вероятно, посмотрите на соответствующий раздел (вторичный dns) по адресу http://wiki.openwrt.org/doc/howto/dhcp.dnsmasq#add_a_secondary_dns