什么是域名系统(DNS)?
域名系统(DNS)是一个命名数据库,用于定位互联网域名并将其转换为IP地址。DNS将人们用于定位网站的名称映射到计算机用于定位该网站的IP地址。例如,当有人在浏览器中输入"example.com"时,后台服务器会将该名称映射到对应的IP地址203.0.113.72。
DNS命名结构
DNS服务器通过引用用户请求的站点域名来引导互联网流量。域名通常包含在URL中,由多个称为标签的部分组成。域名层次结构从右到左读取,每个部分表示一个细分。
顶级域(TLD)出现在域名中的点号之后。TLD的示例包括.com、.org和.edu等。有些TLD表示国家代码或地理位置,例如.us代表美国,.ca代表加拿大。
DNS的重要性
互联网运营依赖于DNS,其功能类似于虚拟电话簿,是使用户和资源能够识别并相互连接的映射装置。没有DNS自动映射设施,互联网用户和服务请求者将需要知道并手动输入他们希望连接的服务的IP地址。
DNS工作原理
DNS服务器将URL和域名转换为计算机可以理解和使用的IP地址。这个转换和查找过程称为DNS解析。其目的是将基于人类语言的名称(如techtarget.com)转换为TCP/IP定位网站或其他互联网资源所需的数字IP地址。
DNS解析有两种主要技术:
- 递归解析:本地网络DNS服务器尝试转换用户提交的域名
- 迭代解析:当初始请求不成功时,请求被迭代发送到多个不同的DNS服务器
DNS服务器类型
DNS使用不同类型的服务器来定位用户请求的域名的IP地址:
- 递归服务器:用户网络内的第一台DNS服务器
- 根名称服务器:包含被查询信息的所有服务器的主索引
- TLD服务器:基于请求资源的TLD名称
- 权威服务器:保存用户访问的站点和资源的DNS记录
常见DNS记录
DNS记录是查询寻找的信息。根据查询、客户端或应用程序的不同,需要不同的信息。以下是常见的DNS记录类型:
- A或AAAA记录:保存域的IP地址
- 名称服务器记录:指定哪个权威DNS服务器负责特定域的所有信息
- TXT记录:允许管理员在DNS中输入文本
- 规范名称记录(CNAME):用于解决一个网站可能有多个域名或别名的情况
DNS缓存
DNS缓存旨在减少获取DNS查询答案所需的时间。缓存使DNS能够将先前查询的答案存储在更靠近客户端的位置,并在下次查询时更快地将该信息提供给它们。DNS数据可以缓存在以下位置:
- 浏览器:大多数浏览器默认缓存DNS数据
- 操作系统:许多操作系统都有内置的DNS解析器
- 递归解析器:DNS查询的答案也可以缓存在DNS递归解析器上
DNS安全
随着时间的推移,已经发现了几个DNS漏洞。其中一种漏洞是DNS缓存中毒。这种网络攻击将数据分发到缓存解析器,伪装成权威原始服务器。个人可以使用DNS安全扩展来增强安全性。这套扩展通过确保DNS数据的真实性来支持加密签名的响应。
DNS简史
在20世纪70年代,所有主机名及其对应的数字地址都包含在一个名为hosts.txt的文件中。到20世纪80年代,这个系统变得过于低效而无法维护。1983年,DNS被创建来分发最初包含每个地址的一个集中式文件。1986年,IETF将DNS列为原始互联网标准之一。
如今,亚马逊网络服务、Cloudflare、谷歌、微软和Rackspace等公司都提供自己的DNS托管服务。