DNS域名解析原理及配置

目录

一、DNS原理

什么是DNS

DNS 的作用

DNS 的工作原理

1. 用户输入域名

2. 查询本地 DNS 服务器

3. 递归查询

4. 根域名服务器

5. 顶级域名服务器

6. 权威 DNS 服务器

7. 返回结果

两种查询方式

二、DNS服务器系统类型

主域名服务器

从域名服务器

缓存域名服务器

转发域名服务器


一、DNS原理

在我们日常使用互联网时,我们会访问各种各样的网站,例如社交媒体、购物网站、搜索引擎等。我们通常直接在搜索框输入想要访问的网站名,比如我们国内的搜索引擎,www.baidu.com,就会自动跳转至百度搜索的页面。要知道,计算机是不能识别人类的语言的,只能通过一些方式,将人类的语言转化为它可以识别的二进制代码才行,那么,我们输入的网址,就是通过dns被解析成ip来搜索访问的。

什么是DNS

DNS(Domain Name System,域名系统)是互联网的基础设施之一,它就像是互联网的电话簿。DNS 的主要任务是将用户友好的域名,将域名转化为它可以识别的IP地址,这个过程称为域名解析。域名解析又分为正向解析和反向解析,顾名思义,正向解析是根据域名查找对应的IP地址,反向解析就是根据IP地址查找对应的域名,反向解析一般很少用到。

DNS 的作用

DNS 的主要作用有以下几点:

域名解析:将域名转换为 IP 地址,使计算机能够通过 IP 地址找到目标服务器。

分布式数据库:DNS 是一个分布式数据库,数据存储在全球各地的 DNS 服务器中,确保系统的可靠性和可扩展性。

层次结构:DNS 采用层次结构,分为根域、顶级域(如 .com、.org、.cn 等)、二级域(如 example.com)和子域(如 blog.example.com)。

缓存:为了提高查询速度,DNS 服务器会缓存最近查询的结果,减少重复查询的时间。

负载均衡:通过将同一个域名解析到不同的 IP 地址,实现服务器负载均衡,提升网站的性能和可靠性。

DNS 的工作原理

DNS的默认端口为53,端口分为TCP和UDP。

TCP通常是用来做区域传送,多用于主从同步。在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息,这个操作就是主从同步。

UDP通常是用来做DNS解析的,这也是DNS域名解析最核心的机制

DNS 域名解析的工作原理可以分为以下几个步骤:

1. 用户输入域名

当用户在浏览器中输入一个域名并按下回车键时,浏览器首先会检查本地缓存,看看是否有该域名的 IP 地址记录。如果有,则直接使用该 IP 地址;如果没有,则继续下一步。

2. 查询本地 DNS 服务器

如果本地缓存没有找到匹配的记录,浏览器会向本地 DNS 服务器(通常是由 ISP 提供)发送查询请求。本地 DNS 服务器也会先检查自己的缓存。

3. 递归查询

如果本地 DNS 服务器的缓存中也没有找到结果,它会以递归的方式向更高级别的 DNS 服务器查询。递归查询意味着本地 DNS 服务器会代表用户不断向上级 DNS 服务器查询,直到找到结果为止。

4. 根域名服务器

查询过程首先会到达根域名服务器。根域名服务器不会直接返回域名的 IP 地址,但它会告诉查询者下一级 DNS 服务器的位置(即顶级域名服务器,例如 .com 服务器)。

5. 顶级域名服务器

接下来,查询会到达顶级域名服务器。顶级域名服务器也不会直接返回最终的 IP 地址,而是会提供下一步查询所需的权威 DNS 服务器的位置(例如 example.com 的权威 DNS 服务器)。

6. 权威 DNS 服务器

最终,查询到达权威 DNS 服务器。权威 DNS 服务器拥有域名的实际 IP 地址记录,并将该地址返回给本地 DNS 服务器。

7. 返回结果

本地 DNS 服务器将权威 DNS 服务器返回的 IP 地址缓存起来,并将结果返回给用户的浏览器。浏览器收到 IP 地址后,便可以向目标服务器发送请求,加载网页内容。

