第五章:架设 dns
前面所介绍的伺服器服务大多是用在内部网路环境中的,不过,以现代的情况和未来的趋势来看,每个网路或多或少都需要 inte.net 连线以及向 inte.net 提供服务。从这一章开始,我们将为大家陆续介绍一些在 inte.net 环境中常用到的伺服器之架设技 巧。就算您目前还没真的需要架设 inte.net 相关的伺服器,但许多企业的 intr.net 环境中,也需要相类似的伺服器来为企业内 部网路提供服务。
前提条件
在众多 inte.net 伺服器当中,有一种服务是所有服务的基础,就是 dns 服务。dns 可以说是一个不容易弄清楚的概念,尤其 是其运作原理。如果您看过“学习网路”中的“ dns 协定”(我强烈建议您看看这篇文章!),相信应该有一定概念了,否 则,您在如下的阅读中可能难以理解,也浪费您的时间。
无论如何,在您进一步阅读下面文章之前,请您先确定能正确回答如下的问题:
什麽是 dns 的授权模式?是怎样进行的?
请解释 zone 和 domain 的差别。
什麽是 dns 正解和反解?
什麽是 dns 的查询模式?查询过程是怎样进行的?
请解释 dns cache 的作用和它对查询流程的影响。
如果您未能从上面的联结网页找到答案,那我再推荐您多看一篇文章:
http://turtle.ee.ncku.edu.tw/~tung/dns/dnsintro.html
忠告:请不必急著知道怎样设定 dns,花点时间将 dns 的原理弄明白非常重要,尤其是授权模式和查询模式的正确理解。在 日後的 dns 架设和管理中,是否能正确理解这些 dns 原理,往往是成败的关键所在!
如果您在 nt 或 win2k 下面设定过 dns 伺服器,相信您会觉得在 linux 下面难多了。除了概念上要比较清楚外,另外对档案 的关联也要有清晰的追踪能力,这对於进行 debug 尤为重要。因为在 windows 系统上面,您的所有设定都透过图形界面进 行,方便是方便,但也因为这个图形界面,限制了您的设定灵活性,同时也阻隔了您对 dns 系统的深入了解。当您完成了这 章的学习,而且成功在 linux 架设出复杂的 dns 环境之後,欢迎您再回到 win2k 上尝试做同样的事情。或许,您就会认同我 这里的观点了...
好了,闲话休提、言归正传,听百遍不如做一遍,那就让我们开始动手吧! ^_^
探索 named
在 linux 上面,提供 dns 服务的套件是叫 bind, 但执行服务程式名称则是 named 。请您确定系统上装有 bind、bind-utils、 以及 caching-nameserver 这几个套件,同时用 ntsysv 确定 named 被选择为开机服务。
首先,让我们设定一个最重要的 dns 设定档,它就是 /etc/named.conf 。我将我自己的设定档案列出来,然後逐部份进行解释:
// generated by named-bootconf.pl
options {
directory "/var/named";
/*
* if there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器