ちょっと物知り博士のちょこっと講座 戻る

第12回 DNSサーバーの必要性を考える

Linux 機にWWWサーバーを作成して、WEB、CGIのテストに使用してきた。社内のネットワーク環境でWEBが動いた、CGIが動いたと喜んでいた最初の頃は、作ったWEB、CGIプログラムを外部へ公開することを念頭に入れていないので、DNS(Domain Name System(Domain Name Serverともいう))の必要性などはあまり考えることがなかった。
WWWサーバーを構築する過程でDNSについては当然知識としては認識したものの、どういった手順で構築するのか、どういった問題点が潜んでいるのかといったことはわかるわけもなく、またわかろうともしなかったもんです。
それがWEBもそこそこの体裁になり、CGIも中身が解りかけると、やはりせっかくの成果をインターネットに公開したくなるものです。 ただ公開するだけなら、会社で契約しているレンタルWWWサーバーへ載せればOKなんですが、苦労して作った自前のWWWサーバーを自己満足で終わらせたんでは面白くありません。
自前のWWWサーバーを公開するためには、基本的にはそのサーバーが繋がっているネットワークが外に対して常時接続をしていることが必須であるという知識は、Linuxをさわっている間に得ていました。幸いに筆者の会社のネットワークは「OCNエコノミー」という名前の常時接続契約をしています。回線スピードは128Kbしかありませんが、WWWのアクセスをあまり期待しないWEBならば充分でしょう。ちなみにOCNエコノミー契約でOCNが保証しているスピードは同時に8件のアクセスまでです。
話を元に戻しますが、自分の構築したWWWサーバーをインターネットに公開するときに必要なことは何でしょう。 そうですね、「外部から自分のWWWサーバーを認識できる」ことです。
インターネット上で外部から特定のサーバーを認識するにはIPアドレスを使います。 IPアドレスは人間が覚えておくには大変なので、ドメインネームをつけてドメインネームとIPアドレスの変換を行ないます。これが「DNS」です。
なーんだ簡単ジャン。筆者は無謀にもこの「DNSサーバー」を速攻で作ろうとしました。本屋へいって「Linuxによるネットワーク構築ガイド」を見つけたので勇んで読み始めました。読み始めてすぐ「こりゃいけん」。 何が「いけんか」というと、「DNS」はIPアドレス解決のために世界的な規模で構築されているものであって「DNS」間で連携をとって「名前解決」をしているので、自分勝手に「DNS」を構築してインターネット上に公開しても、外部から「ここにうちのDNSがあります」という認識が全く出来ない。いわば最初から仲間はずれの状態なのです。
日本の国の中ではJPNICという団体が’JP’という国のドメインを管理し、「DNSサーバー」を立ち上げたら、必ずJPNICのWHOISサーバーへ登録しなければなりません。ただ自分勝手に登録しても受け付けてもらえません。必ずJPNICの認証を受けているプロバイダとの契約の範囲で登録するということをやらなければなりません。
筆者の会社の場合には、OCNとの常時接続契約を行なっており、DNSはOCNのサーバーに代行してもらっていたので、当然OCNの許可を得てDNSを設定し、JPNICへ登録しなければならないのです。
筆者は「イラッチ=気が短い(ええ足も短いです)」なので、「こりゃー、WWWサーバーを公開するには時間がかかるなー、なんかええ方法はねーんかいな」
「ええ方法」はあるんです。ちょっと考えたら、DNSサーバーで名前解決をするということは、そーです、「ドメイン名をIPアドレスに変換する」ことなんです(本当は逆引きといって,IPアドレスからドメイン名も参照できるんですが)。 だから、外から自分のWWWサーバーのIPアドレスを直接指定すれば、WEBに届くはずです。
恥じをしのんで明かしますと、最初、自分のWWWサーバーについているIPアドレス 192.166.0.257(内緒のため変えてあります)を指定してみたのです。 「いくわけねーよな」。 192.166.0.257 はプライベートIPアドレスといって、会社のローカルネットワークで振られている番号です。 外から認識しようとするならグローバルIPアドレスにしなければなりません。
そこでOCNエコノミー契約をしたときに割り振られている 275.276.38.292(これも変えています)を指定してみました。 Linux の /etc/hosts と NIC に 275.276.38.292 を書いて、httpd を再起動して再度 Windows のブラウザ画面から http://275.276.38.292/ と入力してみました。 これもうまくいきません。???。
・・・先程の「Linuxによるネットワーク構築ガイド」を読んでいると、ルータの設定のところに行き当たりました。 ルーターは外界「インターネット」と内(ローカルネット)との接点で、外に対してはグローバルIPアドレスを振り、内ではプライベートIPアドレスを振っています。通常、外部からのアクセスを許可しないために、「マスカレード(仮面)」の手法をとっており、ローカルネットワークの中にグローバルIPアドレスを持つサーバーを持つためには特定のアドレスを変換する設定を加えてやらなければなりません。 たとえば 275.276.38.292 に対しては 144.120.2.107 を対応しますという記述を加えます。
本当のことを白状すると、この設定がわからんかったのです。どうやって設定するのかが、ルーターのマニュアルが無いもんだからえっと悩みました。
筆者の会社の若いもんがブラウザ画面からルーターの設定を行なう方法を知っていました。 ブラウザ画面でNAT(network address translator)変換を行なう設定は簡単でした。早速家のコンピュータのブラウザから http://275.276.38.292/ と入力してみると・・・Oh!筆者のホームページが画面に表示されました。(たったこれだけのことでもうれしいもんですねー)
一応自分のWWWサーバーはインターネット上から見えるようになりました、が http://275.276.38.292/ と入力するのはいかにも「カッコ悪りー」です。 で、とうとうDNSサーバーを自分のところで立ち上げようと本腰を上げました。
筆者の会社は前にも記述したように 既に「OCNエコノミー」というインターネット常時接続契約をしています。isi-webnet.co.jp というオリジナルドメインも取得しています。一般的にOCNエコノミー契約を行なう場合には、プライマリーDNSを自前で運営するのが基本となっており、筆者の会社もOCNエコノミー契約を行なったときにDNSサーバーを作ればよかったのだが、知識がなく、必要にせまられていなっかたのでプライマリーDNS、セカンダリーDNS共に、OCNに委託していたのです。
まず、DNSサーバーを自営する旨OCNへ申し入れしました。わりと早いこと返事が返ってきました。筆者は12月の頭に申し入れを行なったら 12月10日には12/21より自前のDNSサービス開始の日程が提示されました。さあ10日ほどしか猶予がないぜ。
ここまで書いたら手がくたびれました。DNSサーバーの実際の設定は次の回に譲ります。