DNS(Domain Name System) 域名解析系统。在互联网上的每一个计算机都有一个唯一的地址称为“IP     地址“ ip地址         不方便记忆,DNS允许用户用一串常见的字母取代(即域名)。用户可能通过域名     查找互联网的的计算机和            服务。DNS可以将此名称解析为与之相关的信息即IP地址。

DNS域名管理系统的域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP      地址,这一命名           的方法或这样管理域名的系统叫做域名管理系统。

DNS的结构分为顶级域名和一级域名

        顶级域名是用以识别域名所属类别、应用范围、注册国家等公用信息的代码。

        通用顶级域名指的是来自任何国家的任何人都可以自由使用的顶级域名,如".COM"代表商业 实体;".org"代表非营利性组织;".net"代表网络服务者;专用顶级域名".mil"代表军事机构;".edu"代表教育机构;".gov"代表政府机构。凡属于美国的机构,在此顶级域名下注册时,无需加注国家代码。

国家代码:此标准是将国家与地区的英文名称缩写为两位英文字母形成代码,如cn代表中国;hk 代表 香港;tw代表          中国台湾;us代表美国;uk代表英国等等。多数国家要求凡在域名 中加入其国家代码的,主机必须处于该国。          但也有些国家并无这方面的要求。

二级域名

         指由域名使用者自己设计的,能够体现使用者的特殊性,并据以同其他人的域名相区别的字符串。

反向域

           .in-addr.arpa即是把IP地址反过来写加上这个后缀,如172.16.1.1的反向域为1.1.16.172.in-addr.arpa这里的.              一个都不可以少。

DNS域名解析过程

一、根域

         所谓的根域就是所谓的".",其实我们的网址配置当中应该是有最后有一个点的,一般我们在浏览器里输入时会省           略后面的点。这个点就代表了根域。

二、域名划分

         这就是我们上面介绍的顶级域和一级域,及反向域。

三、域名服务器

      能提供域名解析的服务器,

记录类型及DNS数据库文件格式

            DNS数据库文件是一个文本文件,只能包含资源记录或宏定义

资源记录的格式:

        name          [ttl]            IN              rrtype                          value

例如,www.baidu.com  假如他的IP为192.168.0.0

那么它的格式应该写为以下这样

    name                  [ttl]           IN               rrtype                          value

www.baidu.com.     200          IN                 A                              192.168.0.0

注意:com后面的点不可少省,[ttl]的时间单位是秒可以省略不写,IN是关键是这个不变,rrtype是            记录文件类型,value是值。

SOA是区域数据为文件的第一条记录只能有一个

          name:区域名称,如badu.com.通常可以简写为@

           value:主DNS的


A记录

      A(Address)记录是用来指定主机名(或域名)对应的IP地址记录。就是服务器的IP,域名绑定,就是告诉DNS当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。简单的说,A记录是指定域名对应的IP地址。

NS记录

        NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。您注册域名时,总有默认的DNS服务器,每一个注册的域名都是一个DNS服务器来进行解析的。

MX记录

        MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。

CNAME记录

       CNAME(canonical Name)别名记录,允许您将多个名字映射到同一台计算机。通常用于同时提供www和mail服务的计算机。

TXT记录

         TXT记录,一般指某个主机名或域名的说明,多数指管理员的邮箱地址。

TTL值

         TTL(Time-To-Live):是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而被丢弃。有很多原因使包在一定时间内不能被传递到目的地。就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器发出解析请求从而获得解析记录;在获得这个记录后,记录会在DNS服务器中保存一段时间,这段时间内如时果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录,而这个记录在DNS服务器上保留的时间,就是TTL值。

PTR值

       PTR用一个IP地址映射到对应的域名,也就是A记录的反向,就是IP地址反向解析。

DNS数据库的记录:正解、反解、Zone的意义

      主机名(FQDN)的查询到IP的流程为:正解。

      从IP到主机名(FQDN)的查询的流程为:反解。

      不管是正解还是反解,每个域的记录就是一个域(Zone),也叫做地址池。

正解文件资源记录(Resource Rrcord,RR)格式:

  [domain]          [ttl]        IN       [RR type]     [RR data]

  [待查数据]   [暂存时间(秒)]  IN      [资源类型]    [资源内容]

  一般ttl是可以省略的

