DNS域名系统

【本文导航】
DNS域名系统
DNS域名系统
DNS解析类型
DNS查询类型
DNS服务器类型
资源记录
   SOA记录
   NS记录
   MX记录
   A记录与泛域名
   PTR记录
   CNAME记录
   AAAA记录
子域
区域传送

 

DNS【域名系统】:

    DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP。

DNS【域名结构】:

    【域名】是由点号". "将各级域的名称(lables)隔开组成(如www.178linux.com)。各lables由“数字”“字母”“-”其中的一种或多种组成。各lable长度应该在63个字符之内, 而且总长度应该不超过25563个字符,且域名最多不能超过127层。
    一个【全域名】(FQDN),即完整的完全合格域名,是指主机名加上全路径,全路径中列出了序列中所有域成员。

DNS域名系统01.png

    常见域:
    根域:用“.”表示;
    顶级域(一级域):常见顶级域有com、edu、mil、gov、net、org、int等;
    二级域:如178linux、google等;
    三级域:如www、bbs等;
    全球范围内对互联网通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统,由CANN(互联网名称与数字地址分配机构)负责管理。

DNS【解析类型】:

    根据DNS的查询类型非为正向解析与反向解析
    通过主机名,查询得到该主机名对应的IP地址的过程叫做【正向解析】(FQDN –> IP)。
    反过来,如果是通过主机IP查询得到域名的过程叫【反向解析】(IP –> FQDN),反向解析的作用为服务器的身份验证,一般用在邮箱系统上面。
    正反向解析是两个不同的名称空间,是两棵不同的解析树,理论上不能运行在同一服务上(现在技术允许,只需配置不同查询数据库)。
  DNS一次完整的查询请求流程:
    客户端 –>hosts文件 –>本地DNS服务器缓存–> DNS 服务器递归 (recursion) –> 服务器缓存 –> 迭代(iteration) –> 根–> 顶级域名DNS–>二级域名DNS… 

DNS解析.png

DNS【查询类型】:

    【递归查询】是最常见的查询方式,域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。即上图右边部分客服机向DNS服务器查询的过程。
    【迭代查询】又称重指引,当服务器使用迭代查询时能使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,直到服务器给出的提示中包含所需要查询的主机地址为止,一般每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。即上图左边部分DNS服务器帮忙客服机查询的过程。

DNS【服务器类型】:

    【主DNS服务器】:用来管理和维护所负责解析的域内解析库的服务器,正常情况下,一个域只有一个主DNS服务器。
    【从DNS服务器】:从主服务器或从服务器“复制”(区域传输)解析,主要起到分流作用,从服务器可以有多个。
    【缓存DNS服务器】(转发器):本身不提供DNS解析,仅提供DNS信息查询和缓存操作。

【资源记录】

    区域解析库由多个资源记录组成(Resource Record, RR),主要类型有A, AAAA, PTR, SOA, NS, CNAME, MX。

DNS域名系统03.png
                  (linux.com.区域的部分资源记录文件)

    SOA: Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录;
    A:——internet Address,将FQDN映射为IP
    AAAA:—将FQDN映射为IP IPv6
    PTR:—-PoinTeR,将IP映射为FQDN
    NS:—–Name Server,专用于标明当前区域的DNS服务器
    CNAME:–Canonical Name,别名记录
    MX:—–Mail eXchanger,邮件交换器

  资源记录【语法】: name  [TTL]  IN  RR_type  value

    (1) TTL可从全局继承;
    (2) @可用于引用当前区域的名字;
    (3) 同一个名字可以通过多条记录定义多个不同的值,此时DNS服务器会以轮询方式响应;
    (4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义,此仅表示通过多个不同的名字可以找到同一个主机; 

  【SOA记录】

    name: 当前区域的名字,也可简写为@,例如“linux.com”
    value: 有多部分组成
   (1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
   (2) 当前区域管理员的邮箱地址;地址中不能使用@符号,用“.”替换例如jev.linux.com.
   (3) 主从服务区域传输相关定义以及否定的答案的统一的TTL
  例如:

DNS域名系统04.png

    linux.com  86400  IN  SOA  dns1.linux.com.  jev.linux.com. (
          2    ;serial number,序列号,十进制数字,不能超过10位,通常使用日期
          86400 ;refresh time,刷新时间,每隔多久跟主服务器同步检查一次
          3600  ;retry time,重试时间,应该小于refresh time
          604800;expire time,过期时间
          7200 ;negat answer ttl,否定答案的TTL值
          )

  【NS记录】

    name: 当前区域的名字
    value: 当前区域的某DNS服务器的名字,例如ns.magedu.com.
    注意:一个区域可以有多个NS记录;

  例如:

    linux.com.  86400  IN  NS  dns1
    linux.com.  NS  dns2

    注意:
    (1)相邻的两个资源记录的name相同时,后续的可省略;
    (2)对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录;

 【MX记录】

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

  例如:

    linux.com.  86400  IN  MX  0  mailsrv1
    linux.com.  MX  8  mailsrv2

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

  【A记录】泛域名

    name: 某主机的FQDN,例如www.magedu.com.
    value: 主机名对应主机的IP地址;

  例如:

    www.linux.com.  86400  IN  A  1.1.1.1
    bbs.linux.com.   A  2.2.2.2
    mx.linux.com.  A  3.3.3.3

    如果有多条,且域名与IP存在一定对应关系,可以通过下面方式写A记录:

    $GENERATE  1-254  HOST$  A  1.2.3.$

    即:HOST1  A  1.2.3.1、HOST2  A  1.2.3.2  . . . HOST254  A  1.2.3.254
    避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址:

    *.linux.com.  A  1.1.1.1

    即:只要用户输入的后缀是.linu.com.,不管前面是什么,都解析为1.1.1.1 

  【PTR记录】

DNS域名系统05.png

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

  例如:

    4.3.2.1.in-addr.arpa.  86400  IN   PTR   www.linux.com.

    如1.2为网络地址,可简写成:

    4.3  86400  IN   PTR  www.linux.com.

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

  【CNAME】别名记录
    name: 别名的FQDN
    value: 真正名字的FQDN
  例如:

    www.linux.com.  86400  IN   CNAME  websrv

  【AAAA记录】
    name: FQDN
    value: IPv6
  例如

    www.linux.com.  86400  IN  AAAA  fe80::20c:29ff:fe29:b0bf

 【子域】

    子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权;如:
    根域对com子域的授权

DNS域名系统06.png

    com域对linux.com子域的授权

DNS域名系统07.png

 区域传送】

  辅助DNS服务器跟主服务器从主DNS服务器或其他辅助DNS服务器请求传输数据的过程;分为完全区域传送、增量区域传送;完全区域传送(AXFR),即每次同步传送区域所有数据;增量区域传送(IXFR),即每次只传送区域中改变的部分数据。

【相关链接】:DNS域名解析系统搭建

 

 

 

 

 

 

 

 

 

原创文章,作者:Jev Tse,如若转载,请注明出处:http://www.178linux.com/64885

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-27 15:18

    条理清晰,知识点全面,很优秀的文章,标题有问题哦,DNS,nds?细心点哦

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code