私の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/network
と manual を確認しました。
ファイルは最初は次のようになりました。
[...]
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
この時点で私は迷子になっています。ここで何が欠けていますか?
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
正しいオプションはアンダースコア付きです:
option dns_search 'my.local.domain'