我正在尝试使用 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 通配符生成规则”来了解如何正确使用通配符,如果您对通配符的扩展方式做出假设,就会出现一些意想不到的事情(它不像正则表达式那样工作)。