DNS-1 welcome
本系列文章旨在提供对于DNS的正确介绍(截止2018)。原始的RFCs依然是所有标准文本的权威来源,本文档是为了使得此协议更加简单易懂,同时也保持与RFCs的一致性。
此文档开源并由各位开发者合作完成。github仓库地址:hello-dns。也欢迎各位加入。
主要贡献者包括:Michał Kępień, Jan-Piet Mens, Andrew Babichev, Jacob Hoffman-Andrews, Peter van Dijk, Nathan Froyd, Gene McCulley, Charles-Henri Bruyand, jose nazario, Warren Kumari, Patrick Cloke, and Andrew Tunnell-Jones. 首先感谢他们的辛苦付出。
需要预先知道的概念:
- 什么是ip地址
- 什么是(存根)DNS解析器
- 什么是权威域服务器(Authoritative server)
[image:DB8033B5-D8DC-44BC-8AE5-EB805C6E0BB0-92027-0000693A81CEDB74/8399ECA3-9B7C-4E0A-BE82-280F0823BE5C.png]
经常有疑问的地方:权威域服务器储存DNS数据,解析器在权威域服务器上查找信息,客户端使用存根解析器在解析器上查找信息。本文档针对的是开发人员,但可能对于管理人员也有帮助。
DNS首次在1979年八月在IEN 116中被写下,作为描述互联网的一系列文件的一部分。IEN 116时代的DNS与今日的DNS并不兼容。在1983年,RFC 882和883发布了DNS与今日的有些类似,但还是不能互操作。
DNS在1987年发布RFC 1034和1035时形成了现代这种形式。尽管1034/1035的大部分内容仍然有效,但这些标准并不容易阅读,因为它们5是在一个非常不同的时代编写的。有一百多页的更新只能在以后的文件中找到。
文档的主要目标不是与DNS rfc相抵触,而是提供一个更容易理解域名系统的入口点。
本系列的主要文档:
- DNS核心
- 存根服务器与请求
- 权威域服务器
- 解析器
- tdns:一个从头开始的DNS库
- 可选的部分:EDNS,TSIG,动态升级,DNAME,DNS cookie
- 隐私相关:QName最小化,基于TLS的DNS,基于HTTPS的DNS,ENDS填充
- 域名系统安全扩展(DNSSEC)
- 非IETF标准:RRL和RPZ
- DNS的特殊部分:没有过时但是在生产中很少用到
我们从对DNS基础知识的一般性介绍开始:什么是资源记录,什么是RRSET,什么是区域,什么是区域切割,如何布置数据包。任何希望查询名称服务器或发出有效响应的人都需要阅读此部分。
然后,我们专门研究当应用程序向解析器发送问题时能期望得到什么,或者存根解析器能期望得到什么。
下一部分是关于权威服务器应该做什么。在此基础上,我们将不那么详细地描述解析器如何工作。最后,还有一节介绍可选元素,如EDNS、TSIG、动态更新和DNSSEC。
rfc,尤其是早期的rfc,倾向于描述同时执行授权和解析器功能的服务器。事实证明,这使得代码和故障排除都更加困难。因此,在这些文档中,授权功能和缓存功能分别进行了描述。
本系列文章截止2018年对DNS进行正确介绍,使协议更易懂且与RFCs一致。文档开源,介绍了需预先了解的概念,回顾了DNS发展历程,阐述主要目标是提供易理解入口点,还列出主要文档内容,包括核心、服务器、解析器等方面。
2119

被折叠的 条评论
为什么被折叠?



