アンケートご協力のお願いgihyo.jpでは,2010年度に向けて豪華プレゼントが当たる読者属性アンケートを実施しております。ご協力ください。

gihyo.jp » ADMINISTRATOR STAGE » 連載 » Ubuntu Weekly Recipe » 第20回 いろいろなキャッシュ:dnsmasq, cache proxy

Ubuntu Weekly Recipe

第20回 いろいろなキャッシュ:dnsmasq, cache proxy

Ubuntuを利用していく上で,一時的なデータをキャッシュすることで体感速度や利便性を向上させることができます。今回はターミナルからの設定に慣れることも兼ねて,キャッシュ関連の設定を行うレシピを紹介します。

preloadの利用

第8回で紹介したpreloadも一種のキャッシュです。詳細な使い方は第8回を参照してください。

DNSのキャッシュ――dnsmasqを使う

Webブラウザなどを用いてインターネットアクセスを行う場合,システム側では暗黙でDNS解決を行い,ホスト名からIPアドレスを取得しています。Windowsでは暗黙で,Mac OS XではlookupdがDNS解決の結果をキャッシュしていますが,Linuxではキャッシュを行わず,都度DNSサーバへ問い合わせを行ってしまいます。

ローカルでdnsmasqというDNSサーバを稼働させることで,これらのキャッシュと同等の処理を行わせよう,というのがこのレシピです。

ただし,極端に帯域が狭い環境でもない限り,最悪ケースでも100ms程度で名前解決が行えるはずですから,体感速度にはほとんど影響しません。ただし,DNSサーバへの負荷を下げることができますから,無意味ではありません。

dnsmasqのインストール

今回紹介するdnsmasqは,簡易DNSキャッシュサーバとして動作させるのに適した,小型のサーバプログラムです。キャッシュサーバとして動作させる場合,DNSの実装として代表的なbindに比べて非常に簡単に設定できます。さらに,上流のDNSサーバとして/etc/resolv.confに書かれたものを利用するため,ほとんど設定が必要なく,デスクトップ環境で使うのに非常に適しています。

dnsmasqのインストールは次のように行います。まずパッケージをインストールしましょう。

$ sudo apt-get install dnsmasq

dnsmasqは他のPCから参照することもできますが,今回はローカルでのみ動作させますので,/etc/dnsmasq.confの「listen-address=127.0.0.1」という行のコメントアウトを解除します。

--- /etc/dnsmasq.conf.orig
+++ /etc/dnsmasq.conf
@@ -87,7 +87,7 @@
 #except-interface=
 # Or which to listen on by address (remember to include 127.0.0.1 if
 # you use this.)
-#listen-address=127.0.0.1
+listen-address=127.0.0.1
 # If you want dnsmasq to provide only DNS service on an interface,
 # configure it as shown above, and then use the following line to
 # disable DHCP on it.

設定ファイルを修正したら,dnsmasqを再起動します。操作を行うと,以下の例のような表示が出力されるはずです。

なお,多くのホストにアクセスする場合は,cache-sizeパラメータを大きくし,キャッシュする容量を増やしておいた方がよいでしょう。

$ sudo /etc/init.d/dnsmasq restart
 * Restarting DNS forwarder and DHCP server dnsmasq
   ...done.

dnsmasqが正しく動作していることを確認するため,digコマンドを用いて出力を確認しましょう。「example.com. 66989 IN A 208.77.188.166」といった出力が得られれば問題ありません。

$ dig @127.0.0.1 example.com

resolv.conf/dhclient.confの設定

このままでは通常の名前解決にはdnsmasqは利用されませんので,resolv.confを修正します。/etc/resolv.confには「nameserver」で始まる既存のエントリがいくつか記述されているはずですが,以下のように,それらの先頭に「nameserver 127.0.0.1」を追加します。

nameserver 127.0.0.1
nameserver 208.77.188.166

これでシステムが利用するDNSサーバとして127.0.0.1(自ホスト)で動作しているdnsmasqが使われるようになります。以下のように,digコマンドの“SERVER”が127.0.0.1になったことを確認してください(ちなみに,nameserverを追加する前にdigを行った場合,SERVERは既存のDNSサーバを指しているはずです)。

$ dig | grep 127.0.0.1
;; SERVER: 127.0.0.1#53(127.0.0.1)

また,デスクトップ環境として一般的な,DHCPクライアントとして利用する環境では/etc/resolv.confは起動時に(厳密にはDHCPによるアドレス取得のたびに)自動的に生成されます。逆に言えば,先ほど行ったnameserver行の追加を,都度行う必要があります。

これでは非常に使いにくいので,DHCPクライアントの設定を行い,生成されるresolv.confにnameserver 127.0.0.1行を自動的に追加するようにします。

/etc/dhcp3/dhclient.confにコメントアウトされた状態でサンプルとして入力されていますが,「prepend domain-name-servers 127.0.0.1;」という行を有効にしてください。これにより,以降自動生成されるresolv.confにはnameserver 127.0.0.1行が含まれるようになります。

DNSキャッシュのクリア

dnsmasqを利用している場合,DNSのキャッシュのクリアを任意のタイミングで行う必要が出てくる場合があります。典型的なのは,DNSラウンドロビンで構成されたサーバ群にアクセスする場合です(特に,yahoo.comなどの高度なDNSラウンドロビン制御を行っているサイトの場合,キャッシュがクリアできないと「詰む」ことがあります)。

そのような場合は,以下のコマンドでキャッシュをクリアすることが可能です。

$ sudo /etc/init.d/dnsmasq force-reload

著者プロフィール

吉田史(よしだふみひと)

Ubuntu Japanese Team Member株式会社創夢所属。システム管理を中心にWindows/PC Unixを併用している。Ubuntu Japanese Teamではパッケージサーバの管理や翻訳などの作業を担当。

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

読むウェブ ~本とインタラクション

ディスプレイで読む活字とそのインタラクション(interaction:相互作用)について,最新Webを紹介しながら読み解いていく。

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

Windows phoneアプリケーション開発入門

Windows Marcketplace for Mobileがサービス開始され,作成したアプリケーションを個人でも世界をターゲットに公開できる環境が整ってきました。これを機にWindows phoneアプリケーションの開発をしてみませんか?

ここは知っておくべき!Windows Server 2008技術TIPS

5年ぶりのサーバOSとなったWindows Server 2008が出荷されて早2年。2009年にはR2が出荷され,再び注目を集めています。発売前から実施したトレーニングによって感じた,インフラエンジニアの方々に知っておいていただきたい機能を中心にご紹介します。

キーパーソンが見るWeb業界

本連載はWeb Site Expert/gihyo.jpとの連動企画です。阿部淳也, 長谷川敦士, 森田雄のお三方による,Web業界をテーマにした座談会です。

きたみりゅうじの聞かせて珍プレー

ソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。みなさんからの投稿もお待ちしてます!

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

まだ間に合う「ITパスポート」受験対策 原山先生の短期合格塾

この連載では,4月18日のITパスポート試験の受験に向けて,短い期間で効率良く受験対策を行う方法や,確実に得点するための裏ワザなどを伝授していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス