一文彻底搞定DNS面试题 您所在的位置:网站首页 域名长度不能超过多少字符 一文彻底搞定DNS面试题

一文彻底搞定DNS面试题

2024-07-10 21:51| 来源: 网络整理| 查看: 265

很多次面试都问到了DNS解析的问题,回答的不是很好,今天专门总结一下 参考了文章如果美国把根域名服务器封了,中国会从网络上消失吗?文章来源于微月人话 ,作者卫sir

1、DNS是什么?

百度百科的解释

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

说人话就是把域名映射为IP的一个系统。

2. DNS服务器 2.1 本地域名服务器LDNS

每个电脑里面都设置了本地DNS服务器(简称LDNS),需要的时候,就向LDNS发出请求,LDNS在网上问权威域名服务器(简称权威DNS)得到答案。

2.2 权威域名服务器

问我一个域名,我告诉你IP,如果我不知道,我告诉你谁可能知道,你再去问它。 负责对请求作出权威的回答。权威DNS中存储着记录,最常见的3种:A记录(记录某域名和其IP的对应),NS记录(记录某域名和负责解析该域的权威DNS),CNAME记录(负责记录某域名及其别名)。权威能直接回答的,就回A记录;需要其他权威DNS回答的,就回NS记录,然后LDNS再去找其他权威DNS问;如果该记录是别名类型的,就回CNAME,LDNS就会再去解析别名。

2.3 根域名服务器—根DNS

当LDNS啥都不知道的时候(也即没有任何缓存),就去问根DNS,根能告诉LDNS下一步该问谁。

2.3.1 全世界有多少根DNS?

13个,其中10个在美国,英国和瑞典各1个,日本1个。

有被问到中国大陆有没有根DNS。回答亚洲有一台。

2.3.2 根DNS的名字和IP都是什么?

在这个网址:

https://www.internic.net/domain/named.root

打开可以看到,里面有13个根的名字和IP,其名字从A.root-servers.net到M.root-servers.net。

A开头那个简称A根,是主根,其他12个(B、C、D、E、F、G、H、I、J、K、L、M)是辅根。

3. DNS是怎么工作的? 3.1 域名的级别 .代表根域名,.com这种是顶级域名,也叫一级域名,baidu.com这种叫二级域名,www.baidu.com这种叫三级域名,依次类推 3.2 具体过程 权威DNS:权威能直接回答的,就回ip;需要其他权威DNS回答的,就回NS记录(记录某域名和负责解析该域的权威DNS),然后LDNS再去找其他权威DNS问;如果该记录是别名类型的,就回CNAME(负责记录某域名及其别名),LDNS就会再去解析别名。递归DNS:通常就是LDNS,它接受终端的域名查询请求,负责在网上问一圈后,将答案返回终端。

现在举一个具体的例子:比如终端请求www.baidu.com这个域名的IP。

在没有缓存时,LDNS会从根DNS问起:

1、LDNS问根DNS说:“www.baidu.com的IP是多少啊?”。

2、根DNS说:“我哪有时间管你这么细的问题,你去问com顶级域的DNS吧,我只管到顶级域,喏,这些是com顶级域DNS的名字和IP,你去问它们吧”。(以NS记录回应)

3、LDNS又忙问com的权威DNS,com权威DNS说:“你问的这是三级域名,我不管这么多,你去问baidu.com的权威DNS吧,它的名字是ns.baidu.com,他的IP是XXX(这里可能给出多个权威DNS)”。

4、LDNS继续问baidu.com的权威DNS,这次痛快,因为www.baidu.com正是它管的,它可能直接给出A记录,也可能给出CNAME记录,如果是前者,就直接得到IP,如果是后者,就需要对别名再做查询。

5、最终,LDNS得到www.baidu.com的IP,并将其返回给终端。

引用一张图片

在这里插入图片描述 注意:13个根域名服务器的IP通常是预先配置在LDNS里面的。在LDNS初始化DNS缓存或者缓存失效的时候,LDNS向自己被预先配置的这些IP中的一个,发起对根的查询(也即询问.的NS记录),获得最新的根DNS的信息。

考虑各个层面都有缓存,具体的请求解析过程会如下

举个例子,比如用户在浏览器中输入这个域名:123.abc.qq.com.cn

1、浏览器会先看自身有没有对这个域名的缓存,如果有,就直接返回,如果没有,就去问操作系统,操作系统也会去看自己的缓存,如果有,就直接返回,如果没有,再去hosts文件看,也没有,才会去问LDNS。

2、LDNS会去先看看自己有没有123.abc.qq.com.cn的A记录,要有就直接返回,要没有,就去看有没有abc.qq.com.cn的NS记录,如果有,就去问它要答案,如果没有,就去看有无qq.com.cn的NS的记录,如果有,就去问它,没有就去看有无com.cn的DNS,还没有就去看有无cn的DNS,如果连cn的NS记录都没有,才去问根。

只有在各处都没有缓存的时候,我们才会问根。

待完善的知识,DNS解析算法



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有