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

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

3天内不再提示

一文解读域名系统(DNS),了解其的工作原理和基础知识

如意 来源:Linux中国 作者:Xingyu.Wang 译 2020-09-11 15:01 次阅读

域名系统(Domain Name System)(DNS)是互联网的基础之一,然而大多数不懂网络的人可能并不知道他们每天都在使用它来工作、查看电子邮件或在智能手机上浪费时间。

就其本质而言,DNS 是一个与数字匹配的名称目录。这些数字,在这里指的是 IP 地址,计算机用 IP 地址来相互通信。大多数对 DNS 的描述都是用电话簿来比喻,这对于 30 岁以上的人来说是没有问题的,因为他们知道电话簿是什么。

如果你还不到 30 岁,可以把 DNS 想象成你的智能手机的联系人名单,它将人们的名字与他们的电话号码及电子邮件地址进行匹配,然后这个联系人名单的就像地球上的人一样多。

DNS 简史

当互联网还非常、非常小的时候,人们很容易将特定的 IP 地址与特定的计算机对应起来,但随着越来越多的设备和人加入到不断发展的网络中,这种简单的情况就没法持续多久了。现在仍然可以在浏览器中输入一个特定的 IP 地址来到达一个网站,但当时和现在一样,人们希望得到一个由容易记忆的单词组成的地址,也就是我们今天所认识的那种域名(比如 linux.cn )。在 20 世纪 70 年代和 80 年代早期,这些名称和地址是由一个人指定的,她是 斯坦福大学的 Elizabeth Feinler ,她在一个名为 HOSTS.TXT 的文本文件中维护着一个主列表,记录了每一台连接互联网的计算机。

随着互联网的发展,这种局面显然无法维持下去,尤其是因为 Feinler 只处理加州时间下午 6 点之前的请求,而且圣诞节也要请假。1983 年,南加州大学的研究人员 Paul Mockapetris 受命在处理这个问题的多种建议中提出一个折中方案。但他基本上无视了所有提出的建议,而是开发了自己的系统,他将其称为 DNS。虽然从那时起,现今的它显然发生了很大的变化,但在基本层面上,它的工作方式仍然与将近 40 年前相同。

DNS 服务器是如何工作的

将名字与数字相匹配的 DNS 目录并不是整个藏在互联网的某个黑暗角落。截至 2017 年底, 它记录了超过 3.32 亿个域名 ,如果作为一个目录确实会非常庞大。就像互联网本身一样,该目录分布在世界各地,存储在域名服务器(一般简称为 DNS 服务器)上,这些服务器都会非常有规律地相互沟通,以提供更新和冗余。

权威 DNS 服务器与递归 DNS 服务器的比较

当你的计算机想要找到与域名相关联的 IP 地址时,它首先会向 递归(recursive) DNS 服务器(也称为递归解析器)提出请求。递归解析器是一个通常由 ISP 或其他第三方提供商运营的服务器,它知道需要向其他哪些 DNS 服务器请求解析一个网站的名称与其 IP 地址。实际拥有所需信息的服务器称为 权威(authoritative) DNS 服务器。

DNS 服务器和 IP 地址

每个域名可以对应一个以上的 IP 地址。事实上,有些网站有数百个甚至更多的 IP 地址与一个域名相对应。例如,你的计算机访问 www.google.com 所到达的服务器,很可能与其他国家的人在浏览器中输入相同的网站名称所到达的服务器完全不同。

该目录的分布式性质的另一个原因是,如果这个目录只在一个位置,在数百万,可能是数十亿在同一时间寻找信息的人中共享,那么当你在寻找一个网站时,你需要花费多少时间才能得到响应 —— 这就像是排着长队使用电话簿一样。

什么是 DNS 缓存?

