常见问题

1、域名对应的IP地址修改完要将近一天的时间才能有效果?

DNS的数据库通常是在跑在DNS服务器的内存当中的,但是我们如果临时增加一条的话其实是写到了硬盘当中,当数据库服务刷新的时候新增的新记录才会被记录到内存当中。

这其实也会是与DNS的缓存有关系的,举个例子你的主机在.com下注册了域名1.1.1.1,后来又换成了2.2.2.2,在一天的时候当中你会发现当你ping主机的时候域名解析还是1.1.1.1,为什么?因为不仅DNS不仅PC本地有缓存,而且互联网上很多的DNS都有缓存,当它们所有的缓存都失效后才再去解析,所以这一通下来,也差不多是一天的时间。

2、递归和迭代

递归查询就是我们发出一个请求就一定能得到最终结果的查询,所以递归是对于我们的主机而言的,主机可以发一次查询就可以通过自己设置的DNS得到结果,但是我们设置的本地DNS服务器可能要费很大的力气才能帮助我们查找到,所以递归是针对主机而言的,主机发一个查询请求,主机不管DNS服务器费了多大的力气,它反正只要最后的结果,它一次查询的结果就是递归。

迭代就是说本地DNS服务器想要得到最终的答案需要多次查询,这就是迭代,所以迭代是针对本地DNS而言的,它要通过多次查询才能帮助客户端查询到查到对应的IP,它多次查找的过程就是迭代。

3、在公司内网部署DNS服务器的意义何在?

在内部搞一个DNS服务器之后,客户端可以通过此DNS实现递归,客户端自己发一次查询就好,让DNS服务器替自己迭代;同时如果在本公司内部有一个服务器不打算让互联网上的人访问,只想让公司的人访问的话,那么就把此服务器的域名和IP写入到本地搭建的DNS服务器的数据库当中,这样的话,本公司内部的人访问自己的服务器时把DNS指向自己搭建的DNS服务器就可以实现内部事务内部解决,如果想访问互联网的的主机时,本地的DNS会帮助客户端实现递归,它自己去迭代。所以说非常的方便。内网的DNS服务器万一坏了怎么办?要设置主从即可。

迭代非常浪费资源,所以尽量给组织内部的人提供迭代,但是ISP必须得自己搭建让自己自足,谷歌帮助全人类提供了一台迭代8.8.8.8,4.4.4.4。

4、正向和反向区域解析:

通过域名解析成IP是正向解析,通过IP解析域名是反向解析。通过正向区域可以实现正向解析,通过反向区域可以实现反向解析,值得一提的是反向区域在一定程序是依赖正向区域,正向区域完全不依赖反向区域。正反向区域是两个不同的系统,可以位于同一个主机,也可以位于不同的主机。

互联网的.com等一级域服务器只支持迭代,不支持递归,所以这些域不能帮助我们递归,而客户端也不支持,只能找一个中间人,这个中间人一般由ISP提供,人家只是中继一下帮你查询的,它有帮客户端递归的能力,而客户端就是需要这种能力。

5、服务器的主机名一定要与提供的服务一样吗?

baidu.com是一个域名,而www是一个主机,但是www主机所指向的主机的名字不一定就非得叫www,所以说网络的标识某一台服务器的的名字和服务器本身主机的名字没有一毛钱的关系,顶多就是IP的对应关系,你在.com域名下注册了一个域名baidu那么.com就在自己的数据库就加上一条

1.1.1.1                 baidu

一旦有人来找.bom查询百度的对应的IP,把1.1.1.1返回就是了,至少你是访问www还是mail还是什么,.com不管,.com只看到了你访问的是baidu。

6、DNS服务器的类型:

缓存DNS服务器,主DNS服务器、从DNS服务器、转发器

