如果在通配符旁边使用子域,则与 RPZ 绑定的行为会很奇怪

如果在通配符旁边使用子域,则与 RPZ 绑定的行为会很奇怪

我不确定是否在绑定中发现了错误。我在 debian 12 上设置了一个简单的 dns 服务器。

命名.conf.选项

zone "rpz-test" {
    type master;
    file "/etc/bind/rpz-test.zone";
    check-names ignore;
}

rpz-测试区

;RPZ
$TTL 604800
@   IN SOA rpz.zone. rpz.zone. (
                2; serial
            604800; refresh
            86400; retry
            2419200; expire
            604800; minimum
)
        IN      NS      localhost.

*.com A 127.0.0.1

sub.domain.com A 127.0.0.1

现在...如果我在bind9启动后使用dig来检查配置...

发生的情况是这样的:

挖掘whatever.com @localhost -p 53 -> 回复 127.0.0.1

挖 sub.domain.com @localhost -p 53 -> 回复 127.0.0.1

挖掘domain.com @localhost -p 53 -> 打破通配符并解决

实际上,如果声明了域的子域,则主域将在外部解析!
很奇怪,通配符不是能够克服后面的声明吗?

问题可能出在我的配置中,不确定是否是一个错误,但我使用的版本是:

debian 12.2
绑定 9.18.19~deb12u1

答案1

根据RFC 1034,这是预期的行为:

当已知存在查询名称或通配符域与查询名称之间的名称时,通配符 RR 不适用。例如,如果通配符 RR 的所有者名称为“ *.X”,并且该区域还包含附加到 的 RR B.X,则通配符将应用于名称查询Z.X(假定没有关于 的明确信息Z.X),但不适用于B.XA.B.XX

如果您发现这一点不清楚,那么就他们所写的而言,您并不孤单RFC 4592澄清通配符的用法。总而言之:一旦您添加 RR 条目sub.domain.com.,您就定义了两个域sub.domain.com.,并且domain.com.您的通配符*.com.不适用于这两个域。

相关内容