Rootop 服务器运维与web架构

redhat6 安装bind服务及其dns转发

| 暂无评论

redhat6 安装bind服务及其dns转发

在redhat6以后,caching-nameserver这个rpm包已经取消,相关参数可在named.conf中配置。
安装服务:
[root@rhel6www ~]# yum install -y bind bind-chroot
首先配置主配置文件:
[root@rhel6www ~]# vi /etc/named.conf

options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory       "/var/named";
dump-file       "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query     { any; };
recursion yes;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
};

把listen-on port 53 { 127.0.0.1; };  和allow-query     { localhost; }; 大括号内的值改为  any,屏蔽掉:
#dnssec-enable yes;
#dnssec-validation yes;
#dnssec-lookaside auto;

配置声明区域文件:
[root@rhel6www ~]# vi /etc/named.rfc1912.zones

屏蔽:

#zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
#       type master;
#       file "named.loopback";
#       allow-update { none; };
#};

#zone "0.in-addr.arpa" IN {
#       type master;
#       file "named.empty";
#       allow-update { none; };
#};

这里用thing.com域做测试,添加:

##########################################
#正向解析#
zone "thing.com" IN {                         //区域名称
type master;                                //区域类型
file "thing.zone";           //区域文件
allow-update { none; };                //辅助dns

};

#反向解析#
zone "0.168.192.in-addr.arpa" IN {
type master;
file "0.168.192.zone";
allow-update { none; };
};
##########################################

配置区域文件,首先复制:
cp -p /var/named/named.*  /var/named/chroot/var/named/      //这是系统默认定义的几个区域文件,不复制的话启动会报错,缺少文件。
配置thing.com的区域文件:
[root@rhel6www ~]# cd /var/named/chroot/var/named/
[root@rhel6www named]# cp -p named.localhost thing.zone
[root@rhel6www named]# vi thing.zone

$TTL 1D
@       IN SOA  @ rname.invalid. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
NS      @
A       127.0.0.1
AAAA    ::1

www     IN      A       192.168.0.110

配置反向解析文件:
[root@rhel6www named]# cp -p named.localhost 0.168.192.zone
[root@rhel6www named]# vi 0.168.192.zone

$TTL 1D
@       IN SOA  @ rname.invalid. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
NS      @
A       127.0.0.1
AAAA    ::1
PTR     localhost.

110     PTR     www.thing.com

重启named。测试。
名称:    www.thing.com
Address:  192.168.0.110

> 192.168.0.110
服务器:  UnKnown
Address:  192.168.1.111

名称:    www.thing.com.0.168.192.in-addr.arpa
Address:  192.168.0.110

现在dns服务器可以适用于公司内部解析,那么在解析百度、新浪之类的网站是是无法解析的,需要在服务器上做dns转发:
[root@rhel6www named]# vi /etc/named.conf

在options段中添加:

        forwarders {
        202.102.134.68,8.8.8.8;
};
        forward first;
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory       "/var/named";
dump-file       "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query     { any; };
recursion yes;

#       dnssec-enable yes;
#       dnssec-validation yes;
#       dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";

forwarders {
202.102.134.68,8.8.8.8;
};
forward first;
};

打开或关闭DNSSEC验证.注意dnssec-enable也需要设置成yes才会生效,缺省为打开.
这需要一个配置文件,由于所有与服务器的通信都使用依赖共享密钥的数字签名来认证,并且没有其它方式可以比配置文件提供更好的保密方式.rndc配置文件的缺省路径是/etc/rndc.conf,

但也可以使用-c参数来指定一个其它路径.如果rndc没有找到配置文件,它将会查找/etc/rndc.conf(或者是BIND构建时由sysconfdir所定义的其它目录).rndc.key文件是由rndc-congen -a所生成的.

关于dns轮询配置:

只需要在options段添加一句 rrset-order { order cyclic; };
rrset-order 支持三个参数:fixed、random、cyclic 。
fixed      会将多个A记录按配置文件的顺序固定给出
random 会随机给出
cyclic     会循环给出

这里写了一个dns解析脚本,测试10次解析。

[root@localhost ~]# cat dns.sh
#!/bin/bash
for (( i=1;i<=10;i++ ))
do
ping www.a.com -c 1 | head -1 | awk '{print$3}' | cut -d"(" -f2 | cut -d")" -f1
done

fixed参数:
[root@localhost ~]# sh dns.sh
192.168.0.155
192.168.0.155
192.168.0.155
192.168.0.155
192.168.0.155
192.168.0.155
192.168.0.155
192.168.0.155
192.168.0.155
192.168.0.155

random参数:
[root@localhost ~]# sh dns.sh
192.168.0.155
192.168.0.155
192.168.0.157
192.168.0.157
192.168.0.155
192.168.0.157
192.168.0.157
192.168.0.156
192.168.0.156
192.168.0.156

cyclic参数:
[root@localhost ~]# sh dns.sh
192.168.0.157
192.168.0.155
192.168.0.156
192.168.0.157
192.168.0.155
192.168.0.156
192.168.0.157
192.168.0.155
192.168.0.156
192.168.0.157
经过实际测试,还是cyclic效果比较好,推荐用这个值来调度dns轮询。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/1726.html

作者:Venus

服务器运维与性能优化

发表回复