标签: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
原文地址:http://zhoushuyu.blog.51cto.com/7125424/1699771