为了解决这个问题,DNS 信息在许多服务器之间共享。但最近访问过的网站的信息也会在客户端计算机本地缓存。你有可能每天使用 google.com 好几次。你的计算机不是每次都向 DNS 名称服务器查询 google.com 的 IP 地址,而是将这些信息保存在你的计算机上,这样它就不必访问 DNS 服务器来解析这个名称的 IP 地址。额外的缓存也可能出现在用于将客户端连接到互联网的路由器上,以及用户的互联网服务提供商(ISP)的服务器上。有了这么多的缓存,实际上对 DNS 名称服务器的查询数量比看起来要少很多。

如何找到我的 DNS 服务器?

一般来说,当你连接到互联网时,你使用的 DNS 服务器将由你的网络提供商自动建立。如果你想看看哪些服务器是你的主要名称服务器(一般是递归解析器,如上所述),有一些网络实用程序可以提供关于你当前网络连接的信息。 Browserleaks.com 是一个很好的工具,它提供了很多信息,包括你当前的 DNS 服务器。

我可以使用 8.8.8.8 的 DNS 吗?

但要记住,虽然你的 ISP 会设置一个默认的 DNS 服务器,但你没有义务使用它。有些用户可能有理由避开他们 ISP 的 DNS —— 例如,有些 ISP 使用他们的 DNS 服务器将不存在的地址的请求重定向到 带有广告的网页 。

如果你想要一个替代方案,你可以将你的计算机指向一个公共 DNS 服务器,以它作为一个递归解析器。最著名的公共 DNS 服务器之一是谷歌的,它的 IP 地址是 8.8.8.8 和 8.8.4.4。Google 的 DNS 服务往往是 快速的 ,虽然对 Google 提供免费服务的别有用心的动机 有一定的质疑,但他们无法真正从你那里获得比他们从 Chrome 浏览器中获得的更多信息。Google 有一个页面,详细说明了如何 配置你的电脑或路由器 连接到 Google 的 DNS。

DNS 如何提高效率

DNS 的组织结构有助于保持事情的快速和顺利运行。为了说明这一点,让我们假设你想访问 linux.cn 。

如上所述,对 IP 地址的初始请求是向递归解析器提出的。递归解析器知道它需要请求哪些其他 DNS 服务器来解析一个网站( linux.cn )的名称与其 IP 地址。这种搜索会传递至根服务器,它知道所有顶级域名的信息,如 .com、.net、.org 以及所有国家域名,如 .cn(中国)和 .uk(英国)。根服务器位于世界各地,所以系统通常会将你引导到地理上最近的一个服务器。

一旦请求到达正确的根服务器,它就会进入一个顶级域名(TLD)名称服务器,该服务器存储二级域名的信息,即在你写在 .com、.org、.net 之前的单词(例如, linux.cn 的信息是 “linux”)。然后,请求进入域名服务器,域名服务器掌握着网站的信息和 IP 地址。一旦 IP 地址被找到,它就会被发回给客户端,客户端现在可以用它来访问网站。所有这一切都只需要几毫秒的时间。

因为 DNS 在过去的 30 多年里一直在工作,所以大多数人都认为它是理所当然的。在构建系统的时候也没有考虑到安全问题,所以 黑客们充分利用了这一点 ,制造了各种各样的攻击。

DNS 反射攻击

DNS 反射攻击可以用 DNS 解析器服务器的大量信息淹没受害者。攻击者使用伪装成受害者的 IP 地址来向他们能找到的所有开放的 DNS 解析器请求大量的 DNS 数据。当解析器响应时,受害者会收到大量未请求的 DNS 数据,使其不堪重负。

DNS 缓存投毒

DNS 缓存投毒 可将用户转移到恶意网站。攻击者设法在 DNS 中插入虚假的地址记录,这样,当潜在的受害者请求解析其中一个中毒网站的地址时,DNS 就会以另一个由攻击者控制的网站的 IP 地址作出回应。一旦访问了这些假网站,受害者可能会被欺骗,泄露密码或下载了恶意软件。

