作者:JC Pollman 和 Bill Mote译者:小牟
声明: 此文章的内容取自其他的出版物、HOWTO、man 提示、新闻组、和在键盘上 长时间的输入,但这并不意味此篇指南中就包括了所有的相关内容,更准确的说是给初学者关于交互介质 (intermedia)一块敲门砖. 所有的例子取自我们的家用小型网络,确信是工作正常的,
此指南的使用:
方括号中的内容象[ENTER]这样的是指按下键盘的该键或者是点击鼠标。 圆括号中的内容象(your name here)这样的是指需要填入实际的数据 斜体的字符是指要在提示符下要输入的内容 先决条件: 在此之先假定你已安装了bind v8.2,并且你选定了一个合法的域名,使用IP伪装程序 将你机器的IP地址给隐藏了。如果你用的是 bind V4.x将不能正常工作,你有两个选择,一是升级(4.x有安全方面的问题)另外的就 是超出本文所探究的范围了。需要注意的是多数的Linux发布中包含三个bind 的包, 其中“caching-only“的版本是不需要的。 什么是 DNS? DNS是Domain Name System(域名解析)的缩写,而实际上是一种协议。所要用的 Bind(Berkeley Internet Name Domain)程序是同时运行在服务器端和客户端的, DNS能将我们人所能够理解的字母-数字形式的名字转换成计算机所能理解的IP地址,反之亦然; 换而言之,就是能将www.netscape.com这样的形式转换成207.200.75.200这样的IP地址.
为什么要设立自己的 DNS 服务器? 其实仅仅依赖于ISP的服务器也是可以的,设立自己的DNS服务器可以加速寻址,方便管理, 在目前现有的网络环境中添加新的计算机也会变的更加容易,sendmail会工作的更好,另 外空余时间也有个好的项目做做。
当前是谁提供的DNS服务? 一般而言就是你当地的ISP服务商。下面的测试能够验证我们的假设是否正确,另外这也是 安装完成之后测试DNS的基本步骤。接入你的ISP然后在终端窗口里输入以下的命令:
nslookup[Enter] Default Server: {这里显示出来的就是ISP的DNS名} Address: {显示出来的就是ISP服务器的IP地址}
现在输入以下内容看DNS是否工作: >www.tux.org
通常是这样回应: Name: gwyn.tux.org Address: 207.96.122.8 Aliases: http://www.tux.org/ >exit [Enter]
注意 - 一定要隐藏IP地址, 除非你已经申请注册了网址,拥有一个真正的IP地址,否则没有隐藏的前提下要自己设立DNS就想也不用想了。 反之系统会真的把你弄的稀里糊涂更甚至可能会收到发往真正拥有那个IP地址的一些乱七八糟 的email. 而隐藏了IP地址后,你就可以随心所欲的给你的小网设立个IP地址, 同时隐藏的还有通过Internet连接的请求
安装DNS: 必须安装bind程序才能使DNS开始工作,我是如下设置的,域名设为 kulai.org,采用隐藏措施后,使得kulai.org在任何地方都列不出, 同时也没有在任何地方注册过。当选择了你的域名后,为了避免将事情搞糟,要确信没有被其他人注册, 可以使用whois程序检查所选的域名是否已经被合法则注册,连接好以后可以象下面这样进行检查:
whois kulai.org [Enter] 得到大量的回应后,是以类似下面的提示这样结束的: 在此篇文章中我的相关的设置是这样的
master.kulai.org 192.168.124.10 仅安装linux , 做为服务器 jc.kulai.org 192.168.124.1 同时安装了linux 和 win98 fserver.kulai.org 192.168.124.11 仅安装了freebsd phillip.kulai.org 192.168.124.20 仅有win98
设置DNS: 首先要使用你习惯使用的文本编辑器创建5个普通的文本文件,也可从例程中拷贝过来,只须 将域名和IP地址改过来,要仔细的修改这些文件,不过一定要符合他们特殊的语法。
/etc/named.conf /var/named/db.cache /var/named/db.kulai.org (我的域名设为是kulai.org) /var/named/db.124.168.192 (地址设置为192.168.124.0) /var/named/db.127.0.0 警告WARNING: 设置完成DNS后,在将/etc/resolv.conf 改名之前决不要重新启动, 改名后计算机重起来后,再改回来,如果错误的设置DNS后将导致不能启动, 然后只能rescue启动了,而改名可以避免这样的错误。 同时检查/etc/nsswitch.cnf的设置, “hosts“ 一行中应该如下书写:“hosts: files dns“. 这样系统将首先通过/etc/hosts进行域名解析,而不致可能报告无效的DNS. 如果设有NIS,那么这行应该如下写:“hosts: files nis dns“.
启动DNS:建成上述5个文件后,编辑/etc/resolv.conf文件, 在其中仅列你自己的主机。
search kulai.org nameserver 192.168.124.10 请注意Note: /etc/resolv.conf is manditory for bind 8.* then type: tail -f /var/log/messages[Enter] named 守护进程启动后会提示错误的信息,打开另外的窗口或者是在其他的控制台上输入: /usr/sbin/ndc start [Enter] (对于RedHat发布则是: /etc/rc.d/init.d/named start ) 在/var/log/messages 文件中包含有关named 的条目,以下面的内容作为结束: Jul 10 15:54:26 master named: named startup succeeded Jul 10 15:54:26 master named[3523]: Ready to answer queries. 连入internet后,用上面 当前是谁提供的DNS服务一节中的方法来测试DNS. 报告出的主机名应该是你自己的DNS主机, 输入你经常浏览的地址看能否输出ip地址。 如果不能正常工作: 1. 首先检查named进程是否运行: ps ax|grep named [Enter]
2. 在其他的机器上通过IP地址和机器名称ping一下: ping 192.168.124.10 [Enter] ping master.kulai.org [Enter]
3. telnet 连接到服务器,如果接入的时间较长就意味着可能设置有问题。
如果一切正常,只需要将你小网上的计算机连到域名服务器就可以了。
Final thoughts结束语:在此只是给出了设定一个简单的dns的方案,而通常成功的经历更能激发学习的兴趣,你 可以在以下的网址中学到更多的东西:
The DNS HOWTO DNS and Bind by O‘Reilly DNS - ZDNet Webopedia Definition and Links Troubeshooters.com: DNS -- 包含了一些与老版本bind有关的内容