0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探讨DNS服务器解析

马哥Linux运维 来源:马哥Linux运维 作者:马哥Linux运维 2022-05-05 15:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

DNS服务器

在现实世界中,当您进行阅览新闻、在线下单、下载文件或观看直播时,您需要通过访问域名来访问目标网站,例如 youtube.com、google.com 等。您只需记住这些网站的名称,而非它们的 IP 地址,因为与网站名称相比,IP 地址是很难记住的。因此,您需要一个作为 DNS 服务器的网站/域名地址本。

DNS 在日常生活中非常重要。每个在线的人都需要访问它,但同时,这对它来说也是一个非常大的挑战。如果 DNS 服务器出现故障,整个 Internet 网络都将关闭。

另外,上网的人分布在世界各地,如果每个人都去同一个地方访问某个服务器,延迟会非常大。因此,DNS 服务器必须设置为高可用、高并发和分布式的。

因此,它应具有如下树状层次结构:

f6cd70c6-cbae-11ec-bce3-dac502259ad0.png

根 DNS 服务器:返回顶级域 DNS 服务器的 IP 地址。

顶级域 DNS 服务器:返回权威 DNS 服务器的 IP 地址。

权威 DNS 服务器:返回对应主机的 IP 地址。

DNS 解析过程

为了提高 DNS 解析性能,许多网络会根据位置部署DNS 缓存服务器。DNS 解析过程如下:(这里以访问 google.com 为例)

客户端会发出DNS 请求,询问 google.com 的 IP 是什么,它会先在浏览器缓存中查找 google.com 的 IP 地址。

然后请求将被发送到本地 DNS 服务器。本地 DNS 服务器由您的网络服务供应商(ISP, Internet Service Provider) 自动分配,这通常是您的 ISP 提供的路由器。

本地 DNS 服务器收到来自客户端的 DNS 请求,它会在其缓存中查找 google.com 的 IP 地址。如果它可以找到对应的条目,它将直接将 IP 地址返回给客户端。否则,本地 DNS 服务器会询问它的根域名服务器:“你能告诉我 google.com 的 IP 地址吗”?根域名服务器作为最高级别的 DNS 服务器,全球共 13 台。它不会直接解析域名,而起到一个“指路”的作用。

根 DNS 服务器收到本地 DNS 的请求,发现要查找域名的后缀是 .com,然后告诉本地 DNS 服务器:“好的,你要找的既然是 .com 后缀的域名,它是由 .com 管理的。这里是 .com 区域的顶级域 DNS 服务器的 IP 地址,去找它问吧”。

本地 DNS 服务器转向 .com 区域的顶级域名服务器,并请求 google.com 的 IP 地址。顶级 .com 区域 DNS 服务器再次为该请求指明了方向。它提供了负责 google.com 的权威 DNS 服务器的 IP 地址。

本地 DNS 服务器然后转向了权威 DNS 服务器并询问 google.com 的 IP 地址。这次,google.com 的权威 DNS 服务器是域名解析结果的原始来源。它会将 google.com 的 IP 地址直接返回到本地 DNS 服务器。

然后本地 DNS 服务器将 IP返回给客户端并将其缓存。至此,DNS 解析完成。

总结一下,我画了下面这张图:

f6dee4b4-cbae-11ec-bce3-dac502259ad0.png

DNS 负载均衡

内部负载均衡

DNS 服务器首先进行内部负载均衡。比如,应用要访问数据库,应该在应用中配置数据库的 IP 地址,还是应该配置数据库的域名呢?

很明显,应该配置域名,因为一旦数据库因为某种原因换到另一台机器上,如果多个应用都配置了这个数据库,一旦 IP 地址改变了,所有这些应用都需要重新修改。

但是,如果配置了域名,只要在 DNS 服务器中将域名映射到一个新的 IP 地址就完成了这项工作,如此大大简化了运维工作。

在此基础上,我们可以走得更远。例如,如何在访问它的多个应用程序之间进行负载均衡?只需将其配置为域名即可。在域名解析中,我们只需要配置策略,这次返回第一个 IP,下次返回第二个 IP,就可以实现负载均衡了。