运营商给客户提供的DNS服务器,比如联通给提供的202开头的DNS服务器,它不负责任何域的解析,它仅仅给通过自己上网的客户端做递归的服务器(牺牲自己做迭代,自己麻烦最后把结果返回给客户端),其实这种的DNS就叫做缓存DNS,因为它只有缓存的功能,不负责解析任何域,当一个内网的主机请求时,如果它本地没有,它就去找根,进行迭代查询。虽然本地PC会缓存DNS,但是过一会儿就会失效了,失效之后再访问同一个网站还要去向DNS服务器查询,这其实就浪费了带宽,如果在内网我们自己搭建一个DNS服务器,让内网的DNS服务器去帮助我们迭代多好呀,还能节省带宽,会节省一部分带宽,它迭代的内容同样也有有效期,这个有效期是权威DNS规定的。其实家里的小米路由器就是一个缓存DNS服务器,通过小米路由器获得的DNS是网关,而路由器也有一个DNS,这个DNS指向的就是联通公司给分配的DNS,小米路由器充当了缓存器,帮助用户节省了带宽。

因为要冗余,所以DNS服务器通常会成双出现,所以有了主从之分。

7、主从DNS之间的区域传送、全量传送,增量传送

但是内网当中的部署的DNS服务器挂了之后怎么办?所以通常还会有一个从DNS服务器,那么这个主从是如何区分的呢?主DNS服务器挂了之后,从DNS要立马顶上,所以就要求它们的数据库是相同的,从DNS服务器的数据库从主DNS服务器那里复制过来的,从DNS服务器从主DNS服务器复制数据库的过程就是区域传送的过程。区域传送也有两类型,如果从DNS服务器刚刚配置好数据库什么东西都没有,下一步就要把主DNS服务器那里把所有的内容都复制过来,这是全量传送;假如主DNS的数据库变化了,从DNS服务器保存的还是原来全量传送时的数据,在这种情况下,从DNS服务器只要复制主DNS服务器被修改的部分即可,用不上全部复制了,这个过程又被称做增量传送。

8、主从DNS之间的解析库序列号、刷新时间、重试时间间隔、过期时长

上文提到,主从DNS服务器之间的解析库需要进行增量传送,两台DNS服务器的解析库要及时同步,但是当主DNS的解析库更新了之后从DNS服务器怎样才能知道呢?解析库是有序列号的,解析库的序列号是随着修改的次数而递增的,就比如主DNS的解析库原来的序号是1,从DNS服务器对主服务器的解析库进行了全量传送,从DNS服务器的解析库的序列号也是1,现在主DNS解析库里面又加了一条记录之后 ,主DNS服务器的解析库序列号又递增为2,此时,从DNS服务器解析库的序列号还是1,从DNS服务器并不知道主DNS服务器的序列号已经发生了改变,从DNS服务器要定期去主DNS服务器上查看解析库序号又没有变化,那么多长时间去查看一次好呢?这个时间我们是可以定义的,这个时间就是刷新时间。现在要考虑一种情况,实际上从DNS服务器向主DNS服务器查询解析库的过程就是两台主机相互通信的过程,只要是通信就有失败的可能,如果从DNS在与主DNS服务器通信时没有刷新成功,假如说是主DNS挂了怎么办?如果第一次通信失败的话,从DNS服务器会认为是网络阻塞,并不会立马认定主DNS已经挂了,在第一次通信失败之后,再隔一会儿从服务器还会再去与主DNS服务器同步一下尝试能不能通信成功,这个隔一会儿就是重试时间间隔(如刷新时间一样都是可以定义的),重试时间应该小于刷新时间,因为重试时间要是大于刷新时间的话,在等待重新刷新时又重新刷新了一次,这样没有任何意义。假如刷新一直失败怎么办?有过期时长,假如一直刷新失败的话,从服务器并不会趁此机会上位,它们比人要有人性多了,假如从服务器一直联系不上主服务器,从服务器认为主服务器已经停止服务了,既然主服务器停止服务器,从服务器提供服务也没有什么意思了,所以从服务器当发现主服务器失联时自己也会停止所有的服务,与主服务器一同“赴死”。所以在我们人的角度来考虑,当主服务器宕机时要尽快修复主服务器,不然从服务器也会跟着罢工的。

9、主从同步的缺点

值得声明的一点是,主从服务器实际上一起提供服务器,并不是一台工作,另一台闲着。它们两个通常会负载,它们是不是负载取决于上一级DNS服务器的解析库记录,同一个域名对应两个IP地址,这样就会负载均衡,如果其中的一个联系不上了,就给第二个来解析。肯定会有这样的情况,假如主从的刷新时间为5分钟,在从服务器刚同步完后的1秒之后主服务器的解析库发生了变化,但是从服务器要等到刷新时间到了之后才能把新增加的内容同步到自己的解析库当中,如果在此期间,正好有人找从服务器解析来解析新增加的这一条内容的话,这样不就解析不到了吗? 通常是这样,当我们在DNS解析库里面加了一条记录之后主DNS服务器会通知从DNS服务器过来同步,即便是刷新还没有到,这样在一定程度上缓解了主从两台主机解析库不一致的情况,可以抓包进行验证。

10、当主机第一个DNS服务器时并没有解析结果时,会再解析第二个DNS服务器吗?

如果一个主机上设置两个DNS服务器,使用第一个的时候解析不成功,那么还会使用第二个吗?并不会的,因为第一个在查找第一次的时候肯定访问了根,根没有找到才返回给你没有找到的信息,这样的话,第一个都解析不出来,第二个肯定也不成的,所以根本没有必要使用第二个DNS。

11、什么时候会用到第二个DNS服务器呢

当第一个DNS服务器连接不上的时候才会使用第二个DNS。

12、域和区域

我们讲课一直讲区域传送,为什么不说是域传送呢?

区域要么正向的,要么是反向的,而域没有正向反之说,域在概念是包括了正向和反向。

13、 FQDN

正向区域和反向区域不是使用一个数据库。

FQDN:full  qualified  domain name,完全限定域名,如www.baidu.com.    注意最后有一个点

主机名+域名的格式就被称为完全限定域名(FQDN)

域是一个概念,比如baidu就是一个域,在这个域之下还有区域,也就是所谓的正向区域和反向区域。

正向区域就是把FQDN解析成IP,而反向区域就是把IP解析成FQDN。

14、一次完整的查询请求经过的过程

hosts(本地hosts文件)

DNS server:local cache(本地缓存)—recurtion(递归)—server cache(服务器缓存)----intertive(迭代)

具体的含义的解释:

  1. 客户端首先在本地的hosts文件查看,没有就找指定的本地DNS服务器
  2. 通常本地DNS都是缓存服务器,比如8.8.8.8  223.6.6.6这些DNS服务器,这些DNS服务器本身不具有解析的功能,只能帮你迭代解析罢了。
  3. 客户端找到223.6.6.6,阿里的DNS首先在自己的缓存当中查找
  4. 如果缓存当中没有,就去迭代(找根解析)
  5. 迭代回来之后在本地缓存
  6. 然后把结果返回到客户端

15、 答案类型

如果DNS帮你找了正确的答案就是肯定答案;如果DNS没的找到答案的话就返回一个否定的答案,否定答案并不代表对方不在线,只是没找到你想到的答案,否定答案其实也有缓存。其实无论是肯定答案还是否定答案都有权威与非权威之分。

那么何为权威答案?权威答案就是你访问www.baidu.com.时,缓存DNS服务器帮你递归时从负责百度这个域里面的区域明确回应的,就是权威答案。

那么何为非权威答案?非权威答案就是访问www.baidu.com.时,缓存DNS服务器没有去找负责百度这外域里面的区域,而是直接从自己的缓存当中找到了答案,这就是非权威应答。

其实这种分布式系统的缓冲带来的好处就是给DNS服务器减小了压力,缺点就是在某一个时刻肯定失去了一致性,就比如一个缓存服务器刚刚缓存了一答案,但是权威DNS服务器更改之后,缓存服务器并不会立马收到,这就失去了一致性,但是还好,当缓存失效之后就会一致了。如果没有缓存的话,的确得到的答案都是权威答案,但是服务器的压力会很大。

