DNS域名解析服务理论详解(域名结构、递归查询和迭代查询、CDN)

news2024/11/24 12:31:07

文章目录

  • DNS域名解析服务
    • 1.DNS系统的概念
    • 2.DNS系统的主要作用
    • 3.DNS的分布式数据结构和域名的结构
    • 4.DNS服务器类型
      • 4.1三种类型
      • 4.2分布式数据库
      • 4.3名词解释
    • 5.CDN技术
      • 5.1CDN的基本原理
      • 5.2CDN的主要功能
    • 6.DNS查询类型及原理
      • 6.1查询方式
      • 6.2查询原理过程
      • 6.3本地主机的DNS映射文件
    • 7.权威和非权威DNS服务器
    • 8.常用DNS服务器


DNS域名解析服务

1.DNS系统的概念

DNS(Domain Name System)系统的主要作用是实现域名与IP地址的双向解析。

  • DNS系统是互联网的基础服务之一,为用户提供了正向解析(域名到IP地址的映射)和反向解析(IP地址到域名的映射)两种功能。
  • DNS系统采用了分布式数据结构,使得域名解析在全球范围内具有较高的容错性和稳定性。
  • 使用端口:DNS服务使用TCP和UDP的53端口。TCP端口用于连接,UDP端口用于解析。

2.DNS系统的主要作用

  1. 正向解析通过域名查找获取对应的IP地址。例如,当用户输入域名(如 www.example.com),DNS系统将返回该域名对应的IP地址。
  2. 反向解析通过IP地址查找获取对应的域名。也叫反向域。例如,通过输入IP地址,DNS系统返回该IP地址对应的域名。

3.DNS的分布式数据结构和域名的结构

DNS系统采用分布式数据结构,也叫域名的体系结构。按层次划分为根域、顶级域、二级域和子域等。

域名的结构由多个级别组成,通常格式为:根域(.)+ 顶级域 + 二级域 + 子域 + 主机名或三级域名。例如:“www.qq.com.cn.”

每级域名长度限制为63个字符,总长度不能超过253个字符。

1. 根域 (.)

根域是整个DNS层次结构的最高层级,用一个单独的点(.)表示。它是所有域名的顶端,管理着顶级域名服务器。

  • 示例: .(不显式显示在域名中,但隐含存在于每个域名的结尾)

2. 顶级域(Top-Level Domain, TLD)

顶级域位于根域的下一级,通常代表一种类型的组织机构或国家地区。

  • 常见的顶级域:
    • 通用顶级域(gTLD): .com(商业组织),.org(非营利组织),.net(网络服务),.edu(教育机构)
    • 国家代码顶级域(ccTLD): .cn(中国),.uk(英国),.jp(日本)
  • 示例:
    • .com.org(通用顶级域)
    • .cn.jp(国家代码顶级域)

3. 二级域

二级域是位于顶级域下的域名,通常用于标识一个具体的组织或品牌。

  • 示例:
    • sina.comsinacom 顶级域下的二级域)
    • bbc.co.ukbbcco.uk 顶级域下的二级域)

4. 子域

子域是位于二级域或更低层级下的域名,通常用于标识具体的服务、部门或主机。

  • 示例:
    • www.sina.comwwwsina.com 二级域下的子域)
    • mail.google.commailgoogle.com 二级域下的子域)

4.DNS服务器类型

4.1三种类型

DNS服务器主要有三种类型:

  1. 缓存域名服务器:只提供域名解析结果的缓存功能,提高查询速度和效率。
  2. 主域名服务器:负责管理和维护特定区域内的域名解析记录。
  3. 从域名服务器:从主域名服务器同步解析记录,用于备份和冗余。

4.2分布式数据库

DNS解析库是一个分布式的数据库,全球分布多个DNS服务器以共同维护域名解析服务。

  • 根域名服务器:负责根域的解析,IPV4全球共有13个。
  • 一级DNS服务器:负责顶级域的解析,如.com、.cn等。
  • 二级DNS服务器:负责二级域的解析,如.edu.cn。
  • 子域名DNS服务器:负责子域的解析,如www.sina.com。

4.3名词解释

  • 序列号:解析库版本号,主服务器解析库变化时,其序列递增
  • 刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
  • 重试时间间隔:从服务器请求同步失败时,再次尝试时间问隔
  • 过期时长:从服务器联系不到主服务器时,多久后停止服务
  • 通知机制:主服务器解析库发生变化时,会主动通知从服务器

5.CDN技术

