首先需要了解DNS的查找顺序。本地Hosts文件-本地DNS缓存-DNS服务器。也就是说浏览器里面输入ip地址之后,首先在本地的hosts文件里面查找,如果没有,则查找本地DNS缓存,最后才去查找DNS服务器。接下来看看下图。
 
clip_image002
看了上面的图之后,必须了解递归查询以及迭代查询。
递归查询
递归查询是最常见的查询方式,域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。 简单来说,客户机请求,DNS服务器会一定会返回结果,或者返回不存在。DNS服务器会到处寻找解析记录。
迭代查询
迭代查询又称重指引,当服务器使用迭代查询时能够使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,直到服务器给出的提示中包含所需要查询的主机地址为止,一般的,每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。从下节的图中可以知道,B访问C、D、E、F、G,都是迭代查询,首先B 访问C,得到了提示访问D的提示信息后,开始访问D,这时因为是迭代查询,D又返回给B提示信息,告诉B应该访问E,依次类推。
举例说明:假设你要寻找一家你从未去过的公司,你会有2种解决方案,1是找一个人替你问路,那可能是你的助手,2是自己问路,每走过一个路口,就问一个人,这就好比递归查询和迭代查询,递归查询在这里代表你的第1种解决方案,而迭代则是第2种解决方案。
clip_image004
clip_image005
 
1. 配置yum,注意看baseurl
clip_image008
2.执行[root@ns ~]# yum install bind* -y 安装完成之后就可以配置了。
下面是bind主配置文件详解,需要修改的地方就几个,对照下面我的文件
clip_image010
 
下面这个是我的配置文件,example.com是我的域名,做了正向以及反向解析区域。
修改监听地址,允许链接的客户端,
clip_image015
下面的时区域文件,不需要单独创建,系统有举例文件只需要复制一份就可以。
[root@ns named]# cp /var/named/named.localhost /var/named/exampe.com.zone
然后修改如下截图。
clip_image016
上面创建的记录类型,个人觉得txt记录需要说下。
SPF是为了防范垃圾邮件而提出来的一种DNS记录类型,也是防止邮箱被冒用发送邮件,
它是一种TXT类型的记录,它用于登记某个域名拥有的用来外发邮件的所有IP地址。
反向解析文件不需要创建,直接复制example.com.zone文件为1.168.192.in-addr.arpa.zone
反向解析在反垃圾邮件里面特别重要,切记。不过一般客户没法设置,这个需要运营商支持。
[root@ns named]# cp /var/named/example.com.zone /var/named/1.168.192.in-addr.arpa.zone
然后修改如下截图
clip_image017
接下来注意权限。修改所属组为named
clip_image018
接下来启动服务,如果message日志里面有这些错误,其实也不怎么影响。
clip_image020
BIND 預設開啟 IPv6 支援,在執行查詢時它也會試著解出 IPv6 的 IP 位置,如果 server 不支援 IPv6 就會出現以上錯誤。只要在 /etc/sysconfig/named 加入以下這行指定 BIND 只支援 IPv4 即可。 OPTIONS=”-4″
------暂时就到这里吧,辅助DNS服务器搭建比较简单,这里省略了。


补充:

如果是做缓存服务器,可以增加配置,修改named.conf文件里面,增加:  (注意位置)

options {
        listen-on port 53 { 172.16.40.253; };
        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; };
        allow-query-cache { any; };
        recursion yes;
        forwarders {114.114.114.114;};
};