什么是DNS?域名系统如何运作?

JSON 2024-01-29 16:33:29 399

域名系统 (DNS) 是一个命名数据库,互联网域名位于其中并将其转换为互联网协议 (IP) 地址。域名系统将人们用来定位网站的名称映射到计算机用来定位该网站的 IP 地址。

例如,如果有人在 Web 浏览器中输入“sojson.com”,幕后的服务器会将该名称映射到相应的 IP 地址。IP 地址的结构类似于 203.0.113.72。

Web 浏览和大多数其他互联网活动都依赖 DNS 来快速提供将用户连接到远程主机所需的信息。DNS 映射按权限层次结构分布在整个互联网上。接入提供商和企业以及政府、大学和其他组织通常都有自己分配的 IP 地址范围和分配的域名。他们通常还运行 DNS 服务器来管理这些名称到这些地址的映射。大多数统一资源定位器 (URL) 都是围绕接受客户端请求的 Web 服务器的域名构建的。


DNS 的工作原理

DNS 服务器将 URL 和域名转换为计算机可以理解和使用的 IP 地址。它们将用户在浏览器中输入的内容转换为机器可以用来查找网页的内容。这个翻译和查找的过程称为DNS 解析。

DNS解析的基本过程如下:

用户在浏览器中输入网址或域名。

浏览器向网络发送一条称为递归 DNS 查询的消息,以找出该域对应的 IP 或网络地址。

查询将发送至递归 DNS 服务器,该服务器也称为递归解析器,通常由 Internet 服务提供商 ( ISP ) 管理。如果递归解析器有该地址,它将将该地址返回给用户,然后加载网页。

如果递归 DNS 服务器没有答案,它将按以下顺序查询一系列其他服务器:DNS 根名称服务器、顶级域 (TLD) 名称服务器和权威名称服务器。

这三种服务器类型协同工作并继续重定向,直到检索到包含所查询的 IP 地址的 DNS 记录。它将这些信息发送到递归 DNS 服务器,然后加载用户正在查找的网页。DNS 根名称服务器和 TLD 服务器主要重定向查询,很少自行提供解析。

递归服务器存储或缓存域名的 A 记录,其中包含 IP 地址。下次收到对该域名的请求时,它可以直接响应用户,而不用查询其他服务器。

如果查询到达权威服务器但找不到信息,则会返回错误消息。

查询各个服务器的整个过程只需要几分之一秒的时间,并且用户通常无法察觉。

DNS 服务器回答来自其域内和域外的问题。当服务器收到来自域外部的有关域内部名称或地址信息的请求时,它会提供权威答案。

当服务器从其域内收到对该域外的名称或地址的请求时,它会将请求转发到另一台服务器,通常由其 ISP 管理。

DNS结构

域名通常包含在 URL 中。域名由多个部分组成,称为标签。域层次结构是从右向左读取的,每个部分表示一个细分。

TLD 出现在域名中的句点之后。顶级域名的示例包括 .com、.org 和 .edu,但还有许多其他域名。有些可能表示国家/地区代码或地理位置,例如 .us 表示美国,.ca 表示加拿大。

TLD 左侧的每个标签表示右侧域的另一个子域。例如,在 URL www.techtarget.com 中,“techtarget”是 .com 的子域,“www.”是 .com 的子域。是 techtarget.com 的子域。

子域最多可以有 127 级,每个标签最多可以有 63 个字符。域字符总长度最多可达 253 个字符。其他规则包括标签不得以连字符开头或结尾,也不得使用全数字 TLD 名称。


DNS 服务器类型

完成 DNS 解析涉及多种服务器类型。以下列表按查询通过的顺序描述了四个名称服务器。他们提供正在寻找的域名或对其他名称服务器的引用。

1、递归服务器

递归服务器从应用程序(例如 Web 浏览器)获取 DNS 查询。它是用户访问的第一个资源,如果缓存了查询,则提供查询的答案;如果没有缓存,则访问下一级服务器。该服务器在将答案返回给客户端之前可能会经历多次查询迭代。

2、根名称服务器

如果递归服务器没有缓存答案,则该服务器是递归服务器发送查询的第一个位置。根名称服务器是所有将查询信息的服务器的索引。这些服务器由互联网名称与数字地址分配机构(特别是互联网名称与数字地址分配机构(ICANN)的一个分支机构,即互联网数字地址分配机构)监管。

