• 締切済み

bind9のDNDサーバーの設定に詳しい方

bind9のDNDサーバーの設定に詳しい方 server-worldというサイトを参考にローカル環境にDNDサーバーを立てようとしていますが、一か所、分からない部分があります。 https://www.server-world.info/query?os=Ubuntu_22.04&p=dns&f=3 [named.conf] で定義した各ゾーン用に、設定ファイルを作成する時に /etc/bind/ドメイン名.lanのファイルを作成しますが そこに # ネームサーバーを定義 IN NS dlp.ドメイン名. # ネームサーバーの IP アドレス IN A 10.0.0.30 # 使用するメールサーバーを定義 IN MX 10 dlp.ドメイン名. # ホスト名に関連付ける IP アドレスを定義 dlp IN A 10.0.0.30 www IN A 10.0.0.31 の記述があります。 この最後の www IN A 10.0.0.31 の意味が分かりません。 dlp IN A 10.0.0.30 は、今、立てようとしているサーバーと、そのIPアドレスであろうと思います。 ドメインの頭にくっつけているので、dlpはサブドメインのようなもの? では、wwwは? WEBサーバーをローカルに立てるつもりはないのですが、これは必要なのでしょうか?

みんなの回答

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.4

> hostsの代わりにというノリではやれないようですね。 単純には難しいですね。 でも、会社でインターネットで使用するドメイン名を持っていれば xxxx.local.example.co.jp の様なローカルだけで使用するFQDNを使用するようにすれば共存が出来るようになります。 あくまでも server1 のようにインターネットのドメイン名空間のルールに沿わない運用だと難しいと言うだけです。 server1.local.example.co.jp の様なホスト名にして運用し、各クライアントのDNSサフィックスとして「local.example.co.jp」を指定しておけば、server1 とホスト名を指定した場合に行われる名前解決では server1.local.example.co.jp をDNSサーバに問い合わせてくれますので、利用者は local.example.co.jp を意識する必要はありません。 DNSサフィックスの設定はDHCPでIPアドレスと一緒にクライアントに配れますから、設定次第では意図されているような運用は可能になりますが、BIND側(DNSサーバ側)の設定を変えるのは非常に面倒くさいのです。

webuser
質問者

お礼

ありがとうございます。

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.3

> > DNSの階層から行けばFQDNが server1 だけと言うのはあり得ないので、そのような定義は出来ません。 > 上記のような事はできないのですか? 全く出来ない訳ではありませんが、そのDNSサーバはインターネットと一切接続せず、またそのDNSサーバを参照するクライアントはインターネットに一切接続しない完全にクローズドの環境であることが前提になります。 その場合、ZONEファイルに記述するのでは無くhintファイルを独自のモノに書き換えて使用する事になります。 hintファイルを弄って独自のドメイン名空間を作ることになるので、そもそものドメイン名の階層構造やDNSの動作の仕組みを理解していないとDNSサーバ自体がまともに動かなくなりますし、間違ってインターネットに接続すると他のネットワークに迷惑を掛ける可能性があるので注意して下さい。 > これから定義するDNSサーバーの名前が「dlp.ドメイン名」でないのなら、DNSサーバーの名前は何になりますか? ちなみにコンピュータ名はtest1でIPアドレスは192.168.10.231です。 DNSサーバにZONE情報を登録する時は「これから」では無く、動作させる準備が整っていて「設定済」のホスト名を記述しなければいけません。 DNSサーバを動かした後に定義したホストを設定するのでは遅いですよ。 基本的にインターネットのドメイン名はルートドメイン(DNSサーバ上では . と表す)からの階層構造で、ルートドメインの管理者はトップレベルドメイン(com とか jp とか)の権限をトップレベルドメインの管理者に移譲し、トップレベルドメインの管理者は第2レベルドメイン(co.jp とか ne.jp とか)の権限を第2レベルドメインの管理者に移譲するという階層構造で管理権限を移譲していく方法をとっていて、DNSサーバはこの階層構造を前提に名前解決する仕組みになっているので、階層構造を無視したZONEを作る場合はインターネットと親和性がありません。 DNSサーバを使って独自のドメイン名空間を作る場合、この権限移譲を繰り返す階層構造なども理解していないと設定は難しいと思います。

webuser
質問者

お礼

