Назад | Перейти на главную страницу

Сервер имен Bind9 не может разрешить локальный домен

Я пытался настроить привязку DNS в Ubuntu.

У меня две машины (VMware):

машина A является клиентом:

IP: 192.168.1.1  (host-only)
hostname: example.com 

машина B является DNS-сервером:

IP: 192.168.1.2 (host-only)

/etc/bind/ named.conf.local:

zone "example.com" {
        type master;
        file "/etc/bind/db.example.com";
};
//reverse zone
zone "1.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.192";
};

/etc/bind/db.example.com:

$TTL    604800
@       IN      SOA     example.com.        root.example.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      example.com.
@       IN      A       192.168.1.1
@       IN      AAAA    ::1

/etc/bind/db.192:

$TTL    604800
@       IN      SOA     1.168.192.in-addr.arpa. root.example.com. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      example.com.
1       IN      PTR     example.com.

Когда я использую nslookup в клиенте:

nslookup example.com
Server:     192.168.1.2
Address:    192.168.1.2#53

Name:   example.com
Address: 192.168.1.1

nslookup 192.168.1.1
Server:     192.168.1.2
Address:    192.168.1.2#53

** server can't find 1.1.168.192.in-addr.arpa: NXDOMAIN

Ты можешь починить это?

Прежде всего вы указываете в своем named.conf.local, что ваша зона example.com. Итак, имя хоста B не может быть example.com. Возможно some-hostname на example.com лайк foo.example.com но нет example.com поскольку это означает, что ваша зона com а имя хоста B - example что не соответствует предоставленной вами конфигурации.

Ошибка в/etc/bind/db.example.com.

@       IN      NS      example.com.

Эти строки используются для указания сервера доменного имени. Здесь вы только что сказали:

@(expand to example.com)'s name server is `example.com`

который должен быть

@       IN     NS      "B's hostname".example.com

Затем вы указываете записи A, связанные с записями NS (то есть IP-адрес вашего сервера имен):

hostname       IN      A       192.168.1.1
               IN      AAAA    ::1

Но это все еще плохая конфигурация. Вы сказали, что ваш сервер имен - B с IP 192.168.1.2, верно? Таким образом, приведенное выше утверждение должно быть

hostname       IN      A       192.168.1.2

То же самое и для записей SOA в db.example.com:

@ IN SOA example.com. root.example.com.

должно быть :

@       IN      SOA     "B's hostname".example.com.        root.example.com.

SOA записи в db.192 должно быть точно таким же, как db.example.com, не нужно писать 1.168.192.in-addr.arpa..

Опять же, ваши записи NS и PTR неверны, они должны быть:

@       IN      NS      "B's hostname".example.com.
2       IN      PTR     "B's hostname".example.com.

Надеюсь, я что-то не пропустил, но последний совет Bind9 поставляется с двумя скриптами. named-checkzone и named-checkconf. Первый может проверить файл зоны (т.е. db.192 и db.example.com), а последний может проверить конфигурацию Bind9 (т.е. named.conf.local).

Если вам интересно лучше понять, как Bind9 (и dns), вам следует взглянуть на Zytrax Pro DNS и привязка которые очень хорошо объясняют параметры конфигурации с большим количеством примеров.