在用TCP/IP协议族架设的网络中,每一个节点都有一个唯一的IP地址,用来作为它们唯一的标志。然而,如果让使用者来记住这些毫无记忆规律的IP地址将是不可想象的。人们就需要一种有记忆规律的字符串来作为唯一标记节点的名字。 然而,虽然符号名对于人来说是极为方便的,但是在计算机上实现却不是那么方便的。为了解决这个需求,应运而生了一个域名服务系统DNS,它运行在TCP协议之上,负责将字符名--域名转换成实际相对应的IP地址。这个过程就是域名解析,负责域名解析的机器就叫域名服务器。 1、域名解析的方法 1.1 最早的域名解析方法 最简单的主机名解析方法是,在一个文件中记录所有主机名及与其对应的IP地址,并保证该文件中主机名的唯一性,通过检索文件中的便可以完成主机名的解析。采用这种最简单的解决方法有其历史原因: 在整个70年代,APRANET只是一个小规模的,由类似的数百台主机组成的团体。于是为了解决主机名解析的问题,将连接到ARPANET上每台主机的名字与对应的地址都保存在HOSTS.TXT文件中。这样每增加一台机器,就必须修改HOSTS.TXT文件一次。随着网络的不断发展,网络中的主机数量爆炸性地增加,这种域名解析的方法已经无法适应新的解析需要。 1.2 分布式的域名服务器 这种方法,我们已经在基础篇的第六章中有了详细的叙述,在此就不再重复了。在这种分布式的域名服务器体系中,每一台域名服务器(DNS)负责解析属于自己的这一部分主机的域名。 一般说来,如果你所处在公司或组织所拥有的主机并不多,一般是将域名的解析工作交给自己的ISP的域名服务器来完成。而如果你所在组织拥有的主机比较多,我们就可以组建自己的域名服务器负责解析你所在组织的主机。 2、域名服务器建立实例 2.1 实例环境 假设我们需要建立一台应用于以下情况的一个企业主域名服务器。 1. 拥有一个C类网段地址,为202.101.55.0 2. 企业域名注册为company.com。 3. 域名服务器的IP定为202.101.55.55,主机名为dns.company.com。它同时充当Proxy. 4. 企业网通过路由器与Internet连接。 5. 要解析的服务器有: www.company.com (202.101.55.1) Web服务器 mail.company.com (202.101.55.2) E-Mail服务器 2.2 安装前的准备工作 首先要保证在作为系中统有/etc/resolv.conf和/etc/hosts.conf这两个文件。/etc/resolv.conf文件中内容如下所示: domain compay.com nameserver 202.101.55.55 其中第一行指出对于任何希望连到它上面的主机应该搜寻的域。而第二行指出了在哪个地址可以找到需要的域名服务大。/etc/hosts.conf的内容如下所示: order hosts,bind multi on 这里的设置告诉主机名称先在/etc/hosts文件中搜索,然后再查询域名服务器。 2.3 定义文件/etc/named.boot 要使LINUX系统完成域名服务器的功能,则需要运行一个named的服务进程。这个服务进程可以在安装LINUX时选中。 named启动时需要读取一个初始化文件--/etc/named.boot,这个文件是named的基本配置文件。它并不包含任何DNS数据,针对前面的假定环境,我们要在这个文件中写入: diretory /etc/named primary company.com db.company primary 0.0.127.IN-ADDR.ARPA db.127.0.0 primary 55.101.202.IN-ADDR.ARPA db.202.101.55 cache . db.cache 下面我们逐行讲解这个文件中的内容: 1) 在第一行中我们指定named从/etc/named目录下读取DNS数据文件。这个目录可以自行指定并创建,指定后将所有的DNS数据文件均存放在这个目录下; 2) 第二行指定named作为company.com的主域名服务器,db.company文件中包含了所有*.my.com形式的域名的解析数据。 3) 第三行则指定named作为127.0.0网段(本地loopback)地址的转换主服务器。其中db.127.0.0文件中包含了所有127.0.0.*形式的地址到域名的转换数据。 4) 第四行指定named作为202.101.55网段地址转换主服务器,db.202.101.55文件中包含了所有以202.101.55.*形式的地址到域名的转换数据。 5) 最后一行指定named从db.cache文件中获得Internet的顶层"根"服务器地址。要说明的是,这些数据文件的名称均是自行决定的。 2.4 建立正向域名转换数据文件db.company 根据/etc/named.boot文件中的定义,我们在/etc/named目录下建立文件db.company,并且在其中写入所有在company.com域内的主机节点。根据前面假定的环境,可以写入: @ IN SOA dns.company.com. root.dns.company.com.( 200002011 ;文件版本号 28800 ;刷新时间(秒) 7200 ;重试时间(秒) 3600000 ;终止时间(秒) 86400) ;TTL生存时间(秒) IN NS dns.company.com www IN A 202.101.55.1 email IN A 202.101.55.2 proxy IN CNAME 下面我们就逐句地理解这里的配置。 1. SOA是主服务器设定文件中一定要设定的命令,我们通常将它放在文件的第一行。 1) 最前面的符号"@"代表目前所管辖的域。 2) 接着的"IN"代表地址类别,这里就是固定使用"IN"的。 3) 接下来就是命令SOA。 4) 接下来填入域名服务器,记住由于DNS数据文件的特殊格式规定,在最后一定要加上"·",在这个例子中,我们填入域名服务器:"dns.company.com." 5) 接下来是域名服务器管理员的E-MAIL地址,但要注意的是,E-Mail地址中的分隔符"@"在这里用"·"来代替,在最后也要加上"。",在这里,我们相应写入:"root.dns.company.com." 6) 接下来在括号内填上各种选项: 文件版本号:当你修改这个文件的内容时,也要修改这个版本序列号。以此来区分是否有更新。 责任编辑:米尊 |