DNS服务-详解

标签: dns 服务 | 发表时间:2014-05-22 12:36 | 作者:我是一朵棉花云
出处:http://www.iteye.com
DNS(Domain Name System)域名系统,在TCP/IP网络中有非常重要的地位,能够提供域名与IP地址的解析服务。
DNS域名解析工作原理
<1> 客户机提交域名解析请求,并将该请求发送给本地的域名服务器。
<2> 当本地的域名服务器收到请求后,就先查询本地的缓存。如果有查询的DNS信息记录,则直接返回查询的结果。如果没有该记录,本地域名服务器就把请求发给根域名服务器。
<3> 根域名服务器再返回给本地域名服务器一个所查询域的顶级域名服务器的地址。
<4> 本地服务器再向返回的域名服务器发送请求。
<5> 接收到该查询请求的域名服务器查询其缓存和记录,如果有相关信息则返回客户机查询结果,否则通知客户机下级的域名服务器的地址。

<6> 本地域名服务器将查询请求发送给返回的DNS服务器。
<7> 域名服务器返回本地服务器查询结果(如果该域名服务器不包含查询的DNS信息,查询过程将重复<6>、<7>步骤,直到返回解析信息或解析失败的回应)。
<8> 本地域名服务器将返回的结果保存到缓存,并且将结果返回给客户机。
正向解析与反向解析
1)正向解析
正向解析是指域名到IP地址的解析过程。
2)反向解析
反向解析是从IP地址到域名的解析过程。反向解析的作用为服务器的身份验证。
DNS查询类型
1.递归查询: 简单的理解就是以最终结果查询,就是返回最终的结果给客户机,而客户机在此阶段是处于等待的状态!(就好比,你在家里地位最高,你都是衣来伸手饭来张口的,最什么事情就只要一句话不用自己亲自动手)


2.迭代查询:简单的理解就是以最佳的结果查询,意思就是如果DNS服务器能解析就直接以最终结果返回给客户机,如果无法解析则就返回上一级DNS服务器的IP给客户机,由客户机完成查询工作直到得到最终结果!(举个例子就是什么事情你去问别人,别人只是告诉你怎么做,你知道后要自己亲自去做)


