Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1175218
  • 博文数量: 245
  • 博客积分: 10185
  • 博客等级: 上将
  • 技术积分: 2744
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-30 17:07
文章分类

全部博文(245)

文章存档

2015年(1)

2014年(1)

2013年(1)

2012年(1)

2011年(37)

2010年(20)

2009年(14)

2008年(38)

2007年(88)

2006年(44)

分类:

2007-06-20 23:36:16

 

    本人接触DNS4年多的时间了,也许以后就不弄DNS了,赶紧写个总结吧,因为我们维护的DNS还是相当庞大的,遇到过一些问题,一并写下来,希望对大家有些帮助。

安装及升级都很简单,网上的文章很多,我就随便copy一个了^_^, 重点是在第三部分(维护经验)。

安装

1.BIND的安装

1.1.root用户安装
#su -

1.2.将准备安装的BIND(例如:bind-9.2.3cn2.tar.gzftp到服务器上

1.3.BIND的安装路径
采用默认安装路径:/usr/local/

1.4.BIND的安装过程
$gunzip -xvf bind-9.2.3cn2.tar.gz
$tar -xvf bind-9.2.3cn2.tar
$cd bind-9.2.3cn2
$./configure
$make
$su -
#PATH=$PATH:/usr/ccs/bin;export PATH
#make install

1.5.启动DNS服务
#/usr/local/sbin/named

 

2).BIND的升级

2.1.root用户安装
#su -

2.2.将准备安装的BIND(例如:bind-9.2.1.tarftp到服务器上
ftp.cnnic.net.cn下载BIND软件

2.3. 解包
#gzcat bind-9.2.3cn2.tar.gz |tar xvf -

2.4.编译
$cd bind-9.2.3cn2
$./configure
$make

2.5. 安装
$ su -
设置路径
# PATH=$PATH:/usr/ccs/bin; export PATH
备份/usr/local/sbin/named/usr/local/sbin/named-xfer
# mv /usr/local/sbin/named /usr/local/sbin/named_YYYYMMDD
# mv /usr/local/sbin/named-xfer /usr/local/sbin/named-xfer_YYYYMMDD
# make install

2.6.重启named
# kill -9 `cat /usr/local/etc/named.pid`
# /usr/local/sbin/named

2.7.测试
$ dig @hostname com.cn soa

一点经验

1)         named的加载及更新

修改named.confzonefile文件时

修改步骤:

1)一般都需要加大序列号

2)修改完毕后,记得用/usr/local/sbin/bind自带的checkconfcheckzone检查语法是否正确!

/usr/local/sbin/checkconf  ./name.conf

/usr/local/sbin/checkzone sina.com.cn ./sina.com.cn.zone

3)就必须重起named进程来重新加载配置信息,使刚才的修改生效。

在这里我要特别强调一下加载的意义。

系统启动DNS named进程时,系统都会把配置信息(主要就是named.confzonefile文件)做一个检查,正确的话就把配置信息写入DNS服务器的内存里,供用户进行查询。所以说用户查询得到的信息是放在内存里的信息,而不一定是named.conf里定义的zonefile信息。

可能有点复杂了,举个例子吧。

一台DNSnamed.conf里写了abc.com这个域的zonefile文件是/etc/zone/abc.zone里。

某日9点,需要修改一下abc.zone,此时abc.zonesoa2006070801,

  dig @localhsot abc.com soa号也是2006070801. 修改完后soa号变为2006110801,操作员没有检查重起了一下named就不管它了,以为万事大吉了!

      后来用户询问为啥修改的信息没成功,操作员只去检查zonefile,改修改的都改了,认为没有问题。其实他错得很厉害,修改的信息有问题(即文件abc.zone),系统没有加载到内存中,所以该用户的修改没有成功,虽然看起来abc.zonesoa号已修改。

     这时候排错的步骤:

1)      dig @localhsot abc.com soa 发现soa号还是以前的,说明修改有问题。

2)      检查文件

      /usr/local/sbin/checkconf  ./name.conf

/usr/local/sbin/checkzone abc.com ./abc.zone
   3
checkzone会提示哪一行有问题,改正过来,再次检查,没问题后重起named

4) 过几分钟(named的加载需要一点时间,取决于zonefile的大小),用dig命令检查加载是否成功。

2) named启动的排错

检查named启动的错误,可用

/usr/local/sbin/named  –d 5  系统会在当前目录生成named.run文件,

grep err named.run找出报错信息,加以处理。记得找到后杀掉named,删掉named.run, 正常启动named(/usr/local/sbin/named),因为named.run占用空间比较大。

3)named.conf里的一些比较重要的参数

also_notify: 一般情况notify是发给zonefile中包含在NS记录中的服务器。没有在NS记录的服务器要发notify就必须配置also_notify

genary log       会记载加载信息

Xfer_out.log     作为主DNS下发dns记录的日志。

Xfer_in.log      记载从主更新的zonefile信息, 传输是否成功都会记载, 若不成功,可删掉辅的zonefile再重起named一次.

 

4)排错小经验

1)在本机dig无结果

named是否在,port是否是默认端口(named.conf里的listen)

2) 主辅更新不成功的原因:

  辅不在主定义的allow_transfer里,网络不通,其他原因要察看辅DNSXfer_in.log

阅读(1664) | 评论(0) | 转发(0) |
0

上一篇:Linux下的NFS配置

下一篇:solaris下NFS配置

给主人留下些什么吧!~~