为什么更新了 DNS 记录不生效?

news2024/11/19 2:22:12

我们在上网时如果想要访问到另一台机器上的内容,通常只需要直接输入一串地址,例如: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 等。

顶级域下面是二级域,这是正式注册给组织和个人的唯一名称,例如 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 信息。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/541637.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言深度解析--函数

函数 函数的定义: 函数,又称为子程序,是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对独立性。 一般会有输入参数并有返回值,提供…

关于江苏专转本的十大真相,值得一看

【真相1】专转本考试题主要是大学相关科目的骨干老师出的。他们较长时间从事相应课程教学,专业领域较宽,学术造诣较高。具有副高及以上职称,年龄—般在55周岁以下。VX:hhkb5200【真相2】专转本考试题"紧扣《考试大纲》,大家要…

C++11 新特性

文章目录 🍪统一列表初始化🍪左值引用,右值引用🥛概念和作用🥛使用场景 🍪完美转发🍪可变参数模板 C11是C的一次大更新,出现了很多实用的语法和特性,所以我们很有必要学习…

[网络安全]DVWA之XSS(Stored)攻击姿势及解题详析合集

[网络安全]DVWA之XSS(Stored)攻击姿势及解题详析合集 XSS(Stored)-low level源代码姿势基于Message板块基于Name板块 XSS(Stored)-medium level源代码姿势双写绕过大小写绕过Xss标签绕过 XSS(Stored)-high level源代码姿势:Xss标签绕过 XSS(S…

汇编学习教程:灵活寻址(四)

引言 在上篇博文中,我们学习了 [bxsi] 的灵活寻址形式,由此讲解了汇编中的多重循环实现。那么本篇博文中,我们将继续学习灵活寻址其他实现形式。 本次学习从一道编程案例开始学起。 编程示例如下: assume cs:code,ds:datadata…

【Jmeter第二章】将Jmeter界面切换为中文显示

1、Jmeter临时切换为中文显示 注意:上面的配置只能保证本次运行是中文,如果要永久中文,需要修改Jmeter的配置文件 2、通过修改Jmeter配置文件设置为中文显示 1、在 Jmeter/bin目录下,找到:jmeter.properties 文件 2…

K_A39_012 基于STM32驱动W25Q32 模块读写数据 串口+OLED0.96显示

K_A39_012 基于STM32驱动W25Q32 模块读写数据 串口OLED0.96显示 所有资源导航一、资源说明二、基本参数参数引脚说明 三、驱动说明时序对应程序: 四、部分代码说明1、接线引脚定义1.2、STM32F103C8T6W25Q32 模块 五、基础知识学习与相关资料下载六、视频效果展示与程序资料获取…

LeetCode 429. N 叉树的层序遍历

429. N 叉树的层序遍历 描述 给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。 示例 示例1 输入&…

货拉拉Java开发实习

目录 1.Java的重载和重写有什么区别2.什么情况下需要用到重载3.有很多个字符串和变量,需要把它们加起来,这时候用String会有什么问题4.有没有其它的替代方案5.StringBuffer和StringBuilder有什么区别6.一个自定义对象,分别创建了两个实例&…

5分钟梳理银行测试,文末附带实战项目

很多银行招聘都要求有相关从业经验,这对于想跨入这个岗位的0经验从业同学可真犯了难 “你都不让我上岗,我哪来的工作经验呢?” 为了解决这个问题,小柠檬整理了本篇文章,从3个方面介绍银行项目是如何进行测试的 银行…

springboot---IoC 和 AOP

目录 引语IoC传统开发模式的弊端控制反转和依赖注入 AOP面向对象的局限性面向切面编程 总结 引语 Inversion of Control,缩写为IoC:控制反转 Aspect-oriented programming,缩写为AOP:面向切面编程 IoC和AOP是spring框架最核心的…

VMware Workstation 与 Device/Credential Guard 不兼容.在禁用 Device/Credenti

这个时候我们需要去关掉几个功能 1、关闭Hyper-V 打开控制面板首页,找到“程序”,然后找到“启用或关闭Windows功能”,找到“Hyper-V”,有勾中的全部都取消掉,如果这一步操作失败,不要紧,继续…

使用马哈鱼SQLFlow分析聚合函数中的数据流列

聚合函数通常将列作为参数,在本文中,我们将讨论在用作函数参数的列和聚合函数之间创建什么样的数据流。 1. COUNT() COUNT()可以采用COUNT(),也可以采用任何列名,甚至可以采用空参数。如果参数为空或为列,则参数和函…

DatenLord前沿技术分享 No.25

达坦科技专注于打造新一代开源跨云存储平台DatenLord,通过软硬件深度融合的方式打通云云壁垒,致力于解决多云架构、多数据中心场景下异构存储、数据统一管理需求等问题,以满足不同行业客户对海量数据跨云、跨数据中心高性能访问的需求。在本周…

【已解决】使用Arduino调试ARM时编译错误error: ordered comparison of pointer with integer zero的解决方法

在使用Arduino的资源库对STM32编程时,出现: error: ordered comparison of pointer with integer zero (byte* {aka unsigned char*} and int) 编译错误的解决方法。 Arduino因其开源和易用性,丰富的三方资源,受到很多人的喜欢…

Android无线调试

1、首先在系统环境变量——》新建——》"ANDROID_ADB_SERVER_PORT",值:手机的端口号 2、通过adb kill-server,adb start-server,重启abd 3、最后使用:adb connect ip:port(如:192.16…

【SpringBoot】SpringBoot 纯后端项目如何自定义异常页面(Whitelabel Error Page)

文章目录 背景安排方案步骤 验证 背景 一个短链服务,业务将长链接给我,我转换成短地址,用户访问短地址时,我再做redirect;没有前端,纯后端项目短链会有过期时间,过期后将返回错误信息某一天一个…

GPT 专业应用:如何让GPT策划方案

身为一名职场打工人,或多或少会面临需要写策划案的难题。 不管是策划一场线下活动,还是策划业务发展的方向; 甚至到生活中还需要策划婚礼,策划房屋装修,策划和朋友的聚会等等。那么如何快速积累经验,找准…

JavaScript全解析——Ajax教程(上)

AJAX 是Asynchronous JavaScript And XML的缩写。 它不是一种编程语言。它是一种基于HTML、CSS、JavaScript 和 XML,让开发更好、更快和更有互动的 Web 应用的技术。 什么是ajax 认识前后端交互 前后端交互就是前端与后端的一种通讯方式,主要使用的技…

关于一个C++项目:高并发内存池的开发过程(二)

文章目录 内存释放操作的总述thread cachecentral cachepage cachecentral cache的TODO实现何时维护这张映射表? tc_dealloc的修改申请大内存的适配写在最后 上篇文章梳理了内存申请操作的流程,大概测试了一下,没有发现什么问题。这篇文章将梳…