導入
こんにちは!MyNoteへようこそ。
このブログのキャッチコピーは「未来の自分のための技術メモ、時々あなたのためのヒント。」ですが、今回はあなたの家のインターネットがちょっと快適になるかもしれない、そんな「ヒント」です。
「最近、Webページの表示が少し遅いな…」「いつも見るサイトなのに、毎回読み込みに時間がかかる…」と感じたことはありませんか?
その原因の一つは、Webサイトを見るたびに行われる「名前解決(DNS)」という処理にあるかもしれません。この記事では、自宅サーバーに**「キャッシュDNSサーバー」**を構築して、この名前解決を高速化し、Webアクセスを快適にする方法を解説します。
キャッシュDNSサーバーって、何が便利なの?
私たちが「https://www.google.com/search?q=google.com」のようなドメイン名でWebサイトにアクセスすると、コンピューターはまず、そのドメイン名がどのIPアドレス(インターネット上の住所)に対応しているかを、世界中のDNSサーバーに問い合わせます。これを**「名前解決」**と呼びます。
キャッシュDNSサーバーは、この問い合わせ結果を**一時的に覚えておく(キャッシュする)**専門のサーバーです。
一度訪れたサイトのIPアドレスを覚えておいてくれるので、2回目以降のアクセスでは、わざわざ外部に問い合わせに行く必要がなくなり、Webページの表示が高速化されるというメリットがあります。
BINDを使った構築の4ステップ
今回は、Linuxで最も標準的なDNSサーバーソフトである**「BIND」**を使って構築します。
Step 1: BINDをインストールする
まずは、yum
(またはdnf
)コマンドを使って、BINDをサーバーにインストールします。
sudo yum install bind bind-chroot
bind-chroot
というパッケージを一緒に入れると、BINDが動作する範囲を特定のディレクトリに限定してくれるため、セキュリティが向上します。
Step 2: BINDの基本設定を行う (named.conf)
次に、設定ファイル/var/named/chroot/etc/named.conf
を編集します。これがBINDの動作を決める最も重要なファイルです。
options {
// サーバー自身のIPアドレスと、自分自身(127.0.0.1)からの問い合わせを受け付けます
listen-on port 53 { 192.168.1.10; 127.0.0.1; };
// LANの中(192.168.1.0/24)からの問い合わせを許可します
allow-query { localhost; 192.168.1.0/24; };
// わからないドメインは、他のDNSサーバーに聞きに行く設定です (キャッシュDNSの核!)
recursion yes;
// --- 以下はセキュリティ関連などの推奨設定 ---
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
// --- ログの設定 ---
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
// --- ルートDNSサーバーの情報を記述したファイル ---
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc12.zones";
include "/etc/named.root.key";
特に重要なのはallow-query
です。ここにあなたのLANのネットワーク範囲(例:192.168.1.0/24
)を指定しないと、他のPCからこのDNSサーバーを利用できないので注意してください。
Step 3: ファイアウォールの設定
DNSが使うポート(53番)への通信を許可します。
# firewalldの場合 (CentOS 7 / Rocky Linux 9など)
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload
Step 4: BINDサービスを起動する
最後に、設定を反映させるためにBIND(サービス名はnamed
)を起動し、サーバーを再起動しても自動で立ち上がるように設定します。
# namedサービスを起動
sudo systemctl start named
# OS起動時に自動で起動するように設定
sudo systemctl enable named
どうやって使うの?
構築が完了したら、あとはあなたのPCやスマートフォンのWi-Fi設定で、DNSサーバーのアドレスを、今回構築したサーバーのIPアドレス(この例では 192.168.1.10
)に変更するだけです。
まとめ
今回は、BINDを使って家庭内やオフィス内にキャッシュDNSサーバーを構築する手順をご紹介しました。
少し専門的に感じるかもしれませんが、一度設定してしまえば、日々のWebブラウジングが少し快適になる、まさに「縁の下の力持ち」的な存在です。
この記事が、あなたのネットワーク環境を改善するための「ヒント」になれば幸いです。
コメント