恥ずかしながら、長年サーバの運用をやっていてDNSの「グルーレコード」という存在を知りませんでした。
(言い訳ですけど)レジストラの提供するUIで事足りていたり、ネームサーバを登録したドメインと別のドメインで運用していたりしていて、自分自身で完結させる運用をしたことが無かったためです。
ドメインの運用を開始する場合、ネームサーバがどこにあるかを教えてあげる必要があるのですが、DNSのNSレコードはネームサーバを名前(ホスト名)でしか指定できません。そのため、ネームサーバのホスト名が自分自身のドメイン配下にある場合(例:lmlab.net のネームサーバが ns1.lmlab.net)、「lmlab.net を解決するには ns1.lmlab.net に聞け」→「ns1.lmlab.net を解決するには lmlab.net のネームサーバに聞け」という循環参照が発生します。これを解決するのが、グルーレコードです。以下のように、ホスト名とIPアドレスのセットをレジストリに登録します。
ns1.lmlab.net(IP: 49.212.144.250)
ns2.lmlab.net(IP: 153.126.194.101)
なお、このような「ネームサーバが自ドメイン配下にある」状態は "in-domain" とも呼ばれます。逆に言えば、lmlab.net のネームサーバとして ns1.example.com のような別ドメインのホストを使う場合は、グルーレコードは不要です。
問題は、「さくらのドメイン」を使っている場合で、これを登録する手段が用意されていないんですね。他社レジストラではUIから登録できる場合もありますが、さくらのドメインはサポートに連絡すると申請フォームを送ってくれるので、そこから登録を依頼する形になります。まあ今時、自前でbindを運用する人なんてあまり居ないということなんでしょうか…。
申請の結果、無事に ADDITIONAL SECTION が更新されました!というか、グルーレコードなしで、よく今までサイト運用してこれたなという感じですが(笑) ns.lumber-mill.co.jp という別ドメインのネームサーバもお守りとして入れており、それで何とかなっていた模様です。
% dig lmlab.net NS
; <<>> DiG 9.10.6 <<>> lmlab.net NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17314
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;lmlab.net. IN NS
;; ANSWER SECTION:
lmlab.net. 8706 IN NS ns1.lmlab.net.
lmlab.net. 8706 IN NS ns2.lmlab.net.
;; ADDITIONAL SECTION:
ns1.lmlab.net. 600 IN A 49.212.144.250
ns2.lmlab.net. 600 IN A 153.126.194.101