美文网首页
【就近接入,智能DNS-Geo DNS ,大揭秘!】

【就近接入,智能DNS-Geo DNS ,大揭秘!】

作者: wn777 | 来源:发表于2024-04-09 22:37 被阅读0次

    做过后端服务或者网络加速的小伙伴,可能或多或少都听说过,智能DNS或者Geo DNS,就是根据用户的位置,返回离用户最近的服务节点,就近接入,以达到服务提速的效果。
    那么大家有没想过,这个背后的原理是什么?为什么能根据用户的位置返回离用户最近的服务节点,本文带大家一探究竟。

    什么是智能DNS

    传统DNS解析,不判断访问者来源,会随机选择其中一个IP地址返回给访问者。而智能DNS解析,会判断访问者的来源,为不同的访问者智能返回不同的IP地址,可使访问者在访问网站时获取就近的IP地址,能够减少解析时延,并提升网站访问速度。

    我们参考阿里云智能DNS给出的图例,如下

    智能DNS图例

    如果第一次接触,不了解DNS原理,看这个图可能还是会一头雾水,如何根据用户位置返回就近节点ip,这个发生在哪一步?先别急,解释上面这张图之前,我们先解释下什么是DNS。

    DNS

    域名层级

    域名层级

    什么是DNS

    DNS简单说就是把域名转为ip的过程。转换过程涉及到3个服务器,分别是根域名服务器,顶级域名服务器,一级域名服务器,根域名服务器 不负责解析具体域名,而是返回 顶级域名服务器(TLD: top-level-domain server),用于继续寻找。顶级域名服务器TLD 也不负责解析具体域名,而是继续返回 一级域名服务器。一级域名服务器负责将域名解析成ip。

    DNS工作过程
    1. 根域名解析:返回顶级域名解析服务器
    2. 顶级域名解析(TLD top):返回一级域名解析服务器
    3. 一级域名解析:根据域名,返回二级域名解析结果,即最终ip

    DNS演示:从域名到ip,完整过程

    根据上述过程,做个演示,首先找个根域名服务,根域名服务器全球有13个,如下,这里随便选择一个即可,

    全球根域名服务器

    选择完根域名服务器便可开始上述的流程。通过根域名服务器,获得顶级域名服务,再通过顶级域名服务器,获得一级域名服务器,最终通过一级域名服务器解析出ip,如下,以www.wallstreetcn.com这个地址为例

    解析过程

    以上便是DNS的解析ip的过程,那么回到最开始的问题, 智能DNS发生在哪一步?

    智能DNS在这里

    智能DNS发生在哪一步,答案是 一级域名服务器解析ip这里。

    假如我们使用阿里云的智能DNS对域名和ip进行绑定,顶级域名服务器返回的一级域名服务器是阿里云的DNS服务器,这个阿里云DNS服务器便是智能DNS,其会根据调用者的出口ip等信息判断位置,从而决定返回哪个ip。
    此时我们再看下面这张图,会发现3-8的过程,便是上述 :根域名服务器 → 顶级域名服务器 → 一级域名服务器 的过程,

    智能DNS在这里

    实际验证下

    实际验证下, 域名 ga-bp149opsz5ox0laguk2fz.aliyunga0019.com,后面有3个区域的节点(北京,上海,杭州)。

    域名-绑定ip

    而当我身处北京访问这个域名时,只会返回北京区域的节点ip。如下,这就是因为在 一级域名服务器 即下图中的vip3.alidns.com可以根据我的位置,返回离我最近的区域节点ip,这便是云解析DNS,也是我们最开始提到的智能DNS(Geo DNS)。

    演示
    至此,我们便发现 原来所说的智能DNS,便是服务厂商们(比如国内阿里云,国外AWS等服务厂商公司)提供的一级域名解析服务器所具备的功能。

    延伸,DNS中的概念

    此外在补充一些DNS中常见的概念,

    递归DNS服务器,典型的CloudFlare 1.1.1.1

    • 我们平常说的 公共DNS服务器,一般都是指递归 DNS 服务器,当我们对其发起域名查询时,其把上面的3步 根域名查询,顶级域名查询,一级域名查询 都去做了,所以也叫它递归DNS 服务器。它由一些云服务厂商提供,属于公有服务,典型的如CloudFlare 1.1.1.1,把 DNS 查询自动化了,只要向它查询就可以了(如下图)。
      同时它内部有缓存,可以保存以前查询的结果,下次再有人查询,就直接返回缓存里面的结果。所以它能加快查询,减轻根域名等服务器的负担。
      一下出结果

    local DNS

    • Local DNS 是一个检查记录是否在本地缓存中的组件,它的查询是递归/迭代查询。 客户端和Local DNS 是递归查询,这是最常见的一种查询方式。 具体来说就是如果Local DNS 不能响应请求,它会代替客户端向其他根域名服务器继续发出查询请求,即替客户端继续查询,而不是让客户端自己进行下一步查询。

    权威域名服务器(Authoritative Name Server)

    • 一级域名服务器的正式名称叫做权威域名服务器,"权威"的意思是域名的 IP 地址由它给定,不像递归服务器自己做不了主。我们购买域名后,设置 DNS 服务器就是在设置该域名的权威服务器。

    参考

    dns查询原理
    https://www.ruanyifeng.com/blog/2022/08/dns-query.html
    智能DNS解析
    https://help.aliyun.com/zh/dns/intelligent-dns-resolution?spm=a2c6h.13066369.0.0.4b2f3d50nLfESw

    相关文章

      网友评论

          本文标题:【就近接入,智能DNS-Geo DNS ,大揭秘!】

          本文链接:https://www.haomeiwen.com/subject/litqxjtx.html