0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【執筆中】実践DNSサーバ構築

Last updated at Posted at 2025-10-06

はじめに

本記事ではDNSサーバの構築について扱います。環境としては、Linuxでサーバを建てることを想定しています。サーバ構築についてマクロ的な手順を見ていきながら、トラブルシュートの方法についても解説していきます。

まずは構築するサービスを確認しよう!

サーバの構築を行う前に、これからどんなサービスを立ち上げるのかを確認しておくと良いと思います。例えばWebサービスを立ち上げるとすると、どんなサーバを構築する必要があるでしょうか?

SV1-1-1.png

まずwebアプリのためのwebサーバ、appサーバ、DBサーバが必要ですね!また、ユーザがURLでアクセスするためのDNSサーバも必要です。もしもユーザにメールを送信する機能をつけたり、サーバのエラーメッセージを管理者に送るのであればメールサーバも必要になります。このように1つのサービスを立ち上げるために複数のサーバを構築することが必要だということは意識しておくべき点です。

サーバ構築の大まかな手順!

サーバを構築する際の大まかな手順について見てみます。以下のような手順で実際の構築を行います。

さて、ここからはDNSサーバを例に、実際に構築を行なっていきます。

要件の確認

サーバ構築の要件を確認します。今回は一例として以下のようなことができるDNSサーバを構築してみましょう!

  • test1.dom.exampleから192.168.1.10に正引きできる
  • test1.dom.exampleの別名としてwww.dom.exampleを与える
  • 上記に対応した逆引きができる

サーバソフトウェアの確認

要件を満たす動作ができるサーバソフトウェアが存在するかどうかを調査します。今回の場合は、DNSのソフトウェアを調査することになりますね!調査の結果、BINDというパッケージが最善だと結論づけたとしましょう。以降では、BINDのnamedサービスを用いて、DNSサーバ構築をおこなっていきます。

DNSサーバの構成について確認してしておこう!

ここまでで、DNSサーバの構築にBINDを用いることが決まりました。ここで、BINDを使ってどのようにサービスが構築されるのかをしっかり確認しておきます。概ね以下のような構成要素があると考えられます。

SV1-3.png

この図は、3つの名前解決のシナリオを1つの図で表したものとなっています。以降からその3つのシナリオについて解説を行います。

シナリオ1

まずは1つ目のシナリオです。これは社内のDNSクライアントが、コンテンツサーバに直接名前解決を依頼するようなシナリオです。この場合の登場人物はDNSクライアントとDNSプライマリサーバになります。クライアント側では、resolv.confファイルを用いてDNSプライマリサーバを指定し、サーバ川ではnamed.confファイルを用いてゾーンファイルを格納するディレクトリ等を設定後、指定したディレクトリに名前解決の情報を記載するゾーンファイルを格納することになります。

SV1-5.png

シナリオ2

2つ目のシナリオです。これは、外部からの名前解決のリクエストへ対応する際、自社のDNSサーバをプライマリとセカンダリに冗長化するような例です。この場合、プライマリサーバが自身のゾーンファイルをセカンダリサーバに渡すことによって、名前解決情報の共有を行います。

SV1-6.png

このとき設定すべきパラメータとして、「allow-transfer」があります。このパラメータで設定したサーバに向けて、ゾーン転送が行われます。

シナリオ3

最後に3つ目のシナリオです。これは、キャッシュサーバを通してインターネットや外部ネットワーク向けの名前解決を行うような例です。社内のキャッシュサーバ以降の名前解決のリクエストは、外部NW上のDNSサーバへ依頼します。BINDではデフォルトで「named.ca」というゾーンファイルが設定されており、ルートドメイン用のDNSサーバのIPアドレス情報が格納されています。

SV1-7.png

要件に戻って、、、

以上の3つのシナリオを一つにまとめた図を再掲します。

SV1-3.png

今回の要件は、DNSプライマリサーバさえあれば実装できるため、シナリオ1のみ考慮すれば良さそうです!つまり主に設定するのは以下の3つになりそうですね!

  • DNSクライアントのresolv.conf
  • DNSサーバのnamed.conf
  • DNSサーバのゾーンファイル

サーバソフトウェアのインストール

ここまででDNSサーバ構築のイメージができたので、実際の作業に取り掛かっていきましょう。まず、linuxサーバ上にBINDをインストールしなければ何も始まりません!linuxでパッケージをインストールするためにはrpmyumdnf等のコマンドを利用します。例えば以下のようなコマンドを発行することでインターネット上のBINDパッケージをインストールできたりします。

dnf -y install bind bind-utils
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?