搭建DNS服务器的脚本出错,请大家指点一下错在哪啊?

SIMENYU 2012-03-24 08:48:53

写了一个自动搭建DNS服务器的脚本,老是报错,查了半天也没看出哪里错了,请大家帮忙看看错在哪里?
平台RHEL6.2
报错信息:
Starting named:
Error in named configuration:
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
dns_rdata_fromtext: example.com.zone:2: unexpected token
dns_master_load: example.com.zone:8: syntax error
dns_master_load: example.com.zone:8: isc_lex_gettoken() failed: unbalanced quotes
dns_master_load: example.com.zone:8: unbalanced quotes
zone example.com/IN: loading from master file example.com.zone failed: unexpected token
zone example.com/IN: not loaded due to errors.
_default/example.com/IN: unexpected token
zone 80.168.192.in-addr.arpa/IN: loaded serial 0
[FAILED]

脚步原文如下:
#!/bin/bash
# Just need to reset variable "MYIP" and "MYDOMAIN" to yourself.

MYIP="192.168.80.6"
MYDOMAIN="example.com"

#--------------------------------------
# Don't change anything in the below,
# unless you know what you are doing.


#--------------------------------------
# Install Packages.
#--------------------------------------
yum -y install bind bind-chroot


#--------------------------------------
# Modify "/etc/named.conf"
#--------------------------------------
sed -i 's/127.0.0.1;/any;/g' /etc/named.conf
sed -i 's/localhost;/any;/g' /etc/named.conf


#--------------------------------------
# Modify "/etc/named.rfc1912.zones"
#--------------------------------------
grep "$MYDOMAIN" /etc/named.rfc1912.zones > /dev/null
if [ $? -ne 0 ]; then
cat >> /etc/named.rfc1912.zones << _EOF_
zone "$MYDOMAIN" IN {
type master;
file "$MYDOMAIN.zone";
allow-update { none; };
};
zone "$(echo $MYIP | awk -F"." '{print $3"."$2"."$1}').in-addr.arpa" IN {
type master;
file "$(echo $MYIP | awk -F"." '{print $1"."$2"."$3}').zone";
allow-update { none; };
};
_EOF_
fi


#--------------------------------------
# Create forward and backward resolve file
#--------------------------------------
/bin/cp -p /var/named/named.localhost /var/named/"$MYDOMAIN".zone
/bin/cp -p /var/named/named.localhost /var/named/"$(echo $MYIP | awk -F"." '{print $1"."$2"."$3}')".zone

cat > /var/named/"$MYDOMAIN".zone << _EOF_
\$TTL 1D
@ IN SOA "$MYDOMAIN". rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS "$MYDOMAIN".
$MYDOMAIN. A $MYIP
www A $MYIP
ftp A $MYIP
$MYDOMAIN. MX 5 mail.$MYDOMAIN.
mail A $MYIP
_EOF_

cat > /var/named/"$(echo $MYIP | awk -F"." '{print $1"."$2"."$3}')".zone << _EOF_
\$TTL 1D
@ IN SOA $MYDOMAIN. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS $MYDOMAIN.
76 PTR $MYDOMAIN.
76 PTR www.$MYDOMAIN.
76 PTR ftp.$MYDOMAIN.
76 PTR mail.$MYDOMAIN.
_EOF_


#--------------------------------------
# Modify "/etc/resolv.conf"
#--------------------------------------
cat > /etc/resolv.conf << _EOF_
search $MYDOMAIN
nameserver $MYIP
_EOF_


#--------------------------------------
# Restart DNS service
#--------------------------------------
/etc/init.d/named restart
...全文
1839 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenshengfengzgw 2013-07-05
  • 打赏
  • 举报
回复
我跟你的问题不一样

[root@localhost named]# service named start
Starting named: 
Error in named configuration:
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
my.internal.zone.db:1: no TTL specified; using SOA MINTTL instead
zone my.internal.zone/IN: loaded serial 1
zone my.ddns.internal.zone/IN: loading from master file dynamic/my.ddns.internal.zone.db failed: file not found
zone my.ddns.internal.zone/IN: not loaded due to errors.
internal/my.ddns.internal.zone/IN: file not found
test.com.zone:12: unknown RR type 'www'
test.com.zone:13: unknown RR type 'mail'
zone test.com/IN: loading from master file test.com.zone failed: unknown class/type
zone test.com/IN: not loaded due to errors.
internal/test.com/IN: unknown class/type
my.external.zone.db:1: no TTL specified; using SOA MINTTL instead
zone my.external.zone/IN: loaded serial 1
                                                           [FAILED]
帮我分一下什么问题,看不懂……
SIMENYU 2012-03-26
  • 打赏
  • 举报
回复
来个人,把分领走。。。。
SIMENYU 2012-03-24
  • 打赏
  • 举报
回复

耶。搞定,修改一下反向解析文件就没问题了,结贴!
@ IN SOA $MYDOMAIN. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS $MYDOMAIN.
$(echo $MYIP | awk -F"." '{print $4}') PTR $MYDOMAIN.
$(echo $MYIP | awk -F"." '{print $4}') PTR www.$MYDOMAIN.
$(echo $MYIP | awk -F"." '{print $4}') PTR ftp.$MYDOMAIN.
$(echo $MYIP | awk -F"." '{print $4}') PTR mail.$MYDOMAIN.
SIMENYU 2012-03-24
  • 打赏
  • 举报
回复
我自己又逐行排查了一遍,发现了2个问题:
1)正向解析文件中的MYDOMAIN变量多加了个双引号;
2)反向解析文件中的ip写成了76,本应是6;

修复了以上2个问题后,DNS能成功启动。
正向解析域名没问题。
但是反向还是解不出来,不知道怎么回事,忘了反向解析文件中要不要加A记录,我只有PTR记录。

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