一、BIND

1.安装bind:

# yum install bind –y


2.参看所有文件:

# rpm –ql bind   # 可知bind的程序名为named
        //重点关注/etc下的配置文件,及/sbin下的程序


3.精简主配置,利于理解工作机制

# cp /etc/name.conf /etc/name.conf.bak  #备份
# vim /etc/name.conf   #编辑,精简


wKiom1M2fibT7WTWAADdwHoDTw4493.jpg

4.启动服务  

# service named start

wKiom1M2flfAfEd2AAEqd241UU4406.jpg

启动服务需要生成随机数生成key,使用  

# named –u named  #手动启动named
# ss –tunl | grep 53  # 端口被监听

 4.查看/etc/named.tfc.1912.zones

   已经定义 localhost域 和 本机反向解析域

wKioL1M2fmGi9MPsAAByRVh0XKs855.jpg


二、正反向解析

正向解析

1.定义区域配置文件 172.16.251.zone

# vim /etc/named.conf  #添加配置

wKiom1M2fsiTjAKPAAArqkullR8184.jpg

2.创建区域数据库文件

# vim/etc/named/hoo.com.zone

wKioL1M2fr7QnFAGAACdoFlkXyY907.jpg

# chown root:named hoo.com.zone 
# chmod 640 hoo.com.zone
# named-checkconf  # 检查
# named-checkzone "hoo.com"/var/named/hoo.com.zone     

        3.测试

# killall  -1 named
# dig –t A www.hoo.com @172.16.251.188 #查询域内www.hoo.com的A记录,@前留空格
# dig –t A ftp.hoo.com@172.16.251.188
# vim  /etc/resolve.conf
namesever  172.16.251.188      #将DNS服务器改成自己)
# dig -t NS  hoo.com   #查询域内NS记录
# dig -t MX  hoo.com  
注:查询A记录,使用主机名;查询NS/MX记录使用域名

       

       反向解析

1.定义区域配置文件 hoo.com

# vim /etc/named.conf  #添加配置

wKiom1M2fw_h3Gs4AAA0n92PRMg194.jpg

2.创建区域数据库文件

# vim/etc/named/172.16.251.zone

wKioL1M2fveyTm-aAAB3vKWu_to427.jpg

# chown root:named 172.16.251.zone 
# chmod 640 172.16.251.zone
# service named configtest #检查所有配置文件

3.测试

# service namedreload    #与 killall -1 named 一样
# dig –172.16.251.188



三、主从同步

1.在主服务器的区域数据文件中为从服务器添加一条NS记录和对应的A或PTR记录

# vim/var/named/hoo.com.zone    #修改一条,添加两条
2014031002  #序列号+1,每一次修改序列号都+1,用以通知改变
@    IN     NS     ns2
ns2  IN     A      172.16.251.240

         同理 vim/var/named/172.16.251.zone ,添加反向

         重启服务:        

# service named reload

         测试:                

dig –t NS hoo.com
dig  -x 172.16.251.240

2.从服务器配置

a)确保从服务器能与主服务器通信:ping

b)编辑/etc/named.conf  该注释的注释

c)vim /etc/named/named.rfc1912.zones  #添加区域文件

wKioL1M2f3agPKT8AABpDMyDuKA037.jpg

d)同步,则从服务器不需要自建数据文件

e)named –u named  #手动启动named

f)ss –tunl | grep 53

g)vim /etc/named/slaves/hoo.com.zone  #查看同步数据

3.测试  

#dig -t A www.hoo.com@172.16.251.240
#dig –t NS hoo.com@172.16.251.188

4.区域传送(同步)安全控制(被不被允许的其他主机同步主DNS数据 ,推算内部网络拓扑和其他信息是极度危险的)    

allow-transfer { IP; }; 允许IP在所在主机传输

主服务器添加配置:    

zone “hoo.com.zone”添加:
               allow-transfer{127.0.0.1;172.16.251.240; };
zone "100.16.172.in-addr-arpa"添加:
               allow-transfer { 127.0.0.1; 172.126.251.240; };

检测语法:          

#named-checkconf
#service named configtest

