服务器pipe理员不允许我configurationDNS

我们有一台运行DNS的Mac OS X 10.5.8服务器(以及其他一些服务)。

当我连接到它(使用服务器pipe理10.5.3 [这来自服务器pipe理10.5.7工具]),并点击查看DNS设置,都显示正常 – 它显示了许多反向条目和两个顶级域。 但是,当我select我们的一个域名并打开显示三angular形时,该列表为空! [应该有十几个条目,反向条目显示出来]如果我告诉它,我想添加一个A Record到域中,几乎所有的东西都消失了 – 我剩下一个列表我们的两个领域,其中一个显示三angular形显示一个单一的条目,一个反向条目对应新的Alogging。

named似乎工作正常。 DNS名称parsing。 这似乎是服务器pipe理员在计算机上的数据有问题。 这里没有人会手动创build一个DNS条目。

现在,虽然我想我已经备份了DNS(我在这里提到备份了/var/named/ /etc/named.conf/etc/dns/ ),但我真的不确定是否只需要replace这些文件将恢复我们所拥有的DNS设置。 我正在考虑去设置和日志级别从“信息”更改为“debugging”,但1)我只是有点担心,它可能会写入一个坏的configuration到磁盘,2)我认为这只会影响named而不是服务器pipe理员,据我所知, named是没有问题的。 (/Library/Logs/named.log中没有什么奇怪的东西,当我通过控制台/terminal打开时奇怪的是,当我点击服务器pipe理中的DNS日志button时,我看不到任何文本,只是一个完全白色的窗口当我看到我们的一个辅助DNS服务器时,我能够通过服务器pipe理看到日志文件。)

当我在服务器上运行服务器pipe理时,此条目出现在系统日志中:

 Jun 17 09:02:08 od1 Server Admin[3892]: Unexpected call to doMarkConfigurationAsDirty by 'DNS' plugin during updateConfigurationViewFromDescription 

这似乎发生在我看了DNS后,看看另一个服务,然后点击DNS。

认为最可能的原因是一个损坏的configuration文件,我浏览了所有备份的文件,而且没有一个是显而易见的。

当从远程计算机运行服务器pipe理来pipe理DNS时,我发现了一些奇怪的现象。

  1. 当我点击查看DNS的日志文件时,服务器开始写这样的消息到它的system.log:

     Jun 17 09:59:04 od1 kernel[0]: Limiting open port RST response from 252 to 250 packets per second Jun 17 09:59:06 od1 kernel[0]: Limiting open port RST response from 258 to 250 packets per second 

当我点击不同的服务时停止。

  1. 不确定的进度指示器(服务器pipe理员右下angular的“恢复”和“保存”button旁边出现的旋转轮)看起来非常奇怪。 据我所知,并不是只是在等待,而是被告知开始反复旋转,导致一个生涩的animation。

  2. 以下是运行Server Admin的计算机上logging的一些消息:

在启动时:

 *** ERROR: -[GRAxes computeLayout]:1124 - plotRect height = 0.000000 <= 0.0 *** *** ERROR: -[GRChartView computeLayout]:1194 - Layout for overlay axes (0x18758f50) failed. *** 

