Nov 05, 2005

Mac OS XでDNSサービスを起動させよう-BIND9編-

Panther tiger

 サーバーがddo.jpでドメインを取得していて、「なんとかかんとか.ddo.jp」というアドレスで運用されていても、LANからは、この「なんとかんとか.ddo.jp」というアドレスにはアクセスできません。ここではMac OS XにインストールされているBINDというDNSサーバを起動させて、この問題を解決する方法を考えていきます。

 BINDを稼働させるには、しっかりとした心構えがいります。正しく設定をおこなわないと、広いネットワーク上に問題を引き起こし、迷惑をかけることになります。自分にとって本当に必要かどうかを考えて、起動させるかどうかを決めてください。


 この問題を解決するだけなら、単に/etc/hostファイルを編集するだけでいいかもしれませんけれども。とりあえずここではWebminを利用してBINDの設定していきたいと思います。


このステップをはじめる前に、

をすませている必要があります。




必要なもの

  • Mac(Mac OS Xを搭載しているもの。ここは10.3.x(Panther)で進みます)
  • Safari(またはShiira, Firefox, Mozilla, Omniweb, iCab, Camino, InternetExploreなど)
  • やる気
  • オープンソースコミュニティへの感謝
  • セキュリティーへの配慮
  • インターネットを構築してくれた方々への畏敬の念




概要

 ここでは、外部の人間のアクセスはすべてサーバーにしたMacへ向かうようルーターが設定されていることが前提となります。安全性も考え、LAN内には外部からの人間は一切アクセスできないようにしておいてください。よくわからんという人はもう少し勉強してからのチャレンジですね。

  1. これから設定していくイメージはこんな感じです。クリックで拡大します。


    全部で4台のMacやPCがネットワークにあって、ハブでつながっています。この上流にルータがあり、インターネットに接続されています。ルータでサーバーにしたMacにはIPが192.168.0.3に、LAN内のマシンには192.168.0.4、192.168.0.5、192.168.0.6と割り当てられています。


  2. WANと書かれているオレンジ色のゾーンまでが、外部からの人間がアクセスできる領域になります。外部の人はIPアドレスやxxx.ddo.jpでサーバーにしたMacに接続されます。

    壁のモジュラージャックなどからADSL/光またはモデムにつながていて、その下にルーターがあったり、さらにハブがあったりするはずです。これらが一個になっていることもあるでしょうね。
    一台しかMacがなければ、ADSLとサーバーはそのままつながっていることになります。


  3. 一方で、サーバー側のMacは外側の顔と内側の顔を持っていることになります。

    外側の顔はプロバイダから取得するIPアドレスとddo.jpで取得したドメインネーム。たとえば220.220.248.1(ちなみのこれはApple.com)とxxxx.ddo.jp。内側の顔はルーターによって割り当てられたIPアドレス。ここでは168.168.0.3がサーバにしたMacに割り当てています。


  4. ここがポイントです。外側の顔にはxxx.ddo.jpのような名前があるのですが、これはあくまで外側の顔です。内側の顔には名前がありません。このためLAN内からサーバーにしたMacを名前で呼び出そうとしても、つながらないわけです。

    ではつながっても、

    ではつながらないのです。


  5. そこでIPアドレス=名前になるように、また名前=IPアドレスになるように、BIND DNSサーバーをLAN内に作ります。BINDがこれらの問題を解決してくれます。

    IPアドレス192.168.0.3はmydomain.ddo.jpですよとBINDに設定をしておくと問題解決。


  6. もし必要ならLAN内にあるほかのMacやPCに名前を付けていくこともできます。たとえばルーターで192.168.0.4のアドレスをもらっているMacにはhelium、192.168.0.4のアドレスをもらっているMacにはneon、192.168.0.4のアドレスをもらっているMacにはargonのようにです。

    別に名前は何でもいいです。好きな名前を考えてください。漫画のキャラクターとか、惑星の名前とかね。




Webminの起動とBIND設定画面まで

まず、SafariでWebminに接続します。

  1. Webminへの接続はURLはhttp://127.0.0.1:10000/です。



  2. ログイン画面が開きますので、アカウントとパスワードを入力してログインします。



  3. Webminのトップ画面が出ます。



  4. 「サーバ」をクリックしてサーバ設定画面に移動します。



  5. サーバ設定ページが開きますので、中から「BIND DNSサーバ」設定を探してクリックします。



    versionが8ってカンジに見えますが、Mac OS XにインストールされているBINDはちゃんとアップデートなどがすんでいると9.2.2のはずです。


  6. BIND DNSサーバ設定ページが開きます。

    BINDのバージョンは9.2.x以上で。



