如何解决域名解析不生效问题?

简介: 文中对域名解析不生效的原因进行了分析,并针对最常见的本地递归域名服务器缓存不生效的问题提出了解决方案,尤其移动域名解析HTTPDNS对无线场景下的应用特别有效。

一、前言

域名解析不生效产生的原因很多,除了网络不可用, 域名劫持(已有成熟解决办法)等因素之外, 按照排查链路先后顺序列举如下:

1.1 域名状态是否正常

先检查域名的状态,可以查看注册服务商提供的 whois 域名信息,如果域名状态为 clienthold 或 serverhold 状态,说明域名是被禁止解析的。这种状态下,即使设置了域名解析,也无法生效,域名无法被访问到,需要联系域名注册商取消这个状态。

1.2 权威修改是否已经修改生效

请确认权威DNS的域名解析记录已修改成功。

1.3 递归DNS缓存记录是否已更新

修改域名解析后,还取决于各运营商递归DNS的缓存是否生效。

1.4 客户端DNS缓存记录是否已更新

客户端在老的解析记录TTL过期前无法更新。

其中1.3,1.4是常见不生效原因,长时间无法生效大多由于1.3导致。

二、域名解析不生效解决办法

2.1 通过递归DNS解决

2.1.1 方法一:使用HTTPDNS

(1) HTTPDNS简介

HTTPDNS使用HTTP协议进行域名解析,代替现有基于UDP的DNS协议,域名解析请求直接发送到HTTPDNS服务器,从而绕过运营商的Local DNS,能够解决Local DNS造成的域名劫持调度不准确域名解析不生效三方面问题,并且能够提升域名解析效率。

(2) HTTPDNS原理

HTTPDNS与传统的域名解析流程对比如下图所示。

screenshot

                          图一  HTTPDNS与传统DNS对比图

(3) HTTPDNS如何使用

参见文档如何使用HTTPDNS

(4)使用HTTPDNS有什么限制?

HTTPDNS需要修改应用的DNS解析过程,因此主要适用于C/S架构的场景。

对于无法修改域名解析过程的场景,如PC浏览器访问、微信H5页面访问都无法使用HTTPDNS。

2.1.2 方法二:使用公共DNS

上面提到,由于ISP提供的递归域名服务器质量参差不齐,导致比较容易出现解析失败、解析不生效等问题,因此部分厂商提供了公共DNS解决这个问题。

常见的公共dns有:

DNS 服务器 IP 提供方名称 提供方国家
8.8.8.8 google 美国
4.4.4.4 google 美国
223.5.5.5 阿里巴巴 中国
223.6.6.6 阿里巴巴 中国
114.114.114.114 114dns 中国
114.114.115.115 114dns 中国
2.1.3 两种方法优劣对比
方法名 实现简便程度 通用性 合计
HTTPDNS 7 7 14
公共DNS 9 1 10

备注:满分10分,分数越高说明方法优势越大

对上面对比做一个说明:

(1)HTTPDNS使用时需要开发者修改DNS解析流程,因此只适用于C/S架构的应用,对于PC浏览器、微信H5等场景不适用,程序编写也有一定的工作量,好在国内的HTTPDNS厂商都提供了封装好的SDK和示例代码供开发者使用和参考,大大降低了实现难度。

(2)使用public dns的方法通用性很低,因为需要每个客户都对自己终端的DNS服务器配置进行修改,由于需要面向庞大的、水平参差不齐的终端用户,这种方式对于开发者而言实施难度非常大。

2.2 通过客户端自身解决

对于客户端缓存结果不能更新的问题,可以通过强制刷新系统DNS缓存来删除老的解析结果。以windows系统为例,方法如下:

打开windows命令行,执行ipconfig/flushdns命令清空DNS缓存

screenshot

                        图二 Windows系统情况DNS缓存方法示意图

三、悲催的域名解析不生效问题

尽管权威DNS系统属于变更相对较少的一个底层服务,但系统管理员可能还会在以下几种情况下变更DNS服务器的域名解析记录:

(1)域名对应IP变更(替换、增加、减少等情况)

(2)接入CDN系统,增加域名的CNAME记录

(3)系统受到攻击时切换IP躲避攻击!!!

(4)其他需要变更的情形

修改解析记录后常见难题是:不生效

screenshot

                                   图三   域名解析不生效示意图

下面首先看看域名解析的流程。

四、域名解析过程分析

以常见的递归解析方式为例,说明解析流程

screenshot

                                图四  域名解析流程示意图

上图是相对完整的域名解析流程(假设各个环节的缓存没有命中):

1) 用户终端发起域名解析请求www.abc.com

2)本地递归域名服务器向根域名服务器(.)请求并得到.com域名服务器的IP地址

3)本地递归域名服务器向.com域名服务器请求并得到abc.com权威域名服务器的地址

4)本地递归域名服务器向abc.com发出www.abc.com的解析请求并得到返回结果

5)用户终端从本地递归域名服务器得到最终的解析结果

五、域名解析不生效根源

5.1 域名结果缓存环节分析

域名解析不生效(生效慢)是由于域名解析结果被缓存住,并且缓存结果短时间无法更新导致的。

域名解析可能在访问终端系统、本地递归域名解析服务器两个环节被缓存住,如下图所示。

screenshot

                               图五 域名解析结果缓存环节分析示意图

5.2 终端缓存特征

终端的缓存是由终端应用(如PC浏览器)控制的,一般情况下会遵循域名解析结果的TTL规范,也就是在域名有效期过期后会自动重新请求,因此这个时间是可预期的,也是可控的(通过修改权威TTL)。

