我的 SOHO 局域网由我的主机提供服务,它充当路由器、防火墙、网关、DNS、DHCP 服务器和备份服务器。
我已经设置了bind9 和isc-dhcp-server 来为局域网客户端执行DDNS,而pppoe 设置了网络网关。
备份服务器需要通过主机名识别 LAN 客户端,因此我需要它在本地 DNS 上查找它们当前的 IP。
我使用的是 Ubuntu 16.04.4
我走得很远(见动态 DNS 仅服务 DHCP 客户端,但新名称无法在 DNS 服务器本身上解析对于bind9 - dhcpd - ddns
我所做的设置)但我仍然没有设法在服务器上配置本地 DNS 查找。
服务器/etc/resolv.conf
看起来像这样:
adam@gondor:~$ cat /etc/resolv.conf
nameserver 81.139.56.100
nameserver 81.139.57.100
domain localdomain
search localdomain
我假设这是在启动时编写的,用于pppoe
配置网关。有一个/etc/ppp/resolv.conf
是一样的,但我不确定它扮演什么角色。
我的问题是我应该如何配置linux,以便backuppc
在本地主机上为局域网上的域名执行DNS,但在同一台机器上用firefox浏览网络也可以工作。
一位同事建议我加入,127.0.0.1
但这/etc/resolvconf/resolv.conf.d/head
似乎不是一个好主意:
adam@gondor:~$ cat /etc/resolvconf/resolv.conf.d/head
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
我也是不是使用network-manager
来控制pppoe
这似乎是一个流行的选择。
[第 1 条评论后更新]我仔细查看了该resolvconf
包,发现它已经过时了。我已经更新了它,但我现在很确定上面的警告head
是警告我不要resolv.conf
手动编辑,而不是/etc/resolvconf/resolv.conf.d/head
.
这也没有帮助http://manpages.ubuntu.com/manpages/xenial/man8/resolvconf.8.html谈论resolvconf
没有给我的文件,例如resolvconf.conf
.
我还决定pppd
不能使用,因此我通过注释掉中的选项resolvconf
来禁用它更新。无论如何,我不需要英国电信 DNS 服务器,我将配置为使用,并且我会告诉转发到 OpenDNS 服务器。/etc/resolv.conf
updatedns
/etc/ppp/peers/dsl-provider
resolvconf
127.0.0.1
bind9
答案1
pppd
正在控制/etc/resolv.conf
,所以我要做的第一件事就是删除 ppp 选项,该选项告诉它通过英国电信 DNS 服务器。那是usepeerdns
在/etc/ppp/peers/dsl-provider
.
然后我出于沮丧而清除并重新安装了该resolvconf
软件包,重新安装它实际上将其设置为(几乎)记录在http://manpages.ubuntu.com/manpages/xenial/man8/resolvconf.8.html
我nameserver 127.0.0.1
输入了/etc/resolvconf/resolv.conf.d/head
所以现在它出现在链接到的文件中/etc/resolv.conf
或者更好地说在/run/resolvconf/resolv.conf
链接到的文件中。
我调整了我的/etc/bind/named.conf.options
:
acl goodclients {
localhost;
localnets;
};
options {
listen-on {
192.168.0.3;
127.0.0.1;
};
listen-on-v6 {
fe80::2a37:37ff:fe03:4225/64;
::1;
#any;
};
directory "/var/cache/bind";
forwarders {
208.67.220.220;
208.67.222.222;
};
allow-query { goodclients; };
allow-recursion { goodclients; };
allow-transfer { goodclients; };
dnssec-enable no;
#dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
};
我关注的一篇文章告诉我放入192.168.0.0/24
我的acl goodclients
块中,也可以使用dnssec-validation auto;
,但它们导致登录时出现大量错误,syslog
所以我再次将它们取出。
如果没有我放置 OpenDNS DNS 服务器的块,它也可以工作forwarders
,但如果没有它们,就会出现许多 IPv6 网络无法访问的错误。