DNS настройка · 10 min read · Oct 02, 2025

Настройка собственного сервиса имен (DNS) с ISPConfig

Интернет работает с IP-адресами, и для получения IP-адреса из доменного имени используется система доменных имен (DNS). Вы можете настроить собственный сервис имен или использовать, например, сервис имен вашего хостинг-провайдера. В любом случае вы настраиваете соответствие между Полным Квалифицированным Доменным Именем и IP-адресом. Например, FQDN mail.howtoforge.com имеет адрес 78.46.214.220.

В этом руководстве используется доменное имя xyzzy.tld. Имя хоста — это имя, данное хосту, например, foobar. Сочетание имени хоста и доменного имени дает Полное Квалифицированное Доменное Имя (FQDN), например, foobar.xyzzy.tld.

Если домен будет использоваться за пределами вашей организации, домен должен быть зарегистрирован. Регистратор запрашивает два сервера имен. По крайней мере, некоторые регистраторы позволяют зарегистрировать домен сначала, а сервера имен можно указать позже, возможно, в течение одного месяца. Но регистратор угрожает отозвать ваше доменное имя, если не будет предоставлено два работающих сервера имен.

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

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

Часть этого руководства, касающаяся ISPConfig, предполагает, что установлена многосерверная конфигурация, с одним хостом, на котором установлено все, кроме сервиса имен, и двумя хостами для сервиса имен. Всего три хоста. Имена хостов: web, ns1 и ns2. Вы можете использовать только два хоста, если web также выполняет функции сервиса имен, а другой хост также является сервером имен.

Сервис имен имеет записи, несколько видов. Установите A-записи на IP-адреса ваших хостов. Если используется IPv6, это AAAA-запись. Если у вас три хоста, настройте три A-записи. Установите две NS-записи на имена хостов серверов имен.

Соберите необходимую информацию следующим образом:

хост или доменIP-адресИспользуется для
xyzzy.tld192.168.260.71адрес веб-страницы
web192.168.250.71веб-сервер
ns1192.168.250.73сервер имен
ns2192.168.258.75сервер имен

1.1 Использование ISPConfig 3.x

Установите три хоста и ISPConfig на них, используя многосерверную конфигурацию. Я использовал Debian GNU/Linux 9.5 и ISPConfig 3.1.12 при тестировании этого руководства.

Если вы планируете иметь несколько доменов, проще настроить шаблоны DNS. См. главу 4.8.1.3 Шаблоны в руководстве ISPConfig. Здесь добавлен только один домен, поэтому шаблоны не используются.

Перейдите на вкладку DNS и нажмите “Добавить новую зону DNS вручную”. Эта зона является конфигурационным файлом для вашего домена, вы можете считать, что это более или менее то же самое, что и домен, который вы хотите использовать.

Скриншоты показывают, как заполнить форму зоны DNS. Если вы настраиваете эту зону для клиента, введите клиента в форму. Вы можете оставить это поле пустым, если настраиваете эту зону для себя или не хотите создавать клиентов в ISPConfig.

Форма зоны DNS в ISPConfig

Сохраните и перейдите на вкладку Записи.

DNS Записи

На вкладке Записи добавьте записи, нажав зеленую кнопку для нужной записи. Например, чтобы получить A-запись, нажмите зеленую кнопку с A. При написании FQDN имен хостов не забудьте добавить точку “.” в конце имени. Некоторые поля в формах DNS ISPConfig требуют этого для создания правильно работающей записи сервиса имен. Проще всегда писать это, чем помнить, где это не нужно.

Вы можете добавить больше записей, если хотите.

Красный шарик с номером в верхней части окна панели ISPConfig показывает, что сохранение на диск в процессе. Номер показывает, сколько записей еще нужно записать. Подождите две минуты или пока красный шарик не исчезнет, прежде чем тестировать, иначе вы можете тестировать старые настройки.

Если вам нужно больше серверов имен, или, возможно, у вас был только один хост, на котором вы установили ISPConfig, вы можете добавить хосты в настройку ISPConfig. Для хостов, которые выполняют только сервис имен, даже небольшой хост достаточен. Если вы можете установить Linux и ISPConfig на хост и у него есть статический IP-адрес, вы можете использовать его в качестве сервера имен. Вы можете запустить его в своем офисе или дома, но статический IP-адрес может быть трудно получить или дорого. Хостинг-провайдеры предлагают небольшие и дешевые варианты, и вы можете получить этот статический IP-адрес. Вы можете настроить многосерверную конфигурацию ISPConfig, где один хост находится где-то, а другой хост — где-то еще.

Если вы запутались, прочитайте руководство ISPConfig.

1.2 Использование сервиса имен провайдеров

Пропустите это, если вы уже использовали ISPConfig для настройки сервиса имен.

Если ваши хосты находятся у хостинг-провайдера, они, вероятно, предлагают DNS-сервис для своих клиентов. Или вы можете найти провайдера DNS-сервиса.

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

