Настройка DNS на виртуальной машине без интернета

Я пытаюсь настроить DNS-сервер на моем виртуальном компьютере без подключения к Интернету.

Я использую PowerDNS с серверной частью BIND.

Вот моя конфигурация зоны:

$ORIGIN example.com.
$TTL 86400
@   IN  SOA example2.com. (
        2017020401   ; serial
        3600         ; refresh
        1800         ; retry
        604800       ; expire
        86400 )      ; minimum TTL
example.com.  172800  IN  NS  example1.com.
example.com.  172800  IN  NS  example2.com.
example.com.  172800  IN  NS  example3.com.

Я тестирую сервер с помощью команды dig, которая выглядит так:

root@osboxes:~# dig example.com @127.0.0.1 -p 5301

; <<>> DiG 9.16.1-Ubuntu <<>> example.com @127.0.0.1 -p 5301
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13819
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;example.com.           IN  A

;; AUTHORITY SECTION:
example.com.        3600    IN  SOA example2.com. 2017020401.example.com. 3600 1800 604800 86400 3600

;; Query time: 180 msec
;; SERVER: 127.0.0.1#5301(127.0.0.1)
;; WHEN: Wed Feb 03 16:45:50 EST 2021
;; MSG SIZE  rcvd: 96

Я хочу, чтобы запрос был делегирован другим серверам example1.com, example2.com и example3.com.

Для этого мне нужно иметь мои записи NS в РАЗДЕЛЕ AUTHORITY вывода dig. Однако этого не происходит, есть только запись SOA. Я попытался удалить запись SOA, но после этого у меня нет записи в РАЗДЕЛЕ AUTHORITY. Может кто-нибудь помочь мне решить эту проблему, пожалуйста? Что мне не хватает?

РЕДАКТИРОВАТЬ: добавление конфигурации

recursor.conf

local-address=0.0.0.0
local-port=5301
allow-from=127.0.0.0/8, 10.0.0.0/8
forward-zones=example.com=127.0.0.1:5300
pdns.conf

launch=bind
bind-config=/etc/powerdns/named.conf
local-address=127.0.0.1
local-port=5300
named.conf

zone "example.com" IN {
        type slave;                           # type of zone
        file "/var/lib/powerdns/zone.net"; # location of forward zone file
        allow-query { any; };
};
/var/lib/powerdns/zone.net

$ORIGIN example.com.
$TTL 86400
@   IN  SOA example2.com. (
        2017020401   ; serial
        3600         ; refresh
        1800         ; retry
        604800       ; expire
        86400 )      ; minimum TTL
example.com.  172800  IN  NS  example1.com.
example.com.  172800  IN  NS  example2.com.
example.com.  172800  IN  NS  example3.com.

person kamil1stcz2    schedule 03.02.2021    source источник


Ответы (1)


РЕДАКТИРОВАТЬ

Я предполагаю, что вы используете BIND9. Если да, вам нужно установить minimal-responses на no в разделе options. Скорее всего он находится в /etc/bind/named.conf.options, если его там нет, то проверьте /etc/bind/named.conf.

Я нашел это в readthedocs для BIND, прокрутите немного вниз, и вы увидите выделенные минимальные ответы.

КОНЕЦ РЕДАКТИРОВАТЬ

Запрос на раскопки, который вы пробовали, относится, например, к типу A example.com, который является адресом IPv4. В вашем файле зоны нет записей A для example.com, поэтому вы можете добавить одну, например:

example.com.  172800  IN  A  1.2.3.4

Тогда ваш запрос на раскопки для example.com должен вернуть 1.2.3.4 в разделе ответов и записи NS в разделе полномочий (хотя это может зависеть от конфигурации вашего DNS-сервера).

Если вы добавите записи A (или AAAA) для примеров example1.com, example 2.com и example3.com, а затем снова выполните команду dig, вы, вероятно, получите эти записи A в дополнительном разделе. (IIRC, известный как клей)

Еще немного предыстории. Ответ, который вы получили на свой запрос на раскопки, часто называют ответом «Нет данных». Это означает, что есть запись для имени, которое вы искали (example.com), но она другого типа (NS), чем та, которую вы запрашивали (A), поэтому она возвращает NOERROR rcode без ответа (нет раздела ответов) . Если вы запросите имя, которого вообще не существует, вы получите то же самое (без раздела ответа), но rcode NXDOMAIN вместо NOERROR.

person kimbo    schedule 05.02.2021
comment
Да, после добавления строки в файл возвращается ответ 1.2.3.4, как и ожидалось. Однако записи NS по-прежнему нет в разделе полномочий, но это то, что мне нужно в моей настройке. Я не возражаю, что я не получаю никакого ответа, мне просто нужно делегировать серверы имен, которые отображаются как записи IN NS, это означает, что я хочу, чтобы они были в разделе полномочий. - person kamil1stcz2; 05.02.2021
comment
Хорошо, только что отредактировал мой ответ, оказывается, вам нужно установить minimal-responses на no в вашем предложении options (при условии, что вы используете BIND) - person kimbo; 05.02.2021
comment
Пробовал, но не помогло к сожалению. Я использую PowerDNS с серверной частью BIND. (отредактированный вопрос) - person kamil1stcz2; 06.02.2021
comment
Ладно, в таком случае, я думаю, тебе не повезло. Я не думаю, что PowerDNS включает раздел полномочий, поскольку записи полномочий не нужны. См. mailman.powerdns.com/pipermail/pdns-users/2009. -June/006124.html и doc.powerdns.com/authoritative/appendices/ - person kimbo; 06.02.2021
comment
PowerDNS не позволяет делегировать другим серверам имен? Лучше использовать другой софт или? - person kamil1stcz2; 07.02.2021
comment
Нет, на самом деле я знаю кого-то, у кого есть несколько экземпляров BIND за PDNS, и они возвращают авторитетные записи. Вы перезапустили BIND после изменения конфигурации? - person kimbo; 07.02.2021
comment
Да, после каждого внесенного изменения я перезапускаю и рекурсор, и сервер имен. Я могу опубликовать остальную часть моей установки, если это необходимо. - person kamil1stcz2; 07.02.2021
comment
Добавил остальные настройки в основную тему - person kamil1stcz2; 08.02.2021
comment
У вас должно быть options { minimal-responses: no; }; где-то в вашем named.conf - person kimbo; 09.02.2021
comment
Кроме того, idk, если это имеет значение, но ваши записи NS не являются частью родительской зоны example.com. Если вы хотите, чтобы они находились в одной зоне, они должны быть ns1.example.com, ns2.example.com и так далее. Опять же, не знаю, повлияет ли это на что-то, просто то, что я заметил. - person kimbo; 09.02.2021
comment
Не стесняйтесь отмечать приведенное выше как принятый ответ и / или голосовать за него, если вы считаете, что это было полезно. - person kimbo; 22.07.2021