我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

DNS是name的缩写,有些地方也叫名字。它是一个将域名和IP地址相互映射的分布式数据库,可以让人们更方便地访问互联网。很多人都知道DNS域名解析的大致过程,但是有些细节很容易忘记。下面我总结分析了一些与DNS相关的知识,希望能够帮助大家了解和熟悉DNS。

域名解析器在哪里_域名解析txt_百度云服务器域名解析

1. DNS 基础知识

DNS主要是用来将域名解析为IP地址的协议,有时也用于将IP地址反向解析为域名,所以DNS可以实现双向解析。

DNS可以使用TCP和UDP的53端口,基本都使用UDP协议的53端口。

1. 域名的分类

域是分级管理的,类似中国的行政级别。

最高级别的域名是根域名(root),是一个圆点,就像一个国家的总统一样。全球只有13个根域名服务器,大部分都在美国,中国没有一个根域名服务器。

根域名下一级是第二级顶级域名(TLD),即各省省长。顶级域名的划分一般有两种方式:按国家划分和按组织划分。

顶级域名下面就是普通域名,企业或者个人在互联网上注册的域名一般都是这些普通域名,比如。

2. 主机名、域名、FQDN

我们以百度()和百度贴吧()为例。

不管是还是,它们的域名严格来说都是“.”这是百度购买的com域名的子域名。

对于 ,主机名为 www,对于 ,主机名为 tieba。严格来说, 和 是主机名,它们都是域下的主机。一个域下可以定义多台主机,只需要配置其主机名和对应主机的 IP 地址即可。

FQDN 是 Fully Name 的缩写,全称为完全限定域名 (Fully Name)。是指包含所有域的主机名,包括根域。FQDN 可以说是主机名的完整表述,从逻辑上准确地表明了主机位于何处。

例如 的FQDN为“.”,com后面有一个点,即根域; 的FQDN为“。”。

域名解析器在哪里_域名解析txt_百度云服务器域名解析

3. 域的分级授权

域的授权是从上到下的,每一层只对自己的直属下级负责,不负责下级。例如,根域授权顶级域,顶级域授权普通域,但根域不授权普通域。与现实世界的行政管理不同,域的授权和管理永远不会往下跳,因为它不知道下级层的域名是否存在。

4.DNS解析过程

百度云服务器域名解析_域名解析txt_域名解析器在哪里

仍以访问为例。

(1)当客​​户端要访问一个文件的时候,它会先搜索本地的DNS缓存,再搜索自己的hosts文件,如果找不到,它才会搜索DNS服务器(这个DNS服务器就是计算机指向的DNS)。

(2)DNS服务器收到查询请求后,首先检查自己是否有缓存,如果有,则直接返回给客户端,如果没有,则向上级到根域“.”进行查询。

(3)根域看到自己在寻找.com域名,就把到.com域名的路径(地址)告诉DNS服务器,要求DNS服务器去寻找.com。

(4)DNS服务器查找.com。当它发现“.com”在其管辖范围内时,它会将IP地址提供给DNS服务器,并要求其查找。

(5)DNS发现DNS服务器正在寻找自己区域内的www主机,于是就把这个主机的IP地址给DNS服务器。

(6)DNS服务器将IP结果告诉客户端,并在自己的机器上缓存一份该结果(由于服务器允许客户端进行递归,所以默认会缓存,否则不会缓存非权威性数据)。

(7)客户端收到响应的IP地址后,进行缓存,然后访问页面,并将页面内容发送给客户端,也就是百度页面。

最后我想指出的是:

1. 如果本机搜索缓存后没有找到结果,就会先搜索hosts文件,如果还是没有找到结果,就会向DNS服务器发送查询。不过这只是默认的情况,默认的顺序是可以改变的。在/etc/.conf中有一行“hosts:files dns”定义了是先搜索hosts文件还是先提交给DNS服务器。如果修改这一行“hosts:dns files”,就会先提交给DNS服务器。这种情况下,hosts文件几乎用不到了。

2.由于缓存是多级的,实际查询可能没有那么多步骤。上图中的步骤是完全不需要缓存的查询。如果一个主机已经向DNS服务器提交了查询,那么DNS服务器除了缓存的记录外,还缓存了“.com”和“”的记录。如果另一个主机向DNS服务器提交查询,则会跳过“.”和“.com”的查询过程,直接向 发送查询请求。

5./etc/.conf 文件

此文件主要用于定义DNS指向,即指定查询主机名时使用哪个DNS服务器。此文件的详细说明请参见Linux网络管理:/etc/.conf。

比如这个文件中指定了“8.8.8.8”,那么每当你要查询主机名的时候,就会向DNS服务器8.8.8.8发起递归查询,这个DNS服务器会帮忙找到最终的结果并返回给你。

当然,在后面的实验测试过程中,还采用了另外一种方式来指定需要使用的DNS服务器:在dig命令中使用“@”。

百度云服务器域名解析_域名解析器在哪里_域名解析txt

DNS 术语

1. 递归和迭代查询