DNS 资源耗尽

DNS 资源耗尽 攻击可以堵塞 ISP 的 DNS 基础设施,阻止 ISP 的客户访问互联网上的网站。攻击者注册一个域名,并通过将受害者的名称服务器作为域名的权威服务器来实现这种攻击。因此,如果递归解析器不能提供与网站名称相关的 IP 地址,就会询问受害者的名称服务器。攻击者会对自己注册的域名产生大量的请求,并查询不存在的子域名,这就会导致大量的解析请求发送到受害者的名称服务器,使其不堪重负。

什么是 DNSSec?

DNS 安全扩展是为了使参与 DNS 查询的各级服务器之间的通信更加安全。它是由负责 DNS 系统的 互联网名称与数字地址分配机构(Internet Corporation for Assigned Names and Numbers)(ICANN)设计的。

ICANN 意识到 DNS 顶级、二级和三级目录服务器之间的通信存在弱点,可能会让攻击者劫持查询。这将允许攻击者用恶意网站的 IP 地址来响应合法网站的查询请求。这些网站可能会向用户上传恶意软件,或者进行网络钓鱼和网络欺骗攻击。

DNSSec 将通过让每一级 DNS 服务器对其请求进行数字签名来解决这个问题,这就保证了终端用户发送进来的请求不会被攻击者利用。这就建立了一个信任链,这样在查询的每一步,请求的完整性都会得到验证。

此外,DNSSec 可以确定域名是否存在,如果不存在,它就不会让该欺诈性域名交付给寻求域名解析的无辜请求者。

随着越来越多的域名被创建,越来越多的设备继续通过物联网设备和其他“智能”系统加入网络,随着 更多的网站迁移到 IPv6 ,将需要维持一个健康的 DNS 生态系统。大数据和分析的增长也 带来了对 DNS 管理的更大需求 。

SIGRed:蠕虫病毒 DNS 漏洞再次出现

最近,随着 Windows DNS 服务器缺陷的发现,全世界都看到了 DNS 中的弱点可能造成的混乱。这个潜在的安全漏洞被称为 SIGRed, 它需要一个复杂的攻击链 ,但利用未打补丁的 Windows DNS 服务器,有可能在客户端安装和执行任意恶意代码。而且该漏洞是“可蠕虫传播”的,这意味着它可以在没有人为干预的情况下从计算机传播到计算机。该漏洞被认为足够令人震惊,以至于美国联邦机构 被要求他们在几天时间内安装补丁 。

DNS over HTTPS:新的隐私格局

截至本报告撰写之时,DNS 正处于其历史上最大的一次转变的边缘。谷歌和 Mozilla 共同控制着浏览器市场的大部分份额,他们正在鼓励向 DNS over HTTPS (DoH)的方向发展,在这种情况下,DNS 请求将被已经保护了大多数 Web 流量的 HTTPS 协议加密。在 Chrome 的实现中,浏览器会检查 DNS 服务器是否支持 DoH,如果不支持,则会将 DNS 请求重新路由到谷歌的 8.8.8.8。

这是一个并非没有争议的举动。早在上世纪 80 年代就在 DNS 协议上做了大量早期工作的 Paul Vixie 称此举对安全来说是“ 灾难 ”:例如,企业 IT 部门将更难监控或引导穿越其网络的 DoH 流量。不过,Chrome 浏览器是无所不在的,DoH 不久就会被默认打开,所以让我们拭目以待。
责编AJX

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

    关注

    14

    文章

    7251

    浏览量

    87448
  • DNS
    DNS
    +关注

    关注

    0

    文章

    199

    浏览量

    19605
  • ip地址
    +关注

    关注

    0

    文章

    240

    浏览量

    16745
收藏 人收藏

    评论

    相关推荐

    什么是域名DNS

    什么是域名DNS为什么要注册DNS呢,申请了DNS后,客户可以自己为域名作解析,或增设子域名.客
    发表于 07-19 00:13

    什么是域名DNS

       为什么要注册DNS呢,申请了DNS后,客户可以自己为域名作解析,或增设子域名.客户申请DNS时,建议客户
    发表于 11-22 00:39

    第27章 DNS域名系统基础知识

    转最新网络教程本章节为大家讲解DNS(Domain Name System,域名系统),通过前面章节对TCP和UDP的学习,需要大家对DNS也有个基础的认识。(本章的知识点主要整理自网
    发表于 11-23 15:50

    使用JavaScript代码在Rapid板子上实现DNS解析域名得到IP地址操作分享!

    DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
    发表于 08-15 04:17

    了解透传云基础知识

    了解透传云基础知识讲透传云,我们先了解它的定义,首先了解下****透传透传: 透明传输。即在
    发表于 02-25 10:32

    什么是DNS

    什么是DNS  英文缩写: DNS 中文译名: 域名系统 分  类: IP与多媒体 解  释: 遍布于因特网的数据库。它
    发表于 02-22 17:25 1053次阅读

    解读DNS服务器以及保护的方法

    本文主要介绍了解读DNS服务器以及保护的方法,DNS服务器可以认为是一种软件,可以认为是一种管理域名的方法,同样的还可以认为是一个域名,实际
    发表于 01-14 09:21 2405次阅读
    <b class='flag-5'>解读</b><b class='flag-5'>DNS</b>服务器以及保护的方法

    DNS域名系统介绍

    DNS的全称是Domain Name System。它负责把FQDN(就是以“。”分隔结尾的名字)翻译成一个IP。最初的DNS系统使用的是一个巨大的hosts.txt文件可是一段时间以后,开发这就不得不用数据库来代替hosts.
    的头像 发表于 01-15 17:38 6606次阅读

    基于一个建立在以太坊智能合约上的ENS域名系统介绍

    ENS 是一个可读的、去中心化且安全的域名系统,其本身是一个建立在以太坊上的智能合约,同时也是一个 dApp,即可以用于以太坊及其他区块链的域名系统
    发表于 10-24 10:37 2087次阅读

    DNS通信协议如何来保护隐私

    域名系统DNS)是互联网基础服务,是互联网访问的重要入口,域名隐私保护是 DNS安全的研究热点。
    发表于 12-06 11:55 1356次阅读

    了解DNS工作原理了解域名的管理机制

    而每一个根DNSDNS报文中都要占用一定的字节数,比如根的名称、TTL、IP地址等。这样,13个根域名服务器基本上就把空间占差不多了,剩余的字节还要用于包装DNS报头以及其它协议参数
    的头像 发表于 09-03 10:43 4536次阅读

    域名系统DNS的概念和设施详细说明

    本RFC是对域名系统DNS)的介绍,它省略了许多可以在RFC中找到的细节,“域名-实现和规范”〔RFC-1035〕。RFC假设读者熟悉本备忘录中讨论的概念。DNS函数和数据类型的子集
    发表于 11-23 08:00 0次下载
    <b class='flag-5'>域名系统</b><b class='flag-5'>DNS</b>的概念和设施详细说明

    DNS服务器和DNS服务器地址是什么

    域名系统,属于一种组织成域层次结构的计算机和网络服务器命名系统域名系统主要用于分配域名地址、IP地址给互联网中的主机,系统再将用户提供的
    的头像 发表于 03-30 15:57 7893次阅读

    虹科分享 | 作为域名系统的SPoF

    认为设计有缺陷。这就把我们带到了SPoF,即域名系统(域名系统)。域名系统是IP地址和人类可读的网站名称和域名的电话簿。例如,在撰写本文时,www.faceboo
    的头像 发表于 02-09 14:54 367次阅读
    虹科分享 | 作为<b class='flag-5'>域名系统</b>的SPoF

    dns的服务器地址设置为多少

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