BINDの設定-マスターゾーンの設定(順引き)-

 順引きの設定をします。順引きは、LAN内のMacから「あのさ、mydomain.ddo.jpってどこのMac?」という質問が出てきたとき、「あー、mydomain.ddo.jpね、それならウチのLANの192.168.0.3っていうIPアドレスだよ。」とこたえる流れです。

  1. BIND DNSサーバ設定画面を下の方にいくと、新規ゾーンを作成する場所があります。



  2. 「新規のマスターゾーンを作成」をクリックします。「マスターゾーンの作成」ページが開きます。






  3. 「ドメイン名/ネットワーク」にサーバーでつかっているドメインネームをいれます。ddo.jpでドメインを取得しているのなら、「あなたの取得したドメイン.ddo.jp」と入力します。サブドメインなどがついているならそれをつけてください。



  4. 次にE-mailアドレスを入力します。サーバー管理者としてのEメールアドレスをいれておくと良いです。注意するのは@マークのかわりにピリオドを使うことです。

    @のかわりに . で。


  5. ここまでの設定が終わったら、「作成」を押します。


  6. 「マースターゾーンの編集」画面に切り替わります。



  7. 「アドレス(0)」を押します。



  8. アドレスレコードの設定ページになります。



  9. レコード名にさっき入力したドメインネームと同じものを入力します。注意するのは最後にピリオドを一つつけることです。またアドレスにはサーバーがLAN側で使用しているIPアドレスを入力します。

    レコードの一番最後に . を忘れずに。


  10. 入力がすんだら「作成」を押して先に進みます。



  11. 「アドレスレコード」のページに戻ってきます。LAN内のMacにドメインを割り振るのなら、さらにStep9からの作業を繰り返します。作業が完了したら「ゾーンリストに戻る」を押して戻ります。



BINDの設定-マスターゾーンの設定(逆引き)-

 次にマスターゾーンの逆引きのほうを設定していきます。

  1. 正引きのときとおんなじように、BIND DNSサーバ設定画面を下の方にいくとある、「新規のマスターゾーンを作成する」をクリックします。





  2. 「新規のマスターゾーンを作成」をクリックします。新規マスターゾーンの作成画面が開きます。



  3. ゾーンの種類を「逆引き」(アドレスを名前に)にチェックします。



  4. 「ドメイン名/ネットワーク」にサーバーのLAN側IPアドレスを入力します...って、全部入力してしまいそうになりますが、ここはそうではなくて、最後一桁ぶんは入力せずにおきます。



  5. メールアドレスについては先ほどと同様にします。注意するのは@マークのかわりにピリオドを使うことです。



  6. 入力がすんだら「作成」を押して先に進みます。



  7. マスターゾーンの編集ページが表示されます。



  8. 「逆引きアドレス(0)」をクリックして、先に進みます。



  9. 逆引きアドレスレコード設定ページになります。



  10. アドレスにサーバーのIPアドレスをいれます。



  11. ホスト名にサーバーのドメインネームと同じものを入力します。注意するのは最後にピリオドを一つつけることです。



  12. 入力が終わったら「作成」を押して先に進みます。



  13. 「アドレスレコード」のページに戻ってきます。LAN内のドメインを割り振たMacの分についても、Step9からの作業を繰り返します。作業が完了したら「ゾーンリストに戻る」を押して戻ります。




BINDの起動

ここでいよいよBINDを起動させます。

ただし、Mac OS X10.4(Tiger)ユーザーは、以下のステップを行っても起動することができません。このステップはとばして次のTiger用の設定を行ってください。
Tiger用の起動設定


  1. ページの下の方にある「ネームサーバの起動」ボタンを押すと、BIND DNS サーバが起動します。



    起動し終わるとボタンも表示がかわるよ。


  2. このままだとMacを再起動した後、BINDは自動的に起動してくれません。Mac起動時にBINDも起動してくれるように設定をします。ページの上の方にある「システム」をクリックしてシステム設定画面に移動します。





  3. 「起動およびシャットダウン」ボタンをクリックします。



  4. 設定ページになります。



  5. リストのなかに「DNSSERVER」という項目があるのでクリックします。



  6. アクションの設定が表示されます。この設定を"-NO-"から"-YES-"に変更します。



  7. "-YES-"に設定したら「保存」を押します。




  8. 「起動およびシャットダウン」のページに戻ります。リストのDNSSERVERの設定が"-YES-"になっていることを確認します。



  9. 以上でWebminでのBIND設定は終了です。


