模式:C/S模式

 

#vim /etc/services

端口:

tcp/53    udp/53    #用于客户端查询

tcp/953  udp/953  #用于DNS主从同步

 

安装DNS

BIND简介

BIND全称为Berkeley internet Name Domain(伯克利因特网名称域系统)。

BIND主要有三个版本:BIND4、BIND8、BIND9。

BIND融合了许多提高效率、稳定性和安全性的技术,而BIND9增加了一些超前的理念:IPV6支持、密钥加密、多处理器支持、线程安全操作、增量区传送等等。

 

#rpm -vih /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm    //DNS服务的主程序包

#rpm -vih /mnt/Packages/bind-chroot-9.7.3-8.P3.el6.x86_64.rpm     //提高安全性

注:bind-chroot是bind的一个功能,使bind可以在一个chroot的模式下运行。也就是说bind运行时的/(根)目录,并不是系统真正的/(根)目录,只是系统中的一个子目录而已。这样做的目的是为了提高安全性。因为在chroot的模式下,bind可以访问的范围仅限于这个子目录的范围里,无法进一步提升,进入到系统的其他目录中。

#rpm -vih bind-utils-9.7.3-8.P3.el6.x86_64.rpm                                 //该包为客户端工具,默认安装,用于搜索域名指令。

 

或者

#yun install bind  

#yun install bind-chroot 

 

DNS服务器相关配置文件

#ls /etc/named.conf                //named.conf是BIND的核心配置文件,它包含了BIND的基本配置,但其并不包括区域数据。

named.conf是BIND的并不包括区域数据。

 

启动服务

//要先启动named服务,否则/var/named/chroot/目录下的文件不会被挂载上。这个和RHEL5是不一样的。

#ls /var/named/chroot/

#/etc/init.d/named restart(有点慢稍等下)

#service named restart  //重启服务

 

在客户端配置好DNS服务器地址

#cat /etc/resolv.conf  (查看DNS服务器地址)

#vim /etc/sysconfig/network-scripts/ifcfg-eth0

DNS1=100.64.140.120(当前本地PC的IP地址)

 

修改配置文件,实战举例

例1:配置DNS服务器解析:xuegod.cn