全局负载均衡

为了保证我们的应用程序的高可用性,它们经常被部署在多个计算机数据中心,而每个地方都会有自己的 IP 地址。

当用户访问一个域名时,这个 IP 地址可以轮询多个数据中心。如果某个数据中心由于某种原因宕机了,只要在 DNS 服务器中删除该数据中心对应的 IP 地址即可。这样就可以实现一定程度的高可用。

另外,我们肯定希望纽约的用户访问纽约的数据中心,西雅图的用户访问西雅图的数据中心,这样客户体验会非常好,访问速度会超级快。这就是全局负载均衡的概念。

我们来看看它是如何工作的,假设全国有多个地区,每个地区都有三个可用区域。

f6eefe44-cbae-11ec-bce3-dac502259ad0.png

当客户端要访问 app.metaleap.com 时,需要将域名转换为 IP 地址才能访问,所以需要请求本地 DNS 解析器

本地 DNS 解析器首先检查本地缓存是否有此记录。如果有,直接使用。

如果没有本地缓存,则需要请求本地 DNS 服务器。

本地 DNS 服务器也需要检查本地是否有缓存,如果有则返回。

如果没有本地 DNS,需要从根 DNS 服务器递归查找 .com 的顶级域名服务器,直到找到 metaleap.com 的权威 DNS 服务器,交给本地 DNS 服务器。权威 DNS 服务器通常会返回真实 IP 地址。

对于不需要全局负载均衡的简单应用,metaleap.com 的权威 DNS 服务器可以直接将域名 app.metaleap.com 解析为一个或多个 IP 地址,然后客户端可以使用多个 IP 地址进行轮询来实现简单的负载均衡。

但是对于复杂的应用,尤其是跨区域、跨数据中心的大型应用,需要更复杂的全局负载均衡机制,这需要专门的设备或服务器来做这件事——全局负载均衡器(GSLB,Global Load Balancer)。

在 metaleap.com 的 DNS 服务器中,一般通过配置CNAME,给 app.metaleap.com 起一个别名,如 app.vip.metaleap.com,然后告诉本地 DNS 服务器去请求GSLB来解析域名,GSLB在解析这个域名的过程中,可以通过自己的策略来实现负载均衡。

图中绘制了两层GSLB,分别为数据中心和区域。我们希望不同数据中心的客户可以访问同一数据中心的资源,以提高吞吐量并减少延迟。

结论

DNS 是网络世界的通讯录,可以通过域名搜索地址,因为域名服务器是按树状结构组织的,所以域名搜索采用递归的方式,通过缓存来提升性能。

在域名和 IP 的映射过程中,应用程序有机会进行基于域名的负载均衡,可以是简单的负载均衡,也可以是基于地址、数据中心和区域的全局负载均衡。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    13

    文章

    10095

    浏览量

    90901
  • 数据中心
    +关注

    关注

    16

    文章

    5524

    浏览量

    74658
  • DNS
    DNS
    +关注

    关注

    0

    文章

    228

    浏览量

    21018

