Мой домен — 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-адрес сервера имен, который вы тестируете)