域名是如何解析的,解析的过程介绍

前几天我增加了一个小工具:Dig+trace域名查询工具,可用于域名解析诊断,今天顺便同大家分享一下域名解析的过程,一起探究一下域名解析的原理,什么是域名我相信各位看官已经不用介绍了,我们直接从域名解析过程开始。

首先,计算机拿到用户输入的域名以后会去查询一个服务器,那就是咱们电脑中设置的DNS服务器,DNS是指 Domain Name System,每个运营商都会提供一个DNS服务器来供用户解析域名,本文不讲DNS的原理,只讲域名的解析过程,所以直接看解析的过程。

以 www.renfei.net 为例,以英文点“.”为界限,会被分为以下几个部分:

.:根
net.:顶级域名
renfei.net.;一级域名
www.renfei.net.:二级域名

解析过程:

; <<>> DiG 9.10.6 <<>> www.renfei.net +trace
;; global options: +cmd
.			1454	IN	NS	a.root-servers.net.
.			1454	IN	NS	b.root-servers.net.
.			1454	IN	NS	c.root-servers.net.
.			1454	IN	NS	d.root-servers.net.
.			1454	IN	NS	e.root-servers.net.
.			1454	IN	NS	f.root-servers.net.
.			1454	IN	NS	g.root-servers.net.
.			1454	IN	NS	h.root-servers.net.
.			1454	IN	NS	i.root-servers.net.
.			1454	IN	NS	j.root-servers.net.
.			1454	IN	NS	k.root-servers.net.
.			1454	IN	NS	l.root-servers.net.
.			1454	IN	NS	m.root-servers.net.
;; Received 239 bytes from 192.168.3.1#53(192.168.3.1) in 2181 ms

net.			172800	IN	NS	j.gtld-servers.net.
net.			172800	IN	NS	k.gtld-servers.net.
net.			172800	IN	NS	f.gtld-servers.net.
net.			172800	IN	NS	a.gtld-servers.net.
net.			172800	IN	NS	i.gtld-servers.net.
net.			172800	IN	NS	g.gtld-servers.net.
net.			172800	IN	NS	h.gtld-servers.net.
net.			172800	IN	NS	l.gtld-servers.net.
net.			172800	IN	NS	m.gtld-servers.net.
net.			172800	IN	NS	d.gtld-servers.net.
net.			172800	IN	NS	c.gtld-servers.net.
net.			172800	IN	NS	e.gtld-servers.net.
net.			172800	IN	NS	b.gtld-servers.net.
net.			86400	IN	DS	35886 8 2 7862B27F5F516EBE19680444D4CE5E762981931842C465F00236401D 8BD973EE
net.			86400	IN	RRSIG	DS 8 1 86400 20190921050000 20190908040000 59944 . U67D4A1ac4cMhMsLOfaOVPYUOXvFr0++r1oYMt1o2m+j/XV3pXktCOGG tH+eBNlbMsiSGmD9mKeJ+2Rp87gVm4vLO6tDMiqS9YRp7Z5IsojcdqUL C6MnXYoQGSv9QuJhKG2mJKaJiYqK4REjZRqWo+UbnpTw200UZrLHw2pe 8/S8LsxWLOR/g9vAma22hj36McHjakbBIIRUE3CMkOwn9tIfYVwBqpnO ssETDNElvF0ZqM1NDzi9ryA5ftmZDWvBMvog6xWsAAFGikEIyTpiGV83 HV9CyLyIouDD1dpVKzh7bK4AdkHfQ5BNNR01FNnAfQWw6DwKGnXHwV1Q SMLB4A==
;; Received 1171 bytes from 192.5.5.241#53(f.root-servers.net) in 5 ms