资源记录
为了将名字解析为IP地址,服务器查询它们的区(又叫DNS数据库文件或简单数据库文件)。区中包含组成相关DNS域资源信息的资源记录(RR)。例如,某些资源记录把友好名字映射成IP地址,另一些则把IP地址映射到友好名字。
某些资源记录不仅包括DNS域中服务器的信息,还可以用于定义域,即指定每台服务器授权了哪些域,这些资源记录就是SOA和NS资源记录。
1)SOA资源记录
每个区在区的开始处都包含了一个起始授权记录(Start of Authority Record),简称SOA记录。SOA定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在唯一的SOA记录。区域以服务器授权机构的概念为基础。当DNS服务器配置成加载区域时,其使用SOA和NS两种资源记录来确定区域的授权属性。
SOA和NS资源记录在区域配置中具有特殊作用,它们是任何区域都需要的记录并且一般是文件中列出的第一个资源记录。
起始授权机构SOA资源记录总是处于任何标准区域中的第一位。它表示最初创建它的DNS服务器或现在是该区域的主服务器的DNS服务器。它还用于存储会影响区域更新或过期的其他属性,比如版本信息和计时。这些属性会影响在该区域的域名服务器之间进行同步数据的频繁程度。
SOA资源记录语法格式:
区域名(当前) 记录类型 SOA 主域名服务器(FQDN) 管理员邮件地址 (序列号 刷新间隔 重试间隔 过期间隔 TTL)
SOA资源记录字段:
主域名服务器:区域的主DNS服务器的FQDN
管理员:管理区域的负责人的电子邮件。在该电子邮件名称中使用英文句号“.”代替at符号“@”。
序列号:该区域文件的修订版本号。每次区域中的资源记录改变时,这个数字便会增加,每次区域改变时增加这个值非常重要,它使部分区域改动或完全修改的区域都可以在后续传输中复制到其他辅助DNS服务器上。
刷新间隔:以秒计算的时间,辅助DNS服务器请求与源服务器同步的等待时间。当刷新间隔到期时,辅助DNS服务器请求源服务器的SOA记录副本,然后辅助DNS服务器将源服务器的SOA记录的序列号与其本地SOA记录的序列号相比较,如果二者不同,则辅助DNS服务器从主DNS服务器请求区域传输。这个域的默认时间是900秒(15分钟)。
重试间隔:以秒计算时间,辅助DNS服务器在请求区域传输失败后,等待多长时间再次请求区域传输时间。通常,这个时间短于刷新间隔。默认值为600秒(10分钟)。
过期间隔:以秒计算时间,当这个时间到期时,如果辅助DNS服务器还无法与源服务器进行区域传输,则辅助DNS服务器会把它的本地数据当作不可靠数据。默认值为86400秒(24小时)。
最小(默认)TTL:区域的默认生存时间(TTL)和缓存否定应答名称查询的最大间隔。默认值为3600秒(1小时)
2)NS资源记录
名称服务器(NS)资源记录表示该区的授权服务器,它们表示SOA资源记录中指定的该区的主和辅助服务器,也表示了任何授权区的服务器。每个区在区根处至少包含一个NS记录。
用于指定一个区域的权威DNS服务器,通过在NS资源记录中列出服务器的名字,其他主机就认为它是该区域的权威服务器。这意味着在NS资源记录中指定的任何服务器都被其他服务器当作权威的来源并且能应答区域内所含名称的查询。
NS资源记录语法格式:
区域名 IN NS 完整主机名(FQDN)
3)A资源记录
地址(A)资源记录把FQDN映射到IP地址,因而解析器能查询FQDN对应的IP地址。
A资源记录语法格式:
完整主机名(FQDN) IN A IP地址
4)PTR资源记录
相对于A资源记录,该记录与A记录相反,用于查询IP地址与主机名的对应关系。
PTR资源记录语法格式:
IP地址      IN      PTR      主机名(FQDN)
5)CNAME资源记录
规范名字(CNAME)资源记录创建特定FQDN的别名。用户可以使用CNAME记录来隐藏用户网络的实现细节,使连接的客户机无法知道。别名(CNAME)资源记录用于为某个主机指定一个别名。例如管理员告知公司的首页为www.abc.com,而实际在访问时访问的是www1.abc.com主机。该资源记录经常用于在同一区域的A资源记录中的主机需要重命名时或者为多台主机(例如一组WWW服务器)提供相同的别名。
CNAME资源记录语法格式:
别名 IN CNAME 主机名
6)MX资源记录
邮件交换(MX)资源记录为DNS域名指定邮件交换服务器。邮件交换服务器是为DNS域名处理或转发邮件的主机。处理邮件指把邮件投递到目的地或转交另一不同类型的邮件传送者。转发邮件指把邮件发送到最终目的服务器,用简单邮件传输协议SMTP把邮件发送给离最终目的地最近的邮件交换服务器,或使邮件经过一定时间的排队。
MX资源记录语法格式:
区域名      IN      MX      优先级(数字)      邮件服务器名称(FQDN)
type字段指定区域的类型
type字段指定区域的类型,对于区域的管理至关重要,一共分为六种:
Master:主DNS服务器:拥有区域数据文件,并对此区域提供管理数据
Slave:辅助DNS服务器:拥有主DNS服务器的区域数据文件的副本,辅助DNS服务器会从主DNS服务器同步所有区域数据。
Stub:stub区域和slave类似,但其只复制主DNS服务器上的NS记录而不像辅助DNS服务器会复制所有区域数据。

