У меня есть сервер BIND ubuntu в качестве частного DNS-сервера для com
зоны и два хоста (веб-сервера). Три из них являются виртуальными хостами, использующими virtual box, и соединяются вместе с помощью карты виртуального хоста.
У меня есть следующий файл конфигурации на DNS-сервере для прямого разрешения:
$TTL 604800
@ IN SOA dns1.com. admin.com. (
19 ; Serial
604820 ; Refresh
86600 ; Retry
2419600 ; Expire
604600 ) ; Negative Cache TTL
; name servers - NS records
IN NS dns1.com.
; name servers - A records
dns1.com. IN A 192.168.56.3
; 192.168.56.0/24 - A records
@ IN NS dns1.com.
host1. IN A 192.168.56.7
host2. IN A 192.168.56.8
Я пытаюсь подключиться к обоим хостам, используя их доменное имя. Первый открывается правильно. Второй не может открыться никогда.
Оба pingaple. Вот результат ping второго хоста с моей машины: C:\Users\e>ping 192.168.56.8
Pinging 192.168.56.8 with 32 bytes of data:
Reply from 192.168.56.8: bytes=32 time<1ms TTL=64
Reply from 192.168.56.8: bytes=32 time<1ms TTL=64
Reply from 192.168.56.8: bytes=32 time<1ms TTL=64
Я могу разрешить host2.com, если использую локальный host
файл на своей машине Windows, добавив следующую запись:
192.168.56.8 host2.com
Я не могу понять, почему мой DNS-сервер не может разрешить, host2
но может разрешить host1
?
Вот named.conf.local
файл:
zone ".com" {
type master;
file "/etc/bind/forward.host1.com";
};
zone "56.168.192.in-addr.arpa"{
type master;
file "/etc/bind/reverse.host1.com";
};
Я не думаю, что имена файлов forward.host1.com
reverse.host1.com
как-то влияют на разрешение? Не правда ли?
РЕДАКТИРОВАТЬ: Для проверки конфигураций:
/etc/bind$ sudo named-checkzone com forward.host1.com
forward.host1.com:20: ignoring out-of-zone data (host1)
forward.host1.com:21: ignoring out-of-zone data (host2)
zone com/IN: loaded serial 19
OK
Может ли кто-нибудь объяснить мне, почему я не могу разрешить host2?
EDIT: После предложенного ответа файл был обновлен до следующего, но без всякой надежды. Теперь я не могу связаться ни с host1, ни с host2, хотя они работают и я могу связаться с ними по IP:
$TTL 604800
@ IN SOA dns1.com. admin.com. (
24 ; Serial
604820 ; Refresh
86600 ; Retry
2419600 ; Expire
604600 ) ; Negative Cache TTL
; name servers - NS records
IN NS dns1.com.
; name servers - A records
dns1.com IN A 192.168.56.3
; 192.168.56.0/24 - A records
@ IN NS dns1.com.
host1 IN A 192.168.56.7
host2 IN A 192.168.56.8
решение1
Похоже, у вас возникли некоторые трудности, поэтому вот два (надеюсь) рабочих примера для вас. Обратите внимание, что первый вариант (зона .com
) скорее всего предотвратит разрешение обычных .com
доменов (например google.com
). Второй вариант ( dns1.com
зона) лишен этого недостатка.
Примеры .com
файлов зоны
бывший. /etc/bind/named.conf.local
; "db.com.tld" is a random name - use whatever you like.
; The same goes for "db.rev.192".
;
; Likewise, you can adjust your "allow-transfer" settings,
; etc. as needed.
zone "com." IN {
type master;
file "/etc/bind/zones/db.com.tld";
allow-transfer { none; };
};
zone "56.168.192.in-addr.arpa" IN {
type master;
file "/etc/bind/zones/db.rev.192";
allow-transfer { none; };
};
бывший. /etc/bind/zones/db.com.tld
; BIND data file for TLD ".com"
;
; This will likely break real ".com" websites (i.e. anything not listed here).
$TTL 3600
@ IN SOA com. admin.com. (
2018040501 ; Serial
604800 ; Refresh period
86400 ; Retry interval
2419200 ; Expire time (28 days... later)
604800 ) ; Negative Cache TTL (1 week)
; Name Servers - NS records
@ IN NS ns1.com. ; This is required
@ IN NS ns2.com. ; You should have two name servers
; Name Servers - A records
ns1 IN A 192.168.56.3 ; This is required
ns2 IN A 192.168.56.3 ; You should have two name servers
; Our domains/sub-domains
dns1 IN A 192.168.56.3 ; dns1.com
host1.dns1 IN A 192.168.56.7 ; host1.dns1.com
host2.dns1 IN A 192.168.56.8 ; host2.dns1.com
Обратите внимание, что использование такой точки допустимо, хотя в данном случае это, возможно, излишне:
;ok.period.com. IN A 192.168.56.3 ; ok.period.com -> FQDN
И вот чего вам следует избегать:
;no.period. IN A 192.168.56.3 ; Don't use periods for sub-domains
;no.period.com IN A 192.168.56.3 ; While this works, this is actually accessed as no.period.com.com!
бывший. /etc/bind/zones/db.rev.192
; BIND reverse data file.
; The domain, etc. used should be a listed 'zone' in named.conf.
$TTL 86400
@ IN SOA com. admin.com. (
2018040501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
; In this case, the number just before "PTR" is the last octet
; of the IP address for the device to map (e.g. 192.168.56.[3])
; Name Servers
@ IN NS ns1.com.
@ IN NS ns2.com.
; Reverse PTR Records
3 IN PTR dns1.com.
7 IN PTR host1.dns1.com.
8 IN PTR host2.dns1.com.
Обратите внимание, что настройка выше, вероятно, ограничивает ваши возможности в отношении доступа ваших машин к .com
доменам, отличным от тех, которые вы создаете (т.е. они, скорее всего, не смогут получить к ним доступ). Если вы хотите, чтобы они имели доступ к иностранным .com
доменам, вы можете попробовать более узкий подход ниже.
Примеры dns1.com
файлов зоны
бывший. /etc/bind/named.conf.local
; "db.dns1.com" is a random name - use whatever you like.
;
; Likewise, you can adjust your "allow-transfer" settings,
; etc. as needed.
zone "dns1.com" IN {
type master;
file "/etc/bind/zones/db.dns1.com";
allow-transfer { none; };
};
Вы можете использовать тот же named.conf.local
вход в обратную зону, что и выше.
бывший. /etc/bind/zones/db.dns1.com
; BIND data for http://dns1.com
$TTL 3600
@ IN SOA ns1.dns1.com. admin.dns1.com. (
2018040501 ; Serial
604820 ; Refresh
86600 ; Retry
2419600 ; Expire
604600 ) ; Negative Cache TTL
; Name Servers - NS records
@ IN NS ns1.dns1.com. ; This is required
@ IN NS ns2.dns1.com. ; You should have two name servers
; Name Servers - A records
ns1 IN A 192.168.56.3 ; This is required
ns2 IN A 192.168.56.3 ; You should have two name servers
; Our domains/sub-domains
dns1.com. IN A 192.168.56.3 ; dns1.com
host1 IN A 192.168.56.7 ; host1.dns1.com
host2 IN A 192.168.56.8 ; host2.dns1.com
бывший. /etc/bind/zones/db.rev.192
; BIND reverse data file.
; The domain, etc. used should be a listed 'zone' in named.conf.
$TTL 86400
@ IN SOA dns1.com. admin.dns1.com. (
2018040501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
; In this case, the number just before "PTR" is the last octet
; of the IP address for the device to map (e.g. 192.168.56.[3])
; Name Servers
@ IN NS ns1.dns1.com.
@ IN NS ns2.dns1.com.
; Reverse PTR Records
3 IN PTR dns1.com.
7 IN PTR host1.dns1.com.
8 IN PTR host2.dns1.com.
решение2
Ваш файл зоны неверен - в строках 20 и 21, как и предлагалось. В частности, в нем не должно быть "." после host1 и host2.
Точка . означает, что это абсолютно, а не относительно зоны, поэтому он не соответствует доменному имени host1 и не имеет записи для host1.com.