renfei.net.		172800	IN	NS	elsa.ns.cloudflare.com.
renfei.net.		172800	IN	NS	ian.ns.cloudflare.com.
renfei.net.		172800	IN	NS	jack.ns.cloudflare.com.
renfei.net.		172800	IN	NS	kim.ns.cloudflare.com.
renfei.net.		172800	IN	NS	lee.ns.cloudflare.com.
renfei.net.		172800	IN	NS	todd.ns.cloudflare.com.
renfei.net.		172800	IN	NS	tom.ns.cloudflare.com.
renfei.net.		172800	IN	NS	will.ns.cloudflare.com.
renfei.net.		172800	IN	NS	coco.ns.cloudflare.com.
renfei.net.		172800	IN	NS	mary.ns.cloudflare.com.
renfei.net.		172800	IN	NS	albert.ns.cloudflare.com.
renfei.net.		172800	IN	NS	peyton.ns.cloudflare.com.
renfei.net.		172800	IN	NS	robin.ns.cloudflare.com.
renfei.net.		86400	IN	DS	2371 13 2 AB869C32F05DF68F733BC57F2B5993A5CD00566A6C4CAD102A9CD36C 3F9A2F9A
renfei.net.		86400	IN	RRSIG	DS 8 2 86400 20190912095909 20190905084909 59540 net. E5YYPNXrbiCLEj/yQY1BjylrPMdhKj2r60GM6xExVjpyBGMA6cshXhZT wHsEtgEHMoXRCLw9zMREM37vzeDIGUP2VkiIQkM57BzPQutoOyqB/Eyf 32DNnT956MD+De7sFZB8qcpHDNTYNf7qr0pN2w3f4pl8RSzjEW0iNe+s ffsJ4iVUJ1LQ++q1kDlucghh7sab54VduGjaE5LWyEQPAA==
;; Received 551 bytes from 2001:502:1ca1::30#53(e.gtld-servers.net) in 201 ms

www.renfei.net.		43200	IN	A	104.18.60.69
www.renfei.net.		43200	IN	RRSIG	A 13 3 43200 20190909122105 20190907102105 34505 renfei.net. yAj+eHswgX/Ltevl3iHhYZTD5jKG742yVltIoX3KilobjWz2mHjY/dPw iWGPt381JqwGWXuG+Yo/70n4MpsZ/A==
;; Received 191 bytes from 173.245.59.118#53(ian.ns.cloudflare.com) in 199 ms

解析过程一:寻找根解析服务器

我们根据 Dig+trace 的解析跟踪会看到,先查询了 . 根的 NS 记录,NS 就是 NameServer,根域名服务器是规定死的,一共13台服务器,分别是a、b、c、d、e、f、g、h、i、j、k、l、m,由于早期的 DNS 查询结果是一个512字节的 UDP 数据包。这个包最多可以容纳13个服务器的地址,因此就规定全世界有13个根域名服务器,编号从a.root-servers.net一直到m.root-servers.net。

在获得13个根服务器后,随机挑选一个

解析过程二:寻找 net.解析服务器

上面的过程拿到根域名服务器地址以后,就会去询问根服务器,net. 的 NS 记录是什么?这时候我们看到 f.root-servers.net 进行了应答,耗时 5ms,又拿到了 从a.gtld-servers.net一直到m.gtld-servers.net 的服务器

解析过程三:寻找 renfei.net.解析服务器

上面的过程拿到net.域名服务器地址以后,就会去询问net.服务器,renfei.net. 的 NS 记录是什么?这时候我们看到 e.gtld-servers.net 进行了应答,耗时 201ms,拿到了一组 NS 服务器,因为到 renfei.net. 这一级,已经是用户注册的域名了,所以我们可以自定义自己的 NS 服务器

解析过程四:寻找 www.renfei.net.的解析记录

上面的过程拿到renfei.net.域名服务器地址以后,就会去询问renfei.net.服务器,www.renfei.net. 的解析记录是什么?这时候我们看到 ian.ns.cloudflare.com 进行了应答,回复了一条 A 记录,值是 104.18.60.69,这样我们就拿到了最终的 IP 地址,解析过程结束


题外话,肯定有同学问根服务器这么重要,都在谁手里管理呢?

这13台根域名服务器中名字分别为“A”至“M”,其中10台设置在美国,另外各有一台设置于英国、瑞典和日本。

1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。

所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。

2010年3月16日前,中国大陆有F、I、J这3个根域DNS镜像,但因为某些不和谐原因,中国大陆境内的I根域镜像曾被撤销路由通告。现今,中国大陆境内共有F、I、J、L这4个根域的6台DNS镜像(L有三台镜像)在提供服务。


Comments