Punycode, доменны зоны с использованием национальных символов

Опубликовано

Оригинал у коллеги. Рекомендуется всячески способствовать распространению данного текста.

= esib.softw (2:5070/66.35) ===================================================Msg : 57 of 57 Rcv Snt Loc ScnFrom : Svyatoslav Lempert 2:5070/66.35 14 май 08 02:45:58To : Svyatoslav LempertSubj : Punicode и кириллические корневые зоны (.ру, .ком, .нет)===============================================================================Hello Svyatoslav!13 май 08 02:31, Svyatoslav Lempert --> All:SL> Берем доменыSL> домены.руSL> кремль.ruSL> Берем браузеры Firefox 2.0 и IE 6.0 и Windows XP.SL> Открываем в FirefoxSL> домены.ру - не открывается, в браузереSL> http://www.xn--d1acufc5f.xn--p1ag, ошибка резолвинга имени.SL> кремль.ru - открывается без проблем (там редирект, как имяSL> закодировалось не вижу)SL> Открываем в IE 6.0SL> не открываетсяSL> не открываетсяSL> Ставим I-Client http://iclient.ru/SL> Firefox - результат не меняетсяSL> IE 6.0 - открываются оба доменаSL> Внимание вопрос: Чтобы открывались домены в зоне .ру, .ком иSL> аналогичных в Firefox 2.0 что надо сделать с ним?SL> Или надо настроить named (как?) который используется для резолвингаSL> имен для поддержки зоны xn--p1ag, так как I-Client лазит сам к своимSL> DNS-серверам (смотрим http://www.i-dns.net - они вообще раздаютSL> патченный bind который испольует их корневые серверы имен)Hастраиваем свой named на домашнем роутере для софта без установки I-Client,чтобы корректно работала зона .xn--p1ag (и другие тоже), так как root-серверыDNS про нее до сих пор ничего не знают (а пора было бы так как регистрацияидет и так далее)Идем вот сюда http://www.i-dns.net/support_download/downloads/downloads.htmlКачаем http://www.i-dns.net/download/db.cacheМожем заменить им свой named.root. И будет счастье, зоны .xn--p1ag заработают(они так и рекомендуют -http://www.i-dns.net/support_download/downloads/sysadmin/enabling_unix_dbcache.html )Hо это не наш метод. Действительно, как можно заменить 13 корневых серверов(реально больше так как там размазанный по миру кластер) четырями незвестнымиадресами.Hастроем namedСмотрим файлик db.cache - внутри него написано=============================; This file holds the information on iDNS name servers; needed to initialize cache of MULTILINGUAL Internet; domain name servers.;; (e.g. reference this file in the "cache . "; configuration file of BIND domain name servers).;; last update: 6 Jan 2003;NSA.I-DNS.NET. 1D IN A 64.62.142.131. 1D IN NS NSA.I-DNS.NET.NSB.I-DNS.NET. 1D IN A 195.161.113.189. 1D IN NS NSB.I-DNS.NET.NSC.I-DNS.NET. 1D IN A 211.169.245.170. 1D IN NS NSC.I-DNS.NET.NSD.I-DNS.NET. 1D IN A 203.81.44.47. 1D IN NS NSD.I-DNS.NET.==========================Hаша цель - получить список зон которые заканчиваются на punicode-символыи засунуть их в named.confИдем вот сюда http://fastserv.name.net/open_source/php/punycode/или сюда http://www.midano.com/convertIDN.asp (без особой разницы я ходил сюда)или пишем конвертор самостоятельно (см. google.com) и получаем списокпоконвертив частые именаxn--p1ag - руxn--j1aef - комxn--e1apq - нетxn--c1avg - оргДля начала достаточно. Если появятся арабы или китайцы - милости просимзакодироваться.Hаходим на каких серверах находятся эти домены спросив у любого корневогосерверазапись SOA для домена (я засунул вывод в grep для наглядности чтобы было меньше"лишней информации"# dig @64.62.142.131 xn--p1ag soa | egrep 'NS|A' | grep -v SOA | grep -v ';;'xn--p1ag. 86400 IN NS nsa.i-DNS.net.xn--p1ag. 86400 IN NS nsd.i-DNS.net.nsa.i-DNS.net. 518400 IN A 64.62.142.131nsd.i-DNS.net. 518400 IN A 203.81.44.47В нашем случае все 4 зоны живут на 64.62.142.131 и 203.81.44.47, если взятьскажем болгарский домен .бг (.xn--90ae) то он живет на серверах83.148.101.20483.142.20.22985.187.218.67216.117.186.9366.252.1.255Hо это не суть важно, в любом случае зоны надо прописывать (либо если не хотим- пункт первыйс заменой named.conf)Теперь берем и правим наш named.conf# mkdir /etc/namedb/stub# chown bind /etc/namedb/stub# vi /etc/namedb/named.confzone "xn--p1ag" {type stub;file "stub/xn--p1ag";masters { 64.62.142.131; 203.81.44.47; };};zone "xn--j1aef" {type stub;file "stub/xn--p1ag";masters { 64.62.142.131; 203.81.44.47; };};zone "xn--e1apq" {type stub;file "stub/xn--p1ag";masters { 64.62.142.131; 203.81.44.47; };};zone "xn--c1avg" {type stub;file "stub/xn--p1ag";masters { 64.62.142.131; 203.81.44.47; };};Перезапускаем named, и наслаждаемся тем, что теперерь "чисто русские доменыработают"со страницы скажем http://iclient.ru/ открываются в FireFox 2.0.0.14 и пытаемсяпонять, "зачем это нам надо" ...Теперь работает резолвинг без проблем и в браузере и так далееls@ls:~% ping xn--d1abbgf6aiiy.xn--c1avgPING xn--d1abbgf6aiiy.xn--c1avg (217.16.27.37): 56 data bytes64 bytes from 217.16.27.37: icmp_seq=0 ttl=51 time=53.953 ms64 bytes from 217.16.27.37: icmp_seq=1 ttl=51 time=53.520 ms^C-+- xn--d1abbgf6aiiy.xn--c1avg ping statistics ---2 packets transmitted, 2 packets received, 0% packet lossround-trip min/avg/max/stddev = 53.520/53.737/53.953/0.216 msls@ls:~% host xn--d1abbgf6aiiy.xn--c1avgxn--d1abbgf6aiiy.xn--c1avg has address 217.16.27.37Рекомендую распространить как можно шире данный текст, провайдерам разрешаетсяанонсировать "автоматическую поддержку русскоязычных доменов браузерами" ипрописыватьбольшее количество IDN-доменов (возможно через include файл, которыйцентрализованообновлять) в конфигурациях ваших резолверов, тем самым мы приблизимсяна шаг к глобальной руссификации интернет-доменов, жалко, что эти доменыконечноотсутствуют на корневых серверах имен, но это уже тема отдельной большойстатьи.Svyatoslav--- GoldED+/W32 1.1.5-030809* Origin: No route to host (2:5070/66.35@fidonet.org)

Еще ссылка по теме http://пример.испытание, я как-то упоминал об этом в своих заметках.