(如果你删除了〜/ Library / Preferences / com.apple.ServerAdmin.plist,这些消息不会让我感到太担心。

在关机时:

 2010-06-17 10:02:17.202 Server Admin[7770:10b] *** -[GroupTextField windowDidResignKey:]: unrecognized selector sent to instance 0x16e12490 

更多关于这些消息:

 2010-06-17 09:59:47.269 Server Admin[7770:10b] Unexpected call to doMarkConfigurationAsDirty by 'DNS' plugin during updateConfigurationViewFromDescription Server Admin(7770,0xb0453000) malloc: *** error for object 0x1c115390: double free *** set a breakpoint in malloc_error_break to debug 2010-06-17 10:01:00.795 Server Admin[7770:10b] *** -[ServiceEntry sessionHost]: unrecognized selector sent to instance 0x2af500 

任何想法:

  • 问题是什么
  • 我如何解决它
  • 或如何解决它?

如果我确实需要清除DNS并重新启动,有没有一个好的方法来做到这一点?

我的猜测是区域文件中的某些内容与服务器pipe理(Server Admin)(技术上来说是servermgrd)的预期格式略有不同 – 我已经看到它被诸如字段之间的“错误”数量的空格这样简单的东西弄糊涂了。

为了排除故障,我build议从SOAlogging下面的区域文件(位于/ var / named / zones中的文件)除去NSlogging(您说有备份,对不对?)。 它应该看起来像这样:

  ;GUID=34FEA604-B204-A7D7-95A5-B6D812B46454 $TTL 10800 example.com. IN SOA server.example.com. admin.example.com ( 2010042600 ;Serial 86400 ;Refresh 3600 ;Retry 604800 ;Expire 345600 ;Negative caching TTL ) example.com. IN NS server.example.com. 

注意:我不确定,但我认为在文件末尾必须有一个空行。 如果在排除故障时需要保留正常的DNS服务,可以将其他logging移动到其他区域文件 – / var / named中 – 其中的named将正常读取,但servermgrd不会显示。

无论如何,将区域文件修剪到最低限度,退出并重新启动服务器pipe理,看看它是否正常行为(即你可以查看日志,添加到区域的条目等)。 如果它正常工作,请尝试再次将这些logging重新添加到/ var / named / zones文件中 – 我一次怀疑它们中的一个或多个有点奇怪,如果将其忽略(即从Server重新创buildpipe理员而不是直接添加到区域文件),你可能会恢复正常。

我在MacOS X 10.5服务器上发现并解决了类似的问题。

原来在其中一个DNS区域文件的文本字段中是括号字符“(”和“)”。 我在命令行中使用了一个文本编辑器来删除括号,现在服务器pipe理员再次正常工作。

在10.5上,区域文件位于/var/named/zones

使用grep扫描区域文件中的“)”字符:

 sudo grep -R --include "*" \) . 

滚动输出并查找任何不寻常的东西。 (所有的区域文件在顶部都会有一个打开和closures的圆括号;您正在查找文件中的logging。)如果找不到任何内容,也可能希望grep为左括号。

find可疑文件时,打开它进行编辑:

 sudo nano db.mydomain.zone.apple 

find违规行并删除括号字符。 保存并closures。 重新启动服务器pipe理员。

也可能有其他违规的人物,但在我的情况下,它一直是括号。

星期五,我决定取下DNS并重build它。 (叹)。

重新开始的最好的指示是我在这里find的,但是我发现我不得不多做一点。

首先,我备份了DNS(如上面的问题所述)。

我closures了DNS。 (呃,我是这么想的,后来我把它关掉了一两次,但这是我认为应该关掉的时候了。)

我编辑了/etc/dns/publicView.conf.apple来删除我们创build的所有区域的名称,而不改变我们没有创build的区域的名称。 这里是所有区域中间有一个大评论的文件。 (我实际上没有在文件中发表评论,我只是删除了条目)。

 acl“com.apple.ServerAdmin.DNS.public”{192.168.1.254; 192.168.5.254; 192.168.10.254; 192.168.15.254; 192.168.20.254; 192.168.25.254; 192.168.30.254; 192.168.35.254; 192.168.40.254; 192.168 .45.254; 192.168.55.254; 192.168.75.254; 192.168.70.254; 192.168.80.254; localnets的; 192.168.65.251; 192.168.65.185; 192.168.80.0; 192.168.65.253;};

 //
 //这是服务器pipe理中显示的视图
 //这是一个自动生成的文件。
 //请不要手动修改这个文件!
 //请在named.conf文件中进行更改
 //

