Rescached
rescached はインターネットの名前解決・アドレス解決をキャッシュするデーモンです。実行中はローカルメモリに保存し、実行していない間はディスクキャッシュに保存されます。
rescached は BIND などの DNS サーバーの再実装ではありません。rescached の目標はあくまで DNS クエリをキャッシュして外部ネットワークへの不必要なトラフィックを減らすことにあります。個人的・小規模な環境での使用が想定されています。
特徴
- UDP と TCP によるリクエストを処理可能。
- ディスクにキャッシュを保存・ロード。
/etc/hosts
でアドレスとホストネームをロード・提供。
rescached のキャッシュの仕組み
メモリにおけるキャッシュの順番は使用頻度によって決まります。頻繁に問い合わせがされるホストネームはキャッシュリストの一番上になり、問い合わせが少ないホストネームはキャッシュリストの下に沈みます。ユーザーの習慣を元にキャッシュリストが作成され、解決速度が高速になります。
# | ホスト名 |
---|---|
529 | www.reddit.com |
233 | www.google.com |
... | ... |
1 | www.kilabit.info |
rescached で保存されるキャッシュエントリの数は設定ファイルの cache.max の値によって決まります。cache.max の上限に達すると、デーモンは cache.threshold に設定されている閾値よりもアクセスが少ないキャッシュエントリを全て削除します。
インストール
rescached-gitAUR パッケージをインストールしてください。
設定
デフォルトで設定でデーモンを直接起動できます。
Rescached の設定は /etc/rescached/rescached.cfg
に存在します。以下のような設定があります:
- 親の DNS サーバーの設定:
server.parent
の値を使用したい DNS サーバーに変えてください。
- キャッシュの最大値の設定:
cache.max
やcache.threshold
の値を必要に応じて変更してください。
設定ファイルを編集したら、resolv.conf ファイルを開いてリゾルバのアドレスを localhost のアドレスで置き換えてください:
nameserver 127.0.0.1
他のプログラムが設定を上書きしてしまうことがあります。詳しくは resolv.conf#DNS 設定の保護を見てください。
設定できたら rescached.service
を起動・有効化してください。
参照
- 設定について詳しくは rescached の man ページを参照してください。
- 簡単な説明は こちら を参照。
- ユーザードキュメント
- github