ありがとうございます。 > 全く出来ない訳ではありませんが、そのDNSサーバはインターネットと一切接続せず、またそのDNSサーバを参照するクライアントはインターネットに一切接続しない完全にクローズドの環境であることが前提になります ネット上に公開されたサーバーに グローバルIPアドレスとグローバルドメイン名を紐づけるような話ではありません。 名前解決したいのは全てローカルIPアドレスです。 DNSサーバは内部向けですのでWANとLANにだけアクセス出来ればよく インターネットと接続する必要はありません 外からアクセスすることもありませんが 「一切接続せず」という状態にするのは難しいです。 クライアントはインターネットに一切接続しない完全にクローズドの環境であること との事ですが、 クライアントもDNSサーバを使って名前を解決したいのは内部のストレージサーバーですが 「一切接続せず」という状態にするのは難しいです。 hostsの代わりにというノリではやれないようですね。

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

> もしかして、ここにhostsに書くようなコンピュータ名とIPアドレスの組み合わせを羅列させるのですか? その通りです。 やっている事はhostsと変わりません。 > 「dlp.ドメイン名」というホストを「10.0.0.30」というアドレスでこれから定義するという意味ではないのですか? 違います。 DNSサーバはクライアントから「dlp.ドメイン名」というホストのIPアドレスを教えてとリクエストを受けると、ゾーンファイルの定義を検索してIPアドレスを探し答えるという仕組みのモノです。 この場合、クライアントに対してIPアドレスは「10.0.0.30」ですよと回答を送ります。 > wwwは「ad.dm01」のサブドメインになるのですよね? それは named.conf の記述次第です。 named.conf には zone "ドメイン名" IN { type master;・・・ } の様な記述をしていると思います。 このドメイン名が基準となるので www IN A 10.0.0.31 とAレコードを書けば基本的に www.ドメイン名 と補完されます。 named.conf のドメイン名部分に「ad.dm01」と記述して入れば www.ad.dm01 のIPアドレスは 10.0.0.31 と言うことになります。 named.conf に書いたドメイン名が「dm01」だった場合は www.dm01 と言う事になるので、サブドメインの配下に入れたい場合は、 www.ad IN A 10.0.0.31 または $ORIGIN ad.dm01. www IN A 10.0.0.31 と記述することで www.ad.dm01 のIPアドレスは 10.0.0.31 と言うことになります。 > 最初の質問と重複しますが、 > もしかして、ここにhostsに書くようなコンピュータ名とIPアドレスの組み合わせを羅列させるのですか? > でも、ここに書くと、「ad.dm01」のサブドメインになってしまいませんか? bind でDNSサーバを動かす以上なにかしらベースとなるドメイン名があって、そのドメイン名とホスト名を組み合わせた名前で扱うことになります。 > server1(192.168.10.221)というストレージサーバーがありますが、これを定義したいとして DNSの階層から行けばFQDNが server1 だけと言うのはあり得ないので、そのような定義は出来ません。 ActiveDirectoryを使うにしても、ホスト名などは必ず組織を表すドメイン名が必要になるのでFQDNが server1 だけと言う定義は不可能だと思います。 実際使用する際に server1 だけを指定していても、システム上はドメイン名を補完して処理します。

webuser
質問者

お礼

ありがとうございます。 > やっている事はhostsと変わりません。 hostsには server1 192.168.10.221 server2 192.168.10.222 という具合に記述しており、下記のようにserver1という名前からpingが通ります。 > ping server1 server1 [192.168.10.221]に ping を送信しています 32 バイトのデータ: 192.168.10.221 からの応答: バイト数 =32 時間 <1ms TTL=64 192.168.10.221 からの応答: バイト数 =32 時間 =1ms TTL=64 192.168.10.221 からの応答: バイト数 =32 時間 <1ms TTL=64 192.168.10.221 からの応答: バイト数 =32 時間 <1ms TTL=64 192.168.10.221 の ping 統計: パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、 ラウンド トリップの概算時間 (ミリ秒): 最小 = 0ms、最大 = 1ms、平均 = 0ms > DNSの階層から行けばFQDNが server1 だけと言うのはあり得ないので、そのような定義は出来ません。 上記のような事はできないのですか?  ◇ ◇ ◇ ◇ ◇ > > 「dlp.ドメイン名」というホストを「10.0.0.30」というアドレスでこれから定義するという意味ではないのですか? > > 違います。 これから定義するDNSサーバーの名前が「dlp.ドメイン名」でないのなら、DNSサーバーの名前は何になりますか? ちなみにコンピュータ名はtest1でIPアドレスは192.168.10.231です。 「dlp.ドメイン名」はDNSサーバーの名前でないなら何ですか? DNSサーバーを立てる上で必要ですか? > DNSサーバはクライアントから「dlp.ドメイン名」というホストのIPアドレスを教えてとリクエストを受けると、ゾーンファイルの定義を検索してIPアドレスを探し答えるという仕組みのモノです。 > この場合、クライアントに対してIPアドレスは「10.0.0.30」ですよと回答を送ります。  ◇ ◇ ◇ ◇ ◇ だんだん分からなくなってきました。 今回やりたい事の第一弾は テスト的に立てたUbuntuのコンピュータにhostsに記述している内容を移植し、PCのhostsファイルの中をクリアして今まで通り名前からアクセス出来るようにすることです。 セグメント 192.168.10 本社 192.168.11 支社 DNS用コンピュータ test1 192.168.10.231 本社PC1 pc01 192.168.10.11 支社PC1 pc02 192.168.11.21 ストレージサーバー server1 192.168.10.221 server2 192.168.10.222 同じセグメントからはhosts無しでも名前から引ける 支社PC1にはhostsがないと名前から引けない ※運営の方へ IPアドレスやドメイン名はローカルのものしか書きませんので情報の流出はありません。 グローバルのIPアドレスやドメイン名が電話番号に相当するなら、ローカルのそれらは内線番号のようなものなので、それだけを知ってもアクセスできません。

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

