web-dev-qa-db-ja.com

子CNAMEとのCNAMEワイルドカードとの競合

PowerDNSからKnot2.7に移行しました。

現在、2つのDNSレコードと競合しています。

abcd.**www**.example.com CNAME -> somehost.example.net
*.example.com -> example.com

ここで問題はwww.example.comドメインにあります。 PowerDNSでは、*。example.comとして解決されていました。現在、応答はありません。 www.example.comのAまたはCNAMEレコードを追加すると、すべて問題ありません。問題は、上記で書いた最初のCNAMEに基づいています。

理由と方法を説明していただけますか?

ありがとうございました。

1
Pavel

あなたが説明する振る舞いは完全に予想されます。私が驚いたのは、PowerDNSで異なる結果が得られたという主張です(現在のバージョンでこれを再現できる場合は、バグレポートを提出することをお勧めします)。

これが予想される動作である理由は、DNSのワイルドカード機能が、ワイルドカードがワイルドカードエントリの下の存在しない名前(つまり、基本的には、基本的に必要な名前)にのみ展開されるように定義されているためです。それ以外の場合は、NXDOMAIN応答を取得します)。

ここで直感的に感じられないかもしれないのは、質問の2つのレコードでは、名前www.example.com存在する(独自のレコードがない場合でも)と見なされることです。 abcd.www.example.com(レコードがあります)につながるブランチの中間ノードです。 (レコードのないこのタイプの中間ツリーノードは、空の非終端記号または[〜#〜] ent [〜#〜]と呼ばれます)。
www.example.comという名前が存在するため、ワイルドカードの動作の定義から、*.example.comの影響を受けないようにする必要があり、NODATA応答(表示)が返されます。 www.example.com自体にレコードを追加しない限り、NOERRORステータスと権限セクションのSOA)。

2