Настройка DNS для поддержки домена .РФ

Массовый ажиотаж, связанный с захватом и регистрацией "хороших" доменных имен в зоне .РФ, постепенно проходит. На первое место выходит новая проблема: что с новыми доменами делать дальше? Ответ один: настраивать DNS и веб-сайт для поддержки вашей новой зоны.

Для начала настоятельно рекомендую прочитать статью "Как работает домен .РФ".

Теория


Все версии Windows Server имеют встроенный сервер DNS. Наверняка он есть и у вас в компании. Все серверы Microsoft DNS (начиная с Windows 2000) прекрасно поддерживают создание доменных зон в формате Unicode.

Например, нет никаких проблем создать русскоязычную зону президент.рф и русскоязычный хост по имени веб:

image

Правда, в файле зоны запись хоста веб выглядит несколько иначе (выделено красным):

;
;  Database file президент.рф.dns for президент.рф zone.
;      Zone version:  3
;
@ IN  SOA dc01.corp.gorbunov.pro. hostmaster.corp.gorbunov.pro. (
                                3            ; serial number
                                900          ; refresh
                                600          ; retry
                                86400        ; expire
                                3600       ) ; default TTL
;
;  Zone NS records
;
@                       NS    dc01.corp.gorbunov.pro.
;
;  Zone records
;
\320\262\320\265\320\261 A    192.168.0.90

Проверка работы сервера DNS со стороны клиента проходит без проблем:

C:\>ping веб.президент.рф
Обмен пакетами с веб.президент.рф [192.168.0.90] с 32 байтами данных:
Ответ от 192.168.0.90: число байт=32 время=4мс TTL=128
Ответ от 192.168.0.90: число байт=32 время=5мс TTL=128
Ответ от 192.168.0.90: число байт=32 время=4мс TTL=128
Ответ от 192.168.0.90: число байт=32 время=4мс TTL=128

Значит, создаем зоны как обычно? К сожалению, нет.

Вышеприведенный пример работает только во внутренней сети и на внутренних DNS от Microsoft. Поддержка имен в формате Unicode для внешних (публичных) DNS стандартами не предусмотрена. Кроме того, значительная часть клиентских приложений просто не умеет работать с именами DNS в формате Unicode.

Для размещения в зонах DNS записей, содержащих нестандартные символы, стандартом RFC3492 предусмотрено  Punycode-преобразование. О Punycode я подробно рассказывал здесь.

Корректная процедура настройки внешних (публичных) DNS описана ниже.

Практика


Шаг 1. Выясняем, какие DNS в вашей организации внешние

Для начала хорошо бы знать, какие DNS серверы обслуживают ваш внешний англоязычный домен. Сделать это можно с помощью команды nslookup.exe.

Предположим, ваш текущий домен kremlin.ru, и вы планируете разместить новую русскоязычную зону президент.рф на тех же самых DNS. Желтым я выделил команды, которые нужно вводить.

C:\>nslookup
Address:  192.168.0.1

> set type=NS
> kremlin.ru
Address:  192.168.0.1

Не заслуживающий доверия ответ:
kremlin.ru      nameserver = acl.dns.ripn.net
kremlin.ru      nameserver = ns2.gov.ru
kremlin.ru      nameserver = bcl.dns.ripn.net
kremlin.ru      nameserver = ns.relarn.ru
kremlin.ru      nameserver = ns1.gov.ru
kremlin.ru      nameserver = ns.gov.ru
kremlin.ru      nameserver = ns.kremlin.ru
kremlin.ru      nameserver = ccl.dns.ripn.net

ns.kremlin.ru   internet address = 194.226.127.34

>exit

В результатах вывода видно, что зона kremlin.ru обслуживается восемью DNS.

Чтобы узнать IP-адрес серверов DNS в списке, даем команду nslookup <имя>:

C:\>nslookup acl.dns.ripn.net
Address:  192.168.0.1

Не заслуживающий доверия ответ:
╚ь :     acl.dns.ripn.net
Address:  193.232.66.15

В результатах вывода последние две строчки - имя публичного DNS и его IP.

Повторяем запросы для всех DNS серверов.

Шаг 2. Создаем новую первичную (primary) зону

Чтобы разместить зону Unicode на внешнем DNS нам потребуется ее Punycode-псевдоним. Конвертировать Unicode в Punycode можно, например, тут.

Для зоны президент.рф получаем xn--d1abbgf6aiiy.xn--p1ai.

Выбираем один из серверов DNS, найденных на первом шаге, и создаем на нем первичную зону в формате Punycode. В нашем примере это  будет
xn--d1abbgf6aiiy.xn--p1ai 

Задаем в новой зоне свойства записи SOA.

Перечисляем в зоне все DNS, которые будут зону обслуживать (см. список серверов DNS из Шага 1), т.е., добавляем в зону записи типа NS.

