设置子域时,“zone没有NSlogging”错误

我正在学习本教程: http : //groups.drupal.org/node/16862在我的ubuntu机器上设置子域。 在第三步中,除了IP之外,我使用与教程相同的db.mydev

 mydev. 86400 IN SOA mydev. hostmaster.mydev. ( 20091028 ; serial yyyy-mm-dd 10800; refresh every 15 min 3600; retry every hour 3600000; expire after 1 month + 86400 ); min ttl of 1 day IN NS mydev. IN MX 10 mydev. IN A 12.85.28.217 *.mydev. IN A 12.85.28.217 

但是,当我使用named-checkzone mydev db.mydev检查语法时,出现以下错误消息: zone mydev/IN: has no NS records 。 任何提示?

我同意安德鲁乙,除了为了可读性的目的,我不会build议只使用空格在那里。 在这个地方使用@符号或区域的完全限定名称(“mydev。”)来使事情更具可读性。 磁盘空间不再昂贵,并且以牺牲文件为代价来节省几个字符,而不理解区域parsing器在做什么并不是一个胜利。

为了进一步解释,每个资源logging声明由一个标签,一个ttl,一个类,一个types和一个值组成。 但是,除了价值之外,你可以忽略其中的任何一个,它们将从上面inheritance。

您发布的代码片段试图声明名称为“mydev”的logging。 对于类IN和typesSOA,NS,MX和A的logging,但是因为在NS,MX和Alogging声明的行开始处留下了重要的空白,所以会遇到问题。

如果方括号中的项目是inheritance的默认值,而不是:

 [mydev.] IN NS mydev. [mydev.] IN MX 10 mydev. [mydev.] IN A 12.85.28.217 

你无意中宣布:

 IN.[mydev.] [IN] NS mydev. IN.[mydev.] [IN] MX 10 mydev. IN.[mydev.] [IN] A 12.85.28.217 

结果没有NSlogging被宣布为简单的旧的:

 mydev. IN NS mydev. 

导致您看到的错误消息,“区域mydev / IN:没有NSlogging”

在“IN”开始的每一行的开头,至less需要一个空白字符或一个制表符(信用:@ mdpc的标签提醒编辑)。 有些pipe理员并不偏向制表符:在这种情况下,您应尽可能使所有这些条目与相同的空格保持一致。

这是因为你在技术上忽略了你正在定义的logging的第一个字段。 这是一个不用“mydev”的捷径。 或“@”在每一行的开头,但只有当你开始使用非logging数据的行时才有效。