DNS相关基础

一.DNS

在互联网上通信需要借助于IP地址,但人类对于数字的记忆能力远不如文字,那么将IP地址转换成容易记忆的文字是个好办法,可是计算机只能识别0、1代码,这时就需要一种机制来解决IP地址与主机名的转换问题
DNS全称为Domain Name System,即域名系统,其作用就是将我们经常使用的“网址”解析为IP地址

1.域:
TLD:Top Level Domain (顶级域名)
组织域:.com, .org, .net, .edu,.gov,.mil,.cc,…
国家域:.cn, .us, .tw, .iq,…
反向域: .in-addr-arpa
在这里插入图片描述
子域授权
授权是自上而下的,也就是说,上级知道下级的存在并知道下级的主DNS服务器地址(上级的名称解析库中有一条下级域的NS记录和主机A记录),而下级并不知道上级的存在,因此下级需要从根域开始查找

2.FQDN:

FQDN全称为Fully Qualified Domain Name,即完全合格域名
FQDN由两个部分组成:主机名和域名。因为DNS是逐级管理的 ,所以在不同的层级中主机名与域名也是不同的;以www.google.com为例,在第二层中,.com就是域名,google就是主机名,而到了第三层中,.google.com就成了域名,www就成了主机名

3.正向解析:
从FQDN转换为IP地址称为正向解析

4.反向解析:
从IP地址转换为FQDN称为反向解析

5.区域:
正向解析或反向解析中,每个域的记录就是一个区域

6.DNS服务监听在主机的TCP/UDP的53号端口


二.DNS服务器

1.DNS服务器的类型

  • 缓存DNS服务器:不包含域名数据库文件,它每次将从域名服务器得到的查询结果返回给客户端,并在本地将以缓存,供下次查询使用。
  • 主DNS服务器(master): 数据库更新由管理员手动完成
  • 辅助DNS服务器(slave):数据库更新从主服务器或其它辅助DNS服务器那里完成

注意:

  1. 主DNS服务器为客户端提供域名解析的主要区域,主DNS服务器宕机,会启用从DNS服务器提供服务
  2. 主服务器DNS长期无应答,从服务器也会停止提供服务
  3. 主从区域之间的同步采用周期性检查+通知的机制,从服务器周期性的检查主服务器上的记录情况,一旦发现修改就会同步,另外主服务器上如果有数据被修改了,会立即通知从服务器更新记录
  4. 缓存服务器:服务器本身不提供解析区域,只提供非权威应答
  5. 转发服务器:当DNS服务器的解析区域(包括缓存)中无法为当前的请求提供权威应答时,将请求转发至其它的DNS服务器,此时本地DNS服务器就是转发服务器

2.DNS的工作原理

(1)DNS服务器的名称查询原理:

在这里插入图片描述

查询流程:

(1)客户端浏览器中键入www.magedu.com发出查询请求,浏览器将调用本地stub resolver解析器(存根解析器)去本地(/etc/hosts)查询有没有相关的记录,有则返回结果
(2)本地hosts没有查到,则查找本地DNS解析器缓存,如果查到则直接返回,完成域名解析。

(3)如果hosts与本地DNS解析器缓存都没查询到,则查询TCP/IP参数中设置的首选DNS服务器(即本地DNS服务器),此服务器收到查询请求时首先检查是否是自己负责的区域,如果是则返回权威应答给客户机,完成域名解析。

(4)如果要查询的域名,不由本地DNS服务器区域解析,但该DNS服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。