5.1CDN的基本原理

CDN(Content Delivery Network)通过在网络中部署多个缓存服务器来加速内容分发。这些服务器分布在用户访问集中的区域或网络中,以便用户能够快速访问离自己最近的服务器,进而提高访问速度和稳定性。

CDN与DNS的关系:CDN通常依赖DNS来进行域名解析,通过DNS记录指向最近的缓存服务器。

5.2CDN的主要功能

  1. 全局负载技术:通过将用户的访问指向最近的缓存服务器,减少数据传输的延迟。
  2. 智能虚拟网络:在现有互联网基础上构建的一层智能网络,通过节点服务器实现内容的快速分发。

6.DNS查询类型及原理

6.1查询方式

DNS查询方式主要分为递归查询和迭代查询:

  1. 递归查询:客户端请求DNS服务器,DNS服务器返回最终的查询结果,无需客户端参与中间过程。

    递归查询是指客户端向本地域名服务器发出查询请求,本地域名服务器会全程处理查询,直到得到最终的结果或错误消息,然后将结果返回给客户端。在递归查询中,本地域名服务器会向其他 DNS 服务器发出进一步的查询请求,如果本地域名服务器本身无法完成解析。

  2. 迭代查询:DNS服务器逐级查询,每一级服务器返回部分结果,最终由客户端或本地DNS服务器获取完整结果。

    迭代查询是指本地域名服务器在处理查询时,会逐级向其他 DNS 服务器查询,直到获取到最终的结果。每个 DNS 服务器负责返回一个可能的下一步查询服务器的地址。客户端的查询过程会涉及多个 DNS 服务器的响应,而不是由一个服务器完成所有查询。

结论

  1. 大量的递归查询会使根域、顶级域、二级域服务器压力过大,因此这部分公共的域查找使用迭代查询
  2. 递归查询适用于终端用户,简化操作;迭代查询适用于DNS服务器之间,提高查询效率。

在这里插入图片描述

6.2查询原理过程

以正向解析查询过程为例讲解,反向解析查询过程类似于正向解析,但查询对象是IP地址。

A 递归查询过程

  1. 查询本机缓存:
    • 系统首先查找本机的缓存记录。如果找到匹配的记录,直接返回结果。
  2. 查询 hosts 文件:
    • 如果缓存中没有匹配记录,系统会查找 hosts 文件以获取对应的 IP 地址。
  3. 递归查询本地域名服务器:
    • 如果 hosts 文件中也没有匹配记录,本地域名服务器会进行递归查询,负责向其他 DNS 服务器发起查询,直到获得最终结果。
    • 过程:
      • a. 查询根域服务器: 如果本地域名服务器无法解析请求,它会向根域服务器发出查询请求。根域服务器若查询不到会请求顶级域服务器查询。
      • b. 查询顶级域服务器: 顶级域服务器查询,顶级域服务器若查询不到会继续查询二级域服务器。
      • c. 查询二级域服务器: 二级域服务器查询,二级域服务器如果能解析请求,会返回目标主机的 IP 地址。
  4. 缓存结果并返回:
    • 本地域名服务器将获取的 IP 地址缓存起来,然后将结果返回给客户端。

B 迭代查询过程

  1. 查询本机缓存:
    • 与递归查询相同,系统首先查找本机的缓存记录。
  2. 查询 hosts 文件:
    • 如果缓存中没有匹配记录,系统会查找 hosts 文件以获取对应的 IP 地址。
  3. 迭代查询本地域名服务器:
    • 如果 hosts 文件中没有记录,本地域名服务器会进行迭代查询。
    • 过程:
      • a. 查询根域服务器: 本地域名服务器向根域服务器发起查询请求。如果根域服务器无法提供最终结果,它会返回负责顶级域的服务器地址。
      • b. 查询顶级域服务器: 本地域名服务器使用根域服务器提供的信息,向顶级域服务器发起查询。如果顶级域服务器无法提供最终结果,它会返回负责二级域的服务器地址。
      • c. 查询二级域服务器: 本地域名服务器继续向二级域服务器发起查询。如果二级域服务器可以解析请求,它会返回目标主机的 IP 地址。
  4. 缓存结果并返回:
    • 本地域名服务器将获取的 IP 地址缓存起来,然后将结果返回给客户端。

6.3本地主机的DNS映射文件

本地主机通常有一个hosts文件,用于手动配置IP地址和域名之间的映射关系。此文件优先于DNS服务器进行解析。

