DNS 是域名管理系统

 udp/53  tcp/53 (主从)

 

NDS的作用:
将域名解析成IP地址 正向解析  A记录
将IP地址解析成域名 发向解析  PTR记录

 

hosts文件:
一般生产环境中,服务器的hosts文件保存其他服务器的主机名和ip地址

根域(.):13根域服务器(1台主根 美国 12辅根:9台美国 欧洲2台 瑞典 英国 亚洲1台 日本)
常见的顶级域名:
com. 商业组织
cc. 商业组织
org. 非盈利性组织机构
gov. 政府单位
net. 网络、通讯机构
int. 国际组织
cn.  中国
tw.  中国台湾
hk. 中国香港

 

BIND软件:
一款开源软件,90%以上的企业用的bind软件;由美国加州大学伯克利分校开发和维护的。
现在由互联网系统协会负责开发维护。

1、关闭防火墙和selinux
2、配置yum源
3、软件三步曲
(查看|安装|软件列表)

# rpm -q bind 是否安装

# rpm -aq|grep ^bind
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64  库文件
bind-9.8.2-0.17.rc1.el6_4.6.x86_64  服务端软件
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64 工具包


# rpm -ql bind
/etc/logrotate.d/named 日志轮转
/etc/named  服务的主目录
/etc/named.conf 主配置文件
/etc/rc.d/init.d/named 启动脚本
/etc/named.rfc1912.zones 子配置文件(定义区域文件)
/usr/sbin/named 二进制命令
/usr/sbin/named-checkconf 检测配置文件语法的命令
/usr/sbin/named-checkzone 检测区域文件语法的命令
/var/log/named.log 日志文件
/var/named  数据主目录
/var/named/data
/var/named/dynamic
/var/named/named.ca   根域区域文件
/var/named/named.empty
/var/named/named.localhost  正向区域文件的模板
/var/named/named.loopback   反向区域文件模板
/var/named/slaves 备用dns服务器数据目录
/var/run/named  进程

 

4、了解配置文件
5、根据需求通过修改配置文件来完成服务的搭建
需求:
www.bbs.net ——> 192.168.1.110
192.168.1.110 ——>www.bbs.net

1>修改主配置文件
# vim /etc/named.conf

options {
        listen-on port 53 { 127.0.0.1;any;  };定义监听方式;全网监听
        listen-on-v6 port 53 { ::1; };
        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;any; }; 允许任何人来查询
        recursion yes;  支持递归

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;
...
};