3、顶级域名服务器

根服务器根据顶级域(URL 中的 .com、.edu 或 .org)引导查询。这是查找的更具体的部分。

4、权威名称服务器

权威名称服务器是 DNS 查询的最终检查点。这些服务器知道有关给定域的所有信息并处理域名的子域部分。这些服务器包含带有有关域的特定信息的 DNS 资源记录,例如 A 记录。它们将必要的记录返回到递归服务器,以发送回客户端并将其缓存在靠近客户端的位置以供将来查找。

DNS 查询的类型

以下类型的 DNS 查询是在 DNS 解析中的不同点发生的主要查询:

递归 DNS 查询是在递归服务器和客户端之间发生的查询。提供的答案要么是全名解析,要么是一条错误消息,指出找不到该名称。递归查询以答案或错误结束。

迭代 DNS 查询发生在递归解析器(本地 DNS 服务器)和非本地名称服务器(例如根名称服务器、TLD 名称服务器和权威名称服务器)之间。迭代查询不需要名称解析;名称服务器可能会以引用来响应。根服务器将递归服务器指向 TLD,TLD 将其指向权威服务器。权威服务器将域名提供给递归服务器(如果有的话)。迭代查询可以解决答案或推荐。

非递归查询是递归解析器已经知道从哪里获取答案的查询。答案要么缓存在递归服务器上,要么递归服务器知道跳过根服务器和 TLD 服务器并直接转到特定的权威服务器。它是非递归的,因为不需要(因此也没有请求)进行任何更多查询。非递归查询在答案中解析。如果递归解析器缓存了先前会话中的 IP 地址并在下一个请求时提供该地址,则这被视为非递归查询。

常见DNS记录

DNS 记录是查询所寻求的信息。根据查询、客户端或应用程序,需要不同的信息。有些记录是必需的,例如 A 记录

DNS 记录类型有很多种,每种类型都有自己的用途来表示应如何处理查询。常见的DNS记录有以下几种:

一个记录。它代表地址并保存域的 IP 地址。A 记录仅适用于 IPv4 地址。IPv6 地址具有 AAAA 记录,它使用 IPv6 地址的较长格式。大多数网站只有一个 A 记录,但一些较大的网站有多个 A 记录,这有助于通过在流量大时向不同用户提供不同的 A 记录来实现负载平衡。

NS 记录。这些名称服务器记录表示哪个权威服务器负责拥有有关给定域的所有信息。通常,域同时拥有主名称服务器和备份名称服务器以提高可靠性,并且使用多个 NS 记录将查询定向到它们。

TXT记录。TXT 记录使管理员能够将文本输入 DNS。最初的目的是在 DNS 中放置人类可读的注释,但如今,机器可读的注释经常放在那里。TXT 记录用于确认域所有权、安全电子邮件和反垃圾邮件。

CNAME 记录。当存在别名时,使用规范名称记录而不是 A 记录。它们用于重试对两个不同域的同一 IP 地址的查询。

版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/493.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:
DNS

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
dns污染怎解决?为什么会出现这种情况?
Java 实现多个二级域名访问同一个Tomcat(系统)。
如何查询域名是否被QQ或者微信拦截
网站如何设置404页面、500等错误页面,有什么漏洞?怎预防?
苹果电脑Mac怎恢复出厂系统?苹果系统重装系统
日期计算器的计算原理是什么
网站域名检测有哪些好处?
Java获取域名,Java从URL地址中获取域名,Java从Request 获取域名
当我谈 HTTP 时,我谈些什么?
网站的pr值是什么意思?
最新文章
Linux I/O重定向 1767
Ruby 循环 - while、for、until、break、redo 和 retry 711
Node.js:全局对象 517
如何使用终端检查Linux上的内存使用情况 635
JavaScript对象详细剖析 300
Python print() 函数 409
PHP if/else/elseif 语句 407
HTML5 Canvas弧线教程 387
Java赋值运算符 431
XML内部实体和外部实体 464
最热文章
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 686836
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 675081
免费天气API,天气JSON API,不限次数获取十五天的天气预报 615785
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 611117
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 555623
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 510028
Elasticsearch教程(四) elasticsearch head 插件安装和使用 481399
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 269208
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 244787
Elasticsearch教程(一),全程直播(小白级别) 227489
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...