Mac OS X 10.4.x (Tiger)の場合-追加設定-

Mac OS X10.4.x(Tiger)の場合、10.3と異なり、上記の設定だけでは、「ネームサーバを起動」ボタンを押してもBINDを起動させることができません。おそらく「起動に失敗しましたUnknown error」とでてしまうと思います。うまくいかない原因はrndc.keyが作成されていないためです。また、named.confにも、rndc.keyの記述の重複があることも原因です。この場合は、以下の設定を済ませることで解決し、TigerでもBINDを起動することができます。Pantherユーザーはここのステップは関係ないので、とばして次のステップに進んでください。

  1. ターミナルを起動させ、以下のコマンドを入力し、実行します。


    sudo /usr/sbin/rndc-confgen -a


    実行するとMacの管理者パスワードを求められますので対応してください。入力したパスワードはセキュリティ確保のため表示されませんが、ちゃんと入力はされていますので、間違えないようにします。



    これで、/etc内にrndc.keyができあがります。


  2. 次にFinderの「移動」から「フォルダへ移動」を実行し、/etcに移動してください。






  3. フォルダの中から、「named.conf」を探し、デスクトップにドラッグアンドドロップして、コピーしてしまいます。



    [注意]万が一に備え、必ずもう一つバックアップとしてどこかにコピーしておいてください。




  4. デスクトップにコピーしたnamed.confをmiなどのテキストエディタで開きます。60行目か61行目あたりに、以下の4行の記述があるので、これを消して保存します。


    key rndc-key {
    algorithm hmac-md5;
    secret "xxxxxxxxxxxxxxxxxxxx";
    };






  5. 保存がすんだら、閉じて、これを/etcフォルダに書き戻します。




    ダイアログが出るので「認証」を押して先に進みます。


    置き換えを押します。


    認証を求められますのでMacの管理者パスワードを入力します。


  6. 置き換えが終了したら、named.confをクリックして、Finderのファイルから「情報を見る」を実行します。








  7. 情報ウィンドウの所有者とアクセス権を変更します。オーナーをシステムに、グループをwheelにします。注意することは、先にグループの方を変更し、そのあとオーナーを変更することです。認証を求められますのでそのときは対応してください。


    上記のようにオーナー、グループともに自分の名前になっているので...。


    上記のように変更します。変更がすんだら閉じてしまってかまいません。


  8. WebminのBINDに戻り、「ネームサーバの起動」を実行します。今度は無事に起動してくれるはずです。



    いやっほー


  9. このままだとMacを再起動すると、BINDは停止してしまいますので、毎回Webminを起動して、「ネームサーバの起動」ボタンを押さないといけなくなってしまいます。そこで、再起動などをしたとき、自動起動してくれるように設定をおこないます。ターミナルを起動させて、以下のコマンドを入力します。

    sudo launchctl load -w /System/Library/LaunchDaemons/org.isc.named.plist


    一行のコマンドですので間違えないでください。


    実行するとMacの管理者パスワードを求められますので、入力して対応してください。


    もし、上記のターミナルを使った操作が苦手な人はlaunchd制御管理ユーティリティ「Lingon」を利用するととても楽だと思います。

    launchd制御管理ユーティリティ「Lingon」


    Lingonのサイトへ行き、ダウンロード。

     
    アプリケーションフォルダに入れ、ダブルクリックで起動。


    管理画面が出ますので、


    右のSystem Daemonsをクリックします。このとき警告ダイアログが出ますがとりあえず「OK」を押して先に進みます。


    リストの中から、「org.isc.named」を探し出し、選択します。


    Loadボタンを押してnamedを起動するように設定します。


    ちょっと時間はかかりますが、緑色のマークになれば起動完了です。


  10. 以上でTiger用の追加設定は終了です。次のステップに進んでください。



