タイトル大津真=XはUNIXでサーバで》LAN内でDNSサーバを立ち上げる(1)カテゴリーネットワーク管理, ネットワーク, 大津真=XはUNIXでサーバで
作成日2001/11/27 10:56:0作成者新居雅行
【MDOnline読者様限定コンテンツ】

――――ホスト名の管理方法
最近ではSOHOや一般家庭でも複数のパソコンをLANで接続して情報の共有や一元管理をするのはめずらしくなくなってきました。そこで頭の痛い問題のひとつがそれぞれのホスト名をどのように管理するかでしょう。もちろん、AFP(Apple Filing Protocol)のみを使用して、Macどうしでファイル共有を行うだけであれば、「システム環境設定 - 共有」の「コンピュータ名」で設定した名前でそれぞれのマシンにアクセスできます。ただし、ここで設定した「コンピュータ名」は、Appleのファイル共有のみで有効な名前です。したがって、WebサーバやSSHサーバを立てた場合には、ホスト名とIPアドレスの相互変換をなんらかの方法で行わないと、サーバーマシンにアクセスするのにIPアドレスを「192.168.1.1」のように直接指定しなければならない羽目になってしまいます。
たとえば、クライアントマシンからOS X上で動作しているWebサーバApacheにアクセスするのに、ブラウザの「アドレスに」

http://192.168.1.1

のように指定しないとなりません。やっぱり

http://myhosts

のようにホスト名で指定した方がわかりやすいですよね。
で、ホスト名とIPアドレスの変換には一般的に次のような方法があります。

[方法1] マシンごとにhostsファイルで管理
[方法2] LAN内にDNSサーバを立てて集中管理

[方法1]のhostsファイルで管理する方法は、現在でも小規模LANでよく使用されています。OS 9以前のMac OSでは、「TCP/IP」コントロールパネルで「Hostsファイルの選択」ボタンをクリックしてIPアドレスとホスト名の対応を記述したテキストファイルを選択していました。Windowsであればlmhostsファイルですね。一般的なUNIXであれば、/etc/hostsファイルに記述します。
Mac OS Xもその中身はUNIXということで/etc/hostsファイルがありますが、これはシングルユーザモード(付録「UNIXの基礎知識」参照)でしか参照されません。OS Xの場合、通常の起動モードであるマルチユーザモードではネットワークリソースはすべてNetInfoデータベースで管理されるからです。NetInfoデータベースへのホストの登録は、NetInfo Managerを使用して行うと簡単です。具体的には/machinesディレクトリに新たなディレクトリを作成し、「ip_address」と「name」という2つのプロパティを設定します。

 

hostsファイルによる管理では、LANにマシンが追加されたような場合、すべてのマシンのhostsファイル(OS Xの場合にはNetInfoデータベース)を更新する必要がありちょっと面倒です。その手間を省くには、NISサーバやMac OS X Serverを導入することで集中管理することもできます。ただし、NISはクライアントがUNIX、Mac OS X ServerはクライアントがMacに限定されてしまうため、Windows、Mac、UNIXが混在する環境ではあまり現実的ではありません。
それよりは、[方法2]のLAN内にDNSサーバを立てる方がなにかと便利でしょう。ちょっと前置きが長く長くなりましたが、そういうことで、今月はMac OS XでDNSサーバを立ち上げる方法を説明しましょう。

――――BINDのインストール
DNSの実装でもっとも広く普及しているのがBINDです。

◇BIND
 http://www.isc.org/products/BIND

BINDはなにかとセキュリティホールになりやすいためLAN内といえどもできるだけ最新版を使用したほうが無難です。現時点での最新版はバージョン9.1.3になります。OS Xには標準でBINDの8.2.3がインストールされていますが、せっかくですから、ここでは最新版のインストール方法について説明しましょう。
まず、BINDのオフィシャルサイトからBINDのTarボール(bind-9.1.3.tar.gz)をダウンロードし、次のようにして展開します。

% tar xvzf bind-9.1.3.tar.gz <return>
bind-9.1.3/
bind-9.1.3/bin/
bind-9.1.3/bin/check/
bind-9.1.3/bin/check/Makefile.in
…以下略

次に、展開したディレクトリに移動し、すでにおなじみの「configure」「make」「make install」でコンパイル、インストールします。ただし、初期状態で用意されているconfigureスクリプトはホストタイプとしてMac OS Xを認識できないため、/usr/libexecディレクトリのconfig.guessとconfig.subをコピーして上書きします。また、OS Xではマルチスレッドを有効にするとリンク時にエラーとなるのでconfigureには「--disable-threads」オプションを指定しています。

% cd bind-9.1.3/ <return>
% cp /usr/libexec/config.guess . <return>
% cp /usr/libexec/config.sub . <return>
% ./configure --disable-threads<return>
loading cache ./config.cache
checking host system type... powerpc-apple-darwin5.1
checking whether make sets ${MAKE}... yes
…以下略
% make <return>
making all in /Users/o2/Documents/Download/bind-9.1.3/make
making all in /Users/o2/Documents/Download/bind-9.1.3/lib
making all in /Users/o2/Documents/Download/bind-9.1.3/lib/isc
…以下略
% sudo make install <return>
Password: ←パスワードを入力
making install in /Users/o2/Documents/Download/bind-9.1.3/make
making install in /Users/o2/Documents/Download/bind-9.1.3/lib
…以下略

以上でインストールは完了。BINDのプログラム本体は「named」(/sbin/named)です。rehashでコマンドハッシュを更新し「named -v」でバージョンを確認してみましょう(「-v」はバージョンを表示するオプション)。

% rehash <return>
% named -v <return>
BIND 9.1.3 ←BIND 9.1.3がインストールされた

(続く)
[大津真/makotoo2@mac.com]
関連リンクhttp://www.o2-m.com/