DNS のSOAレコードについて
takuya@:sites-available$ dig soa google.co.jp +short ns2.google.com. dns-admin.google.com. 149484063 900 900 1800 60 ^^^ ^^ ^^ ^^ ^^ │ │ │ │ └ minimun │ │ │ └─ expire │ │ └─ retry │ └─ refresh └─ serial
- serial
- シリアル値。データのID。一般的にはタイム・シリアル値を入れることが多い
- refresh
- セカンダリがプライマリに問合せする間隔
- retry
- セカンダリがプライマリ問合わせ(上記 refresh ) 失敗時に再取得する間隔
- expire
- セカンダリがrefresh に失敗後に現在のキャッシュを保持して返すまでの時間
- minimun
- ネガティブキャッシュの存在可能時間を指定する。
- ネガティブキャッシュとは問合せた結果<該当なし>を保存すること
ネガティブキャッシュと新規追加の関係性。
レコードを新規追加すると、通常だと次のような流れになります。
- NS(primary)に新規追加する。
- NS(secondary)に同期される
- NSに問い合わせが来る
- TTL分だけキャッシュされる
先に問い合わせが来てしまった場合。
- NS(primary)に新規追加する。
- NS(secondary)問い合わせが来る
- ネガティブキャッシュされる(「存在しない」がキャッシュされる)
- NS(secondary)に同期される
プライマリ→セカンダリの同期前にセカンダリに問い合わせると、セカンダリにはレコードがなく問い合わせ結果がネガティブになり、その情報をSOAに従ってネガティブキャッシュしてしまう。なのでますます反映が遅くなることがある。
SOAで見るべき
一般の人(NS運営してない)がSOAで見る情報はなにより、ネガティブキャッシュ設定だと思います。
なんでこんなことを調べてるのかというとV◯lue-d◯mainの更新の遅さに苦労しててちょっと調べてたわけです。