タイトル【Darwinシリーズ】ネットワークの設定:ネームサーバの指定カテゴリーネットワーク, Darwin, Darwin 1.0
作成日2000/7/15 0:3:17作成者新居雅行
IPアドレスの設定、そしてルータの設定となれば、残るはネームサーバの設定だ。ルータまでの設定だと、IPアドレスを指定してネットワーク外部との通信はできたのだが、ドメイン名を指定しての通信ができないのである。そのドメイン名をIPアドレスに変換する仕組みは、Domain Name ServiceつまりDNSという仕組みになっていることはよく知られているが、トップドメインからツリー上にサーバ同士が連係して、ドメイン名の解決を行うわけだ(詳細は省略する)。その、ツリー上に連なるDNSサーバの1つとして加わるというのが1つのDNS対応である。そしてもう1つが、手近にあるDNSサーバに問い合わせを行って、とりあえずドメイン名からIPアドレスへの解決ができるという状態である。前者はDNSサーバ、後者はクライアントだと言える。DNSサーバを運用するには、BINDという有名なソフトを使うことになる。一方、クライアントとなるにはリゾルバという機能を利用する。さまざまなインターネットソフトは、いちばん根底ではリゾルバを使って問い合わせを行い、IPアドレスを得るということになっている。DNSサーバ化も興味あるところではあるのだが、まずはクライアント、つまりリゾルバを動かすところまでをやってみた。

もちろん、初期状態では、「nslookup www.apple.co.jp」のようなコマンドを入れても、エラーが出てきてIPアドレスの問い合わせはできない。つまり、初期状態では、使えるDNSサーバは知らないのである。それをどこかで教えてやらなければならない。たぶん、Mac OS Xのレベルだと、Darwinより上位のレベルでリゾルバの機能を実現しているのではないかと想像できるが、ここではDarwinだけでとにかく動かすことにする。そこで、他のUNIXでの一般的な事項をあてはめてみた。/etc/resolv.confというファイルに、利用するDNSサーバの情報を記述する。このファイルはもともとは存在しないので、viで新規に作成してみた。プライベートなネットワーク環境で、ルータマシンである192.168.0.1がDNSサーバの機能も持っている。そこで、/etc/resolv.confファイルに、

nameserver 192.168.0.1

という記述を書き加えてみた。はたして、…実はここでいろいろあるのだが…ドメイン名からIPアドレスの参照ができた。つまり、Darwin的にはこれでOKなのである。

◇ドメイン名の解決ができるようになった
 

ここからは特種事情が絡むのであるが、参考になる人もいるかもしれないので、書いておこう。前にも説明したように、筆者のネットワーク環境は、ケーブルモデムにつながったLinuxのルータマシンを経由して、プライベートネットワークを構築し、その中にDarwinマシンを稼動させている。Linuxはred hat 5.2を使っているが、インストールしたままの状態だとBINDがキャッシュサーバとしてのみ動いている。単に、Mac OSやWindowsなどがクライアントとして機能する場合には、それで何の問題もない。ルータマシンはDHCPでIPが割り振られ、適当なドメイン名が設定されているが、実はDynamic DNSサービスを使って「msyk.dyndns.org」というドメインも、ルータマシンに届くように設定している。
しかしながら、192.168.0.1から逆引きした場合に、何らドメイン名は戻ってこない。というのは、ルータマシンのDNSサーバは、キャッシュ機能しかなく、逆引きができないのである。この状態で、Darwinで、nslookupコマンドを利用すると、DNSサーバへは到達するが、そのDNSサーバの名前を逆引きできないためにエラーを出してしまい、実際の名前解決の作業に入ってくれなかった。何か設定があるのかもしれないけど、そこまでは分からなかった。そこで、ルータマシンのDNSサーバをキャッシュサーバではなく、きちんと名前解決をするように、まじめに定義ファイルを作成した。まじめにとは言っても、darwin99.msyk.dyndns.orgをDarwinを稼働しているマシンのIPアドレスと対応付けたり、192.168.0.1マシンに名前が付けられるという程度である。もちろん、目的はプライベートネットワーク内で、内部に存在するサーバを認識させるというごく簡単なものである。dyndns.orgのDNSサーバはおそらくはNSレコードまでは通していないようなので、グロバールな名前解決には利用できないが、とにかく内部ネットワークで利用できればいいという設定にしてある。
こうした処置をすれば、Darwinマシンからnslookupがきちんと稼働して、名前解決が行われるようになった。普通、サーバをまともに動かす時には、ネットワークサイトのDNSサーバに登録するのは当たり前だとは言え、やはりそのことが実感できたと言える。
より複雑のなのはsendmailだ。Darwinマシンからmailコマンドで自分宛にメールを送ってみたりするのだが、DNSサーバの設定を正しくするまでは、送り主、つまり「root@darwin99」のように認識しているのだが、それが正しくないと言ってしまう。だが、DNSマシンをきちんと設定すると、送り主は「root@darwin99.msyk.locus.co.jp」と設定されてメールが送られるようになった。
関連リンク