🌐
BINDで作る、LAN内向けキャッシュDNSサーバー構築メモ
はじめに
自宅やオフィスのLAN内に、Webアクセスを高速化したり、内部向けドメインの名前解決を行ったりするための「キャッシュDNSサーバー」を構築することがあります。
この記事では、自身のWikiに書き溜めていたメモを元に、CentOS系のLinuxディストリビューションで、定番のDNSソフトであるBIND (Berkeley Internet Name Domain) を使って、LAN内向けのキャッシュDNSサーバーを構築する際の要点をまとめます。
1. BINDのインストール
yum
またはdnf
で、bind
と、セキュリティを高めるためのbind-chroot
をインストールします。bind-chroot
を導入すると、BINDが参照するルートディレクトリが/var/named/chroot
に偽装(chroot)されます。
sudo yum install bind bind-chroot
2. BIND設定ファイル (named.conf) の編集
次に、メインの設定ファイルである/var/named/chroot/etc/named.conf
を編集します。
キャッシュDNSサーバーとして動作させるための最小限の設定は以下の通りです。
/var/named/chroot/etc/named.conf
options {
// BINDがリッスンするIPアドレスを指定
// LAN内のIPアドレスとループバックアドレスを指定
listen-on port 53 { 192.168.1.10; 127.0.0.1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; 192.168.1.0/24; }; // localhostとLAN内(192.168.1.0/24)からのクエリを許可
// 再帰的な問い合わせを許可する
recursion yes;
// DNSSECの検証を有効にする
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;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
重要なポイント:
-
listen-on
: サーバー自身のIPアドレスを指定します。 -
allow-query
: LAN内のネットワークセグメント(例:192.168.1.0/24
)からの問い合わせを許可します。これを設定しないと、LAN内の他のPCから利用できません。 -
recursion yes
: このサーバーが存在を知らないドメイン名について、他のDNSサーバーに再帰的に問い合わせに行くことを許可します。キャッシュDNSサーバーの核となる設定です。
3. ファイアウォールの設定
DNSサービス(ポート53)へのアクセスを許可します。
# firewalldの場合 (CentOS 7 / Rocky Linux 9など)
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload
4. サービスの起動と自動起動設定
設定が完了したら、named
サービスを起動します。
# BIND (named) サービスを起動
sudo systemctl start named
# OS起動時に自動起動するように設定
sudo systemctl enable named
systemctl status named
で、エラーなく起動しているか確認しましょう。
おわりに
以上で、LAN内で利用できるキャッシュDNSサーバーの基本的な構築は完了です。
LAN内の各クライアントPCのDNS設定を、このサーバーのIPアドレスに向けることで、一度問い合わせたドメインの名前解決がキャッシュされ、2回目以降のWebアクセスが高速化される効果が期待できます。
この記事で紹介した内容以外にも、技術情報をブログで発信しています。
MyNote
Discussion