DNS原理概述及使用


    ===============================

    • DNS原理

    • Bind的安装配置及正反向解析

    • 主从复制

    • 子域授权及转发

    • Aclview

===============================

 

一、DNS原理

每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。通过主机名,最终得到该主机名对应的IP地址的过程叫做名称解析(或主机名解析)DNS名称解析FQDN --> IP;IP --> FQDN(FQDN:指域名)

         DNS服务监听在53号端口,DNS中的名称与对应的主机的主机名不要求是一样的;一个名称可以对应多个IP;一个IP上也可以对应多个名称。

    DNS的域名的拆分图解:

             如:www.baidu.com.

‘.’:根域名服务器。

‘com’:顶级域名,或者一级域名,还有net cn org等

‘exmple’:二级域名,由公司或者个人使用。

‘www’:主机名 ,主机名还有mall.ftp等都是主机名

wKiom1Pm5ViT9sZXAAEVRdSGrII028.jpg


 

区域解析库:

   资源记录:rr(resource record)

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

     NS:name server

     MX:邮件交换器,MX记录有优先级的属性,0-99,数值越小,优先级越高

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

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

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

     CNAME:Canonical Name,正式名称


DNS的查询方式

   迭代查询:本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地 域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询

    递归查询:主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的份,向其他根域名服务器继续发出查询请求报文会给客户端一个准确的返回结果,无论是成功与否。

 

DNS服务器的类型:

        master:主DNS服务器拥有区域正反向配置文件,管理区域。          

slave:从DNS服务器是从主DNS服务器备份解析库从而达到DNS解析的。(解析库文件同步的过程叫:区域传送;传送为单方向的,因为只是从服务器到主服务器上获取解析库;区域传送分为:完全区域传送:axfer;增量区域传送:ixfer)

forward:将查询请求发往其他的DNS服务器。

cache:缓存服务器,将客户端上一次的解析缓存到服务器,过一段时间刷新一下。

       hint:根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环境

        实验环境:

搭建环境:CentOS6.5 x86_64虚拟机2台,做DNS主从复制。

安装包:使用yum安装bind-9.8.2-0.17.rc1.el6_4.6.x86_64rpm包。

主DNS服务器IP地址:172.16.25.1

从DNS服务器IP地址:172.16.25.4

wKiom1Pm5iqxAW2zAADwayQ7hjU642.jpg

            在主DNS服务器上安装bind包

            wKioL1Pm53-QGValAAAfxc_1RQY887.jpg                    wKiom1Pm5nayn2h0AAK7cf3B-qQ416.jpg

配置named.conf文件,注释掉暂时不用的信息(//表示注释)

    wKioL1Pm56-xfiAPAAAqkgRCR4w727.jpg

编辑此文件,添加正向解析区域

    wKioL1Pm57eSG9ALAABsNw9Z2Mk241.jpg

指定区域为learning.com,定义为主DNS服务器,指定文件为learn.com.zone

    wKiom1Pm5qrCL79mAAAlWhBf8P4751.jpg

添加正向解析区域后就开始创建配置文件“learn.com.zone”

    wKioL1Pm58_y3dfDAADlwk2zvnI711.jpg

将所需要的解析的信息填入配置文件

    wKiom1Pm5sOif5OvAAGAB0X05EA116.jpg

    wKioL1Pm5-6j-e7VAAAhBbqI8O8356.jpg

配置文件填写完成后就要修改文件的权限跟属组了,更好以后再检测下文件的语法是否正确,

    wKiom1Pm5uPwjPiTAABM4QdPsKo225.jpg

重启服务完成正向解析的配置

    wKioL1Pm6Anx9mE_AAAiiM2Y9IY859.jpg

再次修改此文件,添加反向解析区域

    wKioL1Pm6CWCnt-3AABGmVrSfrY991.jpg

定义区域名为25.16.172.in-addr.arpa.指定为主DNS服务器,配置文件为172.16.25.zone

    wKiom1Pm5xqTuhoDAAGBj2hFNc4544.jpg

把刚才创建的正向解析配置文件直接复制为反向解析的配置文件,并使用-p复制其权限信息

wKioL1Pm6D7wczxYAAAiFG_-32Y034.jpg

然后编辑反向解析文件

    wKiom1Pm5y-yRI3hAACY_Kc1i_U233.jpg

定义此文件中的配置信息

wKiom1Pm5zigQX5AAABv7IpEl-w137.jpg

然后检测语法是否有误,反向解析配置完成

 

使用客户端工具测试:

1、  host

  语法:host -t RRTypeNAME [SERVER]

wKioL1Pm6FyypJa9AACZjJMRD-4545.jpg

wKiom1Pm51Szv_tUAAFsHL-uRmM697.jpg

                wKioL1Pm6H-gLb3CAACou7ewdfc560.jpg

2、  nslookup

在命令中使用 server IP:指定要查看的主机的ip地址

                 set type=查看{A|SOA|NS|MX}记录

              name:查询名字

        wKiom1Pm53HRBVsZAAENnczhpDo389.jpg

3、  dig

使用格式: dig -t TYPE name @server

也可使用跟踪查看整个解析过程 

     +trace :跟踪解析过程

     +notrace :不跟踪解析过程

     +recurse :递归查询

     +norecurse:不递归查询

 

wKioL1Pm6JujKMkbAAIdNju8E4Y332.jpg

使用此命令查看正向解析情况

wKiom1Pm55KxFC_CAAInO3PmqcA154.jpg

使用此命令查看反向解析情况


主从复制、子域授权及转发、Aclview会在下次的博文中做详细的图解,敬请期待!