原文标题:探讨 DNS 解析

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何为印度服务器申请和配置反向DNS记录?

    ,确保您的印度服务器IP享有最佳声誉。 一、 什么是反向DNS?为什么它对你的印度服务器至关重要? 在深入步骤之前,我们首先要理解核心概念。普通的正向DNS是将域名(如 www.you
    的头像 发表于 10-28 10:12 391次阅读

    DNS服务器无法访问?2分钟快速排查与解决!#DNS服务器 #DNS #服务器

    服务器
    jf_57681485
    发布于 :2025年06月10日 14:55:34

    告别广告与 ISP 追踪!如何在树莓派上设置 DNS 缓存服务器 — 完整指南!

    前文提示:告别广告与ISP追踪!把树莓派改造成家用网络的DNS服务器,简直太酷了!从升级路由到修改某些设置,提升Wi-Fi速度的方法有很多。但如果你想获取一些高级技巧来加快你喜爱网站的加载速度
    的头像 发表于 05-26 15:32 643次阅读
    告别广告与 ISP 追踪!如何在树莓派上设置 <b class='flag-5'>DNS</b> 缓存<b class='flag-5'>服务器</b> — 完整指南!

    告别广告与 ISP 追踪!把树莓派改造成家用网络的 DNS 服务器,简直太酷了!

    DNS是你在互联网连接中很少考虑或改变的东西。我以前也很天真,以为只要在Windows电脑上改改DNS设置就能提升网速。然而,直到几个月前,我才意识到不使用一个支持HTTPS的中央DNS服务器
    的头像 发表于 05-24 08:33 474次阅读
    告别广告与 ISP 追踪!把树莓派改造成家用网络的 <b class='flag-5'>DNS</b> <b class='flag-5'>服务器</b>,简直太酷了!

    恒讯科技深度解析:阿帕奇服务器工作原理

    阿帕奇服务器(Apache HTTP Server)作为全球使用最广泛的开源Web服务器软件,其工作原理融合了多进程架构、模块化设计与高效的请求处理流程。以下从核心机制、运行模式及优化策略三方面解析
    的头像 发表于 05-22 09:37 1514次阅读

    高防服务器哪家好?RAKsmart高防服务器全方位解析

    普通服务器缺乏专业防护能力,而高防服务器凭借高带宽储备、智能流量清洗机制和实时监控系统,能有效抵御攻击,保障业务连续性。不过,市场上高防服务器提供商众多,哪家好呢?接下来,小库主机评测小编为您
    的头像 发表于 05-12 09:28 1323次阅读

    如何在Linux中配置DNS服务器

    本文详细介绍了如何在Linux中配置DNS服务器,包括DNS工作原理、本地缓存、DNS查询过程,以及正向和反向查询的配置。步骤包括服务器配置
    的头像 发表于 05-09 13:38 2323次阅读
    如何在Linux中配置<b class='flag-5'>DNS</b><b class='flag-5'>服务器</b>

    新加坡服务器延迟大吗?真相在这里#新加坡服务器 #服务器

    服务器
    jf_57681485
    发布于 :2025年04月18日 13:48:50

    深度解析Linux中的DNS服务

    dns,Domain Name Server,它的作用是将域名解析为 IP 地址,或者将IP地址解析为域名。
    的头像 发表于 04-09 16:13 690次阅读

    服务器需要网络吗?怎么设置

    需要。云服务器的运行依赖于网络连接,以确保用户能够通过互联网远程访问和管理服务器资源。网络设置是云服务器配置过程中的重要环节,它涉及到IP地址分配、子网配置、网关设置、DNS
    的头像 发表于 02-21 10:25 814次阅读

    国外物理服务器详细解析

    国外物理服务器是指位于国外数据中心的物理设备,用于提供互联网服务。以下是对国外物理服务器的详细解析,主机推荐小编为您整理发布国外物理服务器
    的头像 发表于 02-07 09:36 710次阅读

    多c段站群服务器详细解析

    多C段站群服务器是一种特殊配置的服务器,主要用于多站点管理和分布式网络操作。主机推荐小编为您整理发布多C段站群服务器的详细解析
    的头像 发表于 01-23 09:38 693次阅读

    【教程】DNS域名解析服务systemd-resolved使用指南

    客户端•DNS服务器•域名对应的IP地址DNS解析大致过程:•用户在应用程序中使用域名•应用程序调用DNS客户端申请域名
    的头像 发表于 01-09 19:34 2131次阅读
    【教程】<b class='flag-5'>DNS</b>域名<b class='flag-5'>解析</b><b class='flag-5'>服务</b>systemd-resolved使用指南

    国外多ip服务器核心优势

    国外多IP服务器是指配备有多个独立IP地址的服务器,这些服务器通常位于国外。主机推荐小编为您整理发布国外多ip服务器核心优势,以下是对国外多IP服务
    的头像 发表于 01-08 09:55 693次阅读