当用户连接到我们的 VPN (OpenVPN) 时,我只需要设置一个 DNS 服务器来解析我们的网络服务器的名称。我可以成功地将 DNS 服务器的 IP 地址“推送”到客户端。我错觉使用 Bind9 为本地网络设置 DNS 服务器很容易。我错了。首先,我从 Google 找到的每个样本都是基于完全限定的域,而不是本地名称。我所说的本地名称类似于“server1”,而不是“server1.my.company.com”。但我发现了著名的“@”。
现在我有另一个问题。当我用“ping”或“nslookup”尝试“server1”时,它完全符合我的要求。它将“server1”解析为我们的内部 IP。伟大的。但是当我尝试“www.google.com”时,它无法解析 IP。这意味着客户端尝试使用我的 DNS 服务器而不是仍在 DNS 服务器列表中的互联网提供商 DNS 服务器来解决“www.google.com”。
有没有办法告诉客户端机器:我不认识这个人,见其他人?
我注意到“auth-nxdomain”默认设置为“no”。我试图将其设置为“是”,但它没有完成这项工作。
在 Ubuntu 9.04 下有我的 Bind9 配置文件:
/etc/bind/named.conf.options
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
// forwarders {
// 0.0.0.0;
// };
//auth-nxdomain no; # conform to RFC1035
auth-nxdomain yes;
listen-on-v6 { any; };
// To prevent the error ";; Got recursion not available from 10.8.0.1, trying next server"
allow-recursion { 10.8.0.0/24; };
};
/etc/bind/named.conf.local
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
// This is the zone definition.
zone "@" {
type master;
file "/etc/bind/zones/vpn.db";
};
// This is the zone definition for reverse DNS.
zone "0.8.10.in-addr.arpa" {
type master;
file "/etc/bind/zones/rev.0.8.10.in-addr.arpa";
};
/etc/bind/zones/vpn.db
@ IN SOA vpn.local. admin.local. (
2011041608 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ; Negative Cache TTL
);
@ IN NS vpn.local.
server1 IN A 10.8.0.1
/etc/bind/zones/rev.0.8.10.in-addr.arpa
@ IN SOA vpn.local. admin.local. (
2011041608 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ; Negative Cache TTL
);
@ IN NS vpn.local.
1 IN PTR mrsvn
我对“SOA”一无所知。我从一个例子中复制了数字。而且我不确定“vpn.local”。和“admin.local”。无论如何,DNS 服务器正常工作。因为我要做的事情很多,我没有时间阅读 1000 页的文字才能执行这么简单的任务。我需要在服务器端将请求转发到我自己的 DNS 服务器吗?我已经通过更改选项文件中的“转发器{...}”进行了尝试,但它不起作用。而且我不喜欢通过 VPN 进行所有 DNS 解析的想法。你有解决方案吗 ?