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

openeulr dnf安装配置 redis_配置文件

openeulr dnf安装配置 redis_配置文件_02

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

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

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

openeulr dnf安装配置 redis_linux_03

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

openeulr dnf安装配置 redis_linux_04

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

[root@localhost named]# cat /etc/resolv.conf 
 nameserver 192.168.254.153
 search localdomain[root@localhost named]# service named restart
 停止 named:                                               [确定]
 启动 named:                                               [确定]

三、开始测试能否解析

openeulr dnf安装配置 redis_配置文件_05

全都解析成功。

########以上就是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 19970

22700
OK  反向解析配置文件也没问题

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

tail -f /var/log/messages

openeulr dnf安装配置 redis_linux_06


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

六、DNS的负载均衡

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

openeulr dnf安装配置 redis_DNS_07

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

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


openeulr dnf安装配置 redis_linux_08

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

举个简单的例子,在我想访问我的网页时,不小心把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.

openeulr dnf安装配置 redis_linux_09

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

openeulr dnf安装配置 redis_DNS_10

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