發新話題
打印

[轉貼]centos6安装配置DNS服务器

[轉貼]centos6安装配置DNS服务器

http://aba.qzu.cn/archives/168.html

1、检查是否已经安装了DNS服务器软件bind

rpm -qa | grep bind

2、安装dns服务器
yum -y install bind* #dns服务器必装软件 yum remove bind* #删除
/etc/init.d/named start #启动DNS服务器
/etc/init.d/named restart #重启DNS服务器
service named stop #停止服务器
chkconfig named on #设为开机启动

yum -y install bind*
/etc/init.d/named start
/etc/init.d/named restart
service named stop
chkconfig named on

3、配置DNS服务器

1) 配置全局设置

vi /etc/named.conf

#修改以下代码
listen-on port 53 { any; };
allow-query { any; };

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
/// listen-on port 53 { 127.0.0.1; };
/// listen-on-v6 port 53 { ::1; };
listen-on port 53 { any; };
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 { localhost; };
allow-query { any; };
recursion yes;

forwarders { 8.8.8.8; };

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

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

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

zone "." IN {
type hint;
file "named.ca";
};

include "/etc/named.rfc1912.zones";

全局配置(options )
options 语句在每个配置文件中只有一个。如果出现多个options, 则第一个options 的配置有效,并会产生一个警告信息。
directory “/var/named”;
zone文件的存放目录,这里的/var/named 是相对目录,在chroot环境下/var/named目录下。
allow-query { any; };
任何地址都解析
forwarders { 8.8.8.8; };可以多个用;分开
自己不解析的都扔到这dns

2)添加正向解析区域及反向解析区域
区域配置(zone )
zone 语句作用是定义DNS 区域,在此语句中可定义DNS 区域选项
zone区域设置,第一步,设置根区域当DNS服务器处理递归查询时,如果本地区域文件不能进行查询的解析,就会转到根DNS服务器查询,所以在主配置文件named.conf文件中还要定义根区域。
type:设置域的类型
file:设置根服务列表文件名
zone “.” IN {
type hint;
file “named.ca”;
};
“.” 意思的根区域
IN 是internet记录
type是类型 根的类型是hint
file是根区域文件
/etc/named.ca记录13组根域名服务器

vi /etc/named.rfc1912.zones

#添加以下代码

zone “qzulab.cn” IN {
type master;
file “qzulab.cn.zone”;
allow-update { none; };
};

zone “1.168.192.in-addr.arpa” IN {
type master;
file “192.168.1.zone”;
allow-update { none; };
};

// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};

zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};

//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 "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};

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

zone "qzulab.cn" IN {
type master;
file "qzulab.cn.zone";
allow-update { none; };
};

zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.zone";
allow-update { none; };
};

3)新增正向区域文件
#编辑正向区域文件

cp /var/named/named.localhost /var/named/chroot/var/named/qzulab.cn.zone
vi /var/named/chroot/var/namedqzulab.cn.zone

#添加以下代码
$TTL 1D
@ IN SOA dns.qzulab.cn. root.qzulab.cn. (
20120312 ; serial # 仅作为序列号而已
3H ; refresh # 服务器的更新时间
1H ; retry # 重新更新时间间隔
1W ; expire # 多久之后宣布失败
0) ; minimum # 相当于缓存记忆时间
@ IN NS dns.qzulab.cn.
@ IN MX 10 mail.qzulab.cn.
dns IN A 192.168.1.12
mail IN A 192.168.1.13
www IN A 192.168.1.15
ftp IN CNAME www

$TTL 1D
@ IN SOA dns.qzulab.cn. root (
   20120312 ; serial
   1D ; refresh
   1H ; retry
   1W ; expire
   3H ) ; minimum
@ IN NS dns.qzulab.cn.
@ IN MX 10 mail.qzulab.cn.
dns IN A 192.168.1.12
mail IN A 192.168.1.13
www IN A 192.168.1.15
ftp IN CNAME www

chown -R named.named qzulab.cn.zone

