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

    文章

    9826

    浏览量

    88227
  • 数据中心
    +关注

    关注

    16

    文章

    5256

    浏览量

    73635
  • DNS
    DNS
    +关注

    关注

    0

    文章

    227

    浏览量

    20510

原文标题:探讨 DNS 解析

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

    如何在Linux中配置DNS服务器

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

    深度解析Linux中的DNS服务

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

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

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

    国外物理服务器详细解析

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

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

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

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

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

    独立服务器与云服务器的区别

    随着互联网技术的飞速发展,企业对于服务器的需求日益增加,而服务器市场也随之出现了多种类型的产品,其中最常见的是独立服务器和云服务器。这两种服务器
    的头像 发表于 10-12 14:34 ?766次阅读

    解析的高防DNS是什么?高防DNS有什么作用?

    DNS解析手段在应对攻击时只能采取被动防守的策略,导致线路拥堵、服务器宕机、域名劫持等情况的时有发生。云解析作为一种更智能、更安全的解析
    的头像 发表于 09-26 17:31 ?715次阅读

    raksmart洛杉矶云服务器全面解析

    RAKsmart洛杉矶云服务器是一种高性能的云计算解决方案,专为满足不同业务需求而设计。以下是对RAKsmart洛杉矶云服务器的具体介绍,rak小编为您整理发布raksmart洛杉矶云服务器全面
    的头像 发表于 09-14 09:36 ?562次阅读

    DNS服务器的起点:根服务器

    DNS是一个将域名转化为IP地址的系统,里面存储了关于互联网域名解析的关键信息。它可以将人类可读的域名转换为计算机可识别的IP地址,当你在浏览的地址栏输入一个正确的域名网址时,DNS
    的头像 发表于 08-25 10:35 ?678次阅读

    DNS的结构和工作原理

    DNS 代表域名系统或域名服务器DNS 将IP 地址解析为主机名,反之亦然。
    的头像 发表于 08-05 15:23 ?1233次阅读
    <b class='flag-5'>DNS</b>的结构和工作原理