Sep 23, 2007

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

Panther tiger



 フリーのドメインネームなどを取得すれば、mydomain.ddo.jpやmydomain.comのようなURLで、サーバーにしたMacにアクセスすることができるようになり、大変便利になります。しかし、このmydomain.ddo.jpなどのようなアドレスでアクセスできるのは、インターネット側からだけで、サーバー機自身や、サーバー機と同じLAN内にあるMacやPCからはアクセスできません。これを解決するために、以前のログで、Webminを利用したBIND9の設定方法を考えました。

 BINDを起動させることで、インターネット側からもLAN側からも自分の取得したドメインネームでのアクセスができるようになりますが、以前の設定だけでは、LAN側から外の世界に接続しようと思うと、もたつくようになり、イライラするようになってしまいます。ここでは、LAN内からのアクセス速度を改善するためBINDの追加設定について考えていきます。



おなじみのサイトを表示するだけでもずいぶんと時間がかかる


 これはLAN内にあるMacやPCが、外の世界に接続しようとする時に、毎回、LAN内のサーバーにしたMacに、接続先のドメインネームを尋ねてから接続しようとするためにです。

 もうすこしかみ砕いて説明すると、LAN内にあるMacが、サーバーのMacに「www.apple.comに接続したいんだけど、どこ?」と尋ねます。このときサーバーのMacは「えーと、そうだなぁ、ちょっとまって....えーと...あったあった。ここ、こっちね。」そんな具合で道案内しているということになります。


MacをDNSサーバーにしたときのざっくりとした流れ


 通常(サーバーのMacをDNSサーバとしていない場合)は、この道案内はプロバイダさんのサーバーがやってくれているわけです。プロバイダさんのサーバーは、それはもう当然、すごいパワフルなわけですから、この道案内を「www.apple.com?はいそっち。」と高速で処理してくれるので、あっというまにつながるわけです。


プロバイダさんはずばっと...こうね。


 BINDを起動したMacを経由すると自分のURLにアクセスできる、でもそう設定すると通信速度が遅い...ここではこのジレンマを解決するため、外部への「apple.comってどこさ?」という問い合わせを、サーバーにしたMacではなく、プロバイダさんのサーバーにやってもらうように、「転送」をする設定を行っていきます。


 なお、このステップに進む前に

を必ずすませておく必要があります。



必要なもの

  • Mac (Mac OS Xを搭載しているもの。ここは10.4.xで進みます)
  • Safari(またはShiira, Firefox, Mozilla, Omniweb, iCab, Camino, InternetExploreなど)
  • BIND
  • プロバイダさんのDNS サーバーアドレス
  • Webmin
  • 常時接続環境
  • やる気
  • オープンソースコミュニティへの感謝
  • セキュリティーへの配慮
  • インターネットを構築してくれた方々への畏敬の念




Webmin管理ページを開く

  1. まずWebminの管理ページに接続します。特に設定をいじったりしていなければ以下のURLでアクセスできるはずです。

    http://127.0.0.1:10000/




  2. ログインしたら、上のメニューから「サーバ」をクリックします。



  3. 「サーバ」項目が表示されますので、BINDを探し、クリックします。





  4. BIND設定ページが開きます。



  5. いくつか項目がありますがこの中から「転送」という項目を探し、クリックします。



  6. 「転送(forwarders)」設定のページが表示されます。



転送サーバアドレスの入力

 名前を検索するDNSサーバにプロバイダさんのDNSサーバーを指定するための設定を行います。この作業をする前に自分の利用しているプロバイダさんのDNSサーバーのIPアドレスを確認しておいてください。有名どころの設定サイトをいくつかあげておきます。

  1. 「クエリーを転送するサーバ」項目を見つけます。



  2. IPアドレスの欄にプロバイダさんのIPアドレスを入力します。

    ここでは例としてぷららさんのDNSサーバーアドレスを入力しています。かならず自分のプロバイダさんのアドレスを入力してください。


  3. 「転送元のサーバから応答がない場合はディレクトリを検索」設定の「いいえ」にチェックをつけます。




  4. 入力が終わったら「保存」を押します。



  5. 保存が終了すると、BIND設定のトップページに戻ってきますので、このページの下にある「変更を適用」を押して、いま行った設定を有効にさせます。



  6. これで作業はすべて終了です。外部へのアクセス速度が改善しているはずです。もちろんLAN内からも自分のURLでアクセスできるようになっています。

    外部接続もスムーズ


