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

审核编辑 :李倩

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

    关注

    12

    文章

    8120

    浏览量

    82522
  • 数据中心
    +关注

    关注

    15

    文章

    4187

    浏览量

    70065
  • DNS
    DNS
    +关注

    关注

    0

    文章

    199

    浏览量

    19604

原文标题:探讨 DNS 解析

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

收藏 人收藏

    评论

    相关推荐

    视频网站服务器的四种负载均衡技术

    视频网站通常会面临大量的用户访问和视频流量,为了提高性能和可用性,需要使用负载均衡技术。以下是四种常用的视频网站服务器负载均衡技术: 1、基于DNS的负载均衡:DNS负载均衡是通过DNS
    的头像 发表于 04-01 17:36 146次阅读

    linux服务器和windows服务器

    Linux服务器和Windows服务器是目前应用最广泛的两种服务器操作系统。两者各有优劣,也适用于不同的应用场景。本文将 对Linux服务器和Windows
    发表于 02-22 15:46

    dns服务器地址设置为多少

    DNS(域名系统)是互联网的基础设施之一,用于将域名转换为IP地址,使用户可以访问网络资源。要设置DNS服务器地址,首先需要理解DNS的工作原理和不同类型的
    的头像 发表于 01-15 11:11 660次阅读

    dns网络服务器未响应是什么原因

    DNS网络服务器未响应是指在使用域名解析服务时,用户的计算机或设备无法获取到有效的响应。通常情况下,这可能是由于以下原因导致的。 DNS
    的头像 发表于 01-11 10:39 7765次阅读

    LabVIEW中如何在网络上使用远程VI服务器

    LabVIEW中如何在网络上使用远程VI服务器 如何在网络上使用远程VI服务器? 解答: 首先,需要在远程的计算机上打开一个在VI服务器上的LabVIEW应用程序的引用。这可以通过“Open
    发表于 11-12 20:25

    DNS解析一个地址的时候会返回多个IP吗?

    要实现一个域名对应多个 IP 地址的效果,只需要在 DNS 解析操作平台,添加一条解析记录,将网站的域名指向服务器的 IP 地址。一般情况下,一个域名对应一个 IP 地址,也就只需添加
    的头像 发表于 09-19 17:05 541次阅读
    <b class='flag-5'>DNS</b><b class='flag-5'>解析</b>一个地址的时候会返回多个IP吗?

    DNS服务器是什么?有哪些类型?

    ,小编我给大家分析一下DNS服务器是什么?有哪些类型? 一、DNS服务器是什么? DNS服务器
    的头像 发表于 08-14 17:40 1439次阅读

    基于Docker提供内置的DNS服务器

    DNS简介 DNS服务是域名系统的缩写, 英文全称:Domain Name System,将域名和IP地址相互映射。在容器环境中,DNS至关重要,例如在Kubernetes集群中,通常
    的头像 发表于 08-08 14:14 930次阅读
    基于Docker提供内置的<b class='flag-5'>DNS</b><b class='flag-5'>服务器</b>

    恒讯科技分析:什么是根服务器?有哪些特点?

    什么是根服务器?根服务器(Root Server)是互联网域名系统(DNS)中的一类特殊服务器,其主要功能是存储并提供顶级域名(Top-Level Domain,TLD)的
    的头像 发表于 07-24 17:40 1270次阅读

    ip地址是从哪来的呢 DNS技术详解

    动态域名解析需要专用的域名服务器DNS server )运行域名解析服务器程序,提供从域名到 IP 地址的映射关系,负责接收客户端(
    发表于 07-24 12:55 2442次阅读
    ip地址是从哪来的呢 <b class='flag-5'>DNS</b>技术详解

    DNS报文结构与编码解析

    网上很多人都说 DNS服务器只有 13 台,中国一台也没有。在网络世界,中国被美国卡住了脖子。那 DNS服务器真的只有 13 台吗?如果是,那原因又是什么?今天就给大家说道说道
    的头像 发表于 06-26 10:54 1013次阅读

    无法从ESP8266连接我的本地服务器怎么解决?

    我无法从 ESP8266 连接我的本地服务器,我在 Windows 7 上使用 WAMP 服务器, 当我给出这个命令 AT+CIPSTART=4,\"TCP\",\"
    发表于 06-05 08:06

    什么是DNS服务器,有什么作用?

    DNS服务器(DomainNameSystem)是互联网的一项服务DNS服务器作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便
    的头像 发表于 05-23 13:46 759次阅读

    路由器DNS设置方法和异常解决方法

      路由器DNS是指路由器设备的DNS服务器设置,DNS(Domain Name System)是指用于将域名解析为IP地址,以便计算机能够
    发表于 05-08 17:50 2w次阅读

    首选DNS服务器错误无响应的解决方法

    在日常使用电脑浏览网页时,突然无法连接网络,但是QQ等软件却能正常使用,即便是重启电脑和路由器都解决不了,这种问题很大程度上就是DNS错误,比如说首选DNS服务器无响应,恒创就详细谈一下DNS
    的头像 发表于 05-05 15:09 801次阅读