路由器

路由器

我在 Linux 中配置 DNS 时遇到问题。我使用 isc-dhcp-server 作为 DHCP 服务器,使用 bind9 作为 DNS 服务器,但它返回错误。

这是我的设置

Internet <--enp0s3 interface-->router<--enp0s8 interface-->Ubuntu server

路由器既用作 DHCP 服务器,又用作 DNS 服务器,Ubuntu 服务器供内部使用。enp0s3 接口可访问互联网,enp0s8 用于内部网络。

路由器上的 enp0s8 接口的地址为 192.168.1.1,Ubuntu Server 的地址为 192.168.1.2。DHCP 服务器工作正常,机器可以互相 ping 通。

问题出在 DNS 服务器,我给了 Ubuntu 服务器名称服务器,当我运行此命令 ping 服务器时,它返回此错误:

   $ ping server
   ping: server: Temporary failure in name resolution

当我检查 bind9.service 状态时,它给了我以下信息:

$ sudo systemctl status bind9.service
● named.service - BIND Domain Name Server
     Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2024-02-20 11:10:08 UTC; 6min ago
       Docs: man:named(8)
    Process: 2759 ExecStart=/usr/sbin/named $OPTIONS (code=exited, status=0/SUCCESS)
   Main PID: 2760 (named)
      Tasks: 5 (limit: 2221)
     Memory: 5.6M
        CPU: 141ms
     CGroup: /system.slice/named.service
             └─2760 /usr/sbin/named -u bind

Feb 20 11:10:08 fox-router named[2760]: network unreachable resolving './NS/IN': 2001:500:a8::e#53
Feb 20 11:10:08 fox-router named[2760]: network unreachable resolving './NS/IN': 2001:500:12::d0d#53
Feb 20 11:10:08 fox-router named[2760]: network unreachable resolving './NS/IN': 2001:500:9f::42#53
Feb 20 11:10:08 fox-router named[2760]: network unreachable resolving './NS/IN': 2801:1b8:10::b#53
Feb 20 11:10:08 fox-router named[2760]: network unreachable resolving './NS/IN': 2001:500:2f::f#53
Feb 20 11:10:08 fox-router named[2760]: network unreachable resolving './NS/IN': 2001:500:2::c#53
Feb 20 11:10:08 fox-router named[2760]: network unreachable resolving './NS/IN': 2001:7fe::53#53
Feb 20 11:10:08 fox-router named[2760]: network unreachable resolving './NS/IN': 2001:503:ba3e::2:30#53
Feb 20 11:10:08 fox-router named[2760]: managed-keys-zone: Key 20326 for zone . is now trusted (acceptance timer complete)
Feb 20 11:10:08 fox-router named[2760]: resolver priming query complete: success
These are the commands that I had run when configuring the DHCP server:

路由器

Ubuntu 服务器作为路由器

为接口分配 IP 地址

sudo vim /etc/netplan/00-installey-config.yaml
__________________________________

network:
    ethernets:
        enp0s3:
            dhcp4: true
        enp0s8:
            dhcpd4: true
            addresses: [192.168.1.1/24]
    version: 2
__________________________________

sudo netplan apply

DHCP 服务器

sudo apt install isc-dhcp-server
sudo vim /etc/dhcp/dhcpd.conf
__________________________________

default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;

subnet 192.168.1.0 netmask 255.255.255.0{
    range 192.168.1.2 192.168.1.10;
    option routers 192.168.1.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
}

host Server{
    hardware ethernet: <MAC address>
    fixed-address: <IP Address>
}

为 DHCP 服务分配接口

sudo vim /etc/default/isc-dhcp-server
__________________________________

INTERFACESv4="enp0s8"

重启/启动 DHCP 服务器

sudo systemctl start isc-dhcp-server //START SERVICE 
sudo systemctl status isc-dhcp-server //CHECK STATUS
sudo systemctl restart isc-dhcp-server //RESTART SERVICE

这些是我为 DNS 服务器运行的命令:

$ sudo apt-get install bind9

编辑 /etc/bind/named.conf.options 文件。

forwarders {
    8.8.8.8;
    8.8.4.4;
};

在 /etc/bind/named.conf.local 中配置区域

zone "foxnetwork.net" {
        type master;
        file "/etc/bind/db.foxnetwork.net";
};

zone "0.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.168";
};

并创建区域:/etc/bind/db.foxnetwork.net

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.foxnetwork.net. root.localhost. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.foxnetwork.net.
foxnetwork.net. IN      MX      10      mail.foxnetwork.net.
ns      IN      A       192.168.1.1
web     IN      A       192.168.1.2

; The reverse zone


;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.foxnetwork.net root.localhost. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.
1       IN      PTR     ns.foxnetwork.net.
2       IN      PTR     web.foxnetwork.net.

然后我重启了 bind9 和 DHCP 服务器。但我仍然无法用 ping ns ping 路由器,也无法用 ping server ping 服务器

答案1

您的 DHCP 服务器分发的是两个公共 DNS 服务器的地址(可能是来自 Google?),而不是您自己的 DNS 服务器。由于无法通过常规方式访问该服务器(检查等/resolv.conf在您的 Ubuntu 服务器上查看其中的内容),您将无法访问在您的私有 DNS 服务器中注册的任何内容。

考虑到你打算做什么/etc/resolv.conf在您的 Ubuntu 服务器上必须包含如下一行:
nameserver 192.168.1.1,但是,它将包含完全不同的东西,即nameserver 8.8.8.8 8.8.4.4(即您的 DHCP 服务器正在分发的服务器)。

您的 DHCP 服务器配置必须如下所示,以便能够访问您的 DNS 服务器:

default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;

subnet 192.168.1.0 netmask 255.255.255.0{
    range 192.168.1.2 192.168.1.10;
    option routers 192.168.1.1;
    option domain-name-servers 192.168.1.1;
}

host Server{
    hardware ethernet: <MAC address>
    fixed-address: <IP Address>
}

然后重新启动 DHCP 服务器并在您的服务器上执行ifdown <interface> ; ifup <interface>(或与您的机器相关的任何操作)并检查/etc/resolv.conf在您的 Ubuntu 服务器上再次执行此操作。
相关行现在应显示为nameserver 192.168.1.1,并且nslookup server现在应解析该名称。

附注:DHCP 仅应用于没有固定地址连接到您的网络的客户端。如果有机器获得固定地址,最好建议您在机器本身上分配这些地址(选择不在 DHCP 可分配地址池中的地址),然后在必要时更新 DNS 服务器的配置。

相关内容