首页 > CentOS > Centos6.3下DNS服务器的安装和配置

Centos6.3下DNS服务器的安装和配置

一.安装DNS Server

yum -y install bind*
yum -y install bind-utils  //nslookup 后面会用到
/etc/init.d/iptables stop //关闭防火墙,或者选择永久关闭防火墙chkconfig  iptables off

你也可以选择打开防火墙53端口,记住TCP和UDP都需要

vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

安装好之后查看named 服务状态

/etc/init.d/named status

rndc: neither /etc/rndc.conf  nor /etc/rndc.key was found

named-sdb 已停

发现缺失文件错误,解决方法如下:输入

 rndc-confgen -r /dev/urandom -a

再次启动服务,

/etc/init.d/named start

报如下错误,好事多磨!

rndc: connect failed: 127.0.0.1#953: connection refused

解决方法如下,编辑/etc/named.conf,增加如下内容

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

include "/etc/rndc.key";
chmod 777 /etc/rndc.key

然后再启动named服务,如果出现如下内容,说明服务正常了

named1
二.文件配置

安装完BIND以后,BIND的主要配置文件通常保存在如下两个目录:

/etc/named.conf  -BIND服务主配置文件

/var/named/  -域的zone配置文件

由于我是用yum的方式安装bind的,它默认也安装了bind-chroot,于是BIND的主配置文件主被封装到一个伪根目录内,路径为:

/var/named/chroot/etc/named.conf  -BIND服务主配置文件

/var/named/chroot/var/named  -域的zone配置文件

  • 首先我们来分析named.conf主配置文件
vim /var/named/chroot/etc/named.conf  
//全局配置  
options {
        listen-on port 53 { any; };//把原先的127.0.0.1 修改成any,或者本机IP,如果有多个IP,则每个IP以分号分割
        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; };//允许所有IP访问
        recursion yes;

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

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

        managed-keys-directory "/var/named/dynamic";
};
controls {
        inet 127.0.0.1 port 953
        allow { 127.0.0.1; } keys { "rndc-key"; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
//根域名服务器,当服务器启动时,它使用根线索来查找根域名服务器,并找到最近的根域名服务器列表。
//当DNS服务器处理递归查询时,如果本地区域文件不能进行查询的解析,就会转到根DNS服务器查询
zone "." IN {
        type hint;//类型有 hint(表示是互联网中根域名服务器),master(主域名服务器),slave(辅助域名服务器)
        file "named.ca";//该文件包含13个根域名服务器地址,可以通过cat /var/named/named.ca 查看
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/rndc.key";
  • 编辑named.rfc1912.zones

vim /var/named/chroot/etc/named.rfc1912.zones 首先清空里面的内容,然后增加如下内容

zone "gitsea.com" IN {       //正向区域zone   
    type master;
    file "gitsea.com.zone";//文件名
    allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {  //方向区域zone
    type master;
    file "gitsea.com.rev";      //文件名   
    allow-update { none; };
};
  • 配置zone

zone文件的格式比较复杂,包含了一些跟域从服务器同步刷新以及资源记录等信息,如果手动去编写很容易写错,因此我们一般使用默认的 named.localhost 这个文件来作为 zone 文件的模板,通过复制生成我们需要的正向zone和反向zone配置文件

cd  /var/named/chroot/var/named
cp -p named.localhost gitsea.com.zone
cp -p named.localhost gitsea.com.rev

gitsea.com.zone配置内容如下

$TTL 1D 
@    IN SOA  localhost root (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
NS    @
A   127.0.0.1
IN  MX  10  mail.gitsea.com.
mail  IN  A  192.168.1.17
www  IN  A  192.168.1.168

gitsea.com.rev配置内容如下

$TTL 1D
@    IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
NS      @
A       127.0.0.1
17      IN      PTR     mail.gitsea.com.
168     IN      PTR     www.gitsea.com.

参数说明:

TTL是生存期,单位是秒

SOA资源记录:
每个区在区的开始处都包含了一个起始授权记录(Start of Authority Record),简称SOA记录。SOA定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在唯一的SOA记录。

NS资源记录:
名称服务器(NS)资源记录表示该区的授权服务器,它们表示SOA资源记录中指定的该区的主和辅助服务器,也表示了任何授权区的服务器。每个区在区根处至少包含一个NS记录。

PTR资源记录:
相对于A资源记录,指针(PTR)记录把IP地址映射到FQDN。

CNAME资源记录(别名):
规范名字(CNAME)资源记录创建特定FQDN的别名,用户可以使用CNAME记录来隐藏用户网络的实现细节,使连接的客户机无法知道。

MX资源记录(邮件):
邮件交换(MX)资源记录为DNS域名指定邮件交换服务器。邮件交换服务器是为DNS域名处理或转发邮件的主机。处理邮件指把邮件投递到目的地或转交另一不同类型的邮件传送者。转发邮件指把邮件发送到最终目的服务器,用简单邮件传输协议SMTP把邮件发送给离最终目的地最近的邮件交换服务器,或使邮件经过一定时间的排队。

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

测试:

把另外一台服务器的DNS设置成该DNS服务器IP(我的当前DNS服务器IP为192.168.1.168)

测试方法和结果如下图

named3

说明配置生效.

附:我们在修改配置named.conf 文件和zone文件的时候,很有可能会出错之类的,这个时候我们可以通过借助 named-checkconf 和named-checkzone这两个指令来验证文件配置是否正确

named-checkconf :用来验证named.conf文件,格式:named-checkconf  /etc/named.conf  如果无错误信息输出,说明配置正确

named-checkzone:    用来验证zone文件,格式 named-checkzone gitsea.com.zone /var/named/chroot/var/named/payegis.com.zone ,如果正确则会输出OK信息,反之会输出相关的错误信息

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
*