两种查询方式

DNS 有两种查询方式,分别是

递归查询 递归查询是一种 DNS 服务器的查询模式,在该模式下 DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果 DNS 服务器本地没有存储查询 DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

迭代查询 DNS 服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台 DNS 服务器地址,客户机再向这台 DNS 服务器提交请求,依次循环直到返回查询的结果为止。

总结来看就是,递归查询是客户机只需等待DNS服务器查询完成就可以了,而迭代查询是要不停的根据DNS服务器返回的地址去查询,最终知道返回查询的结果。

二、DNS服务器系统类型

主域名服务器

负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

从域名服务器

当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。 注:

缓存域名服务器

只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。

转发域名服务器

负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

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

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

相关文章

搭建一个高并发的Web商品推荐系统,如何涉及软件架构?

搭建一个高并发的Web商品推荐系统,如何涉及软件架构 在搭建一个高并发的Web商品推荐系统时: 微服务架构: 为了支持高并发,我们可以采用微服务架构,将系统拆分成小型、独立的服务,每个服务专注于特定的功…

昇思25天学习打卡营第25天|GAN图像生成

学AI还能赢奖品?每天30分钟,25天打通AI任督二脉 (qq.com) GAN图像生成 模型简介 生成式对抗网络(Generative Adversarial Networks,GAN)是一种生成式机器学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。 GAN论文逐…

C++ 入门11:虚函数和多态

往期回顾: C 入门08:运算符重载-CSDN博客 C 入门09:友元函数和友元类-CSDN博客 C 入门10:继承和派生类-CSDN博客 C 入门第十一天:虚函数和多态 一、前言 在前面的文章学习中,我们了解了类和对象的基础知识…

1.32、 基于区域卷积神经网络(R-CNN)的停车标志检测(matlab)

1、基于区域卷积神经网络(R-CNN)的停车标志检测原理及流程 基于区域卷积神经网络(R-CNN)的停车标志检测原理及流程如下: 原理: R-CNN 是一种用于目标检测的深度学习模型,其核心思想是首先在输入图像中提取出候选区域&…

优化调试体验:让PyCharm的调试过程飞起来

优化调试体验:让PyCharm的调试过程飞起来 PyCharm是一款功能强大的Python集成开发环境(IDE),它提供了许多便利的调试工具来帮助开发者快速定位和解决问题。然而,在某些情况下,用户可能会遇到调试过程缓慢的…

请结合一个问题bug,帮忙梳理一下DecorView和Window之间的关系

在Android开发中,DecorView 和 Window 是两个核心概念,它们在用户界面显示和布局管理中扮演着重要角色。为了更好地理解它们之间的关系,并通过一个假设的bug场景来梳理它们,我们可以从以下几个方面进行阐述。 1. Window 的概念 …

Typescript Vue3中的defineProps接收参数,并withDefaults设置默认值

1. defineProps&#xff1a;接收父组件传递的参数 2. withDefaults&#xff1a;接收时设置默认值 这两个api都不需要引入&#xff0c;可直接在setup中使用 1. person.vue接收参数 <script setup lang"ts">import type {Persons} from /types// 接收list 可不…

springboot3 web

springboot web配置 springboot web的配置有&#xff1a; SpringMvc配置的前缀为&#xff1a;spring.mvcweb场景的通用配置为&#xff1a;spring.web文件上传的配置为&#xff1a;spring.servlet.multipart服务器相关配置为&#xff1a;server 接管SpringMVC 的三种方式 方…

【算法】无重复字符的最长子串

难度&#xff1a;中等 题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串的长度。 示例&#xff1a; 示例1&#xff1a; 输入&#xff1a;s “abcabcbb” 输出&#xff1a;3 解释&#xff1a;因为无重复字符的最长子串是 “abc”&#xff0c;所以…

1.26、基于概率神经网络(PNN)的分类(matlab)

1、基于概率神经网络(PNN)的分类简介 PNN(Probabilistic Neural Network,概率神经网络)是一种基于概率论的神经网络模型,主要用于解决分类问题。PNN最早由马科夫斯基和马西金在1993年提出,是一种非常有效的分类算法。 PNN的原理可以简单概括为以下几个步骤: 数据输入层…

