当前位置: 首页 > news >正文

你了解DNS吗?

你了解DNS吗?

      • 一. 介绍
      • 二. DNS的工作原理
      • 三. DNS查询流程示意图
      • 四. DNS 记录类型
      • 五. DNS的安全问题与 DNSSEC

前言

这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。
作者:神的孩子都在歌唱

一. 介绍

DNS(Domain Name System,域名系统)是互联网的“电话簿”,负责将人类可读的域名(如 www.example.com)转化为机器能理解的 IP 地址(如 192.0.2.1)。由于网络通信依赖于 IP 地址,而我们更习惯于使用域名,DNS 就是为了这个目的而设计的,提供了高效的域名解析服务。

二. DNS的工作原理

当你在浏览器中输入一个网址时,背后发生的过程其实是通过 DNS 进行域名解析。DNS 查询过程大致可以分为以下几个步骤:

  1. 用户发起请求
    用户在浏览器中输入域名(如 www.example.com)。此时,计算机会检查本地缓存,看看是否已经存储了该域名对应的 IP 地址。如果缓存有结果,直接返回;否则,会开始查询过程。

  2. 本地 DNS 服务器的角色
    如果本地缓存中没有对应的 IP 地址,操作系统会将请求发送给配置的 本地 DNS 服务器(通常由互联网服务提供商(ISP)提供)。此时,本地 DNS 服务器会尝试找到该域名对应的 IP 地址。如果本地 DNS 服务器本身没有记录,它会继续向其他 DNS 服务器查询。

  3. 递归查询
    如果本地 DNS 服务器没有缓存该域名的解析结果,它将向上级的 DNS 服务器发起 递归查询。首先,查询会被发送到 根域名服务器

  4. 根域名服务器
    根域名服务器负责管理整个 DNS 系统的最顶层。它并不直接保存域名和 IP 地址的映射,而是指引 DNS 查询到 顶级域名服务器(TLD 服务器)。例如,查询 www.example.com 时,根域名服务器会指向 .com 顶级域名的服务器。

  5. TLD 服务器
    顶级域名服务器负责管理特定顶级域(如 .com, .org 等)。TLD 服务器会将查询进一步转发到负责该域名的 权威 DNS 服务器

  6. 权威 DNS 服务器
    权威 DNS 服务器是最终的“答案源”,它保存了特定域名的确切解析记录,包括域名与 IP 地址的映射。它会将查询结果返回给发起请求的 DNS 服务器。

  7. 返回结果
    最后,DNS 服务器将解析到的 IP 地址返回给用户的浏览器,浏览器便可以使用该 IP 地址与目标网站的服务器建立连接,加载网页内容。

三. DNS查询流程示意图

下面是简化后的 DNS 查询流程 图示,帮助更好地理解 DNS 是如何工作的:

神的孩子都在歌唱

四. DNS 记录类型

DNS 服务器保存了多种类型的记录,最常见的包括:

  • A 记录:将域名映射到一个 IPv4 地址。
  • AAAA 记录:将域名映射到一个 IPv6 地址。
  • CNAME 记录:为一个域名指定别名。
  • MX 记录:指定邮件服务器地址。
  • TXT 记录:存储任意文本数据,用于验证等目的。
  • NS记录:域名服务器记录,指明该域名由那台服务器来解析
  • PTR指针:用于将一个IP地址映为一个主机名

五. DNS的安全问题与 DNSSEC

虽然 DNS 是一个强大且高效的系统,但它也面临一定的安全风险,如 DNS 欺骗(DNS Spoofing)和 DNS 解析劫持。为了加强 DNS 安全,DNSSEC(DNS Security Extensions)应运而生,它通过为 DNS 响应提供数字签名,确保数据的完整性和真实性,防止恶意篡改。

作者:神的孩子都在歌唱
本人博客:https://blog.csdn.net/weixin_46654114
转载说明:务必注明来源,附带本人博客连接

http://www.lryc.cn/news/512710.html

相关文章:

  • 利用JavaScript实现顺序九宫格抽奖
  • 音视频入门知识(四):封装篇
  • 在基于IMX6ULL的Linux嵌入式编程中,与内存相关的堆(Heap)和栈(Stack)有什么区别?Linux 系统中堆和栈的内存布局是怎么样的?
  • Sealos Devbox 基础教程:使用 Cursor 从零开发一个 One API 替代品
  • pthread.h互斥锁与原子操作
  • 网络基础入门到深入(3):网络协议-HTTP/S
  • Git的.gitignore文件详解与常见用法
  • UniApp 组件的深度运用
  • k8s部署nginx+sshd实现文件上传下载
  • Spring-Mybatis 2.0
  • Linux 的历史与发展:从诞生到未来
  • SQL Server实现将分组的其他字段数据拼接成一条数据
  • 学习笔记 --C#基础其他知识点(同步和异步)
  • 一维、线性卡尔曼滤波的例程(MATLAB)
  • 极品飞车6的游戏手柄设置
  • FreeRTOS Lwip Socket APi TCP Server 1对多
  • 逆袭之路(11)——python网络爬虫:原理、应用、风险与应对策略
  • KOI技术-事件驱动编程(Sping后端)
  • LVS 负载均衡原理 | 配置示例
  • Hive分区再分桶表
  • 从 Coding (Jenkinsfile) 到 Docker:全流程自动化部署 Spring Boot 实战指南(简化篇)
  • Linux官文转载-- Linux 内核代码风格
  • Qt监控系统放大招/历经十几年迭代完善/多屏幕辅屏预览/多层级设备树/网络登录和回放
  • 【贪心算法】贪心算法七
  • LangChain教程 - 表达式语言 (LCEL) -构建智能链
  • 使用Locust对Redis进行负载测试
  • HIVE数据仓库分层
  • 数据结构与算法之动态规划: LeetCode 2407. 最长递增子序列 II (Ts版)
  • 电子电气架构 --- 什么是自动驾驶技术中的域控制单元(DCU)?
  • html5css3