bind9のインストールと設定準備

 Ubuntuの場合、
インストール
# apt-get install bind9
アンインストール
# apt-get remove bind9
で大丈夫です。ここでいきなりアンインストールの方法を説明しますが、設定でどんずまったらアンインストールしてから、また再度クリーンインストールするのがいいです。
 アンインストールの場合、/etc/bind以下の設定ファイルやゾーンファイルはそのまま残りますが、このファイル群はあらかじめバックアップしておいた方がよいと思います。また/var/cache/bindにはキャッシュサーバーを設定していた際には残骸が残ってしまうのでアンインストールの際はこれも消去。/var/lib/bindにも何か残っているかもしれません。
 デフォルトでの話ですが、これらのbindの設定や運営に関係するディレクトリは、/etc/appramor.d/usr.sbin.namedに書かれています。いずれにしろアンインストールの際は自分の設定状況をよく把握しておくことが大切です。
 その他のディストリビューションでもyumとかrpmとか便利なコマンドがあると思います。(ここではソースからインストールする方法は割愛)

 apt-getでインストールする際にリポジトリに該当のbind9がない...というようなことを言われてインストールできない場合がありますが、この時はapt-get updateしてみてください。新しいリポジトリが更新されてインストールできるようになると思います。(Ubuntu 10.02に入れようとした時はそうでした。)

bind9の最初の名前解決

 インストールしたてのホヤホヤの段階ではbind9は起動していても何もしていません。ただ起動しているだけです。設定ファイルもデフォルトのままですし、zoneファイルもデフォルトのもの以外何もありません。唯一できることは、rootサーバーを表示してくれることぐらいです。余談ですが、ipv6(128bitのIPアドレス)が中国の人口爆発と経済発展をきっかけにどんどん普及しているらしくrootサーバーも4台だけipv6のサーバーありました。以前にbindを設定していた時にはなかったような気がします。
  • a.root-servers.net.    512487    IN    AAAA    2001:503:ba3e::2:30
  • f.root-servers.net.    512487    IN    AAAA    2001:500:2f::f
  • h.root-servers.net.    512487    IN    AAAA    2001:500:1::803f:235
  • j.root-servers.net.    512487    IN    AAAA    2001:503:c27::2:30
これらです。a、f、h、jの4つのサーバーです。すごいですね。

 bindに限らずネットワーク設定一般に言えることですが、初心者向けのマニュアルには「後述」が多すぎると思いませんか?後述されて話を進められると初心者は困ってしまうのでできるだけ後述は避けてほしいというのが本音です。今でこそいろいろとわかってきましたが当初は大変でした。もちろんどこまでが初心者か...という問題もあるのですが、ここではできるだけ後述とあまりにも専門的な言葉を避けてbindについてのいろいろを書いてゆきたいと思っています。

ログファイル

 bindにはオリジナルのログを取る方法があったはずです。使ったことがないので詳しいことはわかりませんが、実際にbind9を運用しようと思った際には数個のログをチェックすることで充分だと思います。しかもその数個のうちはログの取り方が重複しているので見るべきところはかなり少ないです。
  • /var/log/messages
  • /var/log/syslog
  • /var/log/daemon.log
です。Webサーバーやftpサーバーmailサーバーなどを運用していたら勿論その部分も見なくてはいけないのですが、bind9に関してはここらで充分です。インストールしてから正常起動しましたら一度目を通しておくとよいと思います。何となく雰囲気がわかるというか、慣れておく感じがいいと思います。bind9を起動(再起動)した時点でsyslogには、
Dec  9 16:05:30 localhost named[3942]: adjusted limit on open files from 1024 to 1048576
Dec  9 16:05:30 localhost named[3942]: found 2 CPUs, using 2 worker threads
Dec  9 16:05:30 localhost named[3942]: using up to 4096 sockets
Dec  9 16:05:30 localhost named[3942]: loading configuration from '/etc/bind/named.conf'
Dec  9 16:05:30 localhost named[3942]: using default UDP/IPv4 port range: [1024, 65535]
...(中略)
Dec  9 16:05:30 localhost named[3942]: zone 127.in-addr.arpa/IN: loaded serial 1
Dec  9 16:05:30 localhost named[3942]: zone 255.in-addr.arpa/IN: loaded serial 1
Dec  9 16:05:30 localhost named[3942]: zone localhost/IN: loaded serial 2
Dec  9 16:05:30 localhost named[3942]: running
となっているはずです。(環境によって若干違うのかな...。)

名前解決

 bind9の役目はホストやドメインをIPアドレスに変換する仕事ですが、実際にはこれらの仕事をすべてbindが引き受けているわけじゃありません。hostsファイルやhost.conf、resolv.confなどいうファイルもそれに絡んできます。それらを全部含めてDNSというのだと思います。
 bind9を設定する以前にこれらの設定をしておくことも大切です。とりあえずはそのサーバーがネットワークにクライアントとして接続されていて、外のどのネットワークにも接続できるという環境下である...という前提で話をすると、上記の3つのファイル、
  • /etc/hosts
  • /etc/host.conf
  • /etc/resolv.conf
は、クライアントとしてのネットワーク設定にも少々関連してくるので、目的に応じてそれらを正しく設定しなくてはなりません。しかし、目的以前に自分のサーバーから自分のサーバーを見る!ということは最低限できなくてはいけないし、最も基本的なその設定をbind9のみ設定するのは心許ない...。そんなわけで「自身のサーバーを自身で見てみる」ということができるように設定しておきます。






プロフィール



  • Name :: 山上オサム ♂(37)
  • Hobby :: 武術
  • Work :: Web Designer