微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题用Linux构建企业网DNS服务器
栏目OA专刊
作者冯彬然
发布2000年第34期
  DNS (Domain Name Services)作为一种域名和IP地址之间相互转换的机制,几乎可以说是Internet 上运用最频繁的东西之一。而对于企业网,DNS同样非常重要。但是,由于企业网很多都是封闭的局域网,所以又不同于开放的Internet网,例如,某些企业网的DNS服务器可能没有外部名字服务器或更高一级的DNS服务器。
  本文将主要从实际调试的角度出发,通过对DNS相关的几个重要配置文件的解释和编写,逐步完成企业网的DNS服务器的构建。
  注:以下调试环境为Red Hat Linux 6.0
  相应主机、域名及地址如下:
  DNS服务器:   ns.linux.net    10.0.0.1
  WWW服务器:   www.linux.net     10.0.0.1
  Mail服务器:  email.linux.net   10.0.0.3
  FTP服务器:   ftp.linux.net     10.0.0.4
  news服务器:  news.linux.net   10.0.0.5
  下面将按照顺序,对DNS相关的几个配置文件逐一说明。
  1.host.conf
  第一个与DNS相关的重要文件就是 /etc/host.conf,该文件的作用是告诉系统使用哪些途径并按什么顺序来解析域名。文件内容如下:
  order hosts,bind
  multi on
  其中,order用于指定顺序,这里系统将首先使用 /etc/hosts 文件来解析,如果失败,将使用bind(即DNS名字服务器)完成解析。multi on 用于确定一台主机是否在 /etc/hosts 里指定了多个IP地址,这里不必理会。值得注意的是,对于企业网上重要的几个主机,应该把他们放到 /etc/hosts 文件中。
  2.named.boot
  Linux的DNS名字服务器是由named守护进程提供的,/etc/named.boot文件则是named启动时读取的第一个文件,也是 named 的基本配置文件。该文件包含了指向各种配置文件和其它名字服务器的指针。内容如下:
  directory                  /var/named
  ;cache.named.ca
  primary   0.0.127.in-addr.arpa   named.local
  primary   linx.net   linux.net
  其中的directory参数用于指定DNS区文件所在的目录,通常都是/var/named。cache参数为DNS建立高速缓存,它包含了根名字服务器的信息。但对于封闭的企业网,不需要这些根名字服务器,所以这里一定要将cache注释掉,否则会造成在解析域名时发生长时间等待。如果需要和Internet连接,则不要加注释,而且可以在连接建立以后用,用“dig > named.cache” 命令完成。primary以一个域名和一个文件名为参数,它用来指明named对指定的域具有控制权,并使named从指定的文件来装载该区的信息。
  3.resolv.conf
  这个文件只定义了本地机器的域名和域名服务器的IP地址。
  domain linux.net
  nameserver 127.0.0.1
  domain 说明了这个主机的本地域名,而nameserver则指定了域名服务器的IP地址。
  4.linux.net
  根据 /etc/named.boot 的定义,我们要自己建立linux.net文件,该文件完成正向域名转换。这是域名服务器的一个重要文件,内容如下:
  IN  SOA  ns.linux.net.   hostmaster.linux.net. (
  2000012001 ; serial
  28800 ; refresh
  7200 ; retry
  3000000 ; expire
  86400 ; default_ttl
  )
  IN  NS  ns.linux.net.
  IN  MX  100  mail.linux.net.
  localhost     IN  A   127.0.0.1
  mail    IN  A   10.0.0.3
  www     CNAME   ns
  news    IN  A   10.0.0.5
  ftp     IN  A   10.0.0.4
  ff    IN  A   10.0.0.60
  ns    IN  A   10.0.0.1
  其中第一行是 SOA 记录(Start Of Authority),定义了域名数据的基本信息,依次是 DNS服务器名、DNS 管理员邮件地址(注email地址中的“@”用“.”代替),括号内的第一个数字是文件版本号,每次本文件内容修改后,必须更改此号。其余数字与DNS服务器的数据交换有关,这里我们不需要改动。紧接着的 NS 记录(Name Server)和 MX 记录(Mail eXchange),分别定义了本域的域名服务器和邮件交换所指向的邮件服务器名字。接下来是各种域名/地址转换数据,其中 A (Address)命令是指定域名和 IP 地址的关系,IN表示数据类别,一般是固定的,不用改。CNAME(Canonical Name)用于设定一些主机的别名。
  5.named.local
  named.local是一个用于反向解析的文件,即从IP地址到域名的转换。它与上面的linux.net文件很相似,只是多了一个新命令:PTR,它用于指出IP地址所对应的域名。
  IN  SOA  localhost. root.localhost. (
  1997022700 ; serial
  28800 ; refresh
  14400 ; retry
  3600000 ; expire
  86400 ; default_ttl
  )
  IN  NS  ns.linux.net.
  IN  PTR  localhost.
  最后,还有两点要注意:
  1.有些域名后加了一个点,如:“ mail.linux.net.”,而有些则没有加,对于加点的域名,系统不再对其处理,而没加点的,系统会在最后加上已定义的域名。
  2.注意字母的大小写,因为很多错误多由此产生。