DNS域名解析的过程是怎样的?

网络 网络管理
DNS协议是一种基于UDP的应用层协议,它用于将网站的网址也就是域名,转换为IP地址,以便用户可以访问网站。

面试官:请说一下,DNS域名解析的过程是怎样的?

DNS协议是一种基于UDP的应用层协议,它用于将网站的网址也就是域名,转换为IP地址,以便用户可以访问网站。

图片图片

DNS把域名和IP地址联系在一起,有了保存网站域名和IP地址对应关系的DNS服务器,我们就不用输入IP地址来访问一个网站,而是输入网址,然后通过向DNS服务器请求获取域名对应的IP来访问网站了。

图片图片

DNS域的命名空间是一种树状层次结构,一般可分为根域、一级域(也叫顶级域)、二级域、子域以及主机名。

图片图片

对应地,在域名的每一层都会有一个域名服务器,来提供对应层级的域名解析服务。

图片图片

DNS进行域名解析的过程是,主机先查本地浏览器上的DNS缓存,再查本机操作系统中的DNS缓存以及hosts文件,如果都没有,才会向本地DNS服务器发起DNS域名解析请求,本地DNS服务器如果有请求域名对应的IP地址,则直接返回告诉主机。如果没有,就向根域名服务器发送请求,根域名服务器是最高层次的,它不直接用于域名解析,但是它会告诉本地DNS服务器去找对应的顶级域名服务器,接着,本地DNS服务器去找对应的顶级域名服务器请求,顶级域名服务器会告诉本地DNS服务器去找对应的权威DNS服务器,本地DNS于是再转向问权威 DNS服务器,权威DNS服务器查询后将对应的 IP 地址告诉本地 DNS,本地DNS再将IP地址返回给主机。

这个时候,为了避免下次对这个域名发起DNS解析时,再来一遍上面的解析过程,主机和本地DNS都会对刚刚的域名解析结果进行缓存,下次再解析时,如果有缓存就可以直接从缓存中获取解析结果。

图片图片

图片图片

图片图片

图片图片

图片图片

从上面的过程可以看到,DNS的查询方式分为两种,一种是递归,一种是迭代。

递归查询指的是如果 A 请求 B,那么 B 作为请求的接收者,一定要给 A 想要的答案。

图片图片

迭代查询指的是,如果接收者 B 没有请求者 A 所需要的准确内容,接收者 B 将告诉请求者 A,如何去获得这个内容,但是自己并不去发出请求。

图片图片

在实际应用中,递归查询通常用于从请求主机到本地 DNS 服务器的查询,而迭代查询则用于本地 DNS 服务器向根域名服务器或者顶级域名服务器发出查询请求。

图片图片

图片 图片

责任编辑:武晓燕 来源: 编程十万问
相关推荐

2019-03-18 10:44:41

负载均衡DNSUDP

2019-10-30 05:32:17

网址URLIP地址

2021-11-12 09:35:33

网址URLLinux

2019-06-12 14:18:31

TCPIP协议DNS

2009-09-02 20:18:17

域名劫持域名安全

2015-11-06 10:40:55

2022-03-22 07:37:33

DNS域名IP

2023-10-31 08:10:24

域名域名解析服务器

2023-11-07 07:21:04

2012-04-19 16:24:42

2023-03-09 08:12:08

免登录实Python脚本

2020-02-26 18:00:12

dig命令Linux域名解析

2021-06-28 08:26:29

CoreDNS域名

2010-05-24 15:35:58

IPv6域名解析

2013-05-14 14:28:55

2015-12-28 16:53:43

2017-12-22 10:48:41

邮件服务器PTR

2017-11-24 09:09:32

数据中心DNS负载均衡

2018-03-29 09:46:02

2011-05-31 16:55:43

点赞
收藏

51CTO技术栈公众号