centos6下BIND配置DNS缓存服务
DNS服务是linux下最常用的一个服务,其一般是CDN 架设前的基础。在centos6下默认使用的DNS服务包软件是bind。本地DNS缓存的作用是将根DNS或远程DNS查询的 结果在本地主机上进行缓存,加快DNS查询的速度。同时对于内网中假设只有一台主机可以上外网的情况下,也可以通过将内网主机的DNS指向能上外网的主机,从而解析出外网域名和IP的对应关系。
一、相关包与环境
其相关软件包有如下三个:
1bind-libs.x86_64 #提供库文件
2bind-utils.x86_64 #提供工具包
3bind.x86_64 #提供主程序包
4bind-chroot #安全套件,本篇不涉及
实验环境:
- 192.168.0.103 DNS服务器
- 192.168.0.109 DNS测试服务器
二、安装与主配置文件
1、安装bind程序包
1# yum -y install bind bind-libs bind-utils
2、named.conf配置文件
bind DNS服务的主配置文件是/etc/named.conf,默认情况下是已经启用了本地缓存功能。不过为了加快查询速度和解决一些报错,通常情况下我们还需要一些调整 。先看下named.conf配置文件,如下:
其中listen与query项出于安全考虑,也可以将any设置为192.168.1.0/24这样的格式;
dump-file项需要注意的是默认情况下dns本地缓存数据都是存放在内存中,只有在使用rndc dumpdb -all 时才会将内存中的数据保存在本地盘中,保存的路径就是 该项配置的名称;
启用forwarders查询会减少本地流量的浪费,直接从转发的服务器上查询的结果返回;
默认dnssec功能是yes的,启用在日志中会出现报错,后面会提到;
named.conf最终的配置如下:
1# cat /etc/named.conf |grep -v '//'
2options {
3 listen-on port 53 { any; };
4 directory "/var/named";
5 dump-file "/var/named/data/cache_dump.db";
6 statistics-file "/var/named/data/named_stats.txt";
7 memstatistics-file "/var/named/data/named_mem_stats.txt";
8 allow-query { any; };
9 recursion yes;
10 forwarders { 114.114.114.114; 8.8.8.8; };
11 dnssec-enable no;
12 dnssec-validation no;
13 dnssec-lookaside auto;
14 /* Path to ISC DLV key */
15 bindkeys-file "/etc/named.iscdlv.key";
16 managed-keys-directory "/var/named/dynamic";
17};
18logging {
19 channel default_debug {
20 file "data/named.run";
21 severity dynamic;
22 };
23};
24zone "." IN {
25 type hint;
26 file "named.ca";
27};
28include "/etc/named.rfc1912.zones";
29include "/etc/named.root.key";
3、根配置named.ca
在named.ca中配置有十三个根域 ,具体如下:
1# cat /var/named/named.ca |grep -v '^;'
2. 518400 IN NS a.root-servers.net.
3. 518400 IN NS b.root-servers.net.
4. 518400 IN NS c.root-servers.net.
5. 518400 IN NS d.root-servers.net.
6. 518400 IN NS e.root-servers.net.
7. 518400 IN NS f.root-servers.net.
8. 518400 IN NS g.root-servers.net.
9. 518400 IN NS h.root-servers.net.
10. 518400 IN NS i.root-servers.net.
11. 518400 IN NS j.root-servers.net.
12. 518400 IN NS k.root-servers.net.
13. 518400 IN NS l.root-servers.net.
14. 518400 IN NS m.root-servers.net.
15a.root-servers.net. 518400 IN A 198.41.0.4
16b.root-servers.net. 518400 IN A 192.228.79.201
17c.root-servers.net. 518400 IN A 192.33.4.12
18d.root-servers.net. 518400 IN A 199.7.91.13
19e.root-servers.net. 518400 IN A 192.203.230.10
20f.root-servers.net. 518400 IN A 192.5.5.241
21g.root-servers.net. 518400 IN A 192.112.36.4
22h.root-servers.net. 518400 IN A 128.63.2.53
23i.root-servers.net. 518400 IN A 192.36.148.17
24j.root-servers.net. 518400 IN A 192.58.128.30
25k.root-servers.net. 518400 IN A 193.0.14.129
26l.root-servers.net. 518400 IN A 199.7.83.42
27m.root-servers.net. 518400 IN A 202.12.27.33
28a.root-servers.net. 518400 IN AAAA 2001:503:ba3e::2:30
29c.root-servers.net. 518400 IN AAAA 2001:500:2::c
30d.root-servers.net. 518400 IN AAAA 2001:500:2d::d
31f.root-servers.net. 518400 IN AAAA 2001:500:2f::f
32h.root-servers.net. 518400 IN AAAA 2001:500:1::803f:235
33i.root-servers.net. 518400 IN AAAA 2001:7fe::53
34j.root-servers.net. 518400 IN AAAA 2001:503:c27::2:30
35k.root-servers.net. 518400 IN AAAA 2001:7fd::1
36l.root-servers.net. 518400 IN AAAA 2001:500:3::42
37m.root-servers.net. 518400 IN AAAA 2001:dc3::35
其中AAAA(4A)项为IPv6项,不过目前大多数企业的网络环境中还没有用到ipv6。
4、防火墙配置
在/etc/sysconfig/iptables中增加如下配置,并重启iptables服务:
1-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
2-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
三、优化与排错
通过上面的配置启用后虽然可以正常使用,不过在/var/log/message 和 /var/named/data/named.run 日志中会出现相关报错。
1、ipv6相关报错
在客户端上ping www.baidu.com或其他域名时,查看上面的两个日志,会在日志中发现类似如下的报错:
1error (network unreachable) resolving 'com/DNSKEY/IN': 2001:503:231d::2:30#53
2error (network unreachable) resolving 'com/DNSKEY/IN': 2001:503:a83e::2:30#53
该报错是由于启用了ipv6的原因导致的,虽然我们在/etc/named.conf中将listen项的IPv6配置已禁用,但是在named.ca配置中还有13台根域的ipv6配置。所以还需 要如下两种方法中的任一种来关闭ipv6的使用。
方法1:修改/etc/sysconfig/named配置
直接编辑配置文件/etc/sysconfig/named:
1OPTIONS="whatever" 改为 OPTIONS="-4"
2# 注意OPTIONS选项的值可以是:whatever、-4、-6中的一个
方法2:完全禁用IPv6
这部分可以参看我的博文 centos关闭ipv6 --- 这里有提供一些老版本的关闭方法。这里也提下在centos6下的关闭方法:
配置文件/etc/sysconfig/network,然后 将NETWORKING_IPV6=YES改为NETWORKING=no;关闭ip6tables这个服务;向/etc/modprobe.conf文件中,添加如下内容:
1alias ipv6 off
2alias net-pf-10 off
完了还需要重启主机。如果不想重启主机,可以参看我上面链接的博文。
2、dnssec报错
默认情况下未使用forwards转发,为了优化查询速度,我这里开启了转发 。不过不论是否开启转发,在默认启用dnsec的情况下,还会在日志中收到如下报错(虽然有报错,但不影响使用):
1error (insecurity proof failed) resolving './NS/IN': 114.114.114.114#53
2error (no valid RRSIG) resolving 'arpa/DS/IN': 114.114.114.114#53
3error (no valid RRSIG) resolving 'in-addr.arpa/DS/IN': 114.114.114.114#53
4validating @0x7ffb78470420: . NS: got insecure response; parent indicates it should be secure
访报错是由于每次验证的时候会对dns进行安全验证,验证失败时会出现上面的报错。禁用dnssec 功能即可。
四、rndc管理工具
rndc是bind为dns管理提供的一个工具,该工具参数如下:
1reload 重新装入配置文件和区域
2reload zone [class [view]] 重新装入单个区域
3refresh zone [class [view]] 安排区域的立即维护
4reconfig 仅重新装入配置文件和新区域
5stats 将服务器统计信息写入统计文件中
6querylog 切换查询日志
7dumpdb 将高速缓存转储到转储文件 (named_dump.db)
8stop 将暂挂更新保存到主文件并停止服务器
9halt 停止服务器,但不保存暂挂更新
10trace 将调试级别增加一级
11trace level 更改调试级别
12notrace 将调试级别设置为 0
13flush 刷新服务器的所有高速缓存
14flush [view] 为某一视图刷新服务器的高速缓存
15status 显示服务器的状态
16restart 重新启动服务器(尚未实现)
上面的参数主机常用的有rndc dumpdb -all 将内存中划存的数据存放到文件,可以了解缓存了哪些域名;rndc refresh zone 重刷某个区域(即域名);flush 清除当前缓存;stats 这个主要结合监控有用 ,和这个相关的还有rndc status 。
五、测试
配置测试主机192.168.0.109的/etc/resolv.conf文件,增加:nameserver 192.168.0.103 ,使用ping 其他域名进行测试或使用dig或nslookup进行测试,如下:
1# dig -t NS baidu.com
2; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -t NS baidu.com
3;; global options: +cmd
4;; Got answer:
5;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6532
6;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
7;; OPT PSEUDOSECTION:
8; EDNS: version: 0, flags:; udp: 4096
9;; QUESTION SECTION:
10;baidu.com. IN NS
11;; ANSWER SECTION:
12baidu.com. 12320 IN NS ns7.baidu.com.
13baidu.com. 12320 IN NS ns2.baidu.com.
14baidu.com. 12320 IN NS ns3.baidu.com.
15baidu.com. 12320 IN NS ns4.baidu.com.
16baidu.com. 12320 IN NS dns.baidu.com.
17;; Query time: 158 msec
18;; SERVER: 192.168.0.103#53(192.168.0.103) //这里就是DNS服务器的地址
19;; WHEN: Tue Nov 10 23:45:10 CST 2015
20;; MSG SIZE rcvd: 128
参考页面:
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/bind-dnscache/4802.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.