个人小站

[资料]DNS相关

字数统计: 1.4k阅读时长: 6 min
2019/06/27

DNS概念
DNS一般分为权威服务节点和递归服务节点。
我们一般使用的都是递归服务节点。

递归DNS(local dns)

递归DNS可以理解为是一种功能复杂些的resolver,其核心功能一个是缓存、一个是递归查询。
收到域名查询请求后其首先看本地缓存是否有记录,如果没有则一级一级向上级递归服务器查询,直到最上级递归服务器开始向根服务器,顶级域名服务器(例如“.com”),一级域名服务器(例如“example.com”)迭代查询……直到获取到结果然后返回给用户。

递归 DNS 由网络运营商建设,提供域名查询解析服务。

递归以及迭代

这里是重点强调下,因为我感觉网上查的不少在这都很混乱
我的理解是local dns,也就是递归DNS的层级可以设置不止一层(最终到根域名服务器)。

客户端和递归DNS之间的查询是递归的。

递归DNS(local DNS)向root name server、顶级域名服务器(TLD DNS),权威DNS(Authoritative name server)的查询是迭代的。

根域名服务器(root name server)

最高级别的域名服务器,全球只有13根服务器(一组很多台,共用一个IP,而且可以架设不同IP的镜像)。
域名格式为“字母(a-m).root-servers.net”
中国架设了F、I、K、L根镜像服务器。
根域名“.” 服务器,例如www.baidu.com的域名是www.baidu.com.,最后那个“.”通常被隐藏。
通常只有根域名服务器有Root Zone file,而其他递归DNS服务器则只需要配置Root Hits文件,只包含根域名服务器的地址。

顶级 DNS(TLD DNS)

负责处理 .com, .org及所有顶级国家域名,提供到权威域服务器的映射。

权威 DNS(Authoritative name server)

特定域名记录(例如“example.com”)在域名注册商处所设置的 DNS 服务器,用于特定域名本身的管理(增加、删除、修改等)。

权威 DNS 服务器只对自己所拥有的域名进行域名解析,对于不是自己的域名则拒绝访问。比如,向“example.com”的权威 DNS 服务器查询“test.com”的域名肯定会查询失败。

权威DNS即通俗上“这个域名我说了算”的服务器。
权威 DNS 由域名解析服务商建设,提供域名管理服务,维护域名解析记录。

我觉得可以把根服务器和顶级DNS理解为权威 DNS的最高两级

转发DNS

转发DNS是一种特殊的递归。如果本地的缓存记录中没有相应域名结果时,其将查询请求转发给另外一台DNS服务器,由另外一台DNS服务器来完成查询请求。

ECS

用个人看法总结一下,local DNS的查询通常只会提供local DNS的IP,而现代网络为了效能需要由距离用户最近的节点来响应。而ECS是用来附加请求解析的客户端的信息。
下面有论文说明
https://www.ixueshu.com/document/36449a6cef21d28dec8b4f308072b7f5.html

判断DNS是否支持ECS的办法

使用命令(个人猜测域名也要支持才会有我所说的返回值,像百度就不支持)
dig a100.phobos.apple.com @119.29.29.29 +subnet=218.92.128.0/32 +nocookie

返回值如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
; <<>> DiG 9.14.3 <<>> a100.phobos.apple.com @119.29.29.29 +subnet=218.92.128.0/32 +nocookie
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34296
;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
; CLIENT-SUBNET: 218.92.128.0/32/24
;; QUESTION SECTION:
;a100.phobos.apple.com. IN A

;; ANSWER SECTION:
a100.phobos.apple.com. 83 IN CNAME a2.phobos.g.aaplimg.com.
a2.phobos.g.aaplimg.com. 83 IN CNAME a1-a200.itunes-apple.com.akadns.net.
a1-a200.itunes-apple.com.akadns.net. 83 IN CNAME a1-a200.phobos.apple.chinacache.net.
a1-a200.phobos.apple.chinacache.net. 83 IN CNAME a1-a200.phobos.apple.telssr.chinacache.net.
a1-a200.phobos.apple.telssr.chinacache.net. 83 IN CNAME hpcc-download.telssr.chinacache.net.
hpcc-download.telssr.chinacache.net. 83 IN A 58.216.29.69
hpcc-download.telssr.chinacache.net. 83 IN A 103.53.126.61

;; Query time: 277 msec
;; SERVER: 119.29.29.29#53(119.29.29.29)
;; WHEN: Tue Jul 02 11:34:53 中国标准时间 2019
;; MSG SIZE rcvd: 293

注意到EDNS version那里有一个CLIENT-SUBNET: 218.92.128.0/32/24
而使用114.114.114.114或者223.5.5.5的返回值就没有上面那一段(114有时候第一次会有,待观察)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
; <<>> DiG 9.14.3 <<>> a100.phobos.apple.com @114.114.114.114 +subnet=218.92.128.0/32 +nocookie
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3730
;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;a100.phobos.apple.com. IN A

;; ANSWER SECTION:
a100.phobos.apple.com. 112 IN CNAME a2.phobos.g.aaplimg.com.
a2.phobos.g.aaplimg.com. 112 IN CNAME a1-a200.itunes-apple.com.akadns.net.
a1-a200.itunes-apple.com.akadns.net. 112 IN CNAME a1-a200.phobos.apple.chinacache.net.
a1-a200.phobos.apple.chinacache.net. 112 IN CNAME a1-a200.phobos.apple.telssr.chinacache.net.
a1-a200.phobos.apple.telssr.chinacache.net. 112 IN CNAME hpcc-download.telssr.chinacache.net.
hpcc-download.telssr.chinacache.net. 112 IN A 103.53.126.61
hpcc-download.telssr.chinacache.net. 112 IN A 222.186.186.246

;; Query time: 0 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Tue Jul 02 12:08:45 中国标准时间 2019
;; MSG SIZE rcvd: 322

软件相关

dig是Liunx包括Mac下最好用的DNS查询工具,Windows 下可以下载Bind 9来获取dig工具
根域名服务器不少用的都是Bind 9

原文作者:ted423

原文链接:http://ted423.github.io/Document/Network/DNS/

发表日期:June 27th 2019, 5:00:00 pm

更新日期:June 27th 2019, 5:00:00 pm

版权声明:本站原创内容(一般是语句不通顺的那种)采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可,转载内容以及不带个人观点的分享不在此例,摘抄有Wiki的内容的文章统一根据Wiki采用 CC BY-SA 3.0

CATALOG
  1. 1. 递归DNS(local dns)
  2. 2. 递归以及迭代
  3. 3. 根域名服务器(root name server)
  4. 4. 顶级 DNS(TLD DNS)
  5. 5. 权威 DNS(Authoritative name server)
  6. 6. 转发DNS
  7. 7. ECS
    1. 7.1. 判断DNS是否支持ECS的办法
  8. 8. 软件相关