DNS 服务概述
DNS (Domain Name System) 域名系统,在TCP/IP 网络中有非常重要的地位,能够提供 域名与IP地址的解析服务。
DNS 是一个分布式数据库,命名系统采用层次的逻辑结构,如同一颗倒置的树,这个逻辑的树形结构称为域名空间,由于DNS划分了域名空间,所以各机构可以使用自己的域名空间创建的DNS信息。
注: DNS 域名空间中,树的最大深度不得超过 127 层,树中每个节点最长可以存储63个字符。
域 和 域 名
DNS 树的每个节点代表一个域,通过这些节点,对整个域名空间进行划分,成为一个层次结构,域名空间的每个域的名字,通过域名表示。
域名:通常由一个完整合格域名(FQDN)标识。FQDN 能准确表示出其相对于 DNS 域树根的位置,也就是节点到DNS 树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用 “.” 分隔,对于DNS域 Goole来说,其完全正式域名 (FQDN)为 goole.com。
例如:goole为com域的子域,其表示方法为goole.com,而www为goole域中的子域,可以使用www.goole.com表示。
注意:
- 通常,FQDN有严格的命名限制,长度不能超过256字节,只允许使用字符 a-z,0-9,A-Z和减号 (-)。点号(.)只允许在域名标志之间(例如 “goole.com”)或者 FQDN 的结尾使用域名。
- 域名不区分大小写
- 由最顶层到下层,可以分成:根域、顶级域、二级域、子域
Internet 域名空间的最顶层是根域(root),其记录着Internet 的重要DNS信息,由Internet域名注册授权机构管理,该机构把域名空间各部分的管理责任分配给连接到 Internet 的各个组织。
"." 全球有13个根(root)服务器
DNS 根域下面是顶级域,也由Internet 域名注册授权机构管理,共有3 种类型的顶级域。
组织域:采用3 个字符的代号,表示DNS域中所包含的组织的主要功能或活动,比如
- com 为商业机构组织
- edu 为教育机构组织
- gov 为政府机构组织
- mil 为军事机构组织
- net 为网络机构组织
- org 为非营利机构组织
- int 为国际机构组织
地址域:采用两个字符的国家或地区代号, 如
- cn 为中国
- kr 为韩国
- us 为美国
反向域:这是特殊域,名字为 in-addr.arpa,用于将IP 地址映射到名字(反向查询)
对于顶级域的下级域, Internet 域名注册授权机构授权给 Internet 的各种组织,当一个组织获得了对域名空间某一部分的授权后,该组织就负责命名所分配的域及其子域,包括域中的计算机和其他设备,并管理分配的域中主机名和IP地址的映射信息。
区 (Zone)
区 是 DNS 名称空间的一部分,包含了一组存储在DNS 服务器上的资源记录。
使用区的概念,DNS 服务器回答关于自己区中主机的查询,每个区都有自己的授权服务器。
主域名服务器与辅助域名服务器
当 区的辅助服务器启动时,它与该区的主控服务器进行连接并启动一次区传输,区 辅助服务器定期与区主控服务器通信,查看区数据是否改变,如果改变了,它就启动一次数据更新传输。
每个区必须有主服务器,另外每个区至少要有一台辅助服务器,否则如果该区的主服务器崩溃了,就无法解析该区的名称。
辅助服务器的优点:
1)容错能力
配置辅助服务器后,在该区主服务器崩溃的情况下,客户机仍能解析该区的名称,一般把区的主服务器和区的辅助服务器安装在不同的子网上,这样如果到一个子网的连接中断,DNS客户机还能直接查询另一个子网上的名称服务器。
2)减少广域链路的通信量
如果某个区在远程有大量的客户机,用户就可以在远程添加该区的辅助服务器,并把远程的客户机配置成先查询这些服务器,这样就能防止远程客户机通过 慢速链路通信来进行DNS查询。
3)减轻主服务器的负载
辅助服器能回答该区的查询,从而减少该区主服务器必须回答的查询数。
DNS 相关概念
1、DNS 服务器
运行DNS服务器程序的计算机,存储DNS 数据库信息。DNS 服务器会尝试解析客户机的查询请求,在解答查询时,如果DNS 服务器能提供所请求的信息,就直接回应解析结果,如果该DNS 服务器没有相应的域名信息,则为客户机提供能帮助解析查询的服务器地址,如果以上两种方法军失败,则回应客户机没有所请求的信息或请求的信息不存在。
2、DNS 缓存
DNS 服务器在解析客户机请求时,如果本地没有该DNS信息,则会询问其他DNS服务器,当其他域名服务器返回查询结果时,该DNS 服务器会将结果记录在本地的缓存中,成为DNS 缓存。当下一次客户机提交相同的请求时,DNS 服务器能够直接使用缓存中的DNS 信息进行解析。
DNS 查询的方式
- 递归查询
- 迭代查询
看 DNS 查询过程
通过8个步骤的解析过程就使得客户端可以顺利访问 www.163.com 这个域名,但实际应用中,通常这个过程是非常迅速的
- 客户机提交域名解析请求,并将该请求发送给本地的域名服务器。
- 当本地的域名服务器收到请求后,就先查询本地的缓存。如果有查询的DNS 信息记录,则直接返回查询的结果。如果没有记录,本地域名服务器就把请求发给根域名服务器。
- 根域名服务器再返回给本地域名服务器一个所查询域的顶级域名服务器的地址。
- 本地服务器再向返回的域名服务器发送请求。
- 接收到该查询请求的域名服务器查询其缓存和记录,如果有相关信息则返回客户机查询结果,否则通知客户机下级的域名服务器地址。
- 本地域名服务器将查询请求发送给返回的DNS 服务器。
- 域名服务器返回本地服务器查询结果(如果该域名服务器不包含查询的DNS 信息,查询过程将重复<6>、<7>步骤,直到返回解析信息或解析失败的回应)。
- 本地域名服务器将返回结果保存到缓存,并且将结果返回给客户机。
两种查询方式
1)递归查询
递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
2)迭代查询
DNS 服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果 ,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环 直到返回查询的结果为止。
正向解析与反向解析
1) 正向解析
正向解析是指 域名到 IP 地址的解析过程
2) 反向解析
反向解析是从 IP 地址到域名的解析过程,反向解析的作用为服务器的身份验证。
http://dns.aizhan.com/
DNS 资源记录
1)SOA 资源记录
每个区在区的开始处都包含了一个起始授权记录 ( Start of Authority Record),简称 SOA 记录,SOA定义了域的全局参数,进行整个域的管理设置,一个区域文件只允许存在唯一的SOA记录。
2)NS 资源记录
NS (Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。每个区在区根处至少包含一个NS 记录。
3)A 资源记录
地址(A)资源记录把 FQDN 映射到IP 地址,因为有此记录,所以DNS服务器能解析FQDN域名对应的IP地址。
4)PTR 记录
相对于 A 资源记录,指针(PTR)记录把IP 地址映射到FQDN ,用于反向查询,通过 IP 地址,找到域名。
5)CNAME 资源记录
别名记录(CNAME)资源记录创建特定FQDN的别名,用户可以使用CNAME 记录来隐藏用户网络的实现细节,使连接的客户机无法知道真正的域名。
例如:ping 百度时,解析到了百度的别名服务器,百度有个cname=www.s.shifen.com的别名。
6) MX 资源记录
邮件交换 (MX)资源记录,为DNS 域名指定邮件交换服务器。
邮件交换服务器是为DNS 域名处理或转发邮件的主机,处理邮件是指把邮件投递到目的地或转交另一不同类型的邮件传送者。转发邮件是指把邮件发送到最终目的服务器,用简单邮件传输协议 SMTP 把邮件发送给离最终目的地最近的邮件交换器,或使邮件经过一定时间的排队。