LMDE というか Debian では標準状態でパッケージのインストールから始める必要があります。
標準状態では glibc が /etc/resolve.conf を使ったりしてDNS の名前解決をしていますが、これはどうやら結果がキャッシュされないようなんです。systemd-resolved は結果をキャッシュしてくれるので、連続して名前解決するようなシーンでは高速化が期待です。
では、手順
まずは resolved のパッケージをインストールします。
$ apt install systemd-resolved
続いて、/etc/resolve.conf を /run/systemd/resolve/stub-resolve.conf へのシンボリックリンクに変更します。
一度、/etc/resolve.conf を削除します。
$ sudo rm /etc/resolve.conf
その後にシンボリックリンクを貼ります。
$ sudo ln -s /run/systemd/resolve/stub-resolve.conf
さあ、これで準備ができました。systemd-resolved を再起動させます。
$ sudo systemctl restart systemd-resolved.service
最後に確認です。
$ resolvectl status Global Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported resolv.conf mode: stub Link 2 (eno1) Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6 Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported DNS Servers: 2606:4700:4700::1111 2606:4700:4700::1001
試してみよう
systemd-resolved に変更したことによる DNS 問い合わせの速度を確認してみます。
ということで resolvectl query を 2 回連続で実行してみた結果です。
$ resolvectl query www.dmm.com www.dmm.com: 13.227.61.79 -- link: eno1 -- Information acquired via protocol DNS in 15.5ms. -- Data is authenticated: no; Data was acquired via local or encrypted transport: no -- Data from: network $ resolvectl query www.dmm.com www.dmm.com: 13.227.61.79 -- link: eno1 -- Information acquired via protocol DNS in 1.0ms. -- Data is authenticated: no; Data was acquired via local or encrypted transport: no -- Data from: cache
うん、キャッシングが働いていますね。
ということで、Firefox も自分で DNS 問い合わせの結果をキャッシングしていて、ワタシはデフォルト値からキャッシュ保持期間を長くしていたのですが、systemd-resolved でもキャッシュしているので Firefox 側は元のデフォルト値に戻してみました。
network.
OS でもキャッシュし、ブラウザーでもキャッシュする構造なので正解がよくわかりませんが、 とりあえずこれで様子を見てみようと思います。