как создать файл зоны DNS

как создать файл зоны DNS

Мой домен — easydata.ir, и я создаю файл зоны для своего домена, но когда я использую команду «dig», она возвращает:

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> ns1.easydata.ir
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 41395
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;ns1.easydata.ir.               IN      A

;; Query time: 136 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Jan 22 00:17:20 EST 2020
;; MSG SIZE  rcvd: 44

поэтому я выложил свой файл конфигурации, пожалуйста, скажите мне, как правильно его настроить.

$TTL 86400;
@ IN SOA ns1.easydata.ir. root.easydata.ir. (
  2013042201 ;Serial
  3600 ;Refresh
  1800 ;Retry
  604800 ;Expire
  86400 ;Minimum TTL ) ; add nameservers
@ IN NS ns1.easydata.ir. 
@ IN NS ns2.easydata.ir. ;IN MX 10 mail.easydata.ir.
ns1 IN A 198.143.181.237
ns2 IN A 198.143.181.237
www IN A 198.143.181.237
ftp IN A 198.143.181.237

Hera — это мой файл /etc/named.conf. Пожалуйста, скажите, правильный ли он.

options {
        listen-on port 53 { 127.0.0.1; 198.143.181.237;};
        #listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { localhost; 87.107.219.167; };

        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.root.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

zone "easydata.ir" IN {
                type master;
                file "easydata.ir.zone";
                allow-update { none; };
        };

решение1

Беглый взгляд на рассматриваемый домен показывает, что делегирование выглядит следующим образом:

;; AUTHORITY SECTION:
easydata.ir.            1440    IN      NS      ns1.easydata.ir.
easydata.ir.            1440    IN      NS      ns2.easydata.ir.

;; ADDITIONAL SECTION:
ns1.easydata.ir.        1440    IN      A       198.143.181.237
ns2.easydata.ir.        1440    IN      A       198.143.181.237

(Примечание: ns1 и ns2, по-видимому, имеют один и тот же IP-адрес, что делает существование двух NSзаписей бессмысленным, поскольку очевидно, что все равно имеется одна точка отказа.)

Однако запрос 198.143.181.237приводит к ответу со статусом REFUSED(т. е. сервер имен настроен так, чтобы не разрешать запросы для этой зоны, или зона вообще не существует).

$ dig @198.143.181.237 easydata.ir NS +norec

; <<>> DiG 9.11.14-RedHat-9.11.14-2.fc31 <<>> @198.143.181.237 easydata.ir NS +norec
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 49376
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 921222c5e444e2602d3491645e282d41475c2ae33ad32e29 (good)
;; QUESTION SECTION:
;easydata.ir.                   IN      NS

;; Query time: 106 msec
;; SERVER: 198.143.181.237#53(198.143.181.237)
;; WHEN: Wed Jan 22 11:08:49 UTC 2020
;; MSG SIZE  rcvd: 68

$

Проверьте конфигурацию ( named.confили указанный в ней файл с помощьюinclude), в частности, что соответствующиеzoneзапись на месте и есть лиallow-*директивы в разделах zoneили options, которые запрещают запросы.

В частности, эта строка в вашей конфигурации выглядит проблемной, поскольку она серьезно ограничивает круг лиц, которым разрешено запрашивать ваш сервер имен:

allow-query     { localhost; 87.107.219.167; };

Вероятно, наиболее правильным решением будет закомментировать или полностью удалить эту строку.

решение2

Предположим, что у вас уже есть основной сервер имен, который является авторитетным источником для представляемого им домена, и вы изменили named.conf, чтобы создать свой домен (например, Example.com), вам необходимо:

  • создайте два новых файла — файлы прямой и обратной зоны, которые вы поместите в каталог /var/named. Это местоположение указывается директивой "directory" в файле конфигурации named.conf.

Создайте файл прямой зоны

Файл зоны пересылки содержит записи "A", которые связывают имена хостов в зоне, также известной как домен, с их соответствующими IP-адресами. Он также может содержать записи CNAME, которые являются псевдонимами для настоящих имен хостов в записях A, и записи MX для почтовых серверов.

Вам нужно создать базовый файл прямой зоны, /var/named/example.com.zone, и добавить в него следующие строки. Ваш файл зоны должен выглядеть как в примере ниже:

; Authoritative data for example.com zone
;
$TTL 1D
@   IN SOA  serv.example.com   root.serv.example.com. (
                                       2020012201      ; serial
                                       1D              ; refresh
                                       1H              ; retry
                                       1W              ; expire
                                       3H )            ; minimum

$ORIGIN         example.com.
example.com.            IN      NS      serv.example.com.
epc                     IN      A       127.0.0.1
server                  IN      A       192.168.2.1
www                     IN      CNAME   server
mail                    IN      CNAME   server
test1                   IN      A       192.168.2.24
t1                      IN      CNAME   test1

; Mail server MX record
example.com.            IN      MX      10      mail.example.com.

Первая строка без комментариев — это TTL, который в данном случае составляет один день для всех записей (D означает Day). Спецификаторы в строке SOA (Start of Authority) столь же очевидны.

Запись NS должна содержать FQDN (полное доменное имя) хоста. В файле также должна быть запись A с действительным IP-адресом хоста. Для тестирования следует использовать IP-адрес localhost 127.0.0.1. В противном случае — реальный IP-адрес.

Вам следует использовать сегодняшнюю (текущую дату) дату и добавить счетчик, начинающийся с 01, для серийного номера. Серийный номер выше — это первое изменение 2020.01.22. Серийный номер увеличивается при каждом изменении файла зоны. Если бы были вторичные серверы имен, которые использовали этот для первичного, они бы не обновлялись, пока серийный номер не был бы увеличен.

Теперь вам нужно добавить файлы прямой зоны в named.conf

Однако, прежде чем ваш DNS-сервер заработает, вам необходимо создать запись в /etc/named.conf, которая будет указывать на ваш новый файл зоны. Добавьте следующие строки под записью для зоны подсказок верхнего уровня, но перед строками "include".

zone "example.com" IN {
        type master;
        file "example.com.zone";
};
  • перезапуск по имени
  • проведите тесты с помощью команд dig и nsloookup:

    копать test1.example.com

    dig mx example.com

    nslookup test1.example.com

    копать www.amd.com

Имейте в виду, что использование FQDN для этих команд необходимо, за исключением команды nslookup, пока домен и записи поиска Example.com указаны в файле /etc/resolv.conf. Если это не так, просто используйте FQDN для всех тестов.

После этого вы будете готовы начать использовать корневые серверы имен, если это необходимо.

решение3

В результатах поиска вы видите, среди прочего, что ответ, который вы получаете, исходит от публичных резолверов Google.

;; SERVER: 8.8.8.8#53(8.8.8.8)

При тестировании собственного сервера имен и зон DNS вам необходимо указать, digчто нужно запрашивать собственный сервер имен, а не использовать те, которые есть /etc/resolve.confв

dig ns1.example.com. @127.0.0.1

(или какой там IP-адрес сервера имен, который вы тестируете)

Связанный контент