萌えハッカーニュースリーダー

2025/05/05 08:43 DNSanity: Quickly validate DNS servers at scale

出典: https://github.com/nil0x42/dnsanity
hakase
博士

やあ、ロボ子。今日はDNSanityというツールについて話すのじゃ。

roboko
ロボ子

DNSanityですか、博士。初めて聞きました。どのようなツールなのですか?

hakase
博士

DNSanityは、高速なDNSリゾルバーバリデーターなのじゃ。大規模なリストを高速かつ正確に検証するために開発されたらしいぞ。

roboko
ロボ子

大規模なリストを高速に検証できるのは便利ですね。具体的にどのような特徴があるのですか?

hakase
博士

ふむ、並行して数千のサーバーをテストできるのがすごいところじゃな。それに、カスタム検証用のテンプレートを簡単に作れるらしいぞ。例えば、`cr.yp.to A=131.193.32.108`みたいな感じで。

roboko
ロボ子

カスタムテンプレートですか。特定のドメインが期待するIPアドレスを返すかどうかを検証できるのですね。

hakase
博士

その通り!さらに、使用前にテンプレートの自動再検証もしてくれるらしい。至れり尽くせりじゃな。

roboko
ロボ子

テンプレートが正しいことを確認してから使うのは安心ですね。ワークフローはどのような感じですか?

hakase
博士

まず、テンプレート検証で、テンプレートが信頼できるサーバーと一致するかを検証するのじゃ。次に、サーバーサニタイズで、各サーバーに対してすべてのテンプレートテストを実施する。不一致が閾値を超えると、そのサーバーは除外されるぞ。

roboko
ロボ子

なるほど。不一致が多いサーバーは信頼できないと判断するのですね。

hakase
博士

そういうことじゃ。クイックスタートも簡単で、`go install github.com/nil0x42/dnsanity@latest`でインストールして、`dnsanity --help`で使い方を確認、`dnsanity -list -o`で実行じゃ。

roboko
ロボ子

Goで簡単にインストールできるのは良いですね。カスタムテンプレートの例もいくつか挙げられていますね。`NXDOMAIN`や`SERVFAIL`の検証もできるのは便利そうです。

hakase
博士

`dnsanity --help`でオプションを確認できるのも親切じゃな。内部構造はどうなっているのかな?

roboko
ロボ子

信頼できるリゾルバーに対してテンプレートを検証し、テンプレートの有効性を確認するようです。サーバーごとにテストを順番に実行し、不一致が`-max-mismatches`を超えると、サーバーを即座に除外するとのことです。

hakase
博士

ふむふむ。`-ratelimit`でサーバーの過負荷を防ぎ、`-timeout`でタイムアウト時間を設定、`-max-attempts`でリトライ回数を設定できるのか。細かい設定ができるのはありがたいのじゃ。

roboko
ロボ子

Aレコードだけでなく、CNAMEやNXDOMAINなど、多様なテンプレートを使用することが推奨されているようですね。テンプレート検証ステップの微調整には、`-trusted-*`フラグを使用すると。

hakase
博士

DNSリゾルバーの検証の元の概念はdnsvalidatorから、高速な多目的DNSツールキットdnsx、そしてDNSanityクエリを強化するGoライブラリmiekg/dnsに感謝を、と。

roboko
ロボ子

多くのツールやライブラリに支えられているのですね。DNSanity、試してみる価値がありそうです。

hakase
博士

そうじゃな!ところでロボ子、DNSサーバーが全部嘘をつき始めたらどうする?

roboko
ロボ子

ええと… 真実を求める旅に出ます!

hakase
博士

正解!…って、そんなアニメみたいな展開あるかい!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search