在 arch linux 中设置 named

在 arch linux 中设置 named

我正在尝试在 Arch Linux VM 上设置域。

以下是我的named.conf

options {
    directory "/var/named";
    pid-file "/run/named/named.pid";

    // Uncomment these to enable IPv6 connections support
    // IPv4 will still work:
    //  listen-on-v6 { any; };
    // Add this for no IPv4:
    //  listen-on { none; };
    listen-on port 53 { 127.0.0.1; any; };
    allow-query { localhost; any; };
    allow-recursion { 127.0.0.1; };
    allow-transfer { none; };
    allow-update { none; };

    version none;
    hostname none;
    server-id none;
};

zone "localhost" IN {
    type master;
    file "localhost.zone";
};
// ...
zone "DOMAIN.com" IN {
        type master;
        file "DOMAIN.com.zone";
        allow-update { none; };
        notify no;
};

/var/named/DOMAIN.com.zone

$TTL 7200
; DOMAIN.com
@       IN      SOA     ns1.DOMAIN.com. postmaster.DOMAIN.com. (
                                        2018111111 ; Serial
                                        28800      ; Refresh
                                        1800       ; Retry
                                        604800     ; Expire - 1 week
                                        86400 )    ; Negative Cache TTL
@               IN      NS      ns1.DOMAIN.com
@               IN      NS      ns2.DOMAIN.com
ns1.DOMAIN.com             IN      A       PUBLIC_IP_OF_VM
ns2.DOMAIN.com             IN      A       PUBLIC_IP_OF_VM
ns1     IN      A       PUBLIC_IP_OF_VM
ns2     IN      A       PUBLIC_IP_OF_VM
www     IN      A       PUBLIC_IP_OF_VM

/etc/resolv.conf

search DOMAIN.com
nameserver PRIVATE_IP_OF_VM

然后我检查了配置

$ sudo named-checkzone DOMAIN.com /var/named/DOMAIN.com.zone
zone weerepublic.com/IN: loaded serial 2018111111
OK

但当我 ping 时,DOMAIN.com收到“名称或服务未知”的消息。我该如何修复此问题?

$ sudo netstat -nap | grep 53 |grep LISTEN
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN      329/systemd-resolve 
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      329/systemd-resolve 
tcp6       0      0 :::5355                 :::*                    LISTEN      329/systemd-resolve 

编辑

问题出在日志文件上。startrestart没有报告任何失败。但是systemctl status named报告

isc_stdio_open '/var/log/named.log' failed: permission denied

因此我修改了/var/log/named.log并将所有权更改为named:root。现在 DNS 服务器正在运行。

但外部 ping 报告No address associated with hostname

因此我A为 DOMAIN.com 添加了记录。当前区域文件如下所示。

$TTL 7200
; DOMAIN.com
@       IN      SOA     ns1.DOMAIN.com. postmaster.DOMAIN.com. (
                                        2018111111 ; Serial
                                        28800      ; Refresh
                                        1800       ; Retry
                                        604800     ; Expire - 1 week
                                        86400 )    ; Negative Cache TTL
@               IN      NS      ns1.DOMAIN.com.
@               IN      NS      ns2.DOMAIN.com.
DOMAIN.com.             IN      A       PUBLIC_IP_OF_VM
ns1.DOMAIN.com.             IN      A       PUBLIC_IP_OF_VM
ns2.DOMAIN.com.             IN      A       PUBLIC_IP_OF_VM
ns1     IN      A       PUBLIC_IP_OF_VM
ns2     IN      A       PUBLIC_IP_OF_VM
www     IN      A       PUBLIC_IP_OF_VM

然后我重新启动了,named但仍然有外部 ping 报告

No address associated with hostname

答案1

您的名称服务器未运行。可能是在您尝试启动它时出现错误,也可能是您没有正确启动它。无论哪种情况,它都没有运行。

netstat从您在问题中提供的输出可以看出这一点:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN      329/systemd-resolve
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      329/systemd-resolve
tcp6       0      0 :::5355                 :::*                    LISTEN      329/systemd-resolve

第一和第三项是端口 5353,而不是端口 53,因此可以忽略。第二项是 127.0.0.53,而不是 127.0.0.1,同样可以忽略。最后,可以看出,它们都来自systemd-resolve而不是您自己的名称服务器。

相关内容