前端应该了解的dns解析那些事

341 阅读7分钟

DNS是什么

DNS,英文全称Domain Name System,域名系统。其实是域名和ip地址相互映射的分布式数据库。有了它,人们可以轻松记住域名即可访问到目标服务器。

加载网页关联的4个DNS服务器

DNS解析器

顾名思义,负责发送查询DNS的请求,以及接收查询的结果(查询到的ip),比如上图的DNS Resolver

根域名服务器

可以理解成.域名的查询,比如上图的Root Resolver

TLD域名服务器

可以理解成,查询.com的ip的服务器

权威性域名服务器

查询luotuxiu.cn的ip的服务器,并将查询结果返回给DNS解析器

权威性域名服务器和递归DNS解析器的区别

递归DNS解析器位于DNS查询的开头,而权威性域名服务器位于末尾。

DNS查找的8个过程

  1. 用户输入www.luotuxiu.cn,被DNS递归解析器接收
  2. 递归解析器查询DNS根域名服务器(.)
  3. 根域名服务器使用存储其域信息的顶级域DNS服务器(.cn)的地址响应该解析器。
  4. 解析器向TLD域名服务器发出请求
  5. TLD服务器使用该域的域名服务器luotuxiu.cn的ip地址进行响应
  6. 递归解析器将查询发送到域的域名服务器
  7. 权威域名服务器将www.luotuxiu.cn的ip地址返回给解析器 8 . DNS解析器使用最初请求的域的ip地址相应web浏览器

腾讯云的CHAME是什么

其实CHEME是DNS的一种资源记录类型,DNS的资源记录类型有:

  • 主机记录(A记录): RFC1035定义,它将特定的主机名映射到对应主机的ip地址上
  • 别名记录(CHAME记录): RFC1035定义,CHEME记录用于将某个别名映射到某个A记录上
  • IPV6主机记录(AAAA记录):同A记录,将特定的主机名映射到对应主机的IPV6地址上

DNS高级缓存

DNS在本机会有两级缓存,具体的用法举个例子,比如,Chrome浏览器要访问www.luotuxiu.cn,此时浏览器会先去浏览器DNS缓存查询是否有该有效记录,如果没有,则往操作系统级DNS缓存查询是否有该有效缓存记录,如果没有,则开始向DNS服务器发送查找请求

浏览器DNS缓存

chrome浏览器的dns缓存地址可以在chrome://net-internals/#dns查看,浏览器一般会设计将访问过的DNS缓存一段时间,因为缓存了之后,下一次再次访问,就可以直接从浏览器DNS缓存取回服务器ip地址,无需再次查询DNS

操作系统级DNS缓存

当计算机访问过一次www.luotuxiu.cn网站后,计算机会存储对应的DNS缓存在操作系统,这是当浏览器DNS缓存失效或者不存在的时候,查询DNS的第二部,也是在本台机器的最后一步。

DNS NS记录

NS代表域名服务器,指示着哪个DNS服务器对于该域具有权威性(即告诉计算机,你如果要找这个域名,你就去“这台服务区”找ip)。一个域经常有多个NS记录

mac下面查看域名服务器

查看本机当前生效的域名服务器

cat /etc/resolv.confg

可以看到打印:

#
# macOS Notice
#
# This file is not consulted for DNS hostname resolution, address
# resolution, or the DNS query routing mechanism used by most
# processes on this system.
#
# To view the DNS configuration used by this system, use:
#   scutil --dns
#
# SEE ALSO
#   dns-sd(1), scutil(8)
#
# This file is automatically generated.
#
search DHCP HOST
nameserver 192.168.1.1
nameserver 192.168.0.1

search 定义域名的搜索列表 nameserver 定义DNS服务器的IP地址

host

可以用host + 域名的方式查询该域名对应的ip地址,如

host www.luotuxiu.cn

得到的结果是:

www.luotuxiu.cn has address 180.96.32.96
www.luotuxiu.cn has address 180.96.32.98

nslookup

还可以用更详细的命令查看ip

nslookup

进入命令行后继续输入www.luotuxiu.cn

即可得到

Server:		192.168.1.1
Address:	192.168.1.1#53

Non-authoritative answer:
Name:	www.luotuxiu.cn
Address: 180.96.32.96
Name:	www.luotuxiu.cn
Address: 180.96.32.98

dig

使用dig查询当前的dns解析过程

dig +trace www.luotuxiu.cn

结果返回

; <<>> DiG 9.10.6 <<>> +trace www.luotuxiu.cn
;; global options: +cmd
;; Received 28 bytes from 192.168.1.1#53(192.168.1.1) in 101 ms

可以看到是从dns服务器192.168.1.1取回了ip地址。

我们可以使用指定指定dns服务器查看在没有缓存的情况下,全流程dns解析过程

dig +trace @8.8.8.8 www.luotuxiu.cn

得到结果

