历史内容
返回
dns解析器(免费dns)
发布时间:2024-04-20 00:38:47

  众所周知,在互联网中是用IP来标识一台服务器的。IP地址虽然能够代表一台设备,但是由于记忆起来比较困难,所以将其替换成一个能够理解和识别的名字,这个名字我们称作为域名。例如:www.baidu.com 就是一个域名,在域名后面会定义一个IP地址用来指向网站服务器。那么问题来了,谁来做这个从域名到IP地址的对应呢?答案是通过DNS来实现。


  DNS可以形象的理解为手机里面的电话簿,因手机号码是数串,记忆不方便,故使用电话簿工具,编写号码和昵称映射方便记忆。


  而域名系统 (DNS) 是互联网的电话簿。人们通过例如 baidu.com 或 zhihu.com 等域名在线访问信息。Web 浏览器通过 互联网协议 (IP) 地址进行交互。DNS 将域名转换为 IP 地址,以便浏览器能够加载互联网资源。


  连接到 Internet 的每个设备都有一个唯一 IP 地址,其他计算机可使用该 IP 地址查找此设备。DNS 服务器使人们无需存储例如 192.168.1.1(IPv4 中)等 IP 地址或更复杂的较新字母数字 IP 地址,例如 2400:cb00:2048:1::c629:d7a2(IPv6 中)。


  DNS 是域名系统(Domain Name System,缩写:DNS)是互联网的一项核心服务。它将域名和IP地址相互映射的一个分布式数据库,在数据库中保存域名与IP的对照关系,从而使人更方便地访问互联网。


  我们在浏览器中加载一个网页,涉及4个DNS服务器,如下展示:


  该解析器可被视为被要求去图书馆的某个地方查找特定图书的图书馆员。DNS 解析器是一种服务器,旨在通过 Web 浏览器等应用程序接收客户端计算机的查询。然后,解析器一般负责发出其他请求,以便满足客户端的 DNS 查询。


  DNS解析器一般集成在客户端中,由客户端中的解析器程序去处理DNS查询请求。


  根域名服务器是将人类可读的主机名转换(解析)为 IP 地址的第一步。可将其视为指向不同书架的图书馆中的索引 - 一般其作为对其他更具体位置的引用。


  举个例子:去快递站拿快递,你需要拿的快递编号为:1-2-4321,分别表示:快递站编号-货架编号-快递位置编号,根域名好比快递站编号1,提供编号索引,告诉你去1号快递站去找。


  顶级域名服务器(TLD)


  可看作是图书馆中一个特殊的书架。这个域名服务器是搜索特定 IP 地址的下一步,其上托管了主机名的最后一部分(例如,在


  example.com


  中,TLD 服务器为 “com”)。


  举个例子:去快递站拿快递,你需要拿的快递编号为:1-2-4321,分别表示:快递站编号-货架编号-快递位置编号,顶级域名服务器好比快递站编号2,提供编号索引,告诉你去2号货架编号去找。


  可将这个最终域名服务器视为书架上的字典,其中特定名称可被转换成其定义。权威性域名服务器是域名服务器查询中的最后一站。如果权威性域名服务器能够访问请求的记录,则其会将已请求主机名的 IP 地址返回到发出初始请求的 DNS 解析器(图书管理员)。


  举个例子:去快递站拿快递,你需要拿的快递编号为:1-2-4321,分别表示:快递站编号-货架编号-快递位置编号,权威性域名服务器好比快递位置编号4321,提供编号索引,告诉你去4321是你要找的快递包裹。


  DNS解析是分布式存储的,从结构上来说最顶层是,根域名服务器(ROOT DNS Server),存储260个顶级域名服务器的IP地址。对于IPv4 来说全球有13个根域名服务器,它储存了每个域(如.com .net .cn)的解析和域名服务器的地址信息。


  简单的说,根域名服务器就是存放顶级域名服务器地址的


  在根域名服务器下一级就是,顶级域名服务器。例如.com的域名服务器,存储的是一些一级域名的权威DNS服务器地址(如baidu.com的DNS)。


  域名结构解析图:请查看大佬写的文章,务必看完,明白DNS的结构,DNS域名空间等


  36 张图详解 DNS :网络世界的导航


  授权域名服务器也即是权威性域名服务器


  在此补充说明36张图详解DNS中,DNS解析过程说明。


  如上图所示:


  1、首先客户端位置是一台电脑或者手机,在打开浏览器以后,输入www.baidu.com的域名,它首先是由浏览器发起一个DNS解析请求,如果操作系统本地缓存TTL过期,并且没有了找到结果,则会向本地域名服务器(也可称递归DNS解析器或服务器),如果本地域名服务器找不到解析记录,则首先会向根服务器查询,根服务器里面记录的都是各个顶级域所在的服务器解析记录,当向根服务器请求www.baidu.com的时候,根服务器就会返回com服务器的解析记录信息。


  2、递归服务器(本地域名服务器)拿到com的权威服务器地址以后,就会询问com的权威服务器,知不知道baidu.com的解析记录或者位置,这个时候com权威服务器查找并返回baidu.com的解析地址。


  3、继续向baidu.com的权威服务器去查询www.baidu.com的地址,由baidu.com的服务器给出A记录解析地址为:112.80.248.76。


  4、最终浏览器拿到地址去进行https的连接请求,顺利访问百度首页网站。


  高速缓存,是为了提高DNS的查询效率,减轻根服务器的负荷和减少因特网上DNS查询报文数了,在域名服务器中广泛使用了高速缓存,高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。


  域名和IP地址映射关系并不是永久不变,为了保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项,


  TTL就是很好的机制


  不但本地域名服务器中需要高速缓存,在用户主机中也很需要。下面说下主机的缓存时间:


  PS:浏览器默认也有DNS缓存机制,Chrome和Firefox浏览器默认都是1分钟缓存。


  操作系统DNS缓存:


  Windows默认的DNS域名老化时间是5分钟,默认开启DNSlient,可以缓存一些常用的域名。


  Linux(CentOS、FreeBSD)默认无DNS缓存,但可使用nscd或者systemd-resolved开操作系统DNS缓存,但不建议这么,Ubuntu默认运行systemd-resolve daemon 用于名称服务器缓存。


  macOS严格遵循TTL设置。


  客户端清除缓存时间:


  具体原理可查看:


  36 张图详解 DNS :网络世界的导航区别:


  递归查询:


  如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户端的身份,向其他根域名服务器继续发出查询请求报文,即替主机继续查询,而不是让主机自己进行下一步查询。


  迭代查询:


  当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP 地址,要么告诉本地服务器下一步应该找哪个域名服务器进行查询,然后让本地服务器进行后续的查询。


  由于递归查询对于被查询的域名服务器负担太大,通常采用查询模式为:


  从请求主机到本地域名服务器的查询都是递归查询,而其余的查询是迭代查询。


  问答:


  DNS为什么用UDP?


  更正确的答案是 DNS 既使用 TCP 又使用 UDP。当进行区域传送(主域名服务器向辅助域名服务器传送变化的那部分数据)时会使用 TCP,因为数据同步传送的数据量比一个请求和应答的数据量要多,而 TCP 允许的报文长度更长,因此为了保证数据的正确性,会使用基于可靠连接的 TCP。


  当客户端向 DNS 服务器查询域名 ( 域名解析) 的时候,一般返回的内容不会超过 UDP 报文的最大长度,即 512 字节。用 UDP 传输时,不需要经过 TCP 三次握手的过程,从而大大提高了响应速度,但这要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。


 


在线客服
QQ客服
400-637-1699
反馈建议
置顶