2015年11月1日日曜日

OpenWrt で BIND を使う

OpenWrt Chaos Calmer 15.05 をインストールしていた バッファロー WLAH-AM54G54 へ DNS サーバの BIND をインストールしてみました。

無線LANアクセスポイントとして稼働中の WLAH-AM54G54 です。

経緯

現在自宅サーバで内向きの DNS サーバとして BIND9 を使用してサービスを行なっています。この自宅サーバはシステムに FreeBSD 9.3 を使用しています。来年には FreeBSD 10 系へアップグレードを行うことを計画しています。このアップグレードで問題となるのが FreeBSD 10 系は、今までシステムの中に組み込まれていた BIND が排除されて ports へ移行されてしまうことです。 FreeBSD 10 系では、新たに BIND を ports からインストールする必要があります。そのため、このアップグレード期間中は DNS サーバが停止してしまいます。

そこで DNS サーバが停止しないように第二 DNS サーバを用意しておく必要があります。我が家では従来より無線 LAN ルータへインストールされた DD-WRT や Tomato ファームウェアの中の Dnsmasq を使って、代替 DNS サーバとしていました。これでも代替 DNS サーバとしては問題なく動作しますが、せっかくであれば BIND で対応できないものかと考えて、今回 OpenWrt で BIND をインストールして動作確認を行なってみました。

そこで今回この BIND をインストールする無線LANルータとして 8MB と比較的容量の大きなフラッシュメモリを搭載していて、安定動作をしているバッファロー WLAH-AM54G54 へインストールすることとしました。なおこの WLAH-AM54G54 は、OpenWrt Chaos Calmer 15.05 上ですでに 34 日に亘って連続動作をさせており、問題が発生していませんでした。

WLAH-AM54G54 の稼働時間

BIND のインストール

DNS サーバの BIND のインストールと設定は、以下のウェブサイトを参考にしました。
Replacing dnsmasq on OpenWRT
http://blog.differentpla.net/blog/2013/10/30/replacing-dnsmasq-on-openwrt/

Before you start [OpenWrt Wiki]
http://wiki.openwrt.org/doc/howto/dns.bind

Dnsmasq の停止
# /etc/init.d/dnsmasq stop

Dnsmasq のアンインストール
# opkg remove dnsmasq
Removing package dnsmasq from root...
Not deleting modified conffile /etc/dnsmasq.conf.
Not deleting modified conffile /etc/config/dhcp.

Dnsmasq の設定ファイルの削除
# rm /etc/dnsmasq.conf
# rm /etc/config/dhcp
# rm /var/dhcp.leases
# rm /var/etc/dnsmasq.conf

BIND-server のインストール
# opkg update
# opkg install bind-server
Installing bind-server (9.9.7-P3-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/brcm47xx/legacy/packages/packages/bind-server_9.9.7-P3-1_brcm47xx.ipk.
Installing bind-libs (9.9.7-P3-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/brcm47xx/legacy/packages/packages/bind-libs_9.9.7-P3-1_brcm47xx.ipk.
Installing libopenssl (1.0.2d-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/brcm47xx/legacy/packages/base/libopenssl_1.0.2d-1_brcm47xx.ipk.
Configuring libopenssl.
Configuring bind-libs.
Configuring bind-server.

BIND の設定

設定条件は次の通りです。
  • ホスト名:WLAH-AM54G54
  • IP アドレス:192.168.24.8
  • ドメイン名:home.com (仮称)

すでに自宅サーバで運用中の BIND の設定ファイルからゾーンファイルを流用しました。設定ファイルは /etc/bind/ の中にあります。
  • home.com.zone   (正引きファイル)
  • 24-168-192.rev  (逆引きファイル)

/etc/bind/named.conf ファイルへ以下の我が家の設定を追加しました。
zone "home.com" {
      type master;
      file "/etc/bind/home.com.zone";
};

zone "24.168.192.in-addr.arpa" {
      type master;
      file "/etc/bind/24-168-192.rev";
};
/etc/bind/24-168-192.rev ファイルの修正をしました。
冒頭部分の簡単な修正で問題なく動作しました。

/etc/bind/home.com.zone ファイルの修正をしました。
冒頭部分の他、無線LANルータ自身の設定を追加・修正が必要でした。

@     IN      NS      WLAH-AM54G54.home.com.
WLAH-AM54G54.home.com.  IN     A    192.168.24.8

動作確認

BIND の起動、停止、再起動は次の通りです。
# /etc/init.d/named start   - 起動
# /etc/init.d/named stop    - 停止
# /etc/init.d/named restart - 再起動

パソコン(Linux)上から名前の問い合わせをします。
なお host コマンドの最後尾にある IP アドレスは、問い合わせ DNS サーバの指定です。
$ host www.home.com 192.168.24.8
Using domain server:
Name: 192.168.24.8
Address: 192.168.24.8#53
Aliases:

www.home.com has address 192.168.24.100

逆引きの場合
$ host 192.168.24.100 192.168.24.8
Using domain server:
Name: 192.168.24.8
Address: 192.168.24.8#53
Aliases:

100.24.168.192.in-addr.arpa domain name pointer www.home.com.

設定を終えて

なかなか動作しない OpenWrt の BIND のおかげで、久しぶりに BIND の設定ファイルをしっかりと見直すチャンスとなりました。屋上屋のように修正を繰り返して使ってきた設定ファイル類には、いろいろな間違えがありました。これでもちゃんと動いていたことが不思議でした(笑)。

来年にも予定している自宅サーバのアップグレードのときには、この WLAH-AM54G54 の DNS サーバを代替として使いたいと思います。というか、これからは第二 DNS サーバとして頑張ってもらいます。

0 件のコメント:

コメントを投稿