5.3 递归域名服务器缓存特征

本地递归域名服务器一般由提供服务的ISP设置,服务器自身也是由ISP维护,公网上存在大量的递归域名服务器不遵循权威的TTL,导致我们的域名解析修改不生效(全球生效时间最长可能有72小时之久)。

由上面的分析可以知道,域名解析不生效最重要的诱因是递归域名服务器不能及时更新解析结果。

六: TIPS

耐心看到这里的读者必须予以奖励,这里提供几个域名解析的几个TIPS。

6.1 域名解析从入门到中级

看完这篇https://yq.aliyun.com/articles/58967就欧了。

6.2 无线场景下的域名服务器设置

Android/iOS在wifi接入场景下可以通过在系统的设置中找到修改DNS服务器的入口,但非wifi的网络制式接入(如2/3/4G网络)无法修改DNS服务器配置,因此当ISP为我们配置的默认递归域名服务器不合理时,就会碰到调度精确性的问题,这个问题可以参考移动场景下如何实现就近接入?

6.3 黑科技:解析实时生效方法

上面通过改进递归DNS设置(使用HTTPDNS或者配置公共DNS),可以确保域名解析结果在TTL过期后生效,但如果TTL设置时间较长(如10分钟),这时候我们仍然需要等待比较久的时间才能看到解析结果生效。

有没有更好的办法? 从第五节的分析来看,域名解析不生效的关键环节之一是递归DNS服务器缓存的域名解析结果需要等待TTL过期才会去权威更新,这个等待时间能否消除掉?

答案是肯定的。如果权威解析记录修改后,能够同步更新递归DNS的缓存记录,就可以实现解析记录的实时生效。

这种特性只能通过递归DNS和权威DNS配合才能实现,阿里云云解析即将发布支持解析记录修改实时生效的版本,敬请期待。

HTTPDNS产品页

HTTPDNS原理介绍

HTTPDNS快速开始

云解析产品页

目录
相关文章
|
域名解析 缓存 网络协议
阿里云DNS专家,手把手教你定位域名解析不生效
域名解析不生效、ping域名IP地址不正确、网站打不开,你是否还在为这些问题困扰? 阿里云DNS专家,手把手教你庖丁解牛,定位域名解析不生效原因
30002 0
|
安全
阿里云服务器被xmrigMiner及pnscan及伪装httpd的病毒入侵排查记录
阿里云服务器被xmrigMiner及pnscan及伪装httpd的病毒入侵排查记录
1259 0
|
3月前
|
人工智能 安全 NoSQL
Dify+DeepSeek+夸克 On DMS 实现联网版DeepSeek服务
阿里云DMS推出一站式AI应用部署解决方案——Dify+DeepSeek on DMS,限量50个名额,先到先得。
Dify+DeepSeek+夸克 On DMS 实现联网版DeepSeek服务
|
8月前
|
机器学习/深度学习 监控 安全
智能混凝土:自我修复与环境感应的建筑材料
【10月更文挑战第21天】智能混凝土是一种集自我修复与环境感应于一体的先进建筑材料。通过复合智能型组分,智能混凝土能够实现自感知、自适应和自修复,显著提高结构的耐久性和安全性,减少维修成本,促进环保节能。未来,智能混凝土将向多功能化、智能化和绿色化方向发展,为建筑行业带来革命性变革。
|
12月前
|
弹性计算 自然语言处理 负载均衡
部署高可用WordPress网站
高可用服务是另外一个高频使用的场景,编写模板的流程和《部署单点WordPress网站》一样,但涉及的资源更多一些。本文以《部署高可用WordPress网站》为例,介绍高可用部署类的模板如何编写。
81277 8
|
域名解析 缓存 运维
【域名解析DNS专栏】域名解析故障排查手册:常见问题与解决方案
【5月更文挑战第22天】【DNS故障排查手册】解决域名无法解析、速度慢、污染劫持及配置错误问题。检查网络、清理缓存、更换DNS服务器、使用HTTPS、DNSSEC及CDN。示例:使用nslookup查询域名解析。定期检查优化DNS服务器,确保稳定安全。
1839 4
【域名解析DNS专栏】域名解析故障排查手册:常见问题与解决方案
|
编解码 移动开发 C++
RTMP协议深度解析:从原理到实践,掌握实时流媒体传输技术
RTMP协议深度解析:从原理到实践,掌握实时流媒体传输技术
1656 0
RTMP协议深度解析:从原理到实践,掌握实时流媒体传输技术
|
域名解析 缓存 网络协议
使用阿里云 运营商DNS缓存刷新功能,解决容灾问题
随着互联网应用的广泛应用,许多企业都采用了多地域部署来解决容灾的问题。但是,当出现故障时,需要快把流量切换到备用节点。然而,DNS 缓存的存在可能导致流量无法快速切换,从而影响业务的正常运行。为了避免这种情况的出现,阿里云推出了运营商 DNS 缓存刷新功能,本文将介绍如何使用该功能解决容灾问题。
981 1
|
人工智能 大数据 数据处理
云计算巨头大比拼:AWS、Azure和Google Cloud的终极对决
在云计算领域,AWS、Azure和Google Cloud三家巨头一直在竞相争夺市场份额。本文将从性能、可靠性、定价策略以及生态系统等方面对它们进行全面比较,帮助读者做出明智的选择。
1531 0
|
存储 弹性计算 网络协议
一文读懂OSS、NAS、EBS有什么区别?
本文主要介绍常用的存储类型及它们之间的对比差异,辅助帮助大家在不同需求和场景下选择合适的存储类型。