迁移DNS服务器到CentOS 5

其实这已经是第二次迁移了,上一次可能因为太顺利了,没有留下任何日志。同时也一直想着要对新的服务器执行备份,但是一拖再拖。不幸的事情终于发生了,DNS服务器发生故障,启动时无法进入。同样不幸地是以前的DNS自动备份的数据所在服务器也发生故障,从而无法从备份中恢复数据。幸运地是原来的老服务器还没有格式化,所以还可以再执行一次迁移工作。上次迁移之后所执行的更改将会丢失,但是至少能保证大多数服务能够正常运行。明天再想办法看能不能恢复新的DNS服务器中的数据。

由于内部使用的DNS服务器对资源需求不太大,所以用XEN再安装一个虚拟机,采用CentOS 5 i386系统,选择服务器安装,并去掉不必要的服务,如文件服务、DHCP等。

安装完成之后,复制named.conf到/var/named/chroot/etc目录下,复制所有其他文件到/var/named/chroot/var/named目录下。启动named,理论上应该能够正常运行。这种迁移的方法可能不太干净,因为数据仍然是混乱地存在一个目录下,好处是快速恢复,并且易于备份。

本次迁移完成之后,主要遇到如下几个问题:

1) 需要手工删除/var/named/chroot/var/named/目录下的named.pid文件。

2) 部分文件和目录的权限需要修改,将属主改为named。

3) 在/var/log/messages文件中会看到类似如下信息:

lib.tsinghua.edu.cn:93: ##springer.lib.tsinghua.edu.cn: bad owner name (check-names)

其中的数字表示发生错误所在的行号,似乎现在Bind版本不再支持用#作为注释,但是也不影响named正常运行。

4) 需要修改防火墙配置。最开始时在本机能够正常解析域名,但是使用其他机器则无法利用它来解析域名。在/etc/sysconfig/iptables中添加如下内容:

A RH-Firewall-1-INPUT -p udp -m udp -dport 53 -j ACCEPT
A RH-Firewall-1-INPUT -p tcp -m tcp -dport 53 -j ACCEPT