ローカル内のサーバを名前解決してアクセスするためにunboundを使う

公開日:2014/02/23 更新日:2014/02/23
ローカル内のサーバを名前解決してアクセスするためにunboundを使うのサムネイル

ローカル環境にサーバを立ててブラウザなどからアクセスする場合、いちいちサーバのIPアドレスを入力したり、IPアドレスが変わる度に他のユーザに通知したりする必要があり、面倒です。そこで、ローカル環境のサーバにも任意の名前でアクセスできるようにするために、DNSサーバを構築します。構築とはいっていますが、unboundというDNSサーバソフトウェアを使えば、非常に簡単に構築できます。以降にunboundによるDNSサーバの構築手順をメモします。

環境

unboundを動かすサーバ : Linux Mint 16

unboundのインストール

まずapt-getでアップデートし、インストールします。以下のコマンドを実行すれば完了します。

$ sudo apt-get update
$ sudo apt-get install unbound

unboundの設定ファイル編集

unboundの設定ファイルである unbound.conf は、 /etc/unbound/ にあります。今回の目的を達成する最低限の内容は以下のとおりです。以下の設定ファイルによって、IPアドレスが 192.168.1.2 であるサーバの名前が foo.example.com に紐付けられて、foo.example.com でアクセスできるようになります。

    # Unbound configuration file for Debian.
    #
    # See the unbound.conf(5) man page.
    #
    # See /usr/share/doc/unbound/examples/unbound.conf for a commented
    # reference config file.

server:
# The following line will configure unbound to perform cryptographic
# DNSSEC validation using the root trust anchor.
#    auto-trust-anchor-file: "/var/lib/unbound/root.key"

#ログのエラーレベルの設定 0~5まで指定可能。数字が大きいほど詳細なエラーを出力
verbosity: 2                                    

# unboundが動作するディレクトリ
directory: "/etc/unbound"

# 使用するインターフェース。以下ではデフォルトルートを指定
interface: 0.0.0.0

# unboundへのアクセスを許可するIPアドレス範囲
access-control: 127.0.0.1/32 allow              
access-control: 192.168.1.0/24 allow            

username: "root"

# unboundのログファイルの出力先
logfile: "/var/log/unbound.log"
use-syslog: no

# ローカルのサーバの名前とIPアドレスの対応を登録
local-data: "foo.example.com. IN A 192.168.1.2" 
local-data-ptr: "192.168.1.2 foo.example.com." 

# 再帰的に問い合わせるためのローカル内の他のDNSサーバの指定。ない場合は省略。
forward-zone:
name: "."
forward-addr: 192.168.1.1

なお、上記の設定ファイルの各オプションについては、以下の日本Unboundユーザ会のページに詳しく載っており、参考になりました。

unbound.conf | 日本Unboundユーザ会

unboundの動作確認

同じローカル内にあるパソコンのブラウザから上記で設定した foo.example.com にアクセスできればきちんと動作していると思います。また、nslookupやdigコマンドを使って名前解決してみて、応答がunboundが動作しているサーバからであるかどうかも確認してみるといいと思います。

使ってみて

unboundはインストール、設定が非常に簡単で便利です。また、unboundは名前解決した情報をキャッシュできるので、名前解決が早くなります。ただ、そもそも名前解決は通常ならば時間がかかるものでもないので、体感できるほどではないと思いますが。いずれにせよ、ローカル内のサーバへ名前でアクセスするという目的を達成する手段としては、unboundを使うことはかなり楽な選択だと思うのでおすすめです。

関連記事

開発アプリ

nanolog.app

毎日の小さな出来事をなんでも記録して、ログとして残すためのライフログアプリです。