ネットワークパネルの設定変更(サーバにしたMac)

 いままではプロバイダのDNSサーバを参照してインターネットをしていたことになります。BINDを起動させたことで、今度はプロバイダのDNSサーバではなくて、BINDを起動させたMacをDNSサーバとして指定してあげます。

  1. BINDサーバを起動させたMacのシステム環境設定を開きます。





  2. ネットワークパネルを開きます。




  3. 内蔵Ethernetを選んで設定ボタンを押します。





  4. TCP/IPタブをクリックし、TCP/IP設定画面にします。



  5. DNSサーバに「127.0.0.1」を入力します。



  6. 入力が終わったら、「今すぐ適用」を押します。



  7. 以上でサーバにしたMacの設定は終了です。ほかにLANもなく、サーバの他にMacもPCも無いなら、次の行程は飛ばして、動作確認に進んでください。



ネットワークパネルの設定変更(LAN内あるMacやPC)

 LAN内にあるMacやPCも、いままでプロバイダのDNSサーバを参照してインターネットをしていたわけですが、今度からはBINDを起動させたMacをDNSサーバとして指定してあげます。こうすると、いままで「http://あなたの取得したドメイン.ddo.jp」でLAN内からは、サーバーにアクセスできなかったのに、今度からは解決されるようになります。

  1. サーバーと同じLAN内(ネットワークゾーン内)にあるMacのシステム環境設定を開きます。





  2. ネットワークパネルを開きます。




  3. 内蔵Ethernetを選んで設定ボタンを押します。





  4. TCP/IPタブをクリックし、TCP/IP設定画面にします。



  5. DNSサーバにサーバーのLAN側のIPアドレスを入力します。これはお使いの環境によって設定が異なるはずです。ここではサーバのMacは192.168.0.3というアドレスになっていますので、「192.168.0.3」を入力します。



  6. 入力が終わったら、「今すぐ適用」を押します。



  7. 以上の操作をLANにあるMacすべてに対しておこないます。これでサーバにしたMacにドメインネーム(ホストネーム)でアクセスできるようになるはずです。作業が済んだら次の動作確認に進んでください。



動作確認

 LAN内にあるMacから実際に「http://あなたの取得したドメイン.ddo.jp」でアクセスできるか試してみます。

  1. Safariを起動して、URLにあなたの取得した「http://あなたの取得したドメイン.ddo.jp」でアクセスしてみてください。




  2. 無事ページが表示されればBINDは動作してることになります。

    おなじみapacheのデフォルト画面。


  3. ちなみにmydomainだけでもアクセスできます。



  4. パーソナルファイル共有、Windows共有、FTP、リモートログインなどのサービスでもこのアドレスはちゃんと通ります(あたりまえ)。bonjour(rendezvous)がメインの環境ではそんなに関係ありませんけどね。




補足-アクセス速度のもたつき-

 なお、LAN内にあるMacから「http://あなたの取得したドメイン.ddo.jp」でアクセスできるようになるのは大変便利なわけなんですが、そのかわりLAN内のMacやPCからLANの外にアクセスする時には、アクセスがもたつくようになります。これはいままでは外の世界に接続するときは、ルーターやADSLモデムなどを経由するだけで良かったわけですが、今度はBINDを起動したMacにDNSをきいてから出て行くことになるためです。一度アクセスするとそのDNS情報はサーバのMacにキャッシュされますので、二度目から(キャッシュが保存期間されている間)は同じドメイン内へのアクセスは高速化しますが、それでもサーバにしたMacの処理速度にもよるかもしれません。

 この「もたもた」解決するためには、次のステップに進んで、DNSサーバーを「転送」する設定をおこなうのをおすすめしておきます。
Mac OS XでDNSサービスを起動させよう-BIND9編-その2

 それから、おきまりのオチですが、とりあえずこれでLAN内から参照できるようになったと言うだけで、設定はもっと洗練されたものができるはずだと思います。それぞれお使いの環境に合わせてみてください。


1 Trackback

ブログ

ブログの活用がまだまだできていません。トラックバックというのがどうもうまくできなくて。とりあえずBINDを起動してみます。BINDを参考にさせていただきました。ブログの女王こと眞鍋かをりさんのサイトもトラックバックさせてもらってみます。

From : My blog - blog masterさんのブログ - Erase Support @ 2006-02-12 23:55:05

Track from Your Website

http://earlybirds.ddo.jp/namahage/inegalog/trackback/tb.php?id=22
(言及リンクのないトラックバックは無視されます)

Comments in Forum

5 Comments