Bind9 dns-cache 将我的 IP 返回到错误查询

Bind9 dns-cache 将我的 IP 返回到错误查询

我的 bind9 dns 缓存无法返回任何查询的答案,这是什么原因?我能以某种方式禁用该行为吗?

nslookup not.a.valid.query
Server:  UnKnown
Address:  192.168.0.1

Non-authoritative answer:
Name:    not.a.valid.query.robertfoss.se
Address:  *my public ip address*

如果我禁用该行option domain-name "robertfoss.se";dhcpd.conf并重新启动服务),相同的查询将产生更加合理的 dns-answer:

nslookup not.a.valid.query
Server:  UnKnown
Address:  192.168.0.1

bind9 命名.conf.选项

options {
    directory "/var/cache/bind";

    forwarders {
            81.88.9.218;
            8.8.8.8;
            81.88.9.220;
            8.8.4.4;
    };

    // Security options
    allow-query {127.0.0.1; 192.168.0.0/24; };
    allow-recursion { 127.0.0.1; 192.168.0.0/24; };
    allow-transfer { none; };

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

我在 ubuntu 主机上运行 bind9。

答案1

您正在测试的域名 robertfoss.se 的 DNS 记录提供通配符 A 记录。直接查询 robertfoss.se 的名称服务器,我得到:

$ nslookup
> server ns1.loopia.se
Default server: ns1.loopia.se
Address: 93.188.0.20#53
> test.robertfoss.se
Server:         ns1.loopia.se
Address:        93.188.0.20#53

Name:   test.robertfoss.se
Address: 85.235.31.248
> nothing.should.be.here.robertfoss.se
Server:         ns1.loopia.se
Address:        93.188.0.20#53

Name:   nothing.should.be.here.robertfoss.se
Address: 85.235.31.248

那么,当 robertfoss.se 被设置为 dhcp 客户端的域名时,您的本地机器上会发生什么?这很简单,nslookup 会将默认域名附加到查询中。因此,例如,如果您nslookup 这个是很酷的名字,它会将其更改为nslookup this.is.a.cool.name.robertfoss.se

有两件事可以解决这个问题。首先,在named.conf中确保“。”区域是type=hint,而不是type=master。其次,检查resolv.conf搜索领域选项。

就我个人而言,对于小型网络我更喜欢域名系统. 轻量,灵活,易于配置。

相关内容