例如:Linux文件为“/etc/hosts”,Windows文件为“C: Windows\System32\drivers\etc\hosts”

7.权威和非权威DNS服务器

权威DNS服务器

权威 DNS 服务器是负责特定域名区域的 DNS 服务器。它们拥有该区域内所有域名的完整数据,并且可以提供权威性的解析结果。

非权威DNS服务器

非权威 DNS 服务器不直接存储域名区域的数据,而是从其他 DNS 服务器处获取信息,并将其缓存以提高查询速度。

8.常用DNS服务器

国内通用DNS

114.114.114.114,国内移动、电信和联通通用的DNS。

谷歌DNS

8.8.8.8,全球通用,更适合国外以及访问国外网站的用户使用

阿里云DNS

IPV4:223.5.5.5 和 223.6.6.6

IPV6:2400:3200::1和 2400:3200:baba::1

江苏省南京市(中国电信)

首选:218.2.135.1,备用:61.147.37.1


注:图片来源于网络,侵删。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2050491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Hadoop的物品租赁系统的设计与实现 9349a--论文

TOC springboot344基于Hadoop的物品租赁系统的设计与实现 9349a--论文 绪 论 1.1开发背景 随着网络的飞速发展,网络技术的应用越来越广泛,而信息技术的飞速发展,计算机管理系统的优势也逐渐体现出来,大量的计算机电子信息已经…

Python | 数据处理中常用的数据分布介绍

数据分布是指数据在统计图中的形状和特征,即数据取值的统计规律。在统计学中,数据分布是描述数据集中数值分布情况和规律的重要工具。通过数据分布,可以了解数据的集中程度、分散程度、偏态和峰态等信息,进而对数据进行合理的分析…

95后医疗行业女性转型记:如何成功踏入人工智能项目管理领域

分享目录 一、自我介绍,给大家分享一下拿到offer的心情吧 二、在整个求职转型陪跑营里,你收获最大的三个点是什么? 三、求职转行过程中,你遇到了哪些困难?七芊老师和强哥是怎么帮助你的?你是怎么走过来的…

Bellman_ford算法

使用Dijikstra算法求最短路问题,要求图中不能存在负长度的边,也就是负权边 为什么Dijikstra算法不能用来求含有负权边的图中的最短路问题? Bellman_ford算法 mention(1): 没有挑选路径长度距离编号 1 结…

[Datawhale AI夏令营 2024 第四期] 从零入门大模型微调之旅的总结

0. 引言: 在人工智能飞速发展的今天,掌握大模型微调技能对于从事 AI 研究和开发的专业人士来说至关重要。因此,Datawhale AI夏令营 2024 第四期] 从零入门大模型微调之旅;顺便参加了星火大模型驱动阅读理解题库构建挑战赛。 1. …

XSS--DOM破坏案例与靶场

靶场连接https://xss.pwnfunction.com/challenges/ 目录 Ma SPaghet! Jeff Ugandan Knuckles Ricardo Milos Ah Thats Hawt Ligma Mafia Ok,Boomer Ma SPaghet! <!-- Challenge --> <h2 id"spaghet"></h2> <script>spaghet.innerHT…

【嵌入式开发 Linux 常用命令系列 4.5 -- 去除 git diff 时出现的 ^M】

请阅读【嵌入式及芯片开发学必备专栏】 文章目录 去除 git diff 时出现的 ^Mgit config --global core.whitespace cr-at-eol选项解释 为什么使用 cr-at-eol如何配置使用示例纠正行尾回车符Sumamry 去除 git diff 时出现的 ^M git config --global core.whitespace cr-at-eol …

day23 Java基础——数组详解

day23 Java基础——数组(array) 文章目录 day23 Java基础——数组(array)1. 数组的概述2. 数组的声明和创建2.1 声明数组2.2 创建数组2.3 内存分析2.4 数组的三种初始化静态初始化动态初始化数组的默认初始化 3. 数组的使用3.1 访问数组元素3.2 数组的遍历3.3 数组的复制3.4 数…

微服务通过nacos实现动态路由

♥️作者&#xff1a;小宋1021 &#x1f935;‍♂️个人主页&#xff1a;小宋1021主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识&#xff0c;和大家一起努力呀&#xff01;&#xff01;&#xff01; &#x1f388;&#x1f388;加油&#xff01; 加油&#xff01…

08结构型设计模式——适配器模式

