自宅で使用しているドメインがあります。議論のために、これを と呼びましょうdomain.com
。このドメインを自宅のネットワークで使用していますが、実際にはドメインの所有者でもあります。そのため、www.domain.org
サブドメインを 1 つロードすると、DNS サーバーがこの要求を自宅のドメインではなく実際のインターネットにリダイレクトするようにします。
ドメインを使用して、自宅のデバイスを識別します。これを実現するにはどうすればよいでしょうか。
私は、ゲートウェイと DNS サーバーの両方として機能する Ubuntu マシンで BIND を実行しています。
答え1
競合を避けるために、内部ネットワークを第 3 レベル (つまりdevice1.lan.domain.org
) に移動することをお勧めします。
そうは言っても、必要なのは基本的にサブドメインの委任です。私の記憶が正しければ、次のエントリを追加するだけで済むはずです。
www IN NS ns1.example.com.
www IN NS ns2.example.com.
いずれにせよ、インターネット アクセスがなければこれは機能しないため、委任に関するその他のベスト プラクティスはすべて無視できます。
答え2
これを行う最も簡単な方法は、$INCLUDE
BIND の機能を使用することです。
必要なのは、すべての内部名 (例: ) のファイルを作成し、db.domain.com-internal
その中にすべての内部レコード (すでに存在するので、ファイル名を置き換えるだけ) を含め、次に という 2 番目のファイルを作成し、そこにdb.domain.com-external
SOA レコードと NS レコードを除いた外部の実際のドメインのすべてのレコードを含めることだけです。
ファイルの最後にdb.domain.com-internal
次の行を追加します: ,
$INCLUDE db.domain.com 外部
これにより、2 つのファイルを使用して内部と外部を論理的に分離できますが、ディレクティブは$INCLUDE
それらを 1 つの完全なドメイン ビューとして結合します。質問される前に言っておきますが、www.domain.com の解決が A レコードまたは CNAME レコードのどちらによって内部で行われるかは関係なく、ブラウザーが返す IP アドレスはインターネット上の Web サイトに送信されます。
再ロードして、エラーをチェックするだけです。簡単です。
適切な分割 DNS 構成 (内部 / 外部) では、内部で表示される完全なレコード セットのサブセットが世界に公開されるため、これはうまく機能します。つまり、一般に、ドメインの外部公開ビューでは、IP アドレスを持つパブリックに到達可能な名前のみを公開します。