BINDのレコードでホスト名にアンダースコア(アンダーバー)は使えない

概要

Let's Encryptでdns01モードでチャレンジしようとしたところチャレンジ失敗どころかレコードが引けなくなってしまった。

_acme-challenge.example.com

こういったサブドメインを設定する必要がある。

_acme-challenge IN  TXT "xxxxxxxxxxxxxxxxxxx"

BINDのTXTレコード設定だとこうなる。

原因

原因も対策も参考サイト通りでした。感謝。

どうやらリソースレコードで_(アンダーバー)を使うと、named-checkzoneしたときにこういうエラーが出るらしい。(named.confで設定するcheck-namesのデフォルト値がfailになったBIND9.3.1以降で発生する模様)

参考元:https://infra.xyz/archives/228


対策

named.confで対象のゾーンの箇所を以下のように変更

zone "example.com" {
        type master;
        file "example.com.zone";
};

zone "example.com" {
        type master;
        file "example.com.zone";
        check-names ignore;
};