怎样用DNS解析域名
怎样用DNS解析域名.将主机名解析成为IP地址 IP网络中的系统进行通讯必须依靠internet地址。用户和应用程序可以通过主机名来查找一个主机,这就要求在数据包发送之前,IP协议层必须将这个主机名翻
怎样用DNS解析域名
.将主机名解析成为IP地址
IP网络中的系统进行通讯必须依靠internet地址。用户和应用程序可以通过主机名来查找一个主机,这就要求在数据包发送之前,IP协议层必须将这个主机名翻译成为一个IP地址(例如16.30.0.99)。这个主机名到IP地址之间的转换是在这个网络连接建立之前通过一个gethostbyname()的库函数来实现的。这个库函数也被称为解析器,因为它的作用是将主机名解析为一个IP地址。
同样,反向的解析有时也是必须的;因为有时候,必须将IP地址解析成为一个主机名,例如主机想要验证哪些主机连接到本机就必须通过将连接进来的IP地址映射成为一个名字,通常这个过程被用作鉴权:例如,文件/etc/hosts.equiv,$HOME/.rhosts,或者/etc/exports的使用就是具体例子。将IP地址解析成为主机名是通过调用一个名为gethostbyaddr()库函数而实现的。
维护一个小规模网络中的各个主机中包含有网络中的系统的名字和IP地址的/etc/hosts文件是一件很容易的的事情,而当网络变得很大同时地理上分布更广的时候,维护工作会变得十分困难。这时候就需要用其它的方法来实现域名和IP地址之间的互相解析。
与每一台机器都存储和维护所有主机名和IP地址信息的方式不同,一种称为域名服务器的服务,域名服务器可以由网络中的一个(或者多个)系统组成,其作用是存储并且提供信息,域名系统提供了另外一种与/etc/hosts文件不同的主机名与IP地址转换的方式,DNS常用在大型的网络中提供主机名解析的服务。
当前最常用的名称服务有Network Information Services(包括NIS和NIS ),和Berkeley internet Name Domain(BIND)服务。
在这一章,我们将学习Berkeley internet Name Domain 服务。
2.DNS概述
Berkeley internet Name Domain(BIND)是一种基于RFC 1034/1035"域名"规范的域名系统(DNS)。BIND是由以下三部分组成:
分层的名称空间: 与单层的的名称空间相对应,/etc/hosts文件的域名解析方式就是一种单层的方式。
名称服务器中保存有域的树型结构的信息,这个服务器程序是在系统中是一个叫做named的进程。而提供这个网络服务的主机被叫做域名服务器。
解析器是一种负责将域名解析成为IP地址的程序,各种网络服务都可以调用这种程序,例如telnet,ftp,rcp,rlogin,和其它的网络服务。解析器能判断首先使用哪个名称服务(/etc/hosts,NIS,或者DNS),然后使用指定的服务来将主机名翻译为IP地址。如果使用的是DNS(BIND),解析器就会从域名服务器提取信息,解析器并不是一个特别的进程,解析器只是名称服务器的一个可编程的界面,这些流程被编译进gethostbyname()和gethostbyaddr()流程中。任何执