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

2024-04-10 23:52
文章标签 智能 接入 揭秘 dns geo 就近

本文主要是介绍【就近接入,智能DNS-Geo DNS ,大揭秘!】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

做过后端服务或者网络加速的小伙伴,可能或多或少都听说过,智能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 ,大揭秘!】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/892511

相关文章

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

IDEA接入Deepseek的图文教程

《IDEA接入Deepseek的图文教程》在本篇文章中,我们将详细介绍如何在JetBrainsIDEA中使用Continue插件接入DeepSeek,让你的AI编程助手更智能,提高开发效率,感兴趣的小... 目录一、前置准备二、安装 Continue 插件三、配置 Continue 连接 DeepSeek四

使用Python实现表格字段智能去重

《使用Python实现表格字段智能去重》在数据分析和处理过程中,数据清洗是一个至关重要的步骤,其中字段去重是一个常见且关键的任务,下面我们看看如何使用Python进行表格字段智能去重吧... 目录一、引言二、数据重复问题的常见场景与影响三、python在数据清洗中的优势四、基于Python的表格字段智能去重

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Python3脚本实现Excel与TXT的智能转换

《Python3脚本实现Excel与TXT的智能转换》在数据处理的日常工作中,我们经常需要将Excel中的结构化数据转换为其他格式,本文将使用Python3实现Excel与TXT的智能转换,需要的可以... 目录场景应用:为什么需要这种转换技术解析:代码实现详解核心代码展示改进点说明实战演练:从Excel到

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con