Next Previous Contents

2. DNS 系统基础

Internet上的成千上万台主机都是通过IP地址来区分的。当大家对IP地址了解后,发现去记这些数字很难记。能否有些方便我们记忆的形式来互相访问?在这种需求之下,我们有了DNS(域名) 。

2.1 DNS 定义

DNS 是域名系统 (Domain Name System) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。

例如,多数用户喜欢使用友好的名称(如 debian.linuxsir.org)来查找计算机,如网络上的邮件服务器或 Web 服务器。友好名称更容易了解和记住。但是,计算机使用数字地址在网络上进行通讯。为更容易地使用网络资源,DNS 等命名系统提供了一种方法,将计算机或服务的用户友好名称映射为数字地址。

下图显示了 DNS 的基本用途,即根据计算机名称查找其 IP 地址。

DNS示意图

本例中,客户端计算机查询 DNS 服务器,要求获得某台计算机(Debian.linuxsir.org)的 IP 地址。由于 DNS 服务器能够根据其本地数据库应答此查询,因此,它将以包含所请求信息的应答来回复客户端,即一条主机 (A) 资源记录,其中含有 Debian.linuxsir.org 的 IP 地址信息(211.93.98.20)。

此例显示了单个客户端与 DNS 服务器之间的简单 DNS 查询。实际上,DNS 查询要复杂得多,包含此处未显示的许多其他步骤。

2.2 DNS的结构

DNS是一个分层级的分散式名称对应系统有点像电脑的目录树结构在最顶端的是一个“.”(root)然後其下分为好几个基本类别名称如com、org、edu等再下面是组织名称如cisco、intel等继而是主机名称如www、mail、ftp等。因为当初internet是从美国发起的所以当时并没有国域名称但随着后来internet的蓬勃发展DNS也加进了诸如cn、jp、au等国域名称。所以一个完整的dns名称就好像是这样的www.xyz.com.cn而整个名称对应的就是一个IP地址了。

在开始的时候root下面只有六个组织类别

        类别名称        代表意思  
        edu             教育学术单位  
        org             组织机构  
        net             网路通讯单位  
        com             公司企业  
        gov             政府机关  
        mil             军事单位  

不过自从组织类别名称开放以後各种各样五花八门的名称也相继现出来了但无论如何取名的规则最好量适合网站性质。除了原来的类别资料由美国的NIC(Network Information Center)管理之外其它在国域以下的类别分别由该国的NIC管理。

2.3 DNS 查询的工作原理

当 DNS 客户端需要查询程序中使用的名称时,它会查询 DNS 服务器来解析该名称。客户端发送的每条查询消息都包括三条信息,指定服务器回答的问题:

        * 指定的 DNS 域名,规定为完全合格的域名 (FQDN)

        * 指定的查询类型,可根据类型指定资源记录,或者指定查询操作的专用类型。

        * DNS 域名的指定类别。 

例如,指定的名称可为计算机的 FQDN,如 Debian.linuxsir.org ,并且指定的查询类型用于通过该名称搜索地址 (A) 资源记录。将 DNS 查询看作客户端向服务器询问由两部分组成的问题,如“您是否拥有名为‘Debian.linuxsir.org’的计算机的 A 资源记录?”当客户端收到来自服务器的应答时,它将读取并解释应答的 A 资源记录,获取根据名称询问的计算机的 IP 地址。

DNS 查询以各种不同的方式进行解析。有时,客户端也可使用从先前的查询获得的缓存信息在本地应答查询。DNS 服务器可使用其自身的资源记录信息缓存来应答查询。DNS 服务器也可代表请求客户端查询或联系其他 DNS 服务器,以便完全解析该名称,并随后将应答返回至客户端。这个过程称为递归。

另外,客户端自己也可尝试联系其他的 DNS 服务器来解析名称。当客户端执行此操作时,它会根据来自服务器的参考答案,使用其他的独立查询。这个过程称为迭代。

总之,DNS 查询进程分两部分进行:

        * 名称查询从客户端计算机开始,并传输至解析程序即 DNS 客户端服务程序进行解析。

        * 不能在本地解析查询时,可根据需要查询 DNS 服务器来解析名称。

2.4 Internet上域名命名的一般规则

由于Internet上的各级域名是分别由不同机构管理的,所以,各个机构管理域名的方式和域名命名的规则也有所不同。但域名的命名也有一些共同的规则,主要有以下几点:

    域名中只能包含以下字符:
        1. 26个英文字母
        2. “0,1,2,3,4,5,6,7,8,9”十个数字
        3. “-”(英文中的连词号)。

   域名中字符的组合规则: 
        1. 在域名中,不区分英文字母的大小写 
        2. 对于一个域名的长度是有一定限制的  

2.5 常见标准资源记录

SOA(Start Of Authority)

起始授权记录表示一个授权区的开始

A (Address)

将主机名转换为地址。这个字段保存以点分隔的十进制形式的IP地址。任何给定的主机都只能有一个A记录,因为这个记录被认为是授权信息。这个主机的任何附加地址名或地址映射必须用CNAME类型给出

CNAME (Canonical NAME)

给定一个主机的别名,主机的别名记录是在这个主机的A记录中指定的

MX (Mail eXchanger)

建立邮件交换器记录。MX记录告诉邮件传送进程把邮件送到另一个系统,这个系统知道如何将它递送到它的最终目的地

NS (Name Server)

标识一个域的域名服务器。NS资源记录的数据字段包括这个域名服务器的DNS名。我们还需要指定这个名字名字服务器的地址与主机名相匹配的A记录

PTR (domain name PoinTeR)

将地址变换成主机名。主机名必须是规范主机名


Next Previous Contents