测试:          

#dig –t xafr www.hoo.com @127.0.0.1

从服务器也需不允许传输:    

zone “hoo.com.zone”添加:
               Allow-transfer { none; };

检测语法:

zone “hoo.com.zone”添加:
               Allow-transfer { none; };

测试:          

#dig –t xafr www.hoo.com@172.16.251.240


四、子域授权

  在父域的配置中添加如下项:

  授权的子区域名称

  子区域的名称服务器

  子区域的名称服务器的IP地址

1.主DNS服务器上配置

# vim /etc/named/hoo.com.com.zone   #添加记录技术部记录
tech      IN      NS     dns.tech
dns.tech  IN      A      172.16.251.158
# named-checkzone “hoo.com” hoo.com.zone
# service named reload

2.安装子域服务器,配置:

a)定义区域

在/etc/named/named.rfc1912.zones
    zone “tech.hoo.com" IN {
           type master;
           file “tech.hoo.com.zone”;
    }

b)编辑数据文件:

# vim /etc/named/tech.hoo.com.zone

wKiom1M2f9rgpY2wAACHlhEQUFU803.jpg

           

# service named configtest
# chown root:named /etc/named/tech.hoo.com.zone
# chmod 640 /etc/named/tech.hoo.com.zone
# named –u  named

c)测试

主DNS:
# dig –t NS tech.hoo.com @172.16.251.188
# dig–t  A www.tech.hoo.com @172.16.251.188
子DNS:
# dig –t NS tech.hoo.com @172.16.251.158
# dig–t  A www.tech.hoo.com @172.16.251.158

d)修改 /etc/resolve.conf

namedserver 172.16.251.188  #将DNS改为自己



五、转发机制

子域范围内的客户端上无法解析父域成功,字符不负责父域,故而要传给根,没有在互联网上授权或者不能上互联网,则无法找到

在这样的情况下配置直接交个父域解析

        配置区域转发(在子域配置)

解析某本机不负责的区域内的名称时不转发给根,而是转发给指定的主机;

# vim /etc/named/name.rfc1912.zones   #添加转发域
       zone “hoo.com” IN {   
           Type forward;
           Forwarders { 172.16.251.188; 172.16.251.154; };
           Forward only;
       };

测试:

# dig –t NS  hoo.com



六、视图 view

只要启用view,所有地址都要包含在内,包括根

视图,实现将DNS服务器分切成N份;将一个DNS服务器工作在多个逻辑界面上,一个区域可以在不同的视图中各自定义一次;一个视图就是一个逻辑DNS,可以声明多个区域,在一个区域声明的可以仍在另一个区域中声明,因为在逻辑上他们互不相知,可以让视图同时声明N次。

实验模拟视图:

1.使用172.16.0.0/16网段模拟内网,要求内网访问时,DNS返回为内网地址;

2.使用192.168.0.0/16网段模拟外网,要求外网访问时,DNS返回为外网地址;

定义视图:

1.定义内网视图

# vim /etc/named.rfc1912.zones 
将根定义进内网,将根从named.conf中删除,将named.rfc1912.zone文件原有的数据全部定义进内网。
下图为一部分。

wKioL1M2f8XS7QBjAAFDQt9f6C8118.jpg

2.定义外网视图

在/etc/named.rfc1912.zones中添加

wKiom1M2f_qzzfjBAABTioHkpSo066.jpg

3.定义数据文件

内网视图无需定义

定义外网视图

# cp/var/named/hoo.com.zone /var/named/hoo.com.zone.ex
 # chown root:named /var/named/hoo.com.zone.ex
                     (cp 过后的权限为 root:root 会无法解析)
 # vim /var/named/hoo.com.zone.ex
    直接进行IP地址替换
     :%s@172\.16\.251@192\.168\.0@g
# service named configtest
# service named reload

4.测试

为主机添加IP地址:
# ifconfig eth0:0 192.168.0.188 up
# ifconfig   #检查
测试内网
# dig –t NS  hoo.com @172.16.251.188
测试外网
# dig  -t NS hoo.com @192.168.0.188