(1/3)インターネットの基幹技術、DNS。9を使ったDNSサーバの構築/運用方法を解説していく。現場で実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく予定だ。皆さんが数台のPCを立ち上げて小規模なネットワークを構築した場合、それぞれのPC間での名前解決はどのように実現するでしょうか?名前解決を行わずIPアドレスだけで用を済ますというのも1つの手ですが、多くの方は/etc/hostsファイルにPCのアドレスとホスト名を記述する方法を思い付くと思います。インターネット創世期にも同じ手法が使われていました(注)。注:hostsファイルに相当する当時のファイルは、hostsファイルよりももう少し記述の多いものでしたが......。Center)にその都度届け出ます。SRI-NICは届けのあったものをまとめ、アドミンが利用できるようにHOSTS.TXTファイルとして公開していました。この手法が間もなく破たんすることは、誰もが予想するとおりです。注:ネットワーク/サーバ管理者を総称してアドミン(アドミニストレータ)と呼んでいます。Domain(BIND)です。いまでこそ当然のように使われているDNSですが、つい数年前まではDNSをサポートするシステムの方がまれで、当時はDNSをサポートするためにlibbind.aなどのリゾルバをインストールすることも珍しくありませんでした。したことは過去の出来事ではなく、UNIXにはファイルで管理されている情報がまだ潜んでいます。/etc/servicesファイルにはIPポート番号とサービス名の対応が記述されていますが、サービスの定義に変更があったり、新規にサービスが予約されるたびにRFC(http://www.iana.org/assignments/port-numbers)で公開されている情報を基に変更する必要があります。サービスの定義の更新がそれほど頻繁でないのと、/etc/servicesファイルがそれほど重要ではないため、従来どおり手動でアップデートする手法が続けられています。System」なんていうものができると、普段使用するURLも変わったものになるかもしれません。/etc/protocolsファイルもしかりです。WindowsのhostsファイルhostsファイルはLinuxなどのUNIX系OSだけのものでなく、Windowsでも使われています。WindowsXPではC:\WINDOWS\system32\drivers\etcにhostsファイルとlmhostsファイルが存在します。DNSは、単にこうしたファイルによる管理をネットワークリソースに切り替えただけでなく、「ホスト名のユニーク性」と「管理の分散化」も実現しています。9の実用的な使用方法を紹介していきます。BINDの働きDNSは「DNS」として一くくりにされがちなサービスですが、実は2つの働きをしています。1つ目が、自身のドメイン問い合わせに答えるゾーンサーバとしての働きで、2つ目がWindowsなどのクライアントが名前解決として使用するキャッシュサーバの働きです。BINDは1つのデーモンで2つの機能を提供するため、これら2つが別々のものであるといってもピンとこないかもしれません。それぞれの働きを正しく理解し、これから立ち上げるDNSサーバにどの役割をさせたいのかを整理しましょう。ゾーンサーバ自身が所有するドメイン名をインターネットに広報するために必要なサーバです。「広報」という言葉を用いると、外部に対して能動的に働き掛けるように考えてしまいますが、実際には自ドメイン名に対する問い合わせ要求にこたえるもので、動作としては受動的です。「DNSの仕組みと運用(1)」をお読みいただければ、ルートサーバからドメインツリーをたどって手元のゾーンサーバに問い合わせが到達するか理解できると思います。手元でサーバを立ち上げるにしろ、どこかに委譲するにせよ、ドメイン名を取得してそのドメインを自組織内外のインターネットで引けるようにするにはゾーンサーバが必要です。ドメイン名解決を行う際に用いられるゾーンデータの出所によって、ゾーンサーバはさらに2つに大別されます。マスター・ゾーンサーバ(またはマスターサーバ)オリジナルとなるゾーンデータを所有するサーバです。オリジナルドメインを運用する際には必ず1つ用意します。ゾーンデータは、通常ローカルファイルを基にします。スレーブ・ゾーンサーバ(またはスレーブサーバ)ゾーンデータをマスターサーバから複製して使用します。transfer)と呼ばれる手法でゾーンデータを最新なものに保ちます。データをマスターサーバから複製していることからバックアップとしての働きを期待されがちですが、ドメイン問い合わせに対してバックアップサーバとするかどうかは運用方法により変えられます。スレーブ・ゾーンサーバは、何台でも指定することが可能です。キャッシュサーバキャッシュサーバはクライアントから来る名前解決要求にこたえるもので、目的のドメインをリゾルブできるまで、外部のDNSをドメインツリーをたどって再帰検索します。9の場合はゾーンサーバの機能も内包しているため、「自身のゾーンデータに該当しなかった場合」という条件が付きます。可能であれば、ゾーンサーバ用のBINDとキャッシュサーバ用のBINDは区別して運用することをお勧めします。ゾーンサーバが外部からの問い合わせに対する受動的処理だったのに対し、キャッシュサーバは外部のDNSを参照する能動的なものになります。キャッシュサーバは一度問い合わせた情報をサーバ内のキャッシュに保存し、次に同じ問い合わせが来たときに高速に返答することができます。9では単に問い合わせに成功した情報だけでなく、名前解決できなかったという情報をキャッシュする「否定キャッシュ」(ネガティブキャッシュ)も備えています。これらの問い合わせキャッシュがどれくらいの期間有効なのかも運用には大事な要素になってきますが、そちらについては次回に「TTL」というキーワードとともに紹介します。DNS関連用語の確認DNSの役割と同時に、以下の用語についてもここで整理しておきましょう。リゾルバ名前解決と同じ意味で使用しています。ルートサーバネームサーバの総元締。現在13拠点で稼働しており、変更される場合もあります。ルートサーバを起点としてドメインツリーが展開されます。ルートサーバ一覧の入手方法は次回で解説します。正引きドメイン名からIPアドレスやネームサーバ、メールサーバのドメイン付きホスト名を検索する手順を指します(例:www.atmarkit.co.jp→211.4.250.170)。Name)と表記します。逆引きIPアドレスからドメイン名を検索する手順を指します(例:211.4.250.170→www.atmarkit.co.jp)。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。