Прочитайте предыдущую главу и адаптируйте к форме ввода вашего провайдера.

Хостинг-провайдер или провайдер DNS, скорее всего, управляет набором серверов имен, и все клиенты DNS используют их. Серверы имен, вероятно, называются ns1.yourprovider.com, ns2.yourprovider.com. Провайдер может предложить glue-записи, чтобы ваши серверы имен отображались как ns1.xyzzy.tld, ns2.xyzzy.tld. Изучите инструкции вашего провайдера, если glue-записи доступны и как их использовать.

1.3 Тестирование

Не забудьте проверить, что сервис имен теперь работает правильно. Войдите в хост ns1 или ns2 и начните тестирование. Этот пример работает на Debian GNU/Linux 9.5 Stretch, я предполагаю, что Ubuntu почти такой же. Другие операционные системы могут отличаться. Если вы тестируете на Windows, у него нет команды host, используйте вместо этого nslookup.

root@ns1:~# host web.xyzzy.tld 192.168.250.73
Using domain server:
Name: 192.168.250.73
Address: 192.168.250.73#53
Aliases: 

web.xyzzy.tld has address 192.168.250.71
root@ns1:~#

Вышеуказанный тест показывает, что используемый сервер имен — 192.168.250.73, и он разрешает имя web.xyzzy.tld в IP-номер 192.168.250.71, что и требуется в данном случае. Тестирование таким образом полезно, потому что

  • команда host тестирует сервис имен, если вы пингует имя хоста, оно может сначала искать в файле /etc/hosts и, таким образом, может вообще не тестировать сервис имен.
  • IP-номер в команде host после FQDN — это адрес серверов имен, куда отправляется запрос. Таким образом, мы уверены, что тестируем сервер имен, который только что настроили.
  • IP-номер используется для сервера имен вместо имени хоста, так как если сервис имен не работает, имя может не разрешаться в предполагаемый IP-номер, поэтому лучше использовать IP-адрес напрямую.

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

  • Если возвращаемый IP-адрес неверный, исправьте его
  • Если не найдено, проверьте написание
  • Если не найдено, проверьте точку в конце FQDN в ISPConfig, где вы написали имена
  • Если “время соединения истекло, серверы не могут быть достигнуты”: сервер имен не работает или потеряно сетевое соединение. Проверьте сеть, пингуя IP-номер, например. Проверьте, работает ли хост. Проверьте, работает ли сервис имен, на Debian и Ubuntu с systemctl status bind9.service.
  • Если все вышеперечисленное не позволяет получить работающий сервис имен, перейдите к главе Инструменты.

Проверьте информацию о зоне, особенно серверы имен, следующим образом:

root@ns1:~# dig @192.168.250.73 xyzzy.tld

; <<>> DiG 9.10.3-P4-Debian <<>> @192.168.250.73 xyzzy.tld
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64352
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xyzzy.tld. IN A

;; ANSWER SECTION:
xyzzy.tld. 3600 IN A 192.168.250.71

;; AUTHORITY SECTION:
xyzzy.tld. 3600 IN NS ns1.xyzzy.tld.
xyzzy.tld. 3600 IN NS ns2.xyzzy.tld.

;; ADDITIONAL SECTION:
ns1.xyzzy.tld. 3600 IN A 192.168.250.73
ns2.xyzzy.tld. 3600 IN A 192.168.250.75

;; Query time: 0 msec
;; SERVER: 192.168.250.73#53(192.168.250.73)
;; WHEN: Fri Aug 10 15:41:53 EEST 2018
;; MSG SIZE rcvd: 122

root@ns1:~#

Dig получает сервер имен, к которому он отправляет запрос, из параметра @. Укажите IP-номер сервера имен там.

Если dig показывает NS-записи правильно и правильные IP-адреса для серверов имен в A-записях, значит, все выглядит хорошо.

Теперь выполните вышеуказанный тест, используя другой сервер имен, вам не нужно входить в ns2, просто снова выполните команды, но используйте IP-номер другого сервера. Это необходимо, чтобы убедиться, что и другой сервер имен работает так, как должен.

Вы можете протестировать дальше, настроив вашу рабочую станцию на использование этих новых серверов имен, которые вы настроили. Вам нужно изменить DNS-серверы на вашей рабочей станции, посмотрите, как это сделать для вашей операционной системы в руководстве или в Интернете. В Linux вы можете отредактировать файл /etc/resolv.conf. В Windows это в настройках сети (в том же месте, где вы настраиваете автоматическое получение IP-адреса).

1.4 Обратный сервис имен

Пропустите это, если вам не нужен обратный сервис имен (записи PTR).

Обратный сервис имен разрешает имя, когда дан IP-адрес. Это обратная операция обычного сервиса имен.

Если вы настроили сервис имен внутри вашей организации, вы можете настроить обратный сервис имен на тех же серверах имен. При использовании ISPConfig сначала создайте обратную зону, а затем создайте записи PTR в этой зоне для каждого IP-номера, который у вас есть.