; <<>> DiG 9.10.6 <<>> +trace @8.8.8.8 www.luotuxiu.cn
; (1 server found)
;; global options: +cmd
.			76525	IN	NS	e.root-servers.net.
.			76525	IN	NS	h.root-servers.net.
.			76525	IN	NS	l.root-servers.net.
.			76525	IN	NS	i.root-servers.net.
.			76525	IN	NS	a.root-servers.net.
.			76525	IN	NS	d.root-servers.net.
.			76525	IN	NS	c.root-servers.net.
.			76525	IN	NS	b.root-servers.net.
.			76525	IN	NS	j.root-servers.net.
.			76525	IN	NS	k.root-servers.net.
.			76525	IN	NS	g.root-servers.net.
.			76525	IN	NS	m.root-servers.net.
.			76525	IN	NS	f.root-servers.net.
.			76525	IN	RRSIG	NS 8 0 518400 20210123180000 20210110170000 42351 . aTWefzVrlZ8X5Hnnz950x+ANF8WIOWd+fl+ZJQ63vBZ1sFGoUq5o1ugo 4gxg3+tnbd87hj6pMAs6VfnjirO97w0Wkz16MkQwqF0wPSVqOi5H3dyw cuBP9NYYrlOPEgiIO8Yka8vgHaOY16wDqQSI8gpBmJ7kC+0Ggpn1OZrv o0Vjy6xnUo7RCWhfKrLU/+uQCNVQDTMhd5cs7JYMpe2jQOzIbCDyZGwU E94qQ8i0Hg68Cl/MKECMYyd5OnIPQ9BHoXO+3PDeAe4j+NU0r/q3AYKM WGsJIbu3QXo2fjJgfXyKTrb/acq4IxNhS0mLzJU2XZv9M2oHMd5M+Y2V FtlEkw==
;; Received 525 bytes from 8.8.8.8#53(8.8.8.8) in 203 ms

cn.			172800	IN	NS	g.dns.cn.
cn.			172800	IN	NS	c.dns.cn.
cn.			172800	IN	NS	a.dns.cn.
cn.			172800	IN	NS	d.dns.cn.
cn.			172800	IN	NS	e.dns.cn.
cn.			172800	IN	NS	b.dns.cn.
cn.			172800	IN	NS	ns.cernet.net.
cn.			172800	IN	NS	f.dns.cn.
cn.			86400	IN	DS	57724 8 2 5D0423633EB24A499BE78AA22D1C0C9BA36218FF49FD95A4CDF1A4AD 97C67044
cn.			86400	IN	RRSIG	DS 8 1 86400 20210124050000 20210111040000 42351 . gldMbD7NFx5EqbzLaXuOSkil0Fkd2DQjSs8YnsohyOI2mzSTgwjXM49C AH0vzrbI/2r6csh3INoF7zIfAP2mb6ALVBEppj8i2Kv5TELhWWZJ6KiJ A2BlZFkRWYu+IxQ0z5SoCYp3tTS08N9AZkQwnP2yndMhdH4CT17l2PpN utmbKnEUCy8z3KCqBSoaj4Lv1Crlb6iswYE5OfVclOpUm2vjMd7JqpZb YaQQq/NAp9KphADkstIEdJNjgO+8AOngW3o2bv7ZVVpGqfJRki+rzUdI KPptPQ6x5xSlVVJ6Os6McJ9iJgMomNbpsgiHafmpedwb+L8iOERtWuY3 Tkrsww==
;; Received 706 bytes from 192.112.36.4#53(g.root-servers.net) in 319 ms

luotuxiu.cn.		86400	IN	NS	f1g1ns2.dnspod.net.
luotuxiu.cn.		86400	IN	NS	f1g1ns1.dnspod.net.
3QDAQA092EE5BELP64A74EBNB8J53D7E.cn. 21600 IN NSEC3 1 1 10 AEF123AB 3QLMP0QRNQ96G5AFGOPNB7U7IJ4MBP4B  NS SOA RRSIG DNSKEY NSEC3PARAM
3QDAQA092EE5BELP64A74EBNB8J53D7E.cn. 21600 IN RRSIG NSEC3 8 2 21600 20210128113121 20201229111635 38388 cn. lvPSHIakSje8FjsPhic7QsaLblv/ggmFlU4dfkJNoA6gTKK5Z3/fIP/z 51sTaH7tzfVFRQS2jwtO+l1UPCMMIYZP/I60TOqOyBdNnQ19xRFIVOAw iNztsYr67zl+f7vgI4PLiGeT7W0ZJF622DR55IvnqQxRJtYsUrIUST0c e5s=
LU6FHG6M83PC9T18QLU1M9043MHUAVGI.cn. 21600 IN NSEC3 1 1 10 AEF123AB LUDN3FJ5O0BVQH07E378UVEQVIQ8LHGB  CNAME RRSIG
LU6FHG6M83PC9T18QLU1M9043MHUAVGI.cn. 21600 IN RRSIG NSEC3 8 2 21600 20210128094806 20201229094723 38388 cn. YArwYAuXzYvdiD0lrcupqvyOIqcVMPa2K55OY20jKAhEbP0mdsIKB/U3 7v6Q1h2ws05otSsotUh9brPGrr5sU4UsIECXbmSUn5cbyTFnXoFdgBru XQPjPzRL0WFdVu73yGBtbPkqk+z0X23e804KS38Fca9+IYVg/LUG0sg+ SuA=
;; Received 589 bytes from 66.198.183.65#53(g.dns.cn) in 349 ms

www.luotuxiu.cn.	600	IN	CNAME	www.luotuxiu.cn.cdn.dnsv1.com.
luotuxiu.cn.		86400	IN	NS	f1g1ns1.dnspod.net.
luotuxiu.cn.		86400	IN	NS	f1g1ns2.dnspod.net.
;; Received 151 bytes from 162.14.24.230#53(f1g1ns2.dnspod.net) in 49 ms

如何在腾讯云配置七牛图床

参考七牛云的文档

添加qiniu.luotuxiu.cn为七牛CDN的域名,将七牛云的CDN域名的CHAME值复制出来后,在腾讯云添加一条记录类型为CNAME的记录,主机记录为qiniu,其它填默认,即可生效

百度被黑事件原理

黑客利用了DNS记录篡改的原理,将一个国外的ip地址返回给用户,用户实际访问到的是这个假的ip地址的内容,影响时长长达数小时