Forward:一个forward zone是每个域的配置转发的主要部分。一个zone语句中的type forward可以包括一个forward和/或forwarders子句,它会在区域名称给定的域中查询。如果没有forwarders语句或者forwarders是空表,那么这个域就不会有转发,消除了options语句中有关转发的配置。
Hint:根域名服务器的初始化组指定使用线索区域hint zone,当服务器启动时,它使用根线索来查找根域名服务器,并找到最近的根域名服务器列表。如果没有指定class IN的线索区域,服务器使用编译时默认的根服务器线索。不是IN的类别没有内置的默认线索服务器。
Delegation-only:用于强制区域的delegation .ly状态。

应用案例
一 技术部所在域为“tech.org”,部门内有三台主机,主机名分别是client1.tech.org,client2.tech.org,client3.tech.org。对应ip为192.168.10.1,192.168.10.2,192.168.10.3 现要求DNS服务器(192.168.10.254) dns.tech.org可以解析3台主机名和IP地址的对应关系。
确保yum能够使用,然后安装所需要的软件包和主从域名服务器的参考配置文件
yum install bind caching-nameserver
cp /etc/named.rfc1912.zones /etc/named.conf
vim /etc/named.conf
options {
        directory "/var/named" ;
};
zone "." IN {              //设置根区域
        type hint ;           //设置区域类型(hint表示根域,master表示主域,
//slave表示从域       
        file "named.ca" ;    //设置对应的根域地址数据库文件
};
zone "tech.org" IN  {    //设置正向DNS区域名称
        type master ;          
        file "tech.org.zone" ; //设置正向区域地址数据库文件
     allow-transfer { 192.168.10.253 ; } ; //设置允许下载区域数据库的从域名服务器  地址,为下面做从域名服务器做准备
};
zone "10.168.192.in-addr.arpa" IN  {    //设置反向DNS区域
        type master ;
        file "192.168.10.zone" ;           //设置对应的反向区域地址数据库文件
     allow-transfer { 192.168.10.253; }
};

vim /var/named/tech.org.zone
$TTL 86400
@       IN      SOA     dns.tech.org.    root (
                2009070900
                1H
                15M
                1W
                1D
                )
@        IN      NS     dns.tech.org.
dns              IN      A      192.168.10.254
client1          IN      A      192.168.10.1
client2          IN      A      192.168.10.2
client3          IN      A      192.168.10.3

vim /var/named/192.168.10.zone
@ IN SOA  dns.tech.org.  root.tech.org. (
                2009070900
                1H
                15M
                1W
                1D
)
@   IN NS  dns.tech.org.
254 IN PTR dns.tech.org.
1 IN PTR client1.tech.org.
2 IN PTR client2.tech.org.
3 IN PTR client3.tech.org.

配置完成后重启服务,使用nslookup client1.tech.org 测试是否能够正向解析
                         nslookup 192.168.10.1  测试是否能够反向解析
二 构建从域名服务器
  从域名服务器作为主服务器的冗余备份,可以与主域名服务器一起,同时提供本域内主机名与ip地址的解析,从域名服务器的地址数据库文件需要从主域名服务器中定期更新。
从域名服务器的ip为192.168.10.253 主机名为dns2.tech.org
  客户端将DNS指向192.168.10.254 192.168.10.253 当主域名服务器中断服务时,由从域名服务器继续处理客户端的DNS请求
配置过程:
vim /etc/named.conf
options {
        directory "/var/named" ;
};
zone "tech.org" IN  {    //设置正向DNS区域名称
        type slave;                       //使用slave辅助的区域类型
masters { 192.168.10.254; };     //指向主服务器的ip     
        file "slaves/tech.org.zone" ;    //下载的地址数据库文件保存到slaves/子目录中,从服务器上的区域文件名可以和服务器上的该区域文件名不同。
};
zone "10.168.192.in-addr.arpa" IN  {  
        type slave;
master { 192.168.10.254; };
        file "slaves/192.168.10.zone" ;        
};

测试,让客户端的DNS指向从域名服务器,可以解析主域名服务器的记录

