2024-04-28

LMDE で systemd-resolved を有効化してみた

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.dnsCacheExpiration などを調整していました。


OS でもキャッシュし、ブラウザーでもキャッシュする構造なので正解がよくわかりませんが、 とりあえずこれで様子を見てみようと思います。