DNS相关的东东
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]
故意出错,你可以知道一些错误发生的原因,检查方法:

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)


也就是加载后会发送当前的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


正常的情况:

引用
..  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


两个机器的配置文件会不一样的,传输并非文件传输,而是数据传输:

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


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


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]#


如果有错误,会提示你信息,没有错则没有提示了

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


8 重载配置文件

service named reload
Tags: ,
一般而言,随便找个合适的dns服务器作为自己的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


第一个是目前自己的网络,dig +trace是用自己本身取获取解析
我们看到,第一次和第二次是不一样的,原因比较简单,这个是网通和电信的不同路线
第一个是从202.106.0.20(自己设定的dns服务器)返回的,以它访问目标域名服务器所取得的数据为准,也就是如果它是网通IP,则返回的就是网通的解析方案,而trace则直接咨询目标域名服务器,目标服务器根据你的IP来返回解析方案。

如果你是电信线路,而设定的是网通线路的dns服务器,这个时候就容易取得网通解析方案了。

也给我们引发一些注意的地方:
1 自己架设本地dns缓存服务器是最合适的解析方案
2 找到自己线路的dns服务器才有最优的访问效果
Tags: ,
bind有一项功能是forward,也就是只是做dns缓存。

适用以下情况:

1 做临时测试,不想向上级申请修改ns记录
2 不想向上级申请修改ns记录但希望交给另外的服务器处理
3 只有有限的公网IP,可以在把dns请求交给局域网

设置很简单:

zone "aslibra.com" {
  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


看出来区别了吧,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


这个是一直都是一样的,这个说明是直接提供的服务,不是forward。
就这么简单,have fun!!
Tags: , , ,
dns的解析一般都授权两个以上,防止单点故障。

比如阿权的书房的域名 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


也就是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


这回是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


关闭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


目前我还不知道部分域名提供多个ns记录有什么用,可能是备用的比较多,或者是针对大需求订制的。
比如提供很多域名服务,那提供 ns1-ns6 你挑两个就可以了,但服务器架构是有六个的,如果你跟上级服务提供商申请多个,那可以都填上的,防止域名解析服务死机的情况是无效的,可能对查询的压力分布有帮助。
Tags: , ,
关于DNS的常识,可以阅读附录的一些参考资料。
本文旨在尝试举例用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


如何理解上面的意思?

QUESTION SECTION:查询的内容
ANSWER SECTION:相应的内容,一般会得到至少一条A记录,否则就还没定义
AUTHORITY SECTION:授权信息
ADDITIONAL SECTION:每个授权服务器的IP地址
SERVER:查询的dns服务器,可能会被缓存

过程大体是:
1 从SERVER查询www.aslibra.com,如果有有效缓存就返回了
2 如果没有,则找到aslibra.com的授权服务器,下面有例子介绍
3 从其中一个查询到结果(A记录)
Tags: ,
在 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
Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