前書き
今まで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キャッシュングが行われていると思われます。
おわり
コメント