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

    文章

    8921

    浏览量

    85028
  • 数据中心
    +关注

    关注

    16

    文章

    4613

    浏览量

    71865
  • DNS
    DNS
    +关注

    关注

    0

    文章

    215

    浏览量

    19761

原文标题:探讨 DNS 解析

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    DNS的结构和工作原理

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

    请问如何强制DHCP服务器以空网关和DNS地址进行响应?

    我在 DHCP 服务器打开的情况下,在 AP 模式下在嵌入式设备中使用 ESP8266。 装有 Windows 7 的 PC 连接到 ESP8266,ESP8266为 PC 无线接口分配 IP、网关
    发表于 07-16 07:19

    是否可以在网状演示中使用DNS而不是服务器的IP地址?

    尊敬的用户: 请您告诉我是否可以在网状演示中使用DNS而不是服务器的IP地址? 问候
    发表于 07-12 07:26

    如何更改DNS服务器IP?

    如何更改DNS服务器IP?我在最新的 SDK (1.0) 文档中没有找到任何内容。
    发表于 07-12 06:04

    如何获取DNS服务器IP?

    当ESP8266在 STA 模式下连接时,访问分配给 DHCP 客户端的 DNS 服务器地址将非常有用。理想情况下,这些地址要么通过 wifi_get_ip_info 在ip_info结构中返回,要么通过专用 API(例如 espconn_
    发表于 07-11 06:15

    如何检查DNS配置及其重要性

    的IP地址设置 ·在Windows系统中,通过以下步骤查看: 按下 Win+R 键 输入 cmd 打开命令提示符 输入 ipconfig/all 命令 在显示的网络配置信息中找到“DNS服务器”项 查看所设置的DNS
    的头像 发表于 07-08 14:53 466次阅读
    如何检查<b class='flag-5'>DNS</b>配置及其重要性

    一文了解常见DNS问题

    设备:查看本地路由、防火墙等网络设备的设置是否正确,是否存在限制DNS流量的规则。 更换本地DNS服务器:将设备的DNS设置更改为
    的头像 发表于 07-05 15:49 231次阅读

    一文了解常见DNS结构

    的理解。 主DNS服务器 : 主DNS服务器是负责特定区域的权威DNS信息的主要来源。它保存着该区域内域名与IP地址等资源记录的原始、准确和
    的头像 发表于 07-05 15:32 260次阅读

    Linux:DNS系统的分布式数据结构及服务器搭建

    DNS(Domain Name System)域名系统: 是一种采用客户端/服务器机制,负责实现计算机名称与IP地址转换的系统。DNS作为一种重要的网络服务,既是国际互联网工作的
    发表于 04-18 11:17 318次阅读

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

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

    DNS服务器可能不可用什么意思

    首先,我们需要了解DNS服务器的基本概念。DNS服务器是一种特殊的服务器,用于存储域名与相应IP地址之间的映射关系。每当我们在浏览
    的头像 发表于 01-17 09:24 8582次阅读

    dns服务器地址设置为多少

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

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

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