例如主机A想查询域C中的某个主机,A指向的DNS服务器是B,其递归和迭代查询方法如下:

递归查询:A --> B --> C --> B --> A

迭代查询:A --> BA --> C --> A

将递归查询和迭代查询放入查询过程如下图所示。(指向的DNS服务器未标注)

换句话说,递归就是问谁谁就得给谁答案。允许递归就是帮忙找位置。比如A允许B递归,那么B问A的时候,A就会帮忙找答案。如果A不允许B递归,那么A就会把下一层域的地址告诉B,让B自己找。

可以想象,如果整个域名体系都采用递归查询的话,那些公共的根域和顶级域将会忙死,所以更好的解决办法是将压力分散到各个个性化的DNS服务器上。

因此,DNS解析过程如下图所示,从客户端到DNS服务器的阶段是递归查询,DNS服务器之后的阶段是迭代查询。也就是说,出于性能考虑,顶级域和根域不允许递归提供给任何其他机器。

为什么客户端对 DNS 服务器的查询是递归查询呢?因为客户端本身不是 DNS 服务器,它无法在互联网上查找域名地址,所以只能向 DNS 服务器询问,而 DNS 服务器最终必须返回答案,所以 DNS 服务器需要为这个客户端允许递归。因此 DNS 解析器发出的查询(host、dig 等)都是递归查询。

2. 权威服务器和(非)权威响应

权威服务器()可以理解为直接上级域的DNS服务器,比如这台主机的上级域是,那么对于www来说,它的权威服务器就是本域内负责解析的DNS服务器,而对于这台主机来说,它的权威服务器就是.com域内负责解析的DNS服务器。

更具体的说,一个域的权威服务器是一个能够直接查看域数据(即区域数据文件)的DNS服务器,主DNS服务器和辅DNS服务器都是权威服务器。

只有权威服务器给出的答案才是权威答案,否则就是非权威答案。为什么呢?因为一个域内的所有主机都记录在DNS服务器中的区域数据文件中。对于主机来说,它们的位置只有其直接上层知道。

因此,如果希望在解析时获得权威的答案,就应该将DNS指向该域中负责解析的DNS服务器。

只有权威服务器直接给出的答案才是永远正确的,通过缓存得到的答案基本都是非权威答案。当然这也不一定,因为权威服务器给出的答案也是缓存中的结果,但它是权威答案。DNS服务器缓存数据库进行解析的时间长短由权威服务器决定。

百度云服务器域名解析_域名解析器在哪里_域名解析txt

3. DNS 缓存

在DNS服务器等定制化的DNS解析系统中,会使用缓存来加速解析,以减少网络流量和查询压力,即使无法解析的否定答案也会被缓存。

但是访问的主机IP地址可能会变化,使用缓存得到的答案不一定正确,所以缓存的答案是非权威的,只有该主机的给出的答案才是权威的答案,缓存的非权威答案应该设置一个缓存时间,这个缓存时间的长短由权威机构指定。

另外,如果你访问某个域中不存在的主机,这个域的DNS服务器也会给出答案,但是这是否定答案。否定答案也会被缓存,并且有缓存时间。比如你请求某个域中的FTP主机,但实际上该域下可能没有这样的FTP主机,那么就会给出否定答案。为了防止FTP的持续访问而造成破坏,负责解析这个域的DNS服务器需要为否定答案指定一个缓存时间。

4. 主 DNS 服务器和辅助 DNS 服务器

DNS服务器又叫域名服务器,每个域都必须有一台DNS服务器来解析与该域相关的数据。但是DNS服务器负责整个域的数据解析,压力比较大,一旦出现问题,整个域就崩溃了,无法对外提供服务,这是非常严重的事情。所以,无论是为了负载均衡,还是域数据的安全性和可用性,两台DNS服务器都是最低要求,大多数情况下应该配置更多的DNS服务器。

DNS服务器有主、辅之分,主DNS服务器称为主(),从DNS服务器称为从(Slave),从(Slave)上的域数据都是从主()获取的,这样,从(Slave)和从(Slave)都可以对外提供名称解析服务。

5. 资源记录(RR)

对于提供DNS服务的系统(DNS服务器),需要将域名相关数据存储在文件(区域数据文件)中。这些数据被分成多个类别,每个类别存储在对应的资源记录(RR)中。也就是说,资源记录用于区分域数据的类型,并存储对应的域数据。

DNS类中的资源记录有很多种,常用的有SOA记录、NS记录、A记录(IPV6的AAAA记录)、PTR记录、CNAME记录、MX记录等。

其中:(下面的内容如果不理解,可以跳过,配置区域数据文件的时候再回来看)

(1).SOA记录:start of,起始权限。该记录存储了一系列数据。如果对SOA记录不了解,请参考下面的NS记录。关于SOA的更多信息,请参见“”部分。格式如下:

longshuai.com.      IN  SOA dnsserver.longshuai.com.    mail.longshuai.com. (
    
                                3h    
                                1h    
                                1w    
                                1h )

