現在、自宅のラボ用に DNS サーバーを設定しています。ラボのドメイン ( とします) に対応するゾーン ファイルを作成しました。home.lab
サーバーは、そのゾーンの権限のあるサーバーであることを認識しており、 に関するクエリに応答できるようになりましたdevice.home.lab
。
今、この DNS サーバーを他のデバイスでも使用して、ゾーンの権限にしたいのですhome.lab
が、グローバル インターネット ドメインを解決できるようにする必要があります。エンド ホストをルックアップにのみ使用し、それ以外は別のものを使用するように設定する方法はないようですhome.lab
。これまでのところ、いくつかの解決策が考えられます。
- このサーバーを他のゾーンも再帰的に解決するように設定してください(これは、前述のように機能します)。この質問では)
- サーバーが自身のゾーン以外のゾーンを要求された場合、ルートサーバーへの参照で応答し、そこからクライアントが自身の階層を再帰的に問い合わせるようにする。
- 別のDNSサーバーを設定し、要求があった場合は
home.lab
権威DNSサーバーからの回答を転送し、要求がない場合はキャッシュされた回答を転送する。
最初のオプションは、権威サーバーが残りのドメインの再帰リゾルバーとしての二重の役割も担うため、適切ではないと思われます。2 番目のオプションは、クライアントが新しいドメインごとに階層を手動で解決する必要があり、非常に時間がかかる可能性があるため、非効率的です。
したがって、3 番目のオプションが今のところ最善のようです。これを BIND9 で設定するにはどうすればよいでしょうか。また、別のソリューションを検討する必要がありますか。
答え1
最初のオプションは、権威サーバーが残りのドメインの再帰リゾルバーとしての二重の役割も持つため、適切ではないと思われます。
小規模な LAN / ホームラボでの使用では、これは実際には問題ではありません。
(これは、Active Directory環境でもよく行われ、管理者がすべてのクライアントに、専用のリゾルバではなく、AD DNSゾーンをホストしているAD DCを直接使用するように指示します。不要、ただし、厳密に言えば悪いわけではありません。
いくつかのエッジケース(DNSSEC ADフラグなど)があるかもしれませんが、ない権威サーバーにリゾルバー機能を追加するのではなく、その逆、つまりマシンが権威サーバーをリゾルバーのように使用するようにするのです。すでにやっている。
2 番目は非効率的です。クライアントは新しいドメインごとに階層を手動で解決する必要があり、非常に遅くなる可能性があります。
また、ほとんどのクライアントはスタブリゾルバ – 紹介には従いません。
一方、フルリゾルバはキャッシュ紹介。これまで使用していたパブリック DNS リゾルバ (ISP や Google など) も、新しいドメインごとに階層を解決する必要があります。もちろん、世界中のすべての DNS レコードの完全なコピーを保持しているわけではありませんが、少なくとも最初のレベル (TLD) は通常メモリ内にキャッシュされており、一般的なドメインの階層レベルはそれほど多くないため、遅くはありません。
したがって、3 番目のオプションが今のところ最善のようです。これを BIND9 で設定するにはどうすればよいでしょうか。また、別のソリューションを検討する必要がありますか。
BIND9 で、type static-stub
ホームラボ認証サーバーを指すゾーンを作成します。(type forward
ゾーンに似ていますが、「static-stub」は権限のあるサーバーに直接指されることを想定するのに対し、「forward」は別のリゾルバーにチェーンされることを想定するものです。正確な違いはわかりません。)
他のすべてのドメインについては、forwarders{}
グローバルBIND構成と同様に上流サーバーを指定できます。これは必須ではありません。BIND9自体はルートDNSサーバーから参照を追跡することができます(「ルートヒント」疑似ゾーンが構成されている限り、デフォルトでそうします)。ない遅い (ただし、独自の巨大なキャッシュを持つ上流サーバーにリクエストを転送するよりも遅くなる可能性があります)。
一般的な代替手段は Unbound です (これはリゾルバとして使用することに重点を置いており、権限のあるサーバー機能は最小限です)。Unbound の構成は、ゾーン タイプが "static-stub" ではなく "static-stub" である点を除いて同様です。Unbound を転送クエリにするには、 "type: forward" ゾーンとしてstub
構成します。"."
カスタム TLD を作成すると、ルート ゾーンに存在しないことを証明する NSEC レコードがあるため、DNSSEC 検証ではうまく機能しないことに注意してください。lab.
そのため、LAN リゾルバーとホスト自体の両方で、ドメインを検証から明示的に除外する必要がある場合があります。ドメインのみがhome.arpa.
この種の使用 (意図的に署名されていない NS レコードを持つ) 用に予約されています。
(あるいは、有効にするDNSSEC を使用し、内部ゾーンに署名し、すべての検証リゾルバにカスタムの「トラスト アンカー」を指定します。DNSSEC はホーム ラボで実際には必要ありませんが、ここでの利点は、特に BIND では、トラスト アンカーを追加する方が除外を追加するよりも簡単である可能性があることです。