DNS服务器SOA记录的解释

任何DNS系统返回第一个域名记录就是SOA(Start of Authority),在域名配置中,SOA记录格式如下:

@   IN  SOA     nameserver.place.dom.  postmaster.place.dom. (
    1            ; serial number
    3600         ; refresh   [1h]
    600          ; retry     [10m]
    86400        ; expire    [1d]
    3600 )       ; min TTL   [1h]

使用“dig”时的返回格式为:

nameserver.place.dom.              7200   IN      SOA     ns1.he.net. postmaster.place.dom. 1 3600 600 68400 3600

其中的每个部分解释如下:

serial number(序列号):是域名记录的版本,每更改一次域名的任何DNS记录,版本号就会自动加一,这时secondary dns就会知道DNS记录发生更改,以便重新同步。

refresh(刷新时间):告诉secondary dns多久应该查询primary dns,看看DNS记录是否有更新。每次查询时,secondary dns会向primary dns请求SOA记录。如果记录中的serial number跟secondary dns已有的序列号不一样,则会向primary dns请求传送域名的当前的DNS记录。

retry(重试时间):如果想primary dns请求传送域名当前的DNS记录失败后,间隔重试时间后再次重试请求。一般来说,retry小于refresh。

expire(过期时间):在过期时间之前,secondary dns会继续请求传送DNS记录,并且在此时间里,secondary dns会根据已有的记录应答相关的DNS查询。如果到了过期时间后,secondary dns会停止应答该域名的DNS查询。

min TTL(最小TTL):域名所有记录的最小生存时间值。当用户DNS查询到记录后,将存在缓存中,直到至少过了这个时间才将缓存刷新重新查询。

有的DNS服务器还会有Negative caching TTL,就是当用户DNS查询到无此域名记录(NXDOMAIN)时,将把这个“没有此域名的记录”的声明保存在缓存中的时间。

2 comments

  1. Xiaoxia says:

    RFC的解释里很详细,不知道你有没有看过呢!

    1. creke says:

      不记得我有没有看过呢!哈哈。
      用中文写出来做个备忘,你一说我就发现真忘了。

Leave a comment