我正在尝试设置本地绑定 DNS 服务器(第一次处理 DNS 服务器,对记录有所了解):
- 将 *.internal、*.*.internal 路由到其自身(最好是任何子域的组合),
- 将其他所有内容转发到 192.168.0.1 的父 DNS 服务器
首先,我想解决第二个转发问题。父路由器/dns 路由hostname.Home
到连接到网络的计算机,但这些请求不会被转发。但是,对 google.com 和外部网站的查找确实有效。
目前我有以下named.conf:
options {
directory "/var/cache/bind";
dnssec-validation no;
dnssec-lookaside no;
auth-nxdomain no; # conform to RFC1035
listen-on { any; };
listen-on-v6 { any; };
# Recursively forward requests onto the parent DNS
forwarders { 192.168.0.1; };
recursion yes;
allow-recursion { any; };
allow-query { any; };
};
我尝试查找域时的结果:
外部域,本地 DNS
ross@srv:~$ nslookup google.com 127.0.0.1
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
Name: google.com
Address: 173.194.34.105
...snip...
Name: google.com
Address: 173.194.34.104
内部域,本地 DNS
ross@tigger:~$ nslookup ross-pc.home 127.0.0.1
Server: 127.0.0.1
Address: 127.0.0.1#53
** server can't find ross-pc.home: NXDOMAIN
内部域,父 DNS
ross@tigger:~$ nslookup ross-pc.home 192.168.0.1
Server: 192.168.0.1
Address: 192.168.0.1#53
Non-authoritative answer:
Name: ross-pc.home
Address: 192.168.0.14
绑定错误日志:
named[6947]: DNS format error from 192.168.0.1#53 resolving ross-pc.home/A for
client 127.0.0.1#50667: reply has no answer
named[6947]: error (FORMERR) resolving 'ross-pc.home/A/IN': 192.168.0.1#53
named[6947]: error (network unreachable) resolving 'ross-pc.home/A/IN':
2001:503:c27::2:30#53
named[6947]: error (network unreachable) resolving 'ross-pc.home/A/IN':
2001:500:3::42#53
我尝试将 bind 配置为尽可能不受限制,同时使基本功能正常运行。有人能解释为什么*.Home
请求没有被转发吗?
答案1
我找到了一个解决方案 - 我的上游路由器是家用 dsl 型路由器,它显然可以发送大型 udp 数据包。此处描述的解决方案是添加以下几行以在 DNS 服务器之间使用不同的 DNS 模式:
server ::/0 { edns no; };
server 0.0.0.0/0 { edns no; };