#vim /var/named/chroot/etc/named.conf

 options {
        listen-on port 53 { any; };
        listen-on-v6 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     { any; };
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

zone "xuegod.cn" IN{
        type master;
        file "xuegod.cn.zone";
};

创建zone文件

#cd /var/named

#cp -rp named.localhost xuegod.cn.zone

#vim xuegod.cn.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
代替为

$TTL 1D
@       IN SOA  ns.xuegod.cn. admin.xuegod.cn (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.xuegod.cn.
ns      A       100.64.140.120
www     A       100.64.140.120
mail    A       100.64.140.121
smtp    CNAME   mail.xuegod.cn.
        AAAA    ::1

配置说明:

$TTL 1D;设置有效地址解析记录的默认缓解时间,默认为1天也就是1D。
#原来的@表示当前的域xuegod.cn.,为方便大家记忆,我们这里,直接写成xuegod.cn.
#设置SOA记录为:dns.xuegod.cn.  #在此配置文件中写域名时,都把根.也要写上。

#域管理邮箱root.xuegod.cn,由于@有其他含义,所以用"."代替@。

0 ;更新序列号,用于标示数据库的变换,可以在10位以内,如果存在辅助DNS区域,建议每次更新完数据库,手动加1.
1D ;刷新时间,从域名服务器更新该地址数据库文件的间隔时间,默认为1天
1H ;重试延时,从域名服务器更新地址数据库失败以后,等待多长时间,默认为1小时
1W ;到期,失效时间,超过该时间仍无法更新地址数据库,则不再尝试,默认为一周
3H ;设置无效地址解析记录(该数据库中不存在的地址)默认缓存时间。设置无效记录,最少缓存时间为3小时

$TTL 1D;设置有效地址解析记录的默认缓解时间,默认为1天也就是1D。
#原来的@表示当前的域xuegod.cn.,为方便大家记忆,我们这里,直接写成xuegod.cn.
#设置SOA记录为:dns.xuegod.cn.  #在此配置文件中写域名时,都把根.也要写上。

#域管理邮箱root.xuegod.cn,由于@有其他含义,所以用"."代替@。

0 ;更新序列号,用于标示数据库的变换,可以在10位以内,如果存在辅助DNS区域,建议每次更新完数据库,手动加1.
1D ;刷新时间,从域名服务器更新该地址数据库文件的间隔时间,默认为1天
1H ;重试延时,从域名服务器更新地址数据库失败以后,等待多长时间,默认为1小时
1W ;到期,失效时间,超过该时间仍无法更新地址数据库,则不再尝试,默认为一周
3H ;设置无效地址解析记录(该数据库中不存在的地址)默认缓存时间。设置无效记录,最少缓存时间为3小时

SOA:区域授权起始记录,区域文件第一条记录,而且一个区域文件只能有一条

NS:域的授权名称服务器

MX:域的邮件交换器,要跟着一个优先级值,越小越高

A:IPV4主机地址

AAAA:IPV6主机地址

PTR:解析IP的指针

CNAME:权威(正式)名称,定义别名记录

 

#cd

#service named restart

 

#ping www.xuegod.cn

查看返回的地址是否为设置的DNS:100.64.140.120(当前本地PC的IP地址)

 

例二、使DNS支持迭代查询

#vim /var/named/chroot/etc/named.conf

将蓝标的注释掉,这样客户端才能通过这个DNS进行递归查询。把DNS加密通讯功能关闭,才可以和根服务器实行迭代查询。

#service named restart

#ping www.baidu.com

ping:unknown host www.baidu.com

 

三、搭建DNS转发服务器

#vim /var/named/chroot/etc/named.conf

#service named restart

尝试ping百度,可以连通

#ping www.baidu.com

 

 四、搭建DNS主从服务器

#vim /var/named/chroot/etc/named.conf

 

可以允许哪个网段的从DNS服务器,可以同步主DNS服务器zone文件,不写默认为所有。

 

 配置从服务器

到另外一台主机上

安装DNS服务器

 

或者

#yum install bind

#yum install bind-chroot

#service named start(稍微有点慢)

#vim /var/named/chroot/etc/named.conf

options {
        listen-on port 53 { any; };
        listen-on-v6 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     { any; };
        recursion yes;

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

zone "xuegod.cn" IN{
        type slave;
        file "slaves/xuegod.cn.zone.file";

  masters{ 100.64.140.120; };
};

#service named restart

#ls /var/named/chroot/var/named/slaves

xuegod.cn.zone.file

注:这样从DNS服务器就可以从主服务器上获取DNS解析记录信息了。

重启从DNS服务器会在:/var/named/chroot/var/named/slaves文件夹下自动创建一个文件

xuegod.cn.zone.file这个文件是从DNS服务器从主DNS服务器上获取的数据。

 

验证同步:

修改主DNS服务器区域文件

#vim /var/named/chroot/etc/named.conf

#service named restart

到从DNS服务器验证

#service named restart

#rm -rf /var/named/chroot/var/named/slaves/xuegod.cn.zone.file

#service named restart

#cart /var/named/chroot/var/named/slaves/xuegod.cn.zone.file

 

 

 注:若发现没用同步,很正常,同步周期为1天。

 

 六、DNS主从密钥认证

1、同步时间

主服务器

#vim /etc/ntp.conf

#service ntpd stop

#ntpdate 0.rhel.pool.ntp.org

从服务器

#vim /etc/ntp.conf

#service ntpd stop

#ntpdate 0.rhel.pool.ntp.org

 

2、生成密钥,进行主从认证,在主DNS服务器操作

#dnssec-keygen -a hmac-md5 -b 128 -n HOST abc

Kabc.+157+34056

 

-a hmac-md5:采用hmac-md5加密算法。

-b 128:生成的密钥长度为128位。

-n<nametype:ZONE | HOST | ENTITY | USER | OTHER

(DNSKEY generation defaults to ZONE)

abc:为生成密钥的名字

 

#cat Kabc.+157+34056.private

或者

#cat Kabc.+157+34056.key

 

#vim /var/named/chroot/etc/named.conf

 

(3)从DNS服务器

#vim /var/named/chroot/etc/named.conf 

 

 #service named restart