Linux による各種サーバー構築


DNS サーバーの構築


[前の階層へ] | [トップページに戻る]





ルータを使ってると、DNS サーバーがないと外部(プロバイダとか)の DNS にすべてのクライアントが訊きにいかなきゃいけなかったりして、外部ネットワークに余計な負荷をかけるのは悪いので、自分のトコで構築して、うちの LAN の代表として DNS 情報をやりとりするみたいな感じにしよーってゆーのが、ダイヤルアップユーザーにとっての意義だけど、専用線とかのヒトは絶対必要なのかも・・・(笑)

さて、まづ DNS がしてるコトの説明をば。何をしてるか知らないと、設定ファイルだって書きよーないし(^_^;)
(Web 上探すと、単純にやり方しか書いてないトコが多すぎ(苦笑))

で、TCP/IP ねっとわーく概論のドメインとドメイン名の説明で少し触れたけど、DNS ってゆーのはよーするにドメイン名と IP アドレスの相互変換をするよーなモノなの。
(ちょっと語弊があるけど(^_^;))

だから、例えば http://www.yahoo.co.jp/ とブラウザで指定したときも、ちゃんと内部的には DNS に尋ねて、ドメイン名から IP アドレスを教えてもらって、それで接続してるってワケ。

「相互変換」って書いたよーに、上で示した「ドメイン名→ IP アドレス」以外にも「IP アドレス→ドメイン名」って変換も可能なのね。

一応、言葉の定義になっちゃうけど、定義しとかないと不便だから定義しとくです。

正引きドメイン名から IP アドレスを調べるコト。
逆引きIP アドレスからドメイン名を調べるコト。

コレは DNS サーバーを構築するのなら(しなくても(笑))覚えといた方が良いんぢゃないかと。


  1. アーカイブを展開・コンパイル。

    適当なトコからアーカイブファイルをげっとしてくるのです。例えば、このへんとか。
    げっとしてこなくても、もしかしたらディストリビュージョンの contrib の方に入ってるかも・・・とか(爆)

    ちなみに、ココでは bind ver.8 の説明をするから、ver.4 とかのヒトはダメなのです。
    # って、わざわざばーじょんの古いモノをダウンロードするとは思えないけど(苦笑)

    既に bind 自体は未設定で入ってるって場合には、設定ファイルが named.conf ぢゃなくて named.boot だったら古いってコトなのです(^_^;)

    そーゆーワケで、バイナリパッケージをげっとしたヒトは必要ないけど、ソースコードでげっとしたヒトはコンパイルしませう。
    ぼくは、Plamo に最初から入ってたのを使ってるから、コンパイル作業はしなかったのです(爆)


  2. 設定ファイルを書く。

    設定ファイルを書くんだけど、相互に関係した複数の設定ファイルを書かないといけないの。
    それで、具体的に必要な設定ファイルだけど・・・。


    こんな感じ。

    named.root に関しては、上位 DNS に尋ねるためのお約束みたいなファイルだから書く必要はなし。コレをそのまま使えば良いかと。
    (定期的に InterNIC で配布されてる named.root に更新するコトが推奨されてるのでたまには自分で更新しとくコト(謎))

    とゆーワケで、残りのファイルは、がんばって書きませう(笑)
    # 行頭にスペースがあるとかないとかでも動かなかったりするから気を付けるコト(^_^;)

    まづ、ゾーンファイルってゆーのは、よーするに変換表みたいなモノ。
    「yahoo.co.jp の IP アドレスってなに〜?」とかって訊かれたときに、正引きゾーンファイルを元に、yahoo.co.jp の IP アドレスを教えたりするワケ。

    とは言え、構築の際には、自分のトコのだけ書いておけばおっけ。
    それ以外の情報は、上位の DNS (個人規模ならプロバイダの DNS)に訊けば良いワケだしね。

    と、ココまで書けば、正引きゾーンファイルと逆引きゾーンファイルって具体的な書き方は分からなくても、どんな内容が書かれるファイルか分かるよね?(^_^;)

    そぅ、正引きゾーンファイルには、ドメイン名と IP アドレスの対応表。
    逆引きゾーンファイルには、IP アドレスとドメイン名の対応表を書けば良いワケね。

    最後に named.conf だけど・・・コレは、例えば「yahoo.co.jp の IP アドレスわ?」と訊かれたときに、どのゾーンファイルを見るか(もしくは、どこの DNS サーバーに訊きに行くか)なんて設定をしたり、あと総合的な設定を書くファイルなの。

    named.conf に書く内容を箇条書きにすると、


    こんな感じ。

    まぁ、個人的な LAN ならネットワークは 1つだろーから、「1 つのネットワークの・・・」って言っても、イーサネットインターフェースな中のゾーンファイルを定義すれば良いぢゃないかと。

    コレで、一通り設定ファイルの説明は終わったと思ふので、あとはサンプル(うちで使ってるファイルを改竄したモノともいう)を置いておくので、それを改造したり、適宜ファイル名を変えて、使ってもらえれば・・・(↓コレね)

    named.conf | named.root | 正引きゾーンファイル | 逆引きゾーンファイル
    ループバックインターフェース用ゾーンファイル

    ってゆーのも、1 から書くと、空白やピリオドとか気づけない(気づきにくい)細かいミスでうまくいかずに泣きを見る可能性が高いから、既に動いてるファイルを改竄して使った方が良いと思うのです。

    書式が、COBOL みたいに(正書法みたいに)厳しいっぽいし。

    (サンプルファイルについての補足)
    ncc-2893.ufop.gov ってゆーのが DNS サーバー。ncc-71807.ufop.gov ってゆーのがクライアントマシンね。

    ゾーンファイルの CNAME ってゆーのは、いわゆるエイリアス。
    http://ncc-2893.ufop.gov/ ぢゃなんだから、www なら ncc-2893 って設定しとけば http://www.ufop.gov/ って指定されても、自動的に http://ncc-2893.ufop.gov/ にアクセスされるよーになるってワケ。

  3. 起動時に自動起動するよーに設定。

    ヒトの好みにもよるけど、うちは /etc/rc.d/rc.inet2 あたりに


    # Start the NAMED/BIND name server.
    if [ -f ${NET}/named ]; then
      echo -n " named"
      ${NET}/named
    fi
    

    なんて書いておいてあるのです。


  4. 完成っ!

    できあがり〜♪(ぱちぱち)