DNS协议简介

     DNS(域名系统)是一种能够完成从名称到地址或从地址到名称的映射系统。使用DNS,计算机用户可以间接的通过域名来完成通信。Internet中的DNS被设计成为一个联机分布式数据库系统,采用客户服务器方式工作。分布式的机构使DNS具有很强的容错性。

作用:   名称---》地址(正向解析)

             地址---》名称 (邮件系统)

【便于访问互联网而采用的一种分布式的域名/IP地址映射查询和管理】

常见的DNS域名系统有:

1:bind (bekelay internet name daemon)   用的比较多(占市场的60%-70%)

                            利用文件存储       

2:powerdns      速度比较快功能不是很全

3:mydns         利用数据库存储速度慢但是支持动态更新

DNS解析方案

  1.hosts文件          只能用在非常小型网络中 

       (在文本中写入     XXX主机    对应的IP)

    缺点:只要地址或名称(www.sina.com.cn  1.1.1.1)发生变化,每一台主机上的hosts文件都要修改。

2. dns(域名系统)      用于大型的网络中

DNS查询原理:

客户端每次发送查询信息包含指定查询类型、DNS域名类型及合格的FQDN,每次当域名需要解析的时候,首先对本机进行域名解析!如果查询不到话,就将这个请求发送给自己的域名解析服务器!

wps_clip_image-28407

(1)、客户端Student A想要访问www.zzu.edu.cn郑大网B,首先student A先查看本机dns缓存中是否有存放有B的信息,如果没有的话,就将不能解析的域名B发送到上一级的DNS服务器;

(2)、DNS服务器在自己的域名数据库中查询是否存在B的解析,如果还是没有的话,就像根dns服务器发送;

(3)、根dns服务器收到域名B的信息后发现B属于自己管辖下的cn DNS服务器,所以将域名B转发给下一级的cn DNS服务器;

(4)、cn DNS服务器送到B的信息后发现郑大网B是属于edu DNS服务器下的一台www服务器机器,将信息转发给根域;

(5)、根域将得到的郑大网B的详细信息转发给dns服务器,dns服务器将得到的信息发给studentA,studentA得到B的详细联系方式后与其建立连接,之后将郑大网B的相关相关信息存储在本地的缓存文件中便于下次访问时使用!

fqdn(完全合格名称)

  1:对于域名    域名倒写---》根    例如:microsoft.com.

  2:对于主机    主机名+域名(都要倒着写)       例如:www.microsoft.com.

解析过程

   例如:一台PC访问 www.abc.com.

image

1.查询自己的缓存 (ipconfig/displaydns) 

        如果有缓存并在有效期内那么就直接使用

2.若无缓存

  则请求dns3服务器,dns3服务器也先查看自己的缓存,若有就发送给PC

   若没有缓存解析www.abc.com.所以直接向根域访问,根域通过查询把com所在的dns2服务发给dns3服务器,然后dns3服务器向dns2服务器访问,dns2服务器通过dns2数据库查询,把abc所在的dns4服务器发给dns3服务器,然后dns3服务器向dns4服务器访问,dns4服务器通过dns4数据库查询www,然后dns4服务器把查询的结果直接发给dns3服务器,最后就可以访问www.abc.com.

3..递归和迭代查询

两种解析方式

递归解析客户端(解析器)可以从名称服务器中请求递归应答。这意味着解析器期望服务器提供最终答案。如果服务器是这一域名的授权者,它会检查它的数据库并做出响应。如果服务器不是授权者,它会把请求发送给其他服务器(通常是父服务器),并等待响应。如果父服务器是授权者,它就做出响应。否则它仍把查询发送给其他服务器。 当查询最终得到解析后,响应就回溯知道最终到达发出请求的客户端

