【就近接入,智能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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

three.js尝试渲染gbl模型成功!(三)

参照教程:https://cloud.tencent.com/developer/article/2276766?areaSource102001.5&traceId88k805RaN_gYngNdKvALJ (作者:九仞山) 通过最近两天查three.js入门教程了解到 这玩应支持包括 .obj、.gltf等类型的模型结构。 g…

Harmony鸿蒙南向驱动开发-RTC

RTC(real-time clock)为操作系统中的实时时钟设备,为操作系统提供精准的实时时间和定时报警功能。当设备下电后,通过外置电池供电,RTC继续记录操作系统时间;设备上电后,RTC提供实时时钟给操作系…

李廉洋:4.9黄金屡创新高。黄金原油晚间最新分析建议。

但当下不管是战争因素所带来的避险情绪影响还是美国降息与否所带来的经济影响都无疑还是支撑着黄金继续走高,那么接下来,只要市场不出现较大的利空影响,黄金都不会有较大的回调力度,所以我们当下不管是短线还是长线仍旧以继续看多…

urwid,一个好用的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个好用的 Python 库 - urwid。 Github地址:https://github.com/urwid/urwid Urwid 是一个功能强大的 Python 库,用于创建基于文本的用户界面&#xf…

Linux CPU利用率

Linux CPU利用率 在线上服务器观察线上服务运行状态的时候,绝大多数人都是喜欢先用 top 命令看看当前系统的整体 cpu 利用率。例如,随手拿来的一台机器,top 命令显示的利用率信息如下 这个输出结果说简单也简单,说复杂也不是那么…

[Java基础揉碎]System类

1) exit 退出当前程序 2) arraycopy: 复制数组元素,比较适合底层调用,一般使用 Arrays.copyOf完成复制数组(Arrays.copyOf其实底层也是用的System.arraycopy, 本质是一样的) int[] src{1,2,3}; int[] dest new int[3]; System.arraycopy(src, 0, des…

【SpringBoot3】Bean管理

1.Bean扫描 1.1传统Spring 标签&#xff1a;<context:component-scan base-package"com. example "/>注解&#xff1a;ComponentScan(basePackages "com.example") 1.2SpringBoot SpringBoot默认扫描启动类所在的包及其子包 2.Bean注册 如果要注…

【力扣 Hot100 | 第一天】4.10 两数相加

文章目录 1.两数相加&#xff08;4.10&#xff09;1.1题目1.2解法一&#xff1a;模拟1.2.1解题思路1.2.2代码实现 1.两数相加&#xff08;4.10&#xff09; 1.1题目 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c…

Docker容器应用为工业连接提供了新选择

一 智能数据管理 Docker容器应用能够被灵活部署在异构计算平台上&#xff0c;且仅需占用少量的资源&#xff0c;这可为工业4.0提供一种新的数据集成方案。Docker容器应用程序是提供特定功能的小型软件模块&#xff0c;可在自动化领域中用于智能数据管理。而Softing推出的新产品…

day55 最长递增子序列 最长连续递增子序列 最长重复子数组

题目1 300 最长递增子序列 题目链接 300 最长递增子序列 题意 找到整数数组nums的最长严格递增子序列的长度&#xff08;子序列并不改变原始的顺序&#xff0c;但是可以删除元素&#xff09; 动态规划 动规五部曲 1&#xff09;dp数组及下标i的含义 dp[i] 表示以nums[i…

【现代C++】委托构造函数

现代C中的委托构造函数&#xff08;Delegating Constructors&#xff09;是C11引入的特性&#xff0c;它允许一个构造函数调用同一个类中的另一个构造函数&#xff0c;以避免代码重复。这种特性在初始化对象时提高了代码的复用性和清晰性。 1. 基本用法 在同一个类中&#xf…

Harmony鸿蒙南向驱动开发-MMC

MMC&#xff08;MultiMedia Card&#xff09;即多媒体卡&#xff0c;是一种用于固态非易失性存储的小体积大容量的快闪存储卡。 MMC后续泛指一个接口协定&#xff08;一种卡式&#xff09;&#xff0c;能符合这种接口的内存器都可称作MMC储存体。主要包括几个部分&#xff1a;…

似曾相识:面向重复类型故障的可操作故障定位

导读 搜索引擎、在线视频和电子银行等在线服务系统在人们的日常生活中有着越来越重要的作用。但是&#xff0c;由于在线服务系统包含众多有着复杂依赖关系的组件&#xff08;例如服务器、容器和微服务等等&#xff09;&#xff0c;在线服务系统中的故障难以避免&#xff0c;并…

49 样式迁移【李沐动手学深度学习v2课程笔记】

1. 样式迁移&#xff08;Style Transfer) 计算机视觉的应用之一&#xff0c;将样式图片中的样式&#xff08;比如油画风格等&#xff09;迁移到内容图片&#xff08;比如实拍的图片&#xff09;上&#xff0c;得到合成图片 可以理解成为一个滤镜&#xff0c;但相对于滤镜来讲…

leetcode 常考题-动态规划算法-单词拆分

给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a; 输入: s "leetcode"…

七分钟,拿下口头offer

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen &#x1f9d1;‍&#x1f4bb;&#x1f9d1;‍&#x1f4bb;面2&#xff1a;行了…

每日一题 — 最大连续 1 的个数III

解法一&#xff1a;暴力枚举 先定义left和right双指针&#xff0c;left先固定在起始位置&#xff0c;遍历right当值等于1的时候&#xff0c;直接跳过&#xff0c;等于0的时候&#xff0c;zero计数器加一当zero等于k的时候&#xff0c;就开始记录此时最大长度是多少然后left加一…

做抖店要用到的东西:什么是精选联盟?开通到使用一篇详解!

哈喽~我是电商月月 做抖音小店的新手朋友在翻阅资料时一定接触过精选联盟这个东西 但它到底是干嘛的&#xff1f;如何开通。又是如何使用&#xff01;还没入手的朋友是不知道的 所以&#xff0c;今天我就给大家讲解一下精选联盟的入驻方法&#xff0c;以及在运营时要怎么正确…

蓝桥杯第十届c++大学B组详解

目录 1.组队 2.年号字符 3.数列求值 4.数的分解 5.迷宫 6.特别数的和 7.完全二叉树的权值 8.等差数列 9.后缀表达式 10.灵能传输 1.组队 题目解析&#xff1a;就是在个篮球人中选择这个最大的成绩&#xff0c;每个人只能选择一次不能重复选择。选满5人之后的成绩是最…

企业如何部署有效的防泄密软件策略?

在企业信息化飞速发展的今天&#xff0c;数据泄露的后果可能是灾难性的&#xff0c;不仅会导致经济损失&#xff0c;还可能损害公司的声誉。因此&#xff0c;制定和部署一个全面而有效的防泄密软件策略对于防范这种风险至关重要。策略的目标不仅是阻止外部攻击&#xff0c;更要…