第四列指定“.”作为域的 DNS 服务器。

第五列是域管理员的电子邮件地址,但请注意,您不能使用 @ 格式的电子邮件地址。相反,您必须将 @ 符号替换为点“。”,就像上面的例子一样,“。”实际上意味着“”。

第六列用括号将几个数值括起来。第一个数值是区域数据文件的序号,每次修改这个区域数据文件时,都需要修改该数值,以便从 DNS 服务器同步该区域数据文件。第二个数值是刷新时间间隔,表示从 DNS 服务器寻找 DNS 服务器更新区域数据文件的时间间隔。第三个数值是重试时间间隔,表示从 DNS 服务器在无法联系到 DNS 服务器更新区域数据文件时,会等待多长时间才进行重试。这个数值一般比时间短,否则这个数值代表的重试就失去了意义。第四个数值是过期时间值,表示从 DNS 服务器上的区域数据文件过期多长时间。第五个数值是 ttl,表示客户端寻找 DNS 服务器进行解析时,否定答案被缓存的时间长度。这些数值可以写在单独的行中,也可以直接写在同一行中,并用空格隔开。因此,上述 SOA 记录可以写成以下格式:

longshuai.com.   IN  SOA dnsserver.longshuai.com.   mail.longshuai.com. ( 1 3h 1h 1w 1h )

前三列为声明性语句,表示域“.”中的起始权限为第四列值“.”所代表的主机。第五列和第六列为SOA的附加属性数据。

每个区域数据文件有且只能有一个 SOA 记录,一般定义为区域数据文件中的资源记录。

注意,资源记录的作用之一是存储域相关的对应数据,因此第4、5、6列代表SOA记录中存储的相关值。

(2)NS记录:名称,存储域中DNS服务器的信息。也就是说,NS记录标识了哪个服务器是DNS服务器。格式如下:

longshuai.com.    IN  NS  dnsserver.longshuai.com.

前三列依然是声明性语句,表示“.”域中的DNS服务器(名称)是第四列的值所代表的“.”主机。

如果一个域中有多个DNS服务器,那么肯定有一个主服务器和一个辅服务器,也就是从服务器。但是主辅关系无法体现在NS记录中。例如:

longshuai.com.    IN  NS  dnsserver1.longshuai.com.
longshuai.com.    IN  NS  dnsserver2.longshuai.com.

意思是主机“.”和主机“.”都是域“.”内的DNS服务器,但是没有主DNS服务器和辅DNS服务器之分。

很多人对 SOA 记录不了解,很容易把 SOA 和 NS 记录混淆。其实就其主要作用而言,NS 记录只声明域中哪台主机是 DNS 服务器,用于提供名称解析服务。NS 记录并没有区分哪台 DNS 服务器是从属的。SOA 记录用于指定 NS 记录对应的哪台主机是 DNS 服务器,也就是从多台 DNS 服务器中选择一个,指定为域中的 DNS 服务器,其他的都是从属的,需要从其那里获取域相关数据。因此,SOA 的“ ”这个名字的含义就很容易理解了。

(3).A记录:存储该域中主机名对应的IP地址,格式如下:

dnsserver.longshuai.com.    IN  A   172.16.10.15

客户端之所以能解析出主机名对应的IP地址,是因为DNS服务器中的A记录保存了主机名与IP的对应关系,AAAA记录保存了主机名与IPv6地址的对应关系。

(4).PTR记录:相对于A记录来说,它存储的是IP地址对应的主机名,此记录只存在于反向解析区域数据文件中(不一定存在),格式如下:

16.10.16.172.in-addr.arpa.  IN  PTR  www.longshuai.com.

表示解析地址172.16.10.16,得到主机名“.”的结果。

(5)CNAME记录:name表示规范名称,它所代表的记录通常被称为别名记录,之所以这样称呼,是因为给规范名称赋予了别名。那么什么是规范名称呢?可以简单认为是fqdn。格式如下:

www1.longshuai.com.     IN  CNAME  www.longshuai.com.

最后一列是规范名称,第一列是规范名称的别名,也就是最后一列。当查询“。”时,DNS服务器会找到它的规范名称“。”,然后查询该规范名称的A记录,进而获取对应的IP地址返回给客户端。

CNAME记录非常重要,很多时候使用CNAME可以解决非常复杂的问题。另外,常用的CDN技术中的一个步骤就是在DNS服务器上设置CNAME记录,将客户端对资源的请求导向到具有相同网络环境(电信、网通)、地理位置相近的缓存服务器上。关于CDN的介绍,可以看下文CDN与DNS的关系。

百度云服务器域名解析_域名解析器在哪里_域名解析txt

(6)MX记录:mail,邮件交换记录。负责域名内部的邮件转发或者处理。跟邮件服务器有关,话题比较大,就不细说了,如果需要深入了解,请参考《dns & bind》中的“5.DNS与邮件”。

关于资源记录,需要明确的最重要的概念是:它不仅用于区分和标识区域数据的类型,还用于存储相应的域数据。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/5183.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线