[Linux] UnboundでDNSキャッシング

※当サイトは広告収入で運営されているため広告が表示される場合があります。

前書き

今までdnsmasqを使っていましたが DNSCrypt、DNS over HTTPS などの機能全部のせのUnboundを使ってみたいと思ったので乗り換えることにしました。

デスクトップ、ノートPCで Unbound のようなDNSサーバ機能有したツールを使う利点としては単純に通信の応答速度の高速化できるだけでなくプライバシーの強化もできることが挙げられます。

1. Unboundをインストール

Arch Linuxではunboundというパッケージのみが必要です。

$ sudo pacman -S unbound

2. リゾルバ設定ファイルへの書き込みをやめさせる

NetworkManagerに /etc/resolv.conf (名前解決を行うサーバを定義している設定ファイル)を改変するのをやめさせるには以下のような設定ファイルを /etc/NetworkManager/conf.d/ 下に作成します。更に3行目でSystemd付属のリゾルバー「systemd-resolved」 へのアクセスも無効にします。

なぜかdns=unboundという設定では Unboundに斡旋されず、 dns=none とDNS設定自体を無効に設定するとうまくいきました。

$ sudoedit /etc/NetworkManager/conf.d/dns.conf
[main]
dns=none
systemd-resolved=false

これで設定ファイルが改変されなくなったのでネームサーバをローカルに設定します。

# rm -f /etc/resolv.conf
# echo 'nameserver 127.0.0.1' > /etc/resolv.conf

ここでは削除していますが元ファイルを編集して再利用しても大丈夫です。

3. NetworkManagerの再起動

NetworkManagerを再起動し設定を読み込ませます。

$ sudo systemctl restart NetworkManager

4. Unboundの起動・有効化

Unboundをシステム起動時に実行するよう設定します。

$ sudo systemctl enable unbound

Unboundを実行します。

$ sudo systemctl start unbound

念のためにUnboundが動作していることを確認します。

$ sudo systemctl status unbound

5. DNSキャッシュの確認

DNSがきちんとキャッシュされているかどうか確認を行います。

$ drill archlinux.org | grep "Query time"

上記のように0〜10 msec内に応答時間が収まっていれば無事にDNSキャッシュングが行われていると思われます。

おわり

コメント

タイトルとURLをコピーしました