域名系统的工作原理
域名系统。
从最基本的角度来看,域名系统( DNS )是人类可读域名(例如google.com或amazon.com)和IP地址之间的翻译目录。
什么是IP地址?
Internet协议地址( IP地址)是分配给连接到计算机网络的每个设备的数字标签,该设备使用Internet协议进行通信。 它具有两个主要功能:网络接口标识和位置寻址。
有两种和常用的IP地址版本:IPv4和IPv6。 由于可用IPv4地址的Swift耗尽,IPv6在2000年代中期开始变得更加广泛。 您可以通过地址的长度轻松区分IPv4(8.8.8.8)和IPv6地址(0:0:0:0:0:ffff:808:808)之间的区别。
网络上的每个设备都需要有一个IP地址。 IP地址可以是公用的,也可以将专用和保留的IP地址用于专用IP地址。
- Class A — 10.0.0.0/8 10.0.0.0–10.255.255.255
- B级— 172.16.0.0/12 172.16.0.0–172.31.255.255
- C类-192.168.0.0/16 192.168.0.0–192.168.255.255
IP地址整体上是一个巨大的话题,以后我将继续撰写一篇有关IP地址的文章
DNS解析
DNS解析是将主机名转换为IP地址的过程。
加载网页需要执行4个操作。
递归器
递归是一个服务器,旨在接收来自客户端的查询。 它将充当客户端和DNS名称服务器之间的中间人。 如果存在,它将从其缓存中返回数据,或者直接查找根名称服务器。
根名称服务器
根名称服务器包含组成根区域的信息,该区域是顶级域的全局列表。 根区域包含;
-通用顶级域名,例如.com,.net和.org
-国家代码顶级域名,例如英国的.uk
-国际化的顶级域名,本质上是用国家/地区本地字符集编写的顶级域名
顶级域名服务器
TLD(顶级域)是Internet的DNS根区域中的最高域名。 互联网名称与数字地址分配机构(ICANN)负责大多数顶级域名。
权威名称服务器
权威名称服务器是名称服务器查询中的最后一个操作。 如果权威名称服务器可以访问请求的记录,它将把请求的主机名的IP地址返回给DNS递归。 该服务器保存特定域的实际DNS记录(A,CNAME等)
权威DNS服务器与递归DNS解析器?
主要区别在于递归解析器位于DNS查询的开头,而权威名称服务器位于查询的结尾。
假设您的操作系统和Web浏览器尚未缓存该客户端,则客户端将向递归DNS服务器发出请求以查找与该网站关联的IP地址。
递归服务器将检查自身是否已缓存IP,以及是否在有效生存时间(TTL)之内。 如果不是,它将启动递归过程(重复一个过程并返回自身),以遍历权威DNS服务器层次结构。
权威的DNS服务器负责目标网站的IP“映射”。 权威服务器将响应递归服务器。
权威服务器通常由Web托管公司管理,而递归服务器主要用于减轻权威服务器的负载,并提供一定程度的缓存。
DNS查找(不缓存任何内容时的指南)
用户在浏览器(例如本示例hackernoon)中输入网站。 com该请求最初由DNS递归解析器接收。
DNS递归解析器查询DNS根域名服务器(。),然后根服务器以顶级域的地址响应,并指向.com顶级域,并对其发出请求。域名服务器以域域名服务器hackernoon的IP地址作为响应。 com。
递归解析器将查询发送到域的名称服务器,以及hackernoon的IP地址。 com然后从名称服务器返回到解析器。 然后将IP发送回Web浏览器,然后浏览器向IP地址发出HTTP请求,并呈现从服务器返回的内容
DNS查询类型
在典型的DNS查找中,使用三种类型的查询。
在理想情况下,缓存的记录数据将可用,从而允许DNS名称服务器返回非递归查询。
递归DNS查询
对于递归查询,DNS客户端要求DNS服务器在解析器找不到记录的情况下以资源记录或错误消息响应客户端。
迭代DNS查询
对于迭代DNS查询,DNS客户端将允许DNS服务器返回其可能的最佳答案。
如果查询的DNS服务器与查询名称不匹配,它将返回对DNS服务器权威的引用。 然后,DNS客户端会查询引荐地址。 此过程将继续使用查询链中的其他DNS服务器,直到发生错误或超时。
非递归DNS查询
对于非递归查询,DNS解析器已经知道答案。
它要么立即返回一个DNS记录,因为它已经将其存储在本地缓存中,要么查询一个对该记录具有权威性的DNS名称服务器。 在这两种情况下,都不需要额外的查询,因此响应会立即返回给客户端
DNS缓存,DNS缓存在哪里发生?
缓存将数据临时存储在一个位置中,从而改善了数据请求的性能和可靠性。
DNS缓存将数据存储在更靠近发出请求的客户端的位置,以便可以更早解决DNS查询并避免其他查询。 这样可以缩短加载时间。
DNS数据可以缓存在多个位置,每个位置都将存储DNS记录一段由生存时间(TTL)确定的时间。
浏览器DNS缓存
Web浏览器旨在将DNS记录缓存一定的时间。
DNS缓存与Web浏览器的距离越近,必须采取的处理步骤就越少,以便检查缓存并向IP地址发出正确的请求。
浏览器缓存是检查请求记录的第一个位置。
操作系统DNS缓存
您的操作系统是DNS查询离开您的计算机之前可以使用缓存的最后一个位置。
当您的浏览器中未缓存记录时,操作系统解析器将检查其自己的缓存以查看是否具有该记录。
如果不正确,则它将本地网络外部的DNS查询发送到Internet服务提供商(ISP)内部的DNS递归解析器(通常是默认设置)或路由器中设置的解析器。
当递归解析器接收到DNS查询时,它还将检查所请求的主机转换是否已存储在其缓存中。
递归解析器还具有其他功能,具体取决于其缓存中具有的记录类型。
递归解析器如何有效解析?
如果解析器没有A记录,但是具有权威名称服务器的NS记录,它将绕过DNS查询中的几个步骤,直接查询那些名称服务器。 此快捷方式可防止从根服务器和.com域名服务器(在我们对example.com的搜索中)查找,并有助于更快地解决DNS查询。
如果解析器没有NS记录,它将向TLD服务器(在本例中为.com)发送查询,而跳过根服务器。
万一解析器没有指向TLD服务器的记录,则解析器将查询根服务器。 清除DNS缓存后,通常会发生此事件
翻译自: https://hackernoon.com/how-domain-name-system-work-318j3w0d
域名系统的工作原理