この文書は何であって何ではないか。
DNS とは Domain Name System のことです。 DNS はマシンの名前を IP 番号 (ネットワーク上のマシンには必ずこの番号が付いています) に変換します。 DNS は名前からアドレスへの、またアドレスから名前への翻訳 (あるいは仲間うちの言葉でいえば「マップ」) などを行います。 この HOWTO 文書では、Unix システムを用いて このようなマップを定義する方法について記述します。 なお Linux に特有なことがらもいくつか含まれています。
「マップ」とは、単に二つのものを結びつけることです。
ここでは ftp.linux.org
といったようなマシンの名前と、
そのマシンの IP 番号 (IP アドレス) である
199.249.150.4
のような値を結びつけることになります。
DNS には逆向きのマップも含まれます。
すなわち、IP 番号からマシンの名前への変換です。
これは「逆引き」と呼ばれています。
初心者 (あなた ;-) にとって DNS は、ネットワーク管理のなかでも わかりにくい部分の一つです。 幸い DNS は実際にはそれほど難しくはありません。 この HOWTO では、 いくつかの事柄を多少なりともわかるようにしたいと思っています。 簡単な DNS ネームサーバを設定する方法も説明します。 まずキャッシュ専用のサーバからはじめて、 あるドメインに対するプライマリ DNS サーバを設定していきます。 もっと複雑な設定を行なう場合には、この文書の Q & A の章を参照してください。そこにも書いていなかったら、 もっとちゃんとした文献を読む必要があるでしょう。 「ちゃんとした文献」については、 より熟練した管理者になるために の章で説明します。
DNS についての作業を始める前に、あなたのマシンを設定して、
telnet での出入りやネットへの各種接続ができるようにしておいてください。
特に telnet 127.0.0.1
で、現在のマシン自身にログインできるように
してください (今すぐテスト!)。また /etc/nsswitch.conf
(あるい
は /etc/host.conf
)、 /etc/resolv.conf
、
/etc/hosts
などのファイルに対して、
正しい設定をしておいてください。
これらの機能についてはこの文書では説明しません。
以上の準備ができていない場合は、
Networking-HOWTO や Networking-Overview-HOWTO に説明がありますから、
ちゃんと読んで設定しておいてください。
この文書で「あなたのマシン」と書いてあった場合、 それは DNS を動作させようとしているマシンを指すものとします。 他にもネットワークにつながっているあなたのマシンはあるでしょうけど、 それのことではありません。
あなたのマシンが所属しているネットワークには、 名前引きをブロックするような防火壁 (ファイアウォール) は存在しないものとします。 ファイアウォール内部にいる場合には特別な設定が必要になります。 Q & A の章を見てください。
UNIX システムでの名前引きのサービスは
named
と呼ばれるプログラムによって実現されます。
これは Internet Software Consortium の
``BIND'' パッケージに含まれるプログラムです。
named
は、ほとんどの Linux ディストリビューションに含まれています。
たいていは BIND
という名前のパッケージに入っていて
(大文字小文字はメンテナの気分次第でしょうが)、
/usr/sbin/named
としてインストールされます。
もし named がすでにあれば、それを使えばいいでしょう。
もし無い場合には Linux の ftp サイトからバイナリを入手するか、
最新の (そして最高の) ソースを
ftp://ftp.isc.org/isc/bind9/
から入手しましょう。
この HOWTO では BIND の version 9 を対象にしています。
BIND 4 や 8 を対象にした古いバージョンの HOWTO は
http://www.math.uio.no/~janl/DNS/
にありますので、 BIND 4 を使っている人はこちらを参照してください
(ついでにこの HOWTO も一緒においてあります)。
named の man ページ (最後の方にある FILES セクション) に
named.conf
に関する記述があれば、
あなたの使っているのは BIND 8 または 9 です。
逆に named.boot
に関する記述があれば BIND 4 です。
セキュリティに気を使わなければならない人で、
4 を使っている場合は、最新の BIND 8 や 9 にアップグレードするべきでしょう。
今すぐに、です。
(訳注) 最後はちょっと意見の分かれるところかも知れません。 例えばソースレベルでのセキュリティチェックを行っていることで知られる OpenBSD では、まだ依然として BIND 4 が現役の named だったりします。
DNS はネットワーク全体に広がるデータベースです。 データの登録は慎重に行ないましょう。変な内容を登録すると、 あなたも他の人達も迷惑します。 真面目にちゃんと運用すれば、 DNS は恩恵をもたらしてくれるはずです。 DNS の使い方、管理の仕方、デバッグのやりかたを学び、 良い管理者になってください。 設定ミスでネットを落としたりすることがないようにしましょうね。
注意: 私が変更するように指示したファイルがすでに存在していたら、 これらのバックアップを取っておきましょう。 作業の結果がうまくいかなかった場合に、 元の動いている状態に戻すことができるようにするためです。
この節は Joost van Baal が書きました。
あなたのマシンを DNS サーバにするパッケージは何種類か存在しています。 まず BIND パッケージ ( http://www.isc.org/products/BIND/)、 この HOWTO が対象としている実装です。 もっとも広く使われているネームサーバで、 1980 年代から登場、普及してきました。 現在インターネットでネームサービスを提供しているマシンの大部分が BIND を使っています。 BIND は BSD ライセンスで配布されています。 もっとも広く使われているパッケージですから、 BIND に関する文書や知識もたくさん存在します。 しかし、BIND にはセキュリティ上の問題が生じたこともありました。
それから djbdns ( http://djbdns.org/) というのもあります。 比較的新しい DNS パッケージで、Daniel J. Bernstein (qmail の作者でもあります) が書きました。 djbdns は非常にモジュール化されています。 いくつもの小さなプログラムが、 ネームサーバの扱うべき仕事のそれぞれの部分を扱うのです。 djbdns はセキュリティを念頭において設計されています。 ゾーンファイルのフォーマットはより単純で、 また大抵の場合は設定も簡単です。 しかしあまり有名ではないために、あなたの近くのグルによる助けは、 このプログラムに関しては得られないかもしれません。 残念ながら、このソフトウェアはオープンソースではありません。 作者による宣伝は http://cr.yp.to/djbdns/ad.html にあります。
DJB のソフトウェアが、古い他のソフトウェアに比べ、 本当に進歩したものであるのかどうかは、活発な議論の対象になっています。 BIND vs djbdns に関する討論 (あるいはフレームウォー?) は、 http://www.isc.org/ml-archives/bind-users/2000/08/msg01075.html にあります。