Aレコードはホスト名とIPアドレスを紐付けるための情報です。 dlp IN A 10.0.0.30 は「dlp.ドメイン名」というホストのIPアドレスが「10.0.0.30」と言う意味です。 www IN A 10.0.0.31 は「www.ドメイン名」というホストのIPアドレスが「10.0.0.31」と言う意味です。 「www.ドメイン名」というホストが存在しないのであれば定義する必要はありません。 「10.0.0.31」というIPアドレスのホストが存在し、名前を付けたいのであれば www では無く付けたい名前を記述しましょう。

webuser
質問者

お礼

有難うございます。 > Aレコードはホスト名とIPアドレスを紐付けるための情報です。 もしかして、ここにhostsに書くようなコンピュータ名とIPアドレスの組み合わせを羅列させるのですか? server1 IN A 192.168.10.221 server2 IN A 192.168.10.222 みたいに > dlp IN A 10.0.0.30 > は「dlp.ドメイン名」というホストのIPアドレスが「10.0.0.30」と言う意味です。 「dlp.ドメイン名」というホストを「10.0.0.30」というアドレスでこれから定義するという意味ではないのですか? 今、やりたいのは、dmsv01というubuntu22のコンピュータ(192.168.10.11)にDNSの機能を持たせる事です。 のちにADサーバーで使おうと思っていますのでドメイン名は「ad.dm01」としたとして root@dlp:~# vi /etc/bind/ad.dm01.lan $TTL 86400 @ IN SOA dlp.ad.dm01. root.ad.dm01. ( # シリアル番号は任意の数値で OK # 管理上の推奨は [YYYYMMDDnn] (更新日付 + 連番) 2022081001 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) # ネームサーバーを定義 IN NS dlp.ad.dm01. # ネームサーバーの IP アドレス IN A 192.168.10.11 # 使用するメールサーバーを定義 IN MX 10 dlp.ad.dm01. # ホスト名に関連付ける IP アドレスを定義 dlp IN A 192.168.10.11 みたいな感じで行けるのかと思いましたが。 > www IN A 10.0.0.31 > は「www.ドメイン名」というホストのIPアドレスが「10.0.0.31」と言う意味です。 wwwは「ad.dm01」のサブドメインになるのですよね? > 「www.ドメイン名」というホストが存在しないのであれば定義する必要はありません。 > 「10.0.0.31」というIPアドレスのホストが存在し、名前を付けたいのであれば www では無く付けたい名前を記述しましょう。 最初の質問と重複しますが、 もしかして、ここにhostsに書くようなコンピュータ名とIPアドレスの組み合わせを羅列させるのですか? でも、ここに書くと、「ad.dm01」のサブドメインになってしまいませんか? server1(192.168.10.221)というストレージサーバーがありますが、これを定義したいとして server1 IN A 192.168.10.221 と書くと server1.ad.dm01になってしまいませんか? うーん。 細かく書くと自分自身、やっぱり理解できていないという事が分かってきました。 dlpもそもそも意味を分かっていないです。 WEBサーバーを立てる時は(なくてもいけるけど)決まりモノのようにwwwのサブドメインを作っているのと同様に DNSサーバーを立てる時にはdlpのサブドメインを作るのかと思いました。