- 论坛徽章:
- 1
|
初学dns,请教关于子网查询notify更新的问题,谢谢
基本上, 只要 master 有更新的話, 在 restart 時, 就會向所有 NS record 指定的主機(除自己外)送 notify.
若在 named.conf 裡, 還有 also-notify 的話, 則除 NS 外還會另行通知清單所列的主機.
順便, 趁這個機會, 再說一下 SOA 那 5 組數字的前 4 組的功能好了.
serial:
此值為 10 進位數值, 不大於 2 的 32 次方, 若超過, 則取餘數.
當 slave 收到 master 送來的 notify 之後, 會向 named.conf 所列的 masters 送除 SOA 查詢, 以比對雙方的 serial 值, 若是 master 那邊比 slave 這邊要大(或 master 設為 0 ), 則進行 AXFER 查詢, 也就是所謂的 zone transfer, 於是 db 就會跟著同步.
refresh:
此值為秒數, 需大於 retry 值, 每秒遞減 1 .
當 master 在更新 db 時所送出的 notify 意外不能到達 slave. 那 slave 的 db 將不會獲得同步(參考前述). 為避免此種情形, slave 會在 refresh 值遞減致 0 值時, 將會對 master 送出 SOA 查詢, 以便進行 db 同步(參考前述). 一旦 db 同步後, refresh 將重新倒數. 但是若 refresh 所引發的 SOA 查詢沒有結果, 則進行 retry(下述) 計時, 而放棄 refresh 採值.
retry:
此值為秒數, 需小於 refresh 值, 一旦進入倒數每秒遞減 1 .
這是當前述的 refresh 不成功時, 所進行的更短時間的 SOA 查詢計時. 目的是加速 db 同步的間隔時間.
expire:
此值為秒數, 需大於 refresh + retry 的和, 且建議大於 7 天, 一旦 db 更新後就每秒遞減 1 的倒數.
若 retry 一直不能成功, 那當 expire 時間到達時, 將放棄 db 同步, 同時將所有 record 標識為失效.
至於最後的 ttl , 請參考另文:
http://bbs.chinaunix.net/forum/viewtopic.php?p=1679564&highlight=ttl
大意如下:
"最後的 min ttl 則是當 recorad 沒設 ttl、且 db 也沒設 $TTL 時參考。" |
|