`
大涛学长
  • 浏览: 93496 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

《DNS稳定保障系列3--快如闪电,域名解析秒级生效》

阅读更多
在刚刚过去的双十一,又是一个全民狂欢的盛宴,天猫双十一的成交量高达2684亿。无数小伙伴在淘宝、天猫里买买买,今年你又剁手了多少?言归正传,在你疯狂秒杀的时候,有没有发现,今年的购物体验一如既往的好,访问速度快,购物体验那个流畅。我在这里自豪的向大家宣布,我们阿里云解析DNS又一次完成了今年双十一的安保任务!大促的稳定,离不开DNS团队的默默奉献。 
今天我们来说说DNS服务稳定保障的重要环节--解析生效速度。对于DNS服务提供商来说,解析生效速度是一个关键议题,也是衡量系统能力的一个重要指标。当前主流DNS厂商的权威解析服务器大都采用了全球多地域多机房分布式集群部署的方式,以达到更低的解析时延,这同时也对解析管控系统的性能和跨地域跨机房的数据同步能力提出了更大挑战。 
对于用户来说,大量线上服务和异地多活系统的构建是通过DNS来支撑的,更快的解析生效速度意味着更强的系统掌控能力和故障恢复能力,是系统稳定性和容灾能力评估的重要一环。让我从多个维度带您了解快速生效这个热点话题。

DNS解析原理
-------

 

![1_DNS_](https://yqfile.alicdn.com/70920bde8a40d11aef2b80cc1bb5e57dc39e14d0.png)

 

图: DNS解析原理

 
总的来说:客户端发起递归DNS请求,递归DNS服务器(大多数情况下为运营商DNS或者公共DNS)如果在TTL时间内有缓存则直接返回解析结果(1→8),否则会通过迭代查询请求多级的DNS权威服务器,并最终将查询结果返回给客户端(1→2→...→7→8),同时缓存本次查询结果。

云解析权威解析怎么保证秒级生效
---------------

从DNS解析原理中我们可以看到,递归服务器在TTL时间内会缓存权威域名服务器的解析结果。因此解析生效包含2个环节:首先域名的权威DNS服务器必须生效,然后还需要等各地递归DNS生效。各地递归DNS生效时间可以TTL控制,阿里云云解析作为权威服务器,付费版TTL可以最小设置为1秒。接下来重点介绍云解析怎么保证权威秒级生效。

### 软件层面

*   **强大的业务管控系统**

云解析依托阿里云内部资源,构建了稳定可靠的业务管控系统,为客户提供可视化的域名解析管理平台和OpenApi接口。为了避免单用户瞬时超高频调用等异常情况对其他用户造成影响,管控系统采取了租户隔离的策略:各个用户域名的解析调用互不影响,系统整体保证隔离性、公平性、可靠性、可控性。同时针对不同业务场景,采取了对应的隔离策略,以保证总体稳定。 
对于分布式系统架构,CAP 理论是系统设计中的一个重要理论。也就是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错(Partition tolerance),三者不可得兼。BASE理论是对CAP原则中一致性和可用性权衡的结果,BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)。其最核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。阿里云云解析在系统设计上采用此理念:即使某个域名有业务调用洪峰,也能保证该域名最终解析生效。且由于存在租户隔离策略,其他用户不会受到影响。

![2_CAP_](https://yqfile.alicdn.com/14440625206ec57f0f069e839dc91858f86e01a1.png)

 

图: CAP理论

 
对账是检验上下游系统间数据最终一致性的一种保障手段。云解析建立了各个环节的对账体系,如果有不一致的情况发生,会自动触发报警、自动处理异常,能有效保证解析实时生效以及异常处理自动化。 
随着用户的持续增加,系统稳定性和性能挑战不容小觑。另外,由于当前分布式系统、微服务化的流行和大规模部署,一次请求往往需要涉及到多个服务。因此需要一个可以帮助理解系统行为、用于分析性能问题的工具,它能够将跨应用的所有调用链性能信息集中展现,以便发生故障的时候,可以快速定位和解决问题,于此同时,它还可以对每个具体调用阶段做耗时分析,进而做针对性优化。阿里云云解析建立了全链路监控体系,使系统性能数据化,规范化,针对于监控结果反馈,持续压榨系统极限性能。 
此外,管控系统还有很多未讨论的点,比如系统全栈监控、限流、熔断、降级、异地多活高可用、弹性扩容等,在这里不再赘述。

*   **高性能权威DNS** 
    ADNS是阿里云自研的高性能权威DNS解析软件,可以在普通服务器上,实现千万级的QPS。云解析管控系统和ADNS配合,可以将客户的解析配置,实时同步到在全球部署的权威解析服务器节点上。
*   **缓存联动刷新** 
    由于阿里DNS是全链路DNS厂商,可以做到权威DNS和递归DNS之间使用私有协议通信。当用户使用阿里DNS作为DNS托管方,同时使用阿里公共DNS作为递归DNS时,可以很方便的做到缓存联动刷新,可以获取更低的解析生效时延。

### 硬件层面

*   **高性能服务器** 
    云解析权威采用阿里定制高性能服务器,采用软硬结合的方式解决业务性能极致、成本最优、高可靠等问题。
*   **专线网络** 
    借助集团全球加速能力来进行全球访问提效,同时达到配置下发实时生效。

### 安全防护

DNS作为网络基础设施,经常会受到DDoS攻击,这会对解析生效时间产生重大影响。DDoS (Distributed Denial of service)攻击通过僵尸网络利用各种服务请求耗尽被攻击网络的系统资源,造成被攻击网络无法处理合法用户的请求。 通常DDoS防御技术有清洗和黑洞两种方式,云解析综合利用两种防御方式,建立了坚固的安全防护壁垒。付费版提供了2种安全防护等级,保障用户在遭受攻击的时候,也有丝滑般流畅体验。

*   **DNS攻击基本防御**:针对付费版本绑定的所有域名,提供基础DNS攻击保护能力,基础DNS攻击防御上限不超过每秒1000万次,适用于一般情况下的DNS攻击预防保障。
*   **DNS攻击全力防御**:针对版本绑定的所有域名,提供全面的DNS攻击保护能力,能承受每秒过亿次的DNS攻击,适用于频繁受到DNS攻击时进行全力保护。

### SLA

云解析付费版提供了100%的SLA,建立了实时解析生效监控系统。另外,还通过设置服务基线,定时运行端到端测试用例的方式来监测生效时长,保证秒级生效。

解析生效测试方法
--------

常见的测试域名解析生效的方法有四种:阿里云云解析提供的网页版域名检测工具、阿里巴巴DNS本地检测工具、测试命令dig或nslookup、拨测工具。具体可见我们的[官方帮助文档](https://help.aliyun.com/knowledge_detail/39834.html)。

解析不生效常见原因
---------

*   **域名状态异常** 
    域名状态对解析生效会产生直接影响。注册商设置暂停解析(clientHold)、 注册局设置暂停解析(serverHold)、域名到期等都会造成解析不生效。可以使用[whois工具](https://whois.aliyun.com/)排查域名状态信息,比如下图所示域名就是因为域名是注册商设置暂停解析(clientHold)造成的解析不生效。

 

![3_Whois_](https://yqfile.alicdn.com/216a964fcf42a1d6af81ce87ddf5114eb0f3a54b.png)

 

图: Whois结果示例

*   **域名DNS服务器不是用的阿里云DNS** 
    阿里云云解析权威服务器的后缀为alidns.com或者hichina.com。如果上述whois信息显示域名使用的DNS服务器(Name server)不是阿里云云解析权威,则需要咨询域名当前DNS服务商。
*   **域名递归解析过程被污染** 
    由于常用的DNS查询没有认证机制、且是利用无连接的UDP协议,因此DNS查询就非常容易被篡改。利用[阿里云域名检测工具](https://zijian.aliyun.com/#/domainDetect),可以自助诊断是否被污染:

 

![4_](https://yqfile.alicdn.com/01b1ef7ed5c44334406da4e688c7cc258095cbee.png)

 

图: 域名检测到被劫持示例

 
更多内容,可参考[官方帮助文档](https://help.aliyun.com/knowledge_detail/39842.html)。

解析不生效解决方法
---------

解析不生效的解决方法有很多,但都是不是万能的,还是需要具体问题具体分析。排除域名本身问题以外,常见还有以下解决方案:

*   **检查防火墙** 
    检查防火墙iptables,查看是否有拦截53端口的相关规则。
*   **刷新本地DNS缓存** 
    Windows:ipconfig /flushdns 。 Linux:重启nscd服务或者关闭nscd服务后再测试。
*   **更换本地DNS服务器** 
    如果本机可以访问公网,可以添加阿里云公共DNS(V4:223.5.5.5、223.6.6.6。V6:2400:3200::1 2400:3200:baba::1)

 

[原文链接](https://yq.aliyun.com/articles/726674?utm_content=g_1000088281)

本文为云栖社区原创内容,未经允许不得转载。
分享到:
评论

相关推荐

    DNS域名解析操作说明

    ### DNS域名解析操作说明 #### 一、DNS域名解析简介 DNS(Domain Name System)即域名系统,是一种将域名转换为IP地址的服务机制。在互联网上,数据传输是以IP地址进行定位的,但由于数字组成的IP地址难以记忆,...

    Fast-flucos:基于DNS流量的Fast-flux恶意域名检测方法.docx

    2. 域名解析分析:对捕获的DNS流量进行分析,解析域名的IP地址信息。 3. 行为特征检测:检测域名的行为特征,如单域名映射的IP地址量较大,IP地址所在地理位置(国家或地区)分布较广,IP地址变化频度较高等。 4. ...

    SANGFOR_NGAF_6.8_DNS-Mapping配置指导.pdf

    5. 功能简介:NGAF 6.8 的 DNS-Mapping 功能允许用户将域名映射到 IP 地址上,从而实现域名解析和负载均衡。 6.应用场景:DNS-Mapping 功能广泛应用于各种网络环境中,如数据中心、云计算、物联网等。 7. 必要条件...

    使用Java实现DNS域名解析的简单示例

    在Java编程中,DNS(Domain Name System)域名解析是将人类可读的域名转换成IP地址的过程。这个过程可以通过Java的内置类`InetAddress`来实现。以下是一个使用Java进行DNS域名解析的简单示例: ```java import java...

    DNS负载均衡技术--同一个域名对应多个ip的方法

    DNS负载均衡技术--同一个域名对应多个ip的方法

    DNS_DNS.rar_dns _dns 解析_dns服务器_dns解析_域名解析

    在我们的压缩包文件中,"DNS_DNS.rar_dns _dns 解析_dns服务器_dns解析_域名解析" 提供了一些关于DNS解析的资源,包括"www.pudn.com.txt" 和 "DNS域名解析"。 1. **DNS解析流程**: - **查询发起**:当用户输入一...

    DNS域名解析代碼

    这段代码展示了如何实现一个简单的DNS域名解析器。代码基于Windows环境编写,并使用了Winsock库来处理网络通信。 ### 2. 文件结构与包含头文件 - **头文件**: - `#include<iostream>`:用于标准输入输出。 - `#...

    Dns域名解析程序

    DNS域名解析程序是互联网通信中的关键组件,它负责将用户友好的主机名(例如www.example.com)转换为网络可以理解的IP地址(如192.168.1.1)。这一过程被称为DNS解析,它是互联网服务访问的基础。在这个过程中,DNS...

    分布式-多活数据中心如何实现DNS域名解析和负载均衡.docx

    如前所述,当用户尝试访问某个网站时,其设备会通过一系列步骤完成DNS域名解析过程,具体包括: 1. **客户端发出DNS请求**:用户通过浏览器等客户端软件访问网站时,会首先向本地DNS服务器发送域名解析请求。 2. **...

    行业分类-外包设计-域名解析方法、DNS递归服务器及域名解析系统的说明分析.rar

    通过学习和理解DNS递归服务器的工作方式以及域名解析系统,我们可以更好地管理和优化网络服务,为用户提供更稳定、更快速的在线体验。对于外包设计团队而言,这样的知识也能帮助他们在设计网站或应用程序时考虑到...

    简易DNS域名解析

    1、简易DNS域名解析程序,当其他电脑的DNS服务器IP设定为执行了该程序的机器的IP时,能够正常访问intnet 2、简单域名限制,对某个域名范围内的查询拒绝解析 生成一个out.txt文件,包含了所有访问了禁用域名的ip地址...

    DNS 域名服务协议

    这个过程保证了域名解析的速度和可靠性,即便在网络环境不稳定的情况下,也能通过缓存机制来提高解析效率。 综上所述,DNS域名服务协议是互联网不可或缺的基础服务之一,它通过分布式网络目录服务的方式,实现了...

    使用dig/nslookup命令查看dns解析的方法步骤

    4.部分解析异常(配置多个域名服务器时,多个服务器解析结果不一致,需要确认是否在DNS服务器上配置添加的解析记录一致) 简单使用解析一下www.baidu.com结果如下: 可以看到有请求段和应答段,最后解析出的A记录...

    Python库 | certbot_dns_cloudxns-1.1.0-py2.py3-none-any.whl

    CloudXNS是一家提供DNS解析服务的提供商,它提供了丰富的API接口,允许开发者或管理员进行自动化操作,如添加、删除或修改DNS记录。在结合Certbot使用时,CloudXNS可以帮助验证Certbot在申请SSL证书过程中对域名的...

    DNS正反向域名解析实例

    _dns正反向域名解析实例”是DNS的一个重要应用,涉及到DNS正向域名解析和反向域名解析两个方面。 一、DNS正向域名解析 DNS正向域名解析是将域名转换为IP地址的过程。例如,用户输入www.ops.org时,DNS系统将其解析...

    c# 域名解析 dns

    本文将深入探讨C#进行域名解析的原理、方法以及如何实现自定义的DNS解析器。 首先,我们需要理解DNS的工作机制。DNS是一种分布式数据库系统,它将人类可读的域名转换为网络设备可以识别的IP地址。这个过程通常由DNS...

    10:DNS域名解析服务.docx

    DNS 域名解析服务 DNS(Domain Name System)域名系统是一项核心服务,可以作为域名和 IP 地址相互映射的分布式数据库,提供域名与 IP 地址的解析服务,能够使人们更加方便的使用域名访问互联网而不是记住繁琐的 IP...

    nodejs实现自定义dns域名解析服务器

    依赖可能包括处理DNS请求的库,如`dns-server`或`dns`模块。安装完成后,运行`npm start`启动服务器。一旦服务器运行,它就会监听DNS查询,并根据`test.js`中的配置返回响应。 项目目录中的其他文件起着不同的作用...

    双网卡时的DNS域名解析问题

    双网卡时的DNS域名解析问题

Global site tag (gtag.js) - Google Analytics