DNS的定义

DNS的定义是指:域名系统(Domain Name System)。在Internet 上域名与IP 地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP 地址,它们之间的转换工作称

DNS的定义

是指:域名系统(Domain Name System)。在Internet 上域名与IP 地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP 地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析系统来完成,DNS 就是进行域名解析的系统。

历史

DNS 最早于1983年由保罗·莫卡派乔斯(Paul Mockapetris)发明;原始的技术规范在882号因特网标准草案(RFC 882)中发布。1987年发布的第1034和1035号草案修正了DNS 技术规范,并废除了之前的第882和883号草案。在此之后对因特网标准草案的修改基本上没有涉及到DNS 技术规范部分的改动。 早期的域名必须以英文句号“.”结尾, 当用户访问 www.baidu.com 的HTTP 服务时必须在址栏中输入:http://www.baidu.com.,这样DNS 才能够进行域名解析。如今DNS 服务器已经可以自动补上结尾的句号。

开始时,域名的字符仅限于ASCII 字符的一个子集。2008年,ICANN 通过一项决议,允许使用其它语言作为互联网顶级域名的字符。使用基于Punycode 码的IDNA 系统,可以将Unicode 字符串映射为有效的DNS 字符集。因此,诸如“x.中国”这样的域名可以在地址栏直接输入,而不需要安装插件。但是,由于英语的广泛使用,使用其他语言字符作为域名会产生多种问题,例如难以输入,难以在国际推广等。

域名解析

举一个例子,www.baidu.com 作为一个域名就和IP 地址58.217.200.13相对应。DNS 就像是一个自动的电话号码簿,我们可以直接拨打baidu 的名字来代替电话号码(IP 地址)。DNS 在我们直接调用网站的名字以后就会将像www.baidu.com 一样便于人类使用的名字转化成像58.217.200.13一样便于机器识别的IP 地址。 DNS 查询有两种方式:递归 和 迭代。DNS 客户端设置使用的DNS 服务器一般都是递归服务器,它负责全权处理客户端的DNS 查询请求,直到返回最终结果。而DNS 服务器之间一般采用迭代查询方式。以查询 www.baidu.com 为例: 客户端发送查询报文"query ww.baidu.com"至DNS 服务器,DNS 服务器首先检查自身缓存,如果存在记录则直接返回结果。

如果记录老化或不存在,则

DNS 服务器向根域名服务器发送查询报文"query www.baidu.com" ,根域名服务

,

器返回 .com 域的权威域名服务器地址。

DNS 服务器向 .com 域的权威域名服务器发送查询报文"query www.baidu.com",得到 baidu.com 域的权威域名服务器地址。

DNS 服务器向 .baidu.com 域的权威域名服务器发送查询报文"query www.baidu.com" ,得到主机的A 记录,存入自身缓存并返回给客户端。 记录类型

DNS 系统中,常见的资源记录类型有:

主机记录(A记录) :RFC 1035定义,A 记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP 地址上。

别名记录(CNAME记录): RFC 1035定义,CNAME 记录用于将某个别名指向到某个A 记录上,这样就不需要再为某个新名字另外创建一条新的A 记录。 IPv6主机语录(AAAA记录): RFC 3596定义,与A 记录对应,用于将特定的主机名映射到一个主机的IPv6地址。

服务位置记录(SRV记录): RFC 2782定义,用于定义提供特定服务的服务器的位置,如主机(hostname),端口(port number)等。

NAPTR 记录: RFC 3403定义,它提供了正则表达式方式去映射一个域名。NAPTR 记录非常著名的一个应用是用于ENUM 查询。

标签: