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

手机游戏开发者 2024-9-26 11:10:00 32 0 来自 中国
我们在上网时如果想要访问到另一台呆板上的内容,通常只必要直接输入一串所在,比方:www.upyun.com,就可以或许精确访问到本身想要访问的网站。但是现实上这只是方便我们影象的字符情势网络标识,真正让我们的呆板和另一台呆板进行沟通的是 IP 所在。只不外 IP 所在无论是输入照旧影象都非常贫苦,因此才诞生了域名体系。那么域名是怎么毗连到谁人服务器的 IP 呢?这就和我们本日要说的域名体系 DNS 有关了。
DNS 是什么?

由于故意义的名字可以体现主机的账号、工作性子、所属的地区和构造等,从而便于影象和利用。以是用户会更倾向于用名字来标识主机,DNS 就是为这种必要而开发的。DNS 代表域名体系(Domain Name System)。该体系会将域名(example.com)翻译成现实的 IP 所在。
DNS 的逻辑布局是一个分层的域名树,由 Internet 网络信息中心(InterNIC)管理着域名树的根,称为“根域”,根域用句号“.”体现,不外这个通常是省略的。必要留意的是全天下一共只有 13 台 IPv4 根域名服务器。
根域下面是顶级域(TLD),分为国家顶级域(ccTLD)和通用顶级域(gTLD)。国家顶级域利用国家和地区缩写代码,比方“cn”代表中国。通用顶级域就是我们常见的 com/net/org 等。
1.png 顶级域下面是二级域,这是正式注册给构造和个人的唯一名称,比方 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 服务器名称的 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 信息来测试。由于服务器分布在天下各地,因此不能 100% 确定 DNS 传播已在全部地方完成,但至少可以确认大抵的传播情况。比方,利用 Myssl 的 DNS 检测工具(https://myssl.com/dns_check.html#dns_check),可以快速查出差别地区差别网络下域名剖析的速率,及域名 DNS 信息。
4.png 读到这里,各人是不是对 DNS 修改后不收效的题目有了答案呢?进行 DNS 服务器或与域名体系相干的更改时,照旧要优先思量到 DNS 传播。只管可以通过 TTL 收缩传播时间,但由于一些不稳固因素,仍然必要一些时间才气使环球的每台服务器都更改为最新状态。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-24 10:11, Processed in 0.167932 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表