当前位置: > Linux服务器 > DNS >

linux中DNS服务器的安装与配置

时间:2015-01-22 00:55来源:linux.it.net.cn 作者:IT
DNS服务器的安装
  • 查看DNS服务是否已经安装
          
          如果已经安装,则会显示bind-libs-9.3.6-4.P1.el5_4.2与bind-9.3.6-4.P1.el5_4.2等字样,否则就是没有安装
  • 安装DNS服务
          [root@localhost Server]# rpm -ivh bind-9.3.6-4.P1.el5_4.2.i386.rpm
          [root@localhost Server]# rpm -ivh bind-libs-9.3.6-4.P1.el5_4.2.i386.rpm
          [root@localhost Server]# rpm -ivh bind-utils-9.3.6-4.P1.el5_4.2.i386.rpm
          [root@localhost Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5_4.2.i386.rpm #可有可无,为安全起见安装此包
DNS服务器的配置
  • 配置DNS服务器的主配置文件/etc/named.conf(/var/named/chroot/etc/named.conf)
          #指定named从/var/named目录下读取DNS数据文件,这个目录用户可自行指定并创建,指定后所有的DNS数据文件都存放在此目录下
          options {
    directory "/var/named";
};
include "/etc/rndc.key";
#指定named从named.ca文件中获得Internet的顶层“根”服务器地址
zone "." IN {
    type hint;
    file "named.ca";
};
#指定正向解析区域并指定正向解析区域的文件名
zone "risesoft.local" IN {
    type master;
    file "risesoft.local";
    allow-update { none;};
};
#指定反向解析区域并指定方向解析区域文件名
zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "1.168.192.in-addr.arpa";
};
  • 设置DNS正向解析区域的配置文件(注意一下每行需要顶格写)(/var/named/chroot/var/named/risesoft.local)
          #@则代表相应的域名,如在这里代表risesoft.local,即表示一个域名记录定义的开始。IN表示后面的数据使用的是INTERNET标准。而 server.risesoft.local则是这个域的主域名服务器,而root.risesoft.local则是管理                              员的邮件地址。注意这是邮件地址中用.来代替常见的邮件地址中的@.而SOA表示授权的开始
          @     IN     SOA     server.risesoft.local.     mail.risesoft.local.  (
               #正向解析区域的序列号。需要注意的是,当更改过主 DNS服务器数据后,需要将Serial数据加大,并且确定正向解析区域和反向解析区域的序号一致,这样辅DNS服务器才会自动更新DNS Cache数据库
               2008061001     ;Serial
               #定义的是以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的
               10800              ;refresh
               #这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试
               7200                ;retry
               #这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的
               604800            ;expire
               #DNS服务器将主机的域名信息保存在本地Cache中的时间,其他客户端查询时,就自动返回Cache中的数据
               86400              ;default_ttl
          )
          #NS:表示是这个主机是一个域名服务器
          #A:定义了一条A记录,即主机名到IP地址的对应记录
          #MX 定义了一邮件记录
          #CNAME:定义了对应主机的一个别名
          @                    IN                    NS                    server
          server              IN                    A                      192.168.1.155
          localhost           IN                    A                      127.0.0.1
          loopback           IN                    CNAME              localhost
 
          mail                 IN                    MX                    10                    server
          mail1               IN                    MX                    11                    server.risesoft.local.
 
          host1               IN                    A                       192.168.1.101
          host2               IN                    A                       192.168.1.155
          host3               IN                    A                       192.168.1.100
          host4               IN                    A                       192.168.1.86
          host5               IN                    A                       192.168.1.90
          host6               IN                    A                       192.168.1.21
          xxxholic            IN                    CNAME               host1
          xxxholic1          IN                    CNAME               host1                    
          
  • 设置DNS反向解析区域的配置文件(注意一下每行需要顶格写)(/var/named/chroot/var/named/1.168.192.in-addr.arpa)
          #@则代表相应的域名,如在这里代表risesoft.local,即表示一个域名记录定义的开始。IN表示后面的数据使用的是INTERNET标准。而 server.risesoft.local则是这个域的主域名服务器,而root.risesoft.local则是管理                              员的邮件地址。注意这是邮件地址中用.来代替常见的邮件地址中的@.而SOA表示授权的开始
          @     IN     SOA     server.risesoft.local.     mail.risesoft.local.  (
               #正向解析区域的序列号。需要注意的是,当更改过主 DNS服务器数据后,需要将Serial数据加大,并且确定正向解析区域和反向解析区域的序号一致,这样辅DNS服务器才会自动更新DNS Cache数据库
               2008061001     ;Serial
               #定义的是以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的
               10800              ;refresh
               #这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试
               7200                ;retry
               #这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的
               604800            ;expire
               #DNS服务器将主机的域名信息保存在本地Cache中的时间,其他客户端查询时,就自动返回Cache中的数据
               86400              ;default_ttl
          )
          #NS:表示是这个主机是一个域名服务器
          #PTR:表示反向记录
          @                    IN                    NS                    server.risesoft.local
          21                   IN                    PTR                   host6.risesoft.local
          86                   IN                    PTR                   host4.risesoft.local
          90                   IN                    PTR                   host5.risesoft.local
          100                 IN                    PTR                   host3.risesoft.local
          101                 IN                    PTR                   host1.risesoft.local
          155                 IN                    PTR                   host2.risesoft.local          
  • 配置DNS根服务器提示
          在 ftp://ftp.internic.net/domain 上下载 named.root文件,并修改文件名为named.ca保存到路径(/var/named/chroot/var/named)下
          wget ftp://ftp.internic.net/domain/named.root
          mv named.root /var/named/chroot/var/named/named.ca
 
启动关闭DNS服务器
          service named start
          service named stop
          service named restart
          启动和关闭DNS的时候可能出现权限错误,主要分为两个原因,
  • rndc.key设置错误,具体解决办法
                    默认安装BIND9以后,是无法直接使用 ndc 或 rndc 命令的。
先重新生成 rndc.conf
rndc-confgen > /etc/rndc.conf
 
将 rndc.conf 下面注释部分 Copy 到 /etc/rndc.key 文件中(必须将前面的#去掉)。
 
如:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "xbPNyGOcwJp8pEJDLo26cQ==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
 
如果 /etc/named.conf 中包含有 controls 这一Section,先注释掉。
 
然后在后面添加一行 include "/etc/rndc.key";
 
这样做是为了安全考虑,否则可以直接copy到 named.conf 文件中。
  • selinux权限问题,导致某些文件无法访问,具体如何解决通过查看日志
 
测试DNS服务器是否配置成功
 
     修改DNS客户端配置/etc/resolv.conf,将首选DNS服务器设置为刚才设置的DNS服务器的IP
 vim /etc/resolv.conf
 ;添加一行:
 nameserver 192.168.1.155
     
 
     测试DNS服务器是否正常运行:
          [root@localhost ~]# nslookup
> host1.risesoft.local
Server:         192.168.1.155
Address:        192.168.1.155#53
Name:   host1.risesoft.local
Address: 192.168.1.101
> server.risesoft.local
Server:         192.168.1.155
Address:        192.168.1.155#53
Name:   server.risesoft.local
Address: 192.168.1.155
> host5.risesoft.local
Server:         192.168.1.155
Address:        192.168.1.155#53
Name:   host5.risesoft.local
Address: 192.168.1.90
     可以看到DNS服务器运行正常,能够正确解析对应的主机域名映射,至此,DNS服务器简单配置完成。
(责任编辑:IT)
------分隔线----------------------------