工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表分类:dns

dns zone 文件说明

第一行是TTL设定,生存时间记录字段。它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。这里定义为604800秒,也就是1周。

  第二行是$ORIGIN设定,说明下面的记录出自何处.请您加倍留意最后的一个小小数点"."

  然后,第三行,是一个 SOA 记录的设定,在这里我们看到一个特殊字符 @ ,它就是 ORIGIN 的意思,也就是刚刚所定义的$ ORIGIN 51099.com. 的内容,您可以写成 51099.com. 也可以用 @ 来代替。

  假如这个文件前面没有定义 $ ORIGIN 的话, 那這个 @ 的值就以 named.conf 里的 zone。

  接着 SOA 后面,指定了这个区域的授权主机和管理者的信箱,这里分别是"51099.com." 和"root.51099.com."。我们平时使用的信箱通常是“user@host”这样的格式,但因为@在 DNS 记录中是个保留字符,所以在 SOA 中就用“.”来代替了@。目前这个信箱是 "root@51099.com."。

  接下来的 SOA 设置,是被括在“( )”之间的 5 组数字,主要作为和 slave 服务器同步 DNS 资料所使用的资料:

  Serial:其格式通常会是“年月日+修改次序”(但也不一定如此,您自己能够记得就行)。当 slave 要进行资料同步的时候,会比较这个号码。如果发现在这里的号码比它那边的数值“大”,就进行更新,否则忽略。不过设 serial 有一个地方您要留意:不能超过 10 位数字!

  Refresh:这里是是告诉 slave 要隔多久要进行资料同步(是否同步要看 Serial 的比较结果)。

  Retry:如果 slave 在进行更新失败后,要隔多久再进行重试。

  Expire:这是记录逾期时间:当 slave 一直未能成功与 master 取得联系,那到这里就放弃 retry,同时这里的资料也将标识为过期(expired )。

  Minimum:这是最小默认 TTL 值,如果您在前面没有用“$TTL”来定义,就会以此值为准。

  请注意:SOA 记录中这对 “( ) ”符号之第一个 “(”括号一定要和 SOA 写在同一行,而不能用 Enter 断行到下一行去,而且其左边最好有一个空格键或 tab 建。而最后一个 “)”括号也不能写在注解符号 “;”的右边。 置 DNS 的 RR 记录档,其格式要求非常严格,我们丝毫不能掉以轻心。比方说:如果句子不是以空格键、Tab 键、 或注解符号 ( ;)开头,也不在 SOA 的 “( ) ”之内, 则表示要定义一个“新记录项 (Entry) ”;如果句子是以空格键或 tab 键开始的话,其设置被视为上一个“记录项”的内容。所以,如果您要为“同一个记录项”定义多个记录设置,而不想重复打字,您倒可以偷懒:在接着它的后面几行用空白或 Tab 来缩排就可以了。

bind loggin example

logging {
        channel warning
        { file "log/named.log" versions 3 size 2048k;
        severity warning;
        print-category yes;
        print-severity yes;
        print-time yes;
        };      
        channel query
        { file "log/query.log" versions 3 size 2048k;
        severity info;
        print-category yes;
        print-severity yes;
        print-time yes;
        };
        category default { warning; };
        category queries { query; };       
};

bind94 query cache的问题

今天把DNS服务器迁移到了另外两台机上.因之前所用版本为932,现在最新稳定版为942,就下了个最新的

也因为懒,编译好就直接把以前的配置文件给拷过来了.启动正常,直接查询的也可以.但cache的查询就有问题了.很多这样的错.

Mar 25 14:38:17 root named[12559]: client 218.13.186.57#62319: view view_any: query (cache) 'xx.com.cn/A/IN' denied
Mar 25 14:38:17 root named[12559]: client 218.13.186.57#62320: view view_any: query (cache) 'xx.com.cn/A/IN' denied
Mar 25 14:38:38 root named[12559]: client 218.13.186.57#62326: view view_any: query (cache) 'xx.com.cn/A/IN' denied
Mar 25 14:38:38 root named[12559]: client 218.13.186.57#62327: view view_any: query (cache) 'xx.com.cn/A/IN' denied
Mar 25 14:45:21 root named[12559]: client 218.13.186.57#62451: view view_any: query (cache) 'xx.com.cn/A/IN' denied
Mar 25 14:45:21 root named[12559]: client 218.13.186.57#62452: view view_any: query (cache) 'xx.com.cn/A/IN' denied

查资料,发现新版的对cache的处理有所改变

新版本的BIND对 allow-query 有着不同的处理,新增加了一个 allow-query-cache 的选项。

QUOTE:allow-query Specifies which hosts are allowed to ask ordinary DNS questions. allow-query may also
be specified in the zone statement, in which case it overrides the options allow-query statement.
If not specified, the default is to allow queries from all hosts.


QUOTE:allow-query-cache Specifies which hosts are allowed to get answers from the cache. The default is the
builtin acls localnets and localhost.
The way to set query access to the cache is now via allow-query-cache. This differs from earlier
versions which used allow-query.
BIND 9.4 的手册上还特别注释了

QUOTE:allow-query-cache is now used to specify access to the cache.

dig 命令的基本用法

在 unix 和 linux 下,建议大家使用 dig 命令来代替 nslookup。 dig 命令的功能比 nslookup 强大很多,不像 nslookkup 还得 set 来 set 去的,怪麻烦的。下面是 dig 的一些比较常用的命令: 

# dig 最基本的用法
dig @server sina.com.cn.

# 用 dig 查看 zone 数据传输

dig @server zx.xmgd.com. AXFR

# 用 dig 查看 zone 数据的增量传输

dig @server zx.xmgd.com. IXFR=N

# 用 dig 查看反向解析

dig -x 210.52.83.228 @server

# 查找一个域的授权 dns 服务器

dig xmgd.com. +nssearch

# 从根服务器开始追踪一个域名的解析过程

dig xmgd.com +trace

# 查看你使用的是哪个 F root dns server 

dig +norec @F.ROOT-SERVERS.NET HOSTNAME.BIND CHAOS TXT

# 查看 bind 的版本号
dig @bind_dns_server CHAOS TXT version.bind

Records:20123