dnsmasq でローカルホスト名から複数のドメインを解決する

dnsmasq でローカルホスト名から複数のドメインを解決する

私は、Pi-hole 5.18.2 の一部として、Debian 11.0 ベースの Docker コンテナ内で dnsmasq 2.90 を実行しています。

ローカル アプリケーションに .local ドメインがハードコードされているため、複数のローカル ドメイン (.local と .subdomain.mydomain.com の両方) のローカル ホスト名のアドレスを提供するように dnsmasq を構成したいと思います。一度に動作させることができるのは 1 つのドメインのみです。

このコンテナは、ローカル ネットワークに DNS および DHCP サービスを提供しています。Pi-hole セットアップの一部として、にマウントされたファイルaddn-hosts=/etc/pihole/local.listに追加されます。このリストには、次のような、ローカルおよびローカルでアクセス可能なサブネットとホスト名の約 30 個の IP アドレスのリストが含まれています。.conf/etc/dnsmasq.d

192.168.1.10 server01
192.168.2.20 server02
100.115.x.x server03

dnsmasq は、 にマウントされた個別の設定ファイルで指定されているようにdomain=subdomain.mydomain.com、また でローカル ドメインとして設定されているように、DHCP 経由でローカル検索ドメインを提供します。dhcp-option=option:domain-search.subdomain.mydomain.com/etc/dnsmasq.dlocal=/subdomain.mydomain.com/

この検索ドメインと DNS サーバーの IP は、クライアントによって期待どおりに受け入れられ、実装されます。

❯ cat /etc/resolv.conf
search subdomain.mydomain.com
nameserver 192.168.2.2

nslookupホスト名のAaddn-hostsは期待どおりに動作し、検索サフィックスが追加され、正しい結果が返されます。

❯ nslookup
> server01
Server:     192.168.2.2
Address:    192.168.2.2#53

Name:   server01.subdomain.mydomain.com
Address: 192.168.1.10

server01.local に同じ IP を返したいと思います。

> server01.local
Server:     192.168.2.2
Address:    192.168.2.2#53

** server can't find server01.local: NXDOMAIN

.config ファイルに、と の別々のエントリがlocal=/subdomain.mydomain.com/local/ある場合とない場合の両方で、 local を追加しようとしました。これによって動作は変更されないか、(2 つのエントリを追加した場合) nslookup は では機能しますが では機能しなくなります。domain=/subdomain.mydomain.com/local/domain=subdomain.mydomain.com domain=localdomain=.local.subdomain.mydomain.com

.localdnsmasq がドメインの両方に対してホスト名 IP で応答するようにするにはどうすればよいですか.subdomain.mydomain.com?

答え1

将来これを見つけた人にとっての答えは(よくあることですが)私が愚かだったということです。

.localはmDNS用に予約されていますそのため、dnsmasq デバイスに .local を解決して .local を解決できることを通知するように指示することで、mDNS を破壊していました。また、mDNS クエリを解決しない nslookup を使用して解決をテストしていました。

dnsmasq 内の .local への参照をすべて削除し、サービスを再起動して DHCP リースを更新し、ping を介して .local 解決をテストすると、動作します。

関連情報