(5)如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(没有设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责 .com域的这台服务器。这台负责 .com域的服务器收到请求后,如果自己无法解析,它就会找一个管理 .com域的下一级DNS服务器地址(magedu.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找magedu.com域服务器,重复上面的动作进行查询,直至找到www.magedu.com主机。

(6)如果用的是转发模式(设置转发器),此DNS服务器就会把请求转发至上一级ISP DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

注:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是迭代查询。

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

在这里插入图片描述
迭代查询:服务器以相关参考性应答返回本地DNS。(DNS服务与DNS服务交互,得到的是参考答案)
在这里插入图片描述
总结:本地客户端向本地域名服务器查询请求时,查询类型为:一次递归,多次迭代

(2)DNS服务器的反向查询原理

在大部分DNS查询中,客户端一般执行正向查询,正向查询是基于存储在地址A资源记录中的另一台计算机的DNS名称来搜索IP地址等信息。DNS也提供反向查询过程,允许客户端在名称查询期间使用已知的IP地址查询计算机名。反向查询采取问答形式进行,例如”您能告诉我使用IP地址192.168.1.20的计算机的DNS名称吗?“

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

(3)区域传送原理

区域传送
辅助服务器从主服务器复制区域数据的过程叫“区域传送”。区域传送使用TCP的53号端口。

区域传送的类型

  1. 完全区域传送(AXFR)
  2. 增量区域传送(IXFR)

区域传送的原理
在这里插入图片描述
(1)在新的配置过程中,目标服务器会向主DNS服务器发送初始“所有区域”传送(AXFR)的请求;

(2)主服务器作出响应,并将此区域完全传送到辅助(目标)服务器;

该区域发送给请求传送的目标服务器,通过启动SOA资源记录的属性中的“序列号”字段建立的版本一起传送。SOA RR也包含一个以秒为单位的状态刷新间隔(默认设置是900秒或15分钟),指出目标服务器下一次应该在何时请求使用源服务器来续订该区域

(3)刷新间隔到期时,目标服务器使用SOA查询来请求从源服务器续订此区域;

(4)源服务器应答其SOA记录的查询。该响应包括该区域在源服务器中的当前状态的序列号。

(5)目标服务器检查响应中的SOA记录的序列号并确定怎样续订该区域:

如果SOA响应中的序列号等于其当前的本地序列号,那么区域在两个服务器中都相同,并且不需要区域传送。然后,目标服务器根据来自源服务器的SOA响应中的该字段值重新设置其刷新间隔来续订该区域

如果SOA响应中的序列号比其当前本地序列号要高,则可以确定此区域已更新并需要区域传送

(6)如果这个目标服务器推断此区域已经更改,则它会把IXFR查询发送至源服务器,其中包括此区域的SOA记录中序列号的当前本地值。

(7)源服务器通过区域的递增传送或完全传送做出响应。

如果源服务器支持增量传送,则通过IXFR做出应答,否则通过AXFR做出应答

(4)名称解析库及资源记录

名称解析
以主机名为搜索码,在DNS解析数据库中查找对应的IP地址的过程

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

DNS的名称解析库

在Linux系统中,DNS的名称解析库通常是一个文本文件(只能包含资源记录和宏定义),通常保存在/var/named/目录下。其中文本文件的每一行称作一个资源记录。

每一个名称解析库称作”区域(zone)“

说明:区域(zone)与域之间的差异

区域zone是一个物理概念,一个区域就是一个DNS解析库

域是一个逻辑概念,一个域对应一个DNS域名称空间

资源记录

资源记录:rr(resource record) 有类型的概念

1.SOA记录:起始授权记录,一个区域文件只能有一个
2.A记录:FQDN–>IPv4,用来指定主机名(或域名)对应的IP地址记录。(FQDN–>IPv6: AAAA)
3.CNAME记录:FQDN–>FQDN: CNAME (Canonical Name),别名解析(域名)
4.NS记录:Domain–>DNS Server:NS (Name Server),域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。
5.MX记录:Domain–>Mail Server: MX (Mail eXchanger), 邮件交换记录,指向邮件服务器,有优先级:0-99,数字越小级别越高
6.PTR记录:IP–>FQDN: PTR (pointer),反向DNS记录,A记录的反向

注意:
正向解析不能有PTR记录
反向解析不能有A记录,也不需要MX记录
对于互联网上的邮件服务器来说,PTR记录是必须的(为什么?因为如果只能正向解析而不能反向解析,那么大多邮件服务器会把其作为垃圾邮件来处理)

资源记录的格式

name [ttl] class type value

  • name(名字): name字段表示该记录所描述的实体(通常是主机或者一个域)。如果几个连续的记录涉及同一个实体的话,那么则第一条之后可以省略,利用@来代替这个name字段
  • [ttl]字段:TTL(time to live(存活时间)),默认字段以秒为单位指定时间长度,在指定的时间内,数据项可被缓存并且仍被认为是有效的。TTL必须位于该区域数据文件的第一行,默认可省
  • class:class指定网络类型:默认类型为IN,IN(指Internet)、HS(Hesiod:本地使用的目录服务)、CH(供域名服务器内部用来标示自己)
  • type:资源记录类型
  • value: 资源记录的值

各资源记录类型其“name”值是有要求的:

资源记录类型要求
SOAzone
NSzone
A,AAAAFQDN
CNAMEFQDN
PTRReverseIP.in-addr.arpa.
MXzone

各资源记录类型其“value”值也是有要求的:

资源记录类型要求
SOA主DNS服务器的FQDN
NS对应DNS服务器的FQDN
A,AAAAIP
CNAMEFQDN
PTRFQDN
MXMail Server FQDN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值