1、DNS基本原理

    DNS:Domain Name Service,域名解析服务

    监听端口:udp/53,tcp/53

    应用程序:bind

    

 www.magedu.com.: FQDN

 Full Qualified Domain Name 完全合格域名/全称域名


名称解析:主机名解析

把一种名称转换为另一种名称的过程

名称:字串、数字


解析库:某种存储

username <--> uid


某种存储:

文本文件

关系型数据库

     LDAP:Lightweight Directory Access Protocol, 389/tcp


 

域:domain, 区域:zone

正向解析:FQDN --> IP

解析库

反向解析:IP --> FQDN

解析库


根域:root domain

一级域:top-level domain

二级域:公司、组织、个人使用

主机:www

      

一级域:

    组织域:.com, .org, .net, .mil, .edu, .gov, .info, .cc, .me, .tv

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

反向域:.in-addr.arpa

    根结点:13个

    

    递归:DNS请求被服务器接受后,如果属于此服务器管辖范围则请求上级服务器依次传递请求,并且依次传递结果给发出请求的主机。

    形如:A --> B --> C --> D

    注意:客户端指向的服务器一定给递归服务

    

    迭代: DNS请求被服务器接受后,如果不是自己管辖范围,让客户端访问根域服务器,然后跟域通知客户端去访问下级服务器,直到最后客户端访问管辖请求域名的服务器为止

形如:

A --> B

A --> C

A --> D


DNS中的名称与对应的主机的主机名不要求是一样的。

一个名称可以对应多个IP

一个IP上也可以多个名称



2、区域解析库

    资源记录:rr(resource record)

有类型的概念:用于此记录解析的属性

SOA: Start Of Authority, 起始授权记录,一个区域文件只能有一个;

NS:Name Server

MX: Mail eXchange, 邮件交换器,MX记录有优先级属性(0-99);

A:FQDN --> IP,专用于正向解析库

PTR: IP --> FQDN,专用于反向解析库

AAAA:FQDN --> IPv6,专用于正向解析库

CNAME: Canonical Name,正式名称


  DNS查询:

递归

迭代


    DNS查询先后顺序:hosts --> local dns cache --> dns server (cache) --> 迭代


非权威应答:


  DNS服务器类型:

主DNS服务器

从DNS服务器

缓存服务器


解析库文件同步的过程:区域传送 (单方向传送)

zone transfer


完全区域传送:axfr

增量区域传送: ixfr

周期性检查 + 通知


    资源记录类型:

    name [ttl] IN RRType    value

    

    任何解析库文件的第一个记录的类型必须是SOA

    SOA:Start Of Authority

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

    value: 主DNS服务器的FQDN,也可以当前区域的区域名称;

    

    例如:@ IN   SOA   ns.magedu.com.   admin.magedu.com.  (

    serial number   ;解析库的版本号,例如2014080401

    refresh time    ;周期性同步的时间间隔

    retry time      ;重试的时间间隔

    expire time     ;过期时长

    negative answer ttl ;否定答案的统一缓存时长

    )

    

    admin.magedu.com. 区域管理员的邮箱地址

    

    NS:name server

    name: 区域名称

    value: DNS服务器的FQDN

    例如:@ IN NS ns.magedu.com.

    

    注意:

    如果有多台NS服务器,每一个都必须有对应的NS记录;

    对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;

    

    MX:Mail eXchanger

    name: 区域名称

    value: 邮件服务器的FQDN

    例如:

    @ IN MX  10   mail.magedu.com.

    @   IN    MX  20   mail2.magedu.com.

    

    注意:

    如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性

    对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;

    

    A: Address

    name: FQDN

    value: IP

    

    例如:

    www.magedu.com. IN   A   1.1.1.1

    www.magedu.com.   IN   A   1.1.1.2

    

    pop3.magedu.com. IN   A   1.1.1.3

    imap.magedu.com.    IN   A      1.1.1.3

    

    AAAA: ipv6 IP

    

    CNAME: Canonical Name //正式名称

    name: FQDN

    value: FQDN

    

    例如:

    www.magedu.com.   IN   A    1.1.1.5

    web.magedu.com.     IN   CNAME www.magedu.com.     //web是www的别名

    

   PTR: pointer

   name: 逆向的主机IP地址加后缀in-addr.arpa,例如172.16.100.7/16, 网络地址为172.16, 主机地址为100.7,其name为7.100.in-addr.arpa.

   value: FQDN

    

  例如:

    7.100.in-addr.arpa. IN   PTR www.magedu.com.


    