迭代解析如果客户端没有请求递归查询,则映射以迭代的形式完成。如果服务器是名称的授权者,则它发送应答; 反之,它会返回一个它认为能够解析该查询的服务器的IP地址(给客户端),由客户端负责向第二台服务器重复发送请求。如果新的地址解析服务器能够解析这一问题, 那么就用IP地址响应这一请求。否则,它再向客户端返回新的地址解析服务器的IP地址。这时,客户端必须向第三台服务器重复该请求。

关于术语

1.dns服务器

  主dns服务器(只能有一个)      ( 原始记录 )

  辅助dns服务器(可以有多个)   ( 记录副本 )

  cache-only服务器(不负责管任何区域只做缓存的服务器) 

  存根服务器

2.区域

a.正向区域     名称---》ip地址

     例如: abc.com        www.abc.com  ---1.1.1.1
b.反向区域    ip地址---》名称

     例如:10.168.192.in-addr.arpa    10  PRT     www.sina.com.cn

               192.168.10.10      ——>>www.sina.com.cn

3.资源记录 RR

  a: 正向区域 (abc.com)

     SOA(授权起始记录)    提供的信息有(主dns服务器,管理员邮箱,刷新策略)

     NS记录(该区域dns服务器)

         例如:  @  IN  NS  ns.abc.com

                   ns  IN  A   1.1.1.1

      A记录   名称---》ip地址

         例如:www     2.2.2.2

     CNAME(别名记录)

        例如: pop3    IN CANME     mail

     MX记录 (该区域的电子邮件服务器)

         例如:@    IN   MX 10   mail.abc.com

 b:反向查找区域

           10.168.192.in-addr.arpa.

    SOA(授权起始记录) 提供的信息有(主dns服务器,管理员邮箱,刷新策略)

    NS记录(该区域dns服务器)

          例如: @ IN NS ns.abc.com

                    ns IN A 1.1.1.1

    PTR指针记录

      10  IN  PTR   www.sina.com.cn.

/var/named/chroot/                dns根目录

/var/named/chroot/etc/            dns服务器的配置文件

/var/named/chroot/var/named/              区域文件存放的目录

检测工具
1:named-checkzone              检测区域文件的语法
              named-checkzone   域名    区域文件
例:named-checkzone   abc.com /var/named/chroot/var/named/abc.com.db

2:named-checkconf              检测主配置文档

例如:  named-checkconf   /var/named/chroot/etc/named.conf

解析工具

1:  nslookup 

      使用方法a:   nslookup    名称 或者地址

wps_clip_image-431

      使用方法b:nslookup

         >set  q=ns      查dns服务器

         >q=any        查任意的

         >q=mx        查邮件服务器

wps_clip_image-8699

2: dig -t  类型   名称或者区域

wps_clip_image-29332

wps_clip_image-30587

3:  Host   区域  (查询的信息比较少)

wps_clip_image-2876

 

  案例一

实验拓扑图(linux主dns windows辅助dns)

image

1:需要安装的包有:

    image

image

cd /var/named/chroot/etc/

image

编辑:vim named.conf

image

再从新启动一下:service named.conf

并用日志监控一下看是否有问题

  tail –f /var/log/messages

image

2:首先做区域声明文件

vim  /var/named/chroot/etc/named.rfc1912.zones

image

image

把localhost.zone作为模板 复制到 abc.com.db

改写abc.com.db

image

检测一下:看是否出现错误。(不如日志详细可以检测出细小的错误 )

     用rndc reload命令     查看日志检测

named-checkzone abc.com /var/named/chroot/var/named/abc.com.db

named-checkconf   /var/named/chroot/etc/named.conf

3:在windows上建立辅助区域  image

image

image

image

4:测试辅助dns服务器从主DNS服务器获得的信息。

imageimage

 

image

 

 image

 

案例二

实验拓扑图(windows主dns    linux辅助dns)

image

在windows上建立主要区域

image

image

image

image

更改a.com的属性

image

image 

 

image

image

在linux上做辅助区域:

首先做区域声明

vim /var/named/chroot/etc/named.rfc1912.zones

image

 

image

打开查看一下结果:vim slaves/a.com.db

image