Мне нужна помощь в настройке DNS-сервера в Debian 9 (Stretch). Я следуюэтот урок, но мне кажется, что я что-то делаю не так...
В моем случае предположим, что я являюсь владельцем домена example.com, а мой сервер имеет IP-адрес: 203.0.113.141.
Прежде всего, я создал зоны в своем named.conf.local
файле. Теперь этот файл выглядит так:
zone "example.com" IN { // Domain name
type master; // Primary DNS
file "/etc/bind/fwd.example.com.db"; // Forward lookup file
allow-update { none; }; // Since this is the primary DNS, it
}; // should be none.
zone "141.ip-203-0-113.net" IN { // Reverse lookup name, it was given from my server provider
type master; // Primary DNS
file "/etc/bind/rev.example.com.db"; //Reverse lookup file
allow-update { none; }; //Since this is the primary DNS, it should be none.
};
После этого я создал оба файла со следующим содержимым:
fwd.example.com.db:
$TTL 604800
@ IN SOA example.com. root.example.com. (
21 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
;Name Server Information
IN NS dns.example.com.
;IP address of Name Server
dns IN A 203.0.113.141
rev.example.com.db:
$TTL 604800
@ IN SOA example.com. root.example.com. (
21 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
;@ IN NS localhost.
;1.0.0 IN PTR localhost.
;Name Server Information
IN NS dns.example.com.
;Reverse lookup for Name Server
141 IN PTR dns
Запуск команд named-checkconf
и named-checkzone
после настройки этих файлов дает мне правильный вывод, без ошибок.
Я также перезапустил bind9
службу. Но когда я пытаюсь проверить dns dig
командой, ответ не такой, как ожидалось.
Команда dig example.com
выводит:
; <<>> DiG 9.10.3-P4-Debian <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53052
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com. IN A
;; AUTHORITY SECTION:
example.com. 604800 IN SOA example.com. root.example.com. 21 604800 86400 2419200 604800
;; Query time: 0 msec
;; SERVER: 203.0.113.141#53(203.0.113.141)
;; WHEN: Sat Sep 01 09:05:29 EDT 2018
;; MSG SIZE rcvd: 81
Согласно инструкции, которой я следовал, я ожидал увидеть строку вроде:
;; ANSWER SECTION:
www.example.com. 604800 IN A 203.0.113.141
Но в этом выводе его нет.
Кроме того, когда я проверяю обратный поиск с помощью dig -x 203.0.113.141
, вывод не показывает ничего, связанного с моим доменом example.com:
; <<>> DiG 9.10.3-P4-Debian <<>> -x 203.0.113.141
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42358
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;141.113.0.203.in-addr.arpa. IN PTR
;; ANSWER SECTION:
141.113.0.203.in-addr.arpa. 86400 IN PTR 141.ip-203-0-113.net.
;; AUTHORITY SECTION:
0.203.in-addr.arpa. 66624 IN NS ns10.ovh.ca.
0.203.in-addr.arpa. 66624 IN NS dns10.ovh.ca.
;; Query time: 893 msec
;; SERVER: 54.39.21.141#53(54.39.21.141)
;; WHEN: Sat Sep 01 09:12:51 EDT 2018
;; MSG SIZE rcvd: 132
Опять же, следуя руководству, я ожидал другой РАЗДЕЛ ОТВЕТОВ, с моим доменным именем.
Итак, как вы думаете, может ли быть какая-то неправильная конфигурация в каком-либо из этих файлов?
решение1
Итак, здесь задаются два вопроса.
В1: Почему я не вижу запись A для «www.example.com»?
На это есть две причины. Во-первых, вы не запросили запись A для 'www.example.com'; во-вторых, вы не определили такую запись A. В файле прямой зоны вам следует добавить следующую строку:
www IN A 203.0.113.141
а затем запросить эту запись с помощью dig www.example.com
.
Я предполагаю, что вы также хотите, чтобы и "example.com", и "www.example.com" указывали на один и тот же веб-сервер, в этом случае вам также нужно добавить запись A для самого apex (домена). Для этого вам следует добавить эту строку:
example.com. IN A 203.0.113.141
У вас уже есть запись NS и SOA для этой вершины, но для того, чтобы перейти к ней, вам также понадобится запись A.
В2: Почему я не вижу желаемого результата для своей записи PTR?
Мне нужно отредактировать этот ответ. Ответ, который вы получили, кажется мне правильным, хотя это не то, что вы ожидали увидеть.
Редактировать: Я думал о "CNAME-хаке", при котором ваш провайдер создает CNAME, указывающий на поддомен и дающий вам контроль над этим поддоменом. Но поскольку провайдер предоставляет запись PTR, я бы сначала связался с ними и попросил подробности о том, как они хотят, чтобы вы настроили запись PTR для этого IP-адреса (если вам вообще разрешено это делать).