常见的正解文件记录格式如下:

  [domai]          IN         [RR type]             [RR data]

 主机名.             IN           A                      IPV4的IP地址

 主机名.             IN           AAAA                IPV6的IP地址

 域名.                IN           NS                    服务器主机的名子

 域名.                IN           SOA                  管理这个域名的重要参数

 域名.                IN           MX        优先级    接收邮件的服务器主机名子

 主机别名.          IN           CNAME               实际代表这个主机别名的主机名字

RR type的解释

   1.A AAAA:查询IP的记录


   2.NS:查询管理区域名的服务器主机名


   3.SOA:查询管理域名的服务器管理信息


   4.CNAME:设置某主机的别名


   5.MX:查询某域名的邮件服务器主机名

反解文件记录的RR数据

   反解的Zone必须把IP反过来写,而在结尾加上.in-addr.arpa.

   PRT就是反解,即是查询IP反对应的主机名。


搭建服务器的软件

   我们要使用的DNS软件就是使用柏克莱大学发展出来的BIND,下面我们就来安装bian软件[root@localhost ~]# rpm -qa | grep '^bind'

     bind-utils-9.8.2-0.17.rc1.el6.x86_64

     bind-libs-9.8.2-0.17.rc1.el6.x86_64

[root@localhost ~]# yum install bind

[root@localhost ~]# /etc/init.d/named start <====启动,这里可能会等一会,可能系统要 随机数,也可以拼命敲                                                                                                                                                 键盘直到出现以下结果

     Generating /etc/rndc.key:                                  [  OK  ]

     Starting named:                                            [  OK  ]

DNS的正解、反解查询命令:host、 nslookup、  dig

   host [-a]  FQDN  [server]

   host -l   domain [server]

选项和参数:

      -a:代表列出该主机所有的相关信息,包括IP 、TTL、与排错信息

      -l:若后面接的那个domain设置允许allow-transfer时,则列出domain所管理的所有主机名对应的参数

      server:这个参数可有可无。

nslookup [FQDN]   [server]

       可以直接在nslookup加上待查询的主机名或者是IP,[server]可有可无。

dig  [options]   FQDN   [@server]

       +trace:就是从. 开始追踪,正解或反解过程中所经过的网关。

       -t type :查询的数据主要有MX、NS、SOA等类型,

       -x:查询反解信息。

假设我们有以下案例,看看DNS服务器是怎么搭建的

  tianmiaomiao.com       172.16.251.

  mail        172.16.251.1

  www         172.16.251.2

  pop         mail<========pop是mail的别名

  ftp         www<=========ftp是www的别名

  dns         172.16.251.7

先定义正向区域

[root@localhost ~]# mv /etc/named.conf /etc/named.conf.origin《=把原配置文件给它移走,我自已创建一个

[root@localhost ~]# vim /etc/named.conf

options {

  directory  "/var/named";

};

zone "." IN {             《==========================定义根区域

        type hint;        

        file "named.ca";

};

zone "localhost."IN {    

        type master;

        file "named.localhost";

};

zone " tianmiaomiao.com." IN {

        type master;

        file "tianmiaomiao.com.zone";

};

[root@localhost named]# chown root:named /etc/named.conf<======更改文件的属主和属组

[root@localhost named]# chmod 640 /etc/named.conf<============更改文件的权限


编辑区域文件

[root@localhost ~]# cd /var/named

[root@localhost named]# vim tianmiaomiao.com.zone


$TTL 600

@          IN       SOA   dns.tianmiaomiao.com. admin.tianmiaomiao.com.(

                       2014031001

                       2H

                       10M

                       7D

                       1D)

@         IN       NS     dns

@         IN       MX   10 mail

dns       IN       A    172.16.251.7

mail      IN       A    172.16.251.2

www       IN       A    172.16.251.1

pop       IN       CNAME mail

ftp       IN       CNAME www

[root@localhost named]# chown root:named tianmiaomiao.com.zone

[root@localhost named]# chmod 640 tianmiaomiao.com.zone