Шаг 3. Настраиваем вторичные (secondary) зоны

На всех остальных DNS создаем вторичные зоны с тем же самым Punycode-именем.

В качестве мастер-сервера DNS указываем сервер DNS из Шага 2.

Проверяем, прошла ли репликация зоны с мастер-сервера.

Шаг 4. Добавляем записи в зону

При необходимости добавляем в зону записи типа MX (почтовые серверы) и записи типа A (адреса хостов).

Все англоязычные названия хостов записываются в зоне как обычно.

Все имена, содержащие Unicode, в обязательном порядке переводятся в Punycode.

Например, хост веб должен быть преобразован в xn--90abj.
Хост Wсайт должен быть преобразован в xn--w-8sb1a4ah.
Что интересно, имя сайтW даст тот же Punycode-псевдоним xn--w-8sb1a4ah. 

Шаг 5. Настраиваем делегирование

Обращаемся к регистратору нашего кириллического домена. Меняем для этого домена адреса серверов DNS на наши собственные.

Шаг 6. Тестируем новую зону

После некоторого таймаута (может достигать суток) команда nslookup.exe должна для вашего Punycode-имени домена выдавать тот же самый список DNS, который выводится и для вашего англоязычного домена. Напомню, что на Шаге 1 мы решили использовать одни и те же внешние DNS и для англоязычных, и для русскоязычных доменов.

C:\>nslookup
Address:  192.168.0.1

> set type=NS
> xn--d1abbgf6aiiy.xn--p1ai
Address:  192.168.0.1

Не заслуживающий доверия ответ:
kremlin.ru      nameserver = acl.dns.ripn.net
kremlin.ru      nameserver = ns2.gov.ru
kremlin.ru      nameserver = bcl.dns.ripn.net
kremlin.ru      nameserver = ns.gov.ru
kremlin.ru      nameserver = ccl.dns.ripn.net

>exit

В результатах nslookup для домена xn--d1abbgf6aiiy.xn--p1ai (президент.рф) выводится список только пяти серверов DNS. Для этого домена, вероятно, решили ограничиться только пятью DNS вместо восьми.
Улыбка

Шаг 7. Бонусный

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

@                       A    <IP_адрес_вашего_веб_сервера>

Ниже приведен листинг корректно настроенной зоны для домена президент.рф. Файл зоны называется xn--d1abbgf6aiiy.xn--p1ai.dns. При наборе в браузере http://президент.рф пользователь попадает на сайт 195.208.24.91:

;
;  Database file xn--d1abbgf6aiiy.xn--p1ai.dns for xn--d1abbgf6aiiy.xn--p1ai zone.
;      Zone version:  13
;
@     IN  SOA dc01.corp.gorbunov.pro. hostmaster.corp.gorbunov.pro. (
                                13           ; serial number
                                900          ; refresh
                                600          ; retry
                                86400        ; expire
                                3600       ) ; default TTL
;
;  Zone NS records
;
@                       0    NS    acl.dns.ripn.net.
acl.dns.ripn.net.       A    193.232.66.15
@                       0    NS    ns2.gov.ru.
ns2.gov.ru.             A    194.226.127.210
@                       0    NS    bcl.dns.ripn.net.
bcl.dns.ripn.net.       A    194.85.84.15
@                       0    NS    ns.gov.ru.
ns.gov.ru.              A    95.173.128.77
@                       0    NS    ccl.dns.ripn.net.
ccl.dns.ripn.net.       A    193.232.82.15
;
;  Zone records
;
@                       A    195.208.24.91
@                       MX    5    mx0.gov.ru.
@                       MX    10    mx.gov.ru.

Записи, выделенные синим, не являются обязательными (в реальной зоне их нет).
Зеленым цветом показана переадресация на веб-сайт.
Красным- записи для почтовых серверов.

Если требуется добавить адрес веб.президент.рф, то добавляем в зону строку

xn-90abj                 A    <IP_адрес_вашего_веб_сервера>

Имя  xn--90abj является Punycode-псевдонимом Unicode-имени веб.

В консоли DNS в Windows Server 2008 зона президент.рф будет выглядеть так:

image

Последовательность команд

nslookup
set type=all
xn--d1abbgf6aiiy.xn--p1ai

выведет вам информацию о конфигурации реальной зоны DNS для домена президент.рф.

DNS настроили. Что дальше?


Не забывайте, что с точки зрения любых ИТ-систем

КИРИЛЛИЧЕСКИХ ДОМЕНОВ НЕ СУЩЕСТВЕТ!

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

Администраторы ИТ-систем настраивают все свои системы (ISA Server, TMG, IIS, Exchange и т.д.) абсолютно одинаково как для англоязычных доменов, так и для Punycode-псевдонимов кириллических доменов.

Выводы


