DNSでは SOA レコードとよばれるゾーンの管理情報などを指定するためのレコードが存在します. SOA レコードのパラメータにはいくつか意味があるのですが,それぞれの意味をよく調べなおしたりするので,まとめます.

SOA レコードは以下のような形式です.

@ IN SOA  ns1.example.com. mail.example.com. (
        1575971717 ; Serial
        3568 ; Refresh 
        600 ; Retry
        604800 ; Expire
        3600 ; Negative TTL
        ) 

このパラメータのそれぞれの意味について解説します. 最初の ns1.example.com. やら mail.example.com. やらはネームサーバと管理者のメールアドレスです. メールアドレスはこの場合 mail@exmaple.com になります.

Serial

保持しているゾーンのバージョンを表わす値です. 値が大きければ大きいほど,新しいゾーンという事になります. 例えば,ゾーン転送をしているSlaveサーバがmasterに問合せた時には,このSerialの値を比較して,ゾーンに更新があるかどうかを判断します. 保持しているSerialの値がmasterサーバ提示しているゾーンよりも小さい場合,ゾーン転送が行なわれます. なので,もし,このSerialの値をやりなおしたい場合は,Notifyなどでは更新することは出来ず,RefreshやExpireを待つ必要があります.

Refresh

Notifyによらずに,ゾーンデータを再所得するまでの時間です. 前回のゾーン転送が行なわれた時間からの経過時間なので,もし,この値を同じ値で,多くのゾーンをホストしていると,Slaveサーバから,定期的に同時にゾーン転送が来る可能性があるので,注意が必要です.

Retry

Refresh時にゾーン転送が失敗した場合に,再度問合せを行うまでの間隔です.

Expire

RefreshやRetryを繰替えしてもゾーン転送が成功しなかった場合に,そのゾーンの情報を何時まで保持するのかという値です. ゾーン転送が失敗し続けて,この値を向えると,そのコンテンツサーバからは指定のゾーンは名前解決が行えなくなります. Masterサーバが死んだ場合に復旧するまでの制限時間と捉えても大丈夫です.

Negative TTL

これは,NXDOMAINなどを返答した場合に,キャッシュサーバがどの程度,NXDOMAINといいったネガティブなデータを保持するのかという値です. レコードが頻繁に変更される可能性がある場合はこの値は出来る限り,小さな値にしておくのが適当だと思います. 例えば,Googleなどはこの値が1分になっています.

$ dig google.com -t soa

; <<>> DiG 9.10.6 <<>> google.com -t soa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6021
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;google.com.                    IN      SOA

;; ANSWER SECTION:
google.com.             60      IN      SOA     ns1.google.com. dns-admin.google.com. 284949692 900 900 1800 60

;; ADDITIONAL SECTION:
ns1.google.com.         61056   IN      A       216.239.32.10
ns1.google.com.         78242   IN      AAAA    2001:4860:4802:32::a

;; Query time: 38 msec
;; SERVER: 10.32.220.132#53(10.32.220.132)
;; WHEN: Thu Dec 12 16:08:48 JST 2019
;; MSG SIZE  rcvd: 133

また,この値は SOA レコードのTTLと Negative TTL の短い方が採用されるので, 同じ値を設定しておたい方が確認が行ないやすく良いと思います.