码迷,mamicode.com
首页 > 其他好文 > 详细

DNS学习总结

时间:2015-10-01 19:19:09      阅读:882      评论:0      收藏:0      [点我收藏+]

标签:dns

前言

    DNS服务作为网络的一种基础架构,在网络中有举足轻重的地位。其担负着整个网络的计算机名称解析工作。没有正确的名称解析,服务器将无法识别客户端。


第一,什么是DNS,以及DNS服务器的组成

    DNS:(DomainName Service)域名服务,是一种组织成层次结构的计算机和网络服务命名系统,用于实现名称解析(Hostname<--->IP).其中通过计算机名解析成IP地址的叫做正向解析,通过IP地址解析成计算机名的叫做反向解析。DNS服务监听在主机的TCP/UDP的53号端口。

注意www.magedu.com是一个主机名,magedu.com才是一个域名。

 

一个典型的DNS服务器包括如下4个部分

    第一,DNS域名称空间:它指定用于组织名称的域的层次结构

    第二,资源记录RR(Resource Record):将DNS域名映射到特定类型的资源信息,以供在名称空间中注册或解析名称时使用。在Linux系统中,通常"名称解析库(位于/var/named/)"中的每一行称作一个资源记录。

    第三,DNS服务器:用于存储和应答资源记录的名称查询

    第四,DNS客户端(解析程序):查询从服务器来的搜索及将名称解析为查询中指定的资源记录类型


DNS服务器分为如下四种

    第一。主DNS服务器(master):数据库更新由管理员手动完成

    第二。辅助DNS服务器(slave):数据库更新从主服务器或其他辅助DNS服务器那里完成

    第三。转发DNS服务器(forward):转发服务器接受查询请求,把查询发送到其他DNS服务器,查询结果保存到缓存中。如没有指定转发服务器,DNS服务器会使用根区域记录,向根发送查询

    第四。缓存DNS服务器:不包含域名数据库文件,它每次将从域名服务器得到的查询结果返回给客户端,并在本地留以缓存,以供下次查询使用


第二,DNS名称空间

    DNS域名空间为层出化结构,此层次化结构有利于计算机将复杂问题简单化。整个DNS域名空间呈倒立的树状结构分布,被称为“域树”。

    根域:最上面是根域名 dot,全球13台根域服务器。

     顶级域:由两三个字母组成的名称,用于知识国家(地区)或使用名称的单位的类型。

        组织域:.net  .com .org  .mil  .edu  .gov .cc。

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

    二级域:在Internet上使用而注册到个人或单位的长度可变的名称。这些名称始终基于相应的顶级域,这取决于单位的类型或使用名称所在的地理位置。例如:sina.com.就是一个2级域。

    子域:单位可创建的其他名称,这些名称从已注册的二级域名中派生。例如:sport.sina.com.

    重点理解子域授权

[名词解释]

    FQDN:Fully Qualified Domain Name,完全限定域名,就是从根开始,一层一层的往下找,最终能唯一确定主机的完全路径,FQDN能保证网络中的主机不会重名。

    主机名:不包含上层查找路径,www.magedu.com是一个主机名


第三,DNS的工作原理

<1> DNS服务器的名称查询原理

    查询方法有两种:递归查询,迭代查询。

    递归查询:客户端要求直接得到结果,要么成功,要么失败(本地客户端和DNS服务直接交互,被请求的DNS服务器必须给出最终答案。)

    迭代查询:服务器以相关参考性应答返回本地DNS(DNS服务与DNS服务交互,得到的是参考答案)

    注意:本地客户端向本地域名服务器查询请求时,查询类型为:一次递归,多次迭代。

    一般情况下,DNS服务器之间的查询方式都是迭代查询。如果要查询www.lifehacker.com(lifehacker.com域不是本地DNS负责的区域),那么本地DNS就需要向外迭代查询(迭代查询从根域开始,因此,本地DNS就必须知道根域的IP地址)。根提示的功能可以让本地DNS服务器查询根域DNS服务器

    在Linux系统中,安装好了bind服务,会自动创建全球13台根服务器的解析库文件,保存在/var/named/named.ca中;~]#cat /var/named/named.ca


<2>反向查询原理: 

    客户端一般执行正向查询,用存储在地址(A)资源记录中的另一台计算机的DNS名称来搜索IP地址等信息。同时,DNS也提供反向查询过程,允许客户端在名称查询期间使用已知的IP地址查询计算机名。

    DNS在最初设计上并不支持反向查询。因为支持反向查询过程可能存在一个问题,即DNS名称空间如何组织和索引名称,IP地址如何分配,这些方面都有差别。为了解决这个问题,在DNS标准中采用了一种叫做“线索追踪的机制”,即定义了特殊域“in-addr.arpa”,并保留在Internet DNS名称空间中。为了创建名称空间,in-addr.arpa域中的子域是按照带句点十进制编号的IP地址的相反顺序构造,且采用与正向解析完全不同的解析库。因此,创建in-addr.arpa域树的时候,IP地址八位字节的书讯必须倒置,并且定义一种新的资源记录类型“PTR”。


<3>区域传送原理



第四,DNS的名称解析库及资源记录:

    名称解析:以主机名为搜索码,在DNS解析数据库中查找对应的IP地址的过程。在本地通过hosts文件来解析; Linux中:/etc/hosts ;windows系统中:%windir%\system32\drivers\etc\hosts

    DNS解析类型:正向解析:FQDN-->IP;反向解析: IP --> FQDN

    

    DNS名称解析库:通常为一个保存在/var/named/目录下的文本文件,每一行称作一个资源记录。 每一个名称解析库称作“区域(zone)”

注意: 区域zone是一个物理概念,一个区域就是一个DNS解析库。域是一个逻辑概念,一个域对应一个DNS域名称空间。正向解析与反向解析采用的是不同的解析库,一个配置了正向解析库和反向解析库的DNS意味着其包含了两个区域(正向zone和反向zone)

    

资源记录

    分类:FQDN-->IPv4: A (Address);

           FQDN-->IPv6: AAAA

           Domain-->DNS Server:NS (Name Server)

           Domain-->Master DNS: SOA (Start OfAuthority), 起始授权记录(用于明确说明一个域内的主DNS服务器是哪个,必须是名称解析库中的第一条记录)

           FQDN-->FQDN: CNAME (Canonical Name)别名 

           IP-->FQDN: PTR (pointer) 

           Domain-->Mail Server: MX (Mail eXchanger), 有优先级:0-99,数字越小级别越高

注意:1.SOA记录定义了谁是一个域内的主DNS。主辅DNS服务器之间如何同步(即如何进行区域传送)的。

        2.正向解析不能有PTR记录; 反向解析不能有A记录,也不需要MX记录


资源记录的格式:

     name   [ttl]    class  type  value

说明:name字段表示该记录所描述的实体(通常是主机或者一个域)。如果几个连续的记录涉及同一个实体的话,那么第一条之后可以省略,利用@来代替这个name字段。

    TTL(time to live (存活时间)),默认字段以秒为单位指定时间长度,在指定的时间内,数据项可被缓存并且仍被认为是有效的。TTL必须位于该区域数据文件的第一行,默认可省。

    class指定网络类型:默认类型为IN,IN(指Internet)、HS(Hesiod:本地使用的目录服务)、CH(供域名服务器内部用来标示自己)

    type:资源记录类型

    value资源记录的值


DNS学习总结

标签:dns

原文地址:http://zhoushuyu.blog.51cto.com/7125424/1699771

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!