DNS

【簡単】bindを設定してDNSサーバーを構築する手順解説!

こんにちは、インフラエンジニアのryuです。

今回は、bindを設定してDNSサーバーを構築する手順を解説します。bindとは、OSSの1つでDNSサーバーを構築するためのソフトウェアです。bindはLinuxサーバーで構築します。初心者の方でも理解できるように解説します。

関連【おすすめ】コマンドを打ちながらLinuxが学べるサイトInfraAcademy

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

bindを設定してDNSサーバーを構築する手順解説!

DNSサーバーの構築方法が分からない

bindでDNSサーバーを構築しましょう!

今回の記事では、bindを使用してDNSサーバーの構築手順を解説します。

DNSサーバーをどうやって構築すればよいのか分からない方のために、DNSサーバーの仕組みの解説を交えながら説明します。

bindとはOSSの1つ

そもそも”bind”ってなに?

bind(バインド)とはOSSの1つで、DNSサーバーを構築するためのソフトウェアです。

bind(バインド)とはOSSの1つで、DNSサーバーを構築するためのソフトウェアです。

現在使われているバージョンはbind9です。bind10も開発されていましたが、開発が難航しているためbind9を改修して使われ続けています。

OSSについては、こちらの記事で解説しています。

そもそもDNSとは何なのか、分からない方のために復習しておきましょう。

DNSサーバーの仕組み

DNSサーバーとはどういうサーバーか分かりますか?

えーと・・・

DNSサーバーとは、名前解決をするサーバーです。

名前解決とは、IPアドレスとFQDNを紐づけることです。具体的には、”www.google.com(FQDN)”と”161.93.23.11(IPアドレス)”を紐づけます。

IPアドレスはPCの住所です。しかし、URLなどはサーバーの名前が書かれていますよね?IPアドレスを指定していなくても通信ができています。

DNSサーバーの挙動

このサーバーの名前(FQDN)とIPアドレスの紐づけ作業を行っているのがDNSサーバーです。

イメージは以下のような感じです。

DNSサーバーの概要

詳しくはこちらの記事で解説しています。

それでは、このDNSサーバーを自分で構築する方法を解説します。

bindを設定してみよう!

どうやってDNSサーバーを構築するの?

DNSサーバーを構築する手順は以下の通りです。

  1. bindのインストール
  2. ゾーンファイルの作成
  3. レコードの登録

それでは、Linuxサーバーを起動してbindを構築してみましょう。Linuxの環境構築ができていない方は、こちらからのページからLinuxを操作することができます。

【DNS講座②】LinuxでDNSサーバーを構築してみよう

bindのインストール

まずはbindのインストールです。今回はdebianを使用しています。コマンドは以下の通りです。”apt-get”コマンドを使用することでパッケージをインストールすることができます。

apt-get install bind9

コマンドを入力すると”Do you want to continue?”と聞かれるので”y”を入力してEnterを押します。

bind9のインストール

これでbind9のインストールが完了です。続いてbind9の設定を行います。

ゾーンファイルの作成

次にゾーンファイルの設定です。

ゾーンファイルとは名前解決をする情報を保存しておくファイルです。

まず、作業しやすいようにカレントディレクトリを移動しましょう。

cd /etc/bind

bindの設定ファイルは”/etc/bind”ディレクトリの中にあるので、”cd”コマンドを使用してカレントディレクトリを移動します。

次に”named.conf.default-zones“を編集します。このファイルで解決するドメインとゾーンファイルを登録します。編集するためには、viコマンドを使用します。

vi named.conf.default-zones

ファイルの中身は以下の通りです。下の5行を追加します。

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
        type master;
        file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
        type master;
        file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
        type master;
        file "/etc/bind/db.255";
};

//↓ここを追加
zone "test.com" {
        type master;
        file "/etc/bind/db.test.com";
};

zone “test.com” の部分は名前解決するドメイン名を指定します。

このように指定すると、「www.test.com」や「hoge.test.com」の名前解決を行うことができます。

そしてfile “/etc/bind/db.test.com”;の部分がゾーンファイルの場所を指定しています。まだ、このファイルは作成されていないので次はこのゾーンファイルを作成しましょう。

ゾーンファイルをコピーして作成する

先ほど、”named.conf.default-zones”ファイルの中にゾーンファイルの指定を行いました。続いて、ゾーンファイルの作成を行います。

ゾーンファイルは、デフォルトで作られていものがあるので、それをコピーして使います。1から作ると面倒だからです。

cp db.local  /etc/bind/db.test.com

コピーできたら、viコマンドでファイルを編集します。

vii db.test.com

レコードの登録

ゾーンファイルの中身を以下のように書き換えます。これは、名前解決するためのレコードを登録しています。


; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     www.test.com. www.test.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      www.test.com.
www     IN      A       192.168.0.6

「www IN A 192.168.0.6」、「@ IN NS www.test.com.」の部分が重要です。これらはNSレコードとAレコードになります。

NSレコードは”test.com”ドメインの名前解決を行うサーバーです。サーバー名に”www.test.com.”を登録しています。

次に先ほどNSレコードで登録したサーバー名のIPアドレスをAレコードで紐づけます。「www IN A 192.168.0.6」と記入すると、”www.test.com”は”192.168.0.6″のIPアドレスという意味になります。

ちなみに192.168.0.6はbindがインストールされているサーバーのIPアドレスです。IPアドレスの確認は”ifconfig”コマンドを使用すればできます。

ゾーンファイルの編集が完了したら、bindを再起動させて完了です。

/etc/init.d/bind9  restart

最後にdigコマンドを使用して、動作を確認したら完了です。

dig www.test.com

bindなどLinuxを勉強するならUdemy

bindなどLinuxのコマンドを勉強するならUdemyがおすすめです。UdemyはITの講座が豊富にあるサイトです。参考書での勉強が苦手な方にはおすすめです。

以下のように、Linuxに関する講座が豊富にあります!

Udemyがおすすめな理由
  1. セールだと1500円前後!
  2. 無料サンプル講義動画・無料講義動画あり!
  3. 気に入らなければ30日間返金保証!

UdemyでLinuxの講座を探す

bindでDNSサーバーを構築する方法まとめ

今回の記事では、bindでDNSサーバーを構築する方法について解説しました。DNSサーバーはインフラの基礎知識なので覚えておきましょう!

DNSについてはこちらの記事でさらに詳しく理解できるように解説しています。Linuxの環境構築不要で、bindを構築できる仕組みになっています。

DNSについてさらに勉強したい方はこちらの参考書がオススメです。

ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
InfraAcademyというインフラエンジニア向けの学習サービスを運営しております。 インフラエンジニアからフルスタックエンジニア、PdM サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。
RELATED POST