TTL是生存期,单位是秒
$TTL是全局定义的
第二行 SOA记录,@取代在/etc/named.conf中指定的域名。
SOA段中的数字,分别为:序列号、刷新、重试、过期、生存期
序列号:序列号用于DNS数据库文件的版本控制。每当数据被改变,这个序列号就应该被增加。
刷新:从服务器向主服务器查询最新数据的间隔周期。每一次检查时从服务器的数据是否需要更改,则根据序列号来判别。
重试:一旦从服务器尝试连接主服务器失败,下一次查询主服务器的延迟时间。
过期:如果从服务器无法连通主服务器,则在经过此时间后,宣告其数据过期。
生存期:服务器回答 ‘无此域名’ 的间隔时间。
数字的默认单位为秒。否则:W= 周、D= 日、H= 小时、M= 分钟。
IN 是internet记录
SOA 是SOA 初始化记录,我们说的是初始授权记录,这个翻译不过,理解很多反正知道是那个意思就行了
dns.qzulab.cn. 是DNS服务器的名称
root 是管理员的邮箱地址

4)新增反向区域文件
#编辑反向区域文件

cp /var/named/named.localhost /var/named/chroot/var/named/192.168.1.zone
vi /var/named/chroot/var/named/192.168.1.zone #

#添加以下代码
$TTL 1D
@ IN SOA dns.qzulab.cn. root.qzulab.cn. (
2011091200 ; serial
3H ; refresh
1H ; retry
1W ; expire
0) ; minimum
@ IN NS dns.qzulab.cn.
12 IN PTR dns.qzulab.cn.
13 IN PTR mail.qzulab.cn.
15 IN PTR www.qzulab.cn.

$TTL 1D
@ IN SOA dns.qzulab.cn. root.qzulab.cn. (
     20120310 ; serial
     3H ; refresh
     1H ; retry
     1W ; expire
     0) ; minimum
@ IN NS dns.qzulab.cn.
12 IN PTR dns.qzulab.cn.
13 IN PTR mail.qzulab.cn.
15 IN PTR www.qzulab.cn.

chown -R named.named 192.168.1.zone

5)生成rndc.conf配置文件

vim random

输入以下代码,保存
asdlfkjsdfdsfsadlkjowersdfclDSADSFaos

rndc-confgen -r random > /etc/rndc.key
rndc-confgen -a -c /etc/rndc.key

#拷贝至/etc/named.conf文件中

key "rndc-key" {
algorithm hmac-md5;
secret "C1ujGLCguS21IZBPoND/Gg==";
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
///     listen-on port 53 { 127.0.0.1; };
///     listen-on-v6 port 53 { ::1; };
        listen-on port 53 { any; };
        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     { localhost; };
        allow-query     { any; };
        recursion yes;

        forwarders {210.34.120.1;8.8.8.8; };

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

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

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

 key "rndc-key" {
       algorithm hmac-md5;
       secret "C1ujGLCguS21IZBPoND/Gg==";
 };

 controls {
       inet 127.0.0.1 port 953
               allow { 127.0.0.1; } keys { "rndc-key"; };
};

include "/etc/named.rfc1912.zones";

4、测试DNS服务器

vi /etc/resolv.conf #编辑文件
nameserver 127.0.0.1 #将linux服务器的DNS设置为本身
nameserver 8.8.8.8 #为了能够访问外网需要设置备用DNS
nslookup -type=soa qzulab.cn #测试起始授权机构SOA资源记录
nslookup -type=a www.qzulab.cn #测试主机地址A记录资源
nslookup -type=ptr 192.168.1.129 #测试反向解析指针PTR资源记录
nslookup -type=cname ftp.qzulab.cn #测试别名CNAME资源记录
nslookup -type=ns qzulab.cn #测试名称服务器NS资源记录
nslookup -type=mx qzulab.cn #测试邮件交换器MX资源记录

tail -f /var/log/messages #查看日志
named-checkzone /var/named/qzulab.cn.zone #检查正向区域配置文件
named-checkzone 192.168.1.zone /var/named/192.168.1.zone #检查反向区域配置文件cd /var/named/chroot/etc

5、可能出错及解决
1、could not configure root hints from ‘named.ca’: permission denied
chown -R named.named ./* 将/var/named路径下的所有文件改成named用户named组的权限

2、lab named[16425]: none:0: open: /etc/rndc.key: file not found
#没有random产生器,手动伪造一个文件代替/dev/random的功能
#新建一个 random 文件随即输入一串数字“记得要长~~
shell $> vim random
asdSDSDFSDAFSasdkfjalsjdflajsldfHLKLLKOI
rndc-confgen -r random > rndc.key
参考:http://www.nginxs.com/linux/43.html

本条目发布于。属于linux原创教育信息化分类,被贴了 标签。

TOP

發新話題