動作確認を忘れずに

 BINDの設定を変更したときは、かならず動作確認を行ってください。サーバー機で提供しているサービス(パーソナルウェブ共有、パーソナルファイル共有、POP, IMAP,SMTP、メーリングリストなど)が正しく動作しているかテストしておいたほうがよいです。また、サーバー機だけでなくLAN内にあるMacやPCについてもテストしておくとよいです。


うまくうごかないときは

 サーバー機でMac OS Xのファイアウォール機能が有効になっていないか確認します。もし有効になっているようなら、一度停止させ、それからテストしてみてください。LAN内でMacサーバーをDNSサーバーとして動かすにはポート53番が開いている必要がありますので、必要があればこれをファイアウォール機能に追加してください。
 BINDの設定をもう一度見直します。プロバイダさんのIPアドレスが間違っていないかを確認してみてください。



おまけ-どのぐらい速度が改善したか確認、理解する-

 よくわからないという人はここは別に読まなくても大丈夫です。おまけですので。

 「転送」設定によってどのぐらい速度が改善しているかは「ネットワークユーティリティ」を利用することで簡単に確かめることができます。速度確認には「Lookup」を利用すると便利です。ここではこのユーティリティを利用して、「転送」設定を行わないとなぜ自前サーバーでのDNSサーバーはもたつくのかというところをすこしふれておきます。




  1. 例として、まだ「転送」設定を行っていないサーバーで、どのぐらい時間がかかっているかを確認してみます。「Lookup」を開いて、「ルックアップするインターネットアドレスを入力してください」欄に適当なURLを入力し実行します。

    ここでは例としてWWFのURLを入力しています。


  2. 実行すると、ちょっと時間がかかってから、ずらりとリストが表示されます。



  3. ポイントは下から4行目ほどにある「Query time」です。ここに表示される数字が「www.wwf.orgってどこなの?」と聞かれてから「えーっと、www.wwf.orgはー...あ、あったここ、ここ。」と解決されるまでにかかった時間です。


    437ミリ秒かかりましたと書いてあります。また解決できたDNSサーバーがルーターのアドレスになっているところも味噌です。


  4. 「転送」の設定がされていない場合、このぐらい時間がかかります。「このぐらい」といわれても、「どのぐらい遅いの?」とよくわからないかもしれません。もうちょっと話を進めます。
    いまlookupしたwww.wwf.orgのDNS情報はDNSサーバーにしたMacに保存(キャッシュ)されています。なので、もう一度同じlookupを行うと、すでにサーバーにしたMacは覚えているので、もう一度探す手間が省けますから、ずいぶんと早くなります。

    もう一度実行してみると...


  5. 今度は、ずいぶんと小さな数字、つまり高速化しているのがわかると思います。

    今度は2msです。220倍ほど高速化しました。SERVERのところも自前のサーバーのアドレスになっているはずです。あと表示されているリストの内容もちょっと変わってるはずです。


  6. こんな具合に、BINDに「転送(forwarders)」設定を行っていない場合は、この「一回目」の作業に時間がかかってしまうため、LAN 内から外部に接続しようと思うと、「なんだかもたもたするなぁ」となるわけです。そして、二回目からは同じURL内なら軽く接続できるようになるというのもわかるかと思います。


  7. 「転送」設定を行うことで、プロバイダさんのDNSサーバを直接利用することになります。プロバイダさんにはこのキャッシュ情報がたくさんありますし、マシンスペックも高速ですから、当然、「Query time」が短くなる、アクセスが高速、という結果になるわけです。


    BINDに「転送」設定をしてから、いままで一度もアクセスしていないユニセフのアドレスをlookupしてみると、初めての接続でも9ミリ秒と高速に接続できているのがわかる。



それではおつかれさまでした。

Trackback

No Trackbacks

Track from Your Website

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

Comments in Forum

25 Comments