서버가 vm3: NXDOMAIN을 찾을 수 없습니다.

서버가 vm3: NXDOMAIN을 찾을 수 없습니다.

호스트 vm1, vm2 및 vm3이 포함된 레코드를 가져오기 위해 다른 네트워크인 192.168.56.0/24에 있는 이름 서버를 쿼리하는 데 문제가 있습니다. 이유를 모르겠습니다. 어쨌든 누군가 무슨 일이 일어나고 있는지 설명할 수 있나요?

페라리

/etc/resolv.conf

# Generated by NetworkManager
search luxury.auto.ops
nameserver 172.45.20.3
nameserver 192.168.56.2

/etc/호스트

127.0.0.1   localhost localhost.localdomain localhost4      localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.45.20.1 host
172.45.20.1 host host.oadese.ops

/etc/named.conf

options {
    directory       "/var/named";
    allow-query     { 127.0.0.1; 172.45.20.0/24; 192.168.56.2;};
    forwarders { 192.168.56.1; };
};

zone "localhost"{
    type master;
    file "named.localhost";
};

zone "luxury.auto.ops."{
    type master;
    file "mydb-for-luxury-auto-ops";
    allow-transfer { 172.45.20.4; };
};

zone "20.45.172.in-addr.arpa." {
    type master;
    file "mydb-for-172.45.20";
};

vi /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
UUID=78aa1a9b-0607-492a-b7dc-55d6f76f05d5
DEVICE=eth0
ONBOOT=yes
DOMAIN=luxury.auto.ops
IPADDR=172.45.20.3
NETMASK=255.255.255.0
HWADDR=52:54:00:8d:9e:93
GATEWAY=172.45.20.1
DNS1=172.45.20.3
DNS2=192.168.56.2

VM 1 192.168.56.2

/etc/named.conf

options {
        directory       "/var/named";
        allow-query     { 127.0.0.1; 192.168.56.0/24; 172.45.20.0/24;};
        forwarders { 192.168.56.1; };
};

zone "localhost"{
        type master;
        file "named.localhost";
};

zone "oadese.ops" {
        type master;
        file "mydb-for-oadese-ops";
};

zone "56.168.192.in-addr.arpa." {
        type master;
        file "mydb-for-192.168.56";
};

/var/named/mydb-for-oadese-ops

$TTL    3D
@       IN      SOA     vm1.oadese.ops.      hostmaster.oadese.ops.(
                2016010301       ; Serial
                8H      ; Refresh
                2H      ; Retry
                1W      ; Expire
                1D      ; Negative Cache TTL
);
@       IN      NS      vm1.oadese.ops.
vm1     IN      A       192.168.56.2
vm2     IN      A       192.168.56.3
vm3     IN      A       192.168.56.4
host    IN      A       192.168.56.1

[root@ferrari ~]# nslookup vm1
Server:     192.168.56.2
Address:    192.168.56.2#53

Non-authoritative answer:
Name:   vm1
Address: 192.168.56.2

[root@ferrari ~]# nslookup vm2
Server:     192.168.56.2
Address:    192.168.56.2#53

Non-authoritative answer:
Name:   vm2
Address: 192.168.56.3

[root@ferrari ~]# nslookup vm3
Server:     192.168.56.2
Address:    192.168.56.2#53

Non-authoritative answer:
Name:   vm3
Address: 192.168.56.4

[root@ferrari ~]# nslookup host
Server:     192.168.56.2
Address:    192.168.56.2#53

Non-authoritative answer:
Name:   host
Address: 192.168.56.1

[root@ferrari ~]# nslookup ferrari
Server:     172.45.20.3
Address:    172.45.20.3#53

Name:   ferrari.luxury.auto.ops
Address: 172.45.20.3

[root@ferrari ~]# host vm1
Host vm1 not found: 3(NXDOMAIN)
[root@ferrari ~]# host vm2
Host vm2 not found: 3(NXDOMAIN)
[root@ferrari ~]# host vm3
Host vm3 not found: 3(NXDOMAIN)
[root@ferrari ~]# host host
[root@ferrari ~]# host ferrari
ferrari.luxury.auto.ops has address 172.45.20.3

Mar 18 10:43:50 ferrari named[2242]: error (connection refused) resolving 'vm1.oadese.ops/A/IN': 192.168.56.2#53
Mar 18 10:43:50 ferrari named[2242]: error (network unreachable) resolving 'vm1.oadese.ops/A/IN': 2001:500:2f::f#53
Mar 18 10:43:50 ferrari named[2242]: error (connection refused) resolving './NS/IN': 192.168.56.2#53
Mar 18 10:43:50 ferrari named[2242]: error (network unreachable) resolving './NS/IN': 2001:500:2f::f#53
Mar 18 10:43:51 ferrari named[2242]: error (connection refused) resolving 'vm1/A/IN': 192.168.56.2#53
Mar 18 10:43:51 ferrari named[2242]: error (network unreachable) resolving 'vm1/A/IN': 2001:500:1::803f:235#53
Mar 18 10:43:51 ferrari named[2242]: error (network unreachable) resolving 'vm1/A/IN': 2001:7fe::53#53

답변1

두 번째 이름 서버에서는 서버 자체에 대한 전달자를 정의합니다. 스키마의 경우 다음과 같아야 합니다.

forwarders { 172.45.20.3 };

search지시문의 문제 도 있습니다 /etc/resolv.conf. 도메인 이름이 두 개이지만 도메인 이름은 하나뿐인 경우입니다. 확인자가 두 도메인에 대한 쿼리에 도메인을 추가하려면 다음을 사용해야 합니다.

search luxury.auto.ops. oadese.ops.

그건 그렇고, 지적하는 것을 잊지 마십시오.

또한 다양한 보기로 다양한 이름 서버를 요청하도록 가상 머신을 구성하고 있습니다. DNS 확인자는 이와 같이 작동하지 않습니다. 두 번째 이름 서버는 첫 번째 이름 서버가 실패한 경우에만 사용됩니다. 첫 번째 장치가 부팅되고 DNS 주소를 모른다고 하면 두 번째 장치는 쿼리되지 않습니다.

서로 다른 이름 서버에 독립적인 DNS 도메인을 갖고 싶다면 다른 서버의 도메인을 슬레이브로 설정하고 이를 다른 서버의 마스터로 설정하는 것이 더 깔끔한 옵션은 서버 중 하나를 두 서버 모두의 마스터 서버로 만드는 것입니다. 도메인, 다른 서버는 슬레이브 서버가 됩니다.

관련 정보