Для поддержки кириллических доменов нет никакой разницы, используете ли вы Microsoft DNS или любой другой. Все равно ничего, кроме ограниченного набора из шестидесяти трех ASCII символов серверам DNS (и другим серверам) знать не положено.

Настройка серверов DNS для поддержки домена .РФ практически ничем не отличается от обычных процедур работы с DNS. В качестве дополнительного действия потребуется провести преобразования имен зон и хостов из Unicode в Punycode.

Предлагаю лозунг дня для сисадмина:
"Учиться, учиться, учиться.... Punycode-преобразованиям!"

 

Похожие статьи: Как работает домен .РФ

12 комментариев:

  1. Здравствуйте. Я купила себе домен в зоне РФ и теперь не знаю, что с ним делать. Прочитала вашу статью и ничего не поняла.
    Что такое консоль DNS и где ее искать? Может она еще по другому называется?
    Если я знаю, какие DNS серверы обслуживают домен, как их найти?
    Для работы с блогами я использую CPanel.
    Буду рада любой помощи. Иначе придется бросить блог.

    ОтветитьУдалить
  2. Добрый день, ЛюдаМила :-)
    Статья ориентирована на технических специалистов, самостоятельно поддерживающих службы DNS в организациях. В вашем случае самый простой вариант - обратиться к провайдеру с просьбой настроить DNS для купленного домена. Обычно такие услуги бесплатны. Второй вариант - обратиться в службу поддержки компании, на сайтах которой вы размещаете блог. Вопрос в обоих случях должен звучать одинаково: "Как мне настроить собственное доменное имя для моего блога, мой домен, например, людамила.рф".

    ОтветитьУдалить
  3. Спасибо за ответ. К сожалению вопрос остался без ответа. И мне проще было купить новый домен.

    ОтветитьУдалить
  4. Вопросов я увидел целых три.
    1. Что такое консоль DNS и где ее искать?
    Файл dnsmgmt.msc на серверах Windows, на Windows XP/7 его нет.
    -----------
    2. Может она еще по другому называется?
    В русскрязычном интерфейсе - "Диспетчер DNS";
    в англоязычном - "DNS Management";
    в любом интерфейсе - просто файл dnsmgmt.msc.
    -----------
    3. Если я знаю, какие DNS серверы обслуживают домен, как их найти?
    Вот тут я немного в тупике: если серверы известны, то зачем из искать?

    ОтветитьУдалить
  5. В продолжение темы, но это при условии, что я правильно понимаю вашу ситуацию.
    1. Предполагаем, что серверы DNS, обслуживающие ваш домен, Windows Server 2000/2003/2008.
    2. Вы имеете административный доступ к серверам DNS.
    3. Администрирование серверов DNS ведется либо через Remote Desktop Connection, либо через утилиту "Диспетчер DNS" из набора RSAT для Windows 7.

    А еще лучше будет, если вы просто скажете, на каком шаге вы остановились (см. раздел Практика в статье). Можете написать мне на почту напрямую, она на странице обратной связи.

    ОтветитьУдалить
  6. Здравствуйте. Я только купила домен и в процессе настройки WordPress начались проблемы. Решила им не заниматься, и купила другой домен.

    ОтветитьУдалить
  7. Простите, может быть немного не по теме:
    Как вообще установить службу DNS? У меня сервер (VPS, правда) под управлением Windows Server 2008, и мне требуется установить DNS server. Я честно иду в Control Panel -> Administrative Tools -> Server Manager -> Roles, где, по идее нужно добавить роль. Но кнопка "Add role" неактивна, поэтому ничего установить я не могу. Не подскажете ли, куда в этом случае копать?

    Заранее Вам благодарен.

    ОтветитьУдалить
  8. По науке все верно, при условии, что вы имеете права локального админа.
    По поводу VPS. Вы уверены, что провайдер разрешает вам добавлять любые роли?

    ОтветитьУдалить
  9. Анонимный5 июля 2012 г., 10:42

    Людмила, обратитесь к специалистам, а то покупка новых доменов может перейти в манию =)

    ОтветитьУдалить
  10. Подскажите пожалуйста - (как видно на последнем снимке)у Вас на сервере присутствует 2 зоны - одна в Punycode формате, вторая "президент.рф."
    В кириллическом формате создана для удобства и ссылается на "xn--d1abbgf6aiiy.xn--p1ai.dns" файл зоны? И внося изменения в кириллической папке изменяется везде?

    ОтветитьУдалить
  11. Спасибо. Отличная статья.

    ОтветитьУдалить
  12. Здравствуйте. долго я искал что то на подобие этой статьи !!!
    написано все понятно, все отлично. вот только не работает почему то так как хотелось бы (но это я скорее всего что то не так понял или делаю. у меня основной домен латиница, я хочу разместить еще один сайт (кириллица) создал вторую зону - все как написано но при вводе (кир домена) попадаю на первый.

    ОтветитьУдалить