如何配置具有 2 个 NIC 的 DNS / DHCP / 网关服务器以使用其自己的 DNS?

如何配置具有 2 个 NIC 的 DNS / DHCP / 网关服务器以使用其自己的 DNS?

我的 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.confupdatedns/etc/ppp/peers/dsl-providerresolvconf127.0.0.1bind9

答案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 网络无法访问的错误。

相关内容