DNS-BIND安装调试及过程问题分析解决
一.bind安装部分(本博客安装部分)
http://blog.sina.com.cn/s/blog_4a9e49b501011akv.html
二.bind日志错误解答
1.ipv6问题。
Jan 11 19:39:54 ns1-shpbs named-sdb[26931]: error (network unreachable) resolving 'ns.isc.afilias-nst.info/AAAA/IN': 2001:500:a::79#53
解决方法:
第一种:直接编译配置文件/etc/sysconfig/named,去除去IPv6的解析,只解析IPv4(这种方法方便,呵呵)
OPTIONS="whatever" 改为 OPTIONS="-4",注意OPTIONS选项的值可以是:whatever、-4、-6中的一个
第二种:禁用IPv6也是可以的
(1)编辑配置文件/etc/sysconfig/network,然后将NETWORKING_IPV6=YES改为NETWORKING=no
(2)关闭ip6tables这个服务
(3)向/etc/modprobe.conf文件中,添加
alias ipv6 off
alias net-pf-10 off
http://blog.sina.com.cn/s/blog_4a9e49b50100zg67.html
2.查询非本服务器域名出现查询拒绝问题。
服务器端日志为
Jan 12 19:23:50 ns1-shpbs named-sdb[2142]: client 114.92.138.68#54303: query (cache) 'fodder.qq.com/A/IN' denied
解决方法:
有人说要在named.conf里加:
additional-from-cache yes;
additional-from-auth yes;
recursion yes;
经过实验,这个不行,正确的是加:
allow-query-cache { any; };
重新启动named即可。
3.LAME Server 的问题 。
Jan 9 19:23:22 ns1-shpbs named-sdb[15720]: lame server resolving 'dns2.name-services.com' (in 'dns2.name-services.com'?): 98.124.194.1#53
当我们的 DNS 主机在向外面的 DNS 系统查询某些正反解时,可能由于对方 DNS 主机的设定错误,导致无法解析到预期的正反解结果,这个时候就会发生所谓的 lame server 的错误!
那么这个错误会让我们的 DNS 主机发生什么严重的后果吗?当然不会啦!因为错误的是对方的 DNS 设定,只是我们的 DNS 主机在查询时,会发生无法正确解析的警告信息而已,这个讯息虽然不会对我们的 Linux 主机发生什么困扰,不过,对于系统管理员来说,要天天查询的 /var/log/messages 档案竟然有这么多的登录信息,这是很讨厌的一件事!
好了,我们知道 lame server 是对方主机的问题,对我们主机没有影响,但是却又不想要让该讯息出现在我们的登录档 /var/log/messages 当中,怎么达到这样的功能呢?呵呵!就直接利用 BIND 这个套件所提供的登录档参数啊!动作很简单,在您的 /etc/named.conf 档案当中的最底下,加入这个参数即可:
解决方法:
[root@test root]# vi /etc/named.conf
// 加入底下这个参数:
logging {
category lame-servers { null; };
};
// 注意一下,那个 logging 是主要的参数,至于 category 则是定义出什么信息,
// 因为我们不要 lame server ,所以选择 lame-servers 这个参数,并定义
// 参数值为 null (空的的意思),这样就修改完成了!
2. 重新启动 bind
[root@test root]# /etc/rc.d/init.d/named restart
记得重新启动 named 之后,还是要察看一下 /var/log/messages 喔!以确定 named 的正确启动与否!然后,嘿嘿,以后就不会看到 lame server 咯!
4.rndc的问题 。
[root@server /]# /etc/init.d/named status
rndc: connection to remote host closed
This may indicate that the remote server is using an older version of
the command protocol, this host is not authorized to connect,
or the key is invalid.
解决方法:
出现rndc: connection to remote host closed多半是rndc.conf中
key "key" {
algorithm hmac-md5;
secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
};
secret与rndc.key中的secret不一致引起的。我的rndc.key内定如下:
key "rndckey" {
algorithm hmac-md5;
secret "aIfie6oTVvSxcXv7gAPAfDJaoFNMG1iRv1Rb2BRFG8FPJtAL5jpkuBHUlPne";
};
于是修改rndc.conf中的secret与rndc.key中的一致就可以了。
key "key" {
algorithm hmac-md5;
secret "aIfie6oTVvSxcXv7gAPAfDJaoFNMG1iRv1Rb2BRFG8FPJtAL5jpkuBHUlPne";
};
rndc的配置如下:
配置文件的生成
#rndc-confgen >/etc/rndcs.conf (#rndc-confgen -a 生成rndc.key)
查看内容为:注意文件名是rndcs.conf
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "O3GzUMY5WJLFHNaYOajb7Q==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
}; 是rndc的配置
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "O3GzUMY5WJLFHNaYOajb7Q==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# }; 这些内容拷贝到/ect/named.conf中,这样named就是rndc的一个应用了。
5.iptables 保护DNS-BIND服务器
如果您使用iptables来保护您的服务器,你可以添加DNS服务,这些规则。
[root@dns1 ~]# iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@dns1 ~]# iptables -A INPUT -p udp --dport 53 -j ACCEPT
[root@dns1 ~]# iptables -A INPUT -p tcp --sport 53 -j ACCEPT
[root@dns1 ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT
[root@dns1 ~]# iptables -A INPUT -p tcp -d 192.168.1.88 --dport 22 -j ACCEPT
[root@dns1 ~]# iptables -A OUTPUT -p tcp -s 192.168.1.88 --sport 22 -j ACCEPT
[root@dns1 ~]# iptables -A INPUT -p icmp -j ACCEPT
[root@dns1 ~]# iptables -A OUTPUT -p icmp -j ACCEPT
[root@dns1 ~]# service iptables save
经过测试没问题!注:红色22端口策略一定要写上不然你是无法连接服务器,***可写可不写,
6.bind启动报错,启动失败
查看磁盘使用情况
磁盘空间已满,清理日志文件
CACTI监控情况(主)
CACTI监控情况(从)
7。dns启动报错
Sep 12 15:26:12 dns2 named[1541]: could not open entropy source /dev/urandom: file not found
Sep 12 15:26:12 dns2 named[1541]: using pre-chroot entropy source /dev/urandom
解决方法:
mknod -m 0444 /dev/random c 1 8; mknod -m 0444 /dev/urandom c 1 9
[root@dns2 dev]# ll urandom
crw-rw-rw- 1 root root 1, 9 Sep 12 15:26 urandom //看到这个文件就OK
http://forums.gentoo.org/viewtopic-t-331958-view-previous.html
8。服务器日志大量出现snmpd[3331]:Connection from UDP: [127.0.0.1]:1024
snmpd[3331]: Connection from UDP: [127.0.0.1]:1024
解决方案:
http://blog.sina.com.cn/s/blog_4a9e49b501012dbl.html
9.centos6.3日志报错kernel: nf_conntrack: table full, dropping packet
Feb 11 13:19:12 ns1-shpbs kernel: nf_conntrack: table full, dropping packet.
Feb 11 13:19:13 ns1-shpbs kernel: nf_conntrack: table full, dropping packet.
Feb 11 13:19:15 ns1-shpbs kernel: nf_conntrack: table full, dropping packet.
Feb 11 13:19:56 ns1-shpbs kernel: nf_conntrack: table full, dropping packet.
解决方案:
#echo 2097152 > nf_conntrack_max
#echo 300 > nf_conntrack_tcp_timeout_established
vi /etc/sysctl.conf
net.netfilter.nf_conntrack_tcp_timeout_established = 300
net.netfilter.nf_conntrack_max = 2097152
详解http://blog.sina.com.cn/s/blog_4a9e49b501012dbd.html
然后执行/sbin/sysctl -p让参数生效
10。BIND 9.9.0源码安装完,启动后提示没有权限提示
Mar 27 00:25:34 ns2-shpbs named[23623]: Could not open '/usr/local/named/var/run/named/session.key'.
Mar 27 00:25:34 ns2-shpbs named[23623]: Please check file and directory permissions or reconfigure the filename.
Mar 27 00:25:34 ns2-shpbs named[23623]: could not open file '/usr/local/named/var/run/named/session.key': Permission denied
Mar 27 00:25:34 ns2-shpbs named[23623]: could not create /usr/local/named/var/run/named/session.key
Mar 27 00:25:34 ns2-shpbs named[23623]: failed to generate session key for dynamic DNS: permission denied
Mar 27 00:25:34 ns2-shpbs named[23623]: sizing zone task pool based on 5 zones
Mar 27 00:25:34 ns2-shpbs named[23623]: set up managed keys zone for view _default, file 'managed-keys.bind'
解决方法:
#chown -R bind:bind var/run
http://blog.sina.com.cn/s/blog_4a9e49b50100zg65.html
bind9.9.0 版本有bug ,程序无怨无故会关闭,用9.9.0的朋友,建议还是赶快升级吧。