CentOS6でDNSサーバを構築してみた

  • このエントリーをはてなブックマークに追加
  • Pocket

初めまして。エンジニアの阿久津です。
今回は社内でDNSサーバを構築する機会がありましたのでそれを記事にしたいと思います。

概要

CentOS6にBINDをインストールし、DNSサーバ(内部向け用)を構築します。
自身のクライアントPCからDNSサーバに問い合わせて、名前解決ができるところまでがゴールになります。

環境

  • 物理サーバ
  • CentOS release 6.9 (Final)
  • BIND 9.8.2

BINDインストール

インストール

確認

 以下のように表示されればインストールが完了しています。

設定ファイル(named.conf)の編集

BINDのメインの設定ファイルは”named.conf”です。
CentOS6にBINDをyumでインストールした場合は、”/etc/named.conf”が設定ファイルになります。
セキュリティを意識する場合は、chrootをすることをおすすめします。

※編集前にバックアップはとっておきましょう

ゾーンファイルの作成

正引きゾーンファイル作成

$TTL 86400

このゾーンの内容が他のDNSサーバーにキャッシュされる時間を表します。今回だと86400秒(1日)となります。

@

ゾーン基点を表します。今回だと自分自身(example.com)が基点となります。
@ではなく「example.com.」と記述してもOKです。

IN

決まり文句となります。「InterNet」を意味しています。

SOA dns.example.com. root.example.com.

SOAレコード。「Start Of Authority」の略で、権威を持つゾーンの開始を表します。
今回だとプライマリサーバは「dns.example.com」、管理者のメールアドレスは「root.example.com」となります。

2017092701 ; Serial

ゾーンファイルのシリアル番号を表します。「年月日+通し番号」が一般的になります。

10800 ; Refresh

セカンダリサーバがゾーンデータの更新をチェックする時間(秒)。今回だと10800秒(3時間)になります。

3600 ; Retry

プライマリサーバが応答しない時に再度接続を試みるまでの時間(秒)。今回だと3600秒(1時間)になります。

3600000 ; Expire

セカンダリサーバが、プライマリサーバにアクセスできない状態が続いた場合、ゾーンデータを無効にするまでの時間(秒)。今回だと3600000秒(1000時間)になります。

3600 ; Negative Cashe TTL

存在しないドメインを問い合わせた時は、そのドメインが存在しないということを一定期間キャッシュする時間(秒)。今回だと3600秒(1時間)になります。

IN NS dns.example.com.

NSレコード。今回だと「dns.example.com.」という名前にしています。

test1 IN A 172.16.11.2

Aレコード。今回だと「test1.example.com」は 172.16.11.2 であることを表します。

test2 IN A 172.16.11.3

Aレコード。今回だと「test2.example.com」は 172.16.11.3 であることを表します。

逆引きゾーンファイル作成

$TTL 86400 〜 IN NS dns.example.com.

正引きゾーンファイルと同様です。

2 IN PTR test1.example.com.

PTRレコード。今回だと 172.16.11.2 は 「test1.example.com.」 であることを表します。

3 IN PTR test2.example.com.

PTRレコード。今回だと 172.16.11.3 は 「test2.example.com.」 であることを表します。

BIND起動

起動

名前解決確認

digコマンドを使います。インストールしていない場合は、bind-utilsでインストールしてください。

インストール

確認

正引き確認

「test1.example.com」のIPを知りたい場合

ANSWER SECTIONを見ると、正引きゾーンファイルで設定したIPが返ってきているのがわかりますね。

逆引き確認

「172.16.11.2」のドメインを知りたい場合

ANSWER SECTIONを見ると、逆引きゾーンファイルで設定したドメインが返ってきているのがわかりますね。

まとめ

今回はCentOS6にBINDをインストールし、DNSサーバ(内部向け用)を構築しました。
DNSサーバを構築する機会はなかなかないと思いますので、とても良い経験になったと思います。
今度はAWSのRoute53も機会を見つけて触ってみようと思います。

Wedding Parkでは一緒に技術のウエディングパークを創っていくエンジニアを募集しています。
興味のある方はぜひ一度気軽にオフィスに遊びにいらして頂ければと思います。

IT×ブライダルで業界を変える!プロフェッショナルなWEBエンジニア募集!

  • このエントリーをはてなブックマークに追加
  • Pocket

SNSでもご購読できます。

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください