DNS 系列(一):为什么更新了 DNS 记录不生效?

3A网络
• 阅读 437

我们在上网时如果想要访问到另一台机器上的内容,通常只需要直接输入一串地址,就能够准确访问到自己想要访问的网站。但是实际上这只是方便我们记忆的字符形式网络标识,真正让我们的机器和另一台机器进行沟通的是 IP 地址。只不过 IP 地址无论是输入还是记忆都非常麻烦,因此才诞生了域名系统。那么域名是怎么连接到那个服务器的 IP 呢?这就和我们今天要说的域名系统 DNS 有关了。

DNS 是什么?

因为有意义的名字可以表示主机的账号、工作性质、所属的地域和组织等,从而便于记忆和使用。所以用户会更倾向于用名字来标识主机,DNS 就是为这种需要而开发的。DNS 代表域名系统。该系统会将域名翻译成实际的 IP 地址。

DNS 的逻辑结构是一个分层的域名树,由 Internet 网络信息中心(InterNIC)管理着域名树的根,称为 “根域”,根域用句号 “.” 表示,不过这个通常是省略的。需要注意的是全世界一共只有 13 台 IPv4 根域名服务器。

根域下面是顶级域(TLD),分为国家顶级域(ccTLD)和通用顶级域(gTLD)。国家顶级域使用国家和地区缩写代码,例如 “cn” 代表中国。通用顶级域就是我们常见的 com/net/org 等。

DNS 系列(一):为什么更新了 DNS 记录不生效?

顶级域下面是二级域,这是正式注册给组织和个人的唯一名称,例如 www.upyun.com 中的 upyun 就是又拍云注册的域名。在二级域之下,组织机构还可以划分子域,用于各分支部门使用。但是标准规定,一个域名的长度通常不超过 63 个字符,最多不能超过 255 个字符。

当然了,DNS 不仅仅能指向 IP 地址,同时还支持其他形式的记录。常见的 DNS 记录形式有:

  • A 记录:域的 IPv4 地址的记录。
  • AAAA 记录:域的 IPv6 地址的记录。
  • CNAME 记录:别名,将一个域或子域转发到另一个域,不提供 IP 地址。
  • MX 记录:将邮件定向到电子邮件服务器。
  • TXT 记录:可使管理员在记录中存储文本注释。
  • NS 记录:存储 DNS 条目的名称服务器。

一个有特色的域名,可以让用户将公司品牌 “深深印在脑海里”。尽管域名可能是永恒不变的,但记录指向的地址及使用的 DNS 服务器却会因为需求经常变动。有时我们也会遇到修改了 DNS 记录后,实际访问到的地址却没有更新的情况,这就涉及到了 DNS 传播。

什么是 DNS 传播?

一般我们对网站的域名解析记录或 DNS 服务提供商进行更改后,全球所有的服务器都需要一段时间才能采用新的记录值,这段时间可能是几小时,也可能是几天,这个过渡阶段就是 DNS 传播。

DNS 传播因 DNS 服务器的负载情况而异。服务器越旧所需要更新时间就越长,因此在过渡期间,会出现其他提供商已经使用了新的地址,但一些旧服务器的服务商可能还未更新的。这是因为持续查询新的地址会导致负载过高,所以 DNS 服务器不会将更新信息临时存储在缓存中,只有当所有服务器都更新了此缓存,才会在所有地方同步上新新地址。

除了服务器负载,还有一些因素也会影响 DNS 传播。

影响 DNS 传播的因素

DNS 区域和 TTL 值

DNS 被分成许多不同的区域,是 DNS 命名空间的一部分,由特定组织或管理员加以管理。区域文件是存储在 DNS 服务器中的纯文本文件,它包含区域的实际表示,和区域内每个域的所有记录。

我们可以为域名区域文件中的每个 DNS 设置 TTL。TTL 代表 “生存时间”,是服务器缓存 DNS 信息的时间段。它可以定义设置临时缓存、存储多久以及何时进行更新。TTL 值对于 DNS 传播是很关键的,如果 TTL 值为 24 小时,则更改后需要 1 天才能生效。当然,为了更新可以更快生效,我们可以调整 TTL 值。但是,此调整必须在更新之前进行,因为调整 TTL 也属于 DNS 传播,也需要一段时间才能生效。另外注意切勿将 DNS TTL 设置为 0,因为标准中没有定义数字 0,它可能会导致 DNS 信息被忽略或拒绝。

如果使用云解析修改域名的解析记录,最终生效时间取决于各地运营商的 DNS 服务器缓存刷新时间,一般情况下等同于设置解析时的 TTL 时间。例如解析设置中 TTL 值为 10 分钟,修改解析后将在 10 分钟内实现全球生效。

DNS 系列(一):为什么更新了 DNS 记录不生效?

如果是修改 DNS 服务器,那么生效时间取决于本地 DNS 缓存的域名 DNS 服务器名称的 TTL 时间,例如 “.com” 顶级域是 48 小时,“.cn” 是 24 小时。因为不同顶级域 DNS 服务器的 TTL 时间是不同的,所以理论上修改域名 DNS 服务器全球解析生效时间最长需要 48 小时。

ISP(Internet 服务提供商)

另一个影响 DNS 传播持续时间的因素是使用的 Internet 服务提供商(ISP)。ISP 会将 DNS 数据缓存在本地,每次请求是在缓存检索数据而非 DNS 服务器。这种做法的好处是响应更快,同时也减少了数据流量的产生。但是,这可能会对 DNS 传播产生影响。此外,一些 ISP 会直接忽略 TTL 设置,并且固定每两到三天才更新一次缓存记录。

服务器的位置

服务器的位置也会对 DNS 传播产生影响。记录的更改短时间内可以在就近的 DNS 服务器生效,但到世界另一端的服务器通常需要更久。因为不同的服务器需要一个接一个地通知对方记录有更改。而且就像第二条里提到的,由于一些服务器可能仅在特定的时间间隔内更新,这就导致全部更新会需要很长时间。

DNS 传播的时间

那实际的 DNS 传播需要多长时间?本地服务器通常会在几分钟或几小时内更新。但是,要让全球所有服务器都知晓这些更改,并使其生效可能需要相当长的时间,通常 1 至 2 天内才生效都是可能的。而且根据服务提供商的设置,还可能出现 72 小时之后才全部更新的情况。因此,当需要更改或切换记录时,提前安排 DNS 传播非常重要。

在某些情况下,DNS 传播会对网站的访问产生影响,这是没办法完全避免的,不过可以通过一些方法最小化持续时间。比如在更改 DNS 服务器之前,我们可以修改解析记录中的 TTL 值,将其设置得小一点。等 TTL 值更新后,再修改 DNS 服务器。不过就算未传播完,也不影响域名解析记录的修改。即便 DNS 服务器仍然是旧的,但是解析记录会实时更新,网站内容也会是最新的。

当然了,若解析记录修改之后,过了 TTL 时间发现还是访问到旧的记录,可以尝试清除一下本地 DNS 缓存。或本地修改为公共 DNS (114.114.114.114/8.8.8.8)后再试一下。

DNS 传播检查

如果没有工具来确定网站的 DNS 传播是否已完成。可以通过几种对本地的 DNS 进行 DNS 传播检查的方法来确认。例如,Windows、macOS 和 Linux 默认安装了 nslookup,它可以显示当前 DNS 服务器的解析状态。Dig 工具也是一个不错的选择。

DNS 系列(一):为什么更新了 DNS 记录不生效?

除了本地查询,其他外部 DNS 检查需要通过选择随机服务器并在那里查询 DNS 信息来测试。由于服务器分布在世界各地,因此不能 100% 确定 DNS 传播已在所有地方完成,但至少可以确认大致的传播情况。例如,使用 Myssl 的 DNS 检测工具,可以快速查出不同地区不同网络下域名解析的速度,及域名DNS 信息。

DNS 系列(一):为什么更新了 DNS 记录不生效?

读到这里,大家是不是对 DNS 修改后不生效的问题有了答案呢?进行 DNS 服务器或与域名系统相关的更改时,还是要优先考虑到 DNS 传播。尽管可以通过 TTL 缩短传播时间,但由于一些不稳定因素,仍然需要一些时间才能使全球的每台服务器都更改为最新状态。服务器的话博主一般都使用的是3A云服务器,延迟慢。

点赞
收藏
评论区
推荐文章
3A网络 3A网络
2年前
DNS 系列(三):如何免受 DNS 欺骗的侵害
互联网上每一台设备都会有一个IP地址,我们在访问网站或发送信息时,其实都是通过IP地址达成准确请求的。但是这个IP地址由很长一串数字组成,记忆起来相当困难,所以我们创造了更实用的域名来代替IP地址。而如何将域名和IP地址联系起来,就是域名系统(DNS)发挥作用的地方。它由各种名称服务器(即DNS服务器)组成,负责域名解析,帮助客户端建
3A网络 3A网络
2年前
DNS 系列(二):DNS 记录及工作方式,你了解吗?
在上一篇《DNS系列(一):为什么更新了DNS记录不生效?》中,我们主要讲解了DNS和DNS传播,知道了网络通信主要通过IP地址来进行,而域名系统(DNS)则是保证用户在浏览器中输入域名之后,可以访问到对应的网站服务器。那这个过程到底是如何进行的呢?DNS记录DNS记录是位于权威DNS服务器中的指令,提供域和主机名相关的详细信息,
芝士年糕 芝士年糕
2年前
DNS域名详细解析过程
最近需要搭建一个网站,需要域名解析和备案了,租了一个很便宜的服务器,而且服务超级好,有兴趣私聊我。什么是DNS域名解析我们首先要了解域名和IP地址的区别。IP地址是互联网上计算机唯一的逻辑地址,通过IP地址实现不同计算机之间的相互通信,每台联网计算机都需要通过IP地址来互相联系和分别。但由于IP地址是由一串容易混淆的数字串构成,人们
人间小土豆 人间小土豆
3年前
域名注册很复杂吗?
域名注册其实并不难,想好你要注册的域名后缀及名称,选定注册的服务商品牌,在其官网平台按流程购买支付即可。在了解这个问题之前,我们先了解一下域名会涉及的相关问题:一、什么是域名?域名(DomainName)是由一串字符组成的,域名指向某一个IP地址。这个时候域名就应运而生了,域名的出现解决了记忆困难的问题,这个是你不再需要去记那么难记的IP地址,你只需要记住
Stella981 Stella981
3年前
Linux查看DNS服务器及设置DNS服务器
DNS(DomainNameSystem,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。一台主机的dns服务器的好坏会直接影响我们上网的速度以及网站的访问,今天我们一起来看一下如何为Linux系统配置好用的公共DNS.1\.查看服务器的DNS方法一,查看
Stella981 Stella981
3年前
Apache解析和绑定域名
转载修改 如果你想让你上线项目的域名解析的是你本地的IP,该怎么做呢?难道要一个个的改配置文件吗?例:域名为 aaa.com端口默认为80.我试图修改为8080端口,但是出错了1.本地hosts什么是本地hosts?我们知道访问一个域名,通过dns服务器得到该域名所指向的服务器ip地址,然后通过ip地址和服务器建立连接,
Stella981 Stella981
3年前
Linux下DNS简单部署(主从域名服务器)
一、DNS简介DNS(DomainNameSystem),域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。DNS服务器的作用就是
Wesley13 Wesley13
3年前
CDN与智能DNS原理和应用
1.cdn概念,DNS概念CDN:CententDeliveryNetwork(内容分发网络)使用户可以就近取得所需内容,提高用户访问网站相应速度CDN更智能的镜像缓存流量导流;DNS:DomainNameSystem域名系统域名和ip地址相互映射的一个分布式数据库,不用去记住被机器读取的ip地址CDN是内容分发网络,
Wesley13 Wesley13
3年前
CDN内容分发服务原理与传统请求剖析
1传统访问页面方式  (1)用户提交域名  (2)浏览器对域名解析,找不到对于的IP;再到操作系统,还是没有;再到路由器,    再没有就到DNS服务器找  (3)最后找到对应的IP地址,向域名的服务主机发出数据访问请求  (4)服务器就返回页面的内容给客户端  但是在这里的问题就是如果访问量很大的网站的话,比如
DevOpSec DevOpSec
1年前
CoreDNS企业级应用
1.IP地址会有变更,程序配置IP地址,所有涉及到此IP的地方都需要改变,对运维和研发都不友好2.IP不容易被记住引入域名来替换IP,这样业务使用唯一标识域名,域名可以通过DNS服务器解析成IP供业务三层通信使用。通过域名解耦了业务和IP,如果域名对应的IP有变动,修改域名解析即可,不用业务做调整。