三 授权子域或称子域委派
   当DNS区域层次较多时,域名数量巨大时,就可以使用子域授权,将某一个子域的各域名解析工作交给另外一台服务器来完成。
配置过程:
主域名服务器上的配置文件/etc/named.conf保持不变
vim /var/named/tech.org.zone    //解析库文件增加子域记录
IN NS dns2.zyp.com.  //子域域名服务器记录
bj IN A 192.168.0.23     //子域名主机记录
配置子域的主配置文件
vim /etc/named.conf
option { directory "/var/named"; };
zone “bj.tech.org" IN
type master;
file bj.tech.org.zone";}
zone "tech.org" IN
type forward;
fordwarders { 192.168.0.254; }; //转发主域名服务器的请求
vim /var/named/bj.tech.org.zone
@ IN NS ns2.zyp.com.
dns2 IN A 192.168.10.252
www IN A 192.168.0.252

配置完成后可以解析www.bj.tech.org也可以解析dns.tech.org
server named configtest 测试dns文件

四、构建分离解析的域名服务器
   分离解析的域名服务器实际上还是主域名服务器,这里所说的分离解析主要针对不同的客户端提供不同的解析记录,如当dns同时为internet和内网提供服务时,可能需要内网用户访问公司的web服务和mail服务直接发往位于内网的web和mail服务器上,减轻服务器地址转换的负担
  域名服务器架设在网关服务器上,服务器有二块网卡一个地址为公网地址173.0.0.1 一个为私网地址192.168.10.254
   负责域名为tech.org,当公网用户访问时直接解析为173.0.0.1 当内网用户访问时直接解析为web服务器192.168.0.5地址和mail服务器192.168.0.6的地址
配置过程:
vim /etc/named.conf
options { directory "/var/named";};
view "LAN" {
    match-clients { 192.168.10.0/24; };
zone "tech.org" IN {
    type master;
    file "tech.org.zone.lan";};
    }
view "WAN" {
    match-clients { any; };
    zone "tech.org" IN {
    type master;
    file "tech.org.wan";};
};
vim /var/named/tech.org.lan
$TTL 36400
@ IN SOA tech.org. root.tech.org (
    2011012801
    1H
    10M
    7D
    1D)
    IN NS dns.tech.org.
    IN MX 10 mail.tech.org.
ns  IN A 192.168.10.254
www IN A 192.168.10.5
mail IN A 192.168.10.6

vim /var/named/tech.org.wan
$TTL 36400
@ IN SOA tech.org root.tech.org.(
    2011012801
    1H
    10M
    7D
    1D)
    IN NS dns.tech.org.
    IN MX 10 mail.tech.org.
ns  IN A 173.0.0.1
www IN A 173.0.0.1
mail IN A 173.0.0.1

配置完成后重启服务,当公网公网用户访问web和mai服务器时,解析为173.0.0.1
当内网用户访问web或者mail时解析为实际的服务器地址


http://fighter.blog.51cto.com/1318618/500957


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [dns 服务] 推荐:

DNS服务-详解

- - 操作系统 - ITeye博客
DNS(Domain Name System)域名系统,在TCP/IP网络中有非常重要的地位,能够提供域名与IP地址的解析服务. <1> 客户机提交域名解析请求,并将该请求发送给本地的域名服务器. <2> 当本地的域名服务器收到请求后,就先查询本地的缓存. 如果有查询的DNS信息记录,则直接返回查询的结果.

公共 DNS 服务器 IP 地址 及各省DNS服务器

- - 企业架构 - ITeye博客
公共 DNS 服务器 IP 地址. 名称 DNS 服务器 IP 地址. 全国各地电信 DNS 服务器 IP 地址. 名称 DNS 服务器 IP 地址. 全国各地联通 DNS 服务器 IP 地址. 名称 DNS 服务器 IP 地址. Apple TV DNS 服务器 IP 地址. 名称 DNS 服务器 IP 地址.

