DNS编译安装步骤:

 

--------------------------------------------------------------
第一部分:编译安装
--------------------------------------------------------------

一、 所需软件
 bind-9.4.2.tar.gz   //http://www.isc.org/
 wget http://ftp.isc.org/isc/bind9/9.4.2/bind-9.4.2.tar.gz

编译安装之前将系统默认安装的卸载!

二 解压、安装
# tar zxvf bind-9.4.2.tar.gz
# cd bind-9.4.2
# ./configure --sysconfdir=/etc
# make
# make install

 

安装好以后查看其版本:

# /usr/local/sbin/named -v

三 主配置文件
# vi /etc/named.conf
options {
        directory "/var/named";
};

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

新建配置目录
# mkdir /var/named

产生named.ca文件
1 配置DNS

# echo "nameserver 202.99.192.68" >/etc/resolv.conf

由于这里已经能上网,所以不需要导入dns解析文件!

2 挖掘DNS工具,查看根(这里要到官方网站上更新DNS文件,
服务器IP地址需要能够上网)

# dig -t NS .

3 产生named.ca文件
# dig -t NS . >/var/named/named.ca

四 用RNDC控制服务器
产生rndc配置文件
# rndc-confgen > /etc/rndc.conf

显示行号
# cat -n /etc/rndc.conf

从13行开始到结束追加到named.conf文件
# tail -12 /etc/rndc.conf>>/etc/named.conf

去掉刚追加的注释
# vi /etc/named.conf


rndc文件主要时控制named文件。


五 运行及测试
运行DNS服务
# named

检查状态
# rndc status

查看日志文件

#cat /var/log/messages  | grep named

 


六 添加本地DNS服务器解析文件
# vi /etc/named.conf

zone "localhost"{
        type master;
        file "named.local";
};

zone "china.com"{
        type master;
        file "china.com.zone";
};

# vi /var/named/named.local

$TTL  38400
@ IN    SOA     localhost.      root (
                2009040701      ;serial
                1H              ;refresh
                15M             ;retry
                1W              ;expire
                1D )            ;TTL
  IN    NS      @
  IN    A       127.0.0.1

# vi /var/named/china.com.zone

$TTL  38400
@ IN    SOA     win.china.com.  root (
                2009040701      ;serial
                1H              ;refresh
                15M             ;retry
                1W              ;expire
                1D )            ;TTL
        IN    NS      win.china.com.
        IN    MX 10  mail
win     IN    A       192.168.11.1
www     IN    A       192.168.11.1
mail    IN    A       192.168.11.50
news    IN   CNAME    www
 


重新加载
# rndc reload

 

七、反向解析文件
# vi /etc/named.conf

zone"0.0.127.in-addr.arpa" in {
 type master;
 file "named.local01";
};


zone "11.168.192.in-addr.arpa" in {
 type master;
 file "china.zone";
};


# vi /var/named/named.local01
------------------------------------------
$TTL  38400
0.0.127.in-addr.arpa. IN SOA  win.china.com. root(
 2009040701 ;serial
 3H ; refresh
 15M ;retry
 1W  ;expiry
 1D) ;minimum
 IN NS  win.china.com.
1 IN PTR     win.china.com.
 

 


# vi /var/named/china.zone
------------------------------------------
$TTL  38400
11.168.192.in-addr.arpa. IN SOA win.china.com. root(
 2009040701;serial
 3H ; refresh
 15M ;retry
 1W  ;expiry
 1D) ;minimum
 IN NS  win.china.com.
1 IN PTR     win.china.com.
1 IN PTR     win.china.com.
50 IN PTR     mail.china.com.


#named-checkconf

测试配置:
正向解析:成功!
反向解析:成功!没有50的记录!所以不能成功!


----------------------------------------------------------------------------------
第二部分:配置主从服务器

----------------------------------------------------------------------------------


1.设置主DNS区域选项

# vi /etc/named.conf

zone "china.com"{
        type master;
        file "china.com.zone";
 allow-transfer{192.168.11.2;};  //只允许计算机192.168.11.2复制
};

 

# vi /etc/named.conf

zone "11.168.192.in-addr.arpa" in {
 type master;
 file "china.zone";
 allow-transfer{192.168.11.2;};  #只允许计算机192.168.11.2复制#
};


2.设置主DNS区域文件

# vi/var/named/china.com.zone

$TTL  38400
@ IN    SOA     win.china.com.  root (
                2009040701      ;serial
                1H              ;refresh
                15M             ;retry
                1W              ;expire
                1D )            ;TTL
        IN    NS      win.china.com.
        IN    MX 10  mail
win     IN    A       192.168.11.1
www     IN    A       192.168.11.1
mail    IN    A       192.168.11.50
news    IN   CNAME    www
son     IN    A         192.168.11.2   #添加从DNS的A记录#

 


# vi /var/named/china.zone

$TTL  38400
11.168.192.in-addr.arpa. IN SOA win.china.com. root(
 2009040701;serial
 3H ; refresh
 15M ;retry
 1W  ;expiry
 1D) ;minimum
 IN NS  win.china.com.
1 IN PTR     win.china.com.
1 IN PTR     win.china.com.
50 IN PTR     mail.china.com.
2       IN PTR     son.china.com.

 

