DNSサーバーのバージョンアップ

 インターネットからすれば、血流ともいえるのがDNSのしくみによるネットワークであるが、そろそろこのサーバーソフトウェアであるBIND(Berkley Internet Name Domain)のバージョンが問題になってきているようだ。

BIND8はもう寿命、BIND9へのアップグレードを

 DNSといえばBINDというのは、WebサーバーといえばApacheという以上に、インターネット・サーバーを代表するソフトウェアといってもよい。およそインターネットを理解する上で、DNSのしくみ、BINDの設定について最低限の知識はなければならないだろうと感じている。IPアドレスだ、URLだと断片的にインターネットを理解している人が多いが、ひとたびトラブルに遭遇すると、これらの知識が全くゴチャゴチャになっている人は多い。DNSを含めたTCP/IPのレイヤーの体系を理解していないせいだが、近年のセキュリティの重要性を考える上でも、このような基本知識が必要だと痛感する。


 ただDNSサーバーなどは、誰でも設定したり変更できるというものではないので、実践的に勉強するというのは難しいかもしれない。ネットワーク管理者の問題となり、ユーザレベルでは手を出せる問題ではないからだ。
 自分の経験としては、DNSサーバーよりもWindows NTサーバーの中でWINSのしくみに接した方が早かった。正直、Microsoftのサーバーは内部で何をやっているのか理解できなかった。


 その後、いろいろなLinuxに接するようになり、簡単なDNSサーバーの設定も経験するようになったのはRedhat Linuxの中での、BIND8やBIND9だったと思う。ちょうどRedhat9で標準がBIND9であったが、別にバージョン"9"が共通であることが何も関係のないことを知る。細かいことだが、Redhat9にバグがあって、BIND9の再起動がうまくいかないことなどを自ら発見した。逆引きファイルの名前に出てくるin-addr.arpaとは、インターネットの起源であるARPAネットからきているのかとか、DNSサーバーで行う名前解決ということは単純なはずだが、内容は深いと感じた。DNSサーバーが設定できるようになれば、アプリケーションのサーバーはたいがい設定することはできる。


 BIND9は記述からすればBIND8の上位互換になっているはずで、そうでなければ古い設定ファイルを引き継ぐことはできない。逐次的な記述は古いやり方で、新版では省略形で設定ファイルも書ける。だが、正しく理解するには省略しない書き方を理解しなければダメだと感じた。明らかなエラーにはならなくてもかなり記述では微妙な部分もある。少なくとも実装系でDNSサーバーの設定はスキルの低い人には任せられない。下手をすると不都合の影響が、インターネットを通じて外部まで及んでしまう。設定を変更したとしても、互いのキャッシュ情報を参照するから変更の情報が行き渡るまでにはタイムラグが生じる。サーバーを入れ替えた場合など、下手をすると自サイトにアクセスできなくなる空白時間を作ってしまいかねないことになる。


 こうしたことから少なくとも公開されているシステムに関しては、容易にはBINDのメジャーバージョンアップには踏み切りにくいのが実情であろう。BIND9が出てからすでに8年というから、セキュリティ環境の大きな変化からしてバージョンアップした方がよりよいのは明白だが、他のサーバーよりもこれを実行させるのはタイミング的にも難しいだろう。


 公開されるDNSサーバーは、プライマリとセカンダリと最低限2台必要になるから、セカンダリの方から新バージョンにリプレースして、どこかでプライマリとセカンダリの役割を切り替えるなどの手順で徐々に置き換えていくしかないのだろうか。ここらへんは、よくはわからない。


 ネットワーク機器のハードウェアも進歩したが、「ネットワークのネットワーク」であるインターネットの原理を支えているのはDNSサーバーであり、BINDというソフトウェアであることは当分は変わることはなさそうである。