こんにちは、インフラエンジニアの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を構築してみましょう。Linuxの環境構築ができていない方は、こちらからのページからLinuxを操作することができます。
bindのインストール
まずはbindのインストールです。今回はdebianを使用しています。コマンドは以下の通りです。”apt-get”コマンドを使用することでパッケージをインストールすることができます。
apt-get install bind9
コマンドを入力すると”Do you want to continue?”と聞かれるので”y”を入力してEnterを押します。
これで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に関する講座が豊富にあります!
- セールだと1500円前後!
- 無料サンプル講義動画・無料講義動画あり!
- 気に入らなければ30日間返金保証!
bindでDNSサーバーを構築する方法まとめ
今回の記事では、bindでDNSサーバーを構築する方法について解説しました。DNSサーバーはインフラの基礎知識なので覚えておきましょう!
DNSについてはこちらの記事でさらに詳しく理解できるように解説しています。Linuxの環境構築不要で、bindを構築できる仕組みになっています。
- 【DNS講座①】名前解決とは?Linuxサーバーで名前解決をやってみよう
- 【DNS講座②】LinuxでDNSサーバーを構築してみよう
- 【DNS講座③】bindでAレコードやCNAMEレコードを登録してみよう
- 【DNS講座④】bindでPTRレコードを登録して逆引きしてみよう
DNSについてさらに勉強したい方はこちらの参考書がオススメです。