Теория
Особенностью функционирования системы DNS является поддержка ограниченного стандартами набора из 63 символов: буквы A…Z, a..z английского алфавита, цифры 0,,9 и знак дефиса. Обратите внимание, что символ подчеркивания разрешен только как специальный префикс для обозначений записей служб. Он используется, например, для регистрации в DNS различных служб Active Directory.
Для преодоления ограничения на количество используемых символов был придуман специальный обходной маневр в виде стандарта PUNYCODE. Смысл этого стандарта в том, что все неанглоязычные наименования доменов преобразуются в “нормальные” имена DNS, состоящие из 63 разрешенных символов. Чтобы отличать “неродные” записи от привычных нам для всех преобразованных названий вводится префикс xn--.
На данный момент в корневых DNS зарегистрированы два кириллических домена: .РФ и .ИСПЫТАНИЕ.
Практика
Доменная зона .РФ с точки зрения DNS является зоной xn--p1ai. А, например, доменное имя президент.рф трансформируется в красивое имя
xn--d1abbgf6aiiy.xn--p1ai.
Можно даже “попинговать” хост xn--d1abbgf6aiiy.xn--p1ai:
C:\>ping xn--d1abbgf6aiiy.xn—p1ai Обмен пакетами с xn--d1abbgf6aiiy.xn--p1ai [195.208.24.91] с 32 байтами данных: Ответ от 195.208.24.91: число байт=32 время=4мс TTL=57 Ответ от 195.208.24.91: число байт=32 время=5мс TTL=57 Ответ от 195.208.24.91: число байт=32 время=4мс TTL=57 Ответ от 195.208.24.91: число байт=32 время=4мс TTL=57 |
А вот команда ping президент.рф уже не работает, хотя сайт http://президент.рф открывается:
C:\>ping президент.рф При проверке связи не удалось обнаружить узел президент.рф. Проверьте имя узла и повторите попытку. |
В чем же причина такой избирательности?
Причина кроется в том, что за преобразование всех “нестандартных” имен отвечают клиенты. И в приведенном выше примере современный браузер корректно трансформирует кириллическое имя сайта в его punycode-псевдоним, и уже этот псевдоним и запрашивается у серверов DNS. Команда ping про punycode-преобразования ничего не знает и запрашивает у DNS кириллическое имя, которое DNS найти, естественно, не может.
Если мы попробуем отправить письмо на адрес info@xn--d1abbgf6aiiy.xn--p1ai, то Outlook и многие онлайн-службы (Яндекс, Mail.ru), корректно обработают такой почтовый адрес. Outlook и Яндекс даже умеют отправлять письма на info@президент.рф. А Gmail, например, письма ни на punycode-домен, ни на кириллический пока не отправляет.
Если говорить о браузерах, то полноценная поддержка преобразований punycode встроена в IE7 и выше, Firefox 3.6.4 и выше.
Выводы
Punycode-преобразование – удел клиентского приложения.
Для работы многих ИТ-сервисов недостаточно только зарегистрированного в системе DNS кириллического имени. Необходимо убедиться, что все используемые в вашей организации и, возможно, в организациях-контрагентах клиентские приложения корректно преобразуют кириллические имена в стандартные для DNS запросы.
Похожие статьи: Настройка DNS для поддержки домена .РФ
Подробнее о списке корневых доменов: http://www.iana.org/domains/root/db/
Подробнее о стандарте RFC 1035 – DNS naming: http://tools.ietf.org/html/rfc1035
Подробнее о стандарте RFC 2782 – SRV records: http://tools.ietf.org/html/rfc2782
Подробнее о стандарте RFC 3492 – Punycode: http://tools.ietf.org/html/rfc3492
Комментариев нет:
Отправить комментарий