查看“com.apple.ServerAdmin.DNS.public”{
 // GUID = 3EA358EF-5C55-4619-98D0-5004B310D1B0;

     allow-recursion {“com.apple.ServerAdmin.DNS.public”;};

     // ------------------------------------------------ ------------- 
      //我们创build的文件中有几个区域 
      //我删除了所有 
      //下面的区域不像我们创build的那样,所以我离开了 
      //他们的事 
      // ------------------------------------------------ -------------

    区“。”  {
        键入提示;
        文件“named.ca”;
     };
    区域“localhost”IN {
        型主人;
        文件“localhost.zone”;
         allow-update {none;  };
     };

    区域“0.0.127.in-addr.arpa”IN {
        型主人;
        文件“named.local”;
         allow-update {none;  };
     };

 };

这样做,并重新启动DNS,服务器pipe理员仍然不高兴。 再次closuresDNS,我进入了/var/named/var/named/zones文件夹,并删除了我们创build的所有文件。 /var/named之前(和之后)的列表如下所示:

 db.100.168.192.in-addr.arpa。
 db.15.168.192.in-addr.arpa。
 db.20.168.192.in-addr.arpa。
 db.203.244.66.in-addr.arpa。
 db.34.168.192.in-addr.arpa。
 db.40.168.192.in-addr.arpa。
 db.5.168.192.in-addr.arpa。
 db.55.168.192.in-addr.arpa。
 db.65.168.192.in-addr.arpa。
 db.75.168.192.in-addr.arpa。
 db.somedomain.ab.ca。
 db.anotherdomain.net。
 localhost.zone
 named.ca
 named.local
区/

我离开了localhost.zonenamed.canamed.localzones文件夹,并删除了其他所有内容。 ( sudo rm db* )。

/var/named/zones文件夹看起来非常相似,但不包含任何不是由服务器admin创build的文件,所以sudo rm db*删除了所有文件。

在这一点上,我重新启动DNS(并可能重新启动),并可以再次与服务器pipe理。


现在我不得不重新填充所有的DNS条目。 幸运的是/var/named/db.{$DOMAIN}.的备份/var/named/db.{$DOMAIN}. (每个域的一个文件)清楚地说明了重新创build域需要做些什么,简单地说就是一个主机名,列表types和IP地址列表,例如:

  ...
筒仓IN A 192.168.100.254 
旧IN A 192.168.100.116 
 psmain IN A 192.168.100.121 
在CNAME ghs.google.com中发送电子邮件。 
 ... 

当服务器pipe理员突然出现同样的问题时,我重新创build了两个域名的三分之二,即不能再用它来显示或编辑区域。 天啊!

我input的最后一个主机条目是ftp 。 我决定看看它是否出现在任何文件中:

 $ cd / private / var / named / zones
 $ grep -R --include“*”ftp。
 ./db.somedomain.ab.ca.zone.apple:ftp IN A 192.168.100.254 
 ./db.somedomain.ab.ca.zone.apple:ftp IN TXT“正指向networking服务器(192.168.100.116),现在指向筒仓(192.168.100.254)。”

我删除了这两行,服务器pipe理员很高兴。 (谢天谢地)。

这个问题似乎是ftp服务器的注释。 (我们只用了很less的评论,只有两个,我没有看到有什么理由不去创造它们,相信我会在将来更加小心。)也许是因为这个评论包含了IP地址。

(ftp服务器也是一个外部的机会,对已经有Alogging的机器的Alogging引起了这个问题,但是这不太可能使我感到震惊。)

我重新创build了ftp条目作为CNAME,并没有发表评论。

以后再想一下,改变ftp-server条目最有可能是几个星期前我们对DNS做出的最后修改。

我完成了所有的主机,并检查了我的工作:

 mkdir DNSDiff && cd DNSDiff # repeat for each domain cat /path/to/backup/var/named/zones/db.somedomain.ab.ca.zone.apple | sort > old.somedomain.txt cat /var/named/zones/db.somedomain.ab.ca.zone.apple | sort new.somedomain.txt diff --side-by-side {old,new}.somedomain.txt # or, with TextWrangler, twdiff *.somedomain* # (or, use the diff tool of your choice.) 

DNS似乎现在运行良好。