2

У меня есть маршрутизатор OpenWRT версии 15.05, который является членом локальной сети. Эта сеть имеет свои собственные серверы DHCP и DNS, которые dnsmasq должен автоматически использовать для разрешения доменного имени. Однако имена хостов для членов локальной сети не разрешаются через dnsmasq.

Я попытался /etc/init.d/dnsmasq stop что позволило этим именам разрешить на маршрутизаторе. Однако это остановило разрешение всех доменных имен на моем ноутбуке при подключении к маршрутизатору.

Я бы хотел, чтобы dnsmasq не фильтровал локальные доменные имена по его результатам и чтобы он использовал надлежащие DNS-серверы (я верю, что это так), или чтобы найти способ обойтись без dnsmasq, передавая IP-адреса вышестоящих DNS-серверов клиентам роутера. (Я бы предпочел не жестко задавать IP-адреса DNS-сервера, чтобы маршрутизатор можно было использовать в других средах без перенастройки.)

Я отключил некоторые из приведенных ниже параметров, поскольку они гарантируют, что «... запросы на эти имена локальных хостов (и обратный поиск) никогда не будут перенаправлены на вышестоящие DNS-серверы». [1] Однако это не решило мои проблемы с dnsmasq.

root@wrt0:~# cat /etc/config/dhcp

config dnsmasq
        #option domainneeded '1'
        option domainneeded '0'
        #option boguspriv '1'
        option boguspriv '0'
        option filterwin2k '0'
        #option localise_queries '1'
        option localise_queries '0'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        #option expandhosts '1'
        option expandhosts '0'
        option nonegcache '0'
        #option authoritative '1'
        option authoritative '0'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.auto'
        option localservice '1'

...

root@wrt0:~# cat /etc/config/network

...
config interface 'lan'
        option ifname 'eth1'
        option type 'bridge'
        option proto 'static'
        option ipaddr '10.0.2.1'
        option netmask '255.255.255.0'

...

root@wrt0:~# cat /etc/resolv.conf 
search lan
nameserver 127.0.0.1

root@wrt0:~# cat /tmp/resolv.conf.auto 
# Interface wan
nameserver 192.168.0.10
nameserver 192.168.0.25
search office.website.org
search website.org

При разрешении локальных имен с использованием dnsqmasq разрешение завершается неудачно:

root@wrt0:~# nslookup abc.office.website.org
Server:    127.0.0.1
Address 1: 127.0.0.1 localhost

nslookup: can't resolve 'abc.office.website.org': Name or service not known

При обходе dnsmasq разрешение работает нормально:

root@wrt0:~# nslookup abc.office.website.org 192.168.0.10
Server:    192.168.0.10
Address 1: 192.168.0.10 resolver.office.website.org

Name:      abc.office.website.org
Address 1: 192.168.0.32 abc.office.website.org

dnsmasq без проблем ищет интернет-серверы:

root@wrt0:~# nslookup abc.website.org
Server:    127.0.0.1
Address 1: 127.0.0.1 localhost

Name:      abc.website.org
Address 1: 208.xxx.xxx.xxx xyz.website.org

У вас есть идеи о том, как я могу обойти фильтрацию dnsmasq или вообще обойти dnsmasq? Спасибо! : D

2 ответа2

0

Прежде всего, вы должны действительно перейти на текущую (18.X) или последний выпуск (17.XX): https://wiki.openwrt.org/de/doc/howto/generic.sysupgrade

Если я правильно понимаю, DNS и DHCP-сервер - это разные устройства в вашей сети? Если это так, то, вероятно, domainneeded должен быть включен, и у вас должно быть сопоставление DNS и IP в /etc /hosts. Прочитайте первую часть документации для дальнейших советов.

0

Одним из решений является отключение dnsmasq и изменение раздела « dhcp 'lan' в /etc/config/dhcp , хотя для этого требуется настройка для конкретной сети:

root@wrt0:~# /etc/init.d/dnsmasq stop
root@wrt0:~# /etc/init.d/dnsmasq disable

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv6 'server'
        option dhcpv4 'server'
        option ra 'server'
        list   dns '192.168.0.10'
        list   dns '192.168.0.25'
        list   domain 'office.website.org'
        list   domain 'website.org'
        list   domain 'othersite.org'

Еще один способ добиться подобных результатов - использовать dnsmasq и добавить параметр в /etc/dnsmasq.conf:

dhcp-option=6, 192.168.0.10, 192.168.0.25

Однако не ясно, как установить несколько search доменов с помощью dnsmasq.

К сожалению, для обоих этих методов необходимо изменить настройки, если маршрутизатор используется в другой сети или если меняется IP-адрес DNS, поэтому это не идеальный ответ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .