LinuxSir.cn,穿越时空的Linuxsir!

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

大家最常见的dns rndc错误 ! [rndc讨论]

[复制链接]
发表于 2004-8-18 21:13:52 | 显示全部楼层 |阅读模式
[root@Vivian /]# etc/rc.d/init.d/named restart
Stopping named: rndc: connect failed: connection refused  [FAILED]
Starting named:                                           [FAILED]
发表于 2004-8-19 01:50:11 | 显示全部楼层
你如何配置的,之前是否能使用过 ? 日志如何说 ?
发表于 2004-8-19 01:54:49 | 显示全部楼层
rndc-confgen里面如何说 ?

将防火墙关掉看看,跟防火墙有关系


我的没问题

root: /snoopy/test/c # service named start
Starting named:                                            [  OK  ]
root: /snoopy/test/c # rndc status
number of zones: 6
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
server is up and running
root: /snoopy/test/c #
发表于 2004-8-19 02:12:38 | 显示全部楼层
制造这样的错误出来

root: /snoopy/test/c # iptables -A OUTPUT -p tcp --dport 953 -j DROP

root: /snoopy/test/c # service named stop
Stopping named: rndc: connect failed: operation canceled
                                                           [  OK  ]
root: /snoopy/test/c #


问题的关键在与rndc.conf中的这一行:
default-server localhost;
如果将”localhost”改为”localhost.”或者127.0.0.1,可以解决这个问题.
查看rndc的参数,有一个-s选项,可以指定需要控制的服务器,下面这个命令也可以:
rndc -s 127.0.0.1 reload 或 rndc -s localhost. reload
再从日志中分析,启动bind 9时日志如下:
May 8 snoopy named[513]: starting BIND 9.2.2
May 8 snoopy named[513]: command channel listening on 127.0.0.1#953
可以看出,bind 9在127.0.0.1上监听953端口响应命令行通道.对应named.conf中的配置,在controls语句中,127.0.0.1用来指定本机那个接口地址来监听命令行通道,allow指定那些地址可以进行远程控制(例子中仅允许localhost).可以设想,如果将inet配置为本机上一个实际的网络接口地址,allow中不但允许localhost,并且允许其他IP(譬如管理员的机器地址),那么就可以通过这些地址来”远程”控制named的动作.
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
这也是为什么bind 9把原来的ndc改为rndc的原因:remote ndc.
另外,bind 9打开的TCP端口953,用来响应rndc的控制信号(本地或远程),当bind 9关闭后,这个端口也关闭,这也是为什么rndc中取消start参数的原因:如果未启动bind 9,系统也没有在953端口监听,就谈不上远程控制了.

再回到上面的问题,为什么default-server设置为localhost则rndc返回网络不可达?而对”127.0.0.1”进行控制则可以,”localhost.”也可以.
这说明,rndc并没有承认/etc/hosts文件中localhost和127.0.0.1的对应关系,当对命令行通道试图连接localhost的953端口时,发现并不能对localhost进行解析,因为不知道其IP地址,所以报告网络不可达.这样也就不能连接到127.0.0.1的953端口对named进行控制.

这样种种的原因你参考一下,我都没碰过,,


参考文章
http://chinaunix.net/jh/16/241321.html



还有一种可能是953端口被占用了,

通常我们是通过 unix 系统的中断信号来控制 named 进程,如使用

-HUP 来使 named 重新读入配置文件的信息等等。而 rndc 是

bind 软件引进的远程控制通道,代替 unix 信号来控制 named

进程。使用 rndc 你就可以使用 rndc reload 等命令来重新读入

named.conf 配置文件了
 楼主| 发表于 2004-8-19 10:41:30 | 显示全部楼层
多谢,我还没来得及看,这两天工作比较忙,要出差,改天回来试试再看看!
发表于 2004-8-20 00:03:11 | 显示全部楼层
常见的方法有这几种,请兄弟们想到的补充吧,,,
发表于 2004-8-20 23:00:34 | 显示全部楼层
这种问题我每次都碰到,但有个解决办法,多次重新启动named服务
我一般这样做

#service named restart
  ----这里似乎成功,但不可靠,至少我的虚拟机上这样
#service named restart ---再次启动服务
  ----往往出现楼主的问题
#service named restart --再次启动服务
  ---第三次一般都能解决问题
#named -g  直接调试是否启动成功,日志信息不全!
#service named restart --再次启动 ,当上面没有错误情况下,其中有一个127.0.0.1的。。。错误,我无法排除,但不影响服务器的运行。
#named          --最后这一步就成功了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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