一、适配器模式简介 适配器模式&#xff08;Adapter Pattern&#xff09;是结构型设计模式之一&#xff0c;用于将一个类的接口转换成客户希望的另一个接口。这个模式使得原本接口不兼容的类可以在一起工作。适配器模式的核心目的是实现接口兼容性&#xff0c;使得系统能够使用…

C/C++软件逆向:IDA基本使用

这篇文章主要来说一下IDA的基本使用&#xff0c;那么在此之前先来准备一个简单的程序&#xff0c;作为IDA使用的实例。VS 创建一个C项目&#xff0c;并设置项目属性&#xff1a;设置运行库为MTd&#xff08;默认是MDd&#xff09; 运行库选项区别&#xff1a; 在Visual Studio…

Git使用速通

目录 一、Git相关配置系统配置文件存放处用户配置文件所在地用户名称和e-mail地址 二、初始化仓库git init——初始化仓库git status——查看仓库的状态git add——向暂存区中添加文件git commit——保存仓库的历史记录 三、版本回退与文件修改git log——查看提交日志git refl…

基于Java的线上售楼系统的设计与实现(论文+源码)_kaic

摘 要 现代化的线上售楼管理正在逐渐成为现代社会的重要需求&#xff0c;而目前的线上售楼由于存在管理不规范等缺点&#xff0c;严重制约了楼房和房地产公司的发展&#xff0c;建设一个更加规范化的线上售楼系统是十分迫切需要的。为此&#xff0c;使用Java语言&#xff0c;S…

leetCode - - - 双指针

目录 1.寻找重复数&#xff08;LeetCode 287&#xff09; 解法一&#xff1a;二分查找 解法二&#xff1a;快慢指针 2.验证回文串&#xff08;LeetCode 125&#xff09; 3.三数之和&#xff08;LeetCode 15&#xff09; 4.四数之和&#xff08;LeetCode 18&#xff09; …

Unity 麦扣 x 勇士传说 全解析 之 怪物基类与野猪(附各模块知识的链接,零基础也包学会的牢弟)(案例难度:★★☆☆☆)

通过一阵子的学习&#xff0c;我是这么认为的&#xff0c;因为该教程是难度两星的教程 &#xff0c;也就是适合学了一阵子基础组件以后的学习者 &#xff08;什么都不会的学习者要是学这套课程会困难重重&#xff0c;如果你什么都不会那么需要学习一星教程&#xff09; 所以该…

基于asp.net的webform框架的校园点餐系统源码

今天给大家分享一套基于asp.net的webform框架的网页点餐系统&#xff0c;适合课程设计参考及其自己学习&#xff0c;需要的小伙伴自己参考下&#xff0c;下载链接我放在后面了 主要功功能 系统的主要功能包含&#xff1a;前端点餐页面、加入购物车、商品食物浏览、我的购 物车…

ffmpeg开发者视频剪辑器

5G 时代的来临&#xff0c;加速了视频类作品的创作&#xff0c;由于现在的流量越来越便宜&#xff0c;网速越来越快&#xff0c;特别是流量无限用套餐&#xff0c;大家更愿意去看视频作品&#xff0c;特别是抖音的兴起&#xff0c;更是加速了小视频的流量。不会剪辑的我们该如何…

windows安装android studio

下载 https://developer.android.google.cn/studio?hlzh-cn 安装 打开cmd输入如下命令 android-studio-2024.1.1.12-windows.exe /NCRC 注意 运行命令后可能还报错&#xff0c;但是会出现弹窗 如果还是报错可以选择zip 运行 不设置代理 等待下载即可&#xff0c;…

SAP LE学习笔记04 - MM与WM跨模块收货到仓库的流程中 如何既创建TR又同时立即在前台创建TO

上一章讲了在MM模块的IM(在库管理)中收货到仓库的流程,以及关联WM移动Type与IM移动Type。 SAP LE学习笔记03 - 在IM(在库管理)中收货到仓库的流程&#xff0c;关联 WM移动Type与IM移动Type-CSDN博客 本章继续将LE的其他知识。 - MM与WM跨模块收货到仓库的流程中&#xff0c;如…

深入探索Amazon EC2:解锁云端计算的无限可能

欢迎来到本次的实验教程&#xff0c;这将引导您在功能强大且充满活力的 Amazon Web Services (AWS) 云中启动并配置虚拟机。 在本次实验中&#xff0c;您将亲身体验如何利用 Amazon 机器映像 (AMI) 启动 Amazon EC2 实例&#xff0c;并掌握使用密钥对进行 SSH 认证登录实例的技…