3、DNS正方向解析(bind)  

    bind: bekerley internet name domain

    

   服务脚本:/etc/rc.d/init.d/named

   主配置文件:

   /etc/named.conf, /etc/named.rfc1912.zones

   区域解析库文件:/var/named/zone_name.zone

   

   安全:

    服务进程以系统用户的身份运行:named, named

    可以运行于chroot模型下,即工作jail环境

   

    named进程运行于chroot环境

    /

    /var/named/chroot/

    etc, lib, bin, sbin

   

    案例:mageedu.com

    172.16.100.0

    

    www, mail, pop, imap, ldap, ftp

    

    注意:

    1、要注册域名:

    net.cn, godaddy.com

    

    2、泛域名解析

    * IN   A 1.1.1.1

    

    mageedu.com.   IN   A     1.1.1.1

    


4、安装配置过程

    1、安装程序包

    2、修改主配置文件:

    定义区域

       一般是vim /etc/named.conf

    options {

      全局配置段;

      // directory "/var/named";

    };

    

    zone "ZONE_NAME" IN {

    type {master|slave|hint|forward};

    file "mageedu.com.zone";

    };

    

    logging {

    

    }

         

    改完后看是否有语法错误,用以下命令:

         named-checkconf

         service named configtest

         named-checkconf “localhost” /var/named.named.localhost

    

          启动服务:service named start

    

    3、为每一个区域提供解析库

    变量的定义

    资源记录

    

    随机数:

    /dev/urandom:先返回熵池中的随机数,耗尽后会用软件算法生成随机数;进程不会阻塞;

    /dev/random: 只返回熵池中的随机数; 随机数耗尽,进程会被阻塞;

    

    rndc: remote name domain controller

    

    DNS:缓存DNS服务器

    

    客户端测试工具:

    1、host -t RRType NAME [SERVER]

    

    例如:host -t NS mageedu.com 172.16.100.7

    

    2、nslookup

    nslookup>

    server IP:dns服务器地址

    set type={A|SOA|NS|MX}

    name

    

    3、dig

    dig -t TYPE name @server

    类型可使用:AXFR

    例如: dig -t AXFR mageedu.com  @172.16.100.7

    

    测试反解不使用-t PTR,而使用-x选项

    

    dig: 查询选项

    +trace

    +notrace

    

    +recurse

    +norecurse

    

    反向区域:

    区域名称为逆向网络地址加.in-addr.arpa做后缀

         完全反向区域解析:

         dig -t AXFR 146.168.192.in-addr.arpa @192.168.146.129

    说明:

    1、正向解析和反向解析文件中的名称可以仅使用相对名称,它们均相对当前区域而言;

    2、绝对后缀可以使用$ORIGIN来定义;

  

  

5.实战解析

    编辑主配置文件,添加正向区域和反向区域

    vim /etc/named.conf

    wKiom1VUzTjAFz0QAAC0g08-6Cw559.jpg

    

    

    创建正向区域文件

    vim scholar.com.zone   #必须与区域文件名保持一致

    $TTL 3600

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

                                                            2015042601

                                                            2H

                                                            10M

                                                            7D

                                                            1D )

    @       IN      NS      ns.mageedu.com. 

    @       IN      MX 10   mail.mageedu.com. 

    ns.mageedu.com.      IN      A       192.168.146.129

    mail.mageedu.com.    IN      A       192.168.146.128 

    www.mageedu.com.     IN      A       192.168.146.128

    pop.mageedu.com.     IN      CNAME   mail.mageedu.com.

    

    

    创建反向区域文件

    vim 192.168.146.zon   #必须与区域文件名保持一致

    $TTL 3600

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

                                                            2015042601

                                                            2H

                                                            10M

                                                            7D

                                                            1D )

    @       IN      NS      ns.mageedu.com. 

    129      IN      PTR     ns.mageedu.com.

    128      IN      PTR     mail.mageedu.com.

    128      IN      PTR     www.mageedu.com.

    

    

    

    修改权限及属组

    chgrp named mageedu.com.zone

    chmod 640   mageedu.com.zone

     

    chgrp named 192.168.146.zone

    chmod 640   192.168.146.zone

    

    

    检查语法,启动服务并设置开机自启

    service named configtest

    chkconfig --level 35 named on

    chkconfig --list named

    

    查看tcp和upd的53端口是否开启

    ss -tunl|grep :53

    

    

    正向解析测试

    host mail.mageedu.com

    host -t NS mail.mageedu.com 192.168.146.129

    host mail.mageedu.com 192.168.146.129

    nslookup mail.mageedu.com

    dig -t A mail.mageedu.com @192.168.146.129

    

    

    反向解析测试

    nslookup 192.168.146.128

    dig -x  192.168.146.129

    dig -t AXFR 146.168.192.in-addr.arpa @192.168.146.129