早期使用hosts文件解析域名,但是主机名称重复,主机维护困难。
DNS(Domain Name system域名系统)
/etc/nsswitch.conf  :当系统中同时存在dns域名解析和/etc/hosts主机表机制时,用该文件确定主机名的解释顺序。


DNS系统的作用:
正向解析:根据主机名称查找对应的ip地址
反向解析:根据ip地址查找对应的主机域名


客户机及使用DNS解析,会先查看自己本地文件/etc/hosts文件,如果没有再看本地缓存,本地缓存没有,再看DNS服务器。

windows客户机有缓存,linux没有。
ipconfig /flushdns 清空缓存。
ping是会看缓存的,nslookup不会看缓存。



DNS树形结构:根域 --->  顶级域 --->二级域 ----> 三级域 ---> 主机名
www.sxkeji.com.cn   (www表示主机名,sxkeji为三级域,com为二级域,cn表示顶级域)

缓存域名服务器:将域名查询结果缓存到本地,提高重复查询时的速度
主域名服务器:负责维护该区域内所有的域名,ip地址的映射记录
从域名服务器:其维护的域名,ip地址的记录  来源于主域名服务器


配置DNS服务器
安装BIND软件包:
yum  install  bind*

bind-utils-9.3.3-7.el5.i386.rpm
客户端测试命令软件包
caching-nameserver-9.3.3-7.el5.i386.rpm(rhel6没有)
缓存服务器软件包,可以利用这个包生成的配置文件做模板,提高我们配置DNS的效率
bind-chroot-9.3.3-7.el5.i386.rpm
dns增强安全的软件包,安装后dns服务的根目录到/var/named/chroot,只要安装了这个软件包,则bind相关配置文件一定要保证named账户有读取和执行的权限

服务器端服务脚本:/etc/init.d/named
默认监听端口:53
主要配置文件:/var/named/chroot/etc/named.conf
数据文件位于:/var/named/chroot/var/named
如果没有安装bind-chroot软件包)
主要配置文件:/etc/named.conf
数据文件位于:/var/named目录
var/named/chroot/var/named/named.ca     指明13台根服务器的地址,bind9内置服务器地址,可以直接找到根。


主要配置文件named.conf
options {                                                                                            #全局配置
       directory       "/var/named";                                                          #指定目录
       dump-file       "/var/named/data/cache_dump.db";                      #查看缓存文件
       forwarders{                                                                                  #全局转发器(当服务器解析不了使,就交给全局转发器指定的ip服务器去解析)
       8.8.8.8;
};
};
#include "/etc/named.rfc1912.zones";                                                  #声明根和本地区域文件的路径
zone "wy.com"IN{                                                                               #区域配置,设置本服务器解析的特定DNS区域
    type master;                                                                                   # 表示主域名服务器
    file "wy.com.zone";                                                                          #指定文件
 };
zone "xdx.com"IN{
    type forward;
    forwarders {                                                                                    #局部转发器(xdx.com这个域交给转发器指定ip服务器去解析)
     10.0.1.111;
};
#recursion   no                                                                                      #表示这台服务器解析不了,就不找其他服务器解析
};
zone "1.168.192.in-addr.arpa"IN{                                                       #方向解析域,将ip地址解析成域名,需要反向写。
    type master;
    file "192.168.1.arpa";
 };


rndc  dumpdb  将缓存导入缓存文件


区域数据配置文件
DNS区域通过资源记录为客户提供相应域名解析
DNS区域文件中包含的资源记录的类型:
SOA                    指定该区域的权威名称服务器
NS                       表示某区域的权威服务器和SOA中的指定的该区域的主服务器和辅助服务器
A                         列出区域中的域名到ip地址的映射
PTR                     相对于A资源记录,PTR记录把ip地址映射到域名(做反向解析用)
MX                      邮件交换记录,向指定邮件交换机提供消息路由
CNAME              将多个名字映射到统一台计算机,相当与别名。


编辑正向解析文件:
cp  -a  /var/named/named.localhost           /var/named/wy.com.zone  
vim wy.com.zone  编辑wy.com.zone文件
$TTL 1D                                                            
@       IN SOA  dns  root (                                   #形式:@  IN  SOA   主机名    邮箱地址,它在每个区域是唯一记录
                                       6       ; serial               #序列号          
                                       1D      ; refresh           #更新
                                       1H      ; retry               #重试
                                       1W      ; expire            #过期
                                       3H )    ; minimum        #最小TTL
@       NS      dns.wy.com.                                    #主从服务器
         NS      dns1.wy.com.

         A       10.0.1.9                                            
www    IN A    192.168.1.1                                   #主机名   IN A  ip地址
dns      IN A    10.0.1.9
ns1      IN A    192.168.1.5


编辑反向解析文件
cp  -a  /var/named/named.localhost       /var/named/192.168.1.arpa  (反向解析文件)
编辑192.168.1.arpa文件
$TTL 1D
@       IN SOA  dns  root (
                                       0       ; serial
                                       1D      ; refresh
                                       1H      ; retry
                                       1W      ; expire
                                       3H )    ; minimum
@       NS      dns.wy.com.
       NS      dns1.wy.com.
1    IN  PTR       www.wy.com.                            #主机位倒序    IN  PTR   主机名

修改玩配置文件后,重启服务:service  named  restart


named-checkconf工具:查看配置文件是否写错
named-checkconf  -t   /var/named/chroot

named-checkzone工具
格式:named-checkzone  域名  区域数据文件


客户机修改文件:
/etc/resolv.conf文件
nameserver 10.0.1.9 (DNS服务器ip)
用途:保存本机需要使用的DNS服务器的ip地址


dig命令:解析ip地址或区域
格式:dig  hostname/ip  @ip (@ip表示指定查询DNS服务器ip)
nslookup命令:  
nslookup  hostname/ip

测试效果:
[root@wenyao ~]# nslookup dns.wy.com
Server:        10.0.1.9
Address:    10.0.1.9#53

Name:    dns.wy.com
Address: 10.0.1.9
[root@wenyao ~]# nslookup 192.168.1.1
Server:        10.0.1.9
Address:    10.0.1.9#53

1.1.168.192.in-addr.arpa    name = www.wy.com.


构建从域名服务器:提供域名解析功能,它的数据不是直接输入的,是从其他服务器中复制过来的
所以从域名服务器中的数据无法被修改。它能够分担主服务器的负担,加快查询速度,提供容错能力。

1·修改从服务器上配置name.conf 文件
options {
       directory       "/var/named";
       dump-file
       forwarders{
       8.8.8.8;
};
};
#include "/etc/named.rfc1912.zones";
zone "wy.com"IN{
    type slave;                                                   #声明从域名服务器
    masters{                                                      #主服务器ip
     10.0.1.9;
};  
    file "slaves/wy.com.zone";                            #指定文件
 };
zone "1.168.192.in-addr.arpa"IN{
    type slave;
   masters{
    10.0.1.9;
};
    file "slaves/192.168.1.arpa";
 };
2·修改主服务器上的区域解析文件的序列号
@       IN SOA  dns  root (                                
                                       6       ; serial   (确保它比服务器从服务器的序列号大)
重启服务即可:service   named  restart