- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
名字与地址转换
5.1 域名系统
尽管通过IP地址可以唯一地识别主机上的网络接口,从而访问网络中的每个主机。但是,由于IP地址不便于人们记忆,因此人们还是习惯于使用主机名来访问网络。随着IPv6协议的不断广泛应用,数值地址变得更长,手工键入一个地址更容易出错。
在大多数操作系统中,任何应用程序都可以调用一个标准的库函数来查看给定名字的主机的IP地址(UNIX系统中函数名);同样,系统还提供了一个逆函数,即给定主机的IP地址,查看它所对应的主机名。大多数使用主机名作为参数的应用程序也支持把IP地址作为参数。
域名系统DNS(Domain Name System)主要用于主机名与IP地址间的映射。主机名可以是简单名字,例如Jida,也可以是全限定域名FQDN(Fully Qualified Domain Name),例如 HYPERLINK 。严格地说,FQDN也称为绝对名字(absolute name),因此必须以一个点号结尾,但用户经常省略最后的点号。
在Internet上使用了基于层次型的名字管理机制。在Internet的层次型名字管理中,先由中央管理机构(例如Internet的NIC)将最高一级的名字空间进行划分,并将相应部分的管理权交给相应的机构,各管理机构可对名字空间进行进一步的划分。
一般来说,最高一级的名字空间的划分是基于“网络节点名”(site name)的。网络节点的概念是对Internet整个网络的一部分(通常由若干个网络构成)的一种抽象,这些网络的组织关系或地理位置联系非常紧密,可以将它们看成一个节点。
各个网络节点中又可划分成不同的管理组。组名下面是主机的本地名。典型的Internet层次型主机名由三部分构成:
本地名称.管理组名.网络节点名
例如,其中cn属于第一级的名字空间,代表国家;第二级域为,代表教育机构,最低一级代表吉林大学。
5.1.1 资源记录
在TCP/IP环境中,域名系统(DNS)是一个分布式数据库系统,通过它来提供IP地址和主机名之间的映射。DNS中的条目称为资源记录RR(resource record),仅有少数几类RR会影响名字与地址转换。
A A记录将主机名映射为32位的IPv4地址。例如,这里有域中关于主机solaris的四个DNS记录,其中第一个就是一个A记录:
Solaris IN A 3
IN AAAA 5f1b:df00:ce3e:e200:0020:0800:2078:e3e3
IN MX 5 .
IN MX 10 .
AAAA AAAA记录将主机名映射为128位的IPv6地址。
PTR PTR记录(称为“指针记录”)将IP地址映射为主机名。对于IPv4地址,32位地址的四个字节顺序反转,每个字节都转换成它的十进制ASCII值(0到255),然后附上,结果串用于PTR查询。
对于IPv6地址,128位地址中的32个4位组顺序反转,每组被转换成相应的十六进制ASCII值(0到9,a到f),并附上.
例如,主机solaris的两个PTR记录为:06.和3.。
MX MX记录指定一个主机作为某主机的“邮件交换器”。在上面主机的solaris例子中,提供了两个MX记录,第一个记录的优先级是5,第二个记录的优先级是10,当有多个MX记录存在时,需按优先级值的顺序使用,从最小值开始。
CNAME CNAME代表“canonical name(规范名字)”,其常见的用法是为常用服务如WWW和FTP指派一个CNAME记录。如果用户使用这些服务名而不是实际上的主机名,则它在服务挪到其它主机上时是透明的。例如,主机Jida的CNAME如下:
www IN CNAME J
ftp IN CNAME J
mailhost IN CNAME J
5.1.2 解析器和名字服务器
组织运行一个或多个名字服务器(name server),它们通常就是所说的BIND(Berkeley Internet Name Domain)程序。任何应用程序,通过调用称为解析器(resolver)的库中的函数来与DNS服务器联系。应用程序用来将主机名转换为IP地址或进行相反过程的一组函数称为解析器。最常见的解析器函数是gethostbyname和gethostbyaddr,前者将主机名映射为IP地址,后者执行相反的映射。
图5-1说明了应用进程、解析器和名字服务器的典型关系。解析器代码包含在系统库中,在构造应用程序时被链接到应用程序中。应用程序代码使用正常的函数调用来调用解析器代码,最典型的就是调用函数gethostbyname和gethostbyaddr。
应用进程
应用进程
应用程序
文档评论(0)