图解网络:什么是 DNS 域名系统?

简介: DNS是一个巨大的目录,它保存着互联网上每一个域名的记录,并将其与它的 IP 地址进行映射,DNS是一种标准协议,可帮助 互联网用户使用人类可读地址发现网站,没有 DNS,互联网就会崩溃。

你好,这里是网络技术联盟站。

上一节瑞哥花了2000多字图解了DHCP的原理和配置,说到DHCP,那么DNS肯定也要了解一下,今天瑞哥会从DNS的原理、DNS的工作流程、DNS的报文分析等方面给大家图解一下,让我们直接开始!

什么是DNS?

  • 英文全称:Domain Name System
  • 中文名称:域名系统
  • UDP 端口:53

DNS

DNS出现的历史背景

当互联网开始出现时,人们都是用IP 地址连接到其他计算机。

但是,计算机比较少的情况下,记忆IP地址没啥大问题,随着互联网的发展,网站越来越多,通过记忆IP地址的做法变得很麻烦,因为没有人能记住所有IP地址。

因此,一些非常聪明的人开发了一个系统来为每个 IP 地址分配一个域名,称为DNS。

IP地址

什么是 DNS 服务器?

DNS 服务器是存储网站名称与其对应的公网Ip地址的计算机,DNS 就像互联网的电话簿,每当人们在 Web 浏览器的地址栏中键入域名(例如wljslmz.cn)时,DNS 都会找到正确的 IP 地址。

DNS 服务器

一旦 DNS 服务器找到正确的 IP 地址,浏览器就会获取该地址并使用它将数据发送到CDN边缘服务器或源服务器,完成此操作后,用户可以访问网站上的信息,DNS 服务器通过查找网站统一资源定位器 (URL) 的相应 IP 地址来启动该过程。

DNS术语

  • DNS 客户端:DNS 查询的计算机。
  • DNS 缓存:临时存储 DNS 的记录结果。
  • DNS 记录,包含有关 IP 地址的重要信息,以下是一些 DNS 记录:

    • A 记录:将域映射到 IP 地址,例如,www.wljslmz.cn映射到其 IP 地址 10.10.10.10。
    • CNAME:每当域更改时,将域更新为另一个域名,例如,当输入www.wljslmz.cn 时,会转到wljslmz.cn。
    • NS 记录:标识用于特定域名的权威名称服务器。
    • TXT 记录:保存外部来源的文本信息。
    • MX 记录:将电子邮件发送到特定的邮件服务器。

DNS如何工作?

我们不谈生涩的原理,直接以我们网络技术联盟站的网站www.wljslmz.cn为例:

  1. 打开浏览器,输入www.wljslmz.cn

www.wljslmz.cn

按下回车后立即有一个快速检查,看看您以前是否访问过我们的网站。

如果在您计算机的 DNS 缓存中找到 DNS 记录,则跳过 DNS 查找的其余部分,您将被直接带到www.wljslmz.cn。

2, 如果没有找到 DNS 记录,则会向您的本地 DNS 服务器发送查询。

本地 DNS 服务器

通常是您的 Internet 提供商的服务器,通常称为“解析名称服务器(resolving nameserver)”。

  1. 如果解析名称服务器上没有缓存记录,则请求被转发到根名称服务器,来定位 DNS 记录。

根名称服务器

根域名服务器是世界各地的指定服务器,负责存储 DNS 数据并保持系统顺利运行,一旦在根名称服务器上找到 DNS 记录,它就会被您的计算机缓存。

  1. 最后就找到了 DNS 记录,将打开与存储网站的服务器的连接,并且www.wljslmz.cn页面将显示在您的屏幕上。

查到结果

我们来用一张图将上面的四个过程进行合并:

DNS查询过程

在通常的 DNS 查询中,用户输入的 URL 必须经过四台服务器才能提供 IP 地址,这四台服务器相互协作:

1. DNS 递归器

DNS 递归器,也称为 DNS 解析器,接收来自 DNS 客户端的查询,然后它与其他 DNS 服务器通信来找到正确的 IP 地址。

DNS 递归器是您的 Internet 服务提供商 (ISP),递归 DNS 解析器接收包含人类可读主机名(如 www.wljslmz.cn)的 DNS 查询,此 DNS 服务器的工作方式类似于图书管理员,可在图书馆中查找特定书籍的编号。

