systemd-resolvedで特定ドメインのDNSSEC検証を無効にする

arch linuxのsystemd 239から、systemd-resolvedでDNSSECでの検証がデフォルトで有効になったらしい。 手元の環境では、自分で所有しているが、実際に存在する名前を使って権威サーバを立てているために、DNSSECでの検証が失敗してアドレスが引けない問題が起きた。

systemd-resolvedではプライベート用に使えるドメインについてはnegative trust anchorに設定してくれているので、このような名前を使うとこのような問題は起こらない。

github.com

systemd-resolvedでは権威サーバの検証を行うキーを登録するためのpositive trusted anchorと、指定したドメインの検証を無効化するnagative trust anchorが存在し、/etc/dnssec-trust-anchors.d/*.positive/etc/dnssec-trust-anchors.d/*.negativeで設定できる。

今回はnegative trust anchorを使って、プライベート用の権威サーバのDNSSECの検証を無効にすることにした。 そのためには/etc/dnssec-trust-anchors.d/mydns.negativeなどの適当な名前でファイルを作成し、その中に検証を無効化したいドメイン名を記載すれば良い。 たとえばexample.comと記載すれば、そのサブドメインを含めて検証を無効化できる。

設定が終われば、systemd-resolvedを再起動すれば検証がスキップされるようになる。