web-dev-qa-db-ja.com

openwrt:FQDN以外のホスト名を解決するためにDNSサーバーの設定を変更することはできません

私のopenwrt(ver。10.03.1-RC6)にsshを実行すると、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

ご覧のとおり、openwrtのローカルDNSサーバー(dnsmasq)はFQDN以外のホスト名を解決できません。イントラネットのドメインを追加すると、この問題は解決しますが、機能しません。

イントラネットでDNSサーバーを実行しているので、少なくともopenwrtのDNSmasqにプライマリDNSサーバーを参照してもらいたいと思います。

だから私は何度もweb-configをチェックしましたが、何が間違っているのか、何が欠けているのか理解できませんでした。次に、ファイル/etc/config/networkmanual を確認しました。

ファイルは最初は次のようになりました。

[...]
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'
[...]

web-configによって挿入された「listdns」がありますが、これは私が期待する通常の「オプション」とは異なります。だから私はそれを試しました

    option 'dns' '192.168.112.112'

また、可能な限りあらゆる方法で「dns-search」オプションを試しました

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

/etc/init.d/network reloadでネットワークを再起動するたびに。 dns-search句を解析できなかったため、削除する必要がありました。

上記の「lan」インターフェイスエントリを表示していることに気付くでしょう。その理由は、WRT54Gをアクセスポイントとしてのみ使用しているためです。私はWANインターフェイスではなく、4つのLANイーサネットインターフェイスの1つ(イントラネットの残りの部分に接続され、インターネットゲートウェイがある場所)を使用し、基本的に私のアンテナを使用しますユニットは、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

この時点で私は迷子になっています。ここで何が欠けていますか?

2
nass

dnsmasqは現在、私のバリアブレーカーでやや信頼性が低く、その結果、

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

ここでも、名前が通常問題なく解決できる場合でも。

最初に試してみてください

killall -HUP dnsmasq

または、dnsmasqが実際にリクエストを適切に処理することを確認したい場合は、再起動することもできます。

次に、dnsmasqでFQDNを自動的に完了するオプションがあります。私はこれを次の構成(/ 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/networkには

option dns '192.168.200.1'

ネットワークリロードが実際にdnsmasqをリロードして、ディレクティブを有効にするためにクライアント側でトリガーする必要があるdhcpリースを再バインドするかどうかは今のところわかりません。

nslookupで直接クエリを実行するときにDNSサーバーでtcpdumpを試しましたか?リクエストが届いたことはありますか?これは、問題が実際にopenwrtボックスにあることを確認するための最初のポインタになります...

dnsmasqが一貫してリクエストを処理する方法を見つけたら、私に知らせてください。これにより、ここではかなり不安定になります。

/etc/dnsmasq.confを編集できるかどうかはわかりませんが、さまざまなオプションを試してみることができます。フルLinuxボックスでdnsmasqを数回使用し、常に自分のニーズに合わせて構成することができましたが、openwrtでは少し違うようです。

また、おそらくそれぞれのセクション(セカンダリDNS)を見てください http://wiki.openwrt.org/doc/howto/dhcp.dnsmasq#add_a_secondary_dns

1
tbart

正しいオプションはアンダースコア付きです:

option dns_search 'my.local.domain'
1
Stuart Cardall