2. 根域名服务器

根域名服务器是 DNS 层次结构的顶部或根,可以将其联想为图书馆中的索引,该索引就是要查找的书籍的特定架子。

根域名服务器被指定用于互联网的 DNS 根区域,它的工作是回答发送给它的请求,来获取根区域中的记录。

DNS 根名称服务器有13台,分布在世界各地,用字母 a 到 m 表示,由12 个不同的组织运营,包括 Verisign、南加州大学和 NASA等。

13台 DNS 根名称服务器

这些数据来源于网站:https://www.iana.org/domains/root/servers。

13 个主要的根名称服务器在不同的区域有许多副本:

13 个主要的根名称服务器副本

这些数据来源于网站:https://root-servers.org/。

当根域名服务器收到来自 DNS 解析器的查询时,它还不知道确切的 IP 地址,需要将解析器定向到下一个级别,即顶级域 (TLD) 名称服务器。

3. TLD 名称服务器

TLD 名称服务器保存包含在 TLD 名称中的二级域IP 地址,然后它会释放网站的 IP 地址并将查询发送到域的名称服务器。

顶级域 (TLD) 服务器存储顶级域的地址信息,例如 .net、.org 和 .com

TLD服务器

4. 权威域名服务器

有两种类型的权威名称服务器:

  • 主服务器
  • 从服务器

主服务器保留区域记录的原始副本,从服务器是主服务器的精确副本,分担 DNS 服务器负载并在主服务器出现故障时充当备份。

DNS 查找

DNS 查找是在 Internet 上查找域名的 IP 地址的过程,有两种类型的 DNS 查找:

DNS 两种查找

正向查找

用户输入一个域名,DNS 使用它来查找与该域对应的 IP 地址。

正向查找

反向查找

与正向 DNS 查找完全相反,用户已经有了IP地址,用于查找与该IP关联的域名。

反向查找

DNS 协议

DNS 协议使用两种类型的 DNS 消息:

  • 查询
  • 回复

查询和回复都包含一个标题和四个部分:

  • 问题
  • 答案
  • 权限
  • 空格

DNS 协议报文

Wireshark抓包:

DNS 协议 Wireshark 抓包

总结

DNS是一个巨大的目录,它保存着互联网上每一个域名的记录,并将其与它的 IP 地址进行映射,DNS是一种标准协议,可帮助 互联网用户使用人类可读地址发现网站,没有 DNS,互联网就会崩溃。

本文主要介绍了DNS以下部分:什么是DNS?

  • DNS出现的历史背景

    • 什么是 DNS 服务器?
  • DNS术语
  • DNS如何工作?

      1. DNS 递归器
      1. 根域名服务器
      1. TLD 名称服务器
      1. 权威域名服务器
  • DNS 查找

    • 正向查找
    • 反向查找
  • DNS 协议
  • 总结

感谢您的阅读,如果觉得文章对您有帮助,别忘了点赞👍、收藏⭐哦!有任何问题,欢迎在下方评论区与我讨论!!!

目录
相关文章
|
Ubuntu 网络协议 网络安全
解决Ubuntu系统的网络连接问题
以上步骤通常可以帮助解决大多数Ubuntu系统的网络连接问题。如果问题仍然存在,可能需要更深入的诊断,或考虑联系网络管理员或专业技术人员。
2437 18
|
监控 安全 网络协议
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
1042 1
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
新功能上线:云解析DNS-重点域名监控功能发布
新功能上线:云解析DNS-重点域名监控功能发布
|
安全 KVM 虚拟化
Cisco Identity Services Engine (ISE) 3.4 - 基于身份的网络访问控制和策略实施系统
Cisco Identity Services Engine (ISE) 3.4 - 基于身份的网络访问控制和策略实施系统
794 2
Cisco Identity Services Engine (ISE) 3.4 - 基于身份的网络访问控制和策略实施系统
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
774 2
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
821 18
|
机器学习/深度学习 数据采集 算法
【电力系统】MATLAB环境下基于神经网络的电力系统稳定性预测研究(Matlab代码实现)
【电力系统】MATLAB环境下基于神经网络的电力系统稳定性预测研究(Matlab代码实现)
264 1
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
923 0