DNS服务基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS服务基础相关的知识,希望对你有一定的参考价值。

DNS服务基础(一)

一、DNS简介

    DNS(Domain Name System,域名系统),它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS使用TCP和UDP(无连接协议)口53,主要使用UDP,TCP协议使用服务器之间备份。对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。


二、DNS域名结构

    1、DNS数据库中的名称形成一个分层树状结构称为域命名空间。域名空间常见组织方式:根域-->顶级域-->第二层域-->子域-->主机。域名只是逻辑概念,并不代表计算机所在的物理地点。顶级域名TLD(Top Level Domain)已有265个,分为三大类:

    1)、国家顶级域名nTLD:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国等;

    2)、通用顶级域名gTLD:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门);

    3)、基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。

结构示意图如下:

    技术分享技术分享

    2、全球共有十三组根域名服务器,其中10个在美国,另外3个分别在日本、荷兰和瑞典。

    名称                     管理单位及设置地点        IP地址

A (INTERNIC.NET)             (美国,弗吉尼亚州)          198.41.0.4

B (美国信息科学研究所)       (美国,加利弗尼亚州)        128.9.0.107

C (PSINet公司)               (美国,弗吉尼亚州)          192.33.4.12

D (马里兰大学)               (美国马里兰州)              128.8.10.90

E (美国航空航天管理局)       (美国加利弗尼亚州)          192.203.230.10

F (因特网软件联盟)           (美国加利弗尼亚州)          192.5.5.241

G (美国国防部网络信息中心)   (美国弗吉尼亚州)            192.112.36.4

H (美国陆军研究所)           (美国马里兰州)              128.63.2.53

I (Autonomica公司)           (瑞典,斯德哥尔摩)          192.36.148.17

J (VeriSign公司)             (美国,弗吉尼亚州)          192.58.128.30

K (RIPE NCC)                 (英国,伦敦)                193.0.14.129

L (IANA)                     (美国,弗吉尼亚州)          198.32.64.12

M (WIDE Project)             (日本,东京)                202.12.27.33

3、DNS服务器以下几种类型

   主DNS服务器:可创建区域的DNS服务器,区域数据也称为正本区域数据。在一个DNS服务网络中,可以建立多个主DNS服务器,这样可以提供DNS服务的容错性。

       辅助DNS服务器:不创建区域,它的区域数据是从主DNS服务器复制来的,因此,区域数据只能读不能修改,也称为副本区域数据。当启动辅助DNS服务器时,辅助DNS服务器会和建立联系的主DNS服务器联系,并从主DNS服务器中复制数据。辅助DNS服务器在工作时,它会定期地更新副本区域数据,以尽可能地保证副本和正本区域数据的一致性。辅助DNS服务器除了可以从主DNS服务器复制数据外,还可以从其他辅助DNS服务器复制区域数据。在一个区域中设置多个辅助DNS服务器可以提供容错,分担主DNS服务器的负担,同时可以加快DNS解析的速度。

       Cache-Only服务器(缓存服务器):Cache-Only服务器上不存在任何区域数据,它只帮助DNS客户机向其他DNS服务器进行查询,然后将查询到的数据存储在一份高速缓存Cache中,响应客户机的查询请求。Cache-Only 服务器只负责查询数据,当客户机查询数据时,如果Cache中存在数据,则Cache可以将结果快速反馈给客户机。

       DNS转发服务器:DNS转发服务器是一种特殊类型的DNS服务器。在一个DNS网络中,如果客户机向指定的DNS服务器解析的域名不成功,DNS服务器就可以将客户机的解析请求发送给一台DNS转发服务器,顾名思义,DNS转发服务器就是将域名请求转发给其他DNS服务器。

    4、DNS解析类型

       术语:FQDN(full qualified domain name)完整主机名。由主机名与域名组成。如:www.163.com,www是主机名,163.com是域名

       正向解析:FQDN解析为IP。

       反向解析:解析IP为FQDN。

       转发:将特定网络内容或者所有内容转发给特定DNS服务器解析。

       子域授权:授权一个子域。 

  

三、DNS查询类型以及工作原理

    1、DNS查询类型

    递归查询:DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

    迭代查询:DNS服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台DNS服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。

    以上2种查询类型工作过程如下图:

