Я пытался настроить привязку 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 и привязка которые очень хорошо объясняют параметры конфигурации с большим количеством примеров.