DNS相关的东东
故意出错,你可以知道一些错误发生的原因,检查方法:
下面是碰到的部分错误:
1 logging channel 'query_log' file '/logs/query.log': file not found
开了logging,但没有创建日志文件会提示出错
2 logging channel 'query_log' file '/logs/query.log': permission denied
可能伴有这样的错误:
有权限的问题,可能你得查一下用户权限,如果是使用SELINUX,输入getenforce 看看现在的安全级别
可以关闭SELinux如果你不需要,编辑 /etc/sysconfig/selinux 文件
3 couldn't open pid file '/var/named.pid': Permission denied
还是目录权限的问题,如果没有该目录,创建并且给named权限
4 /etc/named.conf:14: when using 'view' statements, all zones must be in views
如果使用了view,那就不能在主文件单独定义了啦,可怜的,必须在每个view里面都定义每个zone
但是,如果你不需要根据每个view处理不一样的,你可以在每个view都引用同一个解析文件
5 transfer of 'aslibra.com/IN' from 192.168.1.41#53: failed while receiving responses: permission denied
检查一下是否master加了此主机为允许的ip了
Master在reload和restart时会发生notify
也就是加载后会发送当前的serial标识的给notify列表的机器
slave机器要注意对配置文件的可写权限
正常的情况:
两个机器的配置文件会不一样的,传输并非文件传输,而是数据传输:
Master的配置文件:
Slave的配置文件:
6 如何检查配置文件
如果有错误,会提示你信息,没有错则没有提示了
7 如何检查zone文件
8 重载配置文件
tail -n 20 /var/log/messages | grep named
下面是碰到的部分错误:
1 logging channel 'query_log' file '/logs/query.log': file not found
开了logging,但没有创建日志文件会提示出错
2 logging channel 'query_log' file '/logs/query.log': permission denied
可能伴有这样的错误:
kernel: audit(1240046511.743:4): avc: denied { write } for pid=5649 comm="named" name="logs" dev=dm-0 ino=778352 scontext=root:system_r:named_t:s0 tcontext=root:object_r:named_conf_t:s0 tclass=dir
有权限的问题,可能你得查一下用户权限,如果是使用SELINUX,输入getenforce 看看现在的安全级别
可以关闭SELinux如果你不需要,编辑 /etc/sysconfig/selinux 文件
3 couldn't open pid file '/var/named.pid': Permission denied
还是目录权限的问题,如果没有该目录,创建并且给named权限
4 /etc/named.conf:14: when using 'view' statements, all zones must be in views
如果使用了view,那就不能在主文件单独定义了啦,可怜的,必须在每个view里面都定义每个zone
但是,如果你不需要根据每个view处理不一样的,你可以在每个view都引用同一个解析文件
5 transfer of 'aslibra.com/IN' from 192.168.1.41#53: failed while receiving responses: permission denied
检查一下是否master加了此主机为允许的ip了
Master在reload和restart时会发生notify
... zone myzcom.com/IN/any: loaded serial 2008061100
... running
... zone aslibra.com/IN/any: sending notifies (serial 2008061100)
... running
... zone aslibra.com/IN/any: sending notifies (serial 2008061100)
也就是加载后会发送当前的serial标识的给notify列表的机器
slave机器要注意对配置文件的可写权限
引用
.. received notify for zone 'aslibra.com'
.. dumping master file: config/tmp-XXXXeybkW9: open: permission denied
.. transfer of 'aslibra.com/IN' from 192.168.1.41#53: failed while receiving responses: permission denied
.. transfer of 'aslibra.com/IN' from 192.168.1.41#53: end of transfer
.. dumping master file: config/tmp-XXXXeybkW9: open: permission denied
.. transfer of 'aslibra.com/IN' from 192.168.1.41#53: failed while receiving responses: permission denied
.. transfer of 'aslibra.com/IN' from 192.168.1.41#53: end of transfer
正常的情况:
引用
.. received notify for zone 'aslibra.com'
.. zone aslibra.com/IN: transferred serial 2008061100
.. transfer of 'aslibra.com/IN' from 192.168.1.41#53: end of transfer
.. zone aslibra.com/IN: transferred serial 2008061100
.. transfer of 'aslibra.com/IN' from 192.168.1.41#53: end of transfer
两个机器的配置文件会不一样的,传输并非文件传输,而是数据传输:
Master的配置文件:
[root@aslibra etc]# cat config/domain-aslibra.com.any
$TTL 300
@ IN SOA ns.aslibra.com. hqlulu.gmail.com. (
2008061100 ; serial
3600 ; refresh
60 ; retry
604800 ; expire
3600 ; minimum
)
NS ns2.aslibra.com.
NS ns.aslibra.com.
www A 222.76.215.25
ns A 192.168.1.41
ns2 A 192.168.1.42
$TTL 300
@ IN SOA ns.aslibra.com. hqlulu.gmail.com. (
2008061100 ; serial
3600 ; refresh
60 ; retry
604800 ; expire
3600 ; minimum
)
NS ns2.aslibra.com.
NS ns.aslibra.com.
www A 222.76.215.25
ns A 192.168.1.41
ns2 A 192.168.1.42
Slave的配置文件:
[root@localhost etc]# cat config/domain-aslibra.com.any
$ORIGIN .
$TTL 300 ; 5 minutes
aslibra.com IN SOA ns.aslibra.com. hqlulu.gmail.com. (
2008061100 ; serial
3600 ; refresh (1 hour)
60 ; retry (1 minute)
604800 ; expire (1 week)
3600 ; minimum (1 hour)
)
NS ns.aslibra.com.
NS ns2.aslibra.com.
$ORIGIN aslibra.com.
ns A 192.168.1.41
ns2 A 192.168.1.42
www A 222.76.215.25
$ORIGIN .
$TTL 300 ; 5 minutes
aslibra.com IN SOA ns.aslibra.com. hqlulu.gmail.com. (
2008061100 ; serial
3600 ; refresh (1 hour)
60 ; retry (1 minute)
604800 ; expire (1 week)
3600 ; minimum (1 hour)
)
NS ns.aslibra.com.
NS ns2.aslibra.com.
$ORIGIN aslibra.com.
ns A 192.168.1.41
ns2 A 192.168.1.42
www A 222.76.215.25
6 如何检查配置文件
[root@aslibra etc]# named-checkconf -t /var/named/chroot/
/etc/config/view-any.conf:13: option 'masters' is not allowed in 'master' zone 'aslibra.com'
[root@aslibra etc]# named-checkconf -t /var/named/chroot/
[root@aslibra etc]#
/etc/config/view-any.conf:13: option 'masters' is not allowed in 'master' zone 'aslibra.com'
[root@aslibra etc]# named-checkconf -t /var/named/chroot/
[root@aslibra etc]#
如果有错误,会提示你信息,没有错则没有提示了
7 如何检查zone文件
[root@fetion etc]# named-checkzone -t /var/named/chroot/ aslibra.com /etc/config/domain-aslibra.com.any
zone aslibra.com/IN: loaded serial 2008061100
OK
[root@fetion etc]# named-checkzone aslibra.com /var/named/chroot/etc/config/domain-aslibra.com.any
zone aslibra.com/IN: loaded serial 2008061100
OK
zone aslibra.com/IN: loaded serial 2008061100
OK
[root@fetion etc]# named-checkzone aslibra.com /var/named/chroot/etc/config/domain-aslibra.com.any
zone aslibra.com/IN: loaded serial 2008061100
OK
8 重载配置文件
service named reload
一般而言,随便找个合适的dns服务器作为自己的dns解析服务器即可,但如果选择不当,可能就会导致网络选择并不是最优的。
这个情况一般发生在电信网通优化的域名上。
检查方法(域名有所替换):
第一个是目前自己的网络,dig +trace是用自己本身取获取解析
我们看到,第一次和第二次是不一样的,原因比较简单,这个是网通和电信的不同路线
第一个是从202.106.0.20(自己设定的dns服务器)返回的,以它访问目标域名服务器所取得的数据为准,也就是如果它是网通IP,则返回的就是网通的解析方案,而trace则直接咨询目标域名服务器,目标服务器根据你的IP来返回解析方案。
如果你是电信线路,而设定的是网通线路的dns服务器,这个时候就容易取得网通解析方案了。
也给我们引发一些注意的地方:
1 自己架设本地dns缓存服务器是最合适的解析方案
2 找到自己线路的dns服务器才有最优的访问效果
这个情况一般发生在电信网通优化的域名上。
检查方法(域名有所替换):
[root@aslibra ~]# dig cdl.cdn.aslibra.com
...(省略)
;; ANSWER SECTION:
cdl.cdn.aslibra.com. 683 IN A 218.25.68.145
cdl.cdn.aslibra.com. 683 IN A 218.25.68.192
cdl.cdn.aslibra.com. 683 IN A 218.25.11.105
;; Query time: 6 msec
;; SERVER: 202.106.0.20#53(202.106.0.20)
;; WHEN: Wed Jun 10 16:40:07 2009
;; MSG SIZE rcvd: 84
[root@aslibra ~]# dig cdl.cdn.aslibra.com +trace
...(省略)
cdl.cdn.aslibra.com. 900 IN A 60.191.185.162
cdl.cdn.aslibra.com. 900 IN A 60.191.187.8
...(省略)
;; Received 282 bytes from 61.160.207.67#53(ns1.dnspod.net) in 0 ms
...(省略)
;; ANSWER SECTION:
cdl.cdn.aslibra.com. 683 IN A 218.25.68.145
cdl.cdn.aslibra.com. 683 IN A 218.25.68.192
cdl.cdn.aslibra.com. 683 IN A 218.25.11.105
;; Query time: 6 msec
;; SERVER: 202.106.0.20#53(202.106.0.20)
;; WHEN: Wed Jun 10 16:40:07 2009
;; MSG SIZE rcvd: 84
[root@aslibra ~]# dig cdl.cdn.aslibra.com +trace
...(省略)
cdl.cdn.aslibra.com. 900 IN A 60.191.185.162
cdl.cdn.aslibra.com. 900 IN A 60.191.187.8
...(省略)
;; Received 282 bytes from 61.160.207.67#53(ns1.dnspod.net) in 0 ms
第一个是目前自己的网络,dig +trace是用自己本身取获取解析
我们看到,第一次和第二次是不一样的,原因比较简单,这个是网通和电信的不同路线
第一个是从202.106.0.20(自己设定的dns服务器)返回的,以它访问目标域名服务器所取得的数据为准,也就是如果它是网通IP,则返回的就是网通的解析方案,而trace则直接咨询目标域名服务器,目标服务器根据你的IP来返回解析方案。
如果你是电信线路,而设定的是网通线路的dns服务器,这个时候就容易取得网通解析方案了。
也给我们引发一些注意的地方:
1 自己架设本地dns缓存服务器是最合适的解析方案
2 找到自己线路的dns服务器才有最优的访问效果
bind有一项功能是forward,也就是只是做dns缓存。
适用以下情况:
1 做临时测试,不想向上级申请修改ns记录
2 不想向上级申请修改ns记录但希望交给另外的服务器处理
3 只有有限的公网IP,可以在把dns请求交给局域网
设置很简单:
也就是我把域名解析权交给了某个IP,这个服务器只是做cache。
forward only是可选,不设置则该 DNS Server 无法联系到转发器,那么 BIND 会自己尝试解析。
如果你要禁止 BIND 在无法联系到转发器时不做任何操作,那么你还可以使用 forward only 命令,这样 BIND 只能使用区的权威数据和缓存来响应查询了( 在连接不到转发器的情况下 )。
forwarders可以添加多个dns服务器。
我们先做一个测试环境:
三台ns解析服务器,有ns、ns2和ns3
ns和ns2是权威的解析服务器,ns改为bind的forward,后端是ns3。
我们用dig检查一下:
看出来区别了吧,300和295是有效性,300是默认的有效时间,也就是说,刚开始就新缓存了这个记录,5秒后查询已经是从缓存取的记录,这个过了300秒后会重新从后端服务器取值。
而我们看看ns2:
这个是一直都是一样的,这个说明是直接提供的服务,不是forward。
就这么简单,have fun!!
适用以下情况:
1 做临时测试,不想向上级申请修改ns记录
2 不想向上级申请修改ns记录但希望交给另外的服务器处理
3 只有有限的公网IP,可以在把dns请求交给局域网
设置很简单:
zone "aslibra.com" {
type forward;
forward only;
forwarders {218.241.231.189;};
};
type forward;
forward only;
forwarders {218.241.231.189;};
};
也就是我把域名解析权交给了某个IP,这个服务器只是做cache。
forward only是可选,不设置则该 DNS Server 无法联系到转发器,那么 BIND 会自己尝试解析。
如果你要禁止 BIND 在无法联系到转发器时不做任何操作,那么你还可以使用 forward only 命令,这样 BIND 只能使用区的权威数据和缓存来响应查询了( 在连接不到转发器的情况下 )。
forwarders可以添加多个dns服务器。
我们先做一个测试环境:
三台ns解析服务器,有ns、ns2和ns3
ns和ns2是权威的解析服务器,ns改为bind的forward,后端是ns3。
我们用dig检查一下:
[root@localhost view]# dig www.aslibra.com @ns.aslibra.com
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 300 IN A 222.76.215.25
;; Query time: 9 msec
;; SERVER: 219.232.241.83#53(219.232.241.83)
;; WHEN: Sun May 31 00:14:15 2009
;; MSG SIZE rcvd: 49
[root@localhost view]# dig www.aslibra.com @ns.aslibra.com
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 295 IN A 222.76.215.25
;; Query time: 0 msec
;; SERVER: 219.232.241.83#53(219.232.241.83)
;; WHEN: Sun May 31 00:14:20 2009
;; MSG SIZE rcvd: 49
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 300 IN A 222.76.215.25
;; Query time: 9 msec
;; SERVER: 219.232.241.83#53(219.232.241.83)
;; WHEN: Sun May 31 00:14:15 2009
;; MSG SIZE rcvd: 49
[root@localhost view]# dig www.aslibra.com @ns.aslibra.com
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 295 IN A 222.76.215.25
;; Query time: 0 msec
;; SERVER: 219.232.241.83#53(219.232.241.83)
;; WHEN: Sun May 31 00:14:20 2009
;; MSG SIZE rcvd: 49
看出来区别了吧,300和295是有效性,300是默认的有效时间,也就是说,刚开始就新缓存了这个记录,5秒后查询已经是从缓存取的记录,这个过了300秒后会重新从后端服务器取值。
而我们看看ns2:
[root@localhost view]# dig www.aslibra.com @ns2.aslibra.com
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 300 IN A 222.76.215.25
;; AUTHORITY SECTION:
aslibra.com. 300 IN NS ns.aslibra.com.
aslibra.com. 300 IN NS ns2.aslibra.com.
aslibra.com. 300 IN NS ns3.aslibra.com.
;; ADDITIONAL SECTION:
ns.aslibra.com. 300 IN A 219.232.241.83
ns2.aslibra.com. 300 IN A 219.232.241.84
ns3.aslibra.com. 300 IN A 218.241.231.189
;; Query time: 0 msec
;; SERVER: 219.232.241.84#53(219.232.241.84)
;; WHEN: Sun May 31 00:15:25 2009
;; MSG SIZE rcvd: 150
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 300 IN A 222.76.215.25
;; AUTHORITY SECTION:
aslibra.com. 300 IN NS ns.aslibra.com.
aslibra.com. 300 IN NS ns2.aslibra.com.
aslibra.com. 300 IN NS ns3.aslibra.com.
;; ADDITIONAL SECTION:
ns.aslibra.com. 300 IN A 219.232.241.83
ns2.aslibra.com. 300 IN A 219.232.241.84
ns3.aslibra.com. 300 IN A 218.241.231.189
;; Query time: 0 msec
;; SERVER: 219.232.241.84#53(219.232.241.84)
;; WHEN: Sun May 31 00:15:25 2009
;; MSG SIZE rcvd: 150
这个是一直都是一样的,这个说明是直接提供的服务,不是forward。
就这么简单,have fun!!
dns的解析一般都授权两个以上,防止单点故障。
比如阿权的书房的域名 www.aslibra.com,授权两台
ns.aslibra.com 和 ns2.aslibra.com,如果单点故障会怎么样呢?
trace检查一下域名:
也就是83的服务器返回信息了。关闭83的服务,我们再查询:
这回是84处理了此请求了。
这个说明了单个无法响应还会交给下一个处理的,要增加ns的授权需要在上级申请,也就是在 com. 申请多一个ns记录,自己指定似乎没用,因为上级就授权了两个,两个官方授权的服务器都挂掉是再也查询不到的了。
我们来做个实验:
增加ns3的授权:
关闭ns和ns2之后,ns3其实是没用的:
目前我还不知道部分域名提供多个ns记录有什么用,可能是备用的比较多,或者是针对大需求订制的。
比如提供很多域名服务,那提供 ns1-ns6 你挑两个就可以了,但服务器架构是有六个的,如果你跟上级服务提供商申请多个,那可以都填上的,防止域名解析服务死机的情况是无效的,可能对查询的压力分布有帮助。
比如阿权的书房的域名 www.aslibra.com,授权两台
ns.aslibra.com 和 ns2.aslibra.com,如果单点故障会怎么样呢?
trace检查一下域名:
[root@aslibra ~]# dig www.aslibra.com. +trace
....(省略部分查询)
aslibra.com. 172800 IN NS ns.aslibra.com.
aslibra.com. 172800 IN NS ns2.aslibra.com.
;; Received 100 bytes from 192.48.79.30#53(J.GTLD-SERVERS.NET) in 199 ms
www.aslibra.com. 300 IN A 222.76.215.25
aslibra.com. 300 IN NS ns.aslibra.com.
aslibra.com. 300 IN NS ns2.aslibra.com.
;; Received 116 bytes from 219.232.241.83#53(ns.aslibra.com) in 8 ms
....(省略部分查询)
aslibra.com. 172800 IN NS ns.aslibra.com.
aslibra.com. 172800 IN NS ns2.aslibra.com.
;; Received 100 bytes from 192.48.79.30#53(J.GTLD-SERVERS.NET) in 199 ms
www.aslibra.com. 300 IN A 222.76.215.25
aslibra.com. 300 IN NS ns.aslibra.com.
aslibra.com. 300 IN NS ns2.aslibra.com.
;; Received 116 bytes from 219.232.241.83#53(ns.aslibra.com) in 8 ms
也就是83的服务器返回信息了。关闭83的服务,我们再查询:
[root@aslibra ~]# dig www.aslibra.com. +trace
....(省略部分一样的查询)
www.aslibra.com. 300 IN A 222.76.215.25
aslibra.com. 300 IN NS ns.aslibra.com.
aslibra.com. 300 IN NS ns2.aslibra.com.
;; Received 124 bytes from 219.232.241.84#53(ns2.aslibra.com) in 7 ms
....(省略部分一样的查询)
www.aslibra.com. 300 IN A 222.76.215.25
aslibra.com. 300 IN NS ns.aslibra.com.
aslibra.com. 300 IN NS ns2.aslibra.com.
;; Received 124 bytes from 219.232.241.84#53(ns2.aslibra.com) in 7 ms
这回是84处理了此请求了。
这个说明了单个无法响应还会交给下一个处理的,要增加ns的授权需要在上级申请,也就是在 com. 申请多一个ns记录,自己指定似乎没用,因为上级就授权了两个,两个官方授权的服务器都挂掉是再也查询不到的了。
我们来做个实验:
增加ns3的授权:
[root@aslibra ~]# dig www.aslibra.com +trace
....(省略部分一样的查询)
www.aslibra.com. 300 IN A 222.76.215.25
aslibra.com. 300 IN NS ns.aslibra.com.
aslibra.com. 300 IN NS ns2.aslibra.com.
aslibra.com. 300 IN NS ns3.aslibra.com.
;; Received 150 bytes from 219.232.241.83#53(ns.aslibra.com) in 2 ms
....(省略部分一样的查询)
www.aslibra.com. 300 IN A 222.76.215.25
aslibra.com. 300 IN NS ns.aslibra.com.
aslibra.com. 300 IN NS ns2.aslibra.com.
aslibra.com. 300 IN NS ns3.aslibra.com.
;; Received 150 bytes from 219.232.241.83#53(ns.aslibra.com) in 2 ms
关闭ns和ns2之后,ns3其实是没用的:
[root@gx ~]# dig www.aslibra.com. +trace
....(省略部分一样的查询)
aslibra.com. 172800 IN NS ns.aslibra.com.
aslibra.com. 172800 IN NS ns2.aslibra.com.
;; Received 100 bytes from 192.31.80.30#53(D.GTLD-SERVERS.NET) in 252 ms
;; connection timed out; no servers could be reached
....(省略部分一样的查询)
aslibra.com. 172800 IN NS ns.aslibra.com.
aslibra.com. 172800 IN NS ns2.aslibra.com.
;; Received 100 bytes from 192.31.80.30#53(D.GTLD-SERVERS.NET) in 252 ms
;; connection timed out; no servers could be reached
目前我还不知道部分域名提供多个ns记录有什么用,可能是备用的比较多,或者是针对大需求订制的。
比如提供很多域名服务,那提供 ns1-ns6 你挑两个就可以了,但服务器架构是有六个的,如果你跟上级服务提供商申请多个,那可以都填上的,防止域名解析服务死机的情况是无效的,可能对查询的压力分布有帮助。
关于DNS的常识,可以阅读附录的一些参考资料。
本文旨在尝试举例用dig命令理解这个过程,并非权威知识,仅供参考.
测试域名为阿权的书房的域名 www.aslibra.com 和 www.163.com。
如何理解上面的意思?
QUESTION SECTION:查询的内容
ANSWER SECTION:相应的内容,一般会得到至少一条A记录,否则就还没定义
AUTHORITY SECTION:授权信息
ADDITIONAL SECTION:每个授权服务器的IP地址
SERVER:查询的dns服务器,可能会被缓存
过程大体是:
1 从SERVER查询www.aslibra.com,如果有有效缓存就返回了
2 如果没有,则找到aslibra.com的授权服务器,下面有例子介绍
3 从其中一个查询到结果(A记录)
本文旨在尝试举例用dig命令理解这个过程,并非权威知识,仅供参考.
测试域名为阿权的书房的域名 www.aslibra.com 和 www.163.com。
[root@localhost ~]# dig www.aslibra.com
; <<>> DiG 9.2.4 <<>> www.aslibra.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25746
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 6
;; QUESTION SECTION:
;www.aslibra.com. IN A
;; ANSWER SECTION:
www.aslibra.com. 900 IN A 222.76.215.25
;; AUTHORITY SECTION:
aslibra.com. 33024 IN NS k8.hkidc.com.
aslibra.com. 33024 IN NS b.hkidc.com.
aslibra.com. 33024 IN NS j6.hkidc.com.
aslibra.com. 33024 IN NS ns8.hkidc.com.
aslibra.com. 33024 IN NS ns5.hkidc.com.
aslibra.com. 33024 IN NS a.hkidc.com.
;; ADDITIONAL SECTION:
k8.hkidc.com. 55596 IN A 125.65.112.32
b.hkidc.com. 53594 IN A 221.122.64.81
j6.hkidc.com. 54375 IN A 222.76.219.74
ns8.hkidc.com. 53598 IN A 221.122.64.81
ns5.hkidc.com. 55596 IN A 222.76.219.81
a.hkidc.com. 53594 IN A 125.65.112.32
;; Query time: 71 msec
;; SERVER: 211.99.25.1#53(211.99.25.1)
;; WHEN: Mon Jun 1 12:05:17 2009
;; MSG SIZE rcvd: 268
; <<>> DiG 9.2.4 <<>> www.aslibra.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25746
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 6
;; QUESTION SECTION:
;www.aslibra.com. IN A
;; ANSWER SECTION:
www.aslibra.com. 900 IN A 222.76.215.25
;; AUTHORITY SECTION:
aslibra.com. 33024 IN NS k8.hkidc.com.
aslibra.com. 33024 IN NS b.hkidc.com.
aslibra.com. 33024 IN NS j6.hkidc.com.
aslibra.com. 33024 IN NS ns8.hkidc.com.
aslibra.com. 33024 IN NS ns5.hkidc.com.
aslibra.com. 33024 IN NS a.hkidc.com.
;; ADDITIONAL SECTION:
k8.hkidc.com. 55596 IN A 125.65.112.32
b.hkidc.com. 53594 IN A 221.122.64.81
j6.hkidc.com. 54375 IN A 222.76.219.74
ns8.hkidc.com. 53598 IN A 221.122.64.81
ns5.hkidc.com. 55596 IN A 222.76.219.81
a.hkidc.com. 53594 IN A 125.65.112.32
;; Query time: 71 msec
;; SERVER: 211.99.25.1#53(211.99.25.1)
;; WHEN: Mon Jun 1 12:05:17 2009
;; MSG SIZE rcvd: 268
如何理解上面的意思?
QUESTION SECTION:查询的内容
ANSWER SECTION:相应的内容,一般会得到至少一条A记录,否则就还没定义
AUTHORITY SECTION:授权信息
ADDITIONAL SECTION:每个授权服务器的IP地址
SERVER:查询的dns服务器,可能会被缓存
过程大体是:
1 从SERVER查询www.aslibra.com,如果有有效缓存就返回了
2 如果没有,则找到aslibra.com的授权服务器,下面有例子介绍
3 从其中一个查询到结果(A记录)
在 unix 和 linux 下,建议大家使用 dig 命令来代替 nslookup。 dig 命令的功能比 nslookup 强大很多,不像 nslookkup 还得 set 来 set 去的,怪麻烦的。
下面是 dig 的一些比较常用的命令:
# dig 最基本的用法
dig @server qianlong.com
# 用 dig 查看 zone 数据传输
dig @server qianlong.com AXFR
# 用 dig 查看 zone 数据的增量传输
dig @server qianlong.com IXFR=N
# 用 dig 查看反向解析
dig -x 124.42.102.203 @server
# 查找一个域的授权 dns 服务器
dig qianlong.com +nssearch
# 从根服务器开始追踪一个域名的解析过程
dig qianlong.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
下面是 dig 的一些比较常用的命令:
# dig 最基本的用法
dig @server qianlong.com
# 用 dig 查看 zone 数据传输
dig @server qianlong.com AXFR
# 用 dig 查看 zone 数据的增量传输
dig @server qianlong.com IXFR=N
# 用 dig 查看反向解析
dig -x 124.42.102.203 @server
# 查找一个域的授权 dns 服务器
dig qianlong.com +nssearch
# 从根服务器开始追踪一个域名的解析过程
dig qianlong.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