2> 修改子配置文件
vim /etc/named.rfc1912.zones
....
zone "bbs.net" IN {   定义管理的域bbs.net
        type master;
        file "bbs.net.zone";  指定区域文件,默认/var/named   文件名必须一致
        allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {  
        type master;
        file "192.168.1.zone";
        allow-update { none; };
};


3> 在/var/named目录下,创建相应的正向和反向的区域文件

# cd /var/named/
# cp -p named.localhost bbs.net.zone
# cp -p named.loopback 192.168.1.zone 一定要加-p 文件名要和子配置文件一样。


$TTL 1D :缓存生存周期1天
@:当前域
IN:互联网
SOA:开始给哪个域授权
rname.invalid. 邮箱
(
    0       ; serial 更新序列号
    1D      ; refresh 更新间隔
    1H      ; retry  失败重试
    1W      ; expire  区域文件的过期时间
    3H )    ; minimum 缓存的生存周期
NS:nameserver DNS服务器
A:A记录 正向解析
AAAA:ipv6 地址
CNAME:别名
MX 5:邮件交互记录 数字代表优先级  数字越小优先级越高
$GENERATE:批量解析

vim bbs.net.zone   正向解析
$TTL 1D
@ IN SOA bbs.net. rname.invalid. (
                      0 ; serial
                      1D ; refresh
                      1H ; retry
                      1W ; expire
                      3H ) ; minimum

@       NS      dns1.bbs.net. 
dns1    A       10.1.1.1  dns服务器
www     A       192.168.1.110  解析后的IP

注意:
前面2行代表dns服务器地址;在正向区域文件里必不可少

vim 192.168.1.zone    反向解析

$TTL 1D
@       IN SOA  bbs.net. rname.invalid. (
                   0       ; serial
                  1D      ; refresh
                  1H      ; retry
                  1W      ; expire
                  3H )    ; minimum
@       NS      dns1.bbs.net.
110     PTR    
www.bbs.net.

 

4、语法检测
# named-checkconf /etc/named.conf
# named-checkconf /etc/named.rfc1912.zones
# named-checkzone bbs.net.zone bbs.net.zone

 

5、启动服务
# service named start

 

6、测试验证
# nslookup www.bbs.net
# nslookup 192.168.1.110

 

 

 

---------->  主从 DNS 搭建:
     
        环境:  
               1、静态 IP 地址
               2、系统时间包保持一致( 同步系统时间 )
   

  搭建时间同步服务器:
   
    端口 123   UDP 协议
方法一:  ntp  时间同步服务器,需要外网,自己本身需要同步时间,客户端同步需要等1-3分钟
        1、安装 ntp 软件
        # yum install ntp     使用yum安装


        2、修改配置文件   
             # vim  /etc/ntp.conf
                ...
                restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap     允许哪个网段同步时间
  
         3、重启服务    # service ntpd restart     重启后需等待 3 分钟
         4、client端同步时间
    # ntpdate 192.168.1.2
  3 Aug 16:12:24 ntpdate[4056]: step time server 192.168.1.2 offset -134852339.592429 sec

               
                    
方法二: xinted 服务  一般用于局域网中,同步速度快

# cd  /etc/xinetd.d/
# vim  time-dgram  
service time
{
# This is for quick on or off of the service
        disable         = no   将yes变成no

}

 

# vim time-stream
service time
{
# This is for quick on or off of the service
        disable         = no 将yes变成no
...
}

重启xinetd  服务 ——> client端同步时间:  rdate -s 192.168.1.2


# netstat -nltup|grep 37
      tcp        0      0 :::37                       :::*                        LISTEN      2795/xinetd
      udp        0      0 :::37                       :::*                                    2795/xinetd

 

搭建主从DNS 服务步骤:
 
    1、 系统时间保持一致
             计划任务( 2 台都需要 ):*/2 * * * *  rdate   -s  192.168.1.2
        
    2、 环境    ( 静态IP 地址)
              master :192.168.1.102   —> dns 已搭建好
              slave :192.168.1. 3

   (master 端 ) :
     1>  修改主配置文件
       #vim /etc/named.conf
options {
        listen-on port 53 { 127.0.0.1;any; };
        allow-transfer {192.168.1.3;};     限制只有192.168.1.3下载数据
        listen-on-v6 port 53 { ::1; };
        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;any; };
        recursion yes;
....
};

子配置文件 /etc/named.rfc1912.zones 不需要修改
 
2>  修改相应的区域文件
        # cd  /var/named
        # vim  redhat.org.zone
            $TTL 1D
            @       IN SOA  redhat.org. rname.invalid. (
                                                    0       ; serial
                                                    1D      ; refresh
                                                    1H      ; retry
                                                    1W      ; expire
                                                    3H )    ; minimum
            @       NS      dns1.redhat.org.
            dns1    A       192.168.1.102
            www     A       192.168.1.2

            @       NS      slave.uplook.com.      添加2行,当master 有问题可以向slave 去解析
            slave   A       192.168.1.3

其他区域文件同样需要加

           # vim 192.168.1.zone
                $TTL 1D
                @       IN SOA  @ rname.invalid. (
                                                        0       ; serial
                                                        1D      ; refresh
                                                        1H      ; retry
                                                        1W      ; expire
                                                        3H )    ; minimum
                @       NS      dns1.redhat.org.
                3       PTR     vip.test.net.
                2       PTR    
www.redhat.org.
               
                @       NS      slave.uplook.com.
                3       PTR     slave.uplook.com.


   (slave 端 ) :
  
    1、 软件三步曲   #yum -y install bind
 
    2、 修改主配置文件
#vim /etc/named.conf
  options {
        listen-on port 53 { 127.0.0.1;any; };
        allow-transfer {192.168.1.3;};    限制只有192.168.1.3下载数据
        listen-on-v6 port 53 { ::1; };
        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;any; };
        recursion yes;
  ....
  };


    3、 修改子配置文件     ( 不需要创建区域文件 )
   
       # vim  /etc/named.rfc1912.zones
           ...       增加如下内容
           zone "redhat.org" IN {
                        type slave;
                         masters {192.168.1.102;};      ——>  master dns IP
                         file "slaves/redhat.org.zone";
           };
           zone "test.net" IN {
                        type slave;
                        masters {192.168.1.102;};
                        file "slaves/test.net.zone";
           };
           zone "1.168.192.in-addr.arpa" IN {
                        type slaves;
                        masters {192.168.1.102;};
                        file "slaves/192.168.1.zone";
           };

 
    4、 语法检测    #named - checkzone  ....
   
    5、 测试验证
        #dig  @192.168.1.102 
www.redhat.org
        #dig  @192.168.1.3  www.redhat.org
       
通过修改master 区域文件的版本号或者更改系统时间 来测试