linux下构建DNS服务器BIND

DNS:域名解析。

域名分类

v 顶级域由两三个字母组成的名称用于指示国家地区或使用名称的单位的类型。如

v 组织域.net, .com, .org,.mil, .edu, .gov, .cc, .mobi

v 国家域.jp, .tw, .hk, .iq,.ir, .cn, .uk, .us

centos6.7搭建主从DNS服务器_第1张图片

 

全球有13台根服务器

v A INTERNIC.NET美国弗吉尼亚州 198.41.0.4

v B 美国信息科学研究所美国加利弗尼亚州 128.9.0.107

v C PSINet公司美国弗吉尼亚州 192.33.4.12

v D 马里兰大学美国马里兰州 128.8.10.90

v E 美国航空航天管理局美国加利弗尼亚州 192.203.230.10

v F 因特网软件联盟美国加利弗尼亚州 192.5.5.241

v G 美国国防部网络信息中心美国弗吉尼亚州 192.112.36.4

v H 美国陆军研究所美国马里兰州 128.63.2.53

v I Autonomica公司瑞典斯德哥尔摩 192.36.148.17

v J VeriSign公司美国弗吉尼亚州 192.58.128.30

v K RIPE NCC英国伦敦 193.0.14.129

v L IANA美国弗吉尼亚州 198.32.64.12

v M WIDE Project日本东京 202.12.27.33

 

DNS服务器类型有

  缓存域名服务器

  也称为唯高速缓存服务器

  通过向其他域名服务器查询获得域名->IP地址记录

  将域名查询结果缓存到本地提高重复查询时的速度

  主域名服务器

  特定DNS区域的官方服务器具有唯一性

  从域名服务器

  也称为辅助域名服务器

   

DNS查询方式

递归查询

  一般客户机和服务器之间属递归查询即当客户机向DNS服务器发出请求后,DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求得到结果后转交给客户机

迭代查询

  一般DNS服务器之间属迭代查询如若DNS2不能响应DNS1的请求则它会将DNS3IPDNS2以便其再向DNS3发出请求

 

DNS解析过程

centos6.7搭建主从DNS服务器_第2张图片 

v DNS服务器的主从如何协调

v 区域数据文件有版本号(序列号): serial

v 刷新时间(检查周期)refresh  --从服务器刷新数据到主服务器拿文件的时间间隔

v 重试时间(重试周期): retry      --从服务器拿数据失败后多长时间后重试

v 过期时间(失效时长): expire    --如果主服务器挂了从服务器顶上后过多久失效

v 否定应答的TTL                 --多长时间内不接受客户端的某个地址解析请求

 

v 协调过程从服务器在间隔达到refresh指定的时长后发起同步请求至主服务器主服务器响应serial从服务器与本地的serial进行比较如果主服务器serial大于本地意味主服务器区域数据文件更新了因此请求同步

 

DNS服务使用53号端口

TCP 53端口  服务器与服务器之间的连接

UDP  53 端口  客户端与DNS服务器的连接

 

zone  区域

type  类型

master 

slave 

include  包含链接到另一个文件

 

实例一搭建DNS正向和反向解析服务器。

DNS ip:172.16.1.232

DNS ip:172.16.1.231

 

1  系统环境(两台机一样)

[root@yy slaves]# cat/etc/redhat-release 
CentOS release 6.7 (Final)
[root@yy slaves]# uname -r
2.6.32-573.el6.x86_64 
[root@yy slaves]# iptables -F
[root@yy slaves]# setenforce 0


 

2.安装bind程序包两台机一样

[root@yy slaves]# rpm -qa bind
[root@yy slaves]# yum install -y bind


 

3.配置DNS配置文件在主DNS

[root@yy named]# vim /etc/named.conf
 
options {
        listen-on port 53 { 172.16.1.232; };                                                    --监听本一IP
        listen-on-v6 port53 { ::1; };                                                                       
                   forwarders      { 202.96.134.133; };                                        --DNS转发指向
        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     { 0.0.0.0/0; };                                   --允许哪些客户端请求。
        recursion yes;
 
        dnssec-enable yes;
        dnssec-validationyes;
        dnssec-lookasideauto;
 
        /* Path to ISC DLVkey */
        bindkeys-file"/etc/named.iscdlv.key";
 
        managed-keys-directory"/var/named/dynamic";
};
 
logging {
        channeldefault_debug {
                file"data/named.run";
                severitydynamic;
        };
};
 
zone "." IN {
        type hint;
        file"named.ca";
};
 
zone "yy.com" IN {
        type master;                                                  数据库类型
        file"yy.com.zone";                                       
        allow-transfer {172.16.1.231; };               允许哪个主机同步数据库文件
        allow-update   { none; };                         是否允许更新。
 
};
 
zone "1.16.172.in-addr.arpa" IN {
        type master;
        file"172.16.1.zone";
        allow-transfer {172.16.1.231; };
        allow-update   { none; };
};
 
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

 

[root@yy yy]# vim yy.com.zone


 

$TTL 3H
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1H      ; refresh
                                        1H      ; retry
                                        1D      ; expire
                                       3D )    ; minimum
        NS              ns.yy.com.
        MX      5      mail.yy.com.
mail     IN     A       172.16.1.100
ns       IN     A       172.16.1.232
www    IN      A      172.16.1.100
file         IN     A       172.16.1.110
ftp       IN     A       172.16.1.120


 

 [root@yy yy]# vim192.168.1.zone


 

$TTL 3H
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H)    ; minimum
        NS              ns.yy.com.
ns      IN      A      172.16.1.232
232     IN      PTR    ns.yy.com.
100     IN      PTR    www.yy.com.
110     IN      PTR    file.yy.com.
120     IN      PTR    ftp.yy.com.
100     IN      PTR    mail.yy.com.


 

 

4.检查配置文件语法错误

[root@yy named]# named-checkzone yy.com yy.com.zone 
zone yy.com/IN: loaded serial 0
OK


 

[root@yy named]# named-checkzone yy.com 172.16.1.zone 
zone yy.com/IN: loaded serial 0
OK


 

[root@yy named]# named-checkconf /etc/named.conf


 

5.启动服务

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


 

 

6.配置主从同步

从服务器配置文件

[root@yy named]# vim /etc/named.conf
 
options {
        listen-on port 53{ 127.0.0.1; };
        listen-on-v6 port53 { ::1; };
                   forwarders      { 202.96.134.133; };
        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     { localhost; };
        recursion yes;
 
        dnssec-enable yes;
        dnssec-validationyes;
        dnssec-lookasideauto;
 
        /* Path to ISC DLVkey */
        bindkeys-file"/etc/named.iscdlv.key";
 
        managed-keys-directory"/var/named/dynamic";
};
 
logging {
        channeldefault_debug {
                file"data/named.run";
                severitydynamic;
        };
};
 
zone "." IN {
        type hint;
        file"named.ca";
};
 
zone "yy.com" IN {
        type slave;
        file"slaves/yy.com.zone";
        masters {172.16.1.232; };
 
 
};
 
zone "1.16.172.in-addr.arpa" IN {
        type slave;                                             数据库类型为从
        file"slaves/172.16.1.zone";
        masters {172.16.1.232; };                指定从哪个主服务器下载数据
};
 
 
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";


 

 

启动从DNS服务器

[root@yy named]# chown -R named.named /var/named/slaves/ 
[root@yy named]# service named restart


 

检查是否同步成功了区域数据库文件

[root@yy named]# ls slaves/
172.16.1.zone  yy.com.zone


看到文件同步过来主从成功。


剩下就是找台客户机试验啦!!!