LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1868|回复: 2

DNS学习实验感想

[复制链接]
发表于 2005-7-29 10:38:15 | 显示全部楼层 |阅读模式
最近在学习BIND和DNS。由于以前一直找BIND的资料虽然很多但是看了总感觉似懂非懂,这次详细学习中有了比较深入的了解,也做了点实验

,有空就和大家一起讨论讨论学习感想吧。
  我是在虚拟机(vm5)上安装FC3的,然后任何服务都去掉了,DNS是在ISC下的9.3的src包。安装没什么多讲的,我就是默认./configure 然

后make 一点没问题就make install。我安装了所有的开发包(kde和gnome的啥都没装)。
  默认的bind安装在/usr/local下,所以我全配置完后使用命令#named -c /etc/named.conf就行了。如果你指定了特别的bind安装目录请自行

在前面加上named所在的目录。
  基本配置:由于安装的是src包所以zone文件和配置文件都没的需要重新配置。我的named.conf在/etc下,zone文件在/var/named下。目前为

止实验的第一阶段,我就配置了test.com和0.168.192.in-addr.arpa两个域。下面列出几个文件的配置,然后和大家讨论下本人对各行的理解。
[PHP]
  /etc/named.conf
options {
    directory "/var/named";
};

zone "test.com" in {
    type master;
    file "db.test.com";
};


zone "0.168.192.in-addr-arpa" in {
    type master;
    file "db.192.168.0";
};
[/PHP]


   上面文件很简单,正向和反向,并都是主名字服务器。我没加“.”因为暂时不需要,根名字服务器的列表我也没找到,也不高兴找了。有

些网上资料在named.conf里加上rndc的key参数,我找过几个都没详细说这个参数的用途。早先我实验的时候看到他们写了反正就写吧,我也照

抄。现在我知道了(也许比较笨,才知道。。。)rndc的key是bind9后开始一个command

line控制名字服务器的服务用到的key。默认端口是953,在bind8的时候不需要key,它的command line是ndc,在9开始已经改了,为了对文件里的记录有个时间上的控制所以设置了这个参数。我实验的时

候就没有这个key,但是bind的服务能起来,但是command

line无法启动。资料上显示如果key加上了,但是key没实际内容,这个功能会给disable。这有待最近几天继续做实验证明。
本机是192.168.0.2,hostname是mytest.test.com
还有个192.168.0.1,是网关
[PHP]
/var/named/db.test.com

$TTL 3h
test.com. IN SOA mytest.test.com. root.mytest.test.com. (
                  1;
                  3h;
                  1h;
                  1w;
                  1h)
test.com. IN NS mytest.test.com.

mytest.test.com. IN A 192.168.0.2
gateway.test.com.    IN A 192.168.0.1
ftp.test.com. IN CNAME gateway.test.com.
web.test.com. IN A 192.168.0.2
[/PHP]

   现在我们讨论下zone文件,在最上面我加了个TTL参数,这个参数的用处是这个意思,资料上说在bind8.2前soa的最后项是表示默认的ttl值

,但是在8.2出来的时候rfc 2308也出来了改变了最后那项值的意思---negative caching ttl(不好意思,不感把个词语写成中文怕水平不够

大家见笑~)。然后我在这里没用的缩写形式,因为我看了很多地方都用缩写形式,结果搞的我很是迷惑。所以在这个实验里我先用全名来做实

验等全实验好后,再用缩写形式替换。其实效果是一样的。
   soa记录中test.com.必须在这条记录的开始,记住要用“.”结束否则会有很奇怪的结果。。。。我个人的经历:我虽然很牢记在使用时候

用完整的域名形式,但是在这个test.com.后面还是忘记了个“.”。结果我的named老半天不行,后来debug的时候有行错误说test.com.test.c

om不存在之类的意思。。。(回头我会把log 的图片贴给大家看)我马上意识到忘记加“.”了。。。然后的IN是表示internet的意思是一个类

型吧,还有其他的但是好象不常用,我们无视他们吧。。。。soa后面mytest.test.com.表示这个域里的主名字服务器,后面是root.mytest.te

st.com.我记的以前看书的时候老糊涂这玩意干啥的,我到现在一直迷糊的记的是很管理员有关的,那时候linux课的时候也问过老师不过听不

明白,后来老师索性说反正记个基本格式就行了以后类似抄吧。。。。。。。然后至今我还没明白。这次学习中终于明白了,原来这是个mail

地址。请大家把root后的第一个“.”换成@就行了,这是本域的管理员的email地址了。后面括号里的东西我也不详细说了,第一个是序列号,

域传输的时候根据这个序列号来更新的,其他是几个定时器。
   test.com. IN NS mytest.test.com.  说明test.com.里的名字服务器是哪个
   mytest.test.com. IN A 192.168.0.2  这个a记录表示mytest.test.com.的ip地址多少
   ftp.test.com. IN CNAME gateway.test.com.  cname记录我反正理解为别名吧
   
[PHP]
/var/named/db.192.168.0
$TTL 3h
0.168.192.in-addr-arpa. IN SOA mytest.test.com. root.mytest.test.com. (
                  1;
                  3h;
                  1h;
                  1w;
                  1h)
0.168.192.in-addr-arpa. IN NS mytest.test.com.
1.0.168.192.in-addr.arpa. in PTR mytest.test.com.
2.0.168.192.in-addr.arpa. in PTR gateway.test.com.
[/PHP]

  这个反向解析也和上面的基本类似,就是用了PTR记录而已。
  本人水平有限,所以不排除有发生错误的可能,如果那位发现请多多指正。由于事情很多,所以不可能一下全把相关实验做了,在以后还会继续把其他实验结果贴出来供大家参考。
  晚些时候把实验的截图发出来给大家验证。





log中的错误提示,证明了没配置rndc但是dns还是可以启动






实验的验证结果
 楼主| 发表于 2005-7-30 15:56:37 | 显示全部楼层
resolv.conf的实验
这个文件是个很有用的文件,从资料上看到我们可以为一个多地址的主机设置多条A记录。
我在在上面的配置的zone文件里给mytest.test.com.加了条a记录指向不存在的ip地址192.168.100.2
放在原来的记录后面
现在的情况是:
[php]
/var/named/db.test.com

$TTL 3h
test.com. IN SOA mytest.test.com. root.mytest.test.com. (
                  1;
                  3h;
                  1h;
                  1w;
                  1h)
test.com. IN NS mytest.test.com.

mytest.test.com. IN A 192.168.0.2
mytest.test.com. IN A 192.168.100.2
gateway.test.com.    IN A 192.168.0.1
ftp.test.com. IN CNAME gateway.test.com.
web.test.com. IN A 192.168.0.2
[/php]
如果是两个网络的那么最好产生的情况是dns解析的ip地址是本地网络的,也就是说192.168.100.0的网络解析的地址是100.1,而192.168.0.0解析的是0.1。
那么怎么办?我们可以设置下/etc/resolv.conf文件
resolv文件有参数叫sortlist,字面意思就很清楚是排序
格式为sortlist 网络号/ 掩码 网络号/ 掩码 。。。。最多是到10个网络号
然后开始用ping 测试,请看图

结果是丢包,这是正确结果。因为根本就没有这个地址
然后我把sortlist的列表改了下
然后结果也变了




结果,能正确的ping到了目的主机
回复 支持 反对

使用道具 举报

发表于 2005-7-30 16:39:17 | 显示全部楼层

不错,顶

dns有很多学问呀....
sortlist不错.
我又想了想,觉得服务器要是能根据客户机ip sortlist.
那就完美了.

共同学习,共同提高
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表