web-dev-qa-db-ja.com

DD-WRT:DNSMasq拡張ホストが機能しない

DD-WRT(ファームウェア:DD-WRT v24-sp2(09/08/09)mini)を実行しているLinksysルーターがあります。 DHCPによって割り当てられたシステムのDNS名を正常に解決できますが、それらのドメインを完全に修飾した場合に限ります。これは、この正確な機能をアクティブにすることになっている「expand-hosts」DNSMasq追加オプションを使用しているにもかかわらずです。

これが私のdnsmasq.confです:

interface=br0
resolv-file=/tmp/resolv.dnsmasq
domain=example.com
dhcp-leasefile=/tmp/dnsmasq.leases
dhcp-lease-max=51
dhcp-option=lan,3,10.77.0.5
dhcp-authoritative
dhcp-range=lan,10.77.0.100,10.77.0.149,255.255.0.0,1440m
dhcp-Host=00:1A:A0:1D:82:5A,astatichostname,10.77.1.40,infinite
expand-hosts

(参考:example.comとastatichostnameは、私が使用する実際の取引名のプレースホルダーです。私のネットワークは10.77.0.0/16を使用し、ルーターは10.77.0.5にあります。)

結果:

> nslookup astatichostname 10.77.0.5
Server:     10.77.0.5
Address:    10.77.0.5#53

** server can't find astatichostname: NXDOMAIN

> nslookup astatichostname.example.com 10.77.0.5
Server:     10.77.0.5
Address:    10.77.0.5#53

Name:   astatichostname.example.com
Address: 10.77.1.40

DNSMasqのexpand-Hostをトリップさせる可能性のあるものは他にありますか?

12
Craig Walker

この質問は古いですが、これはこの問題の上位のGoogle検索結果の1つであり、私はついにそれを理解しました。

問題は、それがexpand-hostsが行うことではないということです。ドキュメントは非常にあいまいですが、expand-hostsが行うことは、DNSクエリではなく、/etc/hostsのホストエントリにドメインを追加することです。だから例えば

/ etc/hosts:

10.77.0.5 astatichostname

dnsmasq.conf:

expand-hosts
domain=example.com

次に、astatichostname.example.comのdnsクエリは10.77.0.5に解決されます(astatichostnameのみのDNSクエリに加えて)。



解決:

したがって、解決策は、dd-wrtを取得してドメインなしで/etc/hostsにエントリを作成し、完全に修飾されたAの場合にそれらのホストエントリをexample.comドメインの一部と見なすようにdnsmasqに指示することです。レコードDNSクエリが入ります。
これを行うには、次のことを行う必要があります。

  1. example.comドメインをSetup-> Basic Setup pageのDomain NameフィールドのOptional Settings
  2. DHCP Serverの下のServicesページのLAN Domain設定を空白にします。
  3. DNSMasqの下のServicesページでAdditionalDNSMasq Optionsexpand-hostsを追加

ステップ#1domain=ファイルに配置されるdnsmasq.conf設定を制御します。手順#2/etc/hostsに入力されるエントリからドメインを削除します。ステップ完全修飾DNSクエリが着信すると、ドメインを/etc/hostsのエントリに追加します。


dd-wrtがこれを素晴らしくシンプルにしたことをとてもうれしく思います...

8
Patrick

以下は私のDD-WRTで私のために働きます:

expand-hosts
local=/lan/
domain=lan

local設定が欠落しているためだと思います。また、GUIでlanを「LANドメイン」として設定しています。

2
Jim Hunziker