技术分享    技术分享

    2、根据上图,简述正向解析工作流程(也有反向解析)

    1)、客户端发起一个DNS查询请求,如此浏览器地址栏输入www.163.com敲回车之后,浏览器并真正发起DNS请求,而是先查询本机的DNS缓存中是否有该域名对应的地址,有的话直接访问该地址,没有的话查询本机的hosts文件,如果本机的hosts文件中有该域名对应的地址,那么此刻客户端是不会发起dns请求的,但是通常情况下本地的host文件是空的,就继续第二部操作;

    2)、经历是前面两次本机内部的查询之后发现并没有该域名对应的IP地址,于是客户端正式向本地的DNS服务器发起DNS查询请求;

    3)、本地的DNS服务器收到这个查询请求后,会查询自己的缓存中以及自己的资源记录中是否有该域名对应的IP地址,如果在自己的缓存中以及本机的资源记录(下面阐述)中依然找不到该对应的IP地址,此时本地DNS服务器会把请求发送给根服务器(13组服务器)中的一台;

    4)、其中一台根服务器收到这个请求后,会发送一个回复说,.com的域名解析服务我已经委派给.com这台域名服务器了,给你这个.com这台域服务器的地址,你去哪里查询吧,此时本地DNS服务器就进入了迭代查询;

    5)、本地DNS服务器收到这个参考答案后,就会将它收到来自客户端的DNS请求再次发往.com域名服务器;

    6)、负责.com域名解析服务器收到这个请求后,会回复说163.com的主区域服务器应该会知道答案,给你163.com主区域服务器的地址,你去它那里查询吧;

    7)、本地DNS服务器收到这个参考答案后,就会将它收到来自客户端的DNS请求再次发往163.com主区域服务器,当163.com这个主区域服务器收到这个DNS请求后,查询自己的缓存以及自己的资源记录,终于找到本区域内有一个www的主机。于是将www.163.com对应的ip地址回复给本地DNS服务器;

    8)、此时本地DNS服务器收到这个回复后,会将这条记录回复给客户端,同时将该记录写入到自己的缓存中,以便备查。


四、区域解析库与资源记录

    1、区域解析库由多个资源记录(Resource Record,简称RR)组成。

    2、资源记录类型以及应用

1)、资源记录常见类型:

   SOA(Start Of Authority,起始授权机构),一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录。

   A(internet Address,主机),FQDN解析为IPv4。

   AAAA(主机),FQDN解析为IPv6。

       NS(Name Server,名称服务器),标明当前区域的DNS服务器。

       MX(Mail eXchanger,邮件交换器),邮件 Exchange Server DNS 名称的首选项值。

       CNAME(Canonical Name,别名记录),规范名称

       PTR(pointer,DNS反向),是一个指针记录,用于将一个IP地址映射到对应的主机名,也可以看成是A记录的反向,通过IP访问域名,原来是通过域名访问IP。

2)、资源记录定义的格式:

   语法:name(名称)  [TTL](时间)  IN(互联网)  rr_type(类型)  value

         注意以下几点:

 (1) TTL可从全局继承;

 (2) @可用于引用当前区域的名字;

 (3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应;

 (4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机而已;

    举例:

SOA:

name: 当前区域的名字,例如“baidu.com.”;

     value: 有多部分组成(主名称服务器 DNS 名称、 序列号、刷新间隔、重试间隔、过期时间、最小 TTL)

    (1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;

    (2) 录前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如ex.baidu.com;

(3) (主从服务协调属性的定义以及否定的答案的统一的TTL)

例如:

baidu.com. 86400 IN  SOA  ns.baidu.com. nsadmin.baidu.com. (

  2016082601  ;序列号

  1H        ;刷新时间

  20M  ;重试时间

  1W  ;过期时间

  1D  ;否定答案的TTL值

)


A:

name: 某主机的FQDN,例如www.baidu.com.

value: 主机名对应主机的IP地址;

例如:

www.baidu.com. IN   3.3.3.3

www.baidu.com. IN   A   3.3.3.3

mx1.baidu.com.      IN     A   3.3.3.3

mx2.baidu.com.   IN    A   3.3.3.3

              注意:避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址;

*.baidu.com.  IN   A   3.3.3.4

baidu.com. IN    A   3.3.3.4

NS: 

name: 当前区域的名字

value: 当前区域的某DNS服务器的名字,例如ns.baidu.com.;

例如:

baidu.com. IN  NS   ns1.baidu.com.

baidu.com. IN  NS   ns2.baidu.com.

     注意:

     (1) 相邻的两个资源记录的name相同时,后续的可省略;

     (2) 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录;

             (3)一个区域可以有多个NS记录


MX: 

name: 当前区域的名字

value: 当前区域的某邮件服务器(smtp服务器)的主机名;一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高;

例如:

baidu.com. IN   MX  10  mx1.baidu.com.

IN  MX  20  mx2.baidu.com.

注意:对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录;


CNAME:

name: 别名的FQDN

value: 正工名字的FQDN;

例如:

     web.baidu.com.  IN   CNAME   www.baidu.com.


PTR:

name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addra.arpa.

value: FQDN

例如:

4.3.2.1.in-addr.arpa.  IN  PTR  www.baidu.com

简写成:4   IN  PTR  www.baidu.com.

注意:网络地址及后缀可省略;主机地址依然需要反着写;


本文出自 “一万小时定律” 博客,请务必保留此出处http://daisywei.blog.51cto.com/7837970/1842906

以上是关于DNS服务基础的主要内容,如果未能解决你的问题,请参考以下文章

DNS 服务基础

DNS服务基础之Bind

Linux的DNS服务基础概念

DNS服务基础

1DNS基础知识

linux基础第7节 ----配置与管理DNS服务器