对LinkedList和链表的理解

一.ArrayList的缺陷 二.链表 三.链表部分相关oj面试题 四.LinkedList的模拟实现 五.LinkedList的使用 六.ArrayList和LinkedList的区别 一.ArrayList的缺陷: 1. ArrayList底层使用 数组 来存储元素&#xff0c;如果不熟悉可以来再看看&#xff1a; ArrayList与顺序表-CSDN…

2024年7月13日全国青少年信息素养大赛Python复赛小学高年级组真题

第一题 题目描述 握情况。他决定让每个人输入一个正整数 N (0≤N≤1000)&#xff0c;然后计算并输出(5*N)的值。请用 在一个神秘的王国里&#xff0c;国王希望通过一个简单的测试来评估他的子民对基 础数学运算的掌 Python 编写程序&#xff0c;程序执行后要求用户输入一个正…

Hash表(C++)

本篇将会开始介绍有关于 unordered_map 和 unordered_set 的底层原理&#xff0c;其中底层实现其实就是我们的 Hash 表&#xff0c;本篇将会讲解两种 Hash 表&#xff0c;其中一种为开放定址法&#xff0c;另一种为 hash 桶&#xff0c;在unordered_map 和 unordered_set 的底层…

智驭未来:人工智能与目标检测的深度交融

在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;如同一股不可阻挡的浪潮&#xff0c;正以前所未有的速度重塑着我们的世界。在众多AI应用领域中&#xff0c;目标检测以其独特的魅力和广泛的应用前景&#xff0c;成为了连接现实与智能世界的桥梁。本文旨在…

20240715 每日AI必读资讯

&#x1f310; 代号“ 草莓 ”&#xff0c;OpenAI 被曝研发新项目&#xff1a;将 AI 推理能力提至新高度 - OpenAI 公司被曝正在研发代号为“ 草莓 ”的全新项目&#xff0c;进一步延伸去年 11 月宣布的 Q* 项目&#xff0c;不断提高 AI 推理能力&#xff0c;让其更接近人类的…

基于Java的休闲娱乐代理售票系统

你好&#xff0c;我是专注于Java开发的码农小野&#xff01;如果你对系统开发感兴趣&#xff0c;欢迎私信交流。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;Java技术、SpringBoot框架、B/S架构 工具&#xff1a;Eclipse IDE、MySQL数据库管理工具…

牛客小白月赛98 (个人题解)(补全)

前言&#xff1a; 昨天晚上自己一个人打的小白月赛&#xff08;因为准备数学期末已经写烦了&#xff09;&#xff0c;题目难度感觉越来越简单了&#xff08;不在像以前一样根本写不了一点&#xff0c;现在看题解已经能看懂一点了&#xff09;&#xff0c;能感受到自己在不断进步…

2024年是不是闰年?

闰年的由来 闰年的概念最早可以追溯到古罗马时期的朱利叶斯凯撒。当时的罗马历法是根据太阳年来制定的&#xff0c;每年大约有365.25天。为了使日历与季节保持同步&#xff0c;人们需要定期插入一个额外的日子。朱利叶斯凯撒在公元前46年颁布了一项法令&#xff0c;规定每四年增…

SAP PP学习笔记26 - User Status(用户状态)的实例,订单分割中的重要概念 成本收集器,Confirmation(报工)的概述

上面两章讲了生产订单的创建以及生产订单的相关内容。 SAP PP学习笔记24 - 生产订单&#xff08;制造指图&#xff09;的创建_sap 工程外注-CSDN博客 SAP PP学习笔记25 - 生产订单的状态管理(System Status(系统状态)/User Status(用户状态)),物料的可用性检查&#xff0c;生…

最长下降序列

如何理解这个题目呢,我们可以每个人的分数放到排名上&#xff0c;然后求解最长下降序列即可 #include<bits/stdc.h> using namespace std;int n; const int N (int)1e5 5; int a[N]; int b[N]; int d[N]; int dp[N]; int t;int main() {cin >> t;while (t--) {…