DNS 通配符子域错误

DNS 通配符子域错误

我正在尝试使用 SUSE 在虚拟机上进行通配符子域配置。尝试将记录(我使用 vi)*.host IN A 输入到 .zone 文件中时,行变为红色,重新启动 named.service 后,出现错误,表示存在问题,区域无法加载。

这是 .zone 文件:

$TTL 86400
$ORIGIN domain.com.
@    IN   SOA  dns1.com.  hostmaster.com. (
              2001062501 ; serial
              21600      ; refresh after 6 hours
              3600       ; retry after 1 hour
              604800     ; expire after 1 week
              86400 )    ; minimum TTL of 1 day
     IN   NS   dns2.com.
     IN   NS   dns1.com.
dns1 IN   A    <ip of dns>
dns2 IN   A    <ip of dns>
domain  IN   A    <ip of system>
. IN A <ip of system>
*.domain. IN A <ip of system>           -> here is the problem
domain.com.   IN   A    <ip of system>
*     IN    CNAME domain

答案1

您的问题行超出了区域范围。您的 $ORIGIN 是domain.com这样的,所以所有内容都必须是相对的(没有尾随点)或所有内容都必须以 结尾domain.com.(带有尾随点)。就像在您的 SOA 记录中一样,请记住 @ 表示“当前来源”,即domain.com

您还应该删除仅带有“。”的行,这是一个被默默忽略的根引用。

您的几条记录并未按照预期发挥作用,并且您的 NS 记录也是假的(我认为所有这些都是错误的编辑/替换)。

您可能还需要谷歌一下“dns 通配符生成规则”来了解如何正确使用通配符,如果您对通配符的扩展方式做出假设,就会出现一些意想不到的事情(它不像正则表达式那样工作)。

相关内容