首页 > 代码库 > linux-dns

linux-dns

Linux-DNS

引述:日志在马哥视频公开课基础上编写,感谢马哥

一、概念

DNS:Domain Name Service

名称解析:将一种格式的信息转化为另外一种格式,以某关键字为标准查找某一数据库的过程

DNS 域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,

 从功能上可以实现正向解析和反向解析。

FQDN:Full Qualified Domain Name 完全域名解析

FQDN --> IP 正向解析

IP --> FQDN 反向解析

查询:

   递归查询:用于客户机向DNS服务器查询,只发出一次请求,最终能得到最终答案

   迭代查询:用于DNS服务器向其他DNS服务器查询,发出多次请求。

DNS服务器的类型(从工作形式上分为)

   主DNS服务器:在特定区域内具有唯一性、负责维护该区域内的域名与IP地址对应情况。

   从(辅助)DNS服务器:从主服务器中获得域名与IP对应关系并维护,以防主服务器宕机等情况。

   缓存名称服务器:通过向其他域名解析服务器查询获得域名与IP地址对应关系,以提高重复查询时的效率。

 

DNS服务协议分布式的数据库系统:

               根域

   .org    .net    .com     .edu   .gov     .others      

      google     meeyu    facebook

         www   web1  web2 

注:上级仅知道其直接下级,下级只知道根(.)位置。

 

二、安装bind程序

 Bind(Berkeley InternetName Daemon)伯克利互联网域名服务。

 #yuminstall -y bind bind-chroot

    /usr/sbin/named                   //主程序

    /etc/named.conf                   //主配置文件

     /etc/named.rfc1912.zones           //区域配置文件.

DNS的数据库文件(区域数据文件,区域自身有名字):文本文件,只能包含资源记录或宏定义,每行一个,数据库中的,每一个条目称为一个资源记录(Resource Record RR)

资源记录的格式:

name [ttl(缓存时间)] IN 资源记录类型(RRtype) Value

  例子:

    www 600(单位s) IN A 1.2.3.4

www.meeyu.com. 600 IN A 1.2.3.4

name:只能是区域名称,通常可以简写为@

value:有n个数值,最主要的是主DNS服务器的FQDN,点不可省略

注意:SOA必须是区域数据库文件第一条记录

例子:

         @600 IN NS ns

 

SOA(Start of authority)起始资源记录

    ZONENAME    TTL  IN  SOA   FQDN admin_mailbox (

             serialnumber        //版本号,注释内容,十进制数据,不能超过10位,通常使用日期

            refresh          //刷新时间,多久检查一次主服务器;

            retry           //刷新失败后,重试时间,应小于refresh

            expire          //过期时间

            nattl     )      //否定答案缓存时间

 

资源记录类型:

NS:可以有多条

l  A:只能定义在正向区域数据文件中,name:FQDN(可以使用相对名称) value:IP

               www  600(单位s) IN A 192.168.100.120

l  PTR:IP --> FQDN,只能定义在反向区域数据文件中

120 600 IN PTR www.meeyu.com.

l  MX:可以有多个,name:区域名称,用于标识smtp服务器; value:包含优先级和FQDN,优先级:0-99,数字越小,级别越高,

               @ 600 IN MX 10 mail

  • CNAME:别名,name :FQDN ;value :FQDN

               ftpIN CHANE www

 

三、实例 

1.备份文件:

     # cp/etc/named.conf{,.bak}

     # cp /etc/named.rfc1912.zones{,.bak}

2.编写配置文件:

修改主配置文件

# vim /etc/named.conf

options {

                    listen-on port 53 { 192.168.100.106; };  //监控本机端口

                    directory      "/var/named";     //文件目录

                    allow-query     { any ; };       //访问 控制

                    recursion yes;                    //是否递归 

};

修改区域配置文件:

# vim /etc/named.rfc1912.zones    //添加域

zone"meeyu.com" IN {

       type master;

       file "named.meeyu";

};

 

#zone"100.168.192.in-addr.arpa" IN {

      type master;

      file "named.106";

};

3.编写区域对应文件

    正向区域文件:

#vim /var/named/named.meeyu

$TTL900

meeyu.com.   IN SOA  ns.meeyu.com.admin.meeyu.com. (

                      2016010101

                      12H

                      15M

                      2D

                      6H  )

                IN NS   ns

ns           IN A    192.168.100.106

web1         IN A    192.168.100.107

web2         IN A    192.168.100.108

www          IN CNAME web1

  反向区域文件

       # vim /var/named/named.106

$TTL900

@            IN SOA  ns.meeyu.com.admin.meeyu.com. (

                      2016010101

                      12H

                      15M

                      2D

                       6H  )

                IN NS   ns.meeyu.com.

107         IN  PTR web1.meeyu.com.

108          IN PTR  web2.meeyu.com.

4.语法检查

name-checkconf 检查主配置文件

named -u named

name-checkzone"区域文件" 配置文件

 

客户端指向的DNS服务器,一定是允许给本地主机做递归的

 

域:Domain,逻辑概念

区域:zone,物理概念

 

5.测试命令:

dig 命令

  dig [-t type][-x addr] name @DNS服务器

  +[no]trace [不]适用迭代,路由追踪

  +[no]tcp 是否使用tcp

  +[no]recurse:是否使用递归

host

  host[-t type]{name} [server]

 

nslookup

  nslookup>

  serverDNS_SERVER_IP

  set q=TYPE

  {name}

反向解析测试:dig -x IP @Server

 

6.区域传输

 

  axfr:完全区域传送

  ixfr:增量区域传送   

注:在主服务器上只允许从服务器传送数据

         allow-transfer {192.168.100.110; };

 

主服务增加允许传送配置:

在正向区域和反向区域同时增加:

 

 

区域传送:

  用dig模拟完全区域传送

   dig -t axfr 区域名称 @server

 

   主从同步:

       /etc/resolv.conf

  主从:

    主:bind版本可以低于从的

 

    主从可以不再同一网段

 

   向区域中添加从服务器的关键两步

      在上级获得授权

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

     masters{ip;};

 

 

 

 

 

 

 

 

 

 

 


linux-dns