こんにちは、インフラエンジニアのryuです。
今回は、bindを設定してDNSサーバーを構築する手順を解説します。bindとは、OSSの1つでDNSサーバーを構築するためのソフトウェアです。bindはLinuxサーバーで構築します。初心者の方でも理解できるように解説します。
目次
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アドレスを指定していなくても通信ができています。

このサーバーの名前(FQDN)とIPアドレスの紐づけ作業を行っているのがDNSサーバーです。
イメージは以下のような感じです。

詳しくはこちらの記事で解説しています。
それでは、このDNSサーバーを自分で構築する方法を解説します。
bindを設定してみよう!
どうやってDNSサーバーを構築するの?
DNSサーバーを構築する手順は
- bindのインストール
- ゾーンファイルの作成
- レコードの登録
それでは、Linuxサーバーを起動してbindを構築してみましょう。
bindのインストール
まずはbindのインストールです。
今回はdebianを使用しています。コマンドは以下の通りです。
apt-get install bind9
コマンドを入力すると”Do you want to continue?”と聞かれるので”y”を入力してEnterを押します。

ゾーンファイルの作成
次にゾーンファイルの設定です。
ゾーンファイルとは名前解決をする情報を保存しておくファイルです。
実施することは以下の通り。
- 名前解決するドメインとゾーンファイルの登録
- ゾーンファイルの作成
それぞれ解説します!
名前解決するドメインとゾーンファイルの登録
まず、作業しやすいようにカレントディレクトリを移動しましょう。
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
レコードの登録
ゾーンファイルのコピーができたら、ファイルの中身を以下のように書き換えます。
; 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
以上でbindの設定方法の解説を終わります。