Если обратный сервис имен должен работать из публичного Интернета, то вы не можете использовать свой собственный сервер имен, так как он, скорее всего, не является авторитетным сервером имен для обратной зоны IP. Если это так, вы должны это знать. Свяжитесь с вашим провайдером услуг или компанией, которая предоставила вам ваши IP-номера, и попросите их настроить обратный сервис имен. Сообщите им записи PTR, которые вам нужны, или узнайте, как использовать веб-интерфейс, который, вероятно, предоставляет хостинг-компания для использования обратного сервиса имен.

Чтобы настроить обратный сервис имен с ISPConfig, создайте зону DNS для обратного сервиса, она должна быть названа первыми тремя октетами IP-номера в обратном порядке с добавлением “ .in-addr.arpa” в конце. В этом случае IP-номера из подсети 192.168.250/24, поэтому обратная зона называется 250.168.192.in-addr.arpa. Не забудьте также добавить NS-записи в обратную зону.

Обратная зона

В этой обратной зоне создайте записи PTR следующим образом:

Записи PTR

Тестирование легко с помощью команды host, следующим образом:

root@ns1:~# host 192.168.250.71 192.168.250.73
Using domain server:
Name: 192.168.250.73
Address: 192.168.250.73#53
Aliases: 

71.250.168.192.in-addr.arpa domain name pointer web.xyzzy.tld.

Возможно настроить множество записей PTR для одного и того же IP-номера. Тогда обратный запрос вернет все из них. Вы, возможно, не захотите этого, поэтому не делайте этого, если не знаете, что делаете.

Если вы настроили почтовый сервер, например, mail.xyzzy.tld, вам нужно настроить запись PTR, так как большинство почтовых серверов проверяют, что отправляющий IP-номер разрешается в имя хоста, которое использует почтовый сервер.

1.5 Инструменты

Если вы подозреваете, что сервис имен не запущен, проверьте с помощью

systemctl status bind9.service

Если он показывает “Active: active (running) …”, значит, сервис имен работает. Не беспокойтесь о возможных строках “network unreachable resolving … AAAA “, если вы их получаете, это означает, что у вас нет доступной сети IPv6.

Если сервис имен работает, но тестирование с помощью команды host не возвращает ответов, возможно, файл зоны поврежден. Используйте named-checkzone, если bind не принимает зону. Поврежденный файл зоны (на Debian GNU/Linux) находится в /etc/bind/pri<имя зоны>.err, то есть .err добавляется в конец имени файла. Проверьте так:

root@ns1:~# named-checkzone 250.168.192.in-addr.arpa /etc/bind/pri.250.168.192.in-addr.arpa.err
zone 250.168.192.in-addr.arpa/IN: has no NS records
zone 250.168.192.in-addr.arpa/IN: not loaded due to errors.
root@ns1:~#

Исправьте ошибки в ISPConfig, если вы настраивали его с помощью панели ISPConfig.

Возможно, есть ошибки в файле журнала, остановите и запустите сервис имен и посмотрите, что в файле /var/log/syslog. Например, с помощью

grep named /var/log/syslog

Существуют веб-сайты, которые проверяют вашу настройку сервиса имен, вы можете использовать поисковые системы, чтобы найти их. Я знаю о zonecheck.org, mxtoolbox.com, zonemaster.net.

1.6 Получение помощи

Если вы спрашиваете о помощи на форуме, скрытие доменного имени затрудняет помощь. Если вы раскроете, что это за домен, будет легко проверить настройку и дать совет, если что-то не так. Если вы не можете раскрыть доменное имя публично и использование этого руководства и документации из Интернета не помогает, найдите кого-то, кому вы можете доверять с вашим доменным именем и кто знает о сервисе имен, затем попросите этого человека помочь вам с вашим доменом.

1.7 Регистрация домена

Когда ваш сервис имен работает нормально для вашей зоны, вы можете зарегистрировать его, или если он уже был зарегистрирован ранее, вы можете теперь добавить серверы имен к регистрации, и домен будет доступен из Интернета через 4 – 48 часов, пока информация о сервисе имен путешествует по миру.

Если вы регистрируете xyzzy.tld и у него есть сервер имен ns1.xyzzy.tld, вы указываете IP-номера для серверов имен вместо имен хостов. Если вы просто укажете имя хоста ns1.xyzzy.tld, как сервер имен будет найден? Единственное место, где доступен IP-номер, — это ns1.xyzzy.tld, но как к нему получить доступ, не зная IP-номера? Другой способ разрешить эту дилемму — использовать glue-записи (см. выше), тогда вы можете использовать имена вместо IP-номеров для ваших серверов имен.

Когда вы регистрируете другой домен plugh.tld, вы можете указать серверы имен как имена хостов ns1.xyzzy.tld и ns2.xyzzy.tld, так как домен xyzzy.tld уже хорошо зарегистрирован, и серверы имен известны.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.