----------------------------------------------------------------------------------
第三部分:配置slave服务器

----------------------------------------------------------------------------------
1.安装bind

# tar zxvf bind-9.4.2.tar.gz
# cd bind-9.4.2
# ./configure --sysconfdir=/etc
# make
# make install

 

安装好以后查看其版本:
# /usr/local/sbin/named -v

#mkdir -p /var/named/slaves

2.从主复制配置文件

2.1 开启用户远程登录

#vi /etc/xinetd.d/telnet
打开文件后,将里面的 disable=yes 行前面加上#注释掉,保存退出,重新启动xinetd 服务
/etc/rc.d/init.d/xinetd restart
 


2.2配置允许 root 用户登录

3vi /etc/pam.d/login
将文件中的
auth       required     pam_securetty.so
加上“#”注释掉,就可以实现在登录的时候允许 root 用户了。


2.3 复制文件


#scp root@192.168.11.1:/etc/named.conf  /etc

The authenticity of host '192.168.11.1 (192.168.11.1)' can't be established.
RSA key fingerprint is 27:28:86:d1:63:38:80:75:bd:7b:43:8b:27:1a:32:a7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.11.1' (RSA) to the list of known hosts.
root@192.168.11.1's password:
named.conf                                    100%  718     0.7KB/s   00:00   

[root@son ~]# scp root@192.168.11.1:/var/named/named.ca /var/named/
root@192.168.11.1's password:
named.ca                                      100% 1441     1.4KB/s   00:00  

 

 

3.用RNDC控制服务器
产生rndc配置文件
# rndc-confgen > /etc/rndc.conf

显示行号
# cat -n /etc/rndc.conf

从13行开始到结束追加到named.conf文件
# tail -12 /etc/rndc.conf>>/etc/named.conf

去掉刚追加的注释并且把先前存在的删除:
# vi /etc/named.conf


rndc文件主要时控制named文件。


4.运行及测试
运行DNS服务
# named

检查状态
# rndc status

查看日志文件

#cat /var/log/messages  | grep named

 

 

5.编辑

# vi /etc/named.conf

zone "china.com"{

       
type slave;

       
file "slaves/son.china.com.zone";

       
masters{192.168.11.1;};


};

 

zone "11.168.192.in-addr.arpa" in {

 
type slave;

       
file "slaves/son.china.zone";

      
masters{192.168.11.1;};

};

 


6.从主DNS复制

6.1 重新加载DNS
# rndc reload

6.2 查看日志情况
#cat /var/log/messages

Apr  8 13:08:48 son named[746]: loading configuration from '/etc/named.conf'
Apr  8 13:08:48 son named[746]: zone china.com/IN: Transfer started.
Apr  8 13:08:48 son named[746]: transfer of 'china.com/IN' from 192.168.11.1#53: connected using 192.168.11.2#59729
Apr  8 13:08:48 son named[746]: zone china.com/IN: transferred serial 2009040701
Apr  8 13:08:48 son named[746]: transfer of 'china.com/IN' from 192.168.11.1#53: end of transfer
Apr  8 13:08:48 son named[746]: zone 11.168.192.in-addr.arpa/IN: Transfer started.
Apr  8 13:08:48 son named[746]: transfer of '11.168.192.in-addr.arpa/IN' from 192.168.11.1#53: connected using 192.168.11.2#49833
Apr  8 13:08:48 son named[746]: zone 11.168.192.in-addr.arpa/IN: transferred serial 2009040701
Apr  8 13:08:48 son named[746]: transfer of '11.168.192.in-addr.arpa/IN' from 192.168.11.1#53: end of transfer

6.3 查看对应目录,是否复制成功
# ls /var/named/slaves/
son.china.com.zone  son.china.zone


--------------------------------------------------------------
第四部分:客户端验证
--------------------------------------------------------------

1.正常解析

C:\>nslookup
Default Server:  win.china.com    --从主服务器查询
Address:  192.168.11.1

> www.china.com
Server:  win.china.com
Address:  192.168.11.1

Name:    www.china.com
Address:  192.168.11.1

> mail.china.com
Server:  win.china.com
Address:  192.168.11.1

Name:    mail.china.com
Address:  192.168.11.50

 

2.断开主DNS


设置客户端DNS为辅助DNS

3.客户端通过辅助DNS解析

C:\>nslookup
Default Server:  son.china.com
Address:  192.168.11.2

> www.china.com
Server:  son.china.com
Address:  192.168.11.2

Name:    www.china.com
Address:  192.168.11.1

> mail.china.com
Server:  son.china.com
Address:  192.168.11.2

Name:    mail.china.com
Address:  192.168.11.50

 


--------------------------------------------------------------
第五部分:常见排错方法
--------------------------------------------------------------

1.查看辅助的日志

#rndc trace  99   --该命令将在DNS服务器和辅助DNS服务器的named目录下生成一个named.run日志文件


2.开启防火墙需要的端口

iptables -A FORWARD -i eth0 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth0 -p udp --dport 53 -j ACCEPT


3.关闭selinux
#cat /etc/sysconfig/selinux

#SELINUX=enforcing
SELINUX=disabled