web-dev-qa-db-ja.com

なぜdnsmasqに権限を与えるとCNAME解決が失敗するのですか?

私はCNAMEをdnsmasqに設定しています

cname=ch1-lampe-bureau.swtk.info,switch-3

それは正しく解決されます(switch-3はdnsmasqからDHCP経由でIPを取得するデバイスです):

root@rpi1 ~# Host switch-3
switch-3 has address 10.200.0.123
root@rpi1 ~# Host ch1-lampe-bureau.swtk.info
ch1-lampe-bureau.swtk.info is an alias for switch-3.
switch-3 has address 10.200.0.123

次に、dnsmasqを自分のドメインに対して信頼できるものにしたかったので、

auth-zone=swtk.info
auth-server=rpi1.swtk.info
auth-peer=192.168.0.13

ゾーン転送は賢く機能します:192.168.0.13はゾーンを転送できます。

しかしCNAMEsの解決は停止しました。Aレコード(たとえば、上記のswitch-3)は解決できますが、CNAMEsは解決できません。

root@rpi1 ~# Host switch-3
switch-3 has address 10.200.0.123
root@rpi1 ~# Host ch1-lampe-bureau.swtk.info
Host ch1-lampe-bureau.swtk.info not found: 3(NXDOMAIN)

権限のあるdnsmasqと、CNAMEsを解決する能力との関係は何ですか?

注:これは内部DNSであり、外部に登録されたswtk.infoドメインとは関係ありません。

2
WoJ

この動作はdnsmasq固有のようであり、DNSの観点からこれをどのように実行するかは明らかではありません。
私の意見では、「実際の」ネームサーバーのセットアップを検討することは価値があります(その時点で、一般に適用可能なDNSの理解が代わりに関連します)。

私自身はdnsmasqユーザーではありませんが、 dnsmasq manual の次のセクションでは、このシナリオでの動作と要件を説明しているようです(強調追加):

dnsmasqが権限のあるサーバーとして機能するように構成されている場合、次のデータを使用して権限のあるゾーンにデータが入力されます。

--mx-Host、-srv-Host、-dns-rr、-txt-record、-naptr-record、-caa-record(レコード名が権限のあるドメインにある限り)。

-cnameレコード名が権限のあるドメインにある限り。 CNAMEのターゲットが修飾されていない場合、権限のあるゾーン名で修飾されます。この方法で使用されるCNAME(のみ)は、次のようにワイルドカードにすることができます

--cname = *。example.com、default.example.com/etc/hosts(および--addn-hosts)からのIPv4およびIPv6アドレスと、アドレスが1つに分類される場合の--Host-recordおよび--interface-name --auth-zoneで指定されたサブネットの。

DHCPリースのアドレス(アドレスが--auth-zoneで指定されたサブネットの1つに該当する場合)(構築されたDHCP範囲が使用されている場合、これは、インターフェースに動的に割り当てられたアドレスに依存するため、インターフェースの動的アドレスによってサブネットを定義する--auth-zoneの形式を使用して、この条件が確実に満たされるようにする必要があります。

デフォルトモードでは、DHCPリースに非修飾名があり、場合によっては--domainを使用して構築された修飾名があり、権限のあるゾーンの名前は非修飾名とゾーンのドメインから構築されます。これは、-domainで指定されたものと同じ場合と異なる場合があります。 --dhcp-fqdnが設定されている場合、DHCPリースに関連付けられた完全修飾名が使用され、ゾーンのドメインと一致する必要があります。

つまり、マニュアルの上記のセクションに基づいて、私の理解はあなたのcname=ch1-lampe-bureau.swtk.info,switch-3 手段 ch1-lampe-bureau.swtk.info. CNAME switch-3.swtk.info.

さらに、DHCPから登録された名前は、auth-zone=...は、割り当てられたIPアドレスと一致するサブネットも指定します。 (--auth-zone=<domain>[,<subnet>[/<prefix length>][,<subnet>[/<prefix length>].....][,exclude:<subnet>[/<prefix length>]].....]

現在switch-3.swtk.info.はおそらく存在しませんが、ゾーンに適切なサブネットを指定すると、その名前が表示され、その時点で--cnameも機能し始めます。

1