跳转到内容

互联网技术/域名

来自维基教科书,开放的书籍,开放的世界

域名系统,通常简称为DNS,是互联网的核心功能。它是一个分布式数据库,负责处理主机名(域名)与数字互联网地址之间的映射,主机名对人类来说更方便。例如,www.wikipedia.org是一个域名,而130.94.122.199是其对应的数字互联网地址。域名系统就像一本自动电话簿,这样你就可以“拨打”www.wikipedia.org,而不是130.94.122.199。因此,它将人类友好的名称(如“www.wikipedia.org”)转换为计算机友好的(IP)地址(如130.94.122.199)。它也可以处理反向映射,这意味着我们可以查询130.94.122.199的名称,返回larousse.wikipedia.org

DNS 最初是由Paul Mockapetris于 1983 年发明的;原始规范在RFC 882 中进行了描述。1987 年,发布了RFC 1034RFC 1035,它们更新了 DNS 规范,并使RFC 882RFC 883过时。此后,发布了许多 RFC,这些 RFC 针对核心协议提出了各种扩展。

DNS 通过允许将名称空间的一部分(称为区域)的名称服务“委派”给名称服务器,以实现分层名称空间。DNS 还提供其他信息,例如系统的别名、联系信息以及哪些主机充当系统或域组的邮件集线器。

当前对域名长度的限制为 63 个字符,不包括www..com或其他扩展。域名也限于ASCII字符的子集,阻止许多语言正确地表示其名称和单词。基于PunycodeIDNA系统,它将Unicode字符串映射到有效的 DNS 字符集,已获得ICANN的批准,并被一些注册机构采用作为一种解决方法。

DNS 系统由各种 DNS 软件实现,包括

  • BIND(Berkeley Internet Name Domain),这是最常用的名称守护进程。
  • DJBDNS(Dan J Bernstein 的 DNS 实现)
  • MaraDNS
  • NSD(名称服务器守护进程)
  • PowerDNS

任何IP计算机网络都可以使用 DNS 来实现自己的私有名称系统。但是,术语“域名”最常用于指公共互联网 DNS 系统中实现的域名。这是基于全球十三台“根服务器”,其中除三台之外,其余都在美利坚合众国。从这十三台根服务器开始,互联网 DNS 名称空间的其余部分被委派给其他 DNS 服务器,这些服务器为 DNS 名称空间的特定部分提供服务。

可以查询WHOIS数据库以查找域名的“所有者”:对于大多数顶级域名 (TLD) 而言,基本的 WHOIS 由 ICANN 持有,而详细的 WHOIS 由控制该域的域名注册机构维护。对于 240 多个国家代码顶级域名 (ccTLD),情况通常是注册机构作为其众多功能的一部分,持有该扩展的所有权威 WHOIS。

目前控制主要 DNS 系统的方式经常受到批评。人们指出的最常见问题是,它被VeriSign Inc. 等垄断或准垄断企业滥用,以及顶级域名分配方面存在问题。

也有人声称,许多 DNS 服务器软件的实现无法与动态分配的 IP 地址很好地协作,尽管这是特定实现的错误,而不是协议本身的错误。

DNS 使用TCPUDP端口 53。大多数 DNS 查询(例如名称解析请求)使用 UDP 连接,因为传输的数据量很小,而会话建立开销会引入不必要的流量和负载到名称服务器。名称服务器对等体之间的 DNS 区域文件传输使用 TCP 连接,因为传输的数据量可能大得多。

DNS 域名定义(有时称为“区域文件”)由单个 DNS 记录组成。在常见的使用中,有几种记录类型

  • SOA 或起始授权记录包含域名定义本身的参数。
  • A 记录将名称解析为 IP 地址
  • PTR 记录将 IP 地址解析为名称
  • NS 记录定义域的权威名称服务器。
  • CNAME 或规范名称记录允许将一个名称别名为另一个名称。
  • MX 或邮件交换记录定义与域或 A 记录关联的邮件服务器。
  • HINFO 或硬件信息记录可用于保存有关特定设备的描述性文本。

几乎所有现代操作系统和网络应用程序都包含解析库或例程,用于查询 DNS 服务。但是,操作系统通常提供用于查询 DNS 服务器的命令行界面。Windows NT 系列操作系统提供“nslookup”命令。基于 Unix 的操作系统也可能提供“nslookup”或“dig”工具。

nslookup 可以以交互式或非交互式方式使用。以下是一个非交互式使用示例。在此示例中,我们从客户端的默认名称服务器收集 www.wikipedia.org 的 A 记录

nslookup www.wikipedia.org

Nslookup 以交互式方式使用时功能更强大。以下是一个示例。在此示例中,我们查找域 wikipedia.org 的邮件服务器

nslookup

> set q=MX

> wikipedia.org

非权威答案

wikipedia.org MX 优先级 = 50,邮件交换器 = mormo.org

wikipedia.org MX 优先级 = 10,邮件交换器 = mail.wikimedia.org

>

另请参见:网络蹲点动态 DNSICANNDNSSEC

[编辑 | 编辑源代码]
华夏公益教科书