DNS服务的配置是个比较复杂的过程,在这里先介绍服务器的搭建过程,服务搭好之后再详细介绍

一、安装相关软件

[root@localhost bin]# yum install bind bind-chroot bind-utils caching-nameserver  -y

[root@localhost bin]# rpm -qa | egrep bind
bind-utils-9.3.6-4.P1.el5_4.2        #######DNS工具包
bind-9.3.6-4.P1.el5_4.2                 #######DNS软件包  
bind-libs-9.3.6-4.P1.el5_4.2        #######DNS库文件包
ypbind-1.19-12.el5   #######DNS客户端搜寻主机的相关密令包
bind-chroot-9.3.6-4.P1.el5_4.2   ####禁锢DNS主目录

[root@localhost bin]# rpm -qa | egrep caching
caching-nameserver-9.3.6-4.P1.el5_4.2           #####样例包,缓存服务器包

在安装caching-nameserver之后,会生成named.caching-nameserver.conf,这是DNS缓冲配置文件,而named.conf 就是DNS的配置文件。

DNS解析的一般过程就是首先查找缓冲文件,如果缓冲文件没有然后才进行解析。展现一下DNS的树形图,便于对dns配置文件路径的理解。

[root@localhost chroot]# pwd
/var/named/chroot
[root@localhost chroot]# tree
.
|-- dev
|   |-- null
|   |-- random
|   `-- zero
|-- etc
|   |-- localtime
|   |-- named.caching-nameserver.conf
|   |-- named.rfc1912.zones
|   `-- rndc.key
`-- var
    |-- log
    |-- named
    |   |-- data
    |   |-- localdomain.zone
    |   |-- localhost.zone
    |   |-- named.broadcast
    |   |-- named.ca
    |   |-- named.ip6.local
    |   |-- named.local
    |   |-- named.zero
    |   `-- slaves
    |-- run
    |   `-- named
    `-- tmp

二、DNS服务所需文件的配置

1、DNS主配置文件/var/named/chroot/etc/named.conf的修改

这个文件时不存在的,所以我将安装caching-nameserver之后生成named.caching-nameserver.conf 复制成named.conf 

cp  named.caching-nameserver.conf  named.conf, 然后对这个文件进行修改

[root@localhost etc]# cat named.conf



下面的黑色部分就是我自己要设置的域avil.com

2、主配置文件完成后,就开始设置zone文件/var/named/chroot/etc/avil.com.zones

[root@localhost etc]# cp -a named.rfc1912.zones avil.com.zones    ###-a 保证所有的权限一致


3、DNS 区域数据库配置文件/var/named/chroot/var/named/avil.com.zone

[root@localhost named]# pwd
/var/named/chroot/var/named
[root@localhost named]# cp -a localhost.zone avil.com.zone

[root@localhost named]# vi avil.com.zone 


接下来将服务器的DNS改为我的本机

[root@localhost named]# cat /etc/resolv.conf 
nameserver 192.168.254.153
search localdomain

[root@localhost named]# service named restart
停止 named:                                               [确定]
启动 named:                                               [确定]

三、开始测试能否解析


全都解析成功。

########以上就是DNS解析的配置截图#######下面我把自己的配置贴出来#######

四、配置文件的部分介绍

1、主配置文件

[root@localhost etc]# cat /var/named/chroot/etc/named.conf 
options {
        listen-on port 53 { any; };   #DNS服务的端口号53
        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";  # DNS的一些统计数据


        allow-query     { any; }; #允许查询
        allow-query-cache { any; }; #允许查询缓存
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};


zone "avil.com" IN {
        type master;
        file "avil.com.zone";
        allow-update { none; };
};


zone "254.168.192-addr.arpa" IN {
        type master;
        file "192.168.254.local";
        allow-update { none; };
};

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

2、 zone配置文件

[root@localhost etc]# cat /var/named/chroot/etc/avil.com.zones 


zone "avil.com" IN {
        type master;
        file "avil.com.zone";
        allow-update { none; };
};




zone "254.168.192.in-addr.arpa"{
        type master;
        file "avil.com.arpa.zone";
        allow-update { none; };
};

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

3、DNS区域数据库配置文件

[root@localhost named]# cat /var/named/chroot/var/named/avil.com.zone 
$TTL    86401  #DNS查询放在请求方服务器的有效时间长
@       IN SOA  dns.avil.com. mail.avil.com. ( #@代表zone;  # "."非常重要,带便一个完整地主机名(FQDN)  
                42              ; serial (d. adams) #识别序号
                3H              ; refresh #服务器更新时间
                15M             ; retry #当slave更新失败,多久重新更新一次
                1W              ; expiry #重复多久后就不再尝试更新
                1D )            ; minimum #相当于TTL


@               IN NS           dns.avil.com.   #NS  name  server 的缩写
@               IN MX  10       mail.avil.com. #MX  mail exchange 的简写
dns             IN A            192.168.254.153 # A正向解析的意思  表示主机对应的IP是多少
www             IN A            192.168.254.153
news            IN A            192.168.254.153
itop            IN A            192.168.254.46
mail            IN A            192.168.254.152
                IN AAAA         ::1

######################################################

五、DNS语法检测工具和日志

1、配置文件检查  named-checkconf

[root@localhost named]# named-checkconf -t /var/named/chroot/
[root@localhost named]#    如果没有返回结果证明配置文件语法没有任何问题

2、zone检查 named-checkzone

[root@localhost named]# named-checkzone -t /var/named/chroot/var/named/ avil.com avil.com.zone
zone avil.com/IN: loaded serial 42
OK   正向解析配置文件没问题

[root@localhost named]# named-checkzone -t /var/named/chroot/var/named/ 254.168.192.in-arpa avil.com.arpa.zone
zone 254.168.192.in-arpa/IN: loaded serial 1997022700
OK  反向解析配置文件也没问题

3、日志文件/var/log/messages

tail -f /var/log/messages



###########################################################

六、DNS的负载均衡

如果我的网站访问量非常大,单靠一台服务器或者一个VIP是很可能顶不住的,所以在DNS解析的时候可以给该网站做个负载均衡,举个百度的例子


解析两次得到了不同的IP地址,这是怎么实现的呢?答案很简单:

只要在我们的区域数据库配置文件中再加一条A记录,然后重启服务。

www             IN A            192.168.254.153
www             IN A            192.168.254.46



在这里顺便提一下一个概念,泛域名解析

举个简单的例子,在我想访问我的网页时,不小心把www.avil.com输成了wwww.avil.com或者是wwwwwww.avil.com,这种情况怎么办?

那就用到泛域名解析了,其实无外乎就是再加一条A记录

dns             IN A            192.168.254.153
www             IN A            192.168.254.153
www             IN A            192.168.254.46
news            IN A            192.168.254.153
*                   IN A            192.168.254.46

加了这条A记录后,所有的XXX.avil.com 均可被解析成192.168.254.46.


这点其实国内有些大的网站还没有实现(或许有其它原因),例如


先到这里,后面的实验还在调试,明天继续……



Logo

更多推荐