DNS解惑之基本概念(1)的更多相关文章

  1. DNS解惑之资源记录(2)

    1.区域解析库 每个域都要维护一个区域解析库,而区域解析库都是由一条条的记录组成的,而每一条记录就被称为资源记录(resource  record  RR). 我们知道大多数域名下面都不仅仅有www服 ...

  2. DNS拾遗(二)

    MX Record补充 MX记录有优先级的概念,数字越小表示优先级越高.所以一个域可以配置多个不同优先级的MX记录,如果邮件通过第一优先级记录无法递送,则采用第二优先级,以此类推. TXT Recor ...

  3. DNS拾遗(一)

    最近帮朋友注册域名配置主机,碰到一些DNS上的一些概念,惭愧于有一些东西已经忘记是啥意思,于是决定重新学习一下DNS方面的基本概念. 常用概念: TTL: TTL为Time to live的缩写,网络 ...

  4. 转:DNS拾遗

    最近帮朋友注册域名配置主机,碰到一些DNS上的一些概念,惭愧于有一些东西已经忘记是啥意思,于是决定重新学习一下DNS方面的基本概念. 常用概念: TTL: TTL为Time to live的缩写,网络 ...

  5. DNS解析全过程分析

    DNS解析过程 1.检查浏览器缓存中是否缓存过该域名对应的IP地址 用户通过浏览器浏览过某网站之后,浏览器就会自动缓存该网站域名对应的IP地址, 当用户再次访问的时候,浏览器就会从缓存中查找该域名对应 ...

  6. ICMP协议、DNS、ARP协议、ping、DHCP协议

    1.ICMP协议 1)ICMP协议,即:网络控制消息协议(Internet Control Message Protocol) 2)ICMP是网络层协议,因为ICMP报文是装在IP数据报中,作为它的数 ...

  7. DNS介绍与安装使用

    DNS简介 DNS是互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS使用TCP和UDP的53号端口. DNS服务的基本概念 在使用DNS前需要了解 ...

  8. DNS(转载)

    最近帮朋友注册域名配置主机,碰到一些DNS上的一些概念,惭愧于有一些东西已经忘记是啥意思,于是决定重新学习一下DNS方面的基本概念. 常用概念: TTL: TTL为Time to live的缩写,网络 ...

  9. 服务管理-DNS

    DNS服务 DNS(Domain Names System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址.通 ...

随机推荐

  1. 关于destoon6.0下的ngnix伪静态

    关于destoon6.0下的ngnix伪静态配置 ##rewrite nginx rewrite '(.*)\.(asp|aspx|asa|asax|dll|jsp|cgi|fcgi|pl)(.*)' ...

  2. day65_10_9vue循环指令与组件

    一.v-once v-once指令赋值给标签后,这个标签中的所有变量都不能被更改,只能被渲染一次.之后的改动不能改变该标签中的值: <div id="app"> < ...

  3. 【转】认识JWT

    1. JSON Web Token是什么 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的.自包含的方式,用于作为JSON对象在各方之间安全地传输信息.该 ...

  4. MDK编译优化笔记

    在一次使用MDk的编译优化等级比较高的时候发现编译不优化时功能正常,开了优化等级02就出现异常,调试中看了很多博客总结一下. 一个变量,如果你的主程序要用到,同时中断还要用到,要加volatile修饰 ...

  5. 快读&快写模板【附O2优化】

    快读&快写模板 快读快写,顾名思义,就是提升输入和输出的速度.在这里简单介绍一下几种输入输出的优劣. C++ cin/cout 输入输出:优点是读入的时候不用管数据类型,也就是说不用背scan ...

  6. 【2019.8.11上午 慈溪模拟赛 T2】十七公斤重的文明(seventeen)(奇偶性讨论+动态规划)

    题意转化 考虑我们对于集合中每一个\(i\),若\(i-2,i+k\)存在,就向其连边. 那么,一个合法的集合就需要满足,不会存在环. 这样问题转化到了图上,就变得具体了许多,也就更容易考虑.求解了. ...

  7. Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2) F. Tree Factory 构造题

    F. Tree Factory Bytelandian Tree Factory produces trees for all kinds of industrial applications. Yo ...

  8. Paper | Xception: Deep Learning with Depthwise Separable Convolutions

    目录 故事 Inception结构和思想 更进一步,以及现有的深度可分离卷积 Xception结构 实验 这篇论文写得很好.只要你知道卷积操作或公式,哪怕没看过Inception,也能看懂. 核心贡献 ...

  9. 深入理解Linux内核 学习笔记(8)

    第八章 系统调用 API定义了一个给定的服务:系统调用是通过软中断向内核发出一个明确的请求. API可能不调用系统调用,也可能调用多个系统调用. Linux系统调用必须通过执行int 0x80,系统调 ...

  10. mysql不是内部或外部命令--windows环境下报错的解决

    安装Mysql后,当我们在cmd中敲入mysql时会出现‘Mysql’不是内部或外部命令,也不是可运行的程序或其处理文件. 处理: 我的电脑右键属性>高级系统设置>高级>环境变量&g ...