公共DNS服务器更换工具Public DNS Server Tool

- - 软矿
不知道大家有没有偶尔会遇到过QQ能上但网络却死活上不去或者打开速度慢得非常不正常的情况,出现这种情况的其中一个可能因素就是你所用的服务商DNS出现了障碍. 这种情况下,你可以尝试通过更换可用的DNS服务器来碰下运气. 但手动更改DNS似乎有点麻烦,且一时半刻你也找不到可用的DNS服务器,此时 Public DNS Server Tool将会为你解决这个麻烦.

Google DNS每天请求700亿次,成最大DNS服务商

- - 脚本爱好者
  为了提高整体网页打开速度,Google 在 2009 年 12 月份推出自己的 DNS 服务,今天 Google 对外 宣布他们已经是世界上最大的 DNS 服务商,每天处理 700 亿次请求,这个数字还在增加.   DNS 就像是互联网的电话本一样,如果你每天要查找无数的电话号码,你可能希望这个电话本可以让你既快有安全的查询,并且它还不要出错.

电信屏蔽Godaddy部分DNS服务

- Freeman - 月光博客
  从7月16日开始,国内部分地区用户(主要是西安电信和部分地区联通用户)向我反映,无法访问我的博客,经过我的测试排查发现,原因是部分地区的电信运营商屏蔽了我博客DNS解析服务商Godaddy的DNS服务,西安电信的DNS服务器218.30.19.40已将Godaddy的某些DNS屏蔽,使导致那些使用Godaddy DNS的网站都无法从西安访问,包括我的博客在内.

国外DNS服务器推荐

- Jason - Timothy&#39;s Space
由于一些众所周知的原因,你懂的. 如果你是用的国内的DNS,那你有时候会比较杯具,这些DNS服务器有时候会故意“犯错”,把你想访问的域名,解析到一个不存在或者无法访问的IP地址去. 所以,网络大虾和老鸟们,一般都不用国内DNS,而是用诚实而又稳定的国外DNS服务器. 记得我09年写过一篇类似的文章(见这里),其中介绍了Google DNS和Open DNS,两个都还挺不错.

用 Acrylic 自建DNS缓存服务器

- CHris - Page to Page
Acrylic是win下小巧的DNS缓存服务器,使用它可以加快本机的域名解析 ,提高你上网的速度. 今发布一方案,照猫画虎做之,今后可一劳永逸也. 各种hosts修改器及修改脚本,可扔之. 1.下载Acrylic(目前版本0.9.18)http://nchc.dl.sourceforge.net/project/acrylic/Acrylic/0.9.18/Acrylic.exe.

常用公共DNS服务器地址

- - 月光博客
  DNS,全称Domain Name System,即域名解析系统,帮助用户在互联网上寻找路径,它在互联网的作用是把域名转换成为网络可以识别的IP地址. 目前国内电信运营商通过使用DNS劫持和DNS污染的方法,干扰用户正常上网,使得用户无法访问众多国外常用服务,因此今天我介绍一些国内外的DNS服务器地址,供大家选择使用.

dnsmasq搭建简易DNS服务器

- - zzm
今天我们来介绍一个比较简单的DNS服务器dnsmasq. 这款软件,已经被我成功使用到公司的所有虚拟机中,目前公司有虚拟机80台左右,而且所在的服务器运行正常. 现在看来dnsnasq还是能支持这么多的机器的,服务器的性能还是可以承担的. dnsmasq是一款小巧且方便地用于配置DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能.

对比公共 DNS 服务的性能

- - 最新更新 – Solidot
Google 的 8.8.8.8,CloudFlare 的 1.1.1.1,Quad9 的 9.9.9.9,OpenDNS 的 208.67.222.222...越来越多的企业和机构提供了免费的公共 DNS 解析服务,但它们的性能究竟谁更胜一筹,解析速度究竟有多快. 有研究者利用了全球 18 个位置(不包括中国) 测试了这些 DNS 服务的性能.