[root@localhost named]# service named configtest

                 zone localhost/IN: loaded serial 0

                 zone tianmiaomiao.com/IN: loaded serial 2014031001

[root@localhost named]# service named restart

Stopping named:                                            [  OK  ]


下面定义反向解析:

第一步编辑配置文件vim /etc/named.conf,在后面加上

[root@localhost named]vim /etc/named.conf

zone "251.16.172.in-addr.arpa" IN {

        type master;

        file "172.16.251.zone";

};



[root@localhost named]# cp tianmiaomiao.com.zone 172.16.251.zone -p《==修改我们上面编辑好的文件,                                                                                                                                            并保持原来的属主和属组

[root@localhost named]# vim 172.16.251.zone

$TTL 600

@          IN       SOA   dns.tianmiaomiao.com. admin.tianmiaomiao.com.(

                       2014031001

                       2H

                       10M

                       7D

                       1D)

          IN          NS   dns.tianmiaomiao.com.

7          IN          PTR  dns.tianmiaomiao.com.

1          IN          PTR  www.tianmiaomiao.com.

2          IN          PTR  mail.tianmiaomiao.com.


[root@localhost named]# service named configtest

zone localhost/IN: loaded serial 0

zone tianmiaomiao.com/IN: loaded serial 2014031001

zone 251.16.172.in-addr.arpa/IN: loaded serial 2014031001


定义主从同步这里我们再打开一个虚拟机,首先在主服务器的区域文件中添加一条A记录和NS记录

[root@localhost named]# vim tianmiaomiao.com.zone


$TTL 600

@          IN       SOA   dns.tianmiaomiao.com. admin.tianmiaomiao.com.(

                       2014031001

                       2H

                       10M

                       7D

                       1D)

@         IN       NS     dns

@         IN       NS     ns2

@         IN       MX   10 mail

ns2       IN       A    172.16.24.55

dns       IN       A    172.16.251.7

mail      IN       A    172.16.251.2

www       IN       A    172.16.251.1

pop       IN       CNAME mail

ftp       IN       CNAME www



先确保从服务器可以跟主的通信

[root@localhost ~]# ping 172.16.251.208

         ping 172.16.251.208 (172.16.251.208) 56(84) bytes of data.

         64 bytes from 172.16.251.208: icmp_seq=1 ttl=64 time=1.80 ms



这一次我们编辑原来配置文件 ,把没用的项目都给他删了,只留以下几项,(你也可以把原来的注释掉)

[root@localhost ~]vim /etc/named.conf


options {

       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";

       recursion yes;



       /* Path to ISC DLV key */

};


logging {

       channel default_debug {

       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";

       recursion yes;

};


logging {

       channel default_debug {

               file "data/named.run";

               severity dynamic;

       };

};


zone "." IN {

       type hint;

       file "named.ca";

};


include "/etc/named.rfc1912.zones";《==这一项我们保留


[root@localhost ~]# vim /etc/named.rfc1912.zones

zone "tianmiaomiao.com" IN {

       type slave;

       masters { 172.16.251.7; };

       file "slaves/tianmiaomiao.com.zone";


};


[root@localhost ~]# service named start

[root@localhost ~]# ss -tunl

Netid  State      Recv-Q Send-Q                   Local Address:Port                     Peer Address:Port


udp    UNCONN     0      0                                    *:55088                               *:*    

udp    UNCONN     0      0                        192.168.1.124:53                                  *:*    《===53 号端口监听了

udp    UNCONN     0      0                         172.16.24.55:53                                  *:*     《===53  号端口监听了

udp    UNCONN     0      0                            127.0.0.1:53                                  *:*    

tcp    LISTEN     0      128                                 :::111                                :::*    

tcp    LISTEN     0      128                                  *:111                                 *:*    

tcp    LISTEN     0      3                        192.168.1.124:53                                  *:*     《===53号 端口监听了

tcp    LISTEN     0      3                         172.16.24.55:53                                  *:*       《===53号 端口监听了

tcp    LISTEN     0      3                             127.0.0.1:53                                  *:*    

tcp    LISTEN     0      128                                 :::22